/* =========================================================================
   a*KIND of — Design System
   Minimal, typography-driven, ispirato a theattico.com.
   Bianco dominante, serif sottile per i display, sans-serif pulito per UI,
   immagini senza bordi né ombre, molto spazio bianco.
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Variabili
   ---------------------------------------------------------------------- */
:root {
	/* Palette */
	--color-bg:         #FFFFFF;
	--color-bg-soft:    #F8F7F5;
	--color-text:       #1A1A1A;
	--color-text-muted: #888888;
	--color-accent:     #1A1A1A; /* nessun accento colorato: coerenza col testo */
	--color-border:     #E8E8E8;

	/* Tipografia */
	--font-display: "Inter", "Helvetica Neue", Arial, sans-serif;
	--font-body:    "Inter", "Helvetica Neue", Arial, sans-serif;

	/* Layout */
	--maxw:           1320px;
	--maxw-narrow:    760px;
	--gutter:         clamp(1.25rem, 4vw, 4rem);
	--space-section:  clamp(4rem, 9vw, 7.5rem);   /* 64–120px */
	--header-h:       72px;

	/* Tracking (letterspacing) */
	--track-nav:      0.18em;
	--track-display:  0.02em;

	/* Transizioni */
	--ease:           cubic-bezier(0.22, 0.61, 0.36, 1);
	--dur:            0.3s;
}

/* -------------------------------------------------------------------------
   2. Reset leggero
   ---------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-body);
	font-weight: 300;
	font-size: 14px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.nav-open { overflow: hidden; }

img { max-width: 100%; height: auto; display: block; border: 0; }

a { color: inherit; text-decoration: none; transition: opacity var(--dur) var(--ease); }
a:hover { opacity: 0.6; }

button { font-family: inherit; cursor: pointer; }

h1, h2, h3, h4 {
	font-family: var(--font-display);
	font-weight: 300;
	letter-spacing: var(--track-display);
	line-height: 1.1;
	margin: 0;
}

p { margin: 0 0 1.25em; font-family: var(--font-body); }

ul { margin: 0; padding: 0; list-style: none; }

/* Accessibilità */
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 1000;
	background: var(--color-text); color: var(--color-bg); padding: 0.75em 1.25em;
}
.skip-link:focus { left: 0; }

/* -------------------------------------------------------------------------
   3. Layout helpers
   ---------------------------------------------------------------------- */
.container {
	width: 100%;
	max-width: var(--maxw);
	margin: 0 auto;
	padding-left: var(--gutter);
	padding-right: var(--gutter);
}
.container--narrow { max-width: var(--maxw-narrow); }

.section { padding-top: var(--space-section); padding-bottom: var(--space-section); }

.section__head { text-align: center; margin-bottom: clamp(2rem, 5vw, 4rem); }
.section__title {
	font-size: clamp(1.75rem, 4vw, 3rem);
	font-weight: 300;
}
.section__cta { text-align: center; margin-top: clamp(2rem, 5vw, 3.5rem); margin-bottom: 0; }
.section__empty { text-align: center; color: var(--color-text-muted); }

/* Link con sottolineatura sottile, in stile UI */
.link-underline {
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	font-weight: 400;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}

/* -------------------------------------------------------------------------
   4. Header / navigazione
   ---------------------------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--color-bg);
	transition: box-shadow var(--dur) var(--ease), background var(--dur) var(--ease);
}
.site-header.is-scrolled { box-shadow: 0 1px 0 var(--color-border); }

/* --- Header trasparente sovrapposto all'hero (solo home, non scrollata) --- */
.site-header--overlay {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	background: transparent;
	color: var(--color-bg);
}
/* Sottile scrim per leggibilità del testo bianco sull'immagine hero */
.site-header--overlay:not(.is-scrolled)::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0));
}
.site-header--overlay:not(.is-scrolled) { box-shadow: none; }
/* Una volta scrollata torna solida e scura, come l'header normale */
.site-header--overlay.is-scrolled {
	background: var(--color-bg);
	color: var(--color-text);
}
/* Con il menu mobile aperto (overlay bianco) il testo torna scuro */
body.nav-open .site-header--overlay { color: var(--color-text); }
body.nav-open .site-header--overlay::before { display: none; }
/* Elementi "muted" leggibili sull'hero scuro */
.site-header--overlay:not(.is-scrolled) .cart-link__count,
.site-header--overlay:not(.is-scrolled) .header-account__sep { color: rgba(255, 255, 255, 0.6); }

/* Logo bianco/nero: stessa logica del colore testo dell'header trasparente */
.site-logo--white { display: none; }
.site-header--overlay:not(.is-scrolled) .site-logo--black { display: none; }
.site-header--overlay:not(.is-scrolled) .site-logo--white { display: block; }
body.nav-open .site-header--overlay .site-logo--black { display: block; }
body.nav-open .site-header--overlay .site-logo--white { display: none; }

/* Il contenuto deve stare sopra lo scrim */
.site-header__inner { position: relative; z-index: 1; }

/* Layout a 3 colonne: menu a sinistra, logo al centro, account+carrello a destra */
.site-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1.5rem;
	min-height: var(--header-h);
	padding-left: var(--gutter);
	padding-right: var(--gutter);
}

/* min-width:0 mantiene le due colonne laterali esattamente uguali (1fr),
   così il logo resta centrato anche se a destra c'è più contenuto. */
.site-header__left  { display: flex; align-items: center; gap: 1rem; justify-self: start; min-width: 0; }
.site-header__right { display: flex; align-items: center; gap: clamp(1rem, 2vw, 2rem); justify-self: end; min-width: 0; }

.site-branding { justify-self: center; text-align: center; }
.site-title {
	font-family: var(--font-display);
	font-size: 1.4rem;
	font-weight: 400;
	letter-spacing: 0.04em;
	white-space: nowrap;
}
.site-title__star, .hero__star { font-style: italic; padding: 0 0.04em; }
.site-logo-link { display: inline-block; }
.site-logo { max-height: 32px; width: auto; }

/* Nav desktop (allineata a sinistra) */
.primary-nav__list {
	display: flex;
	justify-content: flex-start;
	gap: clamp(1.25rem, 3vw, 3rem);
}
.primary-nav__list a,
.site-header__cart .cart-link,
.header-account__link {
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	font-weight: 300;
	/* line-height 1: senza, l'interlinea ereditata dal body (1.65) sposta
	   otticamente il testo verso il basso rispetto al logo nella riga dell'header. */
	line-height: 1;
}
.header-account { display: flex; align-items: center; gap: 0.5rem; white-space: nowrap; }
.header-account__sep { color: var(--color-text-muted); font-size: 11px; }
.cart-link__count { color: var(--color-text-muted); }

/* Hamburger (nascosto su desktop) */
.nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 28px; height: 28px;
	background: none; border: 0; padding: 0;
	color: inherit;
}
.nav-toggle__bar {
	display: block; width: 24px; height: 1px;
	background: currentColor;
	transition: transform var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
.nav-toggle.is-active .nav-toggle__bar:nth-child(1) { transform: translateY(3px) rotate(45deg); }
.nav-toggle.is-active .nav-toggle__bar:nth-child(2) { transform: translateY(-3px) rotate(-45deg); }

/* Overlay mobile */
.mobile-nav {
	position: fixed;
	inset: 0;
	z-index: 99;
	background: var(--color-bg);
	transform: translateY(-100%);
	opacity: 0;
	visibility: hidden;
	transition: transform var(--dur) var(--ease), opacity var(--dur) var(--ease), visibility var(--dur);
}
.mobile-nav.is-open { transform: translateY(0); opacity: 1; visibility: visible; }
.mobile-nav__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2rem;
	height: 100%;
	padding: var(--header-h) var(--gutter) var(--gutter);
}
.mobile-nav__list { display: flex; flex-direction: column; align-items: center; gap: 1.75rem; }
.mobile-nav__list a {
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: 300;
}
.mobile-nav__account { display: flex; gap: 1.5rem; }
.mobile-nav__account a {
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	font-weight: 300;
}

/* -------------------------------------------------------------------------
   5. Hero
   ---------------------------------------------------------------------- */
.hero {
	position: relative;
	display: block;
	height: clamp(380px, 68vh, 720px);
	overflow: hidden;
}
.hero:hover { opacity: 1; }

/* Sistema immagine (hero + blocchi categoria) — un solo layer per la massima
   fluidità. Hover (0.5s): zoom gentile (transform) e, per l'hero, passaggio da
   bianco e nero a colore (filter). L'URL arriva dalla custom property --hero-img. */
.hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: var(--hero-img);
	background-size: cover;
	background-position: var(--hero-pos-x, 50%) var(--hero-pos-y, 50%);
	background-repeat: no-repeat;
	transform: scale(1) translateZ(0);
	transition: transform 0.5s ease, filter 0.5s ease;
	will-change: transform, filter;
	backface-visibility: hidden;
}
/* Bianco e nero a riposo per tutti (hero + blocchi categoria) */
.hero .hero__media,
.category-hero__frame .hero__media { filter: grayscale(1); }

/* Hover (0.5s): zoom gentile + passaggio al colore — uguale per tutti */
.hero:hover .hero__media,
.category-hero:hover .category-hero__frame .hero__media {
	transform: scale(1.06) translateZ(0);
	filter: grayscale(0);
}

/* Scrim sinistro per la leggibilità del testo bianco */
.hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.1) 45%, rgba(0, 0, 0, 0) 65%);
}

/* Blocco testuale a sinistra, centrato verticalmente */
.hero__content {
	position: absolute;
	z-index: 2;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.6rem;
	max-width: 60%;
	padding-left: var(--gutter);
	padding-right: var(--gutter);
	color: var(--color-bg);
	text-align: left;
}
.hero__heading {
	font-family: var(--font-display);
	font-size: clamp(3rem, 9vw, 7.5rem);
	font-weight: 300;
	line-height: 0.95;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-shadow: 0 1px 40px rgba(0, 0, 0, 0.3);
}
.hero__capsule {
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: clamp(12px, 1.4vw, 15px);
	font-weight: 300;
	text-shadow: 0 1px 20px rgba(0, 0, 0, 0.35);
}
/* Riga meta: etichetta capsule + divisore sulla stessa linea orizzontale */
.hero__meta {
	display: flex;
	align-items: center;
	gap: 1rem;
}
.hero__divider {
	width: 120px;
	height: 1px;
	background: currentColor;
	opacity: 0.7;
	flex: 0 0 auto;
}
.hero__brandmark {
	margin-top: 0.4rem;
	font-family: var(--font-display);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.08em;
	opacity: 0.85;
}
.hero__brandmark .hero__star { font-style: italic; }

/* Due blocchi categoria affiancati, stesso trattamento dell'hero */
.category-duo {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
}
.category-hero {
	display: block;
}
.category-hero:hover { opacity: 1; }
.category-hero__frame {
	position: relative;
	display: block;
	height: clamp(360px, 62vh, 720px);
	overflow: hidden;
}
.category-hero__frame::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.38));
}
.category-hero__label {
	position: absolute;
	z-index: 2;
	left: 0;
	bottom: 0;
	display: block;
	padding: 0 0 1.5rem 0.5rem;
	color: var(--color-bg);
	font-family: var(--font-display);
	font-size: clamp(1rem, 1.6vw, 1.35rem);
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-align: left;
	text-shadow: 0 1px 20px rgba(0, 0, 0, 0.4);
}

/* -------------------------------------------------------------------------
   6. Griglie prodotti / categorie
   ---------------------------------------------------------------------- */
.product-grid,
ul.products,
.category-grid {
	display: grid;
	gap: clamp(1.5rem, 3vw, 3rem) clamp(1rem, 2.5vw, 2.25rem);
	grid-template-columns: repeat(3, 1fr);
}
.columns-2 { grid-template-columns: repeat(2, 1fr); }
.columns-3 { grid-template-columns: repeat(3, 1fr); }
.columns-4 { grid-template-columns: repeat(4, 1fr); }

/* Card prodotto */
.product-card { margin: 0; }
.product-card__media {
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: var(--color-bg-soft);
}
.product-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--ease);
}
.product-card__link:hover { opacity: 1; }
.product-card__link:hover .product-card__media img { transform: scale(1.03); }
.product-card__info {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding-top: 1rem;
	text-align: center;
}
.product-card__title {
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1.4;
}
.product-card__price {
	font-family: var(--font-body);
	font-size: 14px;
	color: var(--color-text-muted);
}
.product-card__price del { margin-right: 0.4em; }
.product-card__price ins { text-decoration: none; color: var(--color-text); }

/* Card categoria */
.category-card__media { aspect-ratio: 3 / 4; overflow: hidden; background: var(--color-bg-soft); }
.category-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease); }
.category-card a:hover { opacity: 1; }
.category-card a:hover .category-card__media img { transform: scale(1.03); }
.category-card__label {
	display: block;
	text-align: center;
	padding-top: 1rem;
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	font-weight: 300;
}

/* -------------------------------------------------------------------------
   7. Manifesto
   ---------------------------------------------------------------------- */
.section--manifesto { text-align: center; }
.section--manifesto .container { max-width: 900px; padding-left: clamp(1rem, 2.5vw, 2rem); padding-right: clamp(1rem, 2.5vw, 2rem); }
.manifesto { display: flex; flex-direction: column; align-items: center; }

.manifesto__eyebrow {
	display: block;
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	color: var(--color-text-muted);
	margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}
.manifesto-text {
	font-family: var(--font-display);
	font-size: clamp(1.2rem, 2.6vw, 1.85rem);
	font-weight: 300;
	font-style: italic;
	line-height: 1.35;
	margin: 0 auto;
	max-width: 42ch;
}
.manifesto__divider {
	display: block;
	width: 120px;
	height: 1px;
	background: currentColor;
	opacity: 0.22;
	margin: clamp(1.75rem, 4vw, 2.75rem) auto;
}
.manifesto__body {
	font-size: 15px;
	line-height: 1.95;
	color: var(--color-text);
	max-width: 52ch;
	margin: 0 auto;
}
.manifesto__pillars {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	width: 100%;
	margin: clamp(2.75rem, 6vw, 4.5rem) auto 0;
}
.manifesto__pillar {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6rem;
	position: relative;
}
/* Sottili divisori verticali tra i pilastri */
.manifesto__pillar + .manifesto__pillar::before {
	content: "";
	position: absolute;
	left: calc(-1 * clamp(0.75rem, 2vw, 1.75rem));
	top: 0.25rem;
	bottom: 0.25rem;
	width: 1px;
	background: currentColor;
	opacity: 0.12;
}
.manifesto__pillar-num {
	font-family: var(--font-display);
	font-size: 1.6rem;
	font-weight: 300;
	color: var(--color-text-muted);
}
.manifesto__pillar-label {
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	font-weight: 400;
}
.manifesto__pillar-text {
	font-size: 13px;
	line-height: 1.6;
	color: var(--color-text-muted);
	max-width: 22ch;
	margin: 0;
}

/* Reveal in scroll: fade + lieve salita, con stagger */
.reveal .reveal-item {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
}
.reveal.is-visible .reveal-item { opacity: 1; transform: none; }
.reveal.is-visible .reveal-item:nth-child(1) { transition-delay: 0.05s; }
.reveal.is-visible .reveal-item:nth-child(2) { transition-delay: 0.14s; }
.reveal.is-visible .reveal-item:nth-child(3) { transition-delay: 0.23s; }
.reveal.is-visible .reveal-item:nth-child(4) { transition-delay: 0.32s; }
.reveal.is-visible .reveal-item:nth-child(5) { transition-delay: 0.41s; }
.reveal.is-visible .reveal-item:nth-child(6) { transition-delay: 0.50s; }

/* -------------------------------------------------------------------------
   8. Pagine: Brand / Servizi / Contatti / generica
   ---------------------------------------------------------------------- */
.page-article { padding-top: var(--space-section); padding-bottom: var(--space-section); }
.page-header { margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.page-header__title {
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 300;
}
.page-content {
	max-width: 820px;
	margin: 0 auto;
	padding-left: clamp(1rem, 3vw, 2rem);
	padding-right: clamp(1rem, 3vw, 2rem);
}
.page-content h3,
.page-content h4 {
	font-family: var(--font-display);
	font-weight: 500;
	line-height: 1.3;
	margin: 2.5em 0 1em;
}
.page-content h3:first-child,
.page-content h4:first-child { margin-top: 0; }
.page-content p { margin: 0 0 1.5em; line-height: 1.9; }
.page-content ul,
.page-content ol {
	margin: 0 0 1.5em;
	padding-left: 1.25em;
	line-height: 1.9;
}
.page-content li { margin-bottom: 0.6em; }
.page-content hr {
	border: 0;
	border-top: 1px solid var(--color-border);
	margin: 2.5em 0;
}
.brand__eyebrow,
.servizio__kicker {
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	color: var(--color-text-muted);
	margin-bottom: 1rem;
}
.page-content p,
.brand__content p,
.contatti__intro { font-size: 15px; }

/* Brand — più respiro laterale su tutta la pagina, per dare spazio ai titoli lunghi */
.brand .container {
	padding-left: clamp(1.5rem, 7vw, 6rem);
	padding-right: clamp(1.5rem, 7vw, 6rem);
}

.brand__intro { text-align: center; }
.brand__title { font-size: clamp(2.25rem, 6vw, 4.5rem); }
.brand__lead {
	font-family: var(--font-display);
	font-size: clamp(1.4rem, 2.8vw, 2rem);
	font-weight: 800;
	line-height: 1.4;
	max-width: none;
	margin: 1.5rem auto 0;
}
.brand__figure { margin: 0; }
.brand__figure img {
	width: 100%;
	max-height: 80vh;
	object-fit: cover;
}
.brand__content { font-size: 15px; line-height: 1.8; }
.brand__body { text-align: center; }

/* Brand — "Ne hanno parlato" (loghi stampa) */
.press { padding: clamp(2.5rem, 6vw, 4rem) 0; text-align: center; }
.press .brand__eyebrow { margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
.press__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: clamp(2rem, 6vw, 5rem);
}
.press__link { display: inline-flex; color: var(--color-text-muted); }
.press__link:hover { color: var(--color-text); opacity: 1; }
.press__logo { height: 26px; width: auto; }

/* Brand — origine (storia) */
.origin, #storia, #iniziata { scroll-margin-top: var(--header-h); }

/* Brand — divider tra "La storia" e "Com'è iniziata" */
.brand-divider {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 3vw, 2rem);
	padding: clamp(1rem, 3vw, 2rem) 0;
}
.brand-divider__line { flex: 1; height: 1px; background: var(--color-border); }
.brand-divider__mark {
	font-family: var(--font-display);
	font-size: 1.5rem;
	line-height: 1;
	color: var(--color-text-muted);
	transform: rotate(8deg);
}

/* Brand — "Com'è iniziata": testo centrale */
#iniziata .brand__eyebrow,
#iniziata .editorial__body,
#iniziata .editorial-split__text { text-align: center; }

/* Brand — riga di 3 bottoni essenziali (anchor + link categoria), dentro il body */
.brand__nav {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1rem, 3vw, 2rem);
	padding: clamp(1.5rem, 4vw, 2.5rem) 0;
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
}
.brand__nav-btn {
	display: block;
	width: 100%;
	text-align: center;
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	font-weight: 400;
	color: var(--color-text);
	padding: 0.85rem 0.5rem;
	border: 1px solid var(--color-border);
	transition: border-color var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
.brand__nav-btn:hover { border-color: var(--color-text); opacity: 1; }
@media (max-width: 720px) {
	.brand__nav { grid-template-columns: 1fr; }
}

/* Brand — sezione "La storia" (titolo grande) */
.storia__title {
	text-align: center;
	margin: 0 auto clamp(2.5rem, 5vw, 3.5rem);
}
.storia__kicker { text-align: center; margin-bottom: 0.75rem; }
.storia__prolifera {
	font-family: var(--font-display);
	font-size: clamp(3rem, 9vw, 6rem);
	font-weight: 300;
	line-height: 1;
	letter-spacing: 0.01em;
	margin: 0 0 0.75rem;
}
.storia__subtitle {
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.6;
	font-weight: 300;
	max-width: 32ch;
	margin: 0 auto;
}

/* Brand — corpo editoriale condiviso tra "La storia" e "Com'è iniziata" */
.editorial__body {
	max-width: 60ch;
	margin: 0 auto;
	text-align: left;
}
.editorial__body p {
	font-size: 15px;
	line-height: 1.95;
	margin: 0 0 1.5em;
}
.editorial__lead {
	font-family: var(--font-display);
	font-size: clamp(1.35rem, 2.8vw, 1.85rem) !important;
	line-height: 1.4 !important;
	font-weight: 300;
}
.editorial__emphasis {
	font-family: var(--font-display);
	font-size: clamp(1.15rem, 2.2vw, 1.4rem) !important;
	line-height: 1.5 !important;
	font-weight: 300;
}
.editorial__emphasis--strong {
	font-size: clamp(1.3rem, 2.5vw, 1.6rem) !important;
	font-weight: 600;
}
.editorial__pull {
	text-align: center;
	font-family: var(--font-display);
	font-size: clamp(1.4rem, 3vw, 2rem);
	font-weight: 300;
	line-height: 1.4;
	max-width: 30ch;
	margin: clamp(2.5rem, 5vw, 3.5rem) auto;
}
blockquote.editorial__pull--quote {
	border: 0;
	padding: 0;
	max-width: 46ch;
	font-weight: 600;
}
.editorial__pull--quote p { margin: 0 0 0.6em; }

/* Brand — chiusura "Find your kind of" come logo/wordmark invece che testo */
.editorial__pull--logo { max-width: 340px; }
.editorial__pull--logo img { width: 100%; height: auto; display: block; margin: 0 auto; }

/* Brand — paragrafo centrale, stessa dimensione del testo normale */
.editorial__statement {
	text-align: center;
	font-size: 15px;
	line-height: 1.95;
	font-weight: 300;
	max-width: 60ch;
	margin: 0 auto;
}

/* Brand — rottura fotografica full-bleed tra i moduli editoriali */
.editorial-figure { margin: clamp(2.5rem, 6vw, 4.5rem) 0; }
.editorial-figure img { width: 100%; max-height: 80vh; object-fit: cover; }

/* Brand — gallerie fotografiche tra i moduli di testo ("La storia") */
.editorial-gallery {
	display: grid;
	gap: clamp(0.75rem, 2vw, 1.5rem);
	margin: clamp(2.5rem, 6vw, 4.5rem) 0;
}
.editorial-gallery--2x2,
.editorial-gallery--4 { grid-template-columns: repeat(2, 1fr); }
.editorial-gallery__item { margin: 0; }
.editorial-gallery__item img { width: 100%; height: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; }

/* Brand — credits fotografici, chiusura sezione "La storia" */
.editorial__credits {
	text-align: center;
	font-size: 12px;
	line-height: 1.8;
	letter-spacing: var(--track-nav);
	text-transform: uppercase;
	color: var(--color-text-muted);
	margin: clamp(1.5rem, 4vw, 2.5rem) 0 0;
}

/* Brand — modulo testo/immagine alternato (stesso schema di .servizio__inner) */
.editorial-split {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
	padding: clamp(2.5rem, 6vw, 4.5rem) 0;
}
.editorial-split--alt { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
.editorial-split--alt .editorial-split__media { order: -1; }
.editorial-split__text { max-width: 52ch; }
.editorial-split__text p { font-size: 15px; line-height: 1.9; margin: 0 0 1.4em; }
.editorial-split__text p:last-child { margin-bottom: 0; }
.editorial-split__media { margin: 0; }
.editorial-split__media img { width: 100%; aspect-ratio: 9 / 11; object-fit: cover; }

/* Brand — artigianalità (3 valori) */
.craft__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(2rem, 5vw, 3.5rem);
}
.craft__item { display: flex; flex-direction: column; gap: 0.4rem; }
.craft__index {
	font-family: var(--font-display);
	font-size: 1.6rem;
	font-weight: 300;
	color: var(--color-text-muted);
}
.craft__kicker {
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	font-weight: 400;
	margin: 0;
}
.craft__title {
	font-size: clamp(1.25rem, 2.2vw, 1.6rem);
	font-weight: 300;
	line-height: 1.2;
	margin: 0.25rem 0 0.4rem;
}
.craft__text { font-size: 14px; line-height: 1.7; color: var(--color-text-muted); margin: 0; }

/* Brand — fondatrice (volto + firma) */
.founder__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}
.founder__media { margin: 0; }
.founder__media img { width: 100%; aspect-ratio: 9 / 11; object-fit: cover; }
.founder__quote {
	font-family: var(--font-display);
	font-style: italic;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 300;
	line-height: 1.3;
	margin: 0.5rem 0 1.5rem;
}
.founder__bio { font-size: 15px; line-height: 1.85; max-width: 42ch; }
.founder__signature {
	font-family: var(--font-display);
	font-style: italic;
	font-size: 1.5rem;
	margin: 1.5rem 0 0.25rem;
}
.founder__name {
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	color: var(--color-text-muted);
	margin: 0;
}

/* Brand — chiusura social */
.proof { text-align: center; }
.proof__title {
	font-size: clamp(1.75rem, 4vw, 3rem);
	font-weight: 300;
	max-width: 20ch;
	margin: 0 auto clamp(1.5rem, 3vw, 2.25rem);
}
.proof__social { display: flex; justify-content: center; }

/* Servizi — hero con immagine di sfondo (header trasparente sopra) */
.page-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: clamp(260px, 44vh, 360px);
	overflow: hidden;
	background-image: var(--hero-img);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: var(--color-bg);
	text-align: center;
}
.page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.25));
}
/* Brand — hero fotografica pura, nessun testo sopra: niente scrim, 16:9 */
.page-hero--plain { min-height: 0; aspect-ratio: 2920 / 1386; }
.page-hero--plain::before { display: none; }
@media (max-width: 720px) {
	.page-hero--plain { background-position: left center; }
}
.page-hero__inner {
	position: relative;
	z-index: 2;
	padding: calc(var(--header-h) + 1.5rem) var(--gutter) 1.5rem;
}
.page-hero__eyebrow {
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	margin: 0 0 0.9rem;
	opacity: 0.9;
}
.page-hero__title {
	font-family: var(--font-display);
	font-size: clamp(2.5rem, 6vw, 4.5rem);
	font-weight: 300;
	line-height: 1;
	letter-spacing: 0.02em;
	text-shadow: 0 1px 30px rgba(0, 0, 0, 0.3);
}

/* Servizi — offerte: testo a sinistra, immagine a destra */
.servizi__list { border-top: 1px solid var(--color-border); }
.servizio { border-bottom: 1px solid var(--color-border); }
.servizio--alt { background: var(--color-bg-soft); }
.servizio__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
	padding: clamp(3rem, 7vw, 6rem) 0;
}
.servizio__index {
	display: block;
	font-family: var(--font-display);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 300;
	line-height: 1;
	color: var(--color-text-muted);
	margin-bottom: 1rem;
}
.servizio__text { max-width: 46ch; }
.servizio__title {
	font-size: clamp(2rem, 5vw, 3.25rem);
	margin-bottom: 1rem;
}
.servizio__desc { font-size: 16px; line-height: 1.7; }
.servizio__points {
	margin: 1.5rem 0 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.servizio__points li {
	position: relative;
	padding-left: 1.5rem;
	font-size: 14px;
	line-height: 1.6;
	color: var(--color-text-muted);
}
.servizio__points li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.6em;
	width: 12px;
	height: 1px;
	background: currentColor;
	opacity: 0.6;
}
.servizio__cta { margin-top: 1.75rem; margin-bottom: 0; }
.servizio__media { margin: 0; }
.servizio__media img {
	width: 100%;
	aspect-ratio: 9 / 7;
	object-fit: cover;
}
.servizio__media--contain img { object-fit: contain; }

/* Contatti */
.contatti__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 6vw, 6rem);
	align-items: center;
}
.contatti__intro { margin-top: 0.75rem; max-width: 52ch; }
.contatti__meta { margin: 1.25rem 0 0; display: flex; flex-direction: column; gap: 1.25rem; }
.contatti__meta li { display: flex; flex-direction: column; gap: 0.25rem; }
.contatti__label {
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 10px;
	color: var(--color-text-muted);
}
.contatti__aside { max-width: 52ch; }
.contatti__aside .brand__eyebrow { margin-bottom: 0.5rem; }
.contatti__aside .page-header__title { font-size: clamp(1.75rem, 3.5vw, 2.5rem); }
.contatti__form-wrap { min-width: 0; }
.contact-form { margin: 0; }
.form-row--submit { margin-top: 0.5rem; margin-bottom: 0; align-items: flex-start; }

.contatti__emails {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	margin: 1.25rem 0 0;
}
.contatti__email-box {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: 1rem 1.25rem;
	border: 1px solid var(--color-border);
	transition: border-color 0.2s ease, background-color 0.2s ease;
}
.contatti__email-box:hover,
.contatti__email-box:focus-within {
	border-color: var(--color-text);
	background-color: var(--color-bg-soft);
}
.contatti__email-box-link {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	color: inherit;
	text-decoration: none;
}
.contatti__email-label {
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 10px;
	color: var(--color-text-muted);
}
.contatti__email-desc {
	font-size: 13px;
	color: var(--color-text-muted);
	line-height: 1.5;
}
.contatti__email-address {
	font-size: 15px;
}
.contatti__email-policy-link {
	display: inline-block;
	align-self: flex-start;
	font-size: 12px;
	text-decoration: underline;
	color: var(--color-text-muted);
}
.contatti__email-policy-link:hover,
.contatti__email-policy-link:focus-visible {
	color: var(--color-text);
}

/* Blog / archivi generici (index.php) */
.entry { padding: clamp(2rem, 4vw, 3rem) 0; border-bottom: 1px solid var(--color-border); }
.entry:first-child { padding-top: 0; }
.entry__title {
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 300;
	margin-bottom: 0.5rem;
}
.entry__content { font-size: 15px; line-height: 1.8; color: var(--color-text-muted); }

/* -------------------------------------------------------------------------
   9. Form (contatti + WooCommerce ereditano questi stili)
   ---------------------------------------------------------------------- */
.form-row { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1.5rem; }
.form-row label,
.woocommerce form .form-row label {
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 10px;
	color: var(--color-text-muted);
}
input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="search"],
input[type="number"],
textarea,
select {
	width: 100%;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--color-border);
	padding: 0.65rem 0;
	font-family: var(--font-body);
	font-size: 14px;
	color: var(--color-text);
	border-radius: 0;
	transition: border-color var(--dur) var(--ease);
}
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--color-text); }
textarea { resize: vertical; }

/* Honeypot nascosto */
.hp-field { position: absolute; left: -9999px; opacity: 0; height: 0; overflow: hidden; }

/* Bottone (sobrio, coerente) */
.button,
button.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce #respond input#submit,
.woocommerce input.button,
.woocommerce input.button.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	display: inline-block;
	background: var(--color-text);
	color: var(--color-bg);
	border: 1px solid var(--color-text);
	padding: 0.95rem 2.25rem;
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	font-weight: 400;
	line-height: 1;
	border-radius: 0;
	transition: background var(--dur) var(--ease), color var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce input.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--color-bg);
	color: var(--color-text);
	opacity: 1;
}

.form-message { padding: 1rem 1.25rem; margin-bottom: 2rem; font-size: 13px; border: 1px solid var(--color-border); }
.form-message--ok { border-color: var(--color-text); }
.form-message--err { color: #9b1c1c; border-color: #e6c4c4; }

/* Form contatti: stato loading */
.contact-form.is-loading [type="submit"] {
	opacity: 0.55;
	cursor: not-allowed;
	pointer-events: none;
}
.contact-form.is-loading [type="submit"]::after {
	content: '';
	display: inline-block;
	width: 10px;
	height: 10px;
	border: 1.5px solid currentColor;
	border-top-color: transparent;
	border-radius: 50%;
	animation: ak-spin 0.65s linear infinite;
	margin-left: 0.7rem;
	vertical-align: middle;
}
@keyframes ak-spin {
	to { transform: rotate(360deg); }
}

/* Newsletter: stato loading */
.newsletter__form.is-loading .newsletter__btn {
	opacity: 0.55;
	cursor: not-allowed;
	pointer-events: none;
}
.newsletter__form.is-loading .newsletter__btn::after {
	content: '';
	display: inline-block;
	width: 10px;
	height: 10px;
	border: 1.5px solid currentColor;
	border-top-color: transparent;
	border-radius: 50%;
	animation: ak-spin 0.65s linear infinite;
	margin-left: 0.7rem;
	vertical-align: middle;
}

/* -------------------------------------------------------------------------
   10. WooCommerce — single product
   ---------------------------------------------------------------------- */
/* --- Shop: hero editoriale prominente --- */
.shop-hero { text-align: center; margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.shop-hero__eyebrow {
	display: block;
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	color: var(--color-text-muted);
	margin-bottom: clamp(0.75rem, 2vw, 1.25rem);
}
.shop-hero__title {
	font-family: var(--font-display);
	font-size: clamp(2.75rem, 8vw, 5.5rem);
	font-weight: 300;
	line-height: 1;
	letter-spacing: 0.02em;
}
.shop-hero__desc {
	max-width: 52ch;
	margin: clamp(1rem, 2.5vw, 1.75rem) auto 0;
	font-size: 15px;
	line-height: 1.8;
	color: var(--color-text-muted);
}
.shop-hero__desc p:last-child { margin-bottom: 0; }

/* --- Shop: masthead (hero + toolbar) con immagine di sfondo — categoria "capsule" --- */
/* L'immagine copre header overlay + hero + toolbar e si ferma esattamente sulla
   linea della toolbar: il margin-bottom della toolbar "esce" dal masthead (nessun
   padding/bordo inferiore) quindi lo sfondo arriva fino al border della toolbar.
   Il padding-top compensa l'header fuori flusso, mantenendo l'ingombro identico
   alle altre categorie. */
.section--shop-media { padding-top: 0; }
.shop-masthead--media {
	position: relative;
	padding-top: calc(var(--header-h) + var(--space-section));
	color: var(--color-bg);
	background-image:
		linear-gradient(to bottom, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.35)),
		var(--hero-img);
	background-size: cover, cover;
	background-position: center, center;
	background-repeat: no-repeat, no-repeat;
}
.shop-masthead--media .shop-hero__eyebrow { color: inherit; opacity: 0.9; }
.shop-masthead--media .shop-hero__title { text-shadow: 0 1px 30px rgba(0, 0, 0, 0.3); }
.shop-masthead--media .shop-hero__desc { color: rgba(255, 255, 255, 0.9); }
/* Toolbar sopra l'immagine: testo e linea chiari, leggibili sul fondo scuro */
.shop-masthead--media .shop-toolbar { border-bottom-color: rgba(255, 255, 255, 0.4); }
.shop-masthead--media .shop-filters__item { color: rgba(255, 255, 255, 0.75); }
.shop-masthead--media .shop-filters__item:hover,
.shop-masthead--media .shop-filters__item.is-active { color: var(--color-bg); border-bottom-color: var(--color-bg); }
.shop-masthead--media .woocommerce-ordering select.orderby { color: var(--color-bg); }
.shop-masthead--media .woocommerce-ordering select.orderby option { color: var(--color-text); }

/* --- Shop: toolbar filtri (categorie + ricerca + ordinamento) --- */
.shop-toolbar {
	margin-bottom: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(1rem, 2.5vw, 1.5rem);
	border-bottom: 1px solid var(--color-border);
}
.shop-toolbar .container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
}
.shop-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(1rem, 2.5vw, 2rem);
}
.shop-filters__item {
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	font-weight: 400;
	color: var(--color-text-muted);
	padding-bottom: 3px;
	border-bottom: 1px solid transparent;
	transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.shop-filters__item:hover { color: var(--color-text); opacity: 1; }
.shop-filters__item.is-active {
	color: var(--color-text);
	border-bottom-color: var(--color-text);
}

.shop-toolbar__tools {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 3vw, 2rem);
}

/* Ordinamento (select nativa WooCommerce) reso compatto e coerente */
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select.orderby {
	width: auto;
	padding: 0.4rem 1.5rem 0.4rem 0;
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 11px;
	color: var(--color-text);
	cursor: pointer;
}

/* --- Shop: griglia a tutta larghezza --- */
.shop-grid {
	padding-left: var(--gutter);
	padding-right: var(--gutter);
}
.shop-grid ul.products {
	max-width: none;
	grid-template-columns: repeat(4, 1fr);
}

/* --- Single product (titolo header generico) --- */
.shop-header { text-align: center; margin-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.shop-header__title { font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 300; }

/* Layout due colonne: galleria sx / dettagli dx */
.woocommerce div.product,
.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}
/* Senza min-width:0 un grid item eredita min-width:auto, cioè la dimensione
   minima del suo contenuto — incluse le dimensioni intrinseche (es. 1200x1600px)
   delle immagini della galleria. Questo fa esplodere la colonna ben oltre il
   viewport su mobile e allarga con sé anche la colonna testo (summary). */
.woocommerce div.product > *,
.single-product div.product > * {
	min-width: 0;
}

/* --- Galleria custom: thumbnail verticali + immagine grande --- */
.product-gallery {
	display: grid;
	grid-template-columns: 76px 1fr;
	gap: clamp(0.75rem, 1.5vw, 1.25rem);
	align-items: start;
	min-width: 0;
}
/* Stesso fix di min-width:0 applicato ai figli diretti (stage + colonna thumbs),
   così la dimensione naturale delle foto non fa esplodere la grid annidata. */
.product-gallery > * { min-width: 0; }
/* L'altezza della colonna thumbnail viene impostata via JS (main.js) pari
   all'altezza renderizzata della stage, cosi la lista scrolla internamente
   invece di far crescere la riga grid / spingere giu la stage. Le frecce
   stanno in una striscia dedicata sopra/sotto, mai in overlay sulle foto. */
.product-gallery__thumbs-wrap {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}
.product-gallery__thumbs {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	scrollbar-width: none;
	scroll-behavior: smooth;
}
.product-gallery__thumbs::-webkit-scrollbar { display: none; }
.product-gallery__thumb {
	display: block;
	width: 76px;
	flex: 0 0 auto;
	padding: 0;
	border: 1px solid transparent;
	background: var(--color-bg-soft);
	cursor: pointer;
	transition: border-color var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
.product-gallery__thumb img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; }
.product-gallery__thumb:hover { opacity: 0.8; }
.product-gallery__thumb.is-active { border-color: var(--color-text); }
.product-gallery__thumbs-nav {
	flex: 0 0 auto;
	width: 76px;
	height: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: none;
	background: none;
	color: var(--color-text);
	font-size: 1rem;
	line-height: 1;
	cursor: pointer;
	opacity: 0.25;
	pointer-events: none;
	transition: opacity var(--dur) var(--ease);
}
.product-gallery__thumbs-nav--up { transform: rotate(90deg); }
.product-gallery__thumbs-nav--down { transform: rotate(90deg); }
.product-gallery__thumbs-wrap.has-overflow-up .product-gallery__thumbs-nav--up,
.product-gallery__thumbs-wrap.has-overflow-down .product-gallery__thumbs-nav--down {
	opacity: 1;
	pointer-events: auto;
}
.product-gallery__stage { position: relative; margin: 0; background: var(--color-bg-soft); overflow: hidden; }
.product-gallery__main { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; cursor: zoom-in; display: block; }
.product-gallery__zoom {
	position: absolute;
	inset: 0;
	background-repeat: no-repeat;
	background-size: 200%;
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--dur) var(--ease);
}
.product-gallery__stage.is-zooming .product-gallery__zoom { opacity: 1; }

/* Lightbox galleria */
.product-lightbox {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.9);
	padding: clamp(1rem, 5vw, 4rem);
}
.product-lightbox.is-open { display: flex; }
.product-lightbox__img { max-width: min(90vw, 820px); max-height: 90vh; object-fit: contain; }
.product-lightbox__close,
.product-lightbox__nav {
	position: absolute;
	background: none; border: 0;
	color: #fff; line-height: 1; cursor: pointer;
	opacity: 0.8; transition: opacity var(--dur) var(--ease);
}
.product-lightbox__close:hover,
.product-lightbox__nav:hover { opacity: 1; }
.product-lightbox__close { top: 1.25rem; right: 1.5rem; font-size: 2rem; }
.product-lightbox__nav { top: 50%; transform: translateY(-50%); font-size: 2.5rem; }
.product-lightbox__nav--prev { left: clamp(0.5rem, 3vw, 2rem); }
.product-lightbox__nav--next { right: clamp(0.5rem, 3vw, 2rem); }

/* --- Colonna destra (summary) --- */
.product-eyebrow {
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	color: var(--color-text-muted);
	margin: 0 0 0.6rem;
}
.woocommerce div.product .product_title {
	font-family: var(--font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 300;
	margin-bottom: 0.5rem;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--font-body);
	font-size: 18px;
	color: var(--color-text);
	margin-bottom: 1.5rem;
}
.woocommerce div.product .woocommerce-product-details__short-description {
	font-size: 15px;
	line-height: 1.8;
	color: var(--color-text-muted);
	margin-bottom: 2rem;
}
.woocommerce div.product form.cart { margin-bottom: 1.5rem; }
/* Quantità + bottone "Aggiungi al carrello" sulla stessa riga (simple e variable) */
.woocommerce div.product form.cart:not(.variations_form),
.woocommerce div.product .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 0.75rem;
}
.woocommerce div.product form.cart .quantity { margin: 0; display: flex; align-items: stretch; }
.woocommerce div.product form.cart .quantity input {
	width: 48px; height: 100%; text-align: center;
	border: 1px solid var(--color-border); border-left: 0; border-right: 0;
	padding: 0.85rem 0.25rem;
}
.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1 1 auto; }
/* Bottoni +/− quantità */
.qty-btn {
	display: flex; align-items: center; justify-content: center;
	width: 40px; background: transparent;
	border: 1px solid var(--color-border);
	font-size: 1.25rem; line-height: 1; cursor: pointer;
	color: var(--color-text); padding: 0;
	transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.qty-btn:hover { background: var(--color-text); color: var(--color-bg); border-color: var(--color-text); }
/* Nasconde le frecce native del browser sull'input number */
.quantity input[type="number"]::-webkit-inner-spin-button,
.quantity input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.quantity input[type="number"] { -moz-appearance: textfield; }

/* --- Varianti: bottoni taglia + campioni colore --- */
.woocommerce div.product .variations { display: block; margin: 0 0 1.5rem; border: 0; }
.variation-row { margin-bottom: 1.5rem; }
.variation-row__head { display: flex; align-items: baseline; gap: 0.6rem; margin-bottom: 0.6rem; }
.variation-row__label { text-transform: uppercase; letter-spacing: var(--track-nav); font-size: 11px; font-weight: 400; }
.variation-row__chosen { font-size: 12px; color: var(--color-text-muted); }
.variation-options { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* Bottoni taglia */
.variation-option {
	min-width: 44px;
	padding: 0.6rem 0.9rem;
	border: 1px solid var(--color-border);
	background: var(--color-bg);
	font-family: var(--font-body);
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--color-text);
	cursor: pointer;
	transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.variation-option:hover { border-color: var(--color-text); }
.variation-option.is-active { background: var(--color-text); color: var(--color-bg); border-color: var(--color-text); }
.variation-option.is-disabled { opacity: 0.35; cursor: not-allowed; text-decoration: line-through; }

/* Variante esaurita (combinazione valida ma senza scorte) */
.variation-option.is-outofstock { position: relative; opacity: 0.4; cursor: not-allowed; pointer-events: none; }
.variation-option__oos {
	font-size: 9px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	text-decoration: none;
	color: var(--color-text-muted);
}
.variation-option:not(.variation-option--swatch) .variation-option__oos { display: inline-block; margin-left: 4px; }

/* Campioni colore */
.variation-option--swatch {
	position: relative;
	min-width: 0;
	width: 34px; height: 34px;
	padding: 3px;
	border-radius: 50%;
	background: var(--color-bg);
}
.variation-option--swatch .variation-option__swatch {
	display: block; width: 100%; height: 100%;
	border-radius: 50%;
	background: var(--swatch, #ccc);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12);
}
.variation-option--swatch.is-active { border-color: var(--color-text); }
.variation-option--swatch.is-disabled { opacity: 0.35; cursor: not-allowed; text-decoration: none; }
.variation-option--swatch .variation-option__oos {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	margin-top: 4px;
	white-space: nowrap;
}

.single_variation_wrap .woocommerce-variation-price { font-size: 18px; margin-bottom: 1rem; }
.single_variation_wrap .woocommerce-variation-availability { font-size: 13px; color: var(--color-text-muted); margin-bottom: 1rem; }

/* --- Accordion (dettagli, composizione, spedizione, taglie) --- */
.product-accordions { margin-top: 0.5rem; border-top: 1px solid var(--color-border); }
.accordion__item { border-bottom: 1px solid var(--color-border); }
.accordion__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.15rem 0;
	cursor: pointer;
	list-style: none;
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	font-weight: 400;
}
.accordion__summary::-webkit-details-marker { display: none; }
.accordion__icon { position: relative; width: 12px; height: 12px; flex: 0 0 auto; }
.accordion__icon::before,
.accordion__icon::after { content: ""; position: absolute; background: var(--color-text); transition: opacity var(--dur) var(--ease); }
.accordion__icon::before { top: 5px; left: 0; width: 12px; height: 1px; }
.accordion__icon::after { top: 0; left: 5px; width: 1px; height: 12px; }
.accordion__item[open] .accordion__icon::after { opacity: 0; }
.accordion__body { padding: 0 0 1.25rem; font-size: 14px; line-height: 1.8; color: var(--color-text-muted); }
.accordion__body ul { display: flex; flex-direction: column; gap: 0.4rem; }
.accordion__body p:last-child { margin-bottom: 0; }

/* Related products */
.related.products,
.up-sells.products { grid-column: 1 / -1; margin-top: clamp(3rem, 7vw, 5.5rem); }
.related.products > h2,
.up-sells.products > h2 {
	text-align: center;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 300;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

/* Messaggi, notices, badge sconto: discreti */
.woocommerce span.onsale {
	background: var(--color-text); color: var(--color-bg);
	border-radius: 0; min-height: auto; min-width: auto;
	padding: 0.35em 0.6em; font-size: 10px; line-height: 1;
	text-transform: uppercase; letter-spacing: var(--track-nav);
}
/* Notifiche WooCommerce — stile unico su tutto il sito */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	background: var(--color-bg-soft);
	border-top: 2px solid var(--color-text);
	border-bottom: 1px solid var(--color-border);
	font-family: var(--font-body);
	font-size: 13px;
	list-style: none;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }
.woocommerce-message a.button,
.woocommerce-info a.button,
.woocommerce-error a.button { flex: 0 0 auto; }

/* Notifiche a tutta larghezza attaccate all'header (single product) */
.shop-notices { width: 100%; }
.shop-notices .woocommerce-message,
.shop-notices .woocommerce-info,
.shop-notices .woocommerce-error {
	margin: 0;
	padding: 1rem var(--gutter);
}

/* -------------------------------------------------------------------------
   10b. Carrello (classico, layout moderno)
   ---------------------------------------------------------------------- */
.cart-head { text-align: center; margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.cart-head__title { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 300; }

.cart-layout {
	display: grid;
	grid-template-columns: 1fr minmax(300px, 360px);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}

/* Righe prodotto */
.cart-lines { border-top: 1px solid var(--color-border); }
.cart-line {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: clamp(1rem, 2vw, 1.5rem);
	padding: clamp(1.25rem, 2.5vw, 1.75rem) 0;
	border-bottom: 1px solid var(--color-border);
}
.cart-line__media img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; background: var(--color-bg-soft); }
.cart-line__details { display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; min-width: 0; }
.cart-line__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.cart-line__name { font-family: var(--font-body); font-size: 15px; font-weight: 400; letter-spacing: 0.02em; }
.cart-line .variation { display: flex; flex-wrap: wrap; gap: 0.15rem 0.75rem; margin: 0.4rem 0 0; font-size: 12px; color: var(--color-text-muted); }
.cart-line .variation dt { font-weight: 400; margin: 0; }
.cart-line .variation dd { margin: 0; }
.cart-line .variation dd p { margin: 0; }
.cart-line__remove {
	flex: 0 0 auto;
	font-family: var(--font-body);
	text-transform: uppercase; letter-spacing: var(--track-nav);
	font-size: 10px; color: var(--color-text-muted);
}
.cart-line__remove:hover { color: var(--color-text); opacity: 1; }
.cart-line__bottom { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.cart-line__qty .quantity { display: inline-flex; align-items: stretch; }
.cart-line__qty input.qty {
	width: 40px; height: auto; text-align: center;
	border: 1px solid var(--color-border); border-left: 0; border-right: 0; border-radius: 0;
	padding: 0.5rem 0.25rem; font-size: 14px;
}
.cart-line__qty .qty-btn { width: 32px; font-size: 1rem; }
.cart-line__subtotal { font-size: 15px; }

.cart-items__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; flex-wrap: wrap; }

@media (max-width: 720px) {
	.cart-continue,
	.cart-update { display: none !important; }
}

/* Bottone secondario (Aggiorna carrello): contorno a riposo, pieno all'hover.
   Selettori con prefisso .woocommerce per vincere sugli stili .button del plugin. */
.button--ghost,
.woocommerce .button--ghost,
.woocommerce button.button--ghost {
	background: transparent;
	color: var(--color-text);
	border: 1px solid var(--color-border);
	opacity: 1;
}
.button--ghost:hover,
.woocommerce .button--ghost:hover,
.woocommerce button.button--ghost:hover {
	background: var(--color-text);
	color: var(--color-bg);
	border-color: var(--color-text);
	opacity: 1;
}

/* Colonna riepilogo (sticky) */
.cart-aside {
	position: sticky;
	top: calc(var(--header-h) + 1.5rem);
	display: flex; flex-direction: column; gap: 1.5rem;
	background: var(--color-bg-soft);
	padding: clamp(1.5rem, 3vw, 2rem);
}
.cart-coupon__label {
	display: block;
	text-transform: uppercase; letter-spacing: var(--track-nav);
	font-size: 11px; color: var(--color-text-muted);
	margin-bottom: 0.75rem;
}
.cart-coupon__row { display: flex; align-items: stretch; gap: 0.5rem; }
.cart-coupon .cart-coupon__input {
	flex: 1 1 auto; min-width: 0; width: auto;
	border: 1px solid var(--color-border); border-radius: 0;
	background: var(--color-bg);
	padding: 0.75rem 0.85rem; font-size: 13px;
}
.cart-coupon__row .button { flex: 0 0 auto; padding: 0.75rem 1.25rem; }

.cart-summary__title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 300; margin-bottom: 1rem; }
.cart-totals { width: 100%; border-collapse: collapse; }
.cart-totals th, .cart-totals td { padding: 0.6rem 0; font-family: var(--font-body); font-size: 14px; font-weight: 400; border: 0; }
.cart-totals th { text-align: left; color: var(--color-text-muted); }
.cart-totals td { text-align: right; }
.cart-totals .order-total th,
.cart-totals .order-total td { border-top: 1px solid var(--color-border); padding-top: 1rem; font-size: 17px; color: var(--color-text); font-weight: 500; }

/* Riga spedizione — layout impilato */
.cart-totals .woocommerce-shipping-totals th { padding-bottom: 0.15rem; }
.cart-totals .shipping-details td { text-align: left; padding-top: 0; color: var(--color-text-muted); font-size: 13px; }
.cart-totals .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.cart-totals .woocommerce-shipping-methods li { margin: 0; }
.cart-totals .woocommerce-shipping-destination { margin: 0.25rem 0 0; }

.wc-proceed-to-checkout { margin-top: 1.5rem; }
.checkout-button.button { display: block; width: 100%; text-align: center; }

/* Carrello vuoto */
.cart-empty-state { text-align: center; padding: clamp(2rem, 6vw, 4rem) 0; }
.cart-empty-state__msg { font-family: var(--font-display); font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 300; margin-bottom: 1.5rem; }

/* -------------------------------------------------------------------------
   10c. Account — Autenticazione (login + registrazione)
   ---------------------------------------------------------------------- */

.section--account-auth { padding-top: clamp(3rem, 7vw, 5.5rem); padding-bottom: clamp(3rem, 7vw, 5.5rem); }

.account-auth__head { text-align: center; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.account-auth__title { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 300; margin: 0 0 0.75rem; }
.account-auth__sub { font-size: 14px; color: var(--color-text-muted); margin: 0; }

.account-auth__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(1.5rem, 4vw, 3rem);
	max-width: 860px;
	margin: 0 auto;
}

.account-auth__col {
	padding: clamp(1.5rem, 3vw, 2.5rem);
	background: var(--color-bg-soft);
}

.account-auth__col-title {
	font-family: var(--font-display);
	font-size: clamp(1.4rem, 3vw, 2rem);
	font-weight: 300;
	margin: 0 0 2rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--color-border);
}

.auth-field { margin-bottom: 1.25rem; }
.auth-field label {
	display: block;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	color: var(--color-text-muted);
	margin-bottom: 0.5rem;
}
.auth-field label span { color: var(--color-text-muted); font-size: 10px; }

.auth-input {
	display: block;
	width: 100%;
	border: 1px solid var(--color-border);
	background: var(--color-bg);
	padding: 0.75rem 0.85rem;
	font-family: var(--font-body);
	font-size: 14px;
	color: var(--color-text);
	border-radius: 0;
	transition: border-color var(--dur) var(--ease);
	box-sizing: border-box;
}
.auth-input:focus { outline: none; border-color: var(--color-text); }

.auth-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1.75rem;
	flex-wrap: wrap;
}
.auth-submit { flex: 0 0 auto; }

.auth-remember { display: flex; align-items: center; gap: 0.5rem; font-size: 13px; cursor: pointer; }
.auth-remember input { margin: 0; }

.auth-lost-password { margin-top: 1.25rem; margin-bottom: 0; font-size: 12px; color: var(--color-text-muted); }
.auth-lost-password a { text-decoration: underline; text-underline-offset: 2px; }
.auth-lost-password a:hover { opacity: 0.6; }

.auth-note { font-size: 13px; color: var(--color-text-muted); margin-bottom: 1.25rem; }

.section--account-auth .woocommerce-notices-wrapper { max-width: 860px; margin: 0 auto; }

/* Griglia a colonna singola (es. password dimenticata) */
.account-auth__grid--single { grid-template-columns: 1fr; max-width: 440px; }

/* Link "Torna all'accesso" */
.auth-back { font-size: 12px; color: var(--color-text-muted); text-decoration: underline; text-underline-offset: 2px; }
.auth-back:hover { color: var(--color-text); opacity: 1; }

@media (max-width: 720px) {
	.account-auth__grid { grid-template-columns: 1fr; }
	.account-auth__col--register { border-top: 2px solid var(--color-border); background: none; padding-left: 0; padding-right: 0; }
}

/* Privacy policy WooCommerce nel form di registrazione */
.woocommerce-privacy-policy-text { font-size: 12px; color: var(--color-text-muted); margin-top: 1rem; margin-bottom: 0; line-height: 1.5; }
.woocommerce-privacy-policy-text a { text-decoration: underline; text-underline-offset: 2px; }

/* ── Icona occhio dentro i campi password ──────────────────────────────── */

/* Nasconde controlli nativi del browser e toggle WooCommerce originale */
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear { display: none; }
.show-password-input { display: none !important; }

/* Wrapper relativo */
.pw-field {
	position: relative;
	display: block;
}
.pw-field input {
	padding-right: 2.75rem;
	width: 100%;
	box-sizing: border-box;
}

/* Bottone occhio */
.pw-toggle {
	position: absolute;
	right: 0.85rem;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border: 0;
	padding: 0;
	background: transparent;
	cursor: pointer;
	color: var(--color-text-muted);
	transition: color var(--dur) var(--ease);
	flex-shrink: 0;
}
.pw-toggle:hover { color: var(--color-text); }

/* SVG occhio */
.pw-icon { width: 18px; height: 18px; display: block; }
.pw-icon--off { display: none; }
.pw-toggle.is-visible .pw-icon--open { display: none; }
.pw-toggle.is-visible .pw-icon--off  { display: block; }

/* -------------------------------------------------------------------------
   10d. Account — Dashboard (utente loggato)
   ---------------------------------------------------------------------- */

.section--account { padding-top: clamp(2.5rem, 5vw, 4.5rem); padding-bottom: clamp(3rem, 6vw, 5rem); }

/* Intestazione con saluto */
.wc-account__head { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.wc-account__title {
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 4vw, 3rem);
	font-weight: 300;
	margin: 0;
}

/* Tab orizzontali */
.account-tabs {
	border-bottom: 1px solid var(--color-border);
	margin-bottom: clamp(2rem, 4vw, 3rem);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.account-tabs::-webkit-scrollbar { display: none; }

.account-tabs__list {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	white-space: nowrap;
}

.account-tabs__link {
	display: block;
	padding: 0.85rem 1.25rem;
	font-family: var(--font-body);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	color: var(--color-text-muted);
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.account-tabs__link:hover { color: var(--color-text); opacity: 1; }

/* Tab attiva */
.account-tabs__item.is-active .account-tabs__link {
	color: var(--color-text);
	border-bottom-color: var(--color-text);
}

/* "Esci" spinto a destra (desktop) */
.woocommerce-MyAccount-navigation-link--customer-logout { margin-left: auto; }
.woocommerce-MyAccount-navigation-link--customer-logout .account-tabs__link { color: var(--color-text-muted); }

/* Header pagina account */
.wc-account__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
/* Logout nell'header: visibile solo mobile (su desktop è nel nav tab) */
.wc-account__head-logout {
	display: none;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	color: var(--color-text-muted);
	text-decoration: underline;
	text-underline-offset: 2px;
	flex-shrink: 0;
}

/* Area contenuto */
.wc-account__content { font-size: 14px; line-height: 1.6; }

/* Dashboard: testi introduttivi */
.wc-dashboard__hello { margin-bottom: 0.75rem; }
.wc-dashboard__logout { font-size: 12px; color: var(--color-text-muted); margin-left: 0.4rem; }
.wc-dashboard__logout a { text-decoration: underline; text-underline-offset: 2px; }
.wc-dashboard__desc { color: var(--color-text-muted); }
.wc-dashboard__desc a { color: var(--color-text); text-decoration: underline; text-underline-offset: 2px; }

/* Tabelle ordini */
.woocommerce-orders-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}
.woocommerce-orders-table th {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	color: var(--color-text-muted);
	font-weight: 400;
	text-align: left;
	padding: 0 1rem 0.75rem 0;
	border-bottom: 1px solid var(--color-border);
}
.woocommerce-orders-table td {
	padding: 1rem 1rem 1rem 0;
	border-bottom: 1px solid var(--color-border);
	vertical-align: middle;
}
.woocommerce-orders-table tbody tr:last-child td { border-bottom: 0; }
.woocommerce-orders-table .button { font-size: 11px; padding: 0.45rem 0.9rem; }

/* Badge stato ordine */
.woocommerce-order-status { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; }

/* Indirizzi: due colonne */
.woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 3vw, 2.5rem); }
.woocommerce-Address { background: var(--color-bg-soft); padding: clamp(1.25rem, 2.5vw, 2rem); }
.woocommerce-Address-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--color-border);
}
.woocommerce-Address-title h3 {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 300;
	margin: 0;
}
.woocommerce-Address-title .edit {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	text-decoration: underline;
	text-underline-offset: 2px;
	flex-shrink: 0;
}
address { font-style: normal; font-size: 14px; line-height: 1.75; color: var(--color-text-muted); }

/* Fieldset password */
.account-pw-fieldset {
	border: 0;
	padding: 0;
	margin: 2rem 0 0;
}
.account-pw-fieldset legend {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 300;
	margin-bottom: 1.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--color-border);
	width: 100%;
}
.account-field-hint { display: block; font-size: 12px; color: var(--color-text-muted); margin-top: 0.35rem; }
.account-field-opt { font-size: 10px; color: var(--color-text-muted); font-style: normal; }

/* Form modifica account e indirizzi */
.wc-account__content .woocommerce-form-row { margin-bottom: 1.25rem; }
.wc-account__content .woocommerce-form-row label,
.wc-account__content .form-row label {
	display: block;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	color: var(--color-text-muted);
	margin-bottom: 0.5rem;
}
.wc-account__content .woocommerce-Input,
.wc-account__content .woocommerce-Input--text,
.wc-account__content input[type="text"],
.wc-account__content input[type="email"],
.wc-account__content input[type="password"],
.wc-account__content input[type="tel"],
.wc-account__content select,
.wc-account__content textarea {
	display: block;
	width: 100%;
	border: 1px solid var(--color-border);
	background: var(--color-bg);
	padding: 0.75rem 0.85rem;
	font-family: var(--font-body);
	font-size: 14px;
	line-height: 1.5;
	color: var(--color-text);
	border-radius: 0;
	box-sizing: border-box;
	transition: border-color var(--dur) var(--ease);
}
.wc-account__content select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: 2.25rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline points='4,6 8,10 12,6' fill='none' stroke='%23888888' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 14px;
	cursor: pointer;
}
.wc-account__content input:focus,
.wc-account__content select:focus,
.wc-account__content textarea:focus { outline: none; border-color: var(--color-text); }

/* Layout a due colonne per i campi indirizzo */
.wc-account__content .woocommerce-address-fields .form-row-first,
.wc-account__content .woocommerce-address-fields .form-row-last {
	display: inline-block;
	width: calc(50% - 0.5rem);
	box-sizing: border-box;
}
.wc-account__content .woocommerce-address-fields .form-row-first { margin-right: 1rem; }

/* Testo vuoto (nessun ordine, ecc.) — resetta il flex e usa stile inline */
.wc-account__content .woocommerce-info {
	display: block;
	border-top: 0;
	border: 1px solid var(--color-border);
	padding: 1rem 1.25rem;
	background: var(--color-bg-soft);
}

@media (max-width: 720px) {
	/* Indirizzi: 1 colonna */
	.woocommerce-Addresses { grid-template-columns: 1fr; }
	.wc-account__content .woocommerce-address-fields .form-row-first,
	.wc-account__content .woocommerce-address-fields .form-row-last { display: block; width: 100%; margin-right: 0; }

	/* Titolo indirizzo: link sotto il titolo, non a destra */
	.woocommerce-Address-title {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.35rem;
	}

	/* Ordini vuoti: centrato, bottone full-width */
	.wc-account__content .woocommerce-info {
		text-align: center;
		padding: 2rem 1.25rem;
	}
	.wc-account__content .woocommerce-info .button {
		display: block;
		width: 100%;
		box-sizing: border-box;
		text-align: center;
		margin-top: 1.25rem;
	}

	/* Tabella ordini: card layout su mobile */
	.woocommerce-orders-table thead { display: none; }
	.woocommerce-orders-table,
	.woocommerce-orders-table tbody { display: block; }
	.woocommerce-orders-table tr {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0.75rem 1.5rem;
		padding: 1.25rem 0;
		border-bottom: 1px solid var(--color-border);
	}
	.woocommerce-orders-table tbody tr:last-child { border-bottom: 0; }
	.woocommerce-orders-table td {
		padding: 0;
		border-bottom: 0;
		vertical-align: top;
	}
	.woocommerce-orders-table td::before {
		content: attr(data-title);
		display: block;
		font-size: 10px;
		text-transform: uppercase;
		letter-spacing: var(--track-nav);
		color: var(--color-text-muted);
		margin-bottom: 0.25rem;
	}
	.woocommerce-orders-table__cell-order-actions {
		grid-column: 1 / -1;
	}
	.woocommerce-orders-table__cell-order-actions::before { display: none; }
	.woocommerce-orders-table__cell-order-actions .button {
		display: block;
		width: 100%;
		box-sizing: border-box;
		text-align: center;
	}

	/* Esci: nascosto dai tab, visibile nell'header */
	.woocommerce-MyAccount-navigation-link--customer-logout { display: none; }
	.wc-account__head-logout { display: inline; }
}

/* -------------------------------------------------------------------------
   10e. Checkout — due colonne (form sx + riepilogo sticky dx)
   ---------------------------------------------------------------------- */
.section--checkout { padding-top: clamp(3rem, 7vw, 5.5rem); padding-bottom: clamp(3rem, 7vw, 5.5rem); }

.checkout-head { text-align: center; margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.checkout-head__title { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 300; }

/* Layout due colonne: campi a sinistra, riepilogo a destra */
form.checkout.woocommerce-checkout.checkout-layout {
	display: grid;
	grid-template-columns: 1fr minmax(300px, 380px);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
	margin: 0;
	padding: 0;
}

/* Colonna riepilogo (sticky come .cart-aside) */
.checkout-aside {
	position: sticky;
	top: calc(var(--header-h) + 1.5rem);
	background: var(--color-bg-soft);
	padding: clamp(1.5rem, 3vw, 2rem);
}
.checkout-aside__title {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 300;
	margin: 0 0 1.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--color-border);
}

/* Intestazioni sezioni (Fatturazione, Spedizione) */
.woocommerce-billing-fields > h3,
.woocommerce-shipping-fields > h3,
.woocommerce-additional-fields > h3 {
	font-family: var(--font-display);
	font-size: clamp(1.2rem, 2.2vw, 1.6rem);
	font-weight: 300;
	margin: 0 0 1.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--color-border);
}
.checkout-shipping .woocommerce-shipping-fields > h3 { margin-top: 2rem; }

/* Checkbox "spedire a indirizzo diverso" */
#ship-to-different-address {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 1.5rem 0 0.5rem;
}
#ship-to-different-address label {
	font-family: var(--font-body);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-weight: 400;
	color: var(--color-text);
	cursor: pointer;
}
#ship-to-different-address input[type="checkbox"] { margin: 0; }

/* Campi form checkout: con bordo completo (coerente con account) */
.checkout-main .form-row,
.woocommerce-checkout .checkout-main p.form-row {
	margin-bottom: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}
.checkout-main .form-row label { font-size: 11px; text-transform: uppercase; letter-spacing: var(--track-nav); color: var(--color-text-muted); }
.checkout-main input[type="text"],
.checkout-main input[type="email"],
.checkout-main input[type="tel"],
.checkout-main input[type="password"],
.checkout-main select,
.checkout-main textarea {
	display: block;
	width: 100%;
	border: 1px solid var(--color-border);
	background: var(--color-bg);
	padding: 0.75rem 0.85rem;
	font-family: var(--font-body);
	font-size: 14px;
	color: var(--color-text);
	border-radius: 0;
	box-sizing: border-box;
	transition: border-color var(--dur) var(--ease);
}
.checkout-main input:focus,
.checkout-main select:focus,
.checkout-main textarea:focus { outline: none; border-color: var(--color-text); }
.checkout-main select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: 2.25rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpolyline points='4,6 8,10 12,6' fill='none' stroke='%23888888' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 14px;
	cursor: pointer;
}
.checkout-main textarea { min-height: 90px; resize: vertical; }
.checkout-main .required { color: var(--color-text-muted); font-weight: 300; }

/* Campi in riga affiancati (form-row-first / form-row-last) */
.checkout-main .form-row-first,
.checkout-main .form-row-last {
	display: inline-flex;
	flex-direction: column;
	width: calc(50% - 0.5rem);
	box-sizing: border-box;
	vertical-align: top;
}
.checkout-main .form-row-first { margin-right: 1rem; }

/* Riepilogo ordine — tabella */
.woocommerce-checkout-review-order-table { width: 100%; border-collapse: collapse; }
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	padding: 0.7rem 0;
	font-family: var(--font-body);
	font-size: 13px;
	border: 0;
	border-bottom: 1px solid var(--color-border);
	vertical-align: middle;
}
.woocommerce-checkout-review-order-table thead { display: none; }
.woocommerce-checkout-review-order-table .product-total { text-align: right; white-space: nowrap; }
.woocommerce-checkout-review-order-table tfoot th { text-align: left; color: var(--color-text-muted); font-weight: 400; }
.woocommerce-checkout-review-order-table tfoot td { text-align: right; }
.woocommerce-checkout-review-order-table tfoot tr:last-child th,
.woocommerce-checkout-review-order-table tfoot tr:last-child td { border-bottom: 0; }
.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td {
	border-top: 1px solid var(--color-border);
	border-bottom: 0;
	padding-top: 1rem;
	font-size: 16px;
	font-weight: 500;
	color: var(--color-text);
}

/* Riga spedizione — layout impilato */
.woocommerce-checkout-review-order-table .woocommerce-shipping-totals th { border-bottom: 0; padding-bottom: 0.15rem; }
.woocommerce-checkout-review-order-table .shipping-details td { border-bottom: 1px solid var(--color-border); text-align: left; padding-top: 0; color: var(--color-text-muted); font-size: 13px; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-methods li { margin: 0; }
.woocommerce-checkout-review-order-table .woocommerce-shipping-destination { margin: 0.25rem 0 0; }

/* Riga prodotto con miniatura */
.checkout-review-item { display: flex; align-items: center; gap: 0.85rem; }
.checkout-review-item__img { flex: 0 0 64px; width: 64px; }
.checkout-review-item__img img {
	width: 64px;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	display: block;
	background: var(--color-bg-soft);
}
.checkout-review-item__info { min-width: 0; display: flex; flex-direction: column; gap: 0.15rem; }
.checkout-review-item__name { font-weight: 400; font-size: 13px; line-height: 1.35; }
.checkout-review-item__info .product-quantity { font-size: 12px; color: var(--color-text-muted); font-weight: 400; }
.checkout-review-item__info .variation { font-size: 11px; color: var(--color-text-muted); margin: 0; }
.checkout-review-item__info .variation dt,
.checkout-review-item__info .variation dd { display: inline; margin: 0; }
.checkout-review-item__info .variation dt::after { content: ': '; }
.checkout-review-item__info .variation dd::after { content: ' '; }

/* Sezione pagamento */
.woocommerce-checkout #payment {
	background: none;
	border-radius: 0;
	padding: 1.25rem 0 0;
	margin-top: 1.5rem;
	border-top: 1px solid var(--color-border);
}
.woocommerce-checkout #payment ul.payment_methods {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	border: 0;
}
.woocommerce-checkout #payment ul.payment_methods li {
	padding: 0.6rem 0;
	border-bottom: 1px solid var(--color-border);
	font-size: 13px;
}
.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: 0; }
.woocommerce-checkout #payment ul.payment_methods li label { cursor: pointer; }
.woocommerce-checkout #payment ul.payment_methods li img { max-height: 20px; vertical-align: middle; display: inline; margin-left: 0.5rem; }
.woocommerce-checkout #payment .payment_box {
	background: none;
	border-radius: 0;
	padding: 0.4rem 0 0;
	font-size: 12px;
	color: var(--color-text-muted);
	line-height: 1.6;
}
.woocommerce-checkout #payment .payment_box::before { display: none; }
.woocommerce-checkout #payment div.place-order { padding: 0; }
.woocommerce-checkout #payment #place_order { display: block; width: 100%; text-align: center; margin-top: 1rem; }

/* Dati bancari (bonifico) */
.akindof-bonifico-desc {
	font-size: 12px;
	color: var(--color-text-muted);
	margin: 0 0 0.5rem;
	line-height: 1.6;
}
.akindof-bonifico-details {
	font-family: var(--font-body);
	font-size: 12px;
	color: var(--color-text-muted);
	line-height: 1.8;
	white-space: pre-wrap;
	margin: 0.75rem 0 0;
	padding: 0.75rem 1rem;
	background: var(--color-bg);
	border: 1px solid var(--color-border);
}

/* Termini e condizioni */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin-top: 1rem;
	font-size: 12px;
	color: var(--color-text-muted);
	line-height: 1.5;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a { text-decoration: underline; text-underline-offset: 2px; }

/* Responsive checkout */
@media (max-width: 860px) {
	form.checkout.woocommerce-checkout.checkout-layout { grid-template-columns: 1fr; }
	.checkout-aside { position: static; order: -1; }
	.checkout-main .form-row-first,
	.checkout-main .form-row-last { display: flex; width: 100%; margin-right: 0; }
}

/* -------------------------------------------------------------------------
   10f. Ordine ricevuto — Conferma & Dettaglio ordine
   ---------------------------------------------------------------------- */

/* ── Rimuove il container e il padding della sezione checkout su thankyou ── */
body.woocommerce-order-received .section--checkout { padding: 0; }
body.woocommerce-order-received .section--checkout > .container {
	max-width: none;
	padding: 0;
}
body.woocommerce-order-received .checkout-head { display: none; }

/* ── Hero conferma ─────────────────────────────────────────────────────── */
.order-confirm-hero {
	background: var(--color-text);
	color: var(--color-bg);
	text-align: center;
	padding: clamp(4.5rem, 10vw, 8rem) var(--gutter) clamp(4rem, 9vw, 7rem);
}
.order-confirm-hero__eyebrow {
	display: block;
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	opacity: 0.55;
	margin: 0 0 1.5rem;
}
.order-confirm-hero__title {
	font-family: var(--font-display);
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: 300;
	line-height: 1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin: 0 0 1.5rem;
}
.order-confirm-hero__sub {
	font-size: 15px;
	line-height: 1.75;
	opacity: 0.75;
	max-width: 46ch;
	margin: 0 auto;
}
.order-confirm-hero__sub strong { opacity: 1; font-weight: 500; }

/* ── Meta barra ordine ─────────────────────────────────────────────────── */
.order-meta-bar {
	background: var(--color-bg-soft);
	border-bottom: 1px solid var(--color-border);
}
.order-meta-bar--inline {
	border-top: 1px solid var(--color-border);
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.order-meta-bar__inner { display: flex; flex-wrap: wrap; }
.order-meta-item {
	flex: 1 1 0;
	min-width: 140px;
	padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1rem, 2vw, 1.75rem);
	border-right: 1px solid var(--color-border);
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}
.order-meta-item:last-child { border-right: 0; }
.order-meta-item__label {
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 10px;
	color: var(--color-text-muted);
}
.order-meta-item__value {
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 400;
	color: var(--color-text);
	line-height: 1.3;
}

/* ── Sezione prodotti acquistati ───────────────────────────────────────── */
.order-products { padding: clamp(3rem, 6vw, 5rem) 0; border-bottom: 1px solid var(--color-border); }
.order-products--compact { padding: clamp(2rem, 4vw, 3.5rem) 0; }

.order-products__head {
	text-align: center;
	margin-bottom: clamp(1.75rem, 4vw, 2.75rem);
	padding: 0 var(--gutter);
}
.order-products__label {
	display: block;
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	color: var(--color-text-muted);
	margin-bottom: 0.5rem;
}
.order-products__title {
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 300;
	margin: 0;
}

/* ── Carosello orizzontale ─────────────────────────────────────────────── */
.order-carousel {
	overflow-x: auto;
	padding-left: var(--gutter);
	padding-right: var(--gutter);
	padding-bottom: clamp(0.5rem, 1vw, 1rem);
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	text-align: center;
}
.order-carousel::-webkit-scrollbar { display: none; }
.order-carousel__track {
	display: inline-flex;
	gap: clamp(1rem, 2.5vw, 2rem);
	text-align: left;
}

.order-carousel__item { flex: 0 0 auto; width: clamp(160px, 20vw, 240px); }
.order-carousel__link { display: block; color: inherit; }
.order-carousel__link:hover { opacity: 1; }
.order-carousel__link:hover .order-carousel__media img { transform: scale(1.03); }

.order-carousel__media {
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: var(--color-bg-soft);
	margin-bottom: 0.85rem;
}
.order-carousel__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.6s var(--ease);
}
.order-carousel__name {
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1.35;
	margin: 0 0 0.3rem;
}
.order-carousel__meta {
	font-family: var(--font-body);
	font-size: 12px;
	color: var(--color-text-muted);
	margin: 0;
}

/* ── Box aiuto / contatto ──────────────────────────────────────────────── */
.order-help-box {
	padding: clamp(2.5rem, 5vw, 4rem) var(--gutter);
	background: var(--color-bg-soft);
	border-top: 2px solid var(--color-text);
	border-bottom: 1px solid var(--color-border);
	text-align: center;
}
.order-help-box__eyebrow {
	display: block;
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	color: var(--color-text-muted);
	margin: 0 0 0.9rem;
}
.order-help-box__title {
	font-family: var(--font-display);
	font-size: clamp(1.5rem, 3.5vw, 2.25rem);
	font-weight: 300;
	margin: 0 0 0.9rem;
}
.order-help-box__text {
	font-size: 14px;
	line-height: 1.8;
	color: var(--color-text-muted);
	max-width: 52ch;
	margin: 0 auto 2rem;
}
.order-help-box__text strong { color: var(--color-text); font-weight: 400; }

/* ── CTA di fondo ──────────────────────────────────────────────────────── */
.order-confirm-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
	align-items: center;
	padding: clamp(2.5rem, 5vw, 4rem) var(--gutter) clamp(3.5rem, 7vw, 6rem);
}

/* ── Ordine fallito ────────────────────────────────────────────────────── */
.order-failed { padding: clamp(2rem, 5vw, 4rem) var(--gutter); max-width: var(--maxw); margin: 0 auto; }
.order-failed__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }

/* ── View-order: intestazione (account) ───────────────────────────────── */
.order-view-head {
	margin-bottom: clamp(1.25rem, 2.5vw, 2rem);
	padding-bottom: clamp(1rem, 2vw, 1.5rem);
	border-bottom: 1px solid var(--color-border);
}
.order-view-head__top {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin-bottom: 0.4rem;
}
.order-view-head__number {
	font-family: var(--font-display);
	font-size: clamp(1.4rem, 3vw, 2rem);
	font-weight: 300;
	margin: 0;
}
.order-view-head__badge {
	display: inline-block;
	padding: 0.35em 0.85em;
	background: var(--color-text);
	color: var(--color-bg);
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 10px;
	font-weight: 400;
}
.order-view-head__badge--completed  { background: #2C5F0F; }
.order-view-head__badge--on-hold    { background: #7A5C1E; }
.order-view-head__badge--cancelled  { background: #7A1E1E; }
.order-view-head__badge--refunded   { background: #555555; }
.order-view-head__meta { font-size: 13px; color: var(--color-text-muted); margin: 0; }

/* ── Note aggiornamenti ordine ─────────────────────────────────────────── */
.order-notes {
	margin: clamp(1.5rem, 3vw, 2.5rem) 0;
	padding: clamp(1.25rem, 2.5vw, 2rem);
	background: var(--color-bg-soft);
}
.order-notes__title {
	font-family: var(--font-display);
	font-size: 1.15rem;
	font-weight: 300;
	margin: 0 0 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--color-border);
}
.order-notes__list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 1rem; }
.order-notes__date { font-size: 11px; text-transform: uppercase; letter-spacing: var(--track-nav); color: var(--color-text-muted); margin: 0 0 0.35rem; }
.order-notes__body { font-size: 13px; line-height: 1.65; }
.order-notes__body p:last-child { margin-bottom: 0; }

/* ── Tabella dettaglio ordine (do_action woocommerce_view_order) ────────── */
.wc-account__content .woocommerce-order-details { margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.wc-account__content .woocommerce-order-details__title {
	font-family: var(--font-display);
	font-size: clamp(1.2rem, 2.5vw, 1.6rem);
	font-weight: 300;
	margin: 0 0 1.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--color-border);
}
.wc-account__content .woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}
.wc-account__content .woocommerce-table--order-details th,
.wc-account__content .woocommerce-table--order-details td {
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--color-border);
	font-family: var(--font-body);
	font-weight: 400;
	vertical-align: middle;
}
.wc-account__content .woocommerce-table--order-details thead th {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	color: var(--color-text-muted);
	font-weight: 400;
	text-align: left;
}
.wc-account__content .woocommerce-table--order-details .product-total { text-align: right; white-space: nowrap; }
.wc-account__content .woocommerce-table--order-details tfoot th { color: var(--color-text-muted); text-align: left; }
.wc-account__content .woocommerce-table--order-details tfoot td { text-align: right; }
.wc-account__content .woocommerce-table--order-details .order-total th,
.wc-account__content .woocommerce-table--order-details .order-total td {
	font-size: 15px;
	font-weight: 500;
	color: var(--color-text);
	border-top: 2px solid var(--color-text);
	border-bottom: 0;
}

/* ── Dettagli cliente (indirizzi) ──────────────────────────────────────── */
.wc-account__content .woocommerce-customer-details { margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.wc-account__content .woocommerce-customer-details .woocommerce-column__title {
	font-family: var(--font-display);
	font-size: clamp(1.1rem, 2vw, 1.4rem);
	font-weight: 300;
	margin: 0 0 0.85rem;
	padding-bottom: 0.6rem;
	border-bottom: 1px solid var(--color-border);
}
.wc-account__content .woocommerce-customer-details .col-1,
.wc-account__content .woocommerce-customer-details .col-2 {
	background: var(--color-bg-soft);
	padding: clamp(1rem, 2.5vw, 1.75rem);
	box-sizing: border-box;
}

/* ── Responsive 10f ────────────────────────────────────────────────────── */
@media (max-width: 720px) {
	.order-meta-item { min-width: 120px; }
}
@media (max-width: 560px) {
	.order-confirm-hero__title { font-size: clamp(2rem, 8vw, 3rem); }
	.order-meta-bar__inner { flex-direction: column; }
	.order-meta-item { border-right: 0; border-bottom: 1px solid var(--color-border); }
	.order-meta-item:last-child { border-bottom: 0; }
	.order-carousel__item { width: clamp(140px, 42vw, 190px); }
	.wc-account__content .woocommerce-customer-details .col-1,
	.wc-account__content .woocommerce-customer-details .col-2 { display: block; width: 100%; }
	.wc-account__content .woocommerce-customer-details .col-1 { margin-bottom: 1rem; }
}

/* -------------------------------------------------------------------------
   11. Footer
   ---------------------------------------------------------------------- */
.site-footer {
	background: var(--color-bg-soft);
	border-top: 1px solid var(--color-border);
	padding: clamp(3rem, 6vw, 5rem) 0 clamp(1.5rem, 3vw, 2.5rem);
}
.site-footer__inner {
	max-width: var(--maxw);
	margin: 0 auto;
	padding: 0 var(--gutter);
}

/* Griglia colonne: brand più largo + 3 colonne link */
.footer-grid {
	display: grid;
	grid-template-columns: 1.8fr 1fr 1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}

/* Col 1 — brand + payoff */
.footer-brand { max-width: 32ch; }
.footer-brand__logo {
	display: inline-block;
}
.footer-brand__logo img {
	max-height: 36px;
	width: auto;
}
.footer-brand__payoff {
	margin: 1.25rem 0 0;
	font-size: 13px;
	line-height: 1.7;
	color: var(--color-text-muted);
}

/* Colonne link */
.footer-col__title {
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	font-weight: 400;
	margin: 0 0 1.5rem;
}
.footer-col__list { display: flex; flex-direction: column; gap: 0.9rem; }
.footer-col__list a {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 11px;
	font-weight: 300;
	color: var(--color-text-muted);
}
.footer-col__list a:hover { color: var(--color-text); opacity: 1; }

/* Barra inferiore */
.footer-bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin-top: clamp(2.5rem, 6vw, 4.5rem);
	padding-top: clamp(1.5rem, 3vw, 2rem);
	border-top: 1px solid var(--color-border);
}
.site-footer__copy {
	margin: 0;
	color: var(--color-text-muted);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 10px;
	font-weight: 300;
}
.footer-legal a {
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 10px;
	font-weight: 300;
	color: var(--color-text-muted);
}

/* Social (icone SVG: footer, contatti, brand, mobile) */
.social-links { display: flex; gap: 1.25rem; }
.contatti__aside .social-links { margin-top: 1.75rem; }
.social-links a { display: inline-flex; }
.social-links svg { display: block; }

/* Icone social nel footer: tono muted come gli altri link, scure all'hover */
.footer-col--social .social-links { margin-top: 0.25rem; }
.footer-col--social .social-links a { color: var(--color-text-muted); }
.footer-col--social .social-links a:hover { color: var(--color-text); opacity: 1; }

/* -------------------------------------------------------------------------
   12. Pagination generica
   ---------------------------------------------------------------------- */
.pagination, .woocommerce-pagination { text-align: center; margin-top: clamp(2.5rem, 5vw, 4rem); }
.page-numbers {
	display: inline-flex; flex-wrap: wrap; justify-content: center;
	gap: 0.75rem; padding: 0;
}
.page-numbers li { display: inline-block; }
.page-numbers a, .page-numbers span {
	display: inline-block; padding: 0.25rem 0.6rem;
	font-size: 12px; letter-spacing: 0.05em;
}
.page-numbers .current { border-bottom: 1px solid var(--color-text); }

/* -------------------------------------------------------------------------
   13. Responsive
   ---------------------------------------------------------------------- */
@media (max-width: 1200px) {
	.shop-grid ul.products { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 1024px) {
	.product-grid, ul.products, .columns-3, .columns-4 { grid-template-columns: repeat(2, 1fr); }
	.shop-grid ul.products { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
	/* Toolbar shop: filtri sopra, ricerca + ordinamento sotto a tutta larghezza */
	.shop-toolbar .container { flex-direction: column; align-items: center; }
	.shop-filters { justify-content: center; }
	.shop-toolbar__tools { display: none; }
}

@media (max-width: 860px) {
	:root { --header-h: 60px; }

	/* Mostra hamburger, nascondi nav desktop e i link account (vanno nell'overlay) */
	.nav-toggle { display: flex; }
	.primary-nav { display: none; }
	.header-account { display: none; }

	/* Il logo è un wordmark molto largo (~9:1): senza un limite di larghezza
	   spinge fuori dalla griglia hamburger e carrello, causando overlap/a capo.
	   Le colonne laterali passano da "1fr" (larghezza forzata uguale, che
	   comprime il carrello sotto il testo che contiene) ad "auto" (larghezza
	   esatta del contenuto), lasciando il centro libero per il logo. */
	.site-header__inner { grid-template-columns: auto 1fr auto; gap: 0.75rem; }
	.site-branding { min-width: 0; }
	.site-logo { max-height: 22px; max-width: 100%; }

	/* Riduco il carrello a sola icona testuale compatta, senza andare a capo */
	.site-header__cart .cart-link { font-size: 10px; white-space: nowrap; }

	/* Single product: una colonna, immagine a piena larghezza sopra */
	.woocommerce div.product,
	.single-product div.product { grid-template-columns: 1fr; }

	/* Galleria: immagine grande sopra, thumbnail in riga scrollabile sotto */
	.product-gallery { grid-template-columns: 1fr; }
	.product-gallery__stage { order: 1; }
	.product-gallery__thumbs-wrap { order: 2; overflow: visible; }
	.product-gallery__thumbs { flex-direction: row; overflow-x: auto; overflow-y: visible; height: auto; }
	.product-gallery__thumb { width: 64px; flex: 0 0 auto; }
	.product-gallery__thumbs-nav { display: none; }

	/* Carrello: una colonna, riepilogo sotto (non sticky) */
	.cart-layout { grid-template-columns: 1fr; }
	.cart-aside { position: static; }

	/* Contatti: una colonna */
	.contatti__grid { grid-template-columns: 1fr; }
	.contatti__aside { max-width: none; }

	/* Servizi: immagine sopra, testo sotto (una colonna) */
	.servizio__inner { grid-template-columns: 1fr; gap: clamp(1.5rem, 4vw, 2.5rem); }
	.servizio__media { order: -1; }
	.servizio__text { max-width: none; }

	/* Brand: fondatrice e valori impilati */
	.founder__inner { grid-template-columns: 1fr; }
	.craft__grid { grid-template-columns: 1fr; gap: 2rem; }

	/* Brand: moduli editoriali "La storia" / "Com'è iniziata" impilati */
	.editorial-split,
	.editorial-split--alt { grid-template-columns: 1fr; gap: clamp(1.5rem, 4vw, 2.5rem); }
	.editorial-split--alt .editorial-split__media { order: -1; }
	.editorial-split__text { max-width: none; }

	/* Footer: brand a tutta larghezza + 3 colonne link sotto */
	.footer-grid { grid-template-columns: repeat(3, 1fr); }
	.footer-brand { grid-column: 1 / -1; max-width: none; margin-bottom: 1rem; }
}

@media (max-width: 560px) {
	.category-grid { grid-template-columns: 1fr; }
	.category-duo { grid-template-columns: 1fr; }
	.hero__content { max-width: 90%; }
	.hero__bg { background-position: 72% center; }

	/* Su schermi molto piccoli il logo deve restare ancora più compatto */
	.site-header__inner { gap: 0.5rem; }
	.site-logo { max-height: 18px; }

	/* Manifesto: pilastri impilati, niente divisori verticali */
	.manifesto__pillars { grid-template-columns: 1fr; gap: 2.25rem; }
	.manifesto__pillar + .manifesto__pillar::before { display: none; }

	/* Footer: due colonne link */
	.footer-grid { grid-template-columns: 1fr 1fr; }
}

/* -------------------------------------------------------------------------
   Newsletter form
   ---------------------------------------------------------------------- */

.section--newsletter {
	background: var(--color-bg-soft);
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
}
.section--newsletter .container { max-width: 900px; padding-left: clamp(1rem, 2.5vw, 2rem); padding-right: clamp(1rem, 2.5vw, 2rem); }

/* Inline (homepage) — centrato */
.newsletter--inline {
	text-align: center;
}
.newsletter__eyebrow {
	display: block;
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	font-size: 11px;
	color: var(--color-text-muted);
	margin: 0 0 0.75rem;
}
.newsletter__title {
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 300;
	letter-spacing: var(--track-display);
	margin: 0 0 0.75rem;
}
.newsletter__desc {
	font-size: 14px;
	color: var(--color-text-muted);
	max-width: 58ch;
	margin: 0 auto 2rem;
	line-height: 1.65;
}

.newsletter__fields {
	display: flex;
	gap: 0;
	align-items: flex-end;
	max-width: 480px;
	margin: 0 auto;
}
.newsletter--inline .newsletter__fields {
	margin: 0 auto;
}
.newsletter__fields input[type="email"] {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
}
.newsletter__btn {
	flex-shrink: 0;
	margin-left: 1rem;
	white-space: nowrap;
}

.newsletter__privacy {
	font-size: 11px;
	color: var(--color-text-muted);
	margin: 1rem auto 0;
	max-width: 480px;
	line-height: 1.5;
}
.newsletter--inline .newsletter__privacy {
	text-align: center;
}
.newsletter__privacy a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.newsletter__msg {
	font-size: 13px;
	margin-top: 0.75rem;
	min-height: 1.4em;
}
.newsletter__msg--ok  { color: var(--color-text); }
.newsletter__msg--err { color: #9b1c1c; }

/* Footer variant — compatto, left-aligned */
.footer-col--newsletter .newsletter__fields {
	max-width: none;
	margin: 0 0 0.5rem;
}
.footer-col--newsletter .newsletter__privacy {
	max-width: none;
	margin: 0.5rem 0 1.5rem;
	text-align: left;
}
.footer-col--newsletter .newsletter__msg {
	margin-bottom: 0.5rem;
}

@media (max-width: 860px) {
	.footer-col--newsletter .newsletter__fields {
		flex-direction: column;
		align-items: stretch;
		gap: 0.75rem;
	}
	.footer-col--newsletter .newsletter__btn {
		margin-left: 0;
		width: 100%;
	}
}
@media (max-width: 560px) {
	.newsletter__fields {
		flex-direction: column;
		align-items: stretch;
		gap: 0.75rem;
	}
	.newsletter__fields input[type="email"] {
		width: 100%;
	}
	.newsletter__btn {
		width: 100%;
		margin-left: 0;
	}
}

/* Rispetto delle preferenze di riduzione del movimento */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
	.product-card__media img, .category-card__media img { transition: none !important; }
	/* Garantisce la visibilità dei contenuti con reveal senza animazione */
	.reveal .reveal-item { opacity: 1 !important; transform: none !important; }
}

/*
 * Box "Checkout veloce": contenitore per i bottoni Apple Pay / Google Pay / WooPay
 * iniettati da WooCommerce Payments (.wcpay-express-checkout-wrapper),
 * presente in prodotto, carrello, checkout e pagamento ordine.
 */
.wcpay-express-checkout-wrapper {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	border: 1px solid var(--color-border);
	border-radius: 0;
	background: transparent;
	padding: 1.1rem 1.25rem 1.35rem;
	margin: 1.5rem 0;
}
.wcpay-express-checkout-wrapper::before {
	content: "Checkout veloce";
	display: block;
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	color: var(--color-text-muted);
}
.wcpay-express-checkout-wrapper #wcpay-express-checkout-element,
.wcpay-express-checkout-wrapper .woopay-express-button-container,
.wcpay-express-checkout-wrapper .ppc-button-wrapper {
	width: 100%;
}
.wcpay-express-checkout-wrapper #wcpay-express-checkout-button-separator {
	margin: 0 !important;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: var(--track-nav);
	color: var(--color-text-muted);
}
.wcpay-express-checkout-wrapper .ppc-button-wrapper {
	margin: 0;
}
/* Elemento invisibile per l'order attribution: esclude dal flex layout
   così non introduce un gap in più tra i bottoni del box */
.wcpay-express-checkout-wrapper wc-order-attribution-inputs {
	display: none;
}

/* Nasconde il testo "Paga in 3 rate..." di WooCommerce PayPal Payments: resta solo il bottone */
.ppcp-messages {
	display: none !important;
}

/* Carrello: alza il bottone PayPal (iframe SDK) alla stessa altezza di Apple Pay / Google Pay */
.woocommerce-cart .wcpay-express-checkout-wrapper .ppc-button-wrapper iframe {
	height: 55px !important;
	min-height: 55px !important;
}
