/* ==========================================================================
   Fiuto — tema per Tappeti Olfattivi per Cani
   Indice: 1 basi · 2 componenti · 3 testata e cassetto · 4 home · 5 schede
           6 pagine e articoli · 7 negozio (EDD) · 8 piè di pagina · 9 plugin
           10 accessibilità e movimento
   ========================================================================== */

/* 1. Basi ---------------------------------------------------------------- */

:root {
	--verde: #3f7a2e;
	--verde-scuro: #24461c;
	--verde-notte: #1a3314;
	--verde-chiaro: #78b662;
	--salvia: #e8f1df;
	--crema: #fbf7f0;
	--sabbia: #f4ecdf;
	--bianco: #fff;
	--inchiostro: #27251f;
	--grigio: #5e594f;
	--linea: #e7dfd1;
	--corallo: #e85f42;
	--sole: #f6c344;
	--cielo: #4aa8dd;
	--lilla: #b08ee0;

	--font-testo: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--font-titoli: "Platypi", ui-serif, Georgia, "Times New Roman", serif;

	--raggio: 22px;
	--raggio-medio: 16px;
	--ombra: 0 1px 2px rgba(36, 70, 28, .06), 0 12px 32px -14px rgba(36, 70, 28, .28);
	--ombra-forte: 0 2px 4px rgba(36, 70, 28, .08), 0 26px 50px -18px rgba(36, 70, 28, .4);
	--larghezza: 1240px;
	--larghezza-testo: 740px;
	--spazio: clamp(18px, 4vw, 40px);
	--sezione: clamp(56px, 9vw, 112px);
	--testata-h: 72px;
	--molla: cubic-bezier(.2, .8, .2, 1);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--testata-h) + 20px);
	overflow-x: clip;
}

body {
	margin: 0;
	background: var(--crema);
	color: var(--inchiostro);
	font-family: var(--font-testo);
	font-size: 1.0625rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}

img,
video,
iframe {
	max-width: 100%;
}

img {
	height: auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-titoli);
	font-weight: 650;
	line-height: 1.12;
	color: var(--verde-scuro);
	letter-spacing: -.01em;
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

a {
	color: var(--verde);
	text-underline-offset: 3px;
	text-decoration-thickness: 1.5px;
}

a:hover {
	color: var(--verde-scuro);
}

:focus-visible {
	outline: 3px solid var(--sole);
	outline-offset: 2px;
	border-radius: 6px;
}

::selection {
	background: var(--sole);
	color: var(--verde-notte);
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.salta:focus {
	clip: auto;
	clip-path: none;
	height: auto;
	width: auto;
	margin: 0;
	z-index: 200;
	top: 12px;
	left: 12px;
	padding: 12px 18px;
	background: var(--verde-scuro);
	color: #fff;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
}

.contenitore {
	width: min(100% - 2 * var(--spazio), var(--larghezza));
	margin-inline: auto;
}

.contenitore--testo {
	width: min(100% - 2 * var(--spazio), var(--larghezza-testo));
}

.contenitore .contenitore--testo {
	width: auto;
	max-width: var(--larghezza-testo);
	margin-inline: auto;
}

.sezione {
	padding-block: var(--sezione);
	position: relative;
}

.contenuto:focus {
	outline: 0;
}

.icona {
	width: 1.25em;
	height: 1.25em;
	flex: none;
	vertical-align: middle;
}

.icona--facebook {
	fill: currentColor;
	stroke: none;
}

/* 2. Componenti ---------------------------------------------------------- */

.occhiello {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-family: var(--font-testo);
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--verde);
	text-decoration: none;
}

/* Tre pallini come i pile colorati dei tappeti. */
.occhiello::before {
	content: "";
	flex: none;
	width: 28px;
	height: 8px;
	background:
		radial-gradient(circle, var(--corallo) 3.4px, transparent 3.9px) 0 50% / 9.5px 8px no-repeat,
		radial-gradient(circle, var(--sole) 3.4px, transparent 3.9px) 9.5px 50% / 9.5px 8px no-repeat,
		radial-gradient(circle, var(--cielo) 3.4px, transparent 3.9px) 19px 50% / 9.5px 8px no-repeat;
}

.occhiello--chiaro {
	color: var(--sole);
}

.occhiello .icona {
	color: var(--corallo);
}

.pulsante,
.edd-submit,
.button,
input[type="submit"],
button[type="submit"]:not(.ricerca__invia),
.wpcf7-submit,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55em;
	min-height: 48px;
	padding: .7em 1.35em;
	border: 2px solid transparent;
	border-radius: 999px;
	background: var(--verde);
	color: #fff;
	font: 700 1rem/1.2 var(--font-testo);
	letter-spacing: .01em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 10px 22px -12px rgba(63, 122, 46, .75);
	transition: transform .18s var(--molla), background-color .18s, box-shadow .18s, color .18s, border-color .18s;
	-webkit-appearance: none;
	appearance: none;
}

.pulsante:hover,
.edd-submit:hover,
.button:hover,
input[type="submit"]:hover,
button[type="submit"]:not(.ricerca__invia):hover,
.wpcf7-submit:hover,
.wp-block-button__link:hover {
	background: var(--verde-scuro);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 14px 26px -12px rgba(36, 70, 28, .8);
}

.pulsante:active,
.edd-submit:active {
	transform: translateY(0);
}

.pulsante .icona {
	transition: transform .2s var(--molla);
}

.pulsante:hover .icona--freccia {
	transform: translateX(3px);
}

.pulsante--vuoto {
	background: transparent;
	color: var(--verde-scuro);
	border-color: var(--verde-scuro);
	box-shadow: none;
}

.pulsante--vuoto:hover {
	background: var(--verde-scuro);
	color: var(--crema);
}

.pulsante--chiaro {
	background: #fff;
	color: var(--verde-scuro);
	border-color: var(--linea);
	box-shadow: var(--ombra);
}

.pulsante--chiaro:hover {
	background: var(--salvia);
	color: var(--verde-scuro);
	border-color: var(--salvia);
}

.pulsante--crema {
	background: var(--crema);
	color: var(--verde-scuro);
	box-shadow: 0 12px 26px -12px rgba(0, 0, 0, .45);
}

.pulsante--crema:hover {
	background: var(--sole);
	color: var(--verde-notte);
}

.pulsante--grande {
	min-height: 56px;
	padding: .85em 1.65em;
	font-size: 1.05rem;
}

.pulsante--piccolo,
.edd-submit.pulsante--piccolo {
	min-height: 42px;
	padding: .5em 1.05em;
	font-size: .95rem;
}

.link-freccia {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 800;
	color: var(--verde);
	text-decoration: none;
}

.link-freccia .icona {
	width: 1.1em;
	height: 1.1em;
	transition: transform .2s var(--molla);
}

.link-freccia:hover .icona {
	transform: translateX(4px);
}

.etichetta {
	display: inline-block;
	padding: 4px 11px;
	border-radius: 999px;
	background: var(--salvia);
	color: var(--verde-scuro);
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
}

a.etichetta:hover {
	background: var(--verde);
	color: #fff;
}

.data {
	color: var(--grigio);
	font-size: .88rem;
	font-weight: 600;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="date"],
select,
textarea,
.edd-input,
.edd-select {
	width: 100%;
	min-height: 48px;
	padding: 11px 14px;
	border: 1.5px solid var(--linea);
	border-radius: 12px;
	background: #fff;
	color: var(--inchiostro);
	font: 500 16px/1.4 var(--font-testo);
	transition: border-color .15s, box-shadow .15s;
}

textarea {
	min-height: 140px;
	resize: vertical;
}

select {
	padding-right: 40px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2324461c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 18px;
	-webkit-appearance: none;
	appearance: none;
}

input:focus,
select:focus,
textarea:focus {
	outline: 0;
	border-color: var(--verde);
	box-shadow: 0 0 0 4px rgba(63, 122, 46, .16);
}

input[type="checkbox"],
input[type="radio"] {
	width: 1.15em;
	height: 1.15em;
	accent-color: var(--verde);
	vertical-align: -.15em;
}

label {
	font-weight: 700;
	color: var(--verde-scuro);
}

/* Titoli di sezione */
.sezione__testa {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px 24px;
	margin-bottom: clamp(24px, 4vw, 44px);
}

.sezione__titolo {
	margin: .25em 0 0;
	max-width: 24ch;
	font-size: clamp(1.9rem, 4vw, 2.9rem);
}

/* Intestazione delle pagine interne */
.intestazione {
	padding-block: clamp(36px, 7vw, 88px) clamp(20px, 4vw, 44px);
	text-align: center;
	background:
		radial-gradient(60% 120% at 100% 0, rgba(246, 195, 68, .16), transparent 60%),
		radial-gradient(50% 110% at 0 0, rgba(120, 182, 98, .18), transparent 60%);
}

.intestazione__dentro {
	width: min(100% - 2 * var(--spazio), 900px);
	margin-inline: auto;
}

.intestazione__titolo {
	margin: .3em 0 0;
	font-size: clamp(2.05rem, 5.2vw, 3.5rem);
}

.intestazione__descrizione {
	max-width: 62ch;
	margin: 16px auto 0;
	color: var(--grigio);
	font-size: 1.1rem;
}

.intestazione__descrizione p {
	margin: 0;
}

/* Punti di forza */
.punti {
	margin: 0;
	padding: 0;
	list-style: none;
}

.punti--striscia {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 12px;
	margin-top: clamp(28px, 5vw, 64px);
}

.punti--striscia li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid var(--linea);
	border-radius: 18px;
	background: #fff;
	color: var(--verde-scuro);
	font-size: .97rem;
	font-weight: 700;
	line-height: 1.3;
}

.punti--striscia .icona {
	width: 42px;
	height: 42px;
	padding: 9px;
	border-radius: 50%;
	background: var(--salvia);
	color: var(--verde);
}

.punti--striscia li:nth-child(2) .icona {
	background: #fdf0cf;
	color: #9a6700;
}

.punti--striscia li:nth-child(3) .icona {
	background: #fde4dc;
	color: #c2462c;
}

.punti--striscia li:nth-child(4) .icona {
	background: #ddeefa;
	color: #1f6f9c;
}

.punti--compatti {
	margin: 0 0 clamp(28px, 4vw, 44px);
}

@media (max-width: 600px) {
	.punti--striscia {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}

	.punti--striscia li {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
		padding: 14px;
		font-size: .88rem;
	}

	.punti--striscia .icona {
		width: 36px;
		height: 36px;
		padding: 8px;
	}
}

/* Messaggi «vuoto» e 404 */
.vuoto {
	max-width: 620px;
	margin: 0 auto;
	text-align: center;
}

.vuoto h1,
.vuoto h2 {
	font-size: clamp(1.7rem, 4vw, 2.4rem);
}

.vuoto p {
	color: var(--grigio);
}

.vuoto__icona {
	width: 64px;
	height: 64px;
	color: var(--verde-chiaro);
}

.vuoto__numero {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .05em;
	margin: 0;
	font-family: var(--font-titoli);
	font-size: clamp(5rem, 16vw, 8rem);
	font-weight: 700;
	line-height: 1;
	color: var(--verde-chiaro);
}

.vuoto__numero .icona {
	width: .8em;
	height: .8em;
	color: var(--corallo);
	transform: rotate(-12deg);
}

.vuoto__pulsanti {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 24px;
}

/* Ricerca */
.ricerca {
	display: flex;
	align-items: center;
	max-width: 480px;
	margin: 24px auto;
	padding: 5px;
	border: 1.5px solid var(--linea);
	border-radius: 999px;
	background: #fff;
	transition: border-color .15s, box-shadow .15s;
}

.ricerca:focus-within {
	border-color: var(--verde);
	box-shadow: 0 0 0 4px rgba(63, 122, 46, .16);
}

.ricerca .ricerca__campo {
	flex: 1;
	min-height: 44px;
	padding: 0 14px;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.ricerca__invia {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: var(--verde);
	color: #fff;
	cursor: pointer;
}

.ricerca__invia:hover {
	background: var(--verde-scuro);
}

/* Paginazione (WP-PageNavi e WordPress) */
.paginazione,
.wp-pagenavi,
.nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: clamp(32px, 5vw, 56px);
}

.wp-pagenavi a,
.wp-pagenavi span,
.nav-links .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--linea);
	border-radius: 999px;
	background: #fff;
	color: var(--verde-scuro);
	font-weight: 700;
	text-decoration: none;
}

.wp-pagenavi .current,
.nav-links .page-numbers.current {
	border-color: var(--verde);
	background: var(--verde);
	color: #fff;
}

.wp-pagenavi .pages,
.wp-pagenavi .extend {
	border: 0;
	background: transparent;
	color: var(--grigio);
	font-weight: 600;
}

.wp-pagenavi a:hover,
.nav-links a.page-numbers:hover {
	background: var(--salvia);
}

/* 3. Testata e cassetto -------------------------------------------------- */

.testata {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(251, 247, 240, .88);
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	backdrop-filter: saturate(1.4) blur(14px);
	border-bottom: 1px solid transparent;
	transition: border-color .2s, box-shadow .2s;
}

.admin-bar .testata {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .testata {
		top: 46px;
	}
}

@media (max-width: 600px) {
	.admin-bar .testata {
		top: 0;
	}
}

.testata.is-staccata {
	border-bottom-color: var(--linea);
	box-shadow: 0 10px 30px -22px rgba(36, 70, 28, .45);
}

.testata__dentro {
	display: flex;
	align-items: center;
	gap: 16px;
	min-height: var(--testata-h);
}

.marchio {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	color: var(--verde-scuro);
	text-decoration: none;
}

.marchio:hover {
	color: var(--verde-scuro);
}

.marchio__logo {
	width: 46px;
	height: auto;
	flex: none;
	transition: transform .35s var(--molla);
}

.marchio:hover .marchio__logo {
	transform: rotate(-8deg) scale(1.05);
}

.marchio__nome {
	display: flex;
	flex-direction: column;
	margin: 0;
	min-width: 0;
	line-height: 1;
}

.marchio__riga1 {
	font-family: var(--font-titoli);
	font-size: 1.28rem;
	font-weight: 700;
	letter-spacing: -.01em;
	white-space: nowrap;
}

.marchio__riga2 {
	margin-top: 4px;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--verde);
}

.navigazione {
	display: none;
	margin-left: auto;
}

.menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.menu--principale {
	display: flex;
	align-items: center;
	gap: 2px;
}

.menu--principale > li {
	position: relative;
}

.menu--principale > li > a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 13px;
	border-radius: 999px;
	color: var(--inchiostro);
	font-size: .95rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .15s, color .15s;
}

.menu--principale > li > a:hover,
.menu--principale > li:focus-within > a {
	background: var(--salvia);
	color: var(--verde-scuro);
}

.menu--principale > .current-menu-item > a,
.menu--principale > .current-menu-ancestor > a,
.menu--principale > .current_page_item > a {
	color: var(--verde);
}

.menu--principale > .menu-item-has-children > a::after {
	content: "";
	width: 9px;
	height: 9px;
	margin-left: 1px;
	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='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 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='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.menu--principale .sub-menu {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	z-index: 10;
	min-width: 270px;
	margin: 0;
	padding: 8px;
	list-style: none;
	border: 1px solid var(--linea);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--ombra-forte);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .18s, transform .18s var(--molla), visibility .18s;
}

/* Ponte invisibile: il sottomenu non si chiude passando col mouse nello spazio vuoto. */
.menu--principale .sub-menu::before {
	content: "";
	position: absolute;
	top: -12px;
	left: 0;
	right: 0;
	height: 12px;
}

.menu--principale > li:hover > .sub-menu,
.menu--principale > li:focus-within > .sub-menu,
.menu--principale > li.is-aperto > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.menu--principale .sub-menu a {
	display: block;
	padding: 10px 14px;
	border-radius: 12px;
	color: var(--inchiostro);
	font-size: .95rem;
	font-weight: 600;
	text-decoration: none;
}

.menu--principale .sub-menu a:hover {
	background: var(--crema);
	color: var(--verde-scuro);
}

.menu--principale .sub-menu .current-menu-item > a {
	color: var(--verde);
}

/* La voce che porta alla vetrina diventa un pulsante. */
.menu--principale > .voce--negozio > a {
	margin-left: 6px;
	background: var(--verde);
	color: #fff;
	box-shadow: 0 10px 22px -12px rgba(63, 122, 46, .75);
}

.menu--principale > .voce--negozio > a:hover,
.menu--principale > .voce--negozio.current-menu-item > a {
	background: var(--verde-scuro);
	color: #fff;
}

.testata__azioni {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-left: auto;
}

.navigazione + .testata__azioni {
	margin-left: 8px;
}

.carrello {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 14px 0 11px;
	border: 1px solid var(--linea);
	border-radius: 999px;
	background: #fff;
	color: var(--verde-scuro);
	font-size: .92rem;
	font-weight: 800;
	text-decoration: none;
	transition: background-color .15s, border-color .15s;
}

.carrello:hover {
	border-color: var(--verde-chiaro);
	background: var(--salvia);
	color: var(--verde-scuro);
}

.carrello__conteggio {
	position: absolute;
	top: -5px;
	left: 24px;
	display: none;
	place-items: center;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border: 2px solid var(--crema);
	border-radius: 10px;
	background: var(--corallo);
	color: #fff;
	font-size: .7rem;
	font-weight: 800;
	line-height: 1;
}

.carrello--pieno .carrello__conteggio {
	display: grid;
}

.carrello--pieno .icona {
	animation: fiuto-saltello .5s var(--molla);
}

@keyframes fiuto-saltello {
	40% {
		transform: translateY(-3px) rotate(-6deg);
	}
}

.testata__apri,
.cassetto__chiudi {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--verde-scuro);
	color: #fff;
	cursor: pointer;
}

.cassetto__chiudi {
	background: #fff;
	color: var(--verde-scuro);
	border: 1px solid var(--linea);
}

/* Il menu del sito ha sei voci (con emoji) più il pulsante evidenziato: sta intero da 1280 px. */
@media (min-width: 1280px) {
	.navigazione {
		display: block;
		min-width: 0;
	}

	.testata__apri {
		display: none;
	}

	.marchio {
		flex-shrink: 0;
	}
}

@media (min-width: 1280px) and (max-width: 1400px) {
	.menu--principale > li > a {
		padding: 9px 10px;
		font-size: .92rem;
	}

	.marchio__riga1 {
		font-size: 1.18rem;
	}
}

@media (max-width: 420px) {
	.carrello__totale {
		display: none;
	}

	.carrello {
		padding: 0 11px;
	}

	.marchio__riga1 {
		font-size: 1.12rem;
	}

	.marchio__logo {
		width: 40px;
	}
}

/* Testata del checkout */
.testata--essenziale {
	position: relative;
	background: var(--crema);
	border-bottom: 1px solid var(--linea);
}

.testata--essenziale .testata__dentro {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
}

.testata--essenziale .marchio {
	justify-self: center;
}

.link-indietro {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--grigio);
	font-size: .92rem;
	font-weight: 700;
	text-decoration: none;
}

.testata__sicuro {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	justify-self: end;
	margin: 0;
	color: var(--verde);
	font-size: .9rem;
	font-weight: 800;
}

@media (max-width: 640px) {
	.testata--essenziale .testata__dentro {
		grid-template-columns: auto 1fr auto;
	}

	.link-indietro span,
	.testata__sicuro span,
	.testata--essenziale .marchio__nome {
		display: none;
	}
}

/* Cassetto (menu sul telefono) */
.cassetto {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	justify-content: flex-end;
}

.cassetto[hidden] {
	display: none;
}

.cassetto__velo {
	position: absolute;
	inset: 0;
	background: rgba(26, 51, 20, .45);
	opacity: 0;
	transition: opacity .3s;
}

.cassetto__pannello {
	position: relative;
	display: flex;
	flex-direction: column;
	width: min(430px, 100%);
	height: 100%;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--crema);
	transform: translateX(100%);
	transition: transform .35s var(--molla);
}

.cassetto.is-aperto .cassetto__velo {
	opacity: 1;
}

.cassetto.is-aperto .cassetto__pannello {
	transform: none;
}

.cassetto__testa {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px var(--spazio);
	border-bottom: 1px solid var(--linea);
}

.cassetto__nav {
	padding: 8px var(--spazio);
}

.menu--cassetto > li {
	position: relative;
	border-bottom: 1px solid var(--linea);
}

.menu--cassetto a {
	display: block;
	padding: 15px 52px 15px 0;
	color: var(--verde-scuro);
	font-family: var(--font-titoli);
	font-size: 1.4rem;
	font-weight: 650;
	text-decoration: none;
}

.menu--cassetto .current-menu-item > a {
	color: var(--verde);
}

.menu--cassetto .sub-menu {
	display: none;
	margin: 0 0 12px;
	padding: 0 0 0 14px;
	list-style: none;
	border-left: 3px solid var(--salvia);
}

.menu--cassetto .is-aperto > .sub-menu {
	display: block;
}

.menu--cassetto .sub-menu a {
	padding: 9px 0;
	font-family: var(--font-testo);
	font-size: 1.05rem;
	font-weight: 600;
}

.sottomenu-apri {
	position: absolute;
	top: 10px;
	right: 0;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid var(--linea);
	border-radius: 50%;
	background: #fff;
	color: var(--verde-scuro);
	cursor: pointer;
}

.sottomenu-apri .icona {
	transition: transform .2s;
}

.is-aperto > .sottomenu-apri .icona {
	transform: rotate(180deg);
}

.menu--principale .sottomenu-apri {
	display: none;
}

.cassetto__piede {
	display: grid;
	gap: 12px;
	margin-top: auto;
	padding: 20px var(--spazio) 28px;
}

.cassetto__contatto {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--verde-scuro);
	font-weight: 700;
	text-decoration: none;
}

.cassetto__contatto .icona {
	color: var(--verde);
}

/* 4. Home ---------------------------------------------------------------- */

.apertura {
	position: relative;
	padding-block: clamp(28px, 6vw, 72px) clamp(40px, 6vw, 80px);
	background:
		radial-gradient(45% 60% at 92% 12%, rgba(246, 195, 68, .2), transparent 65%),
		radial-gradient(40% 55% at 0% 100%, rgba(120, 182, 98, .16), transparent 70%);
}

.apertura__griglia {
	display: grid;
	gap: clamp(20px, 4vw, 48px);
	align-items: center;
}

.apertura__titolo {
	position: relative;
	margin: .22em 0 .38em;
	font-size: clamp(2.7rem, 7vw, 4.9rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.02em;
}

/* Sottolineatura disegnata a mano. */
.apertura__titolo::after {
	content: "";
	display: block;
	width: min(190px, 46%);
	height: 16px;
	margin-top: .18em;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 16' fill='none'%3E%3Cpath d='M3 11c22-7 40-7 58-2s34 6 54 0 46-8 82-1' stroke='%23e85f42' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E") left center / contain no-repeat;
}

.apertura__sottotitolo {
	max-width: 38ch;
	margin: 0;
	color: var(--grigio);
	font-size: clamp(1.1rem, 1.7vw, 1.3rem);
	line-height: 1.6;
}

.apertura__pulsanti {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 30px 0 18px;
}

.apertura__nota {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	color: var(--grigio);
	font-size: .95rem;
	font-weight: 600;
}

.apertura__nota .icona {
	color: var(--verde);
}

/* Niente «isolation» qui: la foto deve fondersi con lo sfondo della pagina, non con un livello vuoto. */
.apertura__figura {
	position: relative;
	margin: 0;
}

.apertura__macchia {
	position: absolute;
	inset: 8% 1% 3% 5%;
	z-index: 0;
	border-radius: 46% 54% 42% 58% / 52% 44% 56% 48%;
	background: linear-gradient(140deg, #e3efd8 0%, #fbeec9 100%);
	animation: fiuto-macchia 14s ease-in-out infinite alternate;
}

@keyframes fiuto-macchia {
	to {
		border-radius: 58% 42% 55% 45% / 45% 58% 42% 55%;
	}
}

/* Il bianco della foto si fonde con la macchia colorata dietro. */
.apertura__foto {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	mix-blend-mode: multiply;
}

.apertura__bollino {
	position: absolute;
	z-index: 2;
	left: 2%;
	bottom: 6%;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 10px 16px;
	border-radius: 999px;
	background: #fff;
	color: var(--verde-scuro);
	font-size: .95rem;
	font-weight: 800;
	box-shadow: var(--ombra-forte);
	transform: rotate(-4deg);
}

.apertura__bollino .icona {
	color: var(--corallo);
	fill: var(--corallo);
}

@media (min-width: 900px) {
	.apertura__griglia {
		grid-template-columns: 1.05fr .95fr;
	}
}

@media (max-width: 899px) {
	.apertura__figura {
		order: -1;
		max-width: 560px;
		margin-inline: auto;
	}
}

/* Riquadro «su misura»: bordo a cuciture, come il pile dei tappeti. */
.su-misura {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: 16px 20px;
	margin-top: clamp(28px, 4vw, 52px);
	padding: clamp(20px, 3vw, 32px);
	border: 2px dashed #d8c7aa;
	border-radius: var(--raggio);
	background: var(--sabbia);
}

.su-misura__icona {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: #fff;
	color: var(--corallo);
	box-shadow: var(--ombra);
}

.su-misura__icona .icona {
	width: 28px;
	height: 28px;
}

.su-misura__testo h3 {
	margin: 0 0 4px;
	font-size: 1.4rem;
}

.su-misura__testo p {
	margin: 0;
	color: var(--grigio);
}

.su-misura__azioni {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 18px;
	grid-column: 1 / -1;
}

.su-misura__tel {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--verde-scuro);
	font-weight: 800;
	text-decoration: none;
}

@media (min-width: 900px) {
	.su-misura {
		grid-template-columns: auto 1fr auto;
	}

	.su-misura__azioni {
		grid-column: auto;
		flex-direction: column;
		align-items: flex-end;
	}
}

/* Sezioni colorate con l'orlo a smerlo (come la frangia del pile). */
.sezione--info,
.sezione--galleria {
	background: var(--salvia);
	margin-top: 14px;
}

.sezione--galleria {
	background: var(--sabbia);
}

.sezione--info::before,
.sezione--galleria::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -13px;
	height: 14px;
	background: radial-gradient(circle at 50% 100%, var(--salvia) 9.5px, transparent 10px) 0 0 / 22px 14px repeat-x;
}

.sezione--galleria::before {
	background-image: radial-gradient(circle at 50% 100%, var(--sabbia) 9.5px, transparent 10px);
}

.sezione--info + .sezione--video {
	padding-top: var(--sezione);
}

/* Video */
.video {
	display: grid;
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
}

.video__descrizione {
	color: var(--grigio);
	font-size: 1.1rem;
	max-width: 42ch;
}

.video__cornice {
	position: relative;
	isolation: isolate;
}

.video__cornice::before {
	content: "";
	position: absolute;
	inset: 5% -2% -4% 3%;
	z-index: -1;
	border-radius: var(--raggio);
	background: linear-gradient(140deg, #fbeec9, #e3efd8);
	transform: rotate(2deg);
}

.video__cornice > *,
.video__cornice .freedomplayer,
.video__cornice .flowplayer {
	border-radius: var(--raggio);
	overflow: hidden;
	box-shadow: var(--ombra-forte);
}

.video__cornice p:empty {
	display: none;
}

@media (min-width: 960px) {
	.video {
		grid-template-columns: .8fr 1.2fr;
	}
}

/* Testimonianze: scorrono di lato sul telefono, griglia sul computer. */
.scorrevole {
	margin-inline: calc(-1 * var(--spazio));
	padding-inline: var(--spazio);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.scorrevole::-webkit-scrollbar {
	display: none;
}

.griglia--testimonianze {
	grid-auto-flow: column;
	grid-auto-columns: min(84%, 340px);
	grid-template-columns: none;
	padding-bottom: 14px;
}

.griglia--testimonianze > li {
	scroll-snap-align: start;
}

@media (min-width: 960px) {
	.scorrevole {
		margin-inline: 0;
		padding-inline: 0;
		overflow: visible;
	}

	/* Sei colonne: tre schede per riga; se l'ultima riga ne ha due, si allargano e
	   diventano orizzontali; se ne ha una sola, sta al centro. Nessun buco. */
	.griglia--testimonianze {
		grid-auto-flow: row;
		grid-template-columns: repeat(6, 1fr);
		grid-auto-columns: auto;
	}

	.griglia--testimonianze > li {
		grid-column: span 2;
	}

	.griglia--testimonianze > li:nth-child(3n + 1):nth-last-child(2),
	.griglia--testimonianze > li:nth-child(3n + 2):last-child {
		grid-column: span 3;
	}

	.griglia--testimonianze > li:nth-child(3n + 1):last-child {
		grid-column: 2 / span 4;
	}

	.griglia--testimonianze > li:nth-child(3n + 1):nth-last-child(2) .scheda,
	.griglia--testimonianze > li:nth-child(3n + 2):last-child .scheda,
	.griglia--testimonianze > li:nth-child(3n + 1):last-child .scheda {
		flex-direction: row;
	}

	.griglia--testimonianze > li:nth-child(3n + 1):nth-last-child(2) .scheda__media,
	.griglia--testimonianze > li:nth-child(3n + 2):last-child .scheda__media,
	.griglia--testimonianze > li:nth-child(3n + 1):last-child .scheda__media {
		flex: 0 0 42%;
		aspect-ratio: auto;
	}
}

/* Galleria in home: mosaico */
.galleria-home {
	display: grid;
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
}

.galleria-home__testo p:not(.occhiello) {
	color: var(--grigio);
	font-size: 1.1rem;
}

.galleria-home__foto {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-auto-rows: clamp(110px, 26vw, 150px);
	grid-auto-flow: dense;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.galleria-home__foto li:first-child {
	grid-column: span 2;
	grid-row: span 2;
}

.galleria-home__foto li:last-child {
	grid-column: span 2;
}

.galleria-home__foto a,
.galleria-home__foto img {
	display: block;
	width: 100%;
	height: 100%;
}

.galleria-home__foto img {
	object-fit: cover;
	border-radius: 16px;
	transition: transform .4s var(--molla), filter .3s;
}

.galleria-home__foto a {
	overflow: hidden;
	border-radius: 16px;
}

.galleria-home__foto a:hover img {
	transform: scale(1.06);
}

@media (min-width: 700px) {
	.galleria-home__foto {
		grid-template-columns: repeat(4, 1fr);
		grid-auto-rows: clamp(100px, 11vw, 150px);
	}
}

@media (min-width: 960px) {
	.galleria-home {
		grid-template-columns: .65fr 1.35fr;
	}
}

/* Invito finale */
.sezione--invito {
	padding-top: 0;
}

.invito {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding: clamp(44px, 7vw, 92px) clamp(22px, 5vw, 72px);
	border-radius: clamp(24px, 4vw, 40px);
	background:
		radial-gradient(circle at 12% 18%, rgba(246, 195, 68, .35) 0 6px, transparent 7px),
		radial-gradient(circle at 86% 22%, rgba(232, 95, 66, .45) 0 5px, transparent 6px),
		radial-gradient(circle at 78% 82%, rgba(74, 168, 221, .45) 0 7px, transparent 8px),
		radial-gradient(circle at 20% 78%, rgba(176, 142, 224, .45) 0 5px, transparent 6px),
		radial-gradient(70% 90% at 100% 100%, #2f5c25, transparent 70%),
		var(--verde-scuro);
	color: #e2ecd8;
	text-align: center;
}

.invito__filigrana {
	position: absolute;
	right: -50px;
	bottom: -60px;
	z-index: -1;
	width: clamp(200px, 30vw, 340px);
	opacity: .1;
	filter: brightness(0) invert(1);
	transform: rotate(-12deg);
}

.invito__titolo {
	max-width: 20ch;
	margin: .35em auto .3em;
	color: #fff;
	font-size: clamp(2rem, 4.6vw, 3.3rem);
}

.invito__testo {
	max-width: 46ch;
	margin: 0 auto;
	font-size: 1.1rem;
}

.invito__testo a {
	color: var(--sole);
	font-weight: 800;
	white-space: nowrap;
}

.invito__pulsanti {
	display: flex;
	justify-content: center;
	margin-top: 28px;
}

/* 5. Schede e griglie ---------------------------------------------------- */

.griglia {
	display: grid;
	gap: clamp(16px, 2.4vw, 28px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.griglia--prodotti {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr));
}

.griglia--articoli,
.griglia--info {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 310px), 1fr));
}

.griglia > li {
	display: flex;
	min-width: 0;
}

.scheda {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	overflow: hidden;
	border-radius: var(--raggio);
	background: #fff;
	box-shadow: var(--ombra);
	transition: transform .25s var(--molla), box-shadow .25s;
}

.scheda:hover {
	transform: translateY(-4px);
	box-shadow: var(--ombra-forte);
}

.scheda__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--sabbia);
}

.scheda__foto {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s var(--molla);
}

.scheda:hover .scheda__foto {
	transform: scale(1.04);
}

.scheda__segnaposto {
	display: grid;
	place-items: center;
	height: 100%;
	color: var(--verde-chiaro);
}

.scheda__media--vuota {
	background:
		radial-gradient(circle at 20% 25%, rgba(246, 195, 68, .5) 0 7px, transparent 8px),
		radial-gradient(circle at 78% 30%, rgba(232, 95, 66, .4) 0 6px, transparent 7px),
		radial-gradient(circle at 70% 78%, rgba(74, 168, 221, .4) 0 8px, transparent 9px),
		radial-gradient(circle at 26% 74%, rgba(176, 142, 224, .45) 0 6px, transparent 7px),
		var(--salvia);
}

.griglia > li:nth-child(even) .scheda__media--vuota {
	background-color: var(--sabbia);
}

.scheda__segnaposto .icona {
	width: 64px;
	height: 64px;
}

.scheda__corpo {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	padding: 20px 22px 22px;
}

.scheda__titolo {
	margin: 0;
	font-size: 1.3rem;
	line-height: 1.2;
}

.scheda__titolo a {
	color: inherit;
	text-decoration: none;
}

/* Tutta la scheda è cliccabile; pulsanti e link interni restano sopra. */
.scheda__titolo a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.scheda__fondo,
.scheda__corpo .link-freccia,
.scheda .etichetta {
	position: relative;
	z-index: 2;
}

.scheda__riassunto {
	margin: 0;
	color: var(--grigio);
	font-size: .98rem;
	line-height: 1.55;
}

.scheda__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin: 0;
}

.scheda__corpo > .link-freccia {
	margin-top: auto;
	padding-top: 6px;
}

/* Tappeti: foto su fondo colorato (il bianco della foto si fonde). */
.scheda--prodotto .scheda__media {
	background: linear-gradient(140deg, #fdf3e1, #f7e7c9);
}

.griglia > li:nth-child(3n + 2) .scheda--prodotto .scheda__media {
	background: linear-gradient(140deg, #edf5e6, #dcebd0);
}

.griglia > li:nth-child(3n + 3) .scheda--prodotto .scheda__media {
	background: linear-gradient(140deg, #f4eefc, #e6dcf6);
}

.scheda--prodotto .scheda__foto {
	object-fit: contain;
	padding: 7%;
	mix-blend-mode: multiply;
}

.scheda__bollino {
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 6px 12px;
	border-radius: 999px;
	background: #fff;
	color: var(--verde-scuro);
	font-size: .84rem;
	font-weight: 800;
	box-shadow: 0 6px 16px -8px rgba(36, 70, 28, .5);
}

.scheda__dettaglio {
	display: flex;
	align-items: flex-start;
	gap: 7px;
	margin: 0;
	color: var(--grigio);
	font-size: .96rem;
	font-weight: 600;
	line-height: 1.4;
}

.scheda__dettaglio .icona {
	width: 18px;
	height: 18px;
	margin-top: 1px;
	color: var(--verde-chiaro);
}

.scheda__fondo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	margin-top: auto;
	padding-top: 12px;
}

.scheda__prezzo {
	margin: 0;
}

.prezzo {
	font-family: var(--font-titoli);
	font-size: 1.65rem;
	font-weight: 700;
	line-height: 1;
	color: var(--verde-scuro);
	white-space: nowrap;
}

.prezzo--libero {
	font-size: 1.15rem;
}

.scheda__scopri {
	font-size: .92rem;
}

.scheda .edd_download_quantity_wrapper,
.scheda .edd-cart-added-alert,
.scheda .edd_purchase_submit_wrapper .edd-cart-ajax-alert {
	display: none !important;
}

.scheda .edd_download_purchase_form {
	margin: 0;
}

.scheda .edd_purchase_submit_wrapper {
	margin: 0;
}

/* Pagine informative */
.scheda__numero {
	position: absolute;
	right: 14px;
	bottom: 14px;
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: #fff;
	color: var(--verde);
	font-family: var(--font-titoli);
	font-size: 1.15rem;
	font-weight: 700;
	box-shadow: var(--ombra);
}

/* Testimonianze */
.scheda--testimonianza .scheda__media {
	aspect-ratio: 16 / 10;
}

.scheda__cuore {
	width: 26px;
	height: 26px;
	color: var(--corallo);
	fill: rgba(232, 95, 66, .15);
}

.scheda__titolo--citazione {
	font-size: 1.35rem;
	font-style: italic;
	font-weight: 600;
	line-height: 1.25;
}

.scheda__autore {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	color: var(--verde);
	font-weight: 800;
}

.scheda__autore .icona {
	width: 18px;
	height: 18px;
}

/* 6. Pagine e articoli --------------------------------------------------- */

.testo {
	font-size: 1.075rem;
	line-height: 1.75;
	color: #34312b;
}

.testo > *:first-child {
	margin-top: 0;
}

.testo p,
.testo ul,
.testo ol {
	margin: 0 0 1.15em;
}

.testo h2 {
	margin: 1.7em 0 .55em;
	font-size: clamp(1.55rem, 3vw, 2.1rem);
}

.testo h3 {
	margin: 1.5em 0 .5em;
	font-size: 1.38rem;
}

.testo h1 {
	margin: 1.3em 0 .5em;
	font-size: clamp(1.8rem, 3.4vw, 2.4rem);
}

.testo a {
	text-decoration-line: underline;
}

.testo strong {
	color: #1f1d18;
}

.testo ul,
.testo ol {
	padding-left: 1.3em;
}

.testo li {
	margin-bottom: .45em;
}

.testo li::marker {
	color: var(--verde);
	font-weight: 800;
}

.testo blockquote,
.testo .wp-block-quote {
	margin: 1.6em 0;
	padding: 6px 0 6px 22px;
	border-left: 4px solid var(--verde-chiaro);
	color: var(--verde-scuro);
	font-family: var(--font-titoli);
	font-size: 1.25rem;
	font-style: italic;
}

.testo img {
	border-radius: var(--raggio-medio);
}

.testo figure {
	margin: 1.6em 0;
}

.testo figcaption {
	margin-top: 8px;
	color: var(--grigio);
	font-size: .9rem;
	text-align: center;
}

.testo .wp-block-gallery {
	gap: 12px;
}

.testo .wp-block-gallery img,
.testo .blocks-gallery-item img {
	border-radius: 14px;
}

.testo .alignwide {
	width: min(100vw - 2 * var(--spazio), var(--larghezza));
	max-width: none;
	margin-inline: calc(50% - min(50vw - var(--spazio), var(--larghezza) / 2));
}

.testo .alignfull {
	width: 100vw;
	max-width: none;
	margin-inline: calc(50% - 50vw);
}

.testo .alignleft {
	float: left;
	margin: .3em 1.4em 1em 0;
}

.testo .alignright {
	float: right;
	margin: .3em 0 1em 1.4em;
}

.testo .aligncenter {
	display: block;
	margin-inline: auto;
}

.testo iframe,
.testo .wp-block-embed iframe {
	border-radius: var(--raggio-medio);
}

.testo hr {
	height: 0;
	margin: 2.2em 0;
	border: 0;
	border-top: 2px dashed var(--linea);
}

.testo table {
	width: 100%;
	border-collapse: collapse;
	font-size: .98rem;
}

.testo th,
.testo td {
	padding: 12px 14px;
	border-bottom: 1px solid var(--linea);
	text-align: left;
	vertical-align: top;
}

.testo th {
	color: var(--verde-scuro);
	font-weight: 800;
}

/* Gallerie classiche [gallery] */
.gallery {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	margin: 1.6em 0;
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-1 {
	grid-template-columns: 1fr;
}

.gallery-item {
	margin: 0;
}

.gallery-item img {
	width: 100%;
	border-radius: 14px;
}

/* Embed di WordPress */
.wp-embedded-content {
	width: 100%;
	border-radius: var(--raggio-medio);
}

/* Pagine */
.pagina .contenitore--testo,
.pagina .contenitore--pieno {
	padding-bottom: var(--sezione);
}

/* Sulle pagine le gallerie escono dalla colonna di testo: le foto dei tappeti respirano. */
@media (min-width: 900px) {
	.pagina .contenitore--testo .testo > .wp-block-gallery,
	.pagina .contenitore--testo .testo > .gallery {
		width: min(100vw - 2 * var(--spazio), 1080px);
		max-width: none;
		margin-inline: calc(50% - min(50vw - var(--spazio), 540px));
	}
}

/* Articolo */
.intestazione--articolo .articolo__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px 14px;
	margin: 0;
}

.articolo__griglia {
	display: grid;
	gap: clamp(32px, 5vw, 56px);
	padding-bottom: var(--sezione);
}

.articolo__corpo {
	width: 100%;
	max-width: var(--larghezza-testo);
	min-width: 0;
	margin-inline: auto;
}

@media (min-width: 1100px) {
	.articolo__griglia--barra {
		grid-template-columns: minmax(0, var(--larghezza-testo)) 340px;
		justify-content: center;
		align-items: start;
	}

	.articolo__griglia--barra .barra {
		position: sticky;
		top: calc(var(--testata-h) + 24px);
	}
}

.articolo__immagine {
	margin: 0 0 32px;
	overflow: hidden;
	border-radius: var(--raggio);
	box-shadow: var(--ombra);
}

.articolo__immagine img {
	display: block;
	width: 100%;
}

.articolo__immagine--video iframe {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}

.articolo__tag {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.articolo__tag a {
	display: inline-block;
	padding: 5px 12px;
	border: 1px solid var(--linea);
	border-radius: 999px;
	background: #fff;
	color: var(--grigio);
	font-size: .85rem;
	font-weight: 700;
	text-decoration: none;
}

.articolo__tag a::before {
	content: "#";
	color: var(--verde-chiaro);
}

.articolo__tag a:hover {
	border-color: var(--verde-chiaro);
	color: var(--verde-scuro);
}

.articolo__vicini {
	display: grid;
	gap: 12px;
	margin-top: 32px;
}

.vicino {
	display: block;
	padding: 16px 20px;
	border: 1px solid var(--linea);
	border-radius: var(--raggio-medio);
	background: #fff;
	color: var(--verde-scuro);
	font-weight: 700;
	line-height: 1.35;
	text-decoration: none;
	transition: border-color .15s, transform .2s var(--molla);
}

.vicino span {
	display: block;
	margin-bottom: 4px;
	color: var(--grigio);
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.vicino:hover {
	border-color: var(--verde-chiaro);
	transform: translateY(-2px);
	color: var(--verde-scuro);
}

@media (min-width: 700px) {
	.articolo__vicini {
		grid-template-columns: 1fr 1fr;
	}

	.vicino--succ {
		grid-column: 2;
		text-align: right;
	}
}

/* Barra laterale */
.barra .widget {
	margin-bottom: 20px;
	padding: 22px;
	border-radius: var(--raggio);
	background: #fff;
	box-shadow: var(--ombra);
}

.widget__titolo {
	margin: 0 0 14px;
	font-size: 1.25rem;
}

.widget ul {
	margin: 0;
	padding-left: 1.1em;
}

.widget img {
	border-radius: 12px;
}

.barra .fb-page,
.barra .fb-page span,
.barra .fb-page iframe {
	max-width: 100% !important;
}

/* Riquadro di invito in fondo ad articoli e pagine */
.invito-breve {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: 14px 18px;
	margin-block: clamp(32px, 5vw, 48px);
	padding: 20px 22px;
	border-radius: var(--raggio);
	background: #fff;
	box-shadow: var(--ombra);
}

.invito-breve__logo {
	width: 58px;
	height: 58px;
	object-fit: contain;
	border-radius: 0;
}

.invito-breve__testo p {
	margin: 0;
	color: var(--grigio);
	line-height: 1.4;
}

.invito-breve__testo .invito-breve__titolo {
	color: var(--verde-scuro);
	font-family: var(--font-titoli);
	font-size: 1.3rem;
	font-weight: 700;
}

.invito-breve__titolo .icona {
	color: var(--corallo);
	fill: rgba(232, 95, 66, .18);
}

.invito-breve .pulsante {
	grid-column: 1 / -1;
}

@media (min-width: 700px) {
	.invito-breve {
		grid-template-columns: auto 1fr auto;
	}

	.invito-breve .pulsante {
		grid-column: auto;
	}
}

/* Commenti */
.commenti {
	margin-top: 40px;
}

.commenti__titolo {
	font-size: 1.5rem;
}

.commenti__lista,
.commenti__lista .children {
	margin: 0;
	padding: 0;
	list-style: none;
}

.commenti__lista .children {
	margin-left: clamp(16px, 4vw, 40px);
}

.comment-body {
	margin-bottom: 16px;
	padding: 18px 20px;
	border-radius: var(--raggio-medio);
	background: #fff;
	box-shadow: var(--ombra);
}

.comment-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	font-size: .9rem;
}

.comment-meta .avatar {
	border-radius: 50%;
}

.comment-meta a {
	color: var(--grigio);
	text-decoration: none;
}

.comment-respond {
	margin-top: 28px;
}

.comment-form p {
	margin: 0 0 16px;
}

.comment-form label {
	display: block;
	margin-bottom: 6px;
}

/* 7. Negozio (Easy Digital Downloads) ------------------------------------ */

.prodotto {
	padding-block: 20px 0;
}

.briciole {
	margin-bottom: 18px;
}

.briciole a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--grigio);
	font-size: .95rem;
	font-weight: 700;
	text-decoration: none;
}

.briciole a:hover {
	color: var(--verde-scuro);
}

.prodotto__griglia {
	display: grid;
	grid-template-areas: "galleria" "lato" "descrizione";
	gap: 28px;
	padding-bottom: clamp(40px, 6vw, 80px);
}

.prodotto__galleria {
	grid-area: galleria;
	min-width: 0;
}

.prodotto__lato {
	grid-area: lato;
	min-width: 0;
}

.prodotto__descrizione {
	grid-area: descrizione;
	min-width: 0;
}

@media (min-width: 960px) {
	.prodotto__griglia {
		grid-template-columns: minmax(0, 1.15fr) minmax(330px, .85fr);
		grid-template-areas: "galleria lato" "descrizione lato";
		gap: 36px clamp(32px, 4vw, 64px);
		align-items: start;
	}

	.prodotto__lato {
		position: sticky;
		top: calc(var(--testata-h) + 24px);
	}
}

.prodotto__principale {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: var(--raggio);
	background: linear-gradient(140deg, #fdf3e1, #edf5e6);
}

.prodotto__foto {
	display: block;
	width: 100%;
	height: 100%;
	padding: 4%;
	object-fit: contain;
	mix-blend-mode: multiply;
	transition: opacity .2s;
}

.prodotto__foto.is-cambio {
	opacity: 0;
}

.prodotto__miniature {
	display: flex;
	gap: 10px;
	margin: 12px 0 0;
	padding: 2px;
	overflow-x: auto;
	list-style: none;
}

.miniatura {
	display: block;
	width: 76px;
	height: 76px;
	padding: 0;
	overflow: hidden;
	border: 2px solid var(--linea);
	border-radius: 14px;
	background: #fff;
	cursor: pointer;
	transition: border-color .15s, transform .2s var(--molla);
}

.miniatura img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.miniatura:hover {
	transform: translateY(-2px);
}

.miniatura.is-attiva {
	border-color: var(--verde);
}

.pannello {
	padding: clamp(22px, 3vw, 32px);
	border-radius: var(--raggio);
	background: #fff;
	box-shadow: var(--ombra);
}

.pannello__titolo {
	margin: .35em 0 .25em;
	font-size: clamp(1.7rem, 3vw, 2.3rem);
}

.pannello__dettaglio {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 0;
	color: var(--grigio);
	font-weight: 700;
	line-height: 1.4;
}

.pannello__dettaglio .icona {
	color: var(--verde-chiaro);
}

.pannello__prezzo {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 20px 0 18px;
}

.pannello__prezzo .prezzo {
	font-size: 2.4rem;
}

.pannello__prezzo small {
	color: var(--grigio);
	font-weight: 600;
}

.pannello__spedizione {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 14px 0 0;
	color: var(--grigio);
	font-size: .95rem;
	font-weight: 600;
}

.pannello__spedizione .icona {
	color: var(--verde);
}

.pannello__punti {
	display: grid;
	gap: 10px;
	margin: 20px 0 0;
	padding: 18px 0 0;
	list-style: none;
	border-top: 2px dashed var(--linea);
}

.pannello__punti li {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--verde-scuro);
	font-size: .96rem;
	font-weight: 700;
}

.pannello__punti .icona {
	color: var(--verde);
}

/* Modulo d'acquisto di EDD dentro il pannello */
/* I pulsanti di EDD hanno regole più specifiche (.edd-submit.button…): qui si pareggiano. */
.edd-submit.button,
.edd-submit.button:visited,
.edd-submit.button.gray,
.edd-submit.button.white,
.edd-submit.button.blue,
.edd_purchase_submit_wrapper a.edd-add-to-cart.edd-has-js,
#edd-purchase-button,
[type="submit"].edd-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: 48px;
	padding: .7em 1.35em;
	border: 2px solid transparent;
	border-radius: 999px;
	background: var(--verde);
	color: #fff;
	font: 700 1rem/1.2 var(--font-testo);
	white-space: normal;
	box-shadow: 0 10px 22px -12px rgba(63, 122, 46, .75);
}

.edd-submit.button:hover,
.edd-submit.button:focus,
.edd-submit.button:active,
.edd-submit.button.gray:hover,
.edd-submit.button.gray:focus,
.edd-submit.button.white:hover,
.edd-submit.button.white:focus,
.edd-submit.button.blue:hover,
.edd-submit.button.blue:focus,
.edd-submit.button.gray.active,
.edd-submit.button.white.active,
.edd-submit.button.blue.active,
#edd-purchase-button:hover,
[type="submit"].edd-submit:hover {
	border-color: transparent;
	background: var(--verde-scuro);
	color: #fff;
}

.edd-submit.button.pulsante--piccolo,
.edd_purchase_submit_wrapper a.edd-add-to-cart.edd-has-js.pulsante--piccolo {
	min-height: 42px;
	padding: .5em 1.1em;
	font-size: .95rem;
}

.edd-submit.button.edd_go_to_checkout {
	background: var(--verde-scuro);
}

.pannello__acquisto .edd_download_purchase_form {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
	margin: 0;
}

.pannello__acquisto .edd_download_quantity_wrapper {
	flex: 0 0 96px;
	margin: 0;
}

.pannello__acquisto .edd_download_quantity_wrapper input {
	height: 56px;
	text-align: center;
	font-weight: 800;
	font-size: 1.1rem;
}

.pannello__acquisto .edd_purchase_submit_wrapper {
	flex: 1 1 180px;
	margin: 0;
}

.pannello__acquisto .edd-submit {
	width: 100%;
	min-height: 56px;
	font-size: 1.05rem;
}

@media (max-width: 420px) {
	.pannello__acquisto .edd_download_quantity_wrapper {
		flex-basis: 70px;
	}

	.pannello__acquisto .edd-submit {
		padding-inline: .9em;
		font-size: 1rem;
	}
}

.pannello__acquisto .edd_price_options,
.pannello__acquisto .edd_price_options ul {
	flex: 1 1 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pannello__acquisto .edd_price_options li {
	margin-bottom: 8px;
}

.pannello__acquisto .edd_price_options label {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	border: 1.5px solid var(--linea);
	border-radius: 14px;
	cursor: pointer;
}

.pannello__acquisto .edd_price_options label:has(input:checked) {
	border-color: var(--verde);
	background: var(--salvia);
}

.pannello__acquisto .edd-cart-added-alert {
	display: block;
	margin-top: 8px;
	color: var(--verde);
	font-weight: 700;
}

/* Prezzo libero (EDD Custom Prices): «Scegli il tuo prezzo [ 500,00 ] €» su una riga. */
.edd-cp-container {
	display: flex;
	flex: 1 1 100%;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin: 0 0 6px;
	color: var(--verde-scuro);
	font-weight: 700;
}

.edd-cp-container input.edd_cp_price {
	flex: 1 1 0%;
	min-width: 90px;
	width: auto;
	font-size: 1.2rem;
	font-weight: 800;
}

/* Prodotti senza foto (es. «Pagamento personalizzato»): testo e pannello affiancati. */
.prodotto__griglia--senza-foto .prodotto__galleria {
	display: none;
}

.prodotto__griglia--senza-foto {
	grid-template-areas: "lato" "descrizione";
}

@media (min-width: 960px) {
	.prodotto__griglia--senza-foto {
		grid-template-areas: "descrizione lato";
	}
}

.prodotto__widget {
	margin-top: 18px;
}

.prodotto__widget .widget {
	margin-bottom: 14px;
	padding: 20px 22px;
	border: 2px dashed #d8c7aa;
	border-radius: var(--raggio);
	background: var(--sabbia);
}

.prodotto__widget .widget__titolo {
	font-size: 1.15rem;
}

.prodotto__widget .widget_text ul {
	display: grid;
	gap: 8px;
	padding: 0;
	list-style: none;
}

.prodotto__widget .widget_text li {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--verde-scuro);
	font-weight: 700;
}

.prodotto__widget .widget_text li::before {
	content: "";
	flex: none;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--verde) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center / 14px no-repeat;
}

.prodotto__sottotitolo {
	margin: 0 0 .6em;
	font-size: clamp(1.5rem, 3vw, 1.9rem);
}

.sezione--altri {
	padding-top: 0;
}

/* Barra «Aggiungi» che resta in basso sul telefono */
.barra-acquisto {
	position: fixed;
	right: 12px;
	bottom: max(12px, env(safe-area-inset-bottom));
	left: 12px;
	z-index: 40;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 8px 8px 18px;
	border: 1px solid var(--linea);
	border-radius: 999px;
	background: rgba(255, 255, 255, .96);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: var(--ombra-forte);
	transform: translateY(160%);
	transition: transform .35s var(--molla);
}

.barra-acquisto[hidden] {
	display: none;
}

.barra-acquisto.is-visibile {
	transform: none;
}

.barra-acquisto__testo {
	display: flex;
	flex-direction: column;
	min-width: 0;
	line-height: 1.2;
}

.barra-acquisto__nome {
	overflow: hidden;
	color: var(--grigio);
	font-size: .82rem;
	font-weight: 700;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.barra-acquisto .prezzo {
	font-size: 1.3rem;
}

@media (min-width: 960px) {
	.barra-acquisto {
		display: none !important;
	}
}

/* La barra non deve coprire l'ultima riga del piè di pagina. */
@media (max-width: 959px) {
	.con-barra-acquisto .piede__legale {
		padding-bottom: 84px;
	}
}

/* Vetrina */
.vetrina__testo {
	margin-top: clamp(36px, 5vw, 56px);
}

/* Checkout, ricevuta, cronologia degli acquisti */
.pagina--negozio .contenitore--negozio {
	width: min(100% - 2 * var(--spazio), 1120px);
	margin-inline: auto;
	padding-bottom: var(--sezione);
}

.checkout-essenziale .intestazione {
	padding-block: clamp(24px, 4vw, 44px) clamp(16px, 3vw, 28px);
}

.pagina--negozio .testo {
	font-size: 1rem;
	line-height: 1.6;
}

/* Cassa: a sinistra avvisi e modulo, a destra il riepilogo (carrello, totale, codice sconto) che
   resta fermo mentre si compila. Il tema sposta il riepilogo dentro #edd_checkout_form_wrap (inc/edd.php). */
#edd_checkout_form_wrap {
	display: grid;
	/* minmax(0, …): senza, la colonna prende la larghezza minima del modulo (408px) e al telefono sborda. */
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
	align-items: start;
}

#edd_checkout_form_wrap > .cassa-riepilogo {
	order: -1;
}

@media (min-width: 960px) {
	#edd_checkout_form_wrap {
		grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
		gap: 0 32px;
	}

	#edd_checkout_form_wrap > * {
		grid-column: 1;
	}

	#edd_checkout_form_wrap > .cassa-riepilogo {
		grid-column: 2;
		grid-row: 1 / span 20;
		order: 0;
		position: sticky;
		top: 24px;
	}
}

.cassa-riepilogo,
#edd_checkout_cart_form {
	margin: 0;
	padding: 20px;
	border-radius: var(--raggio);
	background: #fff;
	box-shadow: var(--ombra);
}

.cassa-riepilogo #edd_checkout_cart_form {
	padding: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
}

/* Codice sconto sotto il totale, dentro la scheda del riepilogo. */
#edd_checkout_form_wrap .cassa-riepilogo #edd_discount_code {
	margin: 16px 0 0;
	padding: 16px 0 0;
	border: 0;
	border-top: 2px dashed var(--linea);
	border-radius: 0;
	background: none;
	box-shadow: none;
}

/* Senza il riquadro grigio che EDD dà a questi due paragrafi: la scheda c'è già. */
#edd_checkout_form_wrap .cassa-riepilogo #edd_show_discount,
#edd_checkout_form_wrap .cassa-riepilogo #edd-discount-code-wrap {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}

#edd_checkout_form_wrap .cassa-riepilogo #edd_show_discount {
	color: var(--grigio);
	font-size: .95rem;
}

.cassa-riepilogo #edd-discount-code-wrap .edd-description {
	display: none;
}

/* L'errore dello sconto: EDD mette un .edd_error dentro un altro; ne resta uno solo, a tutta riga. */
#edd_checkout_form_wrap .cassa-riepilogo #edd-discount-error-wrap {
	display: block;
	margin: 12px 0 0;
}

#edd-discount-error-wrap > .edd_error {
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}

/* Avvisi di Checkout Message: a tutta colonna, sopra il modulo. */
.cassa-avvisi {
	display: grid;
	gap: 12px;
	margin: 0;
}

/* Più specifiche delle regole generali di .edd-alert (margine sotto) e del paragrafo interno. */
#edd_checkout_form_wrap .cassa-avvisi > * {
	width: 100%;
	max-width: none;
	margin: 0;
}

#edd_checkout_form_wrap .cassa-avvisi p:last-child {
	margin-bottom: 0;
}

/* Su due colonne la griglia non ha spazio fra le righe: lo dà l'avviso. */
@media (min-width: 960px) {
	.cassa-avvisi {
		margin-bottom: 20px;
	}
}

#edd_checkout_cart {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: .96rem;
}

/* Riepilogo del carrello: righe compatte (foto, nome, prezzo; sotto quantità e «rimuovi")
   invece di una tabella a tre colonne, che nella colonna laterale andava a capo ogni due parole. */
#edd_checkout_cart,
#edd_checkout_cart tbody,
#edd_checkout_cart tfoot {
	display: block;
	width: 100%;
}

#edd_checkout_cart thead {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

#edd_checkout_cart tr.edd_cart_item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "nome prezzo" "azioni azioni";
	align-items: center;
	gap: 8px 14px;
	padding: 2px 0 14px;
	border-bottom: 1px solid var(--linea);
}

#edd_checkout_cart tr.edd_cart_item + tr.edd_cart_item {
	padding-top: 14px;
}

#edd_checkout_cart tr.edd_cart_item td {
	display: block;
	padding: 0;
	border: 0;
}

#edd_checkout_cart tr.edd_cart_item td.edd_cart_item_name {
	grid-area: nome;
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

#edd_checkout_cart .edd_cart_item_image {
	flex: none;
}

#edd_checkout_cart .edd_cart_item_image img {
	display: block;
	width: 56px;
	height: 56px;
	margin: 0;
	border-radius: 12px;
	object-fit: cover;
	background: #fff;
}

#edd_checkout_cart .edd_checkout_cart_item_title {
	color: var(--verde-scuro);
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.35;
}

#edd_checkout_cart tr.edd_cart_item td.edd_cart_item_price {
	grid-area: prezzo;
	color: var(--verde-scuro);
	font-weight: 800;
	text-align: right;
	white-space: nowrap;
}

#edd_checkout_cart tr.edd_cart_item td.edd_cart_actions {
	grid-area: azioni;
	display: flex;
	align-items: center;
	gap: 14px;
	padding-left: 68px;
	text-align: left;
}

#edd_checkout_cart tr.edd_cart_fee {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--linea);
	color: var(--grigio);
}

#edd_checkout_cart tr.edd_cart_fee td {
	padding: 0;
	border: 0;
}

#edd_checkout_cart tr.edd_cart_fee td:not(.edd_cart_fee_label):not(.edd_cart_fee_amount) {
	display: none;
}

#edd_checkout_cart tr.edd_cart_fee .edd_cart_fee_amount {
	color: var(--verde-scuro);
	font-weight: 700;
}

#edd_checkout_cart tfoot tr {
	display: block;
}

#edd_checkout_cart tfoot th {
	display: block;
	padding: 14px 0 0;
	border: 0;
}

#edd_checkout_cart tfoot .edd_cart_total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	text-align: left;
}

#edd_checkout_cart .edd_cart_remove_item_btn {
	color: var(--corallo);
	font-size: .85rem;
	font-weight: 700;
}

#edd_checkout_cart .edd-item-quantity {
	width: 70px;
	min-height: 40px;
	padding: 6px 8px;
}

#edd_checkout_cart tfoot th {
	color: var(--verde-scuro);
	font-size: 1.1rem;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
	background: transparent;
}

#edd_checkout_cart .edd_cart_amount {
	font-family: var(--font-titoli);
	font-size: 1.45rem;
	color: var(--verde-scuro);
}

#edd_checkout_form_wrap fieldset,
#edd_login_form fieldset,
#edd_register_form fieldset,
#edd_profile_editor_form fieldset {
	min-width: 0;
	margin: 0 0 20px;
	padding: clamp(18px, 3vw, 28px);
	border: 1px solid var(--linea);
	border-radius: var(--raggio);
	background: #fff;
	box-shadow: var(--ombra);
}

#edd_checkout_form_wrap fieldset fieldset {
	margin: 0;
	padding: 0;
	border: 0;
	box-shadow: none;
}

#edd_checkout_form_wrap legend,
#edd_login_form legend,
#edd_register_form legend,
#edd_profile_editor_form legend {
	float: left;
	width: 100%;
	margin: 0 0 14px;
	padding: 0;
	color: var(--verde-scuro);
	font-family: var(--font-titoli);
	font-size: 1.35rem;
	font-weight: 650;
	line-height: 1.2;
	white-space: normal; /* EDD 3.7 li vuole su una riga: al telefono «Seleziona il metodo di pagamento» non ci sta. */
}

#edd_checkout_form_wrap legend + *,
#edd_login_form legend + *,
#edd_register_form legend + *,
#edd_profile_editor_form legend + * {
	clear: both;
}

#edd_checkout_form_wrap p,
#edd_login_form p,
#edd_register_form p,
#edd_profile_editor_form p {
	margin: 0 0 16px;
}

.edd-label,
#edd_checkout_form_wrap label {
	display: block;
	margin-bottom: 6px;
	color: var(--verde-scuro);
	font-size: .95rem;
	font-weight: 700;
}

.edd-description,
#edd_checkout_form_wrap span.edd-description {
	display: block;
	margin: -2px 0 8px;
	color: var(--grigio);
	font-size: .86rem;
}

.edd-required-indicator {
	color: var(--corallo);
}

/* EDD fissa «width: 70%» con selettori come #edd_checkout_form_wrap input.edd-input. */
#edd_checkout_form_wrap input.edd-input,
#edd_checkout_form_wrap textarea.edd-input,
#edd_checkout_form_wrap select.edd-select,
#edd_checkout_form_wrap select,
#edd_checkout_form_wrap input[type="text"],
#edd_checkout_form_wrap input[type="email"],
#edd_checkout_form_wrap input[type="tel"],
#edd_checkout_form_wrap textarea {
	width: 100%;
	max-width: 100%;
}

#edd_checkout_form_wrap input[type="checkbox"] + label,
#edd_checkout_form_wrap label input[type="checkbox"] {
	display: inline;
}

/* Solo il campo di Stripe ha la cornice (il suo contenitore #edd-card-wrap no: farebbe un doppio riquadro). */
#edd_checkout_form_wrap .edd-stripe-card-element,
#edd-stripe-card-element,
.edd-stripe-card-element {
	padding: 14px;
	border: 1.5px solid var(--linea);
	border-radius: 12px;
	background: #fff;
}

#edd_payment_mode_select_wrap,
#edd_payment_mode_select {
	margin-bottom: 20px;
}

#edd-payment-mode-wrap {
	display: grid;
	gap: 10px;
}

#edd-payment-mode-wrap label,
#edd_checkout_form_wrap #edd-payment-mode-wrap label.edd-gateway-option {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 14px 16px;
	border: 1.5px solid var(--linea);
	border-radius: 14px;
	background: #fff;
	cursor: pointer;
}

#edd-payment-mode-wrap label:has(input:checked) {
	border-color: var(--verde);
	background: var(--salvia);
}

#edd_purchase_submit {
	margin-top: 8px;
}

#edd_checkout_form_wrap #edd_final_total_wrap,
#edd_final_total_wrap {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 16px;
	padding: 16px 18px;
	border-radius: 14px;
	background: var(--salvia);
	color: var(--verde-scuro);
	font-weight: 700;
}

#edd_final_total_wrap .edd_cart_amount {
	font-family: var(--font-titoli);
	font-size: 1.6rem;
}

#edd-purchase-button,
#edd_purchase_form .edd-submit {
	width: 100%;
	min-height: 58px;
	font-size: 1.1rem;
}

#edd_show_discount,
#edd-discount-code-wrap {
	margin-bottom: 18px;
}

#edd-discount-code-wrap .edd-discount-code-field-wrap {
	display: flex;
	gap: 10px;
}

#edd-discount-code-wrap .edd-apply-discount {
	min-height: 48px;
	white-space: nowrap;
}

.edd-alert,
.edd_errors,
.edd_error,
.edd_success,
.wpcf7-response-output {
	margin: 0 0 18px;
	padding: 14px 18px;
	border: 0;
	border-left: 5px solid var(--cielo);
	border-radius: 14px;
	background: #e9f5fc;
	color: #164a69;
	font-weight: 600;
}

.edd-alert-error,
.edd_errors,
.edd_error,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
	border-left-color: var(--corallo);
	background: #fdece7;
	color: #8a2a17;
}

.edd-alert-success,
.edd_success,
.wpcf7 form.sent .wpcf7-response-output {
	border-left-color: var(--verde);
	background: var(--salvia);
	color: var(--verde-scuro);
}

.edd_errors p,
.edd-alert p {
	margin: 0;
}

/* Ricevuta e cronologia: tabelle leggibili anche sul telefono */
#edd_purchase_receipt,
#edd_purchase_receipt_products,
#edd_user_history,
.edd-table {
	width: 100%;
	margin: 0 0 28px;
	border-collapse: collapse;
	border-radius: var(--raggio);
	background: #fff;
	box-shadow: var(--ombra);
	overflow: hidden;
}

#edd_purchase_receipt th,
#edd_purchase_receipt td,
#edd_purchase_receipt_products th,
#edd_purchase_receipt_products td,
#edd_user_history th,
#edd_user_history td {
	padding: 14px 16px;
	border-bottom: 1px solid var(--linea);
	text-align: left;
}

#edd_purchase_receipt thead th,
#edd_purchase_receipt_products thead th,
#edd_user_history thead th {
	background: var(--salvia);
	color: var(--verde-scuro);
}

@media (max-width: 700px) {
	#edd_user_history,
	#edd_purchase_receipt_products {
		display: block;
		overflow-x: auto;
		white-space: nowrap;
	}
}

/* Elenco [downloads] di EDD, se usato in una pagina */
.edd_downloads_list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
	gap: 24px;
}

.edd_downloads_list::after {
	display: none;
}

.edd_downloads_list .edd_download {
	float: none;
	width: auto !important;
	margin: 0;
}

.edd_downloads_list .edd_download_inner {
	height: 100%;
	margin: 0;
	padding: 0 0 20px;
	overflow: hidden;
	border-radius: var(--raggio);
	background: #fff;
	box-shadow: var(--ombra);
	text-align: center;
}

.edd_downloads_list .edd_download_image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	padding: 6%;
	object-fit: contain;
	border-radius: 0;
	background: linear-gradient(140deg, #fdf3e1, #edf5e6);
	mix-blend-mode: multiply;
}

.edd_downloads_list .edd_download_title {
	margin: 14px 16px 6px;
	font-size: 1.2rem;
}

.edd_downloads_list .edd_download_title a {
	color: var(--verde-scuro);
	text-decoration: none;
}

/* Widget carrello di EDD */
.widget_edd_cart_widget .edd-cart {
	margin: 0;
	padding: 0;
	list-style: none;
}

.widget_edd_cart_widget .edd-cart-item {
	padding: 8px 0;
	border-bottom: 1px solid var(--linea);
}

.edd-loading {
	border-color: rgba(255, 255, 255, .3) rgba(255, 255, 255, .3) rgba(255, 255, 255, .3) #fff;
}

.js .edd-no-js {
	display: none !important;
}

/* 8. Piè di pagina ------------------------------------------------------- */

.piede {
	margin-top: var(--sezione);
}

.sezione--invito + .piede,
.prodotto + .piede {
	margin-top: 0;
}

.piede__widget {
	position: relative;
	padding-block: clamp(48px, 7vw, 84px);
	background: var(--sabbia);
}

.piede__widget::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -13px;
	height: 14px;
	background: radial-gradient(circle at 50% 100%, var(--sabbia) 9.5px, transparent 10px) 0 0 / 22px 14px repeat-x;
}

.piede__colonne {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	align-items: start;
}

.piede__colonna .widget {
	margin-bottom: 20px;
}

.piede__colonna .widget_text {
	padding: clamp(22px, 3vw, 32px);
	border-radius: var(--raggio);
	background: #fff;
	box-shadow: var(--ombra);
}

.piede__colonna .textwidget {
	color: var(--grigio);
}

.piede__colonna .textwidget p {
	margin: 0 0 .8em;
}

.piede__colonna .textwidget em {
	color: #3c382f;
	font-family: var(--font-titoli);
	font-size: 1.12rem;
	line-height: 1.55;
}

.piede__colonna .textwidget em strong {
	display: block;
	margin-top: 12px;
	color: var(--verde);
	font-family: var(--font-testo);
	font-size: .95rem;
	font-style: normal;
	line-height: 1.45;
}

.piede__colonna .textwidget img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 0 14px;
	border-radius: var(--raggio-medio);
}

.piede__colonna .textwidget strong a {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	color: var(--verde);
	font-weight: 800;
	text-decoration: none;
}

.piede__colonna .textwidget strong a::after {
	content: "→";
	transition: transform .2s var(--molla);
}

.piede__colonna .textwidget strong a:hover::after {
	transform: translateX(4px);
}

.piede__fondo {
	padding-block: clamp(44px, 6vw, 64px) 28px;
	background: var(--verde-notte);
	color: #cfdcc3;
}

.piede__griglia {
	display: grid;
	gap: 32px;
}

@media (min-width: 800px) {
	.piede__griglia {
		grid-template-columns: 1.4fr 1fr 1fr;
	}
}

.marchio--piede {
	color: #fff;
}

.marchio--piede:hover {
	color: #fff;
}

.marchio--piede .marchio__logo {
	width: 62px;
	padding: 8px;
	border-radius: 50%;
	background: var(--crema);
}

.marchio--piede .marchio__riga2 {
	color: var(--verde-chiaro);
}

.piede__frase {
	max-width: 38ch;
	margin: 16px 0 18px;
	color: #b6c8a8;
}

.piede__social {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 999px;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	transition: background-color .15s;
}

.piede__social:hover {
	background: rgba(255, 255, 255, .1);
	color: #fff;
}

.piede__titolo {
	margin: 0 0 14px;
	color: #fff;
	font-family: var(--font-testo);
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.piede__lista {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.piede__lista a {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: #cfdcc3;
	text-decoration: none;
}

.piede__lista a:hover {
	color: #fff;
}

.piede__lista .icona {
	color: var(--verde-chiaro);
}

.piede__legale {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 24px;
	margin-top: 40px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, .12);
	color: #97ab89;
	font-size: .86rem;
}

.piede__legale p {
	margin: 0;
}

.piede__legale a {
	color: #cfdcc3;
}

.piede--essenziale {
	margin-top: 0;
	padding-block: 24px;
	border-top: 1px solid var(--linea);
	color: var(--grigio);
	font-size: .9rem;
	text-align: center;
}

.piede--essenziale p {
	margin: 4px 0;
}

/* 9. Plugin -------------------------------------------------------------- */

/* Contact Form 7 */
.wpcf7 form p {
	margin: 0 0 16px;
}

.wpcf7 form label {
	display: block;
}

.wpcf7-form-control-wrap {
	display: block;
	margin-top: 6px;
}

.wpcf7-not-valid-tip {
	margin-top: 6px;
	color: var(--corallo);
	font-size: .9rem;
	font-weight: 700;
}

.wpcf7 .wpcf7-not-valid {
	border-color: var(--corallo);
}

.wpcf7-list-item {
	margin: 0 16px 0 0;
}

.wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
}

.wpcf7-spinner {
	vertical-align: middle;
}

/* FV Player */
.freedomplayer,
.flowplayer {
	max-width: 100% !important;
}

/* 10. Comparse, movimento ridotto, stampa -------------------------------- */

.js .rivela {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .6s ease, transform .6s var(--molla);
}

.js .rivela.is-visibile {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}

	.js .rivela {
		opacity: 1;
		transform: none;
	}
}

@media print {
	.testata,
	.cassetto,
	.piede,
	.barra-acquisto,
	.invito-breve,
	.barra {
		display: none !important;
	}

	body {
		background: #fff;
	}
}
