/* ==========================================================================
   NOI — Eugenio in Via Di Gioia
   Cielo azzurro polveroso con grana, lettering bianco a pennello,
   testo da macchina da scrivere.
   ========================================================================== */

/* Font della copertina: Bohemian Typewriter (Lukas Krakora), file nel tema. */
@font-face {
	font-family: "Bohemian Typewriter";
	src: url("../fonts/bohemian-typewriter.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

:root {
	--sky-deep: #045a78;
	--sky: #027a9f;
	--sky-mid: #0284ab;
	--sky-light: #027ca3; /* azzurro della copertina, scurito quanto basta per il testo bianco AA */
	--haze: #9dbfcb;
	--paper: #f6f3ec;
	--paper-dim: rgba(246, 243, 236, 0.9);
	--line: rgba(246, 243, 236, 0.35);
	--ink: #13232b;
	--tree: #1a1e18;
	--skin: #d39a73;
	--error: #ffb4a2;

	--font-type: "Bohemian Typewriter", "Courier New", Courier, ui-monospace, monospace;
	/* Font da lettura per i testi lunghi o "di servizio" (legali, descrizioni prodotto, moduli, cookie) */
	--font-text: Arial, "Helvetica Neue", Helvetica, system-ui, sans-serif;

	--wrap: 1240px;
	--gutter: clamp(16px, 4vw, 40px);
	/* iPhone: la pagina arriva sotto la Dynamic Island e la barra del menu si allunga fin lassù */
	--safe-top: env(safe-area-inset-top, 0px);
	--header-h: calc(76px + var(--safe-top));
	--radius: 2px;
}

/* ---------- Base ---------- */

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; background: var(--sky-deep); }

body {
	margin: 0;
	min-height: 100vh;
	/* trasparente: il colore pieno sta su html, così la grana (body::before) resta visibile sopra */
	background-color: transparent;
	color: var(--paper);
	font-family: var(--font-type);
	font-size: 17px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
	/* iPhone in orizzontale: i contenuti non finiscono sotto la tacca */
	padding-left: env(safe-area-inset-left, 0px);
	padding-right: env(safe-area-inset-right, 0px);
}

/* Cielo: la grana dello sfondo del disco (sky-grain.webp: piastrella senza giunture ricavata dal file
   originale, grana della stessa grandezza delle grafiche ma a doppia risoluzione, quindi nitida anche
   su retina e telefoni). Sopra: la leggera luce del cielo e un velo scuro per leggere il testo bianco. */
body::before,
body::after {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: -1;
}
body::before {
	background:
		linear-gradient(rgba(0, 30, 48, 0.18), rgba(0, 30, 48, 0.18)),
		linear-gradient(100deg, rgba(255, 255, 255, 0.05), transparent 45%, rgba(0, 20, 40, 0.1)),
		url("../img/sky-grain.webp") 0 0 / 640px 640px repeat,
		var(--sky);
}
body::after {
	z-index: 9999;
	opacity: 0.12;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1.2 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }

:focus-visible { outline: 2px dashed var(--paper); outline-offset: 3px; }

h1, h2, h3, h4 { margin: 0 0 0.6em; line-height: 1.1; font-weight: 700; text-transform: uppercase; letter-spacing: 0.01em; }

p { margin: 0 0 1em; }

::selection { background: var(--paper); color: var(--sky-deep); }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.noi-skip {
	position: absolute; left: 12px; top: -60px; z-index: 10000;
	background: var(--paper); color: var(--sky-deep); padding: 10px 14px; font-weight: 700;
}
.noi-skip:focus { top: 12px; }

.noi-wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); position: relative; }
.noi-wrap--narrow { max-width: 860px; }

.noi-main { display: block; }

/* ---------- Tipografia ricorrente ---------- */

.noi-title {
	font-size: clamp(2.2rem, 6vw, 4.5rem);
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0;
}

.noi-kicker,
.noi-label {
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	margin: 0 0 1rem;
	color: var(--paper-dim);
}

.noi-link {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.85rem;
	white-space: nowrap;
}
.noi-link::after { content: " →"; }

/* ---------- Pulsanti ---------- */

.noi-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.fluentform .ff-btn-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 48px;
	padding: 0.7em 1.4em;
	border: 2px solid var(--paper);
	border-radius: var(--radius);
	background: transparent;
	color: var(--paper);
	font-family: var(--font-type);
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s, transform 0.2s;
}
.noi-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background: var(--paper);
	color: var(--sky-deep);
	text-decoration: none;
}

.noi-btn--solid,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce #place_order,
.woocommerce .single_add_to_cart_button,
.woocommerce a.checkout-button,
.fluentform .ff-btn-submit {
	background: var(--paper);
	color: var(--sky-deep);
}
.noi-btn--solid:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce #place_order:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce a.checkout-button:hover,
.fluentform .ff-btn-submit:hover {
	background: transparent;
	color: var(--paper);
	transform: translateY(-1px);
}

.noi-btn--ghost { border-style: dashed; opacity: 0.75; }

.woocommerce a.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] { opacity: 0.5; cursor: not-allowed; }

.noi-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.noi-actions--small .noi-btn { min-height: 40px; padding: 0.5em 1em; font-size: 0.78rem; }

/* ---------- Header ---------- */

.noi-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 100;
	height: var(--header-h);
	padding: var(--safe-top) env(safe-area-inset-right, 0px) 0 env(safe-area-inset-left, 0px);
}
/* Colore pieno anche sull'header stesso (non solo sul livello ::before): Safari su iPhone
   usa questo colore per la zona della Dynamic Island, così barra e menu sono un pezzo unico. */
.noi-header.is-scrolled,
body:not(.home) .noi-header { background-color: var(--sky-deep); }
body.noi-ev .noi-header { background-color: #f2ede3; }
/* iPhone (Safari 26): sopra la barra, nella zona della Dynamic Island, Safari mostra la pagina che scorre.
   Questa "prolunga" dello stesso colore sale oltre il bordo dello schermo e copre quella zona. */
.noi-header::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: 200px;
	background: inherit;
	pointer-events: none;
}
/* Lo sfondo sfocato sta su un livello a parte: se fosse sull'header,
   il menu mobile (position: fixed) resterebbe chiuso dentro l'header. */
.noi-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -2;
	background: var(--sky-deep); /* colore pieno: niente trasparenze sotto la barra */
	box-shadow: 0 1px 0 var(--line);
	opacity: 0;
	transition: opacity 0.3s;
}
.noi-header.is-scrolled::before,
body:not(.home) .noi-header::before { opacity: 1; }
/* Da telefono la barra è sempre piena, anche in cima alla home */
@media (max-width: 860px) {
	.noi-header { background-color: var(--sky-deep); }
	.noi-header::before { opacity: 1; transition: none; }
}
.admin-bar .noi-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .noi-header { top: 46px; } }

.noi-header__inner {
	height: 100%;
	max-width: var(--wrap);
	margin: 0 auto;
	padding: 0 var(--gutter);
	display: flex;
	align-items: center;
	gap: 24px;
}

.noi-logo img { width: auto; height: 52px; }

.noi-nav { margin-left: auto; display: flex; align-items: center; gap: 28px; }
.noi-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 28px; }
.noi-nav__list a {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.95rem;
	text-decoration: none;
	padding: 6px 0;
	border-bottom: 2px solid transparent;
}
.noi-nav__list a:hover,
.noi-nav__list .current-menu-item > a,
.noi-nav__list .current_page_item > a { border-bottom-color: currentColor; }

.noi-header__tools { display: flex; align-items: center; gap: 6px; }
.noi-header__icon {
	position: relative;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	text-decoration: none;
}
.noi-cart-count {
	position: absolute;
	top: 3px;
	right: 1px;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: 9px;
	background: var(--paper);
	color: var(--sky-deep);
	font-size: 11px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
}
.noi-cart-count.is-empty { display: none; }

.noi-burger {
	display: none;
	width: 44px;
	height: 44px;
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
	position: relative;
}
.noi-burger span:not(.screen-reader-text) {
	position: absolute;
	left: 10px;
	right: 10px;
	height: 2px;
	background: currentColor;
	transition: transform 0.25s, top 0.25s;
}
.noi-burger span:nth-child(1) { top: 17px; }
.noi-burger span:nth-child(2) { top: 25px; }
.noi-burger[aria-expanded="true"] span:nth-child(1) { top: 21px; transform: rotate(45deg); }
.noi-burger[aria-expanded="true"] span:nth-child(2) { top: 21px; transform: rotate(-45deg); }

@media (max-width: 860px) {
	:root { --header-h: calc(64px + var(--safe-top)); }
	.noi-logo img { height: 44px; }
	.noi-burger { display: block; }
	.noi-header__tools { margin-left: auto; }
	.noi-nav {
		position: fixed;
		inset: 0;
		z-index: -1;
		margin: 0;
		flex-direction: column;
		justify-content: center;
		gap: 40px;
		background: var(--sky-deep);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.25s, visibility 0.25s;
	}
	.noi-nav.is-open { opacity: 1; visibility: visible; }
	.noi-nav__list { flex-direction: column; align-items: center; gap: 18px; }
	.noi-nav__list a { font-size: 2rem; }
	body.noi-menu-open { overflow: hidden; }
}

/* ---------- Sezioni ---------- */

.noi-section { padding: clamp(64px, 10vw, 128px) 0; position: relative; }
.noi-section__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: clamp(24px, 4vw, 48px);
	padding-bottom: 16px;
	border-bottom: 2px solid var(--paper);
}

/* ---------- Hero ---------- */

.noi-hero {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	align-items: flex-end;
	padding: calc(var(--header-h) + 40px) 0 clamp(48px, 8vh, 96px);
	overflow: hidden;
}
.noi-hero__spoon {
	/* Mano con il cucchiaio della copertina, scontornata: scende dall'alto come nel disco */
	position: absolute;
	top: 0;
	right: 6%;
	height: min(94%, 940px);
	width: auto;
	max-width: none;
	filter: drop-shadow(0 30px 40px rgba(0, 0, 0, 0.25));
}
/* Nuvole a pennello (noi_cloud), ai lati del manifesto: ondeggiano piano, dietro ai contenuti. */
.noi-cloud {
	position: absolute;
	z-index: 0;
	height: auto;
	pointer-events: none;
	user-select: none;
	animation: noi-cloud-drift 18s ease-in-out infinite alternate;
}
@keyframes noi-cloud-drift {
	from { transform: translateX(0); }
	to   { transform: translateX(22px); }
}
.noi-cloud--side-l { top: 14%; left: 3%; width: clamp(130px, 14vw, 220px); opacity: 0.85; }
.noi-cloud--side-r { bottom: 14%; right: 2%; width: clamp(160px, 19vw, 300px); opacity: 0.85; animation-duration: 24s; animation-direction: alternate-reverse; }
.noi-page-head { position: relative; }
.noi-footer { position: relative; overflow: hidden; }
.noi-footer > .noi-wrap { position: relative; z-index: 1; }
.noi-manifesto, .noi-bio { overflow: hidden; }
/* Le nuvole che sbordano vengono tagliate dalla loro sezione (solo in orizzontale): così non allargano
   la pagina sui telefoni, dove overflow-x sul body non basta a bloccare lo scorrimento laterale. */
.noi-section:has(> .noi-cloud) { overflow-x: clip; }
/* I contenuti stanno sopra le nuvole della sezione */
.noi-section:has(> .noi-cloud) > .noi-wrap { position: relative; z-index: 1; }
.noi-manifesto__inner { position: relative; z-index: 1; }
body.noi-ev .noi-cloud { display: none; }
@media (max-width: 860px) {
	.noi-cloud--side-l { display: none; }
	.noi-cloud--side-r { display: none; }
}
.noi-hero__content { z-index: 1; }
/* Da desktop il blocco NOI sta al centro verticale dell'hero, non appoggiato in fondo */
@media (min-width: 861px) {
	.noi-hero { align-items: center; padding-bottom: calc(var(--header-h) * 0.5); }
}
.noi-hero__title { position: relative; isolation: isolate; margin: 0; width: min(620px, 78vw); }
.noi-hero__title img { width: 100%; filter: drop-shadow(0 4px 24px rgba(0, 0, 0, 0.12)); }

/* ---------- Acquerello (classe noi-wc) ----------
   L'immagine compare a macchie: la maschera (--wc-mask, scritta dal tema con i punti) è fatta
   di tante ellissi che crescono in 6 ondate + un'ultima che completa. Senza JavaScript o con
   "riduci movimento" l'immagine si vede subito intera. */
.noi-js .noi-wc {
	/* I raggi --wc1…--wc7 li fa crescere noi.js fotogramma per fotogramma (funziona uguale su
	   Chrome, Safari/iPhone e Android, dove animare in CSS le variabili dentro la maschera no). */
	--wc1: 0%; --wc2: 0%; --wc3: 0%; --wc4: 0%; --wc5: 0%; --wc6: 0%; --wc7: 0%;
	-webkit-mask-image: var(--wc-mask);
	mask-image: var(--wc-mask);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}
/* N OI in hero: sfocatura iniziale che si mette a fuoco e, alla fine, il galleggiamento */
.noi-js .noi-hero__title .noi-wc {
	animation:
		noi-watercolor 3.8s cubic-bezier(0.25, 0.6, 0.3, 1) 0.05s both,
		noi-float 7s ease-in-out 3.6s infinite alternate;
}
/* Manifesto: leggera messa a fuoco. Macchie più grandi perché sono meno (12). */
.noi-js .noi-manifesto .noi-wc { animation: noi-wc-soft 2.6s ease-out 0s both; }
.noi-manifesto { --wc-size: 2.2; }
@keyframes noi-wc-soft {
	from { opacity: 0.5; filter: blur(3px); }
	to { opacity: 1; filter: blur(0); }
}
/* A animazione finita (classe aggiunta dal JavaScript) maschere e filtri si spengono: zero costo */
.noi-js .noi-wc.noi-wc-done { -webkit-mask-image: none; mask-image: none; }
.noi-js .noi-manifesto .noi-wc.noi-wc-done { animation: none; filter: none; }
/* Il manifesto parte quando la sezione entra nello schermo (classe is-visible da noi.js) */
.noi-js .noi-section .noi-wc.noi-wc--onview { animation-play-state: paused; }
.noi-js .noi-section.is-visible .noi-wc.noi-wc--onview { animation-play-state: running; }

@media (prefers-reduced-motion: reduce) {
	.noi-js .noi-wc { -webkit-mask-image: none; mask-image: none; animation: none; }
}
.noi-hero__artist { animation: noi-rise 0.9s ease-out 2.2s both; }
.noi-hero .noi-actions { animation: noi-rise 0.9s ease-out 2.5s both; }

@keyframes noi-watercolor {
	0%   { opacity: 0.4; filter: blur(4px) drop-shadow(0 4px 24px rgba(0, 0, 0, 0)); }
	50%  { opacity: 0.95; filter: blur(1.5px) drop-shadow(0 4px 24px rgba(0, 0, 0, 0.06)); }
	100% { opacity: 1; filter: blur(0) drop-shadow(0 4px 24px rgba(0, 0, 0, 0.12)); }
}
@keyframes noi-mist {
	0%   { opacity: 0; transform: scale(0.55); }
	35%  { opacity: 0.8; }
	100% { opacity: 0; transform: scale(1.3); }
}
@keyframes noi-float {
	from { transform: translateY(0); }
	to   { transform: translateY(-8px); }
}
@keyframes noi-rise {
	from { opacity: 0; transform: translateY(14px); }
	to   { opacity: 1; transform: none; }
}
.noi-hero__artist {
	margin: 12px 0 28px;
	font-size: clamp(1rem, 2.2vw, 1.5rem);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

@media (max-width: 860px) {
	.noi-hero { align-items: flex-end; }
	/* Mano grande come nella copertina; N OI e bottoni restano sopra (z-index del contenuto) */
	.noi-hero { --title-w: min(620px, 78vw); }
	.noi-hero__title { width: var(--title-w); }
	.noi-hero__spoon { height: 54%; right: -4%; }
}
/* Tablet: N OI un po' più piccolo, così non finisce sotto il cucchiaio */
@media (min-width: 600px) and (max-width: 860px) {
	.noi-hero { --title-w: 60vw; }
}

@keyframes noi-drift {
	from { transform: translateX(0); }
	to { transform: translateX(60px); }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Tracklist scorrevole ---------- */

.noi-tracks {
	border-top: 2px solid var(--paper);
	border-bottom: 2px solid var(--paper);
	background: rgba(27, 81, 105, 0.35);
	overflow: hidden;
}
.noi-marquee { padding: clamp(18px, 2.5vw, 28px) 0; }
.noi-marquee__track {
	display: flex;
	width: max-content;
	animation: noi-marquee 38s linear infinite;
	will-change: transform;
	backface-visibility: hidden;
}
.noi-marquee__group {
	display: flex;
	flex-shrink: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}
.noi-marquee__group li {
	display: flex;
	align-items: center;
	padding: 0 1.4em;
}
/* Titoli scritti a mano del retro del disco: altezza proporzionata a quella originale */
.noi-marquee__group li img {
	height: calc(var(--h, 1) * clamp(40px, 5.4vw, 68px));
	width: auto;
	max-width: none;
}
/* Separatore tra un titolo e l'altro */
.noi-marquee__group li::after {
	content: "✦";
	margin-left: 1.4em;
	font-size: 0.9rem;
	color: var(--skin);
}

@keyframes noi-marquee {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(-50%, 0, 0); }
}
@media (max-width: 680px) {
	.noi-marquee__track { animation-duration: 26s; } /* titoli più piccoli: stessa velocità percepita */
}

/* Chi chiede meno movimento vede la tracklist ferma, su più righe. */
@media (prefers-reduced-motion: reduce) {
	.noi-marquee__track { width: auto; padding: 0 var(--gutter); }
	.noi-marquee__group { flex-wrap: wrap; justify-content: center; row-gap: 8px; }
	.noi-marquee__group + .noi-marquee__group { display: none; }
	.noi-marquee__group li img { height: calc(var(--h, 1) * 36px); }
}

/* ---------- Home: disco e manifesto ---------- */

.noi-home-release .noi-new-release { margin-bottom: 0; }
.noi-manifesto { padding-top: 0; }
.noi-manifesto__inner { display: flex; justify-content: center; }
.noi-manifesto__figure { margin: 0; width: min(720px, 100%); }
.noi-manifesto__figure img { width: 100%; }

/* ---------- Biografia cliccabile + pagina /biografia ---------- */

.noi-bio__more { display: inline-block; margin-top: 24px; font-size: 0.95rem; }
.noi-biopage__grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.noi-biopage__text p:not(.noi-bio__lead) { font-size: 1.05rem; line-height: 1.7; margin: 1.2em 0 0; }
.noi-biopage__photos { list-style: none; margin: clamp(48px, 7vw, 88px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 24px; }
.noi-biopage__photos .noi-polaroid { padding-bottom: 10px; }
.noi-biopage__photos li:nth-child(odd) { transform: rotate(-1.5deg); }
.noi-biopage__photos li:nth-child(even) { transform: rotate(1.5deg); }
@media (max-width: 760px) { .noi-biopage__grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Merch: rimando ai progetti solisti di Emanuele Via ---------- */

.noi-ev-promo {
	/* Discreto: niente blocco bianco, solo un riquadro velato sul cielo come le altre schede */
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, auto);
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
	margin-top: clamp(48px, 7vw, 88px);
	padding: clamp(24px, 3.5vw, 40px);
	border: 1px solid var(--line);
	border-radius: 8px;
	background: rgba(246, 243, 236, 0.06);
	color: var(--paper);
}
.noi-ev-promo__title { margin: 0 0 20px; font-size: clamp(1.1rem, 2vw, 1.5rem); line-height: 1.25; text-transform: none; text-wrap: balance; }
.noi-ev-promo .noi-actions { margin: 0; }
.noi-ev-promo__covers { list-style: none; margin: 0; padding: 0 10px; display: flex; justify-content: center; }
.noi-ev-promo__covers li { width: clamp(110px, 12vw, 160px); }
.noi-ev-promo__covers li:nth-child(1) { transform: rotate(-5deg); }
.noi-ev-promo__covers li:nth-child(2) { transform: rotate(4deg) translateY(10px); margin-left: -18px; }
.noi-ev-promo__covers li:nth-child(3) { transform: rotate(-2deg); margin-left: -18px; }
.noi-ev-promo__covers .noi-polaroid { background: #fff; }
@media (max-width: 760px) {
	.noi-ev-promo { grid-template-columns: minmax(0, 1fr); }
	.noi-ev-promo__covers li { width: min(140px, 40%); }
}

/* ---------- Tour ---------- */

.noi-tour { list-style: none; margin: 0; padding: 0; }
.noi-tour__row {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr) auto;
	align-items: center;
	gap: 24px;
	padding: 22px 0;
	border-bottom: 1px dashed var(--line);
}
.noi-tour__date { display: flex; flex-direction: column; }
/* Tour in home: le date in più si aprono sotto (pannello che si allarga + righe che salgono una dopo l'altra) */
.noi-js .noi-tour-more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.6s cubic-bezier(0.2, 0.7, 0.3, 1); }
.noi-js .noi-tour-more.is-open { grid-template-rows: 1fr; }
.noi-tour-more__inner { min-height: 0; overflow: hidden; }
.noi-js .noi-tour-more .noi-tour__row { opacity: 0; transform: translateY(-10px); transition: opacity 0.4s ease, transform 0.4s ease; }
.noi-js .noi-tour-more.is-open .noi-tour__row { opacity: 1; transform: none; }
.noi-js .noi-tour-more.is-open .noi-tour__row:nth-child(2) { transition-delay: 0.06s; }
.noi-js .noi-tour-more.is-open .noi-tour__row:nth-child(3) { transition-delay: 0.12s; }
.noi-js .noi-tour-more.is-open .noi-tour__row:nth-child(4) { transition-delay: 0.18s; }
.noi-js .noi-tour-more.is-open .noi-tour__row:nth-child(n+5) { transition-delay: 0.24s; }
.noi-tour-more__toggle { display: none; }
.noi-js .noi-tour-more__toggle {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 24px auto 0;
	padding: 10px 6px;
	border: 0;
	background: none;
	color: var(--paper);
	font-family: var(--font-type);
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
}
.noi-tour-more__label { text-decoration: underline; text-underline-offset: 0.3em; }
.noi-tour-more__arrow { display: inline-block; flex: none; transition: transform 0.4s ease; animation: noi-tour-bob 1.6s ease-in-out infinite; }
.noi-tour-more__toggle[aria-expanded="true"] .noi-tour-more__arrow { transform: rotate(180deg); animation: none; }
.noi-tour-more__toggle:focus-visible { outline: 2px dashed var(--paper); outline-offset: 4px; }
@keyframes noi-tour-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 4px; } }
.noi-tour__day { font-size: 2rem; font-weight: 700; line-height: 1; }
.noi-tour__year { font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--paper-dim); margin-top: 4px; }
.noi-tour__place { display: flex; flex-direction: column; gap: 2px; }
.noi-tour__city { font-size: 1.4rem; font-weight: 700; text-transform: uppercase; }
.noi-tour__venue { color: var(--paper-dim); text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.9rem; }

/* Date esaurite: cerotto rosso in diagonale sopra la città, un po' trasparente (il nome si intravede) */
.noi-tour__place, .noi-tour-feature__place { position: relative; }
.noi-soldout-tape {
	position: absolute;
	z-index: 2;
	top: 50%;
	left: -10px;
	transform: translateY(-50%) rotate(-7deg);
	padding: 6px 22px;
	background: rgba(200, 55, 45, 0.82);
	color: #fff;
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	white-space: nowrap;
	box-shadow: 0 6px 14px -8px rgba(0, 0, 0, 0.6);
	/* bordi corti seghettati, come un pezzo di nastro strappato */
	clip-path: polygon(0 8%, 3% 0, 6% 10%, 9% 0, 91% 0, 94% 12%, 97% 0, 100% 10%, 100% 92%, 97% 100%, 94% 88%, 91% 100%, 9% 100%, 6% 90%, 3% 100%, 0 92%);
	pointer-events: none;
}
@media (min-width: 761px) { .noi-soldout-tape { font-size: 1rem; padding: 8px 28px; } }
.noi-tour-feature__place .noi-soldout-tape { font-size: 1rem; padding: 8px 28px; }
.noi-tour__row.is-sold-out .noi-tour__city,
.noi-tour-feature.is-sold-out .noi-tour-feature__city { text-decoration: none; }
.noi-tour__empty { font-size: 1.1rem; }

@media (max-width: 640px) {
	.noi-tour__row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; }
	.noi-tour__date { grid-column: 1 / -1; flex-direction: row; align-items: baseline; gap: 10px; }
	.noi-tour__day { font-size: 1.5rem; }
	.noi-tour__city { font-size: 1.15rem; }
	.noi-tour__row .noi-btn { min-height: 42px; padding: 0.5em 0.9em; font-size: 0.75rem; }
}

/* ---------- Tour: date in evidenza ---------- */

.noi-tour-featured { display: grid; gap: 28px; margin-bottom: clamp(32px, 4vw, 52px); }
/* Data in evidenza: un biglietto color carta, come le polaroid e la fascia del merch.
   A destra la "matrice" staccabile con il pulsante, separata da una linea tratteggiata. */
.noi-tour-feature {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas:
		"kicker kicker cta"
		"date   place  cta";
	align-items: end;
	gap: 14px clamp(20px, 4vw, 56px);
	padding: clamp(24px, 3.5vw, 40px);
	border-radius: 3px;
	background: var(--paper);
	color: var(--sky-deep);
	box-shadow: 0 24px 50px -24px rgba(0, 0, 0, 0.6);
}
.noi-tour-feature__kicker {
	/* Timbro */
	grid-area: kicker;
	justify-self: start;
	margin: 0;
	padding: 4px 10px;
	border: 2px solid var(--sky-deep);
	border-radius: 3px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	transform: rotate(-3deg);
}
.noi-tour-feature__date { grid-area: date; display: flex; flex-direction: column; }
.noi-tour-feature__day { font-size: clamp(2.8rem, 7vw, 4.8rem); font-weight: 700; line-height: 0.9; }
.noi-tour-feature__year { margin-top: 8px; font-size: 0.8rem; letter-spacing: 0.16em; text-transform: uppercase; }
.noi-tour-feature__place { grid-area: place; padding-bottom: 4px; }
.noi-tour-feature__city { margin: 0; font-size: clamp(1.6rem, 4vw, 2.6rem); line-height: 1; }
.noi-tour-feature__venue { margin: 8px 0 0; font-size: clamp(0.95rem, 1.6vw, 1.15rem); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
/* matrice staccabile del biglietto, con il pulsante */
.noi-tour-feature__stub {
	grid-area: cta;
	align-self: stretch;
	display: flex;
	align-items: center;
	margin: calc(-1 * clamp(24px, 3.5vw, 40px)) 0;
	padding: clamp(24px, 3.5vw, 40px) 0 clamp(24px, 3.5vw, 40px) clamp(20px, 4vw, 56px);
	border-left: 2px dashed rgba(4, 90, 120, 0.35);
}
.noi-tour-feature__cta { min-height: 52px; padding: 0.8em 1.8em; font-size: 0.95rem; }
.noi-tour-feature .noi-btn--solid { background: var(--sky-deep); border-color: var(--sky-deep); color: var(--paper); }
.noi-tour-feature .noi-btn--solid:hover { background: transparent; color: var(--sky-deep); }
.noi-tour-feature .noi-btn--ghost { border-color: var(--sky-deep); color: var(--sky-deep); }
.noi-tour-feature :focus-visible { outline-color: var(--sky-deep); }
/* (città barrata sostituita dal cerotto "Sold out") */

@media (max-width: 760px) {
	.noi-tour-feature {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "kicker" "date" "place" "cta";
		align-items: start;
	}
	.noi-tour-feature__stub { margin: 6px 0 0; padding: 18px 0 0; border-left: 0; border-top: 2px dashed rgba(4, 90, 120, 0.35); }
	.noi-tour-feature__cta { width: 100%; }
}

/* ---------- Prodotti (home + merch) ---------- */

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	/* Griglia adattiva: le card non scendono mai sotto i 290px, quindi dove c'è poco spazio
	   (carrello, colonne strette) se ne mettono meno per riga. Merch da desktop = 3 per riga. */
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr));
	gap: clamp(16px, 2vw, 24px);
	margin: 0 !important;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	padding: 0;
}

.noi-product {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 14px 14px 18px !important;
	border: 1px solid rgba(246, 243, 236, 0.45);
	border-radius: 6px;
	background: rgba(246, 243, 236, 0.05);
	transition: border-color 0.2s, background-color 0.2s;
}
.noi-product:hover { border-color: var(--paper); background: rgba(246, 243, 236, 0.09); }
.noi-product.is-sold-out { border-style: dashed; }

/* Foto: su carta, come una polaroid appoggiata al cielo. */
.noi-product__media {
	position: relative;
	aspect-ratio: 1;
	padding: 8px;
	border-radius: 3px;
	background: var(--paper);
	box-shadow: 0 10px 30px -18px rgba(0, 0, 0, 0.55);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.noi-product__media img {
	width: 100%;
	height: 100%;
	margin: 0 !important;
	object-fit: cover;
}
.noi-product:nth-child(odd):hover .noi-product__media,
.noi-product:nth-child(odd):focus-within .noi-product__media { transform: rotate(-1.5deg) translateY(-4px); }
.noi-product:nth-child(even):hover .noi-product__media,
.noi-product:nth-child(even):focus-within .noi-product__media { transform: rotate(1.5deg) translateY(-4px); }
.noi-product:hover .noi-product__media { box-shadow: 0 18px 36px -18px rgba(0, 0, 0, 0.6); }

.noi-product__body { display: flex; flex-direction: column; gap: 8px; flex: 1; }

.noi-product__title {
	margin: 0;
	font-size: 1.15rem;
	line-height: 1.3;
	letter-spacing: 0.02em;
}
.noi-product__link { text-decoration: none; }
/* Il link del titolo copre tutta la card: un solo punto di tabulazione. */
.noi-product__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.noi-product:hover .noi-product__link { text-decoration: underline; text-decoration-thickness: 2px; }
.noi-product:focus-within { outline: 3px dashed var(--paper); outline-offset: 4px; }
.noi-product__link:focus-visible { outline: none; }

.noi-product__price {
	margin: 0;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--paper) !important;
}
.noi-product__price del { opacity: 0.8; font-weight: 400; margin-right: 6px; }
.noi-product__price ins { text-decoration: none; background: var(--skin); color: var(--ink); padding: 0 6px; }
.noi-product__price small, .noi-product__price .woocommerce-price-suffix { display: none; }

.noi-product__status {
	margin: 0;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.noi-product__status::before { content: "● "; }

.noi-product__actions {
	margin-top: auto;
	padding-top: 8px;
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 10px;
}

/* Pulsante carrello nelle card: WooCommerce lo mette inline-block e allineato a sinistra, qui lo raddrizziamo. */
.woocommerce ul.products li.product .noi-product__actions .button,
.noi-product__actions .button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 52px;
	margin: 0 !important;
	padding: 12px 16px !important;
	border: 2px solid var(--paper) !important;
	border-radius: 999px !important;
	background: var(--paper) !important;
	color: var(--sky-deep) !important;
	font-family: var(--font-type) !important;
	font-size: 0.85rem !important;
	font-weight: 700 !important;
	line-height: 1.15 !important;
	letter-spacing: 0.08em;
	text-align: center !important;
	text-transform: uppercase;
	white-space: normal;
	box-shadow: 0 6px 0 -1px rgba(19, 35, 43, 0.35);
	transition: background-color 0.2s, color 0.2s, transform 0.15s, box-shadow 0.15s;
}
.noi-product__actions .button::before {
	content: "";
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.5 7V6a4.5 4.5 0 0 1 9 0v1h2.7l1 14H3.8l1-14h2.7Zm1.7 0h5.6V6a2.8 2.8 0 0 0-5.6 0v1ZM6.4 8.7l-.8 10.6h12.8l-.8-10.6H6.4Z'/%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'%3E%3Cpath d='M7.5 7V6a4.5 4.5 0 0 1 9 0v1h2.7l1 14H3.8l1-14h2.7Zm1.7 0h5.6V6a2.8 2.8 0 0 0-5.6 0v1ZM6.4 8.7l-.8 10.6h12.8l-.8-10.6H6.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.noi-product__actions .button:hover {
	background: var(--sky-deep) !important;
	color: var(--paper) !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 0 -1px rgba(19, 35, 43, 0.35);
}
.noi-product__actions .button:active { transform: translateY(2px); box-shadow: 0 2px 0 -1px rgba(19, 35, 43, 0.35); }
.noi-product__actions .button:focus-visible { outline: 3px dashed var(--paper); outline-offset: 4px; }

/* In caricamento: icona che gira. Aggiunto: spunta. */
.noi-product__actions .button.loading { opacity: 0.75; pointer-events: none; }
.noi-product__actions .button.loading::before {
	-webkit-mask: none;
	mask: none;
	background: transparent;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: noi-spin 0.7s linear infinite;
}
.woocommerce ul.products li.product .noi-product__actions .button.loading::after,
.noi-product__actions .button.added::after { display: none !important; }
.noi-product__actions .button.added::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 16.2 5.3 12l-1.4 1.4 5.6 5.6L20.6 7.9l-1.4-1.4z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 16.2 5.3 12l-1.4 1.4 5.6 5.6L20.6 7.9l-1.4-1.4z'/%3E%3C/svg%3E");
}
@keyframes noi-spin { to { transform: rotate(360deg); } }

/* Link "Visualizza carrello" che compare dopo l'aggiunta. */
.noi-product__actions .added_to_cart {
	display: block;
	padding: 4px 0;
	text-align: center;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	text-decoration: underline;
	text-underline-offset: 0.25em;
}
.noi-product__actions .added_to_cart::after { content: " →"; }

.noi-label-short { display: none; }
.noi-product { container-type: inline-size; }
@container (max-width: 250px) {
	.noi-label-long { display: none; }
	.noi-label-short { display: inline; }
}

/* Etichette sulla foto */
.noi-product__badges { position: absolute; top: 16px; left: 16px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.noi-badge {
	padding: 3px 8px;
	background: var(--sky-deep);
	color: var(--paper);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
/* Offerta: etichetta prezzo rossa e tonda, inclinata */
.noi-sale {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	border-radius: 50%;
	background: #c8372d;
	color: #fff;
	box-shadow: 0 6px 14px -6px rgba(0, 0, 0, 0.5), inset 0 0 0 3px rgba(255, 255, 255, 0.35);
	transform: rotate(10deg);
	line-height: 1;
	text-align: center;
	pointer-events: none;
}
.noi-sale__label { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.noi-product.is-on-sale .noi-product__price ins { color: var(--paper); font-weight: 700; text-decoration: none; }

/* Esaurito: foto spenta + timbro, e scritta anche nel testo. */
.noi-product.is-sold-out .noi-product__media { background: #d9d6cf; }
.noi-product.is-sold-out .noi-product__media img { filter: grayscale(1) contrast(0.85); opacity: 0.55; }
.noi-stamp {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(-12deg);
	padding: 8px 18px;
	border: 3px solid var(--ink);
	outline: 1px solid var(--ink);
	outline-offset: 3px;
	color: var(--ink);
	background: rgba(246, 243, 236, 0.85);
	font-size: clamp(1rem, 2vw, 1.35rem);
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	white-space: nowrap;
}
.noi-product.is-sold-out .noi-product__title,
.noi-product.is-sold-out .noi-product__price { opacity: 0.9; }
.noi-product__status--out {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	margin-top: auto;
	padding: 10px 16px;
	border: 2px dashed var(--paper);
	border-radius: 999px;
	font-size: 0.85rem;
	letter-spacing: 0.14em;
	text-align: center;
}
.noi-product__status--out::before { content: none; }

.noi-points {
	display: inline-block;
	align-self: flex-start;
	padding: 2px 8px;
	border: 1px dashed var(--paper);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--paper);
}

.woocommerce span.onsale.noi-sale {
	/* scheda prodotto: stesso bollino delle card, sull'angolo in alto a sinistra della foto */
	top: 16px; left: 16px; right: auto;
	min-width: 0; min-height: 0;
	width: 88px; height: 88px;
	padding: 0;
	margin: 0;
	border-radius: 50%;
	background: #c8372d;
	color: #fff;
	font-size: inherit;
	line-height: 1;
}


@media (max-width: 680px) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 12px; }
	.noi-points { padding: 2px 6px; letter-spacing: 0.03em; font-size: 0.7rem; }
	.noi-product__status { letter-spacing: 0.04em; font-size: 0.72rem; }
	.noi-shopbar { margin-bottom: 24px; }
	.woocommerce .woocommerce-ordering, .woocommerce .woocommerce-ordering select { width: 100%; }
	.noi-product { padding: 8px 8px 12px !important; gap: 10px; }
	.noi-product__media { padding: 5px; }
	.noi-product__title { font-size: 0.88rem; }
	.noi-product__actions .button { min-height: 48px; padding: 10px 8px !important; font-size: 0.72rem !important; letter-spacing: 0.04em; gap: 6px; }
	.noi-product__actions .button::before { flex-basis: 15px; width: 15px; height: 15px; }
	.noi-stamp { padding: 5px 10px; letter-spacing: 0.12em; border-width: 2px; }
	.noi-product__badges { top: 12px; left: 12px; }
	.noi-sale { top: 8px; right: 8px; width: 60px; height: 60px; }
	.noi-sale__label { font-size: 0.62rem; }
	.noi-product__status--out { min-height: 48px; font-size: 0.72rem; }
}
@media (prefers-reduced-motion: reduce) {
	.noi-product:hover .noi-product__media, .noi-product:focus-within .noi-product__media { transform: none !important; }
}

/* Scheda prodotto esaurito */
.woocommerce div.product.outofstock .woocommerce-product-gallery { filter: grayscale(1); opacity: 0.7; }
.noi-soldout-note {
	margin: 0 0 20px;
	padding: 14px 16px;
	border: 2px dashed var(--paper);
	font-size: 0.95rem;
}
.noi-soldout-note strong { text-transform: uppercase; letter-spacing: 0.1em; }
.woocommerce div.product p.stock.out-of-stock { display: none; }

/* ---------- Home: merch come mucchio di polaroid ---------- */

/* Fascia color carta con il bordo fatto delle nostre nuvole a pennello (brush-edge.webp, stesso
   colore della carta): si ripete senza giunture. Sotto è la stessa striscia capovolta. */
.noi-merch-pile {
	--edge-w: 1500px;
	--edge-h: 125px;
	position: relative;
	margin: calc(var(--edge-h) - 30px) 0;
	padding: clamp(40px, 5vw, 64px) 0;
	background: var(--paper); /* = colore di brush-edge.webp */
	color: var(--sky-deep);
}
.noi-merch-pile::before,
.noi-merch-pile::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: var(--edge-h);
	background: url("../img/brush-edge.webp") repeat-x 0 100% / var(--edge-w) var(--edge-h);
	pointer-events: none;
}
.noi-merch-pile::before { top: calc(1px - var(--edge-h)); }
.noi-merch-pile::after { bottom: calc(1px - var(--edge-h)); transform: scaleY(-1); background-position: 610px 100%; }
@media (max-width: 760px) {
	.noi-merch-pile { --edge-w: 1100px; --edge-h: 92px; }
}
.noi-merch-pile .noi-kicker { color: var(--sky-deep); }
.noi-merch-pile__title { color: var(--sky-deep); }
.noi-merch-pile .noi-btn--solid { background: var(--sky-deep); border-color: var(--sky-deep); color: var(--paper); }
.noi-merch-pile .noi-btn--solid:hover { background: transparent; color: var(--sky-deep); }
.noi-merch-pile :focus-visible { outline-color: var(--sky-deep); }
.noi-merch-pile .noi-polaroid { background: #fff; box-shadow: 0 22px 44px -20px rgba(19, 35, 43, 0.55), 0 0 0 1px rgba(19, 35, 43, 0.06); }
.noi-merch-pile__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(32px, 6vw, 96px);
	align-items: center;
}
.noi-merch-pile__title { margin: 0 0 16px; font-size: clamp(3rem, 8vw, 5.5rem); line-height: 0.9; }
.noi-merch-pile__text p:not(.noi-kicker) { margin: 0 0 28px; font-size: clamp(1.05rem, 1.6vw, 1.25rem); max-width: 30ch; }
.noi-merch-pile__cta { min-height: 56px; padding: 0 28px; font-size: 0.95rem; }

.noi-pile {
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0;
	height: clamp(340px, 32vw, 440px);
}
.noi-pile__item {
	position: absolute;
	width: 34%;
	transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), z-index 0s;
}
/* Posizione e inclinazione di ogni foto nel mucchio */
.noi-pile__item--1 { left: 0;   top: 10%; transform: rotate(-9deg); z-index: 1; }
.noi-pile__item--2 { left: 30%; top: 0;   transform: rotate(4deg);  z-index: 2; }
.noi-pile__item--3 { left: 62%; top: 8%;  transform: rotate(-3deg); z-index: 3; }
.noi-pile__item--4 { left: 12%; top: 48%; transform: rotate(6deg);  z-index: 4; }
.noi-pile__item--5 { left: 46%; top: 46%; transform: rotate(-6deg); z-index: 5; }

/* Al passaggio il mucchio si apre a ventaglio… */
.noi-pile:hover .noi-pile__item--1 { transform: translate(-10%, -4%) rotate(-13deg); }
.noi-pile:hover .noi-pile__item--2 { transform: translate(-2%, -8%) rotate(6deg); }
.noi-pile:hover .noi-pile__item--3 { transform: translate(10%, -2%) rotate(1deg); }
.noi-pile:hover .noi-pile__item--4 { transform: translate(-8%, 8%) rotate(9deg); }
.noi-pile:hover .noi-pile__item--5 { transform: translate(8%, 8%) rotate(-9deg); }
/* …e la foto sotto il mouse si raddrizza e viene davanti */
.noi-pile .noi-pile__item:hover,
.noi-pile .noi-pile__item:focus-within { z-index: 10; transform: translateY(-6%) rotate(0deg) scale(1.06); }

.noi-polaroid {
	display: block;
	padding: 10px 10px 0;
	background: var(--paper);
	color: var(--ink);
	text-decoration: none;
	border-radius: 3px;
	box-shadow: 0 22px 40px -22px rgba(0, 0, 0, 0.75);
}
.noi-polaroid img { width: 100%; aspect-ratio: 1; object-fit: cover; margin: 0; }
.noi-polaroid__caption {
	display: block;
	padding: 10px 4px 12px;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.noi-polaroid:focus-visible { outline: 3px dashed var(--paper); outline-offset: 6px; }

@media (max-width: 860px) {
	.noi-merch-pile__grid { grid-template-columns: minmax(0, 1fr); }
	.noi-merch-pile__text { order: 2; }
	.noi-pile { height: min(118vw, 520px); margin: 0 4%; }
	.noi-pile__item { width: 50%; }
	.noi-pile__item--1 { left: 0;   top: 8%; }
	.noi-pile__item--2 { left: 26%; top: 0; }
	.noi-pile__item--3 { left: 50%; top: 10%; }
	.noi-pile__item--4 { left: 6%;  top: 42%; }
	.noi-pile__item--5 { left: 42%; top: 40%; }
	.noi-polaroid { padding: 6px 6px 0; }
	.noi-polaroid__caption { font-size: 0.62rem; padding: 7px 2px 9px; }
}
@media (prefers-reduced-motion: reduce) {
	.noi-pile__item { transition: none; }
}

/* ---------- Biografia ---------- */

.noi-bio { overflow: hidden; }
.noi-bio__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(32px, 6vw, 96px);
	align-items: center;
}
.noi-bio__photo {
	margin: 0;
	justify-self: center;
	padding: 12px 12px 48px;
	background: var(--paper);
	border-radius: 3px;
	box-shadow: 0 24px 50px -24px rgba(0, 0, 0, 0.6);
	transform: rotate(-3deg);
}
.noi-bio__photo img { width: min(340px, 64vw); aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 70%; }
.noi-bio__text .noi-title { margin-bottom: 20px; }
.noi-bio__lead {
	margin: 0;
	font-size: clamp(1.3rem, 2.4vw, 1.9rem);
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: -0.005em;
	text-wrap: pretty;
}
/* Home: foto e testo della bio più piccoli (la pagina /biografia resta com'è) */
.noi-bio .noi-bio__photo img { width: min(260px, 60vw); }
.noi-bio .noi-bio__lead { font-size: clamp(1.1rem, 1.7vw, 1.4rem); max-width: 40ch; }
@media (max-width: 760px) {
	.noi-bio__grid { grid-template-columns: minmax(0, 1fr); }
	.noi-bio__photo img { width: min(260px, 64vw); }
	.noi-bio .noi-bio__photo img { width: min(210px, 56vw); }
}

/* ---------- Tessera fedeltà (striscia discreta) ---------- */

.noi-loyalty { padding: 0 0 clamp(40px, 6vw, 64px); }
.noi-loyalty__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: end;
	gap: 24px clamp(32px, 6vw, 96px);
	padding-top: clamp(28px, 3vw, 36px);
	border-top: 1px dashed var(--line);
}
.noi-loyalty__intro .noi-btn { margin-top: 16px; }
.noi-loyalty__title { margin: 0 0 4px; font-size: clamp(1.1rem, 2vw, 1.4rem); }
.noi-loyalty__intro p { margin: 0; font-size: 0.95rem; color: var(--paper-dim); }
.noi-points-check__label {
	display: block;
	margin-bottom: 8px;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--paper-dim);
}
.noi-points-check__row { display: flex; gap: 8px; }
.noi-loyalty .noi-points-check__row input[type="text"] { flex: 1; min-width: 0; min-height: 44px; border-radius: 999px !important; padding: 8px 18px; }
.noi-points-check__row .noi-btn { min-height: 48px; }
.noi-loyalty .noi-points-check__row input[type="text"] { min-height: 48px; }
.noi-points-check__result { margin: 8px 0 0; font-weight: 700; min-height: 1.2em; font-size: 0.9rem; }
.noi-points-check__result:empty { display: none; }
.noi-points-check__result.is-success { font-size: 1.1rem; }
.noi-points-check__result.is-error { color: var(--error); }
@media (max-width: 760px) {
	.noi-loyalty__inner { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Newsletter (protagonista, su carta) ---------- */

.noi-newsletter {
	position: relative;
	padding: clamp(56px, 8vw, 104px) 0;
	background: var(--paper);
	color: var(--sky-deep);
	overflow: hidden;
}
.noi-newsletter::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0.5;
	mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .45 0 0 0 0 .4 0 0 0 .35 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.noi-newsletter__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); /* stessa griglia della striscia tessera: colonne allineate */
	gap: 24px clamp(32px, 6vw, 96px);
	align-items: center;
}
.noi-newsletter__kicker { margin: 0 0 12px; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; }
.noi-newsletter__title { margin: 0 0 20px; font-size: clamp(1.9rem, 4vw, 3.6rem); line-height: 1; color: var(--sky-deep); }
.noi-newsletter__title .noi-nowrap { display: block; } /* "chiodo fisso?" sempre insieme, sulla seconda riga */
.noi-nowrap { white-space: nowrap; }
.noi-newsletter__lead { margin: 0 0 8px; font-size: clamp(1.05rem, 1.8vw, 1.3rem); font-weight: 700; }
.noi-newsletter__note { margin: 0; color: #3a5d6d; }

/* Modulo su carta: colori invertiti */
.noi-newsletter .noi-form { margin: 0; }
.noi-newsletter .fluentform .ff-el-form-control {
	min-height: 56px;
	border: 2px solid var(--sky-deep) !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: var(--ink) !important;
	padding: 12px 22px;
}
.noi-newsletter .fluentform .ff-el-form-control::placeholder { color: #5b7480; }
.noi-newsletter .noi-form .fluentform .ff-btn-submit,
.noi-newsletter .noi-form .fluentform .ff-btn-submit:not(.ff_btn_no_style) {
	min-height: 56px;
	background: var(--sky-deep) !important;
	background-color: var(--sky-deep) !important;
	border-color: var(--sky-deep) !important;
	color: var(--paper) !important;
}
.noi-newsletter .noi-form .fluentform .ff-btn-submit:hover { background: var(--sky) !important; border-color: var(--sky) !important; }
.noi-newsletter .fluentform .ff-el-form-check-label,
.noi-newsletter .fluentform .ff-el-form-check-label a,
.noi-newsletter .fluentform .ff-el-input--label label { color: var(--sky-deep) !important; font-size: 0.85rem; }
.noi-newsletter .noi-form .fluentform input[type="checkbox"] { accent-color: var(--sky-deep); }
/* Casella del consenso e testo sulla stessa riga */
.noi-form .fluentform .ff-el-form-check-label { display: flex !important; align-items: flex-start; gap: 10px; line-height: 1.5; }
.noi-form .fluentform .ff-el-form-check-label input[type="checkbox"] { flex: 0 0 18px; margin: 3px 0 0; }
.noi-newsletter .fluentform .ff-message-success { color: var(--sky-deep); border-color: var(--sky-deep); }
.noi-newsletter .fluentform .error, .noi-newsletter .fluentform .text-danger { color: #b3261e !important; }
.noi-newsletter :focus-visible { outline-color: var(--sky-deep); }
@media (max-width: 860px) { .noi-newsletter__grid { grid-template-columns: minmax(0, 1fr); } }

/* Il footer segue la newsletter senza doppio bordo */
.noi-newsletter + * , .noi-main:has(> .noi-newsletter:last-child) + .noi-footer { border-top: 0; }

/* ---------- Newsletter / moduli ---------- */

.noi-form { text-align: left; margin-top: 24px; }
/* Fluent Forms impone i suoi colori: li riportiamo allo stile del sito. */
.noi-form .fluentform .ff-btn-submit,
.noi-form .fluentform .ff-btn-submit:not(.ff_btn_no_style) {
	background: var(--paper) !important;
	background-color: var(--paper) !important;
	color: var(--sky-deep) !important;
	border: 2px solid var(--paper) !important;
	border-radius: 999px !important;
	min-height: 52px;
	font-family: var(--font-type) !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.noi-form .fluentform .ff-btn-submit:hover { background: var(--sky-deep) !important; color: var(--paper) !important; }
.noi-form .fluentform input[type="checkbox"] { width: 18px; height: 18px; min-height: 0; accent-color: var(--paper); }

input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="password"], input[type="search"], input[type="url"], select, textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single,
.fluentform .ff-el-form-control {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 2px solid var(--paper) !important;
	border-radius: var(--radius) !important;
	background: rgba(246, 243, 236, 0.08) !important;
	color: var(--paper) !important;
	font-family: var(--font-text);
	font-size: 16px;
	box-shadow: none !important;
}
input::placeholder, textarea::placeholder { color: rgba(246, 243, 236, 0.6); }
select option { color: var(--ink); }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--paper); line-height: 26px; padding-left: 0; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 10px; }
.select2-dropdown { background: var(--paper); color: var(--ink); font-family: var(--font-text); }

.fluentform .ff-el-group { margin-bottom: 16px; }
.fluentform .ff-el-input--label label,
.fluentform .ff-el-form-check-label { color: var(--paper) !important; font-family: var(--font-type); }
.fluentform .ff-el-form-check-label { font-family: var(--font-text); font-size: 0.85rem; line-height: 1.5; }
.fluentform .ff-el-form-check-label a { color: var(--paper) !important; }
.fluentform .ff-btn-submit { width: 100%; }
.fluentform .ff-message-success { background: transparent; color: var(--paper); border: 2px dashed var(--paper); box-shadow: none; }
.fluentform .error, .fluentform .text-danger { color: var(--error) !important; }

/* ---------- Pagine ---------- */

.noi-page { padding: calc(var(--header-h) + clamp(48px, 8vw, 104px)) 0 clamp(64px, 10vw, 120px); position: relative; overflow: hidden; }
.noi-page__title { margin-bottom: clamp(28px, 5vw, 56px); }

/* Intestazione delle pagine: titolo staccato dal contenuto */
.noi-page-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 8px 24px;
	margin-bottom: clamp(36px, 6vw, 64px);
	padding-bottom: clamp(16px, 2vw, 24px);
	border-bottom: 2px solid var(--paper);
}
.noi-page-head__title { margin: 0; font-size: clamp(2.6rem, 8vw, 5.5rem); line-height: 0.9; }
.noi-page-head__meta {
	margin: 0 0 6px;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--paper-dim);
}

.noi-prose { font-size: 1rem; line-height: 1.65; }
.noi-prose h2 { font-size: 1.25rem; margin: 2em 0 0.7em; }
.noi-prose h3 { font-size: 1.05rem; margin: 1.6em 0 0.6em; }
.noi-prose a { font-weight: 700; }
.noi-prose ul, .noi-prose ol { padding-left: 1.3em; }
.noi-prose__embed { margin: 1em 0; }
/* Testi iubenda incorporati: stesso stile del sito. */
.noi-prose #iubenda_policy, .noi-prose #iubenda_policy * { font-family: var(--font-type) !important; color: var(--paper) !important; background: transparent !important; }

/* ---------- Musica ---------- */

.noi-btn--pill { border-radius: 999px; }

/* NOI: copertina + CD che spunta */
.noi-new-release {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(40px, 7vw, 110px);
	align-items: center;
	margin-bottom: clamp(72px, 10vw, 128px);
}
/* La copertina occupa ~3/4 della colonna: il CD che esce resta dentro la colonna, anche all'hover. */
.noi-new-release__art { position: relative; width: 74%; max-width: 440px; }
.noi-cover {
	/* Copertina vera del disco (cover.webp) */
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	border-radius: 4px;
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(246, 243, 236, 0.2);
}

.noi-disc {
	position: absolute;
	top: 5%;
	right: 5%;
	width: 90%;
	aspect-ratio: 1;
	border-radius: 50%;
	background:
		radial-gradient(circle, #0c0c0c 0 5%, #2b2b2b 5.5% 6.5%, #0c0c0c 7% 30%, transparent 30.5%),
		repeating-radial-gradient(circle, #111 0 1px, #1c1c1c 1.5px 3px);
	box-shadow: 0 16px 30px -16px rgba(0, 0, 0, 0.7);
	transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.noi-disc::after {
	content: "";
	position: absolute;
	inset: 35%;
	border-radius: 50%;
	background: radial-gradient(circle, var(--sky-deep) 0 12%, var(--paper) 13% 100%);
}
/* CD di NOI: anello argentato + etichetta stampata come il CD vero */
.noi-disc--cd {
	background: conic-gradient(from 20deg, #aeb9be, #eef1f2, #97a6ad, #dfe5e8, #a9b5bb, #f2f4f5, #aeb9be);
	border: 1px solid rgba(0, 0, 0, 0.15);
	transform: translateX(30%) rotate(0deg);
}
.noi-disc--cd::after { content: none; }
.noi-disc__label {
	position: absolute;
	inset: 4%;
	border-radius: 50%;
	overflow: hidden;
	background:
		radial-gradient(120% 80% at 70% 10%, rgba(255, 255, 255, 0.14), transparent 60%),
		linear-gradient(180deg, #2a6d88, #2f7995);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12);
}
.noi-disc__lettering { position: absolute; left: 14%; top: 50%; width: 30%; transform: translateY(-50%); }
.noi-disc__spoon {
	position: absolute;
	top: 0;
	right: 6%;
	height: 82%;
	width: auto;
	max-width: none;
	-webkit-mask-image: linear-gradient(to right, transparent 0%, #000 30%), linear-gradient(to top, transparent 0%, #000 14%);
	mask-image: linear-gradient(to right, transparent 0%, #000 30%), linear-gradient(to top, transparent 0%, #000 14%);
	-webkit-mask-composite: source-in;
	mask-composite: intersect;
}
.noi-disc__artist {
	position: absolute;
	left: 14%;
	top: 64%;
	font-size: clamp(0.35rem, 0.7vw, 0.5rem);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
}
/* Foro centrale con anello trasparente */
.noi-disc__label::after {
	content: "";
	position: absolute;
	inset: 38%;
	border-radius: 50%;
	background: radial-gradient(circle, var(--sky) 0 30%, rgba(210, 220, 224, 0.85) 31% 62%, rgba(0, 0, 0, 0.18) 63% 66%, transparent 67%);
}
.noi-new-release__art:hover .noi-disc--cd { transform: translateX(38%) rotate(40deg); }
.noi-new-release__body { position: relative; z-index: 2; }

.noi-new-release__title { font-size: clamp(3rem, 8vw, 5.5rem); line-height: 0.9; margin: 0; white-space: nowrap; }
.noi-new-release__artist { margin: 12px 0 28px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.noi-tracklist { margin: 0 0 32px; padding: 0; list-style: none; counter-reset: track; border-top: 1px dashed var(--line); }
.noi-tracklist li { counter-increment: track; padding: 11px 0; border-bottom: 1px dashed var(--line); text-transform: uppercase; font-weight: 700; letter-spacing: 0.03em; }
.noi-tracklist li::before { content: counter(track, decimal-leading-zero) "  "; color: var(--paper-dim); font-weight: 400; white-space: pre; }

/* Discografia: custodie da cui esce il vinile */
.noi-discography__title { font-size: 1.3rem; padding-bottom: 12px; margin-bottom: 28px; border-bottom: 2px solid var(--paper); }
.noi-discography {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
	gap: clamp(16px, 2vw, 24px);
}
.noi-release {
	display: flex;
	flex-direction: column;
	padding: 14px 14px 18px;
	border: 1px solid rgba(246, 243, 236, 0.45);
	border-radius: 6px;
	background: rgba(246, 243, 236, 0.05);
	position: relative;
	transition: border-color 0.2s, background-color 0.2s;
}
/* All'hover la card passa sopra le vicine: disco e copertina possono uscire dal bordo. */
.noi-release:hover,
.noi-release:focus-within { z-index: 5; }
.noi-release:hover { border-color: var(--paper); background: rgba(246, 243, 236, 0.09); }
.noi-release__sleeve { position: relative; margin-bottom: 16px; }
.noi-release__sleeve .noi-disc { top: 3%; right: 3%; width: 94%; }
.noi-release__cover {
	position: relative;
	z-index: 1;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 2px;
	box-shadow: 0 14px 30px -18px rgba(0, 0, 0, 0.7);
	transition: transform 0.35s ease;
}
.noi-release:hover .noi-release__sleeve .noi-disc,
.noi-release:focus-within .noi-release__sleeve .noi-disc { transform: translateX(34%) rotate(90deg); }
.noi-release:hover .noi-release__cover,
.noi-release:focus-within .noi-release__cover { transform: translateX(-6%) rotate(-2deg); }
.noi-release__name { font-size: 1.05rem; margin: 0; }
.noi-release__year { margin: 4px 0 16px; color: var(--paper-dim); font-size: 0.85rem; letter-spacing: 0.12em; }
.noi-release__actions { margin-top: auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.noi-release__actions .noi-btn { min-height: 44px; padding: 0.5em 0.6em; font-size: 0.75rem; letter-spacing: 0.08em; }
.noi-release__soldout {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	border: 2px dashed var(--paper);
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

@media (max-width: 860px) {
	.noi-new-release { grid-template-columns: minmax(0, 1fr); }
	.noi-new-release__art { width: 72%; max-width: 380px; }
}
@media (max-width: 480px) {
	.noi-discography { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.noi-release { padding: 8px 8px 12px; }
	.noi-release__actions { grid-template-columns: minmax(0, 1fr); }
	.noi-release__name { font-size: 0.9rem; }
}
@media (prefers-reduced-motion: reduce) {
	.noi-new-release__art:hover .noi-disc--cd, .noi-release:hover .noi-release__sleeve .noi-disc { transform: translateX(22%); }
}

/* ---------- Merch: filtri ---------- */

.noi-filters { margin: 0 0 clamp(28px, 4vw, 44px); }
.noi-filters ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.noi-filters a {
	display: inline-block;
	padding: 6px 14px;
	border: 1px solid var(--paper);
	text-decoration: none;
	text-transform: uppercase;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
}
.noi-filters a:hover, .noi-filters a[aria-current] { background: var(--paper); color: var(--sky-deep); }
@media (max-width: 680px) {
	/* Filtri: una riga che scorre di lato. */
	.noi-filters { margin-left: calc(-1 * var(--gutter)); margin-right: calc(-1 * var(--gutter)); }
	.noi-filters ul { flex-wrap: nowrap; overflow-x: auto; padding: 4px var(--gutter) 12px; scroll-snap-type: x proximity; scroll-padding-inline: var(--gutter); scrollbar-width: none; }
	.noi-filters ul::-webkit-scrollbar { display: none; }
	.noi-filters li { flex: 0 0 auto; scroll-snap-align: start; }
	.noi-filters a { padding: 8px 14px; }
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { float: none; margin: 0; }
.noi-page--store .woocommerce > .woocommerce-notices-wrapper + .woocommerce-result-count,
.noi-page--store .woocommerce-result-count { color: var(--paper-dim); font-size: 0.85rem; }
.noi-shopbar .woocommerce-notices-wrapper { flex-basis: 100%; }
.noi-shopbar .woocommerce-notices-wrapper:empty { display: none; }
.noi-shopbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 0 0 32px; }
.woocommerce .woocommerce-ordering select { width: auto; min-height: 44px; padding-right: 36px; }
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { color: var(--paper); padding: 8px 12px; }
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--paper); color: var(--sky-deep); }

/* ---------- Scheda prodotto ---------- */

.woocommerce div.product { color: var(--paper); }
.woocommerce div.product .product_title { font-size: clamp(1.8rem, 4vw, 2.8rem); margin-bottom: 10px; }
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--paper); font-size: 1.6rem; font-weight: 700; margin: 18px 0; }
.woocommerce div.product div.images img { background: var(--paper); }
.woocommerce div.product div.images .flex-control-thumbs li img { opacity: 0.6; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { opacity: 1; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin: 8px 0 28px; }
/* Quantità + "Aggiungi al carrello": arrotondati come il resto del sito */
.woocommerce div.product form.cart .quantity { margin: 0 !important; }
.woocommerce div.product form.cart .quantity .qty {
	width: 88px;
	min-height: 56px;
	border-radius: 999px !important;
	text-align: center;
	font-weight: 700;
}
.woocommerce div.product form.cart .single_add_to_cart_button {
	flex: 1 1 220px;
	min-height: 56px;
	border-radius: 999px !important;
	font-size: 0.95rem !important;
	box-shadow: 0 6px 0 -1px rgba(19, 35, 43, 0.35);
}
.woocommerce div.product form.cart .single_add_to_cart_button::before {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.5 7V6a4.5 4.5 0 0 1 9 0v1h2.7l1 14H3.8l1-14h2.7Zm1.7 0h5.6V6a2.8 2.8 0 0 0-5.6 0v1ZM6.4 8.7l-.8 10.6h12.8l-.8-10.6H6.4Z'/%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'%3E%3Cpath d='M7.5 7V6a4.5 4.5 0 0 1 9 0v1h2.7l1 14H3.8l1-14h2.7Zm1.7 0h5.6V6a2.8 2.8 0 0 0-5.6 0v1ZM6.4 8.7l-.8 10.6h12.8l-.8-10.6H6.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce div.product .woocommerce-product-details__short-description { padding-top: 24px; border-top: 1px dashed var(--line); }
@media (max-width: 480px) {
	.woocommerce div.product form.cart { gap: 8px; }
	.woocommerce div.product form.cart .quantity .qty { width: 64px; }
	.woocommerce div.product form.cart .single_add_to_cart_button { flex-basis: 0; padding: 0 12px !important; font-size: 0.8rem !important; letter-spacing: 0.04em; white-space: nowrap; }
}
/* Eventuali pulsanti di pagamento rapido (WooPayments) a tutta larghezza */
.woocommerce div.product form.cart #wcpay-express-checkout-element,
.woocommerce div.product form.cart .wcpay-express-checkout-wrapper { flex-basis: 100%; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
/* Varianti (taglia ecc.): etichetta sopra, bottoni tondi al posto del menu a tendina (vedi noi.js) */
.woocommerce div.product form.cart .variations { width: 100%; margin: 0 0 8px; border: 0; }
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td { display: block; padding: 0; border: 0; background: none; text-align: left; }
.woocommerce div.product form.cart .variations tr + tr { margin-top: 16px; }
.woocommerce div.product form.cart .variations th.label { margin-bottom: 10px; line-height: 1; }
.woocommerce div.product form.cart .variations label { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.noi-swatches { display: flex; flex-wrap: wrap; gap: 8px; }
.noi-swatch {
	min-width: 52px;
	min-height: 44px;
	padding: 0 16px;
	border: 2px solid var(--paper);
	border-radius: 999px;
	background: transparent;
	color: var(--paper);
	font-family: var(--font-type);
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
}
.noi-swatch:hover { background: rgba(246, 243, 236, 0.15); }
.noi-swatch[aria-pressed="true"] { background: var(--paper); color: var(--sky-deep); }
.noi-swatch.is-unavailable { opacity: 0.35; text-decoration: line-through; cursor: not-allowed; }
.noi-swatch:focus-visible { outline: 2px dashed var(--paper); outline-offset: 3px; }
/* il menu originale resta per WooCommerce, ma non si vede */
.woocommerce div.product form.cart .variations select.noi-swatches__select {
	position: absolute !important;
	width: 1px !important;
	min-height: 0 !important;
	height: 1px !important;
	padding: 0 !important;
	border: 0 !important;
	opacity: 0;
	pointer-events: none;
}
.woocommerce div.product form.cart .variations td.value { position: relative; }
.noi-variation-hint {
	width: 100%;
	margin: 2px 0 10px;
	font-size: 0.85rem;
	color: var(--paper-dim);
}
.noi-variation-hint::before { content: "↑ "; }
.noi-variation-hint.is-alert { color: var(--paper); font-weight: 700; animation: noi-nudge 0.4s ease-in-out 2; }
@keyframes noi-nudge {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-5px); }
	75% { transform: translateX(5px); }
}
.woocommerce div.product form.cart .reset_variations { display: inline-block; margin-top: 10px; font-size: 0.8rem; color: var(--paper-dim); text-decoration: underline; }
/* finché non c'è niente da svuotare WooCommerce lo nasconde ma ne tiene lo spazio: lo togliamo del tutto */
.woocommerce div.product form.cart .reset_variations[style*="hidden"] { display: none; }
.woocommerce div.product form.cart .single_variation_wrap { width: 100%; }
.woocommerce div.product form.cart .woocommerce-variation-price { margin: 4px 0 12px; font-size: 1.2rem; font-weight: 700; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
/* "Aggiungi al carrello" prima di scegliere la taglia: stesso stile, solo più tenue */
.woocommerce div.product form.cart .single_add_to_cart_button.disabled,
.woocommerce div.product form.cart .single_add_to_cart_button:disabled {
	background: var(--paper) !important;
	color: var(--sky-deep) !important;
	border-color: var(--paper) !important;
	opacity: 0.45 !important;
	cursor: not-allowed;
}
.woocommerce .quantity .qty { width: 80px; text-align: center; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0 0 16px;
	margin: 0 0 24px;
	border-bottom: 2px solid var(--paper);
	overflow: visible;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
/* Schede: quella attiva è piena (carta + testo blu), le altre hanno solo il contorno. */
.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	margin: 0;
	padding: 0;
	border: 2px solid var(--paper);
	border-radius: 999px;
	background: transparent;
	transition: background-color 0.2s;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 10px 18px;
	color: var(--paper) !important;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li:hover { background: rgba(246, 243, 236, 0.15); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--paper); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--sky-deep) !important; }
.woocommerce div.product .woocommerce-tabs .panel { color: var(--paper); line-height: 1.65; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
.woocommerce table.woocommerce-product-attributes { border: 0; }
.woocommerce table.woocommerce-product-attributes th,
.woocommerce table.woocommerce-product-attributes td { padding: 10px 0; border-bottom: 1px dashed var(--line); background: transparent !important; color: var(--paper); font-style: normal; }
.woocommerce div.product .product_meta { font-size: 0.85rem; color: var(--paper-dim); }
.woocommerce div.product .stock { color: var(--paper); font-weight: 700; }
.noi-suggestions { clear: both; padding-top: clamp(48px, 7vw, 80px); }
.noi-suggestions__title { margin-bottom: 24px; padding-bottom: 12px; border-bottom: 2px solid var(--paper); font-size: 1.3rem; }

/* ---------- Avvisi WooCommerce ---------- */

.woocommerce-message, .woocommerce-info, .woocommerce-error, .noi-note {
	background: rgba(246, 243, 236, 0.1) !important;
	color: var(--paper) !important;
	border: 2px dashed var(--paper) !important;
	border-radius: 0;
	padding: 16px 20px !important;
	margin: 0 0 24px !important;
	list-style: none;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-error { border-color: var(--error) !important; }
.woocommerce-message .button, .woocommerce-info .button { float: right; min-height: 36px; padding: 0.4em 1em; font-size: 0.75rem; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button) { font-weight: 700; }

/* ---------- Carrello / checkout / account ---------- */

/* Carrello: totale a destra, prodotti consigliati sotto a tutta larghezza. */
.woocommerce .cart-collaterals { display: flex; flex-direction: column; gap: clamp(40px, 6vw, 72px); margin-top: 40px; }
.woocommerce .cart-collaterals::before, .woocommerce .cart-collaterals::after { display: none; }
.woocommerce .cart-collaterals .cart_totals { order: 1; float: none; width: 100%; max-width: 560px; margin-left: auto; }
.woocommerce .cart-collaterals .cross-sells { order: 2; float: none; width: 100%; }
.woocommerce .cart-collaterals .cross-sells > h2 { font-size: 1.2rem; padding-bottom: 12px; border-bottom: 2px solid var(--paper); margin-bottom: 24px; }
.woocommerce .cart_totals .wc-proceed-to-checkout { padding: 20px 0 0; }
.woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button { display: flex; width: 100%; min-height: 56px; border-radius: 999px; font-size: 1rem; margin: 0; }

.woocommerce table.shop_table {
	border: 2px solid var(--paper);
	border-radius: 0;
	border-collapse: collapse;
	color: var(--paper);
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { border-top: 1px dashed var(--line); padding: 14px 12px; }
.woocommerce table.shop_table th { text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.85rem; }
.woocommerce table.shop_table img { width: 64px; background: var(--paper); }
.woocommerce a.remove { color: var(--paper) !important; border: 1px solid var(--paper); border-radius: 0; }
.woocommerce a.remove:hover { background: var(--paper); color: var(--sky-deep) !important; }
.woocommerce table.cart td.actions .coupon .input-text { width: 180px; margin-right: 8px; }
.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-account h2 { font-size: 1.2rem; }

.woocommerce-checkout #payment,
.woocommerce #payment {
	background: rgba(246, 243, 236, 0.08);
	border: 2px solid var(--paper);
	border-radius: 0;
	color: var(--paper);
}
.woocommerce #payment ul.payment_methods { border-bottom: 1px dashed var(--line); }
.woocommerce #payment div.payment_box {
	background: var(--paper);
	color: var(--ink);
	border-radius: 0;
}
.woocommerce #payment div.payment_box::before { border-bottom-color: var(--paper); }
.woocommerce #payment div.payment_box input,
.woocommerce #payment div.payment_box select { color: var(--ink) !important; border-color: var(--ink) !important; background: #fff !important; }
.woocommerce form .form-row label { font-weight: 700; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.04em; }
.woocommerce form .form-row .required { color: var(--paper); }
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register { border: 2px dashed var(--paper); border-radius: 0; }

.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 32px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 10px 0; border-bottom: 1px dashed var(--line); text-decoration: none; text-transform: uppercase; font-weight: 700; letter-spacing: 0.06em; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { padding-left: 10px; border-left: 3px solid var(--paper); }

/* ---------- Selettore quantità − 1 + ---------- */

.woocommerce .quantity.noi-qty {
	display: inline-flex;
	align-items: center;
	border: 2px solid var(--paper);
	border-radius: 999px;
	overflow: hidden;
}
.woocommerce .quantity.noi-qty .qty,
.woocommerce div.product form.cart .quantity.noi-qty .qty {
	width: 44px;
	min-height: 0;
	height: 48px;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	text-align: center;
	font-weight: 700;
	-moz-appearance: textfield;
}
.woocommerce .quantity.noi-qty .qty::-webkit-outer-spin-button,
.woocommerce .quantity.noi-qty .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.noi-qty__btn {
	width: 44px;
	height: 48px;
	border: 0;
	background: transparent;
	color: var(--paper);
	font-family: var(--font-type);
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}
.noi-qty__btn:hover { background: rgba(246, 243, 236, 0.15); }
.woocommerce div.product form.cart .quantity.noi-qty { min-height: 56px; }
.woocommerce div.product form.cart .quantity.noi-qty .qty,
.woocommerce div.product form.cart .noi-qty__btn { height: 52px; }

/* Con JavaScript il carrello si aggiorna da solo: il pulsante "Aggiorna carrello" non serve */
.noi-js .woocommerce-cart-form button[name="update_cart"] { display: none !important; }

/* Barra fissa del carrello: solo telefono */
.noi-cartbar { display: none; }

@media (max-width: 768px) {
	/* ---------- Carrello da telefono: una riga compatta per prodotto ---------- */
	.woocommerce-cart .noi-main { padding-bottom: 96px; }
	.woocommerce-cart-form table.shop_table,
	.woocommerce-cart-form table.shop_table tbody { display: block; border: 0; }
	.woocommerce-cart-form table.shop_table thead { display: none; }
	.woocommerce-cart-form table.shop_table tr.cart_item {
		position: relative;
		display: grid;
		grid-template-columns: 84px minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb name  name"
			"thumb price price"
			"thumb qty   subtotal";
		align-items: center;
		gap: 6px 14px;
		margin-bottom: 10px;
		padding: 14px;
		border: 1px solid rgba(246, 243, 236, 0.45);
		border-radius: 8px;
		background: rgba(246, 243, 236, 0.05);
	}
	.woocommerce-cart-form table.shop_table tr.cart_item td {
		display: block !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
		text-align: left !important;
	}
	.woocommerce-cart-form table.shop_table tr.cart_item td::before { display: none !important; }
	.woocommerce-cart-form td.product-thumbnail { grid-area: thumb; align-self: start; }
	.woocommerce-cart-form td.product-thumbnail img { width: 84px !important; height: 84px; object-fit: cover; padding: 4px; background: var(--paper); border-radius: 3px; }
	.woocommerce-cart-form td.product-name { grid-area: name; font-weight: 700; line-height: 1.3; }
	.woocommerce-cart-form table.shop_table tr.cart_item td.product-name { padding-right: 36px !important; }
	.woocommerce-cart-form table.shop_table tr.cart_item td.product-subtotal { padding-left: 8px !important; }
	.woocommerce-cart-form td.product-name a { text-decoration: none; }
	.woocommerce-cart-form td.product-name .variation { margin: 4px 0 0; font-size: 0.8rem; font-weight: 400; color: var(--paper-dim); }
	.woocommerce-cart-form td.product-price { grid-area: price; font-size: 0.85rem; color: var(--paper-dim); }
	.woocommerce-cart-form td.product-quantity { grid-area: qty; }
	.woocommerce-cart-form td.product-subtotal { grid-area: subtotal; justify-self: end; padding-left: 8px !important; font-weight: 700; font-size: 1.05rem; white-space: nowrap; }
	.woocommerce-cart-form td.product-remove { position: absolute; top: 10px; right: 10px; }
	.woocommerce-cart-form td.product-remove a.remove { width: 28px; height: 28px; line-height: 26px; font-size: 1.2rem; border-radius: 50%; }
	.woocommerce-cart-form .quantity.noi-qty .qty { width: 36px; height: 40px; }
	.woocommerce-cart-form .noi-qty__btn { width: 38px; height: 40px; }

	/* Codice promozionale su una riga */
	.woocommerce-cart-form table.shop_table tr:not(.cart_item) { display: block; }
	.woocommerce-cart-form table.shop_table td.actions { display: block; padding: 12px 0 0 !important; border: 0 !important; }
	.woocommerce-cart-form td.actions .coupon { display: flex; gap: 8px; width: 100%; padding: 0 !important; }
	.woocommerce-cart-form td.actions .coupon .input-text { flex: 1; width: auto !important; min-width: 0; margin: 0 !important; border-radius: 999px !important; }
	.woocommerce-cart-form td.actions .coupon .button { flex: 0 0 auto; width: auto !important; min-height: 48px; padding: 0 20px; border-radius: 999px; font-size: 0.78rem; }

	/* Totali */
	.woocommerce .cart-collaterals { margin-top: 28px; }
	.woocommerce .cart_totals table.shop_table { display: table; }
	.woocommerce .cart_totals table.shop_table td::before { font-weight: 700; }

	/* Barra fissa con totale e "Procedi" */
	.noi-cartbar {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 12px var(--gutter) calc(12px + env(safe-area-inset-bottom));
		background: var(--sky-deep);
		border-top: 2px solid var(--paper);
		box-shadow: 0 -10px 30px -10px rgba(0, 0, 0, 0.5);
		transition: transform 0.25s ease;
	}
	.noi-cartbar.is-hidden { transform: translateY(110%); }
	.noi-cartbar__total { display: flex; flex-direction: column; line-height: 1.1; }
	.noi-cartbar__total span { font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--paper-dim); }
	.noi-cartbar__total strong { font-size: 1.25rem; }
	.noi-cartbar__total small { display: none; }
	.noi-cartbar .noi-btn { min-height: 50px; padding: 0 18px; font-size: 0.8rem; }
}

/* ---------- Minisito Emanuele Via: carta e inchiostro ---------- */

body.noi-ev {
	--paper: #1f1d1a;          /* nel minisito il "primo piano" è inchiostro */
	--paper-dim: rgba(31, 29, 26, 0.74);
	--line: rgba(31, 29, 26, 0.3);
	--sky-deep: #f2ede3;       /* e lo "sfondo" è carta */
	--sky: #efe9de;
	--sky-mid: #ece5d8;
	--sky-light: #e7dfd0;
	--ink: #1f1d1a;
	--skin: #c9a27a;
	--error: #9b2c1f;
	color: var(--paper);
	background-color: transparent;
}
body.noi-ev::before { background: linear-gradient(180deg, #f4efe6 0%, #ebe4d6 100%); }
body.noi-ev::after { mix-blend-mode: multiply; opacity: 0.28; }
body.noi-ev .noi-header::before { background: #f2ede3; }
html:has(body.noi-ev) { background: #f2ede3; }
body.noi-ev .noi-product__media,
body.noi-ev .noi-ev-hero__cover img { background: #fff; }
body.noi-ev ::selection { background: var(--ink); color: #f2ede3; }

.noi-header--ev .noi-header__inner { gap: 20px; }
.noi-ev-logo {
	font-size: clamp(1.1rem, 2.2vw, 1.4rem);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
}
.noi-ev-back { margin-left: auto; font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; color: var(--paper-dim); }
.noi-ev-back:hover { color: var(--paper); text-decoration: underline; }
.noi-header--ev .noi-header__tools { margin-left: 0; }
.noi-ev-logo, .noi-ev-back { white-space: nowrap; }
@media (max-width: 860px) {
	.noi-header--ev .noi-burger { display: none; }
	.noi-ev-logo { font-size: 1rem; letter-spacing: 0.1em; }
	.noi-ev-back { font-size: 0.7rem; }
	.noi-ev-back__long { display: none; }
}

.noi-ev-hero { padding: calc(var(--header-h) + clamp(56px, 9vw, 120px)) 0 clamp(48px, 7vw, 96px); }
.noi-ev-hero__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.noi-ev-hero__title { margin: 0; font-size: clamp(3rem, 10vw, 7.5rem); line-height: 0.88; letter-spacing: -0.02em; }
.noi-ev-hero__tagline { margin: 24px 0 0; font-size: clamp(1.1rem, 2vw, 1.4rem); max-width: 34ch; }
.noi-ev-links { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.noi-ev-hero__photo, .noi-ev-hero__cover { margin: 0; justify-self: center; }
.noi-ev-hero__photo img, .noi-ev-hero__cover img {
	width: min(440px, 80vw);
	padding: 12px 12px 44px;
	background: #fff;
	box-shadow: 0 26px 50px -26px rgba(0, 0, 0, 0.45);
	transform: rotate(2deg);
}
@media (max-width: 760px) { .noi-ev-hero__grid { grid-template-columns: minmax(0, 1fr); } }
/* Minisito Emanuele Via: presentazione e dischi (testo + scheda prodotto affiancati) */
.noi-ev-hero .noi-kicker { color: var(--paper-dim); }
.noi-ev-bio__more { margin: 1.2em 0 0; font-size: clamp(1rem, 1.6vw, 1.2rem); line-height: 1.6; color: var(--paper-dim); }
.noi-ev-record {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: start;
	padding: clamp(32px, 5vw, 56px) 0;
	border-top: 1px solid var(--line);
}
.noi-ev-record:first-of-type { border-top: 0; padding-top: 8px; }
.noi-ev-record__title { margin: 0; font-size: clamp(2rem, 5vw, 3.4rem); line-height: 0.95; }
.noi-ev-record__meta { margin: 10px 0 0; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--paper-dim); }
.noi-ev-record__desc { margin: 20px 0 0; font-family: var(--font-text); font-size: 1.05rem; line-height: 1.65; max-width: 52ch; }
.noi-ev-record__tracks { margin: 22px 0 24px; padding: 0; list-style: none; counter-reset: noi-ev-track; columns: 2; column-gap: 32px; max-width: 420px; }
.noi-ev-record__tracks li { counter-increment: noi-ev-track; padding: 6px 0; border-bottom: 1px dashed var(--line); break-inside: avoid; }
.noi-ev-record__tracks li::before { content: counter(noi-ev-track, decimal-leading-zero) "  "; color: var(--paper-dim); font-size: 0.8em; }
.noi-ev-record__product .products { grid-template-columns: minmax(0, 1fr) !important; max-width: 340px; }
@media (max-width: 760px) {
	.noi-ev-record { grid-template-columns: minmax(0, 1fr); }
	.noi-ev-record__product .products { max-width: none; }
}

.noi-footer--ev { padding: 36px 0 28px; }
.noi-footer--ev .noi-footer__legal { padding-bottom: 18px; }

/* ---------- Footer ---------- */

.noi-footer {
	padding: clamp(48px, 6vw, 72px) 0 28px;
	border-top: 2px solid var(--paper);
	background: rgba(19, 35, 43, 0.28);
	font-size: 0.85rem;
}

.noi-footer__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding-bottom: 28px;
	border-bottom: 1px dashed var(--line);
}
.noi-footer__logo img { width: 130px; height: auto; }

.noi-social { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; }
.noi-social a {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--paper);
	border-radius: 50%;
	transition: background-color 0.2s, color 0.2s;
}
.noi-social .noi-icon { width: 18px; height: 18px; }
.noi-social a:hover { background: var(--paper); color: var(--sky-deep); }

.noi-footer__contacts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px 28px;
	margin: 0;
	padding: 28px 0;
	border-bottom: 1px dashed var(--line);
}
.noi-footer__contact dt {
	margin-bottom: 6px;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--paper-dim);
}
.noi-footer__contact dd { margin: 0; font-size: 0.82rem; font-weight: 700; white-space: nowrap; }
.noi-footer__contact a { text-decoration: none; border-bottom: 1px solid var(--line); }
.noi-footer__contact a:hover { border-bottom-color: var(--paper); }

.noi-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px 32px;
	padding: 22px 0;
}
.noi-footer__legal ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 22px; }
.noi-footer__legal a { font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; }
.noi-footer__legal a:hover { text-decoration: underline; }
.noi-footer__partners { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 24px; flex-shrink: 0; }
.noi-footer__partners img { height: 24px; width: auto; opacity: 0.9; }
.noi-footer__partners a:hover img { opacity: 1; }

.noi-footer__company {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px 24px;
	padding-top: 18px;
	border-top: 1px dashed var(--line);
	font-size: 0.68rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--paper-dim);
}
.noi-footer__company p { margin: 0; }
.noi-footer__company span + span::before { content: "·"; margin: 0 8px; }

@media (max-width: 1100px) {
	.noi-footer__contacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
	.noi-footer__top { flex-direction: column; align-items: flex-start; }
	.noi-footer__logo img { width: 110px; }
	.noi-footer__bottom { flex-direction: column; align-items: flex-start; }
	.noi-footer__company { flex-direction: column; }
	.noi-footer__company span { display: block; }
	.noi-footer__company span + span::before { content: none; }
}
@media (max-width: 480px) {
	.noi-footer__contacts { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

/* ---------- Cookie: banner e pannello preferenze di iubenda ----------
   iubenda carica il suo foglio di stile DOPO il nostro e usa "!important": per vincere ripetiamo l'id
   (#x#x conta come due id) davanti a ogni regola. Lo sfondo nero del banner è scritto nell'elemento
   stesso e non si può sovrascrivere: lo copriamo con un'immagine di sfondo a tinta unita. */

html body #iubenda-cs-banner#iubenda-cs-banner .iubenda-cs-content {
	background-image: linear-gradient(var(--sky-deep), var(--sky-deep)) !important;
	border: 2px solid var(--paper) !important;
	border-radius: 8px !important;
	box-shadow: 0 24px 60px -20px rgba(0, 0, 0, 0.6) !important;
}
html body #iubenda-cs-banner#iubenda-cs-banner,
html body #iubenda-cs-banner#iubenda-cs-banner * { font-family: var(--font-type) !important; }
html body #iubenda-cs-banner#iubenda-cs-banner .iubenda-cs-brand { background: transparent !important; padding-bottom: 4px !important; }
html body #iubenda-cs-banner#iubenda-cs-banner .iubenda-cs-brand img {
	content: url("../img/logo-script.webp");
	width: auto !important;
	max-width: 120px !important;
	max-height: none !important;
	height: 64px !important;
	object-fit: contain;
}
html body #iubenda-cs-banner#iubenda-cs-banner #iubenda-cs-paragraph,
html body #iubenda-cs-banner#iubenda-cs-banner #iubenda-cs-paragraph p { color: var(--paper) !important; font-size: 13px !important; line-height: 1.55 !important; }
html body #iubenda-cs-banner#iubenda-cs-banner #iubenda-cs-paragraph a,
html body #iubenda-cs-banner#iubenda-cs-banner #iubenda-cs-paragraph strong { color: var(--paper) !important; }
html body #iubenda-cs-banner#iubenda-cs-banner #iubenda-cs-paragraph a { text-decoration: underline !important; font-weight: 700 !important; }
html body #iubenda-cs-banner#iubenda-cs-banner .iubenda-cs-close-btn { color: var(--paper) !important; opacity: 0.85 !important; }

/* Accetta e Rifiuta identici (stessa evidenza, come chiede il Garante); "Personalizza" come link */
html body #iubenda-cs-banner#iubenda-cs-banner .iubenda-cs-opt-group button,
html body #iubenda-cs-banner#iubenda-cs-banner .iubenda-cs-opt-group button.iubenda-cs-btn-primary,
html body #iubenda-cs-banner#iubenda-cs-banner .iubenda-cs-opt-group button.iubenda-cs-accept-btn,
html body #iubenda-cs-banner#iubenda-cs-banner .iubenda-cs-opt-group button.iubenda-cs-reject-btn {
	min-height: 44px !important;
	padding: 0 22px !important;
	border: 2px solid var(--paper) !important;
	border-radius: 999px !important;
	background: var(--paper) !important;
	color: var(--sky-deep) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	box-shadow: none !important;
	opacity: 1 !important;
}
html body #iubenda-cs-banner#iubenda-cs-banner .iubenda-cs-opt-group button.iubenda-cs-btn-primary:hover { background: transparent !important; color: var(--paper) !important; }
html body #iubenda-cs-banner#iubenda-cs-banner .iubenda-cs-opt-group button.iubenda-cs-customize-btn {
	min-height: 0 !important;
	padding: 6px 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--paper) !important;
	text-decoration: underline !important;
	text-underline-offset: 0.25em;
}
html body #iubenda-cs-banner#iubenda-cs-banner :focus-visible { outline: 2px dashed var(--paper) !important; outline-offset: 3px !important; }

/* Pannello "Scopri di più e personalizza": testata blu come il sito, corpo color carta */
html body #iubenda-iframe#iubenda-iframe { background: rgba(2, 40, 56, 0.78) !important; }
html body #iubenda-iframe#iubenda-iframe,
html body #iubenda-iframe#iubenda-iframe * { font-family: var(--font-type) !important; }
html body #iubenda-iframe#iubenda-iframe #iubenda-iframe-popup { border-radius: 8px !important; overflow: hidden !important; box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.7) !important; }
html body #iubenda-iframe#iubenda-iframe .iubenda-modal-navigation,
html body #iubenda-iframe#iubenda-iframe .purposes-header { background: var(--sky-deep) !important; color: var(--paper) !important; }
html body #iubenda-iframe#iubenda-iframe .iubenda-iframe-brand-img {
	content: url("../img/logo-script.webp");
	width: auto !important;
	height: 56px !important;
	max-height: none !important;
	object-fit: contain;
}
html body #iubenda-iframe#iubenda-iframe .purposes-header-title {
	color: var(--paper) !important;
	font-size: clamp(1.5rem, 3.2vw, 2.2rem) !important;
	line-height: 1.1 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.01em !important;
}
html body #iubenda-iframe#iubenda-iframe .purposes-header-text,
html body #iubenda-iframe#iubenda-iframe .purposes-header-text * { color: var(--paper) !important; font-size: 14px !important; line-height: 1.6 !important; }
html body #iubenda-iframe#iubenda-iframe .purposes-btn-cp {
	background: transparent !important;
	border: 2px solid var(--paper) !important;
	border-radius: 999px !important;
	color: var(--paper) !important;
}
html body #iubenda-iframe#iubenda-iframe .purposes-header .iub-btn-back,
html body #iubenda-iframe#iubenda-iframe .iubenda-modal-navigation .iub-btn-back {
	background: transparent !important;
	border: 2px solid var(--paper) !important;
	color: var(--paper) !important;
}
html body #iubenda-iframe#iubenda-iframe .iub-btn-back svg,
html body #iubenda-iframe#iubenda-iframe .iub-btn-back svg * { fill: currentColor !important; stroke: currentColor !important; }
html body #iubenda-iframe#iubenda-iframe .purposes-btn-cp:hover { background: var(--paper) !important; color: var(--sky-deep) !important; }

html body #iubenda-iframe#iubenda-iframe #iubenda-iframe-content,
html body #iubenda-iframe#iubenda-iframe .iubenda-iframe-top-container,
html body #iubenda-iframe#iubenda-iframe .purposes-body,
html body #iubenda-iframe#iubenda-iframe .iubenda-iframe-footer { background: var(--paper) !important; color: var(--ink) !important; }
html body #iubenda-iframe#iubenda-iframe .purposes-section-header-title,
html body #iubenda-iframe#iubenda-iframe .purposes-item-title,
html body #iubenda-iframe#iubenda-iframe .purposes-item-title-btn { color: var(--sky-deep) !important; }
html body #iubenda-iframe#iubenda-iframe .purposes-section-header-text,
html body #iubenda-iframe#iubenda-iframe .purposes-item-body,
html body #iubenda-iframe#iubenda-iframe .purposes-item-body * { color: var(--ink) !important; }
html body #iubenda-iframe#iubenda-iframe .purposes-item { border-color: rgba(4, 90, 120, 0.18) !important; }
html body #iubenda-iframe#iubenda-iframe a,
html body #iubenda-iframe#iubenda-iframe .iubenda-cs-cookie-policy-lnk { color: var(--sky-deep) !important; text-decoration: underline !important; }

/* Bottoni: Rifiuta tutto / Accetta tutto identici; Salva e continua pieno; Indietro e Configura a contorno */
html body #iubenda-iframe#iubenda-iframe .iub-btn-consent,
html body #iubenda-iframe#iubenda-iframe .iub-btn-reject,
html body #iubenda-iframe#iubenda-iframe .iub-btn-accept,
html body #iubenda-iframe#iubenda-iframe #iubFooterBtn,
html body #iubenda-iframe#iubenda-iframe #iubRejectBtn {
	border: 2px solid var(--sky-deep) !important;
	border-radius: 999px !important;
	background: var(--sky-deep) !important;
	color: var(--paper) !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	box-shadow: none !important;
}
html body #iubenda-iframe#iubenda-iframe .iub-btn-consent svg,
html body #iubenda-iframe#iubenda-iframe .iub-btn-consent svg * { fill: currentColor !important; stroke: currentColor !important; }
html body #iubenda-iframe#iubenda-iframe .iub-btn-consent:hover,
html body #iubenda-iframe#iubenda-iframe #iubFooterBtn:hover,
html body #iubenda-iframe#iubenda-iframe #iubRejectBtn:hover { background: transparent !important; color: var(--sky-deep) !important; }
html body #iubenda-iframe#iubenda-iframe #iubBackBtn,
html body #iubenda-iframe#iubenda-iframe .purposes-btn-tcf,
html body #iubenda-iframe#iubenda-iframe .iub-btn-config {
	border: 2px solid var(--sky-deep) !important;
	border-radius: 999px !important;
	background: transparent !important;
	color: var(--sky-deep) !important;
}
/* Interruttori: blu del sito quando accesi */
html body #iubenda-iframe#iubenda-iframe .iub-toggle-checkbox input.style1 { background-color: rgba(4, 90, 120, 0.25) !important; }
html body #iubenda-iframe#iubenda-iframe .iub-toggle-checkbox input.style1:checked { background-color: var(--sky-deep) !important; }
html body #iubenda-iframe#iubenda-iframe :focus-visible { outline: 2px dashed var(--sky-deep) !important; outline-offset: 3px !important; }

/* Pulsante flottante delle preferenze cookie (compare dopo la scelta) */
html body .iubenda-tp-btn.iubenda-tp-btn:not([data-tp-nostyle]),
html body .iubenda-tp-btn.iubenda-cs-preferences-link {
	width: 40px !important;
	height: 40px !important;
	border: 2px solid var(--paper) !important;
	border-radius: 50% !important;
	background-color: var(--sky-deep) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f6f3ec' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12.5A9 9 0 1 1 11.5 3a3 3 0 0 0 3.5 3.5 3 3 0 0 0 3.5 3.5 3 3 0 0 0 2.5 2.5Z'/%3E%3Ccircle cx='8.5' cy='10.5' r='1'/%3E%3Ccircle cx='15' cy='15' r='1'/%3E%3Ccircle cx='9.5' cy='16' r='1'/%3E%3C/svg%3E") !important;
	background-size: 22px 22px !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
	box-shadow: 0 8px 20px -8px rgba(0, 0, 0, 0.6) !important;
}
html body.noi-ev .iubenda-tp-btn.iubenda-tp-btn:not([data-tp-nostyle]) { background-color: #1f1d1a !important; border-color: #f2ede3 !important; }
/* Sul carrello da telefono la barra fissa in basso non deve finire sopra al pulsante */
@media (max-width: 768px) { html body.woocommerce-cart .iubenda-tp-btn.iubenda-tp-btn { bottom: 96px !important; } }

/* ---------- Testi da leggere: font semplice (Arial) ----------
   Pagine legali (e le altre pagine di solo testo; carrello, pagamento e account no), descrizioni prodotto,
   campi e testi di servizio dei moduli e del checkout, testi dei cookie.
   Titoli, menu, prezzi e bottoni restano col font della copertina. */
.noi-page:not(.noi-page--shop) .noi-prose,
.noi-page:not(.noi-page--shop) .noi-prose p, .noi-page:not(.noi-page--shop) .noi-prose li, .noi-page:not(.noi-page--shop) .noi-prose td, .noi-page:not(.noi-page--shop) .noi-prose th,
.noi-page:not(.noi-page--shop) .noi-prose h2, .noi-page:not(.noi-page--shop) .noi-prose h3, .noi-page:not(.noi-page--shop) .noi-prose h4,
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-tabs .panel,
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td,
.woocommerce form .form-row label,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout .woocommerce-privacy-policy-text,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error,
.noi-note,
.woocommerce-checkout #payment div.payment_box,
.woocommerce-account .woocommerce-MyAccount-content p,
.woocommerce-account .woocommerce-form-login p,
.woocommerce-account .woocommerce-form-register p,
.woocommerce-account .woocommerce-ResetPassword p {
	font-family: var(--font-text);
	letter-spacing: 0;
}
.noi-page:not(.noi-page--shop) .noi-prose { font-size: 1rem; line-height: 1.7; }
.noi-page:not(.noi-page--shop) .noi-prose h2, .noi-page:not(.noi-page--shop) .noi-prose h3 { text-transform: none; letter-spacing: 0; }
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-tabs .panel { font-size: 1rem; line-height: 1.65; }

/* Cookie (iubenda): i testi in Arial, titoli e bottoni restano col font del sito */
html body #iubenda-cs-banner#iubenda-cs-banner #iubenda-cs-paragraph,
html body #iubenda-cs-banner#iubenda-cs-banner #iubenda-cs-paragraph * { font-family: var(--font-text) !important; font-size: 13.5px !important; }
html body #iubenda-iframe#iubenda-iframe .purposes-header-text,
html body #iubenda-iframe#iubenda-iframe .purposes-header-text *,
html body #iubenda-iframe#iubenda-iframe .purposes-section-header-text,
html body #iubenda-iframe#iubenda-iframe .purposes-section-header-text *,
html body #iubenda-iframe#iubenda-iframe .purposes-item-body,
html body #iubenda-iframe#iubenda-iframe .purposes-item-body *,
html body #iubenda-iframe#iubenda-iframe .purposes-item-title,
html body #iubenda-iframe#iubenda-iframe .purposes-item-title * { font-family: var(--font-text) !important; }

/* Paese con una sola scelta (Italia): largo come gli altri campi */
.woocommerce form .form-row select.country_to_state { width: 100% !important; }
.woocommerce form .form-row select { font-family: var(--font-text) !important; }

/* ---------- Spedizione gratuita: barra che si riempie (carrello e pagamento) ---------- */
.noi-fs { display: grid; gap: 10px; width: 100%; }
.noi-fs__text { margin: 0; font-family: var(--font-text); font-size: 0.95rem; }
.noi-fs__text strong { font-weight: 700; }
.noi-fs__bar {
	position: relative;
	display: block;
	height: 12px;
	border: 2px solid var(--paper);
	border-radius: 999px;
	background: rgba(246, 243, 236, 0.12);
	overflow: hidden;
}
.noi-fs__fill {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--paper);
	transition: width 0.6s cubic-bezier(0.2, 0.7, 0.3, 1);
	animation: noi-fs-grow 0.9s cubic-bezier(0.2, 0.7, 0.3, 1) both;
}
@keyframes noi-fs-grow { from { transform: scaleX(0); transform-origin: left; } to { transform: scaleX(1); transform-origin: left; } }
.noi-fs.is-done .noi-fs__text::before { content: "✓ "; }
.noi-fs__cta {
	justify-self: start;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: 0.25em;
}
/* L'avviso del plugin non deve più mostrare il suo vecchio bottone accanto alla barra */
.woocommerce-info:has(.noi-fs) { display: block; }
.woocommerce-info:has(.noi-fs) > .button,
.woocommerce-info:has(.noi-fs) > a.button { display: none !important; }
