/* ==========================================================================
   Gainsworth — foglio di stile principale
   Palette e stilemi presi dalla homepage disegnata in Bricks (pagina 134)
   e dalla generazione ACSS. Cambiare un colore o un font QUI lo cambia
   ovunque: non scrivere mai colori o font-family nei template.
   ========================================================================== */

:root {
	/* --- Colori (valori reali da automatic-css/automatic.css) ---------- */
	--gw-primary: #891c1a;            /* bordeaux — colore guida del marchio */
	--gw-primary-dark: #6b1614;
	--gw-primary-light: #f3c0bf;
	--gw-secondary: #621718;          /* vinaccia — fondo sezione Box */
	--gw-secondary-dark: #67181a;
	--gw-base: #0a0a0a;               /* quasi nero */

	--gw-paper: #fcfbf7;              /* panna calda — fondo chiaro del sito */
	--gw-ink: #1c1714;                /* nero caldo del testo */
	--gw-ink-80: rgba(28, 23, 20, 0.8);
	--gw-ink-72: rgba(28, 23, 20, 0.72);
	--gw-ink-60: rgba(28, 23, 20, 0.6);
	--gw-ink-50: rgba(28, 23, 20, 0.5);
	--gw-ink-25: rgba(28, 23, 20, 0.25);
	--gw-ink-20: rgba(28, 23, 20, 0.2);
	--gw-ink-14: rgba(28, 23, 20, 0.14);
	--gw-ink-08: rgba(28, 23, 20, 0.08);

	--gw-on-dark: rgba(252, 251, 247, 0.86);
	--gw-on-dark-soft: rgba(252, 251, 247, 0.6);
	--gw-on-dark-faint: rgba(252, 251, 247, 0.4);
	--gw-hairline-dark: rgba(252, 251, 247, 0.1);

	--gw-numeral: #6b4f2f;            /* bruno dei numeri romani */
	--gw-numeral-ghost: rgba(28, 23, 20, 0.15);
	--gw-gold-line: #8a6d44;          /* bordo pill / dettagli su fondo scuro */
	--gw-gold: #d9ab5c;               /* oro leggibile: 6:1 sul vinaccia */

	/* --- Tipografia --------------------------------------------------- */
	--gw-font-serif: 'EB Garamond', Georgia, 'Times New Roman', serif;
	--gw-font-sans: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;

	--gw-text-xs: 11.5px;
	--gw-text-s: 13px;
	--gw-text-m: 16px;
	--gw-text-l: 18px;
	--gw-title-s: clamp(2.2rem, 3.2vw, 2.6rem);
	--gw-title-m: clamp(2.4rem, 3.6vw, 3rem);
	--gw-title-l: clamp(2.6rem, 4vw, 3.2rem);
	--gw-title-hero: clamp(3.4rem, 5.6vw, 5.2rem);

	/* --- Spaziatura ---------------------------------------------------- */
	--gw-space-xs: 8px;
	--gw-space-s: 12px;
	--gw-space-m: 20px;
	--gw-space-l: 32px;
	--gw-space-xl: 48px;

	/* --- Layout -------------------------------------------------------- */
	--gw-width: 1280px;
	--gw-width-mid: 1180px;
	--gw-width-narrow: 760px;
	--gw-gutter: clamp(20px, 4vw, 40px);
	--gw-section-y: clamp(64px, 8vw, 108px);
	--gw-radius: 3px;
}

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

body {
	margin: 0;
	background: var(--gw-paper);
	color: var(--gw-ink);
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-m);
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

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

a { color: inherit; }
a:hover { color: var(--gw-primary); }

h1, h2, h3, h4 {
	font-family: var(--gw-font-serif);
	font-weight: 400;
	line-height: 1.14;
	letter-spacing: -0.01em;
	margin: 0 0 0.6em;
	color: var(--gw-ink);
	text-wrap: balance;
}
h1 { font-size: var(--gw-title-hero); line-height: 1; }
h2 { font-size: var(--gw-title-m); }
h3 { font-size: var(--gw-title-s); }

p { margin: 0 0 1em; text-wrap: pretty; }
p:last-child { margin-bottom: 0; }

/* Evidenziazione e selezione — come da CSS globale del sito */
::selection { background-color: var(--gw-primary); color: var(--gw-paper); }
::-moz-selection { background-color: var(--gw-primary); color: var(--gw-paper); }
mark {
	background-color: var(--gw-primary);
	color: var(--gw-paper);
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
	padding: 0.04em 0.22em;
	border-radius: 2px;
	text-decoration: none;
}

:where(a, button, input, [tabindex]):focus-visible {
	outline: 2px solid var(--gw-primary);
	outline-offset: 3px;
}

.gw-skip-link { position: absolute; left: -9999px; background: var(--gw-base); color: var(--gw-paper); padding: 12px 20px; z-index: 999; }
.gw-skip-link:focus { left: 20px; top: 20px; }

/* --- Layout primitives ---------------------------------------------- */
.gw-wrap { width: 100%; max-width: var(--gw-width); margin-inline: auto; padding-inline: var(--gw-gutter); }
.gw-wrap--mid { max-width: var(--gw-width-mid); }
.gw-wrap--narrow { max-width: var(--gw-width-narrow); }

.gw-section { padding-block: var(--gw-section-y); }
.gw-section--dark { background: var(--gw-secondary); color: var(--gw-on-dark); }
.gw-section--dark :where(h1, h2, h3, h4) { color: var(--gw-paper); }
.gw-section--paper { background: var(--gw-paper); }

/* Occhiello — firma tipografica del sito */
.gw-eyebrow {
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-s);
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gw-primary);
	line-height: 1;
	display: block;
}
.gw-eyebrow--muted { color: var(--gw-ink-50); letter-spacing: 0.22em; font-size: 12px; }
/* Su fondo scuro il bordeaux sparisce (1.36:1): si passa all'oro chiaro (6:1).
   Vale per la sezione Box e per qualsiasi sezione scura. */
.gw-section--dark .gw-eyebrow,
.gw-box .gw-eyebrow { color: var(--gw-gold); }

/* Occhiello con trattino a sinistra (hero) */
.gw-eyebrow-row { display: flex; align-items: center; gap: 14px; margin-bottom: 26px; flex-wrap: wrap; }
.gw-eyebrow-row::before { content: ""; width: 38px; height: 1px; background: var(--gw-primary); flex: none; }
.gw-eyebrow-row .gw-sub { font-family: var(--gw-font-sans); font-size: var(--gw-text-s); font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(28,23,20,0.45); }

/* --- Bottoni --------------------------------------------------------- */
.gw-btn {
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--gw-font-sans);
	font-size: 15px; font-weight: 600; line-height: 1; letter-spacing: 0.01em;
	padding: 16px 30px;
	border: 1px solid transparent;
	border-radius: var(--gw-radius);
	text-decoration: none;
	cursor: pointer;
	transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.gw-btn--primary { background: var(--gw-primary); color: var(--gw-paper); }
.gw-btn--primary:hover { background: var(--gw-primary-dark); color: var(--gw-paper); }
.gw-btn--ghost { background: transparent; color: var(--gw-ink); border-color: var(--gw-ink-25); }
.gw-btn--ghost:hover { border-color: var(--gw-primary); color: var(--gw-primary); }

/* Link freccia */
.gw-arrow-link {
	display: inline-flex; align-items: center; gap: 7px;
	font-family: var(--gw-font-sans); font-size: var(--gw-text-s); font-weight: 600;
	line-height: 1; color: var(--gw-primary); text-decoration: none;
}
.gw-arrow-link:hover { gap: 12px; transition: gap .2s ease; }

/* --- Header ---------------------------------------------------------- */
.gw-header { background: var(--gw-paper); border-bottom: 1px solid var(--gw-ink-08); position: sticky; top: 0; z-index: 100; }
.gw-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 18px; }
.gw-header__brand { font-family: var(--gw-font-serif); font-size: 26px; text-decoration: none; line-height: 1; color: var(--gw-ink); }
.gw-nav ul { display: flex; gap: 28px; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.gw-nav a {
	font-size: 14px; font-weight: 600; text-decoration: none;
	letter-spacing: 0.02em; padding-block: 4px; border-bottom: 1px solid transparent;
}
.gw-nav a:hover, .gw-nav .current-menu-item > a { border-bottom-color: var(--gw-primary); color: var(--gw-primary); }
.gw-burger { display: none; background: none; border: 0; color: inherit; padding: 6px; }
@media (max-width: 860px) {
	.gw-burger { display: block; }
	.gw-nav { display: none; width: 100%; }
	.gw-nav.is-open { display: block; padding-bottom: 18px; }
	.gw-nav ul { flex-direction: column; gap: 12px; }
	.gw-header__inner { flex-wrap: wrap; }
}

/* --- Hero slider ----------------------------------------------------- */
.gw-slider { position: relative; overflow: hidden; line-height: 0; }
/* flex-direction e gap espliciti: senza, vince la regola globale di ACSS
   che impila le slide in colonna. */
.gw-slider__track {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	gap: 0;
	transition: transform .7s ease;
	will-change: transform;
}
.gw-slider__slide { flex: 0 0 100%; min-width: 100%; }
.gw-slider__slide img { width: 100%; height: auto; display: block; }
.gw-slider__arrow {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 44px; height: 44px; border: 0; border-radius: 0;
	background: rgba(28,23,20,0.55); color: var(--gw-paper);
	cursor: pointer; display: grid; place-items: center;
	transition: background .25s ease; z-index: 2;
}
.gw-slider__arrow:hover { background: var(--gw-primary); }
.gw-slider__arrow--prev { left: 0; }
.gw-slider__arrow--next { right: 0; }
.gw-slider__dots { position: absolute; bottom: 14px; left: 0; right: 0; display: flex; justify-content: center; gap: 8px; z-index: 2; }
.gw-slider__dot { width: 22px; height: 4px; border: 0; padding: 0; border-radius: 0; background: rgba(252,251,247,0.45); cursor: pointer; transition: background .25s ease; }
.gw-slider__dot.is-active { background: var(--gw-paper); }

/* --- Hero libro ------------------------------------------------------ */
.gw-hero { background: var(--gw-paper); position: relative; overflow: hidden; }
.gw-hero__grid {
	display: grid; grid-template-columns: 1.08fr 0.92fr;
	align-items: center; min-height: 86vh;
}
@media (max-width: 900px) { .gw-hero__grid { grid-template-columns: 1fr; min-height: 0; padding-block: var(--gw-section-y); gap: 48px; } }
.gw-hero__text { display: flex; flex-direction: column; justify-content: center; max-width: 610px; }
.gw-hero__title { font-size: var(--gw-title-hero); line-height: 0.9; letter-spacing: -0.015em; margin: 0; }
.gw-hero__author { font-family: var(--gw-font-sans); font-size: 17px; font-style: italic; color: var(--gw-ink-60); margin: 18px 0 0; }
.gw-hero__tagline {
	font-family: var(--gw-font-serif); font-size: clamp(1.35rem, 1.7vw, 1.5rem);
	font-weight: 500; font-style: italic; line-height: 1.2;
	color: var(--gw-primary); margin: 28px 0 0;
}
.gw-hero__desc { font-size: var(--gw-text-m); line-height: 1.7; color: var(--gw-ink-72); max-width: 52ch; margin: 22px 0 0; }
.gw-hero__ctas { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 34px; }
.gw-hero__meta {
	display: flex; flex-wrap: wrap; align-items: center; gap: 20px;
	margin-top: 32px; padding-top: 18px; border-top: 1px solid var(--gw-ink-20);
	list-style: none; padding-inline: 0;
}
.gw-hero__meta li {
	font-family: var(--gw-font-sans); font-size: var(--gw-text-xs); font-weight: 600;
	line-height: 1; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gw-ink-50);
}
.gw-hero__meta li + li::before { content: "·"; color: var(--gw-primary); margin-right: 20px; }

/* Copertina 3D */
.gw-hero__book {
	display: flex; align-items: center; justify-content: center;
	position: relative; min-height: 540px;
	background: radial-gradient(closest-side at 50% 45%, rgba(137,28,26,0.08), transparent 60%);
}
/* Il libro in evidenza usa il mockup 3D vero della scheda (.gw-l3d):
   via la copertina "piegata" che era solo un img con la prospettiva CSS. */
.gw-hero__book .gw-l3d { width: min(320px, 78%); z-index: 2; }
@media (max-width: 900px) {
	.gw-hero__book { min-height: 0; padding-block: 26px; }
	.gw-hero__book .gw-l3d { width: min(240px, 66vw); }
}

/* --- Intestazione di sezione numerata -------------------------------- */
.gw-sechead {
	display: flex; justify-content: space-between; align-items: flex-start;
	gap: 32px; flex-wrap: wrap;
	padding-bottom: 24px; margin-bottom: clamp(40px, 5vw, 64px);
	border-bottom: 1px solid var(--gw-ink-14);
}
.gw-sechead__left { display: flex; align-items: flex-end; gap: 18px; }
.gw-sechead__title { margin: 12px 0 0; font-size: var(--gw-title-l); line-height: 1; }
.gw-sechead__right { max-width: 320px; margin-left: auto; }
.gw-sechead__right p { font-size: 14px; line-height: 1.6; color: var(--gw-ink-60); margin-bottom: 10px; }

/* --- Griglia libri (card con numero romano) -------------------------- */
.gw-books { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(28px, 3.4vw, 52px); align-items: start; }
@media (max-width: 980px) { .gw-books { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .gw-books { grid-template-columns: 1fr; } }

.gw-book-card { display: flex; flex-direction: column; align-items: center; text-align: center; transition: transform .4s ease; }
/* sfalsamento a scacchiera: la 2ª e la 4ª scendono */
.gw-books .gw-book-card:nth-child(even) { margin-top: 34px; }
@media (max-width: 560px) { .gw-books .gw-book-card:nth-child(even) { margin-top: 0; } }

/* Area immagine ad ALTEZZA FISSA con immagine centrata e mai ritagliata.
   Il catalogo mescola copertine verticali (~0.65) e immagini quadrate delle
   Box (1.0): con `object-fit: cover` le quadrate perdevano un terzo di sé.
   Qui l'immagine si dimensiona sul proprio contenuto entro i limiti dell'area,
   così l'ombra le sta aderente e i titoli restano tutti allineati. */
.gw-book-card__cover {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 306px;
	width: 100%;
}
.gw-book-card__cover img {
	width: auto; height: auto;
	max-width: 100%; max-height: 100%;
	object-fit: contain;
	border-radius: 1px 4px 4px 1px;
	box-shadow: 0 20px 30px -4px rgba(28,23,20,0.4);
	transition: transform .4s ease, box-shadow .4s ease;
}
.gw-book-card:hover .gw-book-card__cover img {
	transform: translateY(-6px);
	box-shadow: 0 28px 44px rgba(10,10,10,0.38);
}
.gw-book-card__body { margin-top: 12px; display: flex; flex-direction: column; align-items: center; width: 100%; }
.gw-book-card__num {
	display: flex; align-items: center; justify-content: center; gap: 10px;
	margin-bottom: 8px; width: 100%;
}
.gw-book-card__num::before, .gw-book-card__num::after {
	content: ""; width: 18px; height: 1px; background: var(--gw-ink-20); flex: none;
}
.gw-book-card__num span { font-family: var(--gw-font-serif); font-size: 14px; font-style: italic; line-height: 1; color: var(--gw-numeral); }
.gw-book-card__title { font-family: var(--gw-font-serif); font-weight: 500; font-size: 19px; line-height: 1.25; margin: 0; }
.gw-book-card__title a { text-decoration: none; }
.gw-book-card__author { font-family: var(--gw-font-sans); font-size: 14px; font-style: italic; line-height: 1.4; color: rgba(28,23,20,0.58); margin: 4px 0 0; }
.gw-book-card__link { margin-top: 8px; }

/* --- Sezione Box ----------------------------------------------------- */
.gw-box { background: var(--gw-secondary); color: var(--gw-on-dark); position: relative; overflow: hidden; padding-block: clamp(20px, 8vw, 120px); }
.gw-box__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
@media (max-width: 900px) { .gw-box__grid { grid-template-columns: 1fr; } }
.gw-box__img img { width: 100%; max-width: 480px; margin-inline: auto; border-radius: var(--gw-radius); }
.gw-box__content { max-width: 480px; }
.gw-box__eyebrows { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.gw-box__pill {
	font-family: var(--gw-font-sans); font-size: var(--gw-text-xs); font-weight: 500;
	line-height: 1; letter-spacing: 0.12em; color: var(--gw-on-dark-soft);
	padding: 6px 13px; border: 1px solid var(--gw-gold-line);
}
.gw-box__title { color: var(--gw-paper); font-size: var(--gw-title-m); line-height: 1.1; margin: 20px 0 0; }
.gw-box__desc { color: rgba(252,251,247,0.74); font-size: var(--gw-text-m); line-height: 1.7; margin: 14px 0 0; }
.gw-box__items { margin: 26px 0 0; padding: 0; list-style: none; }
.gw-box__items li {
	display: flex; align-items: baseline; gap: 16px;
	padding-block: 8px; border-bottom: 1px solid var(--gw-hairline-dark);
	font-family: var(--gw-font-sans); font-size: var(--gw-text-m); font-weight: 500; line-height: 1.4;
	color: var(--gw-on-dark);
}
.gw-box__items li:first-child { border-top: 1px solid var(--gw-hairline-dark); }
.gw-box__items li::before {
	content: counter(gw-item, decimal-leading-zero); counter-increment: gw-item;
	font-family: var(--gw-font-serif); font-size: 18px; line-height: 1;
	color: rgba(252,251,247,0.5); width: 22px; flex: none;
}
.gw-box__items { counter-reset: gw-item; }
.gw-box__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 30px; }
.gw-box__price { font-family: var(--gw-font-serif); font-size: 2.6rem; line-height: 1; color: var(--gw-paper); }
.gw-box__note { font-size: var(--gw-text-s); line-height: 1.5; color: rgba(252,251,247,0.55); margin: 16px 0 0; }

/* --- Sezione testo con numero decorativo ----------------------------- */
.gw-editorial { position: relative; }
.gw-editorial__title { margin: 16px 0 0; font-size: var(--gw-title-m); line-height: 1.14; }
.gw-editorial__body { font-size: var(--gw-text-l); line-height: 1.7; color: var(--gw-ink-72); margin-top: 22px; }
.gw-editorial__body p { margin-bottom: 1em; }


/* --- Scheda libro ---------------------------------------------------- */
.gw-book-hero { background: var(--gw-paper); padding-block: var(--gw-section-y); position: relative; overflow: hidden; }
/* L'ultima parola del titolo, enorme e sbiadita dietro al contenuto. */
.gw-book-hero__parola {
	position: absolute;
	right: -1%;
	top: 4%;
	font-family: var(--gw-font-serif);
	font-style: italic;
	font-size: clamp(6rem, 17vw, 15rem);
	line-height: 1;
	letter-spacing: -0.03em;
	color: rgba(137, 28, 26, 0.07);
	pointer-events: none;
	user-select: none;
}
.gw-book-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: start; }
@media (max-width: 800px) { .gw-book-hero__grid { grid-template-columns: 1fr; } }
.gw-book-hero__cover img {
	width: 100%; max-width: 320px; border-radius: 1px 3px 3px 1px;
	box-shadow: -2px 0 0 0 rgba(10,10,10,0.18), 0 0 0 1px rgba(10,10,10,0.12), 0 24px 45px rgba(10,10,10,0.22);
}
.gw-book-hero__title { margin: 0 0 6px; }
.gw-book-hero__authors { font-family: var(--gw-font-sans); font-size: 17px; font-style: italic; color: var(--gw-ink-60); margin: 0 0 20px; }
.gw-book-hero__authors a { text-decoration: none; }
.gw-quote { font-family: var(--gw-font-serif); font-style: italic; font-size: clamp(1.35rem, 1.7vw, 1.5rem); font-weight: 500; line-height: 1.25; color: var(--gw-primary); max-width: 30ch; }

.gw-terms { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0; padding: 0; list-style: none; }
.gw-terms a {
	display: inline-block; text-decoration: none;
	font-family: var(--gw-font-sans); font-size: var(--gw-text-xs); font-weight: 600;
	letter-spacing: 0.12em; text-transform: uppercase;
	border: 1px solid var(--gw-ink-20); padding: 7px 14px;
}
.gw-terms a:hover { border-color: var(--gw-primary); color: var(--gw-primary); }

.gw-meta-list {
	display: flex; flex-wrap: wrap; align-items: center; gap: 20px;
	margin: 24px 0; padding: 18px 0 0; border-top: 1px solid var(--gw-ink-20); list-style: none;
}
.gw-meta-list li { font-size: var(--gw-text-xs); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gw-ink-50); }
.gw-meta-list li + li::before { content: "·"; color: var(--gw-primary); margin-right: 20px; }

.gw-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 30px; }

.gw-prose { max-width: 68ch; font-size: var(--gw-text-m); line-height: 1.75; color: var(--gw-ink-80); }
.gw-prose blockquote {
	margin: 32px 0; padding-left: 20px; border-left: 2px solid var(--gw-primary);
	font-family: var(--gw-font-serif); font-size: 1.35rem; font-style: italic; color: var(--gw-primary);
}

/* --- Archivio -------------------------------------------------------- */
.gw-archive-head { border-bottom: 1px solid var(--gw-ink-14); padding-bottom: 24px; margin-bottom: clamp(40px, 5vw, 64px); }

/* --- Paginazione ----------------------------------------------------- */
.gw-pagination { margin-top: 56px; display: flex; justify-content: center; gap: 8px; }
.gw-pagination .page-numbers {
	display: inline-flex; min-width: 42px; height: 42px; align-items: center; justify-content: center;
	border: 1px solid var(--gw-ink-20); text-decoration: none;
	font-family: var(--gw-font-sans); font-size: 14px; font-weight: 600;
}
.gw-pagination .page-numbers.current { background: var(--gw-primary); color: var(--gw-paper); border-color: var(--gw-primary); }

/* --- Footer ---------------------------------------------------------- */
.gw-footer { background: var(--gw-base); color: rgba(252,251,247,0.7); padding-block: 56px; font-size: 14px; }
.gw-footer__grid { display: grid; gap: 32px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.gw-footer .gw-eyebrow { color: var(--gw-paper); margin-bottom: 14px; }
.gw-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.gw-footer a { text-decoration: none; }
.gw-footer a:hover { color: var(--gw-primary-light); }
.gw-footer__bottom {
	margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(252,251,247,0.12);
	display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
	font-size: var(--gw-text-xs); color: rgba(252,251,247,0.45);
}

/* --- Download ebook (shortcode del plugin) --------------------------- */
.gw-ebook { max-width: 520px; margin: 48px 0 0; padding-top: 28px; border-top: 1px solid var(--gw-ink-14); }
.gw-ebook__title { font-family: var(--gw-font-serif); font-size: var(--gw-title-s); margin: 0 0 8px; }
.gw-ebook__hint { color: var(--gw-ink-60); margin-bottom: 18px; }
.gw-ebook__row { display: flex; gap: 12px; flex-wrap: wrap; }
.gw-ebook__input {
	flex: 1 1 220px; padding: 15px 16px; font: inherit; font-size: 15px;
	border: 1px solid var(--gw-ink-25); border-radius: var(--gw-radius); background: transparent; color: inherit;
}
.gw-ebook__btn {
	padding: 15px 30px; border: 0; border-radius: var(--gw-radius); cursor: pointer;
	font-family: var(--gw-font-sans); font-size: 15px; font-weight: 600;
	background: var(--gw-primary); color: var(--gw-paper);
}
.gw-ebook__btn:hover { background: var(--gw-primary-dark); }
.gw-ebook__btn:disabled { opacity: .6; cursor: progress; }
.gw-ebook__msg { margin: 14px 0 0; font-size: 14px; }
.gw-ebook__msg.is-error { color: var(--gw-primary); }
.gw-ebook__msg.is-success { color: #1a7f37; }

/* --- Utility --------------------------------------------------------- */
.gw-center { text-align: center; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* --- Griglia galleria (immagini, non card) --------------------------- */
.gw-gallery { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.gw-gallery figure { margin: 0; border-radius: var(--gw-radius); overflow: hidden; }

/* --- Testo guida ----------------------------------------------------- */
.gw-lede { font-size: var(--gw-text-l); line-height: 1.6; color: var(--gw-ink-72); }

/* --- Barra filtri del catalogo --------------------------------------- */
.gw-filters { margin-bottom: 40px; display: flex; flex-direction: column; gap: 16px; }
.gw-filters__row { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.gw-filters__label {
	font-family: var(--gw-font-sans); font-size: var(--gw-text-xs); font-weight: 600;
	letter-spacing: 0.16em; text-transform: uppercase; color: var(--gw-ink-50);
	flex: none; min-width: 56px;
}
.gw-filters ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.gw-filters__chip {
	display: inline-flex; align-items: center; gap: 7px;
	font-family: var(--gw-font-sans); font-size: var(--gw-text-s); font-weight: 600;
	line-height: 1; text-decoration: none; color: var(--gw-ink-72);
	border: 1px solid var(--gw-ink-20); padding: 9px 15px;
	transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.gw-filters__chip:hover { border-color: var(--gw-primary); color: var(--gw-primary); }
.gw-filters__chip.is-active { background: var(--gw-primary); border-color: var(--gw-primary); color: var(--gw-paper); }
.gw-filters__count { font-size: 11px; font-weight: 500; opacity: .6; }

.gw-results {
	font-family: var(--gw-font-sans); font-size: var(--gw-text-s);
	color: var(--gw-ink-50); margin: 0 0 28px;
}

/* Etichetta genere al posto del numero romano negli archivi */
.gw-book-card__num--genere span {
	font-family: var(--gw-font-sans); font-size: 10.5px; font-weight: 600;
	font-style: normal; letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--gw-ink-50);
}

/* --- Card Box: variante "prodotto" ------------------------------------
   Le Box non sono libri: pannello caldo, etichetta dedicata, prezzo.
   Il pannello giustifica anche la diversa proporzione dell'immagine
   (quadrata contro verticale), che così legge come scelta e non come errore.
   Per passare alla variante scura basta cambiare i due token qui sotto. */
.gw-book-card--box {
	--gw-boxcard-bg: rgba(137, 28, 26, 0.055);
	--gw-boxcard-line: rgba(137, 28, 26, 0.14);
	background: var(--gw-boxcard-bg);
	border: 1px solid var(--gw-boxcard-line);
	border-radius: var(--gw-radius);
	padding: 18px 18px 22px;
	transition: background .3s ease, border-color .3s ease, transform .4s ease;
}
.gw-book-card--box:hover {
	background: rgba(137, 28, 26, 0.085);
	border-color: rgba(137, 28, 26, 0.28);
}
/* Sul pannello l'ombra pesante non serve: l'immagine è già staccata dal fondo */
.gw-book-card--box .gw-book-card__cover img {
	box-shadow: 0 10px 22px -6px rgba(28, 23, 20, 0.3);
}
.gw-book-card--box:hover .gw-book-card__cover img {
	box-shadow: 0 18px 30px -6px rgba(28, 23, 20, 0.36);
}
/* Etichetta "Box" in bordeaux, non in grigio come i generi */
.gw-book-card--box .gw-book-card__num span {
	color: var(--gw-primary);
	font-weight: 700;
}
.gw-book-card--box .gw-book-card__num::before,
.gw-book-card--box .gw-book-card__num::after {
	background: var(--gw-boxcard-line);
}
.gw-book-card__price {
	font-family: var(--gw-font-serif);
	font-size: 22px;
	line-height: 1;
	color: var(--gw-primary);
	margin: 10px 0 0;
}

/* --- Gruppi dell'archivio (Libri / Box separati) ---------------------- */
.gw-group-title {
	font-family: var(--gw-font-serif);
	font-size: var(--gw-title-s);
	line-height: 1;
	margin: 0 0 6px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--gw-ink-14);
}
.gw-group-note {
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-s);
	color: var(--gw-ink-50);
	margin: -6px 0 26px;
}
.gw-books + .gw-boxes-group,
.gw-boxes-group { margin-top: clamp(56px, 6vw, 88px); }
.gw-group-title + .gw-books { margin-top: 26px; }

/* --- Ricerca del catalogo -------------------------------------------- */
.gw-search {
	position: relative;
	display: flex;
	align-items: center;
	max-width: 420px;
	border: 1px solid var(--gw-ink-20);
	border-radius: var(--gw-radius);
	background: #fff;
	transition: border-color .2s ease;
}
.gw-search:focus-within { border-color: var(--gw-primary); }
.gw-search__icon { flex: none; margin-left: 14px; color: var(--gw-ink-50); }
.gw-search__input {
	flex: 1; min-width: 0;
	border: 0; background: transparent; outline: none;
	font-family: var(--gw-font-sans); font-size: 14px; color: inherit;
	padding: 12px 12px 12px 10px;
}
.gw-search__input::placeholder { color: var(--gw-ink-50); }
.gw-search__input::-webkit-search-cancel-button { display: none; }
.gw-search__submit {
	border: 0; background: var(--gw-primary); color: var(--gw-paper);
	font-family: var(--gw-font-sans); font-size: 13px; font-weight: 600;
	padding: 12px 18px; cursor: pointer; border-radius: 0 2px 2px 0;
}
.gw-search__clear {
	border: 0; background: none; color: var(--gw-ink-50);
	padding: 0 14px; cursor: pointer; display: flex; align-items: center;
}
.gw-search__clear:hover { color: var(--gw-primary); }
.gw-search__empty {
	font-family: var(--gw-font-sans); font-size: var(--gw-text-s);
	color: var(--gw-ink-60); margin: 14px 0 0;
}

/* --- Card Box: formato largo orizzontale ------------------------------
   Le Box sono 4 e le loro immagini sono composizioni quadrate ricche di
   dettaglio: in una colonna stretta si leggevano male. Qui occupano metà
   riga, con l'immagine grande a sinistra e i dati a destra. */
.gw-boxes-group .gw-books {
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(24px, 2.6vw, 36px);
}
/* Niente scacchiera nel gruppo Box: con due card larghe stonerebbe. */
.gw-boxes-group .gw-books .gw-book-card:nth-child(even) { margin-top: 0; }

.gw-book-card--box {
	flex-direction: row;
	align-items: center;
	text-align: left;
	gap: clamp(18px, 2vw, 26px);
	padding: clamp(16px, 1.6vw, 22px);
}
.gw-book-card--box .gw-book-card__cover {
	flex: 0 0 44%;
	height: auto;
	aspect-ratio: 1;
}
.gw-book-card--box .gw-book-card__body {
	align-items: flex-start;
	text-align: left;
	margin-top: 0;
	flex: 1 1 auto;
	min-width: 0;
}
.gw-book-card--box .gw-book-card__num { justify-content: flex-start; width: auto; margin-bottom: 10px; }
.gw-book-card--box .gw-book-card__num::before { display: none; }
.gw-book-card--box .gw-book-card__title { font-size: clamp(21px, 1.6vw, 23px); text-align: left; }
.gw-book-card--box .gw-book-card__author { text-align: left; }
.gw-book-card__desc {
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-s);
	line-height: 1.55;
	color: var(--gw-ink-60);
	margin: 10px 0 0;
}
.gw-book-card--box .gw-book-card__price { margin-top: 12px; }
.gw-book-card--box .gw-book-card__link { margin-top: 12px; }

@media (max-width: 1000px) {
	.gw-boxes-group .gw-books { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.gw-book-card--box { flex-direction: column; text-align: center; }
	.gw-book-card--box .gw-book-card__cover { flex: none; width: 100%; }
	.gw-book-card--box .gw-book-card__body { align-items: center; text-align: center; }
	.gw-book-card--box .gw-book-card__num { justify-content: center; }
	.gw-book-card--box .gw-book-card__num::before { display: block; }
	.gw-book-card--box .gw-book-card__title,
	.gw-book-card--box .gw-book-card__author { text-align: center; }
}

/* --- Archivio compatto: i libri devono vedersi senza scorrere ---------
   L'intestazione occupava oltre 750px prima della prima copertina.
   Qui: titolo ridimensionato (quello gigante è dell'hero, non degli archivi),
   spaziature strette, ricerca e filtro Tipo affiancati. */
.gw-archive-head {
	padding-bottom: 14px;
	margin-bottom: 22px;
}
.gw-archive-head h1 {
	font-size: var(--gw-title-l);
	line-height: 1.05;
	margin: 8px 0 0;
}
.gw-archive-head .gw-prose { margin-top: 12px; }

.gw-filters { gap: 12px; margin-bottom: 26px; }
.gw-filters__top {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
}
.gw-filters__top .gw-search { flex: 0 1 340px; }
.gw-filters__row--tipo { margin-left: auto; }
.gw-filters__chip { padding: 8px 13px; }
.gw-results { margin: 0 0 18px; }

@media (max-width: 720px) {
	.gw-filters__row--tipo { margin-left: 0; }
	.gw-filters__top .gw-search { flex: 1 1 100%; }
}

/* --- Striscia con invito --------------------------------------------- */
.gw-strip { padding-block: clamp(26px, 3.4vw, 44px); }
.gw-strip--primary { background: var(--gw-primary); }
.gw-strip--secondary { background: var(--gw-secondary); }
.gw-strip--scuro { background: var(--gw-base); }
.gw-strip__inner {
	display: flex; align-items: center; justify-content: center;
	gap: clamp(20px, 3vw, 48px); flex-wrap: wrap;
}
.gw-strip__text {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-size: clamp(1.7rem, 2.6vw, 2.3rem);
	line-height: 1.15;
	color: var(--gw-paper);
	text-wrap: balance;
}
.gw-strip__text em { font-style: italic; }
.gw-strip__text span { opacity: .95; }
.gw-strip__btn {
	flex: none;
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--gw-font-sans); font-size: 14px; font-weight: 700;
	letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none;
	padding: 15px 26px;
	background: var(--gw-base); color: var(--gw-paper);
	border: 1px solid transparent;
	transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.gw-strip__btn:hover { background: var(--gw-paper); color: var(--gw-base); }
.gw-strip--scuro .gw-strip__btn { background: var(--gw-primary); }
.gw-strip--scuro .gw-strip__btn:hover { background: var(--gw-paper); color: var(--gw-base); }

/* --- Banner immagine -------------------------------------------------- */
.gw-banner-section { padding-block: clamp(28px, 4vw, 56px); }
.gw-banner-section--full { padding-block: 0; }
.gw-banner--full { width: 100%; }
.gw-banner { line-height: 0; }
.gw-banner img { width: 100%; height: auto; }
.gw-banner-section:not(.gw-banner-section--full) .gw-banner img { border-radius: var(--gw-radius); }
.gw-banner--linked { transition: opacity .25s ease; }
.gw-banner--linked:hover { opacity: .94; }


/* --- Fiorone tipografico (SVG) ---------------------------------------- */
.gw-ornamento { display: block; color: var(--gw-gold-line); }
.gw-ornamento--cta { margin: 0 auto 16px; width: 60px; height: 24px; }



/* ======================================================================
   NEWSLETTER — centro pulito, copertine sparse ai bordi
   La decorazione non è un ornamento astratto: sono i libri veri del
   catalogo, inclinati e tagliati dal margine. Restano dietro al contenuto
   e fuori dalla zona centrale, così il testo non perde mai leggibilità.
   ====================================================================== */
.gw-cta {
	position: relative;
	overflow: hidden;
	padding-block: clamp(72px, 11vw, 150px);
	background: linear-gradient(180deg, var(--gw-paper) 0%, #f6f2ea 100%);
	border-top: 1px solid var(--gw-ink-08);
}

.gw-cta__covers {
	position: absolute; inset: 0;
	pointer-events: none;
	z-index: 0;
}
.gw-cta__cover { position: absolute; width: 168px; }
.gw-cta__cover img {
	width: 100%; height: auto;
	border-radius: 1px 4px 4px 1px;
	box-shadow: 0 22px 40px -12px rgba(28, 23, 20, 0.42);
}

/* Disposizione: fuori dalla colonna centrale, alcune tagliate dal bordo. */
.gw-cta__cover--1 { top: 6%;   left: -46px;  transform: rotate(-13deg); width: 186px; }
.gw-cta__cover--2 { bottom: 2%; left: 5%;    transform: rotate(7deg);   width: 150px; }
.gw-cta__cover--3 { top: -34px; right: 7%;   transform: rotate(12deg);  width: 158px; }
.gw-cta__cover--4 { bottom: 8%; right: -40px; transform: rotate(-8deg);  width: 178px; }
.gw-cta__cover--5 { top: 42%;  left: 11%;    transform: rotate(-4deg);  width: 116px; opacity: .92; }
.gw-cta__cover--6 { top: 38%;  right: 12%;   transform: rotate(6deg);   width: 122px; opacity: .92; }

.gw-cta__inner {
	position: relative;
	z-index: 1;
	max-width: 620px;
	text-align: center;
}
.gw-cta__eyebrow {
	font-family: var(--gw-font-sans); font-size: 12px; font-weight: 600;
	letter-spacing: 0.22em; text-transform: uppercase; color: var(--gw-primary);
	margin: 0 0 18px;
}
.gw-cta__title {
	font-size: clamp(2.8rem, 5.4vw, 4.2rem);
	line-height: 1.02;
	letter-spacing: -0.02em;
	margin: 0;
	color: var(--gw-ink);
}
.gw-cta__desc {
	font-size: var(--gw-text-l);
	line-height: 1.55;
	color: var(--gw-ink-60);
	max-width: 40ch;
	margin: 20px auto 0;
}
.gw-cta__actions { margin-top: 30px; }
.gw-cta__actions .gw-btn--primary { padding: 17px 40px; }

/* Schermi stretti: meno copertine, più piccole, così non affollano. */
@media (max-width: 1180px) {
	.gw-cta__cover--5, .gw-cta__cover--6 { display: none; }
	.gw-cta__cover { width: 132px !important; }
}
@media (max-width: 860px) {
	.gw-cta__cover--2, .gw-cta__cover--3 { display: none; }
	.gw-cta__cover { width: 112px !important; opacity: .55; }
}
@media (max-width: 620px) {
	.gw-cta__covers { display: none; }
}

/* --- Logo del sito ----------------------------------------------------
   Il logo caricato è un lockup largo (1338×277): senza vincolo renderebbe
   a dimensione naturale e sfonderebbe l'header, mandando il menu a capo.
   Si governa con una variabile sola. */
:root { --gw-logo-h: 58px; }

.gw-header__logo { display: flex; align-items: center; flex: 0 1 auto; min-width: 0; }
.gw-header__logo a,
.gw-header__logo .custom-logo-link { display: block; line-height: 0; }
.gw-header__logo img,
.gw-header img.custom-logo {
	height: var(--gw-logo-h);
	width: auto;
	max-width: 100%;
	object-fit: contain;
}

/* Il menu non deve andare a capo finché c'è spazio */
.gw-header__inner { flex-wrap: nowrap; }
.gw-nav { flex: 0 0 auto; }
.gw-nav ul { flex-wrap: nowrap; }

@media (max-width: 1100px) { :root { --gw-logo-h: 46px; } .gw-nav ul { gap: 20px; } }
@media (max-width: 860px) {
	:root { --gw-logo-h: 40px; }
	.gw-header__inner { flex-wrap: wrap; }
	.gw-nav ul { flex-wrap: wrap; }
}

/* Dati societari nel footer (fuori dalla pagina Contatti, per non invitare
   posta cartacea) */
.gw-footer__address {
	font-style: normal;
	font-size: var(--gw-text-s);
	line-height: 1.7;
	color: rgba(252, 251, 247, 0.6);
}
.gw-footer__address a { color: rgba(252, 251, 247, 0.8); }
.gw-footer__address a:hover { color: var(--gw-primary-light); }

/* --- Sottomenu a tendina ----------------------------------------------
   Senza queste regole il <ul> annidato si impila sotto la voce padre
   invece di aprirsi: era il caso di "Manoscritti" sotto "Contatti". */
.gw-nav li { position: relative; }

/* Freccetta sulle voci che hanno figli */
.gw-nav .menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: 5px; height: 5px;
	margin-left: 7px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	opacity: .55;
	transition: transform .2s ease, opacity .2s ease;
}
.gw-nav .menu-item-has-children:hover > a::after,
.gw-nav .menu-item-has-children:focus-within > a::after { opacity: 1; transform: translateY(0) rotate(45deg); }

.gw-nav .sub-menu {
	position: absolute;
	top: calc(100% + 10px);
	left: 0;
	display: block;
	min-width: 190px;
	margin: 0; padding: 8px 0;
	background: var(--gw-paper);
	border: 1px solid var(--gw-ink-14);
	border-radius: var(--gw-radius);
	box-shadow: 0 14px 34px -10px rgba(28, 23, 20, 0.28);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
	z-index: 200;
}
/* Ponte invisibile: evita che il menu si chiuda passando col mouse nel vuoto */
.gw-nav .menu-item-has-children::after {
	content: "";
	position: absolute; left: 0; top: 100%;
	width: 100%; height: 12px;
}
.gw-nav li:hover > .sub-menu,
.gw-nav li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.gw-nav .sub-menu li { width: 100%; }
.gw-nav .sub-menu a {
	display: block;
	padding: 9px 18px;
	border-bottom: 0;
	white-space: nowrap;
	font-weight: 500;
}
.gw-nav .sub-menu a:hover,
.gw-nav .sub-menu .current-menu-item > a { background: rgba(137, 28, 26, 0.06); color: var(--gw-primary); }

/* Su schermi piccoli il menu è già impilato: la tendina torna un elenco */
@media (max-width: 860px) {
	.gw-nav .sub-menu {
		position: static;
		opacity: 1; visibility: visible; transform: none;
		border: 0; box-shadow: none; background: transparent;
		padding: 6px 0 0 16px;
		min-width: 0;
	}
	.gw-nav .menu-item-has-children::after { display: none; }
	.gw-nav .sub-menu a { padding: 6px 0; }
}

/* ======================================================================
   PAGINE STATICHE
   Testata scura per dare presenza (di solo testo su fondo panna risultavano
   piatte rispetto alla homepage), corpo su carta con misura di lettura ampia,
   blocchi d'accento e chiusura sul catalogo.
   ====================================================================== */
.gw-page__head {
	position: relative;
	overflow: hidden;
	padding: clamp(56px, 8vw, 104px) 0 clamp(48px, 6vw, 80px);
	text-align: center;
	background:
		radial-gradient(70% 130% at 50% 0%, rgba(98, 23, 24, 0.85), transparent 62%),
		radial-gradient(90% 100% at 20% 100%, rgba(137, 28, 26, 0.35), transparent 60%),
		var(--gw-base);
	color: var(--gw-on-dark);
}
/* Trama diagonale finissima, come la carta di una sovraccoperta */
.gw-page__head::before {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(135deg, transparent 0 22px, rgba(252, 251, 247, 0.022) 22px 23px);
	pointer-events: none;
}
.gw-page__head > * { position: relative; z-index: 1; }

.gw-page__eyebrow {
	font-family: var(--gw-font-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--gw-gold);
	margin: 0 0 18px;
}
.gw-page__title {
	font-size: clamp(3rem, 6vw, 4.6rem);
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--gw-paper);
	margin: 0;
}
.gw-ornamento--page { margin: 28px auto 0; width: 66px; height: 26px; color: var(--gw-gold); opacity: .9; }

.gw-page__body { padding: clamp(46px, 6vw, 76px) 0 clamp(64px, 8vw, 96px); }

/* --- Corpo del testo --------------------------------------------------
   Colonna più ampia: 62 caratteri erano corretti da manuale ma sembravano
   sperduti nel bianco su schermi larghi. */
.gw-wrap--narrow { max-width: 860px; }

.gw-prose--rich {
	font-size: 1.09rem;
	line-height: 1.75;
	color: var(--gw-ink-80);
	max-width: none;
}
.gw-prose--rich > p:first-of-type,
.gw-prose--rich .gw-lede {
	font-size: 1.32rem;
	line-height: 1.5;
	color: var(--gw-ink);
	margin-bottom: 1.3em;
}
.gw-prose--rich h2 {
	font-size: clamp(2rem, 3vw, 2.3rem);
	line-height: 1.12;
	margin: 2.3em 0 0.7em;
	padding-top: 1.1em;
	border-top: 1px solid var(--gw-ink-14);
}
.gw-prose--rich h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.gw-prose--rich h3 { font-size: 1.4rem; margin: 1.8em 0 0.5em; color: var(--gw-primary); }

.gw-prose--rich ul { list-style: none; padding-left: 0; }
.gw-prose--rich ul li { position: relative; padding-left: 1.6em; margin-bottom: 0.5em; }
.gw-prose--rich ul li::before {
	content: "";
	position: absolute;
	left: 0.2em;
	top: 0.66em;
	width: 6px;
	height: 6px;
	background: var(--gw-gold-line);
	transform: rotate(45deg);
}
.gw-prose--rich ol { list-style: none; padding-left: 0; counter-reset: gw-ol; }
.gw-prose--rich ol li { position: relative; padding-left: 2.2em; margin-bottom: 0.7em; }
.gw-prose--rich ol li::before {
	content: counter(gw-ol, decimal-leading-zero);
	counter-increment: gw-ol;
	position: absolute;
	left: 0;
	top: 0.05em;
	font-family: var(--gw-font-serif);
	font-size: 1.1em;
	color: var(--gw-primary);
	opacity: .75;
}
.gw-prose--rich a { color: var(--gw-primary); text-decoration: underline; text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
.gw-prose--rich a:hover { text-decoration-thickness: 2px; }
.gw-prose--rich strong { color: var(--gw-ink); font-weight: 700; }
.gw-prose--rich hr {
	border: 0;
	height: 26px;
	margin: 2.8em auto;
	background: no-repeat center / 64px 26px url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 24' fill='%238a6d44'><path d='M2 12c8-8 16-8 24 0-8 8-16 8-24 0z'/><path d='M58 12c-8-8-16-8-24 0 8 8 16 8 24 0z'/><path d='M30 6.5l3.2 5.5-3.2 5.5-3.2-5.5z'/></svg>");
	opacity: .8;
}

/* --- Riquadro informativo --------------------------------------------- */
.gw-callout {
	background: rgba(137, 28, 26, 0.05);
	border-left: 3px solid var(--gw-primary);
	padding: 22px 26px;
	margin: 1.9em 0;
	border-radius: 0 var(--gw-radius) var(--gw-radius) 0;
}
.gw-callout p { margin-bottom: 0.6em; }
.gw-callout p:last-child { margin-bottom: 0; }
.gw-callout__label {
	display: block;
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-xs);
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--gw-primary);
	margin-bottom: 8px;
}

/* --- Dichiarazione forte: fascia vinaccia ------------------------------ */
.gw-statement {
	background: var(--gw-secondary);
	color: var(--gw-paper);
	margin: 2.6em 0;
	padding: clamp(30px, 4vw, 46px) clamp(26px, 4vw, 46px);
	border-radius: var(--gw-radius);
	font-family: var(--gw-font-serif);
	font-size: clamp(1.55rem, 2.2vw, 1.7rem);
	font-style: italic;
	line-height: 1.4;
}
.gw-statement p { margin: 0; }
.gw-statement__label {
	display: block;
	font-family: var(--gw-font-sans);
	font-style: normal;
	font-size: var(--gw-text-xs);
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gw-gold);
	margin-bottom: 14px;
}

/* --- Cifre in evidenza ------------------------------------------------- */
.gw-figures {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin: 2.2em 0;
	padding: 28px 0;
	border-block: 1px solid var(--gw-ink-14);
	text-align: center;
}
@media (max-width: 620px) { .gw-figures { grid-template-columns: 1fr; gap: 26px; } }
.gw-figures__n {
	display: block;
	font-family: var(--gw-font-serif);
	font-size: clamp(2.4rem, 4vw, 2.9rem);
	line-height: 1;
	color: var(--gw-primary);
	margin-bottom: 8px;
}
.gw-figures__l {
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--gw-ink-50);
}

/* --- Requisiti affiancati ---------------------------------------------- */
.gw-requisiti { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin: 1.9em 0; }
@media (max-width: 700px) { .gw-requisiti { grid-template-columns: 1fr; } }
.gw-requisiti__col { padding: 24px 26px; border-radius: var(--gw-radius); }
.gw-requisiti__col--si { background: rgba(26, 127, 55, 0.06); border: 1px solid rgba(26, 127, 55, 0.22); }
.gw-requisiti__col--no { background: rgba(137, 28, 26, 0.05); border: 1px solid rgba(137, 28, 26, 0.2); }
.gw-requisiti h3 { margin: 0 0 0.8em; font-size: 1.12rem; }
.gw-requisiti__col--si h3 { color: #1a7f37; }
.gw-requisiti__col--no h3 { color: var(--gw-primary); }
.gw-requisiti li { margin-bottom: 0.55em; }

/* --- Navigazione tra pagine correlate ---------------------------------- */
.gw-page__siblings { margin-top: clamp(48px, 6vw, 72px); padding-top: 26px; border-top: 1px solid var(--gw-ink-14); }
.gw-page__siblings ul { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 24px; }

/* --- Coda: copertine a ventaglio + invito al catalogo ------------------ */
.gw-coda {
	background: linear-gradient(180deg, var(--gw-paper) 0%, #f5efe4 100%);
	border-top: 1px solid var(--gw-ink-08);
	padding-block: clamp(52px, 7vw, 88px);
	overflow: hidden;
}
.gw-coda__covers {
	display: flex;
	justify-content: center;
	align-items: flex-end;
	gap: clamp(8px, 1.4vw, 20px);
	margin-bottom: clamp(30px, 4vw, 46px);
}
.gw-coda__cover { flex: 0 0 auto; display: block; line-height: 0; transition: transform .35s ease; }
.gw-coda__cover img {
	width: clamp(66px, 8vw, 108px);
	height: auto;
	border-radius: 1px 3px 3px 1px;
	box-shadow: 0 14px 26px -8px rgba(28, 23, 20, 0.4);
}
/* Ventaglio: le copertine ai lati si abbassano e ruotano */
.gw-coda__cover:nth-child(1) { transform: rotate(-8deg) translateY(10px); }
.gw-coda__cover:nth-child(2) { transform: rotate(-5deg) translateY(4px); }
.gw-coda__cover:nth-child(3) { transform: rotate(-2deg); }
.gw-coda__cover:nth-child(5) { transform: rotate(2deg); }
.gw-coda__cover:nth-child(6) { transform: rotate(5deg) translateY(4px); }
.gw-coda__cover:nth-child(7) { transform: rotate(8deg) translateY(10px); }
.gw-coda__cover:hover { transform: translateY(-8px) rotate(0deg); z-index: 2; }
.gw-coda__testo { text-align: center; }
.gw-coda__titolo { font-size: clamp(2.1rem, 3.2vw, 2.5rem); line-height: 1.1; margin: 14px auto 24px; max-width: 22ch; }
@media (max-width: 640px) { .gw-coda__cover:nth-child(n+6) { display: none; } }
/* ======================================================================
   MANOSCRITTI — versione con carattere
   Niente centratura, niente cornici, niente fioroni: allineamenti a sinistra,
   contrasti di scala forti, elementi storti e il topo del marchio come motivo.
   ====================================================================== */

/* Ambra e corallo: servono a scaldare, il solo bordeaux era troppo sobrio */
:root {
	--gw-ambra: #a87413;
	--gw-oro-caldo: #d4a44c;
	--gw-corallo: #ff8a80;
}

/* --- Apertura --------------------------------------------------------- */
/* I colori dell'apertura stanno tutti qui: le regole sotto leggono queste
   variabili, così passare da carta a scuro è una classe sola sul template
   (gw-man__hero--scuro) e non una riscrittura. */
.gw-man__hero {
	--hero-testo: var(--gw-ink);
	/* 0.5 sul chiaro non bastava per le etichette da 10px: contrasto 3.36. */
	--hero-tenue: rgba(28, 23, 20, 0.66);
	--hero-corpo: var(--gw-ink-80);
	--hero-accento: var(--gw-primary);
	--hero-filo: rgba(28, 23, 20, 0.18);
	--hero-filo-fine: rgba(28, 23, 20, 0.1);
	--hero-vetro: rgba(28, 23, 20, 0.028);
	--hero-velo: rgba(137, 28, 26, 0.07);
	--hero-verde: #1a7f37;
	--hero-topo-filtro: none;
	--hero-topo-opacita: .09;

	position: relative;
	overflow: hidden;
	background: var(--gw-paper);
	color: var(--gw-ink-80);
	/* Tutta la prima schermata: 100vh meno l'header sticky (95px). */
	min-height: calc(100svh - 95px);
	display: grid;
	align-items: center;
	padding: clamp(30px, 4vw, 56px) 0;
	border-bottom: 1px solid var(--gw-ink-08);
}
.gw-man__hero--scuro {
	--hero-testo: var(--gw-paper);
	--hero-tenue: rgba(252, 251, 247, 0.65);
	--hero-corpo: rgba(252, 251, 247, 0.72);
	--hero-accento: var(--gw-oro-caldo);
	--hero-filo: rgba(252, 251, 247, 0.24);
	--hero-filo-fine: rgba(252, 251, 247, 0.14);
	--hero-vetro: rgba(252, 251, 247, 0.055);
	--hero-velo: rgba(137, 28, 26, 0.55);
	--hero-verde: #86e29b;
	--hero-topo-filtro: brightness(0) invert(1);
	--hero-topo-opacita: .13;

	background: var(--gw-base);
	color: var(--gw-on-dark);
	border-bottom: 0;
}
.gw-man__hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(85% 120% at 8% 0%, var(--hero-velo), transparent 58%);
}
.gw-man__hero-inner { position: relative; z-index: 2; max-width: 780px; margin-inline: 0; }
@media (min-width: 1340px) { .gw-man__hero-inner { padding-left: clamp(20px, 4vw, 40px); } }

/* Topo enorme e storto che sbuca dal bordo */
.gw-man__topo-grande {
	position: absolute;
	right: -2%;
	bottom: -13%;
	width: clamp(230px, 32vw, 460px);
	opacity: calc(var(--hero-topo-opacita) + 0.03);
	transform: rotate(12deg);
	filter: var(--hero-topo-filtro);
	pointer-events: none;
	z-index: 1;
}

.gw-man__kicker {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-xs);
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--hero-accento);
	margin: 0 0 20px;
}
.gw-man__kicker--chiaro { color: var(--gw-oro-caldo); }
.gw-man__kicker-topo {
	width: 15px;
	height: 18px;
	flex: none;
	background: var(--topo) no-repeat center / contain;
	filter: var(--hero-topo-filtro);
	opacity: .8;
}

.gw-man__title {
	font-family: var(--gw-font-serif);
	font-size: clamp(3.4rem, 9vw, 6.4rem);
	line-height: 0.92;
	letter-spacing: -0.03em;
	color: var(--hero-testo);
	margin: 0 0 22px;
}
.gw-man__title em {
	display: block;
	font-style: italic;
	color: var(--hero-accento);
	margin-left: 0.12em;
}
.gw-man__sub {
	font-size: clamp(1.05rem, 1.7vw, 1.32rem);
	line-height: 1.5;
	color: var(--hero-corpo);
	max-width: 44ch;
	margin: 0 0 30px;
}

/* --- Stato invii: etichetta storta ------------------------------------ */
.gw-finestra {
	display: inline-flex;
	align-items: stretch;
	transform: rotate(-1.4deg);
	border: 1.5px solid var(--hero-filo);
	background: var(--hero-vetro);
}
.gw-finestra__stato {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-s);
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 10px 16px;
}
.gw-finestra__spia { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.gw-finestra.is-aperta .gw-finestra__stato { color: var(--hero-verde); }
.gw-finestra.is-aperta .gw-finestra__spia { background: var(--hero-verde); box-shadow: 0 0 0 4px rgba(26, 127, 55, 0.18); }
.gw-finestra.is-chiusa .gw-finestra__stato { color: var(--gw-primary); }
.gw-finestra.is-chiusa .gw-finestra__spia { background: var(--gw-primary); }
.gw-finestra__date {
	display: inline-flex;
	align-items: center;
	font-family: var(--gw-font-serif);
	font-style: italic;
	font-size: 1.35rem;
	font-weight: 500;
	color: var(--hero-testo);
	padding: 10px 20px;
	border-left: 1.5px solid var(--hero-filo-fine);
}

.gw-man__cta { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 34px; }
.gw-man__link-nudo {
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-s);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--hero-corpo);
	text-decoration: underline;
	text-underline-offset: 5px;
	text-decoration-thickness: 1.5px;
}
.gw-man__link-nudo:hover { color: var(--hero-accento); }
.gw-btn--grande { font-size: 1.02rem; padding: 19px 34px; }


/* --- Cosa cerchiamo ---------------------------------------------------- */
/* L'anno del calendario campeggia enorme dietro al testo, solo contorno. */
.gw-man__anno {
	position: absolute;
	right: -1%;
	top: 50%;
	transform: translateY(-52%) rotate(5deg);
	font-family: var(--gw-font-serif);
	font-size: clamp(11rem, 26vw, 24rem);
	line-height: 1;
	font-weight: 600;
	color: transparent;
	-webkit-text-stroke: 2px rgba(212, 164, 76, 0.28);
	pointer-events: none;
	user-select: none;
}
@media (max-width: 760px) { .gw-man__anno { display: none; } }
.gw-man__cerchiamo {
	position: relative;
	overflow: hidden;
	background: var(--gw-secondary);
	color: var(--gw-on-dark);
	padding-block: clamp(54px, 7vw, 92px);
}
.gw-man__topo-fondo {
	position: absolute;
	left: -2%;
	bottom: -16%;
	width: clamp(180px, 24vw, 340px);
	opacity: .16;
	transform: rotate(-14deg) scaleX(-1);
	filter: brightness(0) invert(1);
	pointer-events: none;
}
.gw-man__cerchiamo .gw-wrap { position: relative; z-index: 1; }
/* Una frase sola che scorre: le parole in evidenza restano nel flusso del
   testo, non staccate su righe proprie. */
.gw-man__claim {
	font-family: var(--gw-font-serif);
	font-size: clamp(2rem, 3.3vw, 2.9rem);
	line-height: 1.22;
	letter-spacing: -0.02em;
	color: var(--gw-paper);
	margin: 0 0 26px;
	text-wrap: balance;
	position: relative;
	z-index: 1;
}
.gw-man__claim em { font-style: italic; color: var(--gw-oro-caldo); }
/* I due generi in evidenza sono targhette storte, come le pillole dei generi:
   la frase resta una, ma quelle due parole saltano addosso. */
.gw-man__claim strong {
	display: inline-block;
	font-weight: 400;
	font-style: italic;
	color: var(--gw-oro-caldo);
	border: 1.5px solid rgba(212, 164, 76, 0.55);
	border-radius: 999px;
	padding: 0 18px 4px;
	transform: rotate(-1.6deg);
	white-space: nowrap;
}
.gw-man__claim strong:last-of-type { transform: rotate(1.2deg); }
/* La nota è un biglietto appuntato storto, non una riga grigia che si perde. */
.gw-man__nota--chiara {
	position: relative;
	z-index: 1;
	font-size: 1.05rem;
	line-height: 1.6;
	color: rgba(252, 251, 247, 0.85);
	margin: 0;
	padding: 20px 22px;
	background: rgba(10, 10, 10, 0.25);
	border: 1.5px solid rgba(212, 164, 76, 0.4);
	transform: rotate(1.4deg);
}

/* --- Generi ------------------------------------------------------------ */
.gw-man__generi { background: var(--gw-paper); padding-block: clamp(52px, 7vw, 86px); }
/* Testo e nuvola di pillole si guardano ad altezza pari, non testo in alto
   e pillole che pendono. */
.gw-man__generi .gw-man__tris { align-items: center; }
.gw-man__generi-testa { max-width: none; margin-bottom: 0; }
.gw-man__generi-nota {
	margin: 22px 0 0;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--gw-ink-50);
}
.gw-man__h2 {
	font-family: var(--gw-font-serif);
	font-size: clamp(2.4rem, 4.6vw, 3.2rem);
	line-height: 1.04;
	letter-spacing: -0.025em;
	margin: 0 0 16px;
}
.gw-man__generi-testa p { color: var(--gw-ink-72); font-size: 1.05rem; line-height: 1.6; }

/* Impianto a tre colonne condiviso dalle sezioni lunghe: il testo sta nella
   prima, il contenuto occupa le altre due. Serve a non lasciare mezzo schermo
   vuoto sulla destra, che era il difetto di tutte queste sezioni. */
.gw-man__tris {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	gap: clamp(28px, 3.6vw, 62px);
	align-items: start;
}
@media (max-width: 900px) { .gw-man__tris { grid-template-columns: 1fr; } }
/* Nella colonna stretta i titoloni andrebbero a capo ogni due parole. */
.gw-man__tris .gw-man__h2 { font-size: clamp(2.2rem, 2.7vw, 2.5rem); }
/* La sezione rossa: la frase grande prende due terzi, la nota chiude a destra
   allineata in basso invece di stare sotto a occupare un'altra fascia. */
.gw-man__tris--claim { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: end; }
@media (max-width: 900px) { .gw-man__tris--claim { grid-template-columns: 1fr; } }

/* Generi a pillole: targhette bianche tonde, ciascuna col suo topo e una
   leggera inclinazione alternata. Più "in bocca al topo", meno catasto. */
.gw-generi {
	list-style: none;
	margin: 0;
	padding: 4px 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 18px 14px;
}
.gw-generi li {
	display: inline-flex;
	align-items: baseline;
	gap: 11px;
	padding: 14px 26px 15px 21px;
	background: #fff;
	border: 1.5px solid rgba(28, 23, 20, 0.3);
	border-radius: 999px;
	box-shadow: 3px 3px 0 rgba(28, 23, 20, 0.08);
}
.gw-generi li:nth-child(3n)   { transform: rotate(-1deg); }
.gw-generi li:nth-child(3n+1) { transform: rotate(0.8deg); }
.gw-generi li::before {
	content: "";
	width: 14px;
	height: 17px;
	flex: none;
	background: var(--topo) no-repeat center / contain;
	opacity: .55;
	transform: translateY(2px);
}
.gw-generi strong { font-family: var(--gw-font-serif); font-size: 1.3rem; font-weight: 500; line-height: 1.2; }
.gw-generi span { font-size: var(--gw-text-s); color: var(--gw-ink-50); }
@media (max-width: 700px) {
	.gw-generi li { flex-wrap: wrap; row-gap: 2px; }
	.gw-generi span { flex-basis: 100%; padding-left: 25px; }
}

/* --- Regole: due colonne storte ---------------------------------------- */
.gw-man__regole { background: #ece4da; border-top: 1px solid rgba(28, 23, 20, 0.1); padding-block: clamp(52px, 7vw, 86px); }
.gw-man__regole-testa { margin-bottom: 34px; }
.gw-regole { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 3vw, 34px); }
@media (max-width: 760px) { .gw-regole { grid-template-columns: 1fr; } }
.gw-regole__col { padding: clamp(24px, 3vw, 34px); }
.gw-regole__col--si { background: var(--gw-paper); border: 2px solid rgba(26, 127, 55, 0.3); transform: rotate(-0.7deg); }
.gw-regole__col--no { background: var(--gw-paper); border: 2px solid rgba(137, 28, 26, 0.28); transform: rotate(0.7deg); }
.gw-regole h3 {
	font-family: var(--gw-font-serif);
	font-size: 1.7rem;
	font-style: italic;
	margin: 0 0 18px;
}
.gw-regole__col--si h3 { color: #1a7f37; }
.gw-regole__col--no h3 { color: var(--gw-primary); }
.gw-regole ul { list-style: none; margin: 0; padding: 0; }
.gw-regole li { padding: 9px 0 9px 26px; position: relative; font-size: 1.02rem; line-height: 1.45; }
.gw-regole__col--si li::before { content: "✓"; position: absolute; left: 0; color: #1a7f37; font-weight: 700; }
.gw-regole__col--no li::before { content: "✕"; position: absolute; left: 0; color: var(--gw-primary); font-weight: 700; }
/* Una colonna sola: spezzata in due si leggeva metà frase a sinistra e metà
   a destra, costringendo a saltare da una parte all'altra della pagina. */
.gw-man__ps {
	margin-top: 34px;
	font-family: var(--gw-font-serif);
	font-size: 1.18rem;
	line-height: 1.55;
	color: var(--gw-ink-80);
	max-width: none;
}

/* --- Invio: il form dei manoscritti ------------------------------------ */
/* Il gran finale su fondo scuro: la scheda di invio è un foglio di carta
   appoggiato sulla scrivania, leggermente storto come tutto il resto. */
.gw-invio {
	position: relative;
	overflow: hidden;
	background: var(--gw-secondary);
	color: var(--gw-on-dark);
	padding-block: clamp(56px, 7vw, 96px);
}
/* Flusso normale e centrato: il testo introduce, il form segue sotto.
   Dentro al form i campi restano allineati a sinistra, come si compila. */
.gw-invio .gw-man__kicker { color: var(--gw-oro-caldo); justify-content: center; }
.gw-invio__testa { max-width: 58ch; margin: 0 auto 38px; text-align: center; }
.gw-invio__colonna { max-width: 900px; margin-inline: auto; }
.gw-invio .gw-wrap { position: relative; z-index: 1; }

.gw-invio__title {
	font-family: var(--gw-font-serif);
	font-size: clamp(2.5rem, 4vw, 3.2rem);
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: var(--gw-paper);
	margin: 0 0 14px;
}
.gw-invio__title em { font-style: italic; color: var(--gw-oro-caldo); }
.gw-invio__testa > p { color: rgba(252, 251, 247, 0.72); font-size: 1.08rem; line-height: 1.65; }
.gw-invio__alternativa { margin-top: 18px; font-size: var(--gw-text-s); }
.gw-invio__alternativa a { color: var(--gw-oro-caldo); text-decoration: underline; text-underline-offset: 4px; word-break: break-word; }
.gw-invio__alternativa a:hover { color: var(--gw-paper); }
.gw-invio__evviva {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin: 24px 0 0;
	font-family: var(--gw-font-serif);
	font-style: italic;
	font-size: 1.5rem;
	color: var(--gw-oro-caldo);
}
.gw-invio__evviva img { width: 34px; filter: brightness(0) invert(1); opacity: .9; transform: rotate(8deg); }

/* Il foglio */
.gw-invio__form {
	background: var(--gw-paper);
	color: var(--gw-ink);
	padding: clamp(26px, 3.4vw, 44px);
	transform: rotate(-0.5deg);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 16px;
}
@media (max-width: 640px) { .gw-invio__form { grid-template-columns: 1fr; transform: none; } }

.gw-invio__hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.gw-campo { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 7px; }
.gw-campo--mezzo { grid-column: auto; }
@media (max-width: 640px) { .gw-campo--mezzo { grid-column: 1 / -1; } }
.gw-campo label {
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-s);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--gw-ink-72);
}
.gw-campo input[type="text"],
.gw-campo input[type="email"],
.gw-campo input[type="number"],
.gw-campo select,
.gw-campo textarea {
	width: 100%;
	font-family: var(--gw-font-serif);
	font-size: 1.14rem;
	color: var(--gw-ink);
	background: #fff;
	border: 1.5px solid rgba(28, 23, 20, 0.28);
	border-radius: 0;
	padding: 12px 14px;
}
.gw-campo textarea { resize: vertical; min-height: 86px; }
.gw-campo input:focus-visible,
.gw-campo select:focus-visible,
.gw-campo textarea:focus-visible {
	outline: 2px solid var(--gw-primary);
	outline-offset: 1px;
	border-color: var(--gw-primary);
}
.gw-campo ::placeholder { color: var(--gw-ink-50); opacity: 1; font-style: italic; }
.gw-campo__avviso { margin: 0; font-size: var(--gw-text-s); font-weight: 600; color: var(--gw-primary); }

/* Zona di trascinamento: l'input copre tutta l'area, così il click apre
   la scelta file anche senza JavaScript. */
.gw-invio__zona {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	text-align: center;
	padding: 26px 18px;
	border: 2px dashed rgba(28, 23, 20, 0.3);
	background: #fff;
	transition: border-color .15s ease, background .15s ease;
}
.gw-invio__zona input[type="file"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
}
.gw-invio__zona.trascina,
.gw-invio__zona:hover { border-color: var(--gw-ambra); background: rgba(212, 164, 76, 0.07); }
.gw-invio__zona.ha-file { border-style: solid; border-color: rgba(26, 127, 55, 0.5); }
.gw-invio__zona-testo { font-family: var(--gw-font-serif); font-size: 1.18rem; }
.gw-invio__zona-nota { font-size: var(--gw-text-s); color: var(--gw-ink-50); }
.gw-invio__file { list-style: none; margin: 8px 0 0; padding: 0; }
.gw-invio__file li {
	font-size: var(--gw-text-s);
	padding: 5px 0 5px 24px;
	position: relative;
}
.gw-invio__file li::before { content: "✓"; position: absolute; left: 4px; color: #1a7f37; font-weight: 700; }

.gw-invio__conferme { grid-column: 1 / -1; border: 0; margin: 4px 0 0; padding: 16px 0 0; border-top: 1px solid var(--gw-ink-08); display: grid; gap: 12px; }
.gw-invio__conferme label { display: flex; align-items: flex-start; gap: 11px; font-size: 1rem; line-height: 1.5; cursor: pointer; }
.gw-invio__conferme input[type="checkbox"] { width: 19px; height: 19px; flex: none; margin-top: 1px; accent-color: var(--gw-primary); cursor: pointer; }
.gw-invio__conferme a { color: var(--gw-primary); text-decoration: underline; text-underline-offset: 3px; }

.gw-invio__errore {
	grid-column: 1 / -1;
	margin: 0;
	padding: 12px 15px;
	background: rgba(137, 28, 26, 0.09);
	border-left: 3px solid var(--gw-primary);
	color: var(--gw-primary);
	font-weight: 600;
	font-size: var(--gw-text-s);
}
.gw-invio__form .gw-btn { grid-column: 1 / -1; justify-self: start; }
.gw-invio__form .gw-btn:disabled { opacity: .6; cursor: wait; }
.gw-invio__noscript { grid-column: 1 / -1; margin: 0; font-size: var(--gw-text-s); color: var(--gw-ink-50); }

/* Conferma e finestra chiusa */
.gw-invio__fatto { grid-column: 1 / -1; text-align: center; padding: clamp(20px, 4vw, 50px) 10px; }
.gw-invio__fatto img { width: 58px; transform: rotate(8deg); margin-bottom: 14px; }
.gw-invio__fatto-titolo { font-family: var(--gw-font-serif); font-size: 1.7rem; margin: 0 0 8px; }
.gw-invio__chiuso { text-align: center; padding: clamp(34px, 5vw, 64px) 24px; }
.gw-invio__chiuso img { width: 58px; transform: rotate(8deg); margin-bottom: 14px; }
.gw-invio__chiuso p { margin: 0 0 6px; color: var(--gw-ink-72); }

/* --- Apertura manoscritti su due colonne ------------------------------
   Metà schermo restava vuoto: a destra vanno i dati pratici, a sinistra la
   voce dell'editore. */
.gw-man__hero-griglia {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	align-items: center;
	gap: clamp(28px, 5vw, 72px);
}
@media (max-width: 900px) {
	.gw-man__hero-griglia { grid-template-columns: 1fr; gap: 38px; }
}
.gw-man__hero-inner { max-width: 620px; margin-inline: 0; }

/* Scheda dei dati pratici: leggermente storta, come un foglio appoggiato */
.gw-man__scheda {
	position: relative;
	background: var(--hero-vetro);
	border: 1.5px solid var(--hero-filo);
	padding: clamp(24px, 3vw, 34px);
	transform: rotate(1deg);
	backdrop-filter: blur(2px);
}
.gw-man__scheda-titolo {
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-xs);
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--hero-accento);
	margin: 0 0 20px;
}
.gw-man__scheda dl { margin: 0; }
.gw-man__scheda dl > div {
	padding: 13px 0;
	border-bottom: 1px solid var(--hero-filo-fine);
}
.gw-man__scheda dl > div:last-of-type { border-bottom: 0; }
.gw-man__scheda dt {
	font-family: var(--gw-font-sans);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--hero-tenue);
	margin-bottom: 5px;
}
.gw-man__scheda dd {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-size: 1.15rem;
	line-height: 1.3;
	color: var(--hero-testo);
	word-break: break-word;
}
.gw-man__scheda dd a { color: var(--hero-accento); text-decoration: underline; text-underline-offset: 4px; }
.gw-man__scheda dd a:hover { color: var(--hero-testo); }
.gw-man__scheda-ps {
	margin: 18px 0 0;
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-s);
	line-height: 1.5;
	color: var(--hero-tenue);
}

/* Il topo grande passa dietro la scheda, più a sinistra e più visibile */
.gw-man__topo-grande {
	right: auto;
	left: 52%;
	bottom: -18%;
	width: clamp(200px, 24vw, 340px);
	opacity: .1;
	transform: rotate(-9deg);
}
@media (max-width: 900px) { .gw-man__topo-grande { left: auto; right: -6%; opacity: .08; } }

/* --- Correzione: la tendina dell'ultima voce sbordava a destra --------- */
.gw-nav .sub-menu { left: auto; right: 0; }
@media (max-width: 860px) { .gw-nav .sub-menu { right: auto; left: 0; } }


/* --- Ebook riservato: la porticina in fondo alla scheda libro ----------- */
/* Chi ha il libro sa di doverla cercare; per tutti gli altri è una riga. */
.gw-ebook-riserva { background: var(--gw-paper); border-top: 1px solid var(--gw-ink-08); }
.gw-ebook-riserva__details { max-width: 680px; margin-inline: auto; padding: 26px 0 34px; }
.gw-ebook-riserva__details summary {
	cursor: pointer;
	list-style: none;
	text-align: center;
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-s);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gw-ink-50);
}
.gw-ebook-riserva__details summary::-webkit-details-marker { display: none; }
.gw-ebook-riserva__details summary::after { content: " ↓"; }
.gw-ebook-riserva__details[open] summary::after { content: " ↑"; }
.gw-ebook-riserva__details summary:hover { color: var(--gw-primary); }
.gw-ebook-riserva__details[open] summary { margin-bottom: 18px; color: var(--gw-ink); }

/* ═══════════════ Scheda libro: il palco (dal modello di Linda) ═════════ */
/* Hero bianco per staccare dal resto del sito su carta. Tutto centrato:
   titolo monumentale, libro in prospettiva su alone dorato, citazione a
   sinistra, scheda tecnica a destra. */
.gw-teatro {
	position: relative;
	overflow: hidden;
	background: #fff;
	border-bottom: 1px solid var(--gw-ink-08);
	padding: clamp(40px, 5vw, 72px) 0 clamp(48px, 6vw, 84px);
}
.gw-teatro__inner { position: relative; z-index: 1; }
.gw-teatro__parola {
	position: absolute;
	left: 50%;
	top: clamp(24px, 4vw, 60px);
	transform: translateX(-50%);
	font-family: var(--gw-font-serif);
	font-style: italic;
	font-weight: 700;
	font-size: clamp(8rem, 21vw, 17rem);
	line-height: 1;
	color: rgba(137, 28, 26, 0.07);
	pointer-events: none;
	user-select: none;
	white-space: nowrap;
}
.gw-teatro__kicker {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 14px;
	margin: 0 0 18px;
	font-family: var(--gw-font-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--gw-ink-50);
}
.gw-teatro__kicker a { color: inherit; text-decoration: none; }
.gw-teatro__kicker a:hover { color: var(--gw-primary); }
.gw-teatro__genere { color: var(--gw-ambra); }
.gw-teatro__rombo { color: var(--gw-oro-caldo); font-size: 10px; letter-spacing: 0; }
.gw-teatro__title {
	margin: 0;
	text-align: center;
	font-family: var(--gw-font-serif);
	font-weight: 400;
	font-size: clamp(3.2rem, 8.6vw, 7rem);
	line-height: 0.98;
	letter-spacing: -0.02em;
	color: var(--gw-ink);
	text-wrap: balance;
	/* I titoli lunghi vanno a capo su due righe bilanciate, come nel mockup. */
	max-width: 14ch;
	margin-inline: auto;
}
.gw-teatro__title i { font-style: italic; color: var(--gw-primary); }
.gw-teatro__autori {
	margin: 22px 0 0;
	text-align: center;
	font-family: var(--gw-font-sans);
	font-size: 1.15rem;
	color: var(--gw-ink-60);
}
.gw-teatro__autori a {
	font-family: var(--gw-font-serif);
	font-style: italic;
	font-size: 1.3rem;
	color: var(--gw-ink);
	text-decoration: none;
	border-bottom: 1px solid rgba(212, 164, 76, 0.6);
}
.gw-teatro__autori a:hover { color: var(--gw-primary); }

/* Il palco a tre presenze */
.gw-teatro__palco {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 330px) minmax(0, 1fr);
	align-items: center;
	gap: clamp(28px, 4vw, 64px);
	margin-top: clamp(36px, 5vw, 64px);
}
.gw-teatro__quote { margin: 0; max-width: 340px; justify-self: end; }
.gw-teatro__virgola {
	display: block;
	font-family: var(--gw-font-serif);
	font-weight: 700;
	font-size: 64px;
	line-height: 0.5;
	color: var(--gw-oro-caldo);
	margin-bottom: 14px;
}
.gw-teatro__quote p {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-style: italic;
	font-size: 1.12rem;
	line-height: 1.55;
	color: var(--gw-ink-80);
}

/* Libro in prospettiva su alone dorato */
.gw-teatro__libro { position: relative; display: flex; justify-content: center; }
/* Il filo verticale che scende dal libro fino al bordo della sezione. */
.gw-teatro__libro::after {
	content: "";
	position: absolute;
	left: 50%;
	top: calc(100% + 30px);
	width: 1.5px;
	height: 400px; /* tanto: ci pensa l'overflow hidden dell'hero a tagliarlo */
	background: var(--gw-primary);
}
.gw-teatro__alone {
	position: absolute;
	left: 50%;
	top: 50%;
	width: clamp(300px, 34vw, 440px);
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(217, 171, 92, 0.3), rgba(217, 171, 92, 0.08) 62%, transparent 72%);
	pointer-events: none;
}

/* Il libro 3D: fronte, retro e taglio pagine su tre piani veri. */
/* Lo spessore del dorso lo fanno le PAGINE, non la rilegatura: i template
   passano --fogli (numero derivato da numero_pagine, via gw_l3d_stile).
   Senza dato resta il default 42. */
.gw-l3d { --fogli: 42; --spess: calc(var(--fogli) * 1px); position: relative; display: inline-block; perspective: 1400px; }
.gw-l3d--sm { --spess: calc(var(--fogli) * 0.72px); }
/* Cartonato: solo il look — assi squadrate che sporgono sulle pagine. */
.gw-l3d--cartonato .gw-l3d__box img {
	border-radius: 1px 4px 4px 1px;
	box-shadow: 0 0 0 1.5px rgba(0, 0, 0, 0.35);
}
.gw-l3d--cartonato .gw-l3d__box::before { border-radius: 1px 4px 4px 1px; }
.gw-l3d--cartonato .gw-l3d__box::after {
	top: 7px;
	bottom: 7px;
	right: 3px;
	background: repeating-linear-gradient(to right, #f6f1e4 0 2px, #d8cfb8 2px 3px);
}
.gw-l3d--sm.gw-l3d--cartonato .gw-l3d__box::after { top: 4px; bottom: 4px; right: 2px; }
.gw-l3d__box {
	position: relative;
	display: block;
	transform-style: preserve-3d;
	transform: rotateY(-21deg);
}
.gw-l3d__box img {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	border-radius: 2px 6px 6px 2px;
	transform: translateZ(var(--spess));
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.28);
}
.gw-l3d__box::before {
	/* retro */
	content: "";
	position: absolute;
	inset: 0;
	background: #160507;
	border-radius: 2px 5px 5px 2px;
	transform: translateZ(calc(-1 * var(--spess)));
}
.gw-l3d__box::after {
	/* taglio delle pagine, lato destro */
	content: "";
	position: absolute;
	top: 2px;
	bottom: 2px;
	right: 0;
	width: calc(var(--spess) * 2);
	background: repeating-linear-gradient(to right, #f2ecdd 0 2px, #ddd4bf 2px 3px);
	transform: rotateY(90deg) translateZ(var(--spess));
}
.gw-l3d__ombra {
	position: absolute;
	left: 50%;
	bottom: calc(-1 * clamp(14px, 2vw, 22px));
	width: 85%;
	height: 26px;
	transform: translateX(-50%);
	background: radial-gradient(ellipse closest-side, rgba(10, 5, 5, 0.35), transparent);
	filter: blur(5px);
	pointer-events: none;
}

/* Scheda tecnica + acquisto */
.gw-teatro__scheda { max-width: 300px; width: 100%; }
.gw-teatro__dati { margin: 0; }
.gw-teatro__dati > div { display: flex; align-items: baseline; gap: 18px; padding: 4px 0; margin: 0; }
.gw-teatro__dati dd { line-height: 1.25; }
.gw-teatro__dati dt {
	flex: 0 0 64px;
	font-family: var(--gw-font-sans);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gw-ink-50);
}
.gw-teatro__dati dd { margin: 0; font-family: var(--gw-font-serif); font-size: 1.12rem; color: var(--gw-ink); }
.gw-teatro__acquisto { margin-top: 16px; padding-top: 20px; border-top: 1px solid rgba(28, 23, 20, 0.14); }
.gw-teatro__prezzo {
	margin: 0 0 14px;
	font-family: var(--gw-font-serif);
	font-size: 2.6rem;
	line-height: 1;
	color: var(--gw-primary);
}
.gw-teatro__compra { width: 100%; text-align: center; }
.gw-teatro__esterno { width: 100%; text-align: center; margin-top: 10px; }

@media (max-width: 1020px) {
	.gw-teatro__palco { grid-template-columns: 1fr; justify-items: center; gap: 40px; }
	.gw-teatro__libro { order: -1; }
	.gw-teatro__libro::after { display: none; }
	.gw-teatro__libro .gw-l3d { width: min(270px, 76vw); }
	.gw-teatro__quote { justify-self: center; text-align: center; }
	.gw-teatro__scheda { max-width: 360px; }
}

/* La storia: impaginato editoriale */
.gw-storia { background: var(--gw-paper); padding-block: clamp(52px, 7vw, 88px); }
.gw-storia__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(30px, 5vw, 76px);
	align-items: start;
}
@media (max-width: 880px) { .gw-storia__grid { grid-template-columns: 1fr; } }
.gw-storia__kicker {
	margin: 0 0 14px;
	font-family: var(--gw-font-sans);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gw-ambra);
}
.gw-storia__h2 {
	margin: 0 0 18px;
	font-family: var(--gw-font-serif);
	font-weight: 400;
	font-size: clamp(2.3rem, 3.6vw, 3rem);
	line-height: 1.08;
	letter-spacing: -0.01em;
	color: var(--gw-ink);
}
.gw-storia__lead {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-style: italic;
	font-size: 1.28rem;
	line-height: 1.5;
	color: var(--gw-ambra);
}
.gw-storia__corpo { font-size: 1.09rem; line-height: 1.75; color: var(--gw-ink-80); }
.gw-storia__corpo p { margin: 0 0 1.2em; }
.gw-storia__corpo p:last-child { margin-bottom: 0; }
.gw-storia__corpo.ha-capolettera > p:first-child::first-letter {
	float: left;
	font-family: var(--gw-font-serif);
	font-size: 4.6rem;
	line-height: 0.8;
	padding: 6px 10px 0 0;
	color: var(--gw-primary);
}

/* La firma dell'autore */
.gw-firma { background: var(--gw-paper); border-top: 1px solid var(--gw-ink-08); padding-block: clamp(44px, 6vw, 72px); }
.gw-firma__grid { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: clamp(22px, 3.5vw, 48px); align-items: center; }
@media (max-width: 760px) { .gw-firma__grid { grid-template-columns: auto 1fr; } .gw-firma__link { grid-column: 2; } }
.gw-firma__avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: clamp(84px, 9vw, 115px);
	aspect-ratio: 1;
	border-radius: 50%;
	border: 1px solid var(--gw-oro-caldo);
	background: #fff;
	font-family: var(--gw-font-serif);
	font-size: clamp(1.9rem, 2.6vw, 2.4rem);
	color: var(--gw-ambra);
}
.gw-firma__nome { margin: 0 0 8px; font-family: var(--gw-font-serif); font-weight: 400; font-size: clamp(2.1rem, 3vw, 2.5rem); }
.gw-firma__bio { margin: 0; max-width: 82ch; font-size: 1.02rem; line-height: 1.65; color: var(--gw-ink-72); }
.gw-firma__link { white-space: nowrap; }

/* Correlati sul palco */
.gw-palco-correlati { background: var(--gw-paper); border-top: 1px solid var(--gw-ink-08); padding-block: clamp(52px, 7vw, 88px); }
.gw-palco-correlati__testa { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: clamp(40px, 6vw, 70px); }
.gw-palco-correlati__h2 { margin: 0; font-family: var(--gw-font-serif); font-weight: 400; font-size: clamp(2.3rem, 3.6vw, 2.9rem); letter-spacing: -0.01em; }
.gw-palco-correlati__fila {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(24px, 3vw, 44px);
}
@media (max-width: 900px) { .gw-palco-correlati__fila { grid-template-columns: 1fr; row-gap: 64px; } }
.gw-card3d { text-align: center; }
.gw-card3d__cover { display: inline-block; }
.gw-card3d__cover--piatta img {
	display: block;
	width: min(190px, 60vw);
	height: auto;
	border-radius: 2px;
	box-shadow: 0 14px 30px rgba(28, 23, 20, 0.22);
	transition: transform .25s ease, box-shadow .25s ease;
}
.gw-card3d:hover .gw-card3d__cover--piatta img {
	transform: translateY(-8px);
	box-shadow: 0 24px 44px rgba(28, 23, 20, 0.28);
}
.gw-card3d__titolo { margin: 26px 0 4px; font-family: var(--gw-font-serif); font-weight: 400; font-size: 1.2rem; }
.gw-card3d__titolo a { color: var(--gw-ink); text-decoration: none; }
.gw-card3d__titolo a:hover { color: var(--gw-primary); }
.gw-card3d__autore { margin: 0 0 10px; font-family: var(--gw-font-sans); font-style: italic; font-size: 0.9rem; color: var(--gw-ink-60); }
.gw-card3d__autore a { color: inherit; text-decoration: none; }
.gw-card3d__link {
	font-family: var(--gw-font-sans);
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--gw-primary);
	text-decoration: none;
}
.gw-card3d__link:hover { text-decoration: underline; text-underline-offset: 4px; }

/* ═══════════════ Chi siamo (impianto dal design di Linda) ══════════════ */
/* Apertura scura col 2013 gigante, foto in cornice dorata storta e badge
   del motto appoggiato sopra. */
.gw-chi__hero {
	position: relative;
	overflow: hidden;
	background: var(--gw-base);
	color: var(--gw-on-dark);
	padding-block: clamp(56px, 8vw, 110px);
}
.gw-chi__anno {
	position: absolute;
	right: -4vw;
	top: -6vw;
	font-family: var(--gw-font-serif);
	font-size: clamp(14rem, 30vw, 30rem);
	line-height: 0.8;
	color: rgba(212, 164, 76, 0.07);
	pointer-events: none;
	user-select: none;
}
.gw-chi__hero-grid {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: clamp(36px, 6vw, 88px);
	align-items: center;
}
@media (max-width: 900px) { .gw-chi__hero-grid { grid-template-columns: 1fr; } }
.gw-chi__kicker {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 26px;
	font-family: var(--gw-font-sans);
	font-size: var(--gw-text-s);
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gw-oro-caldo);
}
.gw-chi__filo { height: 1px; width: 38px; background: var(--gw-oro-caldo); flex: none; }
.gw-chi__title {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-weight: 400;
	font-size: clamp(3rem, 6.6vw, 6.4rem);
	line-height: 0.98;
	letter-spacing: -0.025em;
	color: var(--gw-paper);
	max-width: 14ch;
}
.gw-chi__title em { font-style: italic; color: var(--gw-oro-caldo); }
.gw-chi__intro {
	margin: 26px 0 0;
	max-width: 56ch;
	font-size: 1.05rem;
	line-height: 1.75;
	color: rgba(252, 251, 247, 0.72);
}
.gw-chi__missione {
	margin: 18px 0 0;
	max-width: 48ch;
	font-family: var(--gw-font-serif);
	font-style: italic;
	font-size: clamp(1.15rem, 1.6vw, 1.4rem);
	line-height: 1.45;
	color: var(--gw-oro-caldo);
}
.gw-chi__cta { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 34px; }
.gw-chi__btn-chiaro { border-color: rgba(252, 251, 247, 0.35); color: var(--gw-paper); }
.gw-chi__btn-chiaro:hover { border-color: var(--gw-oro-caldo); color: var(--gw-oro-caldo); }

/* La foto (o il topo di guardia) nella cornice doppia */
.gw-chi__ritratto { position: relative; transform: rotate(2deg); }
.gw-chi__cornice {
	position: absolute;
	inset: 0;
	transform: translate(14px, 14px);
	border: 1px solid rgba(212, 164, 76, 0.5);
	border-radius: 3px;
	pointer-events: none;
}
.gw-chi__foto {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	max-height: 560px;
	object-fit: cover;
	border: 1px solid rgba(212, 164, 76, 0.35);
	border-radius: 3px;
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.45);
}
.gw-chi__foto--topo {
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(252, 251, 247, 0.05);
}
.gw-chi__foto--topo img { width: 46%; opacity: .8; filter: brightness(0) invert(1); transform: rotate(4deg); }
.gw-chi__badge {
	position: absolute;
	left: -22px;
	bottom: 30px;
	background: var(--gw-primary);
	border-radius: 4px;
	padding: 16px 22px;
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.4);
	transform: rotate(-2deg);
	font-family: var(--gw-font-serif);
	font-style: italic;
	font-size: 1.3rem;
	line-height: 1.2;
	color: var(--gw-paper);
}
@media (max-width: 900px) { .gw-chi__badge { left: 8px; } }

/* ─────────────── Pilastri sfalsati coi numeri a contorno ─────────────── */
.gw-chi__pilastri { background: var(--gw-paper); border-top: 1px solid var(--gw-ink-08); padding-block: clamp(56px, 7vw, 96px); }
.gw-chi__pilastri-testa { max-width: 820px; margin-bottom: clamp(40px, 5vw, 64px); }
.gw-chi__h2 {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-weight: 400;
	font-size: clamp(2.4rem, 4.8vw, 4.2rem);
	line-height: 1.02;
	letter-spacing: -0.02em;
}
.gw-chi__tre { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, 3.4vw, 56px); align-items: start; }
@media (max-width: 860px) { .gw-chi__tre { grid-template-columns: 1fr; } }
.gw-chi__pilastro {
	position: relative;
	padding-top: clamp(70px, 7vw, 110px);
	/* Ogni pilastro scende un gradino piu' del precedente. */
	margin-top: calc(var(--scalino, 0) * clamp(28px, 3.4vw, 56px));
}
@media (max-width: 860px) { .gw-chi__pilastro { margin-top: 0; } }
.gw-chi__numero {
	position: absolute;
	left: -8px;
	top: 0;
	font-family: var(--gw-font-serif);
	font-size: clamp(5rem, 8vw, 8rem);
	line-height: 0.8;
	color: transparent;
	pointer-events: none;
}
.gw-chi__pilastro--oro .gw-chi__numero { -webkit-text-stroke: 1px rgba(168, 116, 19, 0.55); }
.gw-chi__pilastro--rosso .gw-chi__numero { -webkit-text-stroke: 1px rgba(137, 28, 26, 0.55); }
.gw-chi__pilastro--inchiostro .gw-chi__numero { -webkit-text-stroke: 1px rgba(28, 23, 20, 0.5); }
.gw-chi__barra { display: block; width: 56px; height: 4px; margin-bottom: 20px; }
.gw-chi__pilastro--oro .gw-chi__barra { background: var(--gw-ambra); }
.gw-chi__pilastro--rosso .gw-chi__barra { background: var(--gw-primary); }
.gw-chi__pilastro--inchiostro .gw-chi__barra { background: var(--gw-ink); }
.gw-chi__pilastro h3 {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-weight: 400;
	font-size: clamp(1.7rem, 2.2vw, 2rem);
	line-height: 1.1;
}
.gw-chi__pilastro p { margin: 12px 0 0; font-size: 1rem; line-height: 1.7; color: var(--gw-ink-72); }

/* ─────────────── Le due card: posizione e riconoscimenti ─────────────── */
.gw-chi__card { background: var(--gw-paper); padding-block: clamp(56px, 7vw, 96px); }
.gw-chi__card .gw-wrap { display: flex; flex-direction: column; gap: clamp(24px, 3vw, 36px); }
.gw-chi__posizione,
.gw-chi__premio {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: clamp(20px, 3vw, 40px);
	align-items: start;
	border-radius: 4px;
	padding: clamp(28px, 3.4vw, 46px);
}
.gw-chi__posizione {
	background: var(--gw-base);
	color: var(--gw-on-dark);
	box-shadow: 0 24px 50px rgba(10, 10, 10, 0.22);
	transform: rotate(-0.4deg);
}
.gw-chi__posizione svg { color: var(--gw-oro-caldo); }
.gw-chi__posizione h2 { color: var(--gw-paper); }
.gw-chi__posizione p { color: rgba(252, 251, 247, 0.7); }
.gw-chi__premio {
	background: #fff;
	border: 1px solid rgba(168, 116, 19, 0.35);
	border-left: 4px solid var(--gw-ambra);
	transform: rotate(0.4deg);
}
.gw-chi__premio svg { color: var(--gw-ambra); }
.gw-chi__card-kicker {
	margin: 0 0 10px;
	font-family: var(--gw-font-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--gw-oro-caldo);
}
.gw-chi__premio .gw-chi__card-kicker { color: var(--gw-ambra); }
.gw-chi__posizione h2,
.gw-chi__premio h2 {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-weight: 400;
	font-size: clamp(1.7rem, 2.8vw, 2.3rem);
	line-height: 1.15;
	letter-spacing: -0.01em;
}
.gw-chi__posizione p,
.gw-chi__premio p { margin: 12px 0 0; max-width: 78ch; font-size: 1rem; line-height: 1.7; }
.gw-chi__premio p { color: var(--gw-ink-72); }
.gw-chi__congedo {
	margin: 8px 0 0;
	text-align: center;
	font-family: var(--gw-font-serif);
	font-size: 1.25rem;
}
.gw-chi__congedo a { color: var(--gw-primary); text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 640px) {
	.gw-chi__posizione, .gw-chi__premio { grid-template-columns: 1fr; transform: none; }
}

/* --- Form contatti: foglio bianco dentro la pagina ---------------------- */
.gw-contatti-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px 16px;
	background: #fff;
	border: 1.5px solid rgba(28, 23, 20, 0.16);
	padding: clamp(24px, 3vw, 38px);
	margin-block: 34px;
	transform: rotate(-0.4deg);
}
@media (max-width: 640px) { .gw-contatti-form { grid-template-columns: 1fr; transform: none; } }
.gw-contatti-form .gw-btn { grid-column: 1 / -1; justify-self: start; }
.gw-contatti-form .gw-btn:disabled { opacity: .6; cursor: wait; }

/* ═══════════════ Archivio Box (impianto dal design di Linda) ═══════════ */
/* Hero mogano: un marrone-borgogna caldo che sta tra il bordeaux e il nero. */
.gw-boxhero {
	position: relative;
	overflow: hidden;
	background: #33171b;
	color: var(--gw-on-dark);
	padding: clamp(48px, 6vw, 92px) 0 clamp(44px, 5.5vw, 76px);
}
.gw-boxhero__filigrana {
	position: absolute;
	right: 1vw;
	top: -6vw;
	font-family: var(--gw-font-serif);
	font-size: clamp(14rem, 28vw, 30rem);
	line-height: 0.8;
	letter-spacing: -0.04em;
	color: rgba(252, 251, 247, 0.05);
	pointer-events: none;
	user-select: none;
}
.gw-boxhero .gw-wrap { position: relative; }
.gw-boxhero__briciole {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 22px;
	font-family: var(--gw-font-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(252, 251, 247, 0.5);
}
.gw-boxhero__briciole a { color: rgba(252, 251, 247, 0.5); text-decoration: none; }
.gw-boxhero__briciole a:hover { color: var(--gw-oro-caldo); }
.gw-boxhero__briciole span[aria-hidden] { color: var(--gw-oro-caldo); }
.gw-boxhero__qui { color: var(--gw-oro-caldo); }
.gw-boxhero__title {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-weight: 400;
	font-size: clamp(3.6rem, 8vw, 7.4rem);
	line-height: 0.95;
	letter-spacing: -0.03em;
	color: var(--gw-paper);
}
.gw-boxhero__intro {
	max-width: 54ch;
	margin-top: 20px;
	font-size: 1.05rem;
	line-height: 1.7;
	color: rgba(252, 251, 247, 0.78);
}
.gw-boxhero__intro em, .gw-boxhero__intro i { color: var(--gw-oro-caldo); }

/* Griglia delle box */
.gw-boxgriglia { background: var(--gw-paper); padding-block: clamp(44px, 5.5vw, 80px); }
.gw-boxgriglia__fila {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(24px, 3vw, 40px);
	align-items: stretch;
}
@media (max-width: 760px) { .gw-boxgriglia__fila { grid-template-columns: 1fr; } }
.gw-boxcard {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid rgba(28, 23, 20, 0.14);
	border-radius: 4px;
	overflow: hidden;
	box-shadow: 0 12px 30px rgba(28, 23, 20, 0.06);
	transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease, border-color .35s ease;
}
.gw-boxcard:hover {
	transform: translateY(-6px);
	box-shadow: 0 26px 50px rgba(28, 23, 20, 0.14);
	border-color: rgba(168, 116, 19, 0.55);
}
.gw-boxcard__cover { position: relative; display: block; aspect-ratio: 1 / 1; background: #1c1714; overflow: hidden; }
.gw-boxcard__cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.gw-boxcard__bollino {
	position: absolute;
	left: 0;
	bottom: 0;
	padding: 8px 14px;
	background: var(--gw-primary);
	color: var(--gw-paper);
	font-family: var(--gw-font-sans);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}
.gw-boxcard__corpo { display: flex; flex-direction: column; flex: 1; padding: clamp(20px, 2.2vw, 26px); }
.gw-boxcard__tag { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.gw-boxcard__tag a {
	display: inline-flex;
	align-items: center;
	padding: 5px 11px;
	border-radius: 999px;
	border: 1px solid rgba(28, 23, 20, 0.16);
	font-family: var(--gw-font-sans);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gw-ink-60);
	text-decoration: none;
}
.gw-boxcard__tag a:hover { border-color: var(--gw-ambra); color: var(--gw-ambra); }
.gw-boxcard__titolo { margin: 0; font-family: var(--gw-font-serif); font-weight: 400; font-size: clamp(1.4rem, 1.8vw, 1.7rem); line-height: 1.2; }
.gw-boxcard__titolo a { color: var(--gw-ink); text-decoration: none; }
.gw-boxcard__titolo a:hover { color: var(--gw-primary); }
.gw-boxcard__autore { margin: 9px 0 0; font-family: var(--gw-font-sans); font-style: italic; font-size: 0.95rem; color: var(--gw-ink-60); }
.gw-boxcard__autore a { color: inherit; text-decoration: none; }
.gw-boxcard__estratto { margin: 14px 0 0; font-size: 0.98rem; line-height: 1.65; color: var(--gw-ink-72); text-wrap: pretty; }
.gw-boxcard__link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-top: auto;
	padding-top: 20px;
	font-family: var(--gw-font-sans);
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--gw-primary);
	text-decoration: none;
}
.gw-boxcard__link:hover { text-decoration: underline; text-underline-offset: 4px; }
.gw-boxgriglia__vuoto { font-family: var(--gw-font-serif); font-size: 1.4rem; }

/* Tiratura limitata anche nella scheda del libro */
.gw-teatro__limitata { color: var(--gw-primary); font-style: italic; }

/* --- Libreria: la vetrina di ciò che si compra da noi ------------------ */
/* "Libreria" è lunga il triplo di "Box": filigrana in taglia ridotta.     */
.gw-boxhero--libreria .gw-boxhero__filigrana { font-size: clamp(6.5rem, 16vw, 18rem); top: -3vw; }
.gw-boxcard__azioni {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px 20px;
	margin-top: auto;
	padding-top: 20px;
}
.gw-boxcard__azioni .gw-boxcard__link { margin-top: 0; padding-top: 0; }

/* --- Archivio Catalogo: gemello inchiostro della pagina Box ------------- */
.gw-boxhero--inchiostro { background: var(--gw-base); }
.gw-boxhero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: clamp(36px, 6vw, 80px);
	align-items: end;
}
@media (max-width: 860px) { .gw-boxhero__grid { grid-template-columns: 1fr; } }
.gw-boxhero__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(14px, 2vw, 24px);
	margin: 0;
	border-top: 1px solid rgba(212, 164, 76, 0.45);
	padding-top: clamp(20px, 2.4vw, 30px);
}
.gw-boxhero__stats dd {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-size: clamp(2.4rem, 3.6vw, 3.4rem);
	line-height: 1;
	color: var(--gw-oro-caldo);
}
.gw-boxhero__stats dt {
	margin-top: 10px;
	font-family: var(--gw-font-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(252, 251, 247, 0.55);
}

/* Rimando alle Box in fondo al catalogo: fascia mogano */
.gw-rimandobox { background: #33171b; color: var(--gw-on-dark); padding-block: clamp(56px, 7vw, 100px); }
.gw-rimandobox__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: clamp(32px, 5vw, 72px);
	align-items: center;
}
@media (max-width: 820px) { .gw-rimandobox__grid { grid-template-columns: 1fr; } }
.gw-rimandobox__kicker {
	margin: 0 0 16px;
	font-family: var(--gw-font-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--gw-oro-caldo);
}
.gw-rimandobox__h2 {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-weight: 400;
	font-size: clamp(2.2rem, 3.6vw, 3rem);
	line-height: 1.08;
	letter-spacing: -0.01em;
	color: var(--gw-paper);
}
.gw-rimandobox__h2 em { font-style: italic; color: var(--gw-oro-caldo); }
.gw-rimandobox__btn { margin-top: 28px; }
.gw-rimandobox__vie { border-top: 1px solid rgba(212, 164, 76, 0.45); }
.gw-rimandobox__vie a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 0;
	border-bottom: 1px solid rgba(252, 251, 247, 0.16);
	text-decoration: none;
	font-family: var(--gw-font-serif);
	font-size: clamp(1.05rem, 1.4vw, 1.25rem);
	color: var(--gw-paper);
	transition: padding-left .25s ease;
}
.gw-rimandobox__vie a:last-child { border-bottom: 0; }
.gw-rimandobox__vie a:hover { padding-left: 8px; color: var(--gw-oro-caldo); }
.gw-rimandobox__vie a span[aria-hidden] { color: var(--gw-oro-caldo); }

/* --- Ordinamento del catalogo ------------------------------------------- */
.gw-ordina { display: flex; align-items: center; gap: 10px; flex: none; }
.gw-ordina label {
	font-family: var(--gw-font-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gw-ink-50);
}
.gw-ordina select {
	padding: 10px 14px;
	background: #fff;
	border: 1px solid rgba(28, 23, 20, 0.2);
	border-radius: 3px;
	font-family: var(--gw-font-sans);
	font-size: 13.5px;
	font-weight: 500;
	color: var(--gw-ink);
	cursor: pointer;
}
.gw-ordina select:focus-visible { outline: 2px solid var(--gw-primary); outline-offset: 1px; }
.gw-ordina__applica {
	padding: 10px 14px;
	border: 1px solid rgba(28, 23, 20, 0.2);
	border-radius: 3px;
	background: #fff;
	font-family: var(--gw-font-sans);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}

/* --- Richiamo ebook nella scheda d'acquisto ----------------------------- */
.gw-teatro__ebook {
	display: block;
	margin-top: 14px;
	font-family: var(--gw-font-sans);
	font-size: 0.92rem;
	line-height: 1.45;
	color: var(--gw-ink-72);
	text-decoration: none;
	text-align: center;
}
.gw-teatro__ebook strong { color: var(--gw-primary); border-bottom: 1.5px solid rgba(212, 164, 76, 0.6); }
.gw-teatro__ebook:hover strong { color: var(--gw-secondary); }

/* --- La striscia delle parole del mondo --------------------------------- */
/* Tra l'hero bianco e la storia: corsivi serif separati da rombi oro,
   una parola eventualmente accesa in bordeaux. */
.gw-parole { background: #fff; border-top: 1px solid var(--gw-ink-08); padding-block: clamp(20px, 2.6vw, 32px); }
.gw-parole__fila {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: 12px clamp(18px, 2.6vw, 34px);
}
.gw-parole__voce {
	font-family: var(--gw-font-serif);
	font-style: italic;
	font-size: clamp(1.15rem, 1.8vw, 1.55rem);
	color: var(--gw-ink-80);
	white-space: nowrap;
}
.gw-parole__voce--accesa { color: var(--gw-primary); }
.gw-parole__rombo { color: var(--gw-oro-caldo); font-size: 11px; }

/* Il <picture> delle varianti mobile non deve introdurre spazi da inline. */
.gw-slider__slide picture, .gw-banner picture { display: block; }

/* --- Ritratti degli autori ---------------------------------------------- */
.gw-firma__avatar--foto { overflow: hidden; padding: 0; }
.gw-firma__avatar--foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gw-archive-head--con-foto { display: flex; align-items: center; gap: clamp(20px, 3vw, 36px); }
.gw-archive-head__foto {
	flex: none;
	width: clamp(96px, 11vw, 140px);
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
	border: 1px solid var(--gw-oro-caldo);
}
.gw-archive-head__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ═══════════════ Pagina 404: il topo affamato ══════════════════════════ */
.gw-404__hero {
	position: relative;
	overflow: hidden;
	background: var(--gw-paper);
	padding-block: clamp(48px, 7vw, 96px);
}
.gw-404__cifra {
	position: absolute;
	left: 42%;
	top: 50%;
	transform: translateY(-50%);
	font-family: var(--gw-font-serif);
	font-size: clamp(16rem, 34vw, 34rem);
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1.5px rgba(28, 23, 20, 0.08);
	pointer-events: none;
	user-select: none;
}
.gw-404__grid {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: clamp(36px, 6vw, 90px);
	align-items: start;
}
@media (max-width: 860px) { .gw-404__grid { grid-template-columns: 1fr; } }
.gw-404__title {
	margin: 0 0 20px;
	font-family: var(--gw-font-serif);
	font-weight: 400;
	font-size: clamp(2.8rem, 6vw, 5rem);
	line-height: 1;
	letter-spacing: -0.025em;
}
.gw-404__title em { display: block; font-style: italic; color: var(--gw-primary); }
.gw-404__testo { margin: 0; max-width: 44ch; font-family: var(--gw-font-serif); font-size: 1.2rem; line-height: 1.6; color: var(--gw-ink-80); }
.gw-404__invito { margin: 18px 0 12px; font-size: 1rem; color: var(--gw-ink-60); }
.gw-404__cerca { display: flex; gap: 0; max-width: 480px; }
.gw-404__cerca input {
	flex: 1;
	min-width: 0;
	padding: 13px 16px;
	background: #fff;
	border: 1.5px solid rgba(28, 23, 20, 0.25);
	border-right: 0;
	font-family: var(--gw-font-sans);
	font-size: 15px;
}
.gw-404__cerca input:focus-visible { outline: 2px solid var(--gw-primary); outline-offset: -1px; }

.gw-404__vie-kicker {
	margin: 0 0 6px;
	font-family: var(--gw-font-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--gw-primary);
}
.gw-404__vie a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 0;
	border-bottom: 1px solid rgba(28, 23, 20, 0.14);
	text-decoration: none;
	color: var(--gw-ink);
	transition: padding-left .25s ease;
}
.gw-404__vie a:hover { padding-left: 8px; }
.gw-404__vie a:hover strong { color: var(--gw-primary); }
.gw-404__vie strong { display: block; font-family: var(--gw-font-serif); font-weight: 400; font-size: 1.35rem; }
.gw-404__vie small { display: block; margin-top: 4px; font-size: 0.88rem; color: var(--gw-ink-60); }
.gw-404__vie a span[aria-hidden] { color: var(--gw-oro-caldo); font-size: 1.2rem; }
.gw-404__indietro {
	margin-top: 22px;
	padding: 12px 20px;
	background: transparent;
	border: 1px solid rgba(137, 28, 26, 0.4);
	border-radius: 3px;
	font-family: var(--gw-font-sans);
	font-size: 14px;
	font-weight: 600;
	color: var(--gw-primary);
	cursor: pointer;
}
.gw-404__indietro:hover { border-color: var(--gw-primary); }

.gw-404__libri { background: var(--gw-paper); border-top: 1px solid var(--gw-ink-08); padding-block: clamp(48px, 6vw, 80px); }
.gw-404__libri-testa { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: clamp(28px, 4vw, 44px); }
.gw-404__h2 {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-weight: 400;
	font-size: clamp(1.9rem, 3.4vw, 2.8rem);
	letter-spacing: -0.01em;
}
.gw-404__h2 em { font-style: italic; color: var(--gw-primary); border-bottom: 3px solid rgba(212, 164, 76, 0.6); }

.gw-404__segnala { background: #ece4da; border-top: 1px solid rgba(28, 23, 20, 0.1); padding-block: clamp(44px, 6vw, 72px); }
.gw-404__segnala-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(24px, 4vw, 60px); align-items: center; }
@media (max-width: 760px) { .gw-404__segnala-grid { grid-template-columns: 1fr; } }
.gw-404__indirizzo { margin: 14px 0 0; font-size: 0.95rem; color: var(--gw-ink-60); }
.gw-404__indirizzo code {
	background: rgba(28, 23, 20, 0.07);
	padding: 3px 9px;
	border-radius: 3px;
	font-size: 0.9em;
	word-break: break-all;
}

/* ═══════════════ Pagina Contatti (impianto dal design di Linda) ════════ */
.gw-contatti__hero {
	position: relative;
	overflow: hidden;
	background: var(--gw-secondary);
	color: var(--gw-on-dark);
	padding-block: clamp(48px, 6vw, 88px);
}
.gw-contatti__chiocciola {
	position: absolute;
	right: -2vw;
	top: 50%;
	transform: translateY(-52%);
	font-family: var(--gw-font-serif);
	font-size: clamp(16rem, 30vw, 30rem);
	line-height: 1;
	color: rgba(252, 251, 247, 0.06);
	pointer-events: none;
	user-select: none;
}
.gw-contatti__hero-grid {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(36px, 6vw, 90px);
	align-items: center;
}
@media (max-width: 860px) { .gw-contatti__hero-grid { grid-template-columns: 1fr; } }
.gw-contatti__title {
	margin: 0 0 18px;
	font-family: var(--gw-font-serif);
	font-weight: 400;
	font-size: clamp(3.2rem, 7vw, 6rem);
	line-height: 0.95;
	letter-spacing: -0.03em;
	color: var(--gw-paper);
}
.gw-contatti__intro { margin: 0; max-width: 46ch; font-size: 1.05rem; line-height: 1.7; color: rgba(252, 251, 247, 0.75); }
.gw-contatti__intro strong { color: var(--gw-paper); font-weight: 600; }
.gw-contatti__recapiti { border-top: 1px solid rgba(212, 164, 76, 0.45); }
.gw-contatti__recapito {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 0;
	border-bottom: 1px solid rgba(252, 251, 247, 0.16);
}
.gw-contatti__etichetta {
	margin: 0 0 6px;
	font-family: var(--gw-font-sans);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--gw-oro-caldo);
}
.gw-contatti__recapito a,
.gw-contatti__recapito span { font-family: var(--gw-font-serif); font-size: 1.2rem; color: var(--gw-paper); text-decoration: none; }
.gw-contatti__recapito a:hover { color: var(--gw-oro-caldo); }
.gw-contatti__recapito--link { text-decoration: none; transition: padding-left .25s ease; }
.gw-contatti__recapito--link:hover { padding-left: 8px; }
.gw-contatti__recapito--link > span[aria-hidden] { color: var(--gw-oro-caldo); font-size: 1.3rem; }
.gw-contatti__copia {
	flex: none;
	padding: 9px 16px;
	background: transparent;
	border: 1px solid rgba(212, 164, 76, 0.5);
	border-radius: 3px;
	font-family: var(--gw-font-sans);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--gw-oro-caldo);
	cursor: pointer;
	transition: border-color .2s ease, background .2s ease;
}
.gw-contatti__copia:hover { border-color: var(--gw-oro-caldo); background: rgba(212, 164, 76, 0.1); }

/* Scrivici: form a sinistra, sede e social a destra */
.gw-contatti__scrivi { background: var(--gw-paper); padding-block: clamp(52px, 7vw, 88px); }
.gw-contatti__scrivi-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 80px);
	align-items: start;
}
@media (max-width: 900px) { .gw-contatti__scrivi-grid { grid-template-columns: 1fr; } }
.gw-contatti__h2 {
	margin: 0 0 24px;
	font-family: var(--gw-font-serif);
	font-weight: 400;
	font-size: clamp(2rem, 3.6vw, 3rem);
	letter-spacing: -0.01em;
}
.gw-contatti__posta { margin: 16px 0 0; font-size: 0.95rem; color: var(--gw-ink-60); }
.gw-contatti__lato { display: flex; flex-direction: column; gap: clamp(24px, 3vw, 36px); padding-top: clamp(40px, 6vw, 76px); }
.gw-contatti__lato-kicker {
	margin: 0 0 12px;
	font-family: var(--gw-font-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--gw-ambra);
}
.gw-contatti__indirizzo { margin: 0; font-family: var(--gw-font-serif); font-size: 1.25rem; line-height: 1.45; }
.gw-contatti__piva { margin: 8px 0 0; font-size: 0.92rem; color: var(--gw-ink-60); }
.gw-contatti__nota { margin: 10px 0 0; font-size: 0.92rem; color: var(--gw-ink-60); font-style: italic; }
.gw-contatti__sede { padding-bottom: clamp(20px, 3vw, 30px); border-bottom: 1px solid var(--gw-ink-08); }
.gw-contatti__social { padding-bottom: clamp(20px, 3vw, 30px); border-bottom: 1px solid var(--gw-ink-08); }
.gw-contatti__social a {
	display: block;
	padding: 7px 0;
	font-family: var(--gw-font-sans);
	font-size: 1rem;
	color: var(--gw-ink-80);
	text-decoration: none;
}
.gw-contatti__social a:hover { color: var(--gw-primary); }
.gw-contatti__prima {
	background: var(--gw-base);
	color: rgba(252, 251, 247, 0.75);
	border-radius: 4px;
	padding: clamp(20px, 2.6vw, 28px);
}
.gw-contatti__prima .gw-contatti__lato-kicker { color: var(--gw-oro-caldo); }
.gw-contatti__prima p { margin: 0; font-size: 0.98rem; line-height: 1.6; }
.gw-contatti__prima a { color: var(--gw-oro-caldo); }

/* --- Social nel footer -------------------------------------------------- */
.gw-footer__social { display: flex; gap: 18px; margin-top: 16px; }
.gw-footer__social a {
	font-family: var(--gw-font-sans);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--gw-on-dark-soft);
	text-decoration: none;
	border-bottom: 1px solid rgba(217, 171, 92, 0.4);
	padding-bottom: 2px;
}
.gw-footer__social a:hover { color: var(--gw-gold); }

/* --- Dicono di questo libro: citazioni scelte a mano -------------------- */
.gw-dicono { background: #fff; border-top: 1px solid var(--gw-ink-08); padding-block: clamp(44px, 6vw, 72px); }
.gw-dicono__fila {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: clamp(20px, 3vw, 36px);
	margin-top: 22px;
}
.gw-dicono__voce {
	margin: 0;
	padding: clamp(22px, 2.6vw, 30px);
	background: var(--gw-paper);
	border: 1px solid rgba(28, 23, 20, 0.12);
	border-radius: 4px;
}
.gw-dicono__voce:nth-child(odd) { transform: rotate(-0.5deg); }
.gw-dicono__voce:nth-child(even) { transform: rotate(0.5deg); }
.gw-dicono__virgola {
	display: block;
	font-family: var(--gw-font-serif);
	font-weight: 700;
	font-size: 52px;
	line-height: 0.5;
	color: var(--gw-oro-caldo);
	margin-bottom: 12px;
}
.gw-dicono__voce p {
	margin: 0;
	font-family: var(--gw-font-serif);
	font-style: italic;
	font-size: 1.15rem;
	line-height: 1.55;
	color: var(--gw-ink-80);
}
.gw-dicono__voce footer { margin-top: 14px; font-family: var(--gw-font-sans); font-size: 0.88rem; color: var(--gw-ink-60); }
.gw-dicono__voce cite { font-style: normal; font-weight: 700; color: var(--gw-ink); }
.gw-dicono__voce cite + span::before { content: " · "; }

/* --- Form newsletter (dentro la sezione CTA) ------------------------- */

.gw-nl-form { max-width: 520px; margin-inline: auto; }

.gw-nl-form__riga { display: flex; gap: 10px; }

.gw-nl-form__riga input[type="email"] {
	flex: 1;
	min-width: 0;
	padding: 15px 18px;
	font: 1rem var(--gw-font-sans);
	color: var(--gw-ink);
	background: #fff;
	border: 1px solid var(--gw-ink-20);
	border-radius: var(--gw-radius);
}

.gw-nl-form__riga input[type="email"]:focus-visible {
	outline: 2px solid var(--gw-gold);
	outline-offset: 1px;
	border-color: transparent;
}

@media (max-width: 560px) {
	.gw-nl-form__riga { flex-direction: column; }
}

.gw-nl-form__privacy {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	margin-top: 14px;
	font-size: var(--gw-text-xs);
	line-height: 1.5;
	color: var(--gw-ink-60);
	text-align: left;
	cursor: pointer;
}

.gw-nl-form__privacy input[type="checkbox"] {
	width: 17px;
	height: 17px;
	flex: none;
	margin-top: 1px;
	accent-color: var(--gw-primary);
	cursor: pointer;
}

.gw-nl-form__privacy a { color: var(--gw-primary); }

.gw-nl-form .gw-invio__errore { margin-top: 14px; }

.gw-nl-form__fatto { padding: 10px 0 4px; }

/* --- Mockup piatto per le box ---------------------------------------- */
/* La grafica delle box è un collage orizzontale, non una copertina: il
   libro 3D con dorso e taglio pagine la schiacciava in una forma assurda.
   Qui si spegne tutta la prospettiva e resta la stampa, con l'ombra a
   terra che già c'era. */

.gw-l3d--piatto { perspective: none; }

.gw-l3d--piatto .gw-l3d__box {
	transform: none;
	transform-style: flat;
}

.gw-l3d--piatto .gw-l3d__box img {
	transform: none;
	border-radius: var(--gw-radius);
	box-shadow: 0 24px 50px -18px rgba(28, 23, 20, 0.5), 0 0 0 1px rgba(0, 0, 0, 0.12);
}

.gw-l3d--piatto .gw-l3d__box::before,
.gw-l3d--piatto .gw-l3d__box::after { content: none; }

/* Sul palco della scheda, il collage largo merita più respiro del libro. */
.gw-teatro__libro .gw-l3d--piatto { width: min(380px, 82vw); }

/* Righe di fiducia sotto il bottone d'acquisto (spedizione, pagamento). */
.gw-teatro__fiducia {
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 3px;
	font-size: var(--gw-text-xs);
	color: var(--gw-ink-60);
}

.gw-teatro__fiducia li::before {
	content: "\2713\00a0";
	color: var(--gw-numeral);
}
