/* Liste Regalo per WooCommerce - stili base */

:root {
	--glw-accent: #e2231a;
}

/* Nel carrello/checkout/riepilogo ordine, WooCommerce mostra i dati extra
   della riga (es. "Regalo per la lista", "Messaggio per il creatore") in una
   <dl class="variation">: molti temi impostano dt/dd affiancati (float o
   inline-block), facendoli apparire su una sola riga uno accanto all'altro.
   Forziamo qui dt/dd a comparire uno sotto l'altro, indipendentemente dal tema. */
.woocommerce dl.variation {
	margin: 0;
	overflow: hidden;
}
.woocommerce dl.variation dt,
.woocommerce dl.variation dd {
	display: block !important;
	float: none !important;
	width: auto !important;
	clear: both !important;
	margin: 0 0 6px !important;
	padding: 0 !important;
}
.woocommerce dl.variation dt {
	font-weight: 700;
}
.woocommerce dl.variation dd:last-child {
	margin-bottom: 0 !important;
}

.glw-notice {
	padding: 12px 16px;
	border-left: 4px solid #999;
	background: #f7f7f7;
	margin-bottom: 20px;
}
.glw-notice.glw-success {
	border-left-color: #46b450;
	background: #eefbef;
}
.glw-notice.glw-error {
	border-left-color: #dc3232;
	background: #fbeeee;
}

.glw-form-wrapper {
	margin-bottom: 40px;
	padding: 20px;
	border: 1px solid #e2e2e2;
	border-radius: 4px;
}
.glw-cancel-edit-row {
	margin: -6px 0 16px;
}
.glw-cancel-edit-row a {
	font-size: 0.9em;
	text-decoration: none;
	color: #777;
}
.glw-cancel-edit-row a:hover {
	color: var(--glw-accent);
	text-decoration: underline;
}

.glw-my-lists-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 20px;
}
.glw-my-lists-header h3 {
	margin: 0;
}
.glw-btn-create-list {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	/* Colori forzati con !important: l'elemento porta anche le classi
	   "button button-primary" del tema attivo, che altrimenti potrebbero
	   sovrascrivere il rosso/bianco richiesto qui con i propri colori. */
	background: var(--glw-accent) !important;
	border: 1px solid var(--glw-accent) !important;
	color: #fff !important;
	padding: 10px 18px !important;
	border-radius: 6px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background 0.15s ease, border-color 0.15s ease;
}
.glw-btn-create-list:hover,
.glw-btn-create-list:focus {
	background: #c31e16 !important;
	border-color: #c31e16 !important;
	color: #fff !important;
	text-decoration: none !important;
}

/* Wizard di creazione/modifica lista */
.glw-wizard-progress {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}
.glw-wizard-progress-step {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 6px 14px 6px 6px;
	border-radius: 999px;
	background: #f2f2f2;
	color: #888;
	font-size: 0.88em;
	font-weight: 600;
}
.glw-wizard-progress-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #ddd;
	color: #fff;
	font-size: 0.85em;
}
.glw-wizard-progress-step.is-active {
	background: #fdece9;
	color: var(--glw-accent);
}
.glw-wizard-progress-step.is-active .glw-wizard-progress-number {
	background: var(--glw-accent);
}
.glw-wizard-progress-step.is-done {
	background: #eaf6ec;
	color: #2a8a3e;
}
.glw-wizard-progress-step.is-done .glw-wizard-progress-number {
	background: #2a8a3e;
}

.glw-wizard-step {
	margin-bottom: 10px;
}
.glw-wizard-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}
.glw-wizard-summary {
	padding: 14px 16px;
	background: #fafafa;
	border: 1px solid #eee;
	border-radius: 8px;
	margin-bottom: 6px;
}
.glw-wizard-summary p {
	margin: 0 0 8px;
}
.glw-wizard-summary-list {
	margin: 0;
	padding-left: 20px;
}

.glw-event-picker {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 10px 0 6px;
}
.glw-event-option {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	border: 1px solid #ddd;
	border-radius: 8px;
	cursor: pointer;
	background: #fff;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.glw-event-option:has(input:checked) {
	border-color: var(--glw-accent);
	background: #fdece9;
}
.glw-event-option input[type="radio"] {
	margin: 0;
}
.glw-event-option-icon {
	font-size: 1.2em;
}
.glw-event-option-label {
	font-weight: 600;
	font-size: 0.92em;
}

/* Testata pagina pubblica personalizzata in base all'occasione */
.glw-event-banner {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 20px 24px;
	margin-bottom: 28px;
	border-radius: 10px;
	background: var(--glw-event-bg, #fdece9);
	border: 1px solid var(--glw-event-color, var(--glw-accent));
}
.glw-event-banner-icon {
	font-size: 2.2em;
	line-height: 1;
}
.glw-event-banner-text {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.glw-event-banner-label {
	font-style: italic;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	font-size: 1.15em;
	color: var(--glw-event-color, var(--glw-accent));
}
.glw-event-banner-owner {
	font-size: 0.92em;
	color: #555;
}

.glw-input-text {
	width: 100%;
	max-width: 420px;
	padding: 6px 8px;
	box-sizing: border-box;
}
.glw-textarea {
	max-width: 100%;
	resize: vertical;
	font-family: inherit;
	line-height: 1.5;
}

.glw-ship-address-fieldset {
	border: 1px solid #e2e2e2;
	border-radius: 8px;
	padding: 14px 16px 18px;
	margin: 0 0 18px;
}
.glw-ship-address-fieldset legend {
	padding: 0 6px;
}
.glw-ship-address-fieldset .description {
	margin-top: 2px;
}
.glw-ship-address-row {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}
.glw-ship-address-row label {
	flex: 1 1 120px;
}
.glw-ship-state-input {
	max-width: 80px;
	text-transform: uppercase;
}

/* Scelta "spedisci al creatore/spedisci a me" al checkout WooCommerce. */
.glw-ship-choice-box {
	background: #fdece9;
	border: 1px solid #f4c9c3;
	border-radius: 8px;
	padding: 16px 20px;
	margin: 0 0 24px;
}
.glw-ship-choice-box h3 {
	margin: 0 0 10px;
	font-size: 1.05em;
}
.glw-ship-choice-option {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-weight: normal;
	cursor: pointer;
}
.glw-ship-choice-option input {
	margin-top: 3px;
	flex-shrink: 0;
}
.glw-ship-choice-box .description {
	margin: 8px 0 0;
	font-size: 0.85em;
	color: #777;
}

/* Selezione prodotti a elenco (step 2 del wizard): tutte le righe hanno lo
   stesso formato (checkbox, immagine, nome+prezzo, quantità desiderata),
   sia per i prodotti semplici sia per quelli con varianti, così l'elenco
   risulta uniforme invece di una griglia di card con altezze diverse. */
.glw-product-picker-search {
	margin-bottom: 14px;
}
.glw-product-picker-grid {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-height: 560px;
	overflow-y: auto;
	padding: 4px;
}
.glw-product-picker-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 14px;
	border: 1px solid #e2e2e2;
	border-radius: 10px;
	background: #fff;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.glw-product-picker-card:hover {
	border-color: #ccc;
}
.glw-product-picker-card.is-selected {
	border-color: var(--glw-accent);
	background: #fdece9;
	box-shadow: 0 2px 8px rgba(226,35,26,0.12);
}
.glw-product-picker-check {
	flex: 0 0 auto;
	display: flex;
}
.glw-product-picker-check input {
	width: 20px;
	height: 20px;
	margin: 0;
}
.glw-product-picker-image {
	flex: 0 0 auto;
}
.glw-product-picker-image img {
	width: 56px;
	height: 56px;
	object-fit: cover;
	border-radius: 6px;
	display: block;
}
.glw-product-picker-info {
	flex: 1 1 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 16px;
	min-width: 0;
}
.glw-product-picker-name {
	font-weight: 600;
	font-size: 0.95em;
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 320px;
}
.glw-product-picker-price {
	font-size: 0.85em;
	color: #666;
	white-space: nowrap;
}
.glw-product-picker-view-link {
	font-size: 0.78em;
	color: #888;
	text-decoration: none;
	white-space: nowrap;
}
.glw-product-picker-view-link:hover {
	color: var(--glw-accent);
	text-decoration: underline;
}
.glw-product-picker-qty-wrap {
	display: flex;
	align-items: center;
	gap: 6px;
	flex: 0 0 auto;
}
.glw-product-picker-qty-wrap label {
	font-size: 0.72em;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: #888;
	white-space: nowrap;
}
.glw-product-picker-qty {
	width: 60px;
	padding: 4px;
	text-align: center;
	border: 1px solid #ddd;
	border-radius: 4px;
}
.glw-product-picker-qty:disabled {
	background: #f2f2f2;
	color: #aaa;
}
@media (max-width: 560px) {
	.glw-product-picker-card {
		flex-wrap: wrap;
	}
	.glw-product-picker-name {
		max-width: 200px;
	}
	.glw-product-picker-qty-wrap {
		flex: 1 1 100%;
		justify-content: flex-end;
	}
}

/* Riga del prodotto variabile: stessa larghezza piena delle altre righe
   dell'elenco, ma con un'intestazione propria e le varianti selezionabili
   sotto, invece del layout compatto nome+prezzo+quantità in linea. */
.glw-product-picker-card-variable {
	cursor: default;
	align-items: stretch;
	text-align: left;
	padding: 16px 18px;
	gap: 0;
	flex-direction: column;
}
.glw-product-picker-variable-header {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-bottom: 12px;
	margin-bottom: 12px;
	border-bottom: 1px solid #eee;
}
.glw-product-picker-variable-header .glw-product-picker-view-link {
	margin-left: auto;
	flex: 0 0 auto;
}
.glw-product-picker-card-variable .glw-product-picker-image {
	flex-shrink: 0;
}
.glw-product-picker-card-variable .glw-product-picker-image img {
	width: 52px;
	height: 52px;
}
.glw-product-picker-card-variable .glw-product-picker-name {
	text-align: left;
	min-height: 0;
	display: block;
	-webkit-line-clamp: unset;
	overflow: visible;
	font-size: 1em;
}
.glw-product-picker-card-variable .description {
	margin: 0 0 10px;
	font-size: 0.85em;
	color: #777;
	text-align: left;
}
.glw-variation-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.glw-variation-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	padding: 10px 12px;
	border: 1px solid #e8e8e8;
	border-radius: 6px;
	background: #fafafa;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.glw-variation-row:hover {
	border-color: #ccc;
}
.glw-variation-row.is-selected {
	border-color: var(--glw-accent);
	background: #fdece9;
}
.glw-variation-label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 0.92em;
	cursor: pointer;
	flex: 1;
	min-width: 160px;
}
.glw-variation-label input {
	width: 18px;
	height: 18px;
	margin: 0;
	flex-shrink: 0;
}
.glw-variation-price {
	color: var(--glw-accent);
	font-weight: 600;
	font-size: 0.92em;
	margin-left: auto;
	padding-left: 10px;
}
.glw-variation-qty-wrap {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-shrink: 0;
}
.glw-variation-qty-wrap label {
	font-size: 0.72em;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: #888;
}
.glw-variation-qty {
	width: 60px;
	padding: 4px;
	text-align: center;
	border: 1px solid #ddd;
	border-radius: 4px;
}
.glw-variation-qty:disabled {
	background: #f2f2f2;
	color: #aaa;
}
@media (max-width: 480px) {
	.glw-variation-row {
		flex-direction: column;
		align-items: stretch;
	}
	.glw-variation-price {
		margin-left: 0;
		padding-left: 0;
	}
	.glw-variation-qty-wrap {
		justify-content: flex-start;
	}
}

.glw-list-card {
	border: 1px solid #e6e6e6;
	border-radius: 10px;
	padding: 20px 24px;
	margin-bottom: 28px;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.glw-list-card h4 {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 1.2em;
}
.glw-list-card h5 {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 22px 0 4px;
	font-size: 1em;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #555;
}
.glw-list-card-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding-bottom: 12px;
	border-bottom: 1px solid #f0f0f0;
	margin-bottom: 14px;
}
.glw-list-card-icon {
	font-size: 1.1em;
}
.glw-list-card-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.glw-badge {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 999px;
	background: #f0f4f2;
	color: #33543f;
	font-size: 0.8em;
	font-weight: 600;
	white-space: nowrap;
}
.glw-badge-orders {
	background: #fdf1e0;
	color: #8a5a13;
}

.glw-share-row {
	margin-bottom: 16px;
}
.glw-share-row label {
	display: block;
	font-size: 0.85em;
	color: #666;
	margin-bottom: 4px;
}
.glw-share-input-group {
	display: flex;
	gap: 8px;
}
.glw-share-input-group .glw-share-link {
	flex: 1;
	max-width: none;
	background: #f7f7f7;
}

.glw-list-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 6px;
}

.glw-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px;
	border-radius: 6px;
	border: 1px solid transparent;
	font-size: 0.9em;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	background: #f2f2f2;
	color: #333;
	line-height: 1.4;
	transition: filter 0.15s ease;
}
.glw-btn:hover {
	filter: brightness(0.95);
	color: #222;
	text-decoration: none;
}
.glw-btn-edit {
	background: #e8f0fe;
	color: #1a4d8f;
}
.glw-btn-view {
	background: #e9f7ef;
	color: #1e7e42;
}
.glw-btn-delete {
	background: #fdecea;
	color: #b3261e;
}
.glw-btn-copy {
	background: #f2f2f2;
	color: #333;
	flex: 0 0 auto;
}
.glw-btn-copy.glw-btn-copied {
	background: #e9f7ef;
	color: #1e7e42;
}

.glw-table {
	width: 100%;
	border-collapse: collapse;
	margin: 10px 0 20px;
	overflow: hidden;
	border-radius: 6px;
}
.glw-table th,
.glw-table td {
	border: 1px solid #eee;
	padding: 10px 12px;
	text-align: left;
	vertical-align: middle;
}
.glw-table th {
	background: #f7f7f7;
	font-size: 0.85em;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: #666;
}
.glw-table tbody tr:nth-child(even) {
	background: #fafafa;
}
.glw-table tbody tr:hover {
	background: #f5f8f6;
}

.glw-empty {
	font-style: italic;
	color: #777;
}

.glw-public-list {
	margin-top: 20px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 4px 24px rgba(0,0,0,0.08);
	overflow: hidden;
}
@media (max-width: 600px) {
	.glw-public-list {
		border-radius: 12px;
	}
}

.glw-public-list-body {
	padding: 28px 32px 36px;
}
@media (max-width: 600px) {
	.glw-public-list-body {
		padding: 20px 18px 28px;
	}
}

/* Hero della pagina pubblica: foto di copertina caricata dal creatore,
   oppure gradiente colorato in base all'occasione se non ne è stata caricata una. */
.glw-hero {
	position: relative;
	min-height: 260px;
	display: flex;
	align-items: flex-end;
	background-size: cover;
	background-position: center;
	color: #fff;
}
.glw-hero-gradient {
	background-image: linear-gradient(135deg, var(--glw-event-color, var(--glw-accent)) 0%, #2b2b2b 100%);
}
.glw-hero-photo::after {
	content: '';
	position: absolute;
	inset: 0;
	/* Overlay scuro su tutta la foto (non solo in basso): le immagini
	   caricate possono avere zone chiare ovunque, non solo in alto, quindi
	   un velo leggero anche lì evita scritte poco leggibili, oltre
	   all'oscuramento più marcato in basso dove si trova il testo. */
	background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.2) 35%, rgba(0,0,0,0.78) 100%);
}
.glw-hero-photo .glw-hero-label,
.glw-hero-photo .glw-hero-owner,
.glw-hero-photo .glw-hero-icon {
	text-shadow: 0 1px 4px rgba(0,0,0,0.6);
}
.glw-hero-content {
	position: relative;
	z-index: 1;
	padding: 26px 32px;
}
.glw-hero-icon {
	font-size: 2em;
	display: block;
	margin-bottom: 4px;
	/* Il colore viene sempre forzato qui (non solo ereditato da .glw-hero):
	   molti temi applicano ai propri titoli/heading un colore esplicito
	   (es. ".entry-content h2 { color: ... }") che, essendo una regola
	   diretta sull'elemento, vince sempre su un valore semplicemente
	   ereditato dal genitore, indipendentemente dallo style inline messo lì.
	   Dichiarandolo qui, con !important, il colore scelto nelle impostazioni
	   (o il bianco di default) vince sempre sul tema. */
	color: var(--glw-hero-text-color, #fff) !important;
}
.glw-hero-label {
	display: inline-block;
	font-style: italic;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	font-size: 1em;
	padding: 3px 12px;
	border-radius: 999px;
	background: rgba(255,255,255,0.2);
	backdrop-filter: blur(2px);
	color: var(--glw-hero-text-color, #fff) !important;
}
.glw-hero-title {
	margin: 10px 0 4px;
	font-style: italic;
	font-weight: 800;
	text-transform: uppercase;
	font-size: 1.8em;
	line-height: 1.15;
	text-shadow: 0 1px 6px rgba(0,0,0,0.25);
	color: var(--glw-hero-text-color, #fff) !important;
}
/* Selettore rinforzato (più specifico), oltre a quello sopra: alcuni temi
   applicano ai propri titoli regole con specificità più alta di una singola
   classe (es. "h2.entry-title" o catene di più classi/discendenti), che
   altrimenti vincerebbero anche con !important sulla regola più semplice
   qui sopra, perché a parità di !important vince la specificità più alta. */
.glw-public-list h2.glw-hero-title,
.glw-hero .glw-hero-title {
	color: var(--glw-hero-text-color, #fff) !important;
}
.glw-hero-owner {
	margin: 0;
	font-size: 0.95em;
	opacity: 0.95;
	color: var(--glw-hero-text-color, #fff) !important;
}
.glw-hero-actions {
	margin: 12px 0 0;
}
.glw-hero-actions .glw-btn-edit {
	background: rgba(255,255,255,0.9);
}
@media (max-width: 600px) {
	.glw-hero {
		min-height: 200px;
	}
	.glw-hero-content {
		padding: 18px 20px;
	}
	.glw-hero-title {
		font-size: 1.4em;
	}
}

.glw-cover-preview {
	display: block;
	max-width: 220px;
	height: auto;
	border-radius: 8px;
	margin-bottom: 8px;
}

.glw-list-description {
	margin-bottom: 24px;
	padding-bottom: 22px;
	border-bottom: 1px solid #f0f0f0;
	color: #444;
	line-height: 1.6;
	font-size: 0.98em;
}
.glw-list-description p:last-child {
	margin-bottom: 0;
}

.glw-list-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 22px;
	padding-bottom: 18px;
	border-bottom: 1px solid #f0f0f0;
}
.glw-list-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}
.glw-stat {
	display: flex;
	flex-direction: column;
}
.glw-stat-value {
	font-size: 1.3em;
	font-weight: 800;
	font-style: italic;
	color: var(--glw-event-color, var(--glw-accent));
	line-height: 1.1;
}
.glw-stat-label {
	font-size: 0.78em;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #888;
}

.glw-share-buttons {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.glw-share-label {
	font-size: 0.85em;
	color: #777;
	margin-right: 2px;
}
.glw-share-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #f2f2f2;
	border: none;
	font-size: 1.1em;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s ease, transform 0.15s ease;
}
.glw-share-btn:hover {
	background: #e6e6e6;
	transform: translateY(-1px);
}
.glw-share-btn svg {
	display: block;
}
.glw-share-btn-whatsapp {
	background: #25d366;
	color: #fff;
}
.glw-share-btn-whatsapp:hover {
	background: #1ebc59;
}

.glw-product-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
@media (max-width: 900px) {
	.glw-product-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 560px) {
	.glw-product-grid {
		grid-template-columns: 1fr;
	}
}

.glw-product-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 10px rgba(0,0,0,0.08);
	overflow: hidden;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.glw-product-card:hover {
	box-shadow: 0 8px 22px rgba(0,0,0,0.14);
	transform: translateY(-3px);
}
.glw-product-card-image {
	position: relative;
	display: block;
	background: #f2f2f2;
	overflow: hidden;
}
.glw-product-card-image img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
	transition: transform 0.2s ease;
}
.glw-product-card:hover .glw-product-card-image img {
	transform: scale(1.05);
}
.glw-product-card-body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 16px 16px 18px;
	flex: 1;
}
.glw-product-card-info {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.glw-product-card-title {
	margin: 0;
	font-style: italic;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	font-size: 1.15em;
	line-height: 1.25;
}
.glw-product-card-title a {
	text-decoration: none;
	color: inherit;
}
.glw-product-card-title a:hover {
	text-decoration: underline;
}
.glw-product-card-price {
	font-size: 0.95em;
	color: #444;
}
.glw-product-card-desired {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-style: italic;
	font-weight: 700;
	text-transform: uppercase;
	font-size: 0.82em;
	letter-spacing: 0.02em;
	color: #555;
}

.glw-buy-form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin-top: 4px;
}
.glw-buy-qty {
	width: 80px;
	padding: 6px 4px;
	border: 1px solid #ddd;
	border-radius: 4px;
	flex: 0 0 80px;
}
.glw-buy-button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: none;
	border: none;
	padding: 0;
	margin: 0;
	cursor: pointer;
	white-space: nowrap;
	font-style: italic;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	font-size: 0.92em;
	color: var(--glw-accent);
}
.glw-buy-button:hover {
	text-decoration: underline;
}
.glw-icon {
	font-size: 1.1em;
	line-height: 1;
}
.glw-out-of-stock {
	color: #999;
	font-style: italic;
}

/* Dedica condivisa nella pagina pubblica della lista: un unico riquadro,
   invece di un campo messaggio per ogni singolo prodotto/donazione, con un
   tono di colore distinto (variante chiara del colore brand) per farlo
   risaltare come sezione a parte. */
.glw-shared-dedica-box {
	margin: 0 0 20px;
	padding: 16px 20px;
	background: #fff7ed;
	border: 1px solid #fbdfb8;
	border-radius: 12px;
}
.glw-shared-dedica-label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 4px;
	font-weight: 700;
	color: #8a5a1e;
}
.glw-shared-dedica-hint {
	margin: 0 0 10px;
	font-size: 0.85em;
	color: #9c7a4e;
}
.glw-shared-dedica-input {
	width: 100%;
	box-sizing: border-box;
	min-height: 64px;
	padding: 8px 10px;
	border: 1px solid #f0d3a3;
	border-radius: 6px;
	font-size: 0.95em;
	color: #333;
	resize: vertical;
	background: #fff;
}

/* Pulsanti per passare dalla vista a griglia (default) a quella a elenco,
   e viceversa: agiscono solo via CSS/JS lato client, aggiungendo/togliendo
   la classe .glw-view-list su .glw-product-grid, senza richiedere alcuna
   opzione lato server. */
.glw-view-toggle {
	display: flex;
	justify-content: flex-end;
	gap: 6px;
	margin: 0 0 14px;
}
.glw-view-toggle-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border: 1px solid #ddd;
	border-radius: 999px;
	background: #fff;
	color: #666;
	font-size: 0.85em;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.glw-view-toggle-btn:hover {
	border-color: #ccc;
}
.glw-view-toggle-btn.is-active {
	background: var(--glw-accent);
	border-color: var(--glw-accent);
	color: #fff;
}

.glw-product-grid.glw-view-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.glw-product-grid.glw-view-list .glw-product-card {
	flex-direction: row;
	align-items: center;
}
.glw-product-grid.glw-view-list .glw-product-card:hover {
	transform: none;
	box-shadow: 0 4px 14px rgba(0,0,0,0.1);
}
.glw-product-grid.glw-view-list .glw-product-card-image {
	flex: 0 0 72px;
	width: 72px;
	align-self: stretch;
}
.glw-product-grid.glw-view-list .glw-product-card-image img {
	width: 72px;
	height: 100%;
	aspect-ratio: 1 / 1;
}
.glw-product-grid.glw-view-list .glw-product-card-body {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 24px;
	padding: 12px 18px;
}
.glw-product-grid.glw-view-list .glw-product-card-info {
	flex: 1 1 260px;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 18px;
}
.glw-product-grid.glw-view-list .glw-product-card-title {
	flex: 1 1 200px;
	font-size: 1.05em;
}
.glw-product-grid.glw-view-list .glw-product-card-price {
	flex: 0 0 auto;
}
.glw-product-grid.glw-view-list .glw-product-card-desired {
	flex: 0 0 auto;
}
.glw-product-grid.glw-view-list .glw-buy-form {
	flex: 1 1 360px;
	flex-wrap: nowrap;
	align-items: center;
	gap: 8px;
	margin-top: 0;
	min-width: 260px;
}
.glw-product-grid.glw-view-list .glw-buy-qty {
	flex: 0 0 60px;
	width: 60px;
}
.glw-product-grid.glw-view-list .glw-buy-button {
	flex: 0 0 auto;
	white-space: nowrap;
}
.glw-product-grid.glw-view-list .glw-out-of-stock {
	flex: 1 1 auto;
	text-align: right;
}
@media (max-width: 700px) {
	.glw-product-grid.glw-view-list .glw-product-card-body {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
	}
	.glw-product-grid.glw-view-list .glw-product-card-info {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
	}
	.glw-product-grid.glw-view-list .glw-buy-form {
		flex-wrap: wrap;
		min-width: 0;
	}
	.glw-product-grid.glw-view-list .glw-out-of-stock {
		text-align: left;
	}
}
@media (max-width: 560px) {
	.glw-product-grid.glw-view-list .glw-product-card {
		flex-direction: column;
		align-items: stretch;
	}
	.glw-product-grid.glw-view-list .glw-product-card-image {
		width: 100%;
		height: 140px;
	}
	.glw-product-grid.glw-view-list .glw-product-card-image img {
		width: 100%;
	}
}

/* Autocomplete "fatto in casa" per la ricerca prodotti */
.glw-autocomplete-results {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 9999;
	background: #fff;
	border: 1px solid #ccc;
	list-style: none;
	margin: 2px 0 0;
	padding: 4px 0;
	max-height: 250px;
	overflow-y: auto;
	box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.glw-autocomplete-results .glw-autocomplete-item {
	padding: 6px 10px;
	cursor: pointer;
}
.glw-autocomplete-results .glw-autocomplete-item:hover {
	background: #f0f0f0;
}
.glw-autocomplete-results .glw-autocomplete-empty,
.glw-autocomplete-results .glw-autocomplete-loading {
	padding: 6px 10px;
	color: #777;
	font-style: italic;
	cursor: default;
}

/* Box "Aggiungi a una lista regalo" nella scheda prodotto */
.glw-product-box {
	margin: 20px 0;
	padding: 16px 18px;
	border: 1px solid #e5d8c8;
	border-radius: 8px;
	background: #fffaf3;
}
.glw-product-box-header {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 10px;
	font-size: 1.02em;
}
.glw-product-box-icon {
	font-size: 1.3em;
	line-height: 1;
}
.glw-product-box-empty {
	margin: 0;
	color: #555;
}
.glw-add-to-list-form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
.glw-select-list {
	flex: 1 1 200px;
	padding: 6px 8px;
}
.glw-product-box-qty {
	width: 60px;
	padding: 6px 4px;
}
.glw-product-box-qty-label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.85em;
	color: #555;
}
.glw-existing-list-wrap {
	flex: 1 1 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
.glw-add-to-list-message {
	flex-basis: 100%;
	font-size: 0.92em;
}
.glw-add-to-list-message.glw-msg-success {
	color: #2a8a3e;
}
.glw-add-to-list-message.glw-msg-error {
	color: #c0392b;
}
.glw-create-list-link-wrap {
	margin: 10px 0 0;
}
.glw-link-button {
	font-size: 0.9em;
	color: #a34c3f;
	text-decoration: underline;
	cursor: pointer;
	white-space: nowrap;
}
.glw-link-button:hover,
.glw-link-button:focus {
	color: #7a352b;
}
.glw-product-box-notice {
	margin: 0 0 12px;
	padding: 8px 12px;
	border-radius: 6px;
	background: #eaf6ec;
	color: #2a8a3e;
	font-size: 0.9em;
}

/* Barra di avanzamento "donazioni ricevute" (anonima) sulla pagina pubblica */
.glw-progress-box {
	margin-bottom: 28px;
}
.glw-progress-bar-track {
	width: 100%;
	height: 14px;
	border-radius: 999px;
	background: #eee;
	overflow: hidden;
}
.glw-progress-bar-track-sm {
	height: 8px;
	margin-top: 6px;
}
.glw-progress-bar-fill {
	height: 100%;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--glw-event-color, var(--glw-accent)), var(--glw-accent));
	transition: width 0.4s ease;
}
.glw-progress-text {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 10px 0 2px;
	font-size: 0.98em;
}
.glw-progress-percentage {
	font-size: 1.3em;
	font-weight: 800;
	font-style: italic;
	color: var(--glw-event-color, var(--glw-accent));
}
.glw-progress-note {
	margin: 0;
	font-size: 0.78em;
	color: #999;
}

/* Shortcode [glw_active_lists]: griglia con tutte le liste regalo attive */
.glw-active-lists-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
@media (max-width: 900px) {
	.glw-active-lists-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 560px) {
	.glw-active-lists-grid {
		grid-template-columns: 1fr;
	}
}

.glw-active-list-card {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	border: 1px solid #eee;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 1px 4px rgba(0,0,0,0.06);
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.glw-active-list-card:hover {
	box-shadow: 0 4px 14px rgba(0,0,0,0.1);
	transform: translateY(-2px);
	color: inherit;
}
.glw-active-list-cover {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 160px;
}
.glw-active-list-cover img {
	width: 100%;
	height: 160px;
	object-fit: cover;
	display: block;
}
/* Nessuna copertina caricata: stesso gradiente colorato per occasione usato
   nella hero della pagina pubblica della singola lista, per uniformità. */
.glw-active-list-cover-gradient {
	background-image: linear-gradient(135deg, var(--glw-event-color, var(--glw-accent)) 0%, #2b2b2b 100%);
}
.glw-active-list-cover-gradient .glw-active-list-cover-icon {
	color: #fff;
	text-shadow: 0 1px 6px rgba(0,0,0,0.25);
}
.glw-active-list-cover-icon {
	font-size: 3.5em;
}
.glw-active-list-event-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 4px 10px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--glw-event-color, var(--glw-accent));
	color: var(--glw-event-color, var(--glw-accent));
	font-size: 0.75em;
	font-weight: 700;
}
.glw-active-list-body {
	padding: 14px 16px 18px;
}
.glw-active-list-body h4 {
	margin: 0 0 4px;
	font-style: italic;
	font-weight: 800;
	text-transform: uppercase;
	font-size: 1.05em;
}
.glw-active-list-owner {
	margin: 0 0 8px;
	font-size: 0.85em;
	color: #777;
}
.glw-active-list-percentage {
	display: inline-block;
	margin-top: 4px;
	font-size: 0.82em;
	font-weight: 700;
	color: var(--glw-event-color, var(--glw-accent));
}

/* Card compatte prodotti nella dashboard "Le mie liste regalo" (al posto della tabella) */
.glw-items-cards {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.glw-items-card {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 10px;
	border: 1px solid #eee;
	border-radius: 8px;
	background: #fafafa;
}
.glw-items-card-image img {
	width: 44px;
	height: 44px;
	object-fit: cover;
	border-radius: 6px;
	display: block;
}
.glw-items-card-body {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.glw-items-card-name {
	font-weight: 600;
	text-decoration: none;
	color: #222;
}
.glw-items-card-name:hover {
	text-decoration: underline;
}
.glw-items-card-price {
	font-size: 0.85em;
	color: #666;
}
.glw-items-card-qty {
	font-size: 0.8em;
	color: #888;
}
.glw-list-card-orders-note {
	margin: 14px 0 0;
	font-size: 0.85em;
	color: #777;
}

/* Sezione "Donazione libera" nella pagina pubblica della lista: riquadro
   con un tono di colore distinto (variante chiara del colore brand) per
   farlo risaltare rispetto al resto della pagina, invece del semplice
   bordo superiore usato in precedenza. */
.glw-donation-box {
	margin-top: 32px;
}
.glw-donation-card {
	background: #fdece9;
	border: 1px solid #f6d2cc;
	border-radius: 14px;
	overflow: hidden;
}
.glw-donation-image {
	display: block;
	width: 100%;
	max-height: 200px;
	object-fit: cover;
	margin: 0;
}
.glw-donation-card-body {
	padding: 20px 24px 24px;
}
.glw-donation-box h3 {
	margin: 0 0 6px;
	font-style: italic;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	color: var(--glw-accent);
}
.glw-donation-subtitle {
	margin: 0 0 14px;
	color: #7a3a32;
	font-size: 0.95em;
}
.glw-donation-form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	margin-top: 0;
}
.glw-donation-amount-label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.9em;
	color: #555;
}
.glw-donation-amount {
	width: 90px;
	padding: 6px 8px;
	border: 1px solid #ddd;
	border-radius: 4px;
	background: #fff;
}

/* Ordini ricevuti, visibili solo a creatore/admin, dentro la pagina pubblica della lista */
.glw-owner-orders-box {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid #f0f0f0;
}
.glw-owner-orders-box h3 {
	margin: 0 0 6px;
}
.glw-gift-message {
	color: #777;
	font-size: 0.92em;
}

/* Messaggi WooCommerce (aggiunta al carrello riuscita, errori, ecc.) stampati
   manualmente nella pagina della lista, che non passa dai template standard. */
.glw-public-list .woocommerce-message,
.glw-public-list .woocommerce-error,
.glw-public-list .woocommerce-info {
	list-style: none;
	margin: 0 0 20px;
	padding: 12px 16px;
	border-radius: 6px;
	background: #eefbef;
	border-left: 4px solid #46b450;
	color: #234;
}
.glw-public-list .woocommerce-error {
	background: #fbeeee;
	border-left-color: #dc3232;
}
.glw-public-list .woocommerce-info {
	background: #eaf3fa;
	border-left-color: #4f83b0;
}

/* Riferimento alla lista regalo e dedica mostrati da WooCommerce nel
   carrello/checkout (tramite GLW_Cart_Order::get_item_data()): molti temi
   mostrano questi dettagli con etichetta e valore affiancati su due colonne
   (dt/dd con float), che con un valore breve risulta disordinato. Forziamo
   ogni etichetta e il relativo valore su una riga propria, una sotto
   l'altra, indipendentemente dallo stile del tema in uso. */
.woocommerce dl.variation,
.woocommerce-page dl.variation {
	overflow: hidden;
}
.woocommerce dl.variation dt,
.woocommerce dl.variation dd,
.woocommerce-page dl.variation dt,
.woocommerce-page dl.variation dd {
	display: block !important;
	float: none !important;
	width: auto !important;
	clear: both !important;
	margin: 0 0 4px !important;
	padding: 0 !important;
}
.woocommerce dl.variation dd p,
.woocommerce-page dl.variation dd p {
	margin: 0 0 6px;
}
