/* =========================================================================
   PDG Beauty — foglio del tema
   -------------------------------------------------------------------------
   Regola di convivenza, una sola e non negoziabile:

   IL TEMA NON STILA MAI UN ELEMENTO GENERICO FUORI DAI PROPRI CONTENITORI.

   Niente `button {}`, niente `a {}`, niente `input {}`, niente `h2 {}`, niente
   `ul {}`. È esattamente ciò che il plugin deve neutralizzare quando gira su
   un tema qualunque — testo dei pulsanti invisibile, griglia collassata,
   campi di ricerca sovrascritti. Qui non c'è nulla da neutralizzare: la sua
   corazza resta, ma non trova nemici.

   Le uniche eccezioni sono `html` e `body`, che devono esistere, e gli
   elementi dentro `.pdgt-prose`, cioè il contenuto scritto nell'editor —
   dove il plugin non entra mai.

   I valori dei token arrivano da inc/dynamic-css.php e sono sovrascrivibili
   dal Personalizza. Quelli qui sotto sono i predefiniti dei brief.
   ========================================================================= */

:root {
	--pdgt-warm-white: #FFFDFC;
	--pdgt-ivory:      #F8F3F0;
	--pdgt-taupe:      #B8A79C;
	--pdgt-nude:       #D9B6A5;
	--pdgt-powder:     #ECC7B6;
	--pdgt-brown:      #786459;

	--pdgt-ink:        #786459;
	--pdgt-ink-soft:   rgba(120, 100, 89, .82);
	--pdgt-ink-faint:  rgba(120, 100, 89, .62);
	--pdgt-line:       rgba(120, 100, 89, .12);
	--pdgt-line-soft:  rgba(120, 100, 89, .07);

	--pdgt-skin-normale:   #D9B6A5;
	--pdgt-skin-mista:     #AED8F2;
	--pdgt-skin-secca:     #FAD3B6;
	--pdgt-skin-grassa:    #BCD8C1;
	--pdgt-skin-sensibile: #E3D4F0;
	--pdgt-skin-matura:    #B8A79C;

	--pdgt-display: 'Cormorant Garamond', 'Times New Roman', serif;
	--pdgt-sans: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;

	/* Tetto tipografico dei brief: 60px desktop, sotto i 30px mobile. */
	--pdgt-t-h1:    clamp(1.75rem, 5.4vw, 3.75rem);
	--pdgt-t-h2:    clamp(1.4rem, 3vw, 2.6rem);
	--pdgt-t-h3:    clamp(1rem, 1.5vw, 1.2rem);
	--pdgt-t-body:  clamp(.875rem, 1.05vw, .95rem);
	--pdgt-t-small: .78rem;
	--pdgt-t-micro: .625rem;

	--pdgt-container: 1200px;
	--pdgt-content: 820px;
	--pdgt-radius: 16px;
	--pdgt-radius-sm: 8px;
	--pdgt-radius-lg: 28px;

	--pdgt-gap: clamp(1.5rem, 3vw, 2.5rem);
	--pdgt-section: clamp(2.5rem, 6vw, 5rem);
	--pdgt-pad: clamp(1.25rem, 4vw, 3rem);

	--pdgt-ease: cubic-bezier(.22, 1, .36, 1);
	--pdgt-shadow-sm: 0 2px 14px rgba(120, 100, 89, .06);
	--pdgt-shadow-md: 0 12px 40px rgba(120, 100, 89, .10);

	--pdgt-page-bg: #FFFDFC;
	--pdgt-top-gap: clamp(1.5rem, 3.5vw, 3rem);
}

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

html {
	box-sizing: border-box;
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	/* La rete definitiva contro la barra orizzontale.
	   `clip` e non `hidden`: non crea un contenitore di scorrimento, quindi
	   gli elementi appiccicati continuano a funzionare. Vale anche per quello
	   che esce da `.pdgt-site` — per esempio la barra dell'header che il
	   plugin sposta come figlia diretta di `body`.
	   Resta una rete: le cause vanno trovate, e per quello c'è
	   `?pdgt-debug=overflow`. */
	overflow-x: clip;
}

body.pdgt-theme {
	margin: 0;
	background: var(--pdgt-page-bg);
	color: var(--pdgt-ink);
	font-family: var(--pdgt-sans);
	font-size: var(--pdgt-t-body);
	font-weight: 400;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	/* `clip`, non `hidden`.
	   Di norma `overflow-x: hidden` sul body si propaga alla finestra e il
	   body NON diventa un contenitore di scorrimento. Ma la propagazione
	   avviene solo se `html` ha overflow `visible` — e qui `html` ha `clip`.
	   Con `clip` sopra e `hidden` sotto, il body diventava un contenitore che
	   non scorre mai, e OGNI elemento appiccicato del sito moriva li' dentro:
	   il riepilogo del checkout, i filtri dello shop, la galleria del
	   prodotto, il menu dell'area cliente. Nessuna delle due regole, da sola,
	   faceva danno: era la coppia. */
	overflow-x: clip;
}

body.pdgt-theme .pdgt-site,
body.pdgt-theme .pdgt-content { box-sizing: border-box; }

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

/* `clip` e non `hidden`: taglia quel che deborda senza creare un contenitore
   di scorrimento, quindi gli header appiccicati continuano a funzionare. È la
   rete di sicurezza, non la soluzione — le cause stanno sistemate una per una
   nei fogli del carrello e della scheda prodotto. */
.pdgt-site { display: flex; flex-direction: column; min-height: 100vh; overflow-x: clip; }
.pdgt-content { flex: 1 0 auto; }

/* Salto al contenuto: visibile solo con la tastiera. */
.pdgt-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 2147483001;
	padding: .8rem 1.4rem;
	background: var(--pdgt-ink);
	color: var(--pdgt-warm-white);
	font-size: var(--pdgt-t-micro);
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: 0 0 var(--pdgt-radius-sm) 0;
}
.pdgt-skip:focus { left: 0; }

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

/* Focus visibile ovunque, senza eccezioni. */
.pdgt-site :focus-visible,
.pdgt-canvas :focus-visible {
	outline: 2px solid var(--pdgt-taupe);
	outline-offset: 3px;
	border-radius: 3px;
}

/* -------------------------------------------------------- Contenitori --- */

/* `width: auto`, non `width: 100%`.
   Su un elemento di blocco `auto` è la scelta giusta e, soprattutto,
   **immune**: il browser calcola la larghezza in modo che spaziatura interna
   e bordi ci stiano dentro, qualunque sia il modello di scatola. Con
   `width: 100%` e la spaziatura interna, basta che qualcosa — un altro
   plugin, un foglio del builder — rimetta `box-sizing: content-box` su un
   antenato perché la spaziatura si sommi alla larghezza e la pagina esca di
   quei quaranta pixel che si vedevano sul telefono.

   Vale per tutti i contenitori del tema che hanno insieme larghezza e
   spaziatura interna: un controllo automatico si assicura che non ne
   ricompaia uno. */
.pdgt-shell {
	width: auto;
	max-width: var(--pdgt-container);
	margin-inline: auto;
	padding-inline: var(--pdgt-pad);
	padding-block: var(--pdgt-section);
}
.pdgt-shell--narrow { max-width: calc(var(--pdgt-content) + var(--pdgt-pad) * 2); }
.pdgt-shell--wide { max-width: none; }

/* Le pagine disegnate dal plugin portano già le proprie misure: qui si toglie
   tutto, larghezza e spaziature comprese. Senza questa regola lo Shop
   finirebbe dentro una colonna stretta — è il difetto che il LEGGIMI del
   plugin descrive per Kadence (§11) e che qui non esiste. */
.pdgt-shell--full {
	max-width: none;
	padding-inline: 0;
	padding-block: 0;
}

/* Pagine di sola interfaccia: carrello, checkout, area cliente. Spaziatura
   sopra ridotta — il blocco dentro porta la propria — e nessuna misura di
   lettura, che qui non c'entra niente. */
.pdgt-shell--app { padding-block: clamp(1rem, 2.5vw, 1.75rem) clamp(2.5rem, 6vw, 4.5rem); }

/* Aria fra l'header e l'inizio delle pagine disegnate dal plugin.
   `.pdg-single` e `.pdg-shop` hanno spaziatura in alto pari a zero, e il
   breadcrumb finiva appiccicato sotto la barra di navigazione. Lo spazio lo
   mette il contenitore del tema, che è roba nostra: nessuna regola del plugin
   da scavalcare. Si regola con `--pdgt-top-gap`. */
.pdgt-shell--full > .pdgt-main--shop,
.pdgt-shell--full > .pdgt-main { padding-top: var(--pdgt-top-gap, clamp(1.5rem, 3.5vw, 3rem)); }
.pdgt-ui { max-width: none; }
.pdgt-ui > * + * { margin-top: 0; }

.pdgt-main--full,
.pdgt-main--canvas { display: block; }

.pdgt-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--pdgt-gap);
	align-items: start;
}
@media (min-width: 900px) {
	.pdgt-sidebar-right .pdgt-layout { grid-template-columns: minmax(0, 1fr) 300px; }
	.pdgt-sidebar-left .pdgt-layout { grid-template-columns: 300px minmax(0, 1fr); }
	.pdgt-sidebar-left .pdgt-aside { order: -1; }
}

/* ------------------------------------------------------------ Titoli ----- */

.pdgt-eyebrow {
	margin: 0 0 .9rem;
	font-size: var(--pdgt-t-micro);
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--pdgt-taupe);
}

.pdgt-micro {
	font-size: var(--pdgt-t-micro);
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--pdgt-ink-faint);
}

.pdgt-pagehead {
	max-width: var(--pdgt-content);
	margin-bottom: clamp(1.75rem, 4vw, 3rem);
}
.pdgt-pagehead__title {
	margin: 0;
	font-family: var(--pdgt-display);
	font-size: var(--pdgt-t-h1);
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: -.01em;
	color: var(--pdgt-ink);
}
.pdgt-pagehead__intro {
	margin: 1rem 0 0;
	max-width: 60ch;
	color: var(--pdgt-ink-soft);
}

/* La riga sottile sotto l'intestazione: unico elemento decorativo del tema,
   e serve a separare senza il peso di un bordo pieno. */
.pdgt-pagehead::after {
	content: "";
	display: block;
	width: 64px;
	height: 1px;
	margin-top: clamp(1.25rem, 3vw, 2rem);
	background: var(--pdgt-nude);
}

/* ------------------------------------------------------------- Meta ----- */

.pdgt-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0 0 .75rem;
	font-size: var(--pdgt-t-small);
	color: var(--pdgt-ink-faint);
}
.pdgt-meta a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--pdgt-line); }
.pdgt-meta a:hover { color: var(--pdgt-ink); border-color: var(--pdgt-nude); }

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

.pdgt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .95rem 1.7rem;
	border: 1px solid transparent;
	border-radius: 999px;
	background: transparent;
	font-family: var(--pdgt-sans);
	font-size: var(--pdgt-t-micro);
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	cursor: pointer;
	transition: background .35s var(--pdgt-ease), color .35s var(--pdgt-ease), border-color .35s var(--pdgt-ease);
}
.pdgt-btn--primary { background: var(--pdgt-ink); color: var(--pdgt-warm-white); }
.pdgt-btn--primary:hover { background: var(--pdgt-taupe); }
.pdgt-btn--ghost { border-color: var(--pdgt-line); color: var(--pdgt-ink); }
.pdgt-btn--ghost:hover { border-color: var(--pdgt-nude); background: var(--pdgt-ivory); }
.pdgt-btn--sm { padding: .7rem 1.2rem; }

/* ----------------------------------------------- Header di riserva ------- */

.pdgt-header {
	position: relative;
	z-index: 400;
	background: var(--pdgt-warm-white);
	border-bottom: 1px solid var(--pdgt-line-soft);
}
.pdgt-sticky-header .pdgt-header.is-sticky {
	position: sticky;
	top: 0;
}
.pdgt-header.is-scrolled { box-shadow: var(--pdgt-shadow-sm); }

.pdgt-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pdgt-gap);
	max-width: var(--pdgt-container);
	margin-inline: auto;
	padding: 1.1rem var(--pdgt-pad);
}

.pdgt-brand { display: inline-flex; align-items: center; text-decoration: none; color: inherit; }
.pdgt-brand img { display: block; height: auto; max-height: 46px; width: auto; }
.pdgt-brand--text span {
	font-family: var(--pdgt-display);
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--pdgt-ink);
}
.pdgt-brand--text i { font-style: normal; color: var(--pdgt-nude); padding-inline: .12em; }

.pdgt-nav { display: none; }
@media (min-width: 992px) { .pdgt-nav { display: block; } }

.pdgt-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 2vw, 2rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.pdgt-nav__list li { position: relative; }
.pdgt-nav__list a {
	display: block;
	padding: .4rem 0;
	font-size: var(--pdgt-t-micro);
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--pdgt-ink);
	transition: color .3s var(--pdgt-ease);
}
.pdgt-nav__list a::after {
	content: "";
	display: block;
	height: 1px;
	margin-top: .35rem;
	background: var(--pdgt-nude);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .4s var(--pdgt-ease);
}
.pdgt-nav__list a:hover::after,
.pdgt-nav__list .current-menu-item > a::after { transform: scaleX(1); }

.pdgt-nav__list .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	margin: 0;
	padding: .6rem 0;
	list-style: none;
	background: var(--pdgt-warm-white);
	border: 1px solid var(--pdgt-line);
	border-radius: var(--pdgt-radius-sm);
	box-shadow: var(--pdgt-shadow-md);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .3s var(--pdgt-ease), transform .3s var(--pdgt-ease), visibility .3s;
}
.pdgt-nav__list li:hover > .sub-menu,
.pdgt-nav__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.pdgt-nav__list .sub-menu a { padding: .5rem 1.1rem; letter-spacing: .1em; }
.pdgt-nav__list .sub-menu a::after { display: none; }

.pdgt-header__util { display: flex; align-items: center; gap: .35rem; }

.pdgt-iconbtn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--pdgt-ink);
	cursor: pointer;
	text-decoration: none;
	transition: background .3s var(--pdgt-ease);
}
.pdgt-iconbtn:hover { background: var(--pdgt-ivory); }
.pdgt-iconbtn svg { display: block; }

.pdgt-cart-count {
	position: absolute;
	top: 4px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--pdgt-nude);
	color: var(--pdgt-warm-white);
	font-size: .6rem;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
}

@media (min-width: 992px) { .pdgt-burger { display: none; } }

.pdgt-header__search {
	border-top: 1px solid var(--pdgt-line-soft);
	background: var(--pdgt-ivory);
}
.pdgt-header__search .pdgt-search {
	max-width: 680px;
	margin-inline: auto;
	padding: 1.25rem var(--pdgt-pad);
}
.pdgt-header__search[hidden] { display: none; }

/* Menu mobile. */
.pdgt-mobilemenu {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
}
.pdgt-mobilemenu[hidden] { display: none; }
.pdgt-mobilemenu__scrim {
	position: absolute;
	inset: 0;
	background: rgba(120, 100, 89, .34);
	backdrop-filter: blur(3px);
}
.pdgt-mobilemenu__panel {
	position: absolute;
	inset: 0 0 0 auto;
	width: min(360px, 88vw);
	padding: 1.5rem;
	background: var(--pdgt-warm-white);
	overflow-y: auto;
	animation: pdgt-slide-in .45s var(--pdgt-ease);
}
@keyframes pdgt-slide-in { from { transform: translateX(100%); } to { transform: none; } }

.pdgt-mobilemenu__close { margin-left: auto; display: flex; }
.pdgt-mobilemenu__list { margin: 1.5rem 0 0; padding: 0; list-style: none; }
.pdgt-mobilemenu__list li { border-bottom: 1px solid var(--pdgt-line-soft); }
.pdgt-mobilemenu__list a {
	display: block;
	padding: 1rem 0;
	font-size: var(--pdgt-t-small);
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--pdgt-ink);
}
.pdgt-mobilemenu__list .sub-menu { margin: 0 0 .6rem .8rem; padding: 0; list-style: none; }
.pdgt-mobilemenu__list .sub-menu li { border: 0; }
.pdgt-mobilemenu__list .sub-menu a { padding: .45rem 0; letter-spacing: .08em; text-transform: none; color: var(--pdgt-ink-faint); }

body.pdgt-locked { overflow: hidden; }

/* ----------------------------------------------- Footer di riserva ------- */

.pdgt-footer {
	background: var(--pdgt-ivory);
	color: var(--pdgt-ink);
	margin-top: auto;
}
.pdgt-footer__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--pdgt-gap);
	max-width: var(--pdgt-container);
	margin-inline: auto;
	padding: var(--pdgt-section) var(--pdgt-pad) 2rem;
}
@media (min-width: 768px) { .pdgt-footer__inner { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); } }

.pdgt-footer__brand p { margin: 1rem 0 0; max-width: 44ch; color: var(--pdgt-ink-soft); }
.pdgt-footer__list { margin: 0; padding: 0; list-style: none; display: grid;
	grid-template-columns: minmax(0, 1fr); gap: .6rem; }
.pdgt-footer__list a {
	font-size: var(--pdgt-t-small);
	text-decoration: none;
	color: var(--pdgt-ink-soft);
	transition: color .3s var(--pdgt-ease);
}
.pdgt-footer__list a:hover { color: var(--pdgt-ink); }

.pdgt-footer__legal {
	border-top: 1px solid var(--pdgt-line);
	padding: 1.25rem var(--pdgt-pad);
}
.pdgt-footer__legal p { max-width: var(--pdgt-container); margin: 0 auto; }

/* -------------------------------------------------- Elenco articoli ------ */

.pdgt-posts { display: grid;
	grid-template-columns: minmax(0, 1fr); gap: var(--pdgt-gap); }
.pdgt-posts--grid.pdgt-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pdgt-posts--grid.pdgt-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pdgt-posts--grid.pdgt-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1000px) {
	.pdgt-posts--grid.pdgt-cols-3,
	.pdgt-posts--grid.pdgt-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.pdgt-posts--grid { grid-template-columns: minmax(0, 1fr) !important; }
}

.pdgt-card { display: flex; flex-direction: column; }
.pdgt-thumb { overflow: hidden; border-radius: var(--pdgt-radius); background: var(--pdgt-ivory); }
.pdgt-thumb img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform 1.2s var(--pdgt-ease);
}
.pdgt-card:hover .pdgt-thumb img { transform: scale(1.04); }

.pdgt-card__body { padding-top: 1.1rem; }
.pdgt-card__title {
	margin: 0 0 .6rem;
	font-family: var(--pdgt-display);
	font-size: clamp(1.25rem, 2vw, 1.6rem);
	font-weight: 500;
	line-height: 1.25;
}
.pdgt-card__title a { color: inherit; text-decoration: none; }
.pdgt-card__title a:hover { color: var(--pdgt-taupe); }
.pdgt-card__excerpt { margin: 0 0 1rem; color: var(--pdgt-ink-soft); }
.pdgt-card__more {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	font-size: var(--pdgt-t-micro);
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--pdgt-ink);
}
.pdgt-card__more span { transition: transform .35s var(--pdgt-ease); }
.pdgt-card__more:hover span { transform: translateX(4px); }

/* Elenco invece che griglia. */
.pdgt-posts--list { gap: 0; }
.pdgt-posts--list .pdgt-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--pdgt-gap);
	padding: var(--pdgt-gap) 0;
	border-bottom: 1px solid var(--pdgt-line-soft);
}
@media (min-width: 700px) {
	.pdgt-posts--list .pdgt-card { grid-template-columns: 280px minmax(0, 1fr); align-items: center; }
}
.pdgt-posts--list .pdgt-card__body { padding-top: 0; }

/* Risultati di ricerca. */
.pdgt-result {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.25rem;
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--pdgt-line-soft);
}
@media (min-width: 600px) { .pdgt-result { grid-template-columns: 120px minmax(0, 1fr); align-items: center; } }
.pdgt-result__title { margin: .35rem 0 .5rem; font-family: var(--pdgt-display); font-size: 1.35rem; font-weight: 500; }
.pdgt-result__title a { color: inherit; text-decoration: none; }
.pdgt-result__title a:hover { color: var(--pdgt-taupe); }
.pdgt-result__excerpt { margin: 0; color: var(--pdgt-ink-soft); }

.pdgt-searchbar {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 1.5rem;
	margin-bottom: 1.5rem;
	border-bottom: 1px solid var(--pdgt-line-soft);
}

/* Stato vuoto. */
.pdgt-empty {
	padding: clamp(2rem, 6vw, 4rem);
	background: var(--pdgt-ivory);
	border-radius: var(--pdgt-radius-lg);
	text-align: center;
}
.pdgt-empty__title {
	margin: 0 0 .75rem;
	font-family: var(--pdgt-display);
	font-size: var(--pdgt-t-h2);
	font-weight: 500;
}
.pdgt-empty p { margin: 0 auto 1.5rem; max-width: 46ch; color: var(--pdgt-ink-soft); }
.pdgt-empty .pdgt-search { max-width: 460px; margin-inline: auto; text-align: left; }

/* --------------------------------------------------------- Ricerca ------- */

.pdgt-search { display: grid;
	grid-template-columns: minmax(0, 1fr); gap: .5rem; }
.pdgt-search__row { display: flex; gap: .5rem; }
.pdgt-search__field {
	flex: 1;
	min-width: 0;
	padding: .95rem 1.1rem;
	border: 1px solid var(--pdgt-line);
	border-radius: 999px;
	background: var(--pdgt-warm-white);
	font-family: var(--pdgt-sans);
	font-size: var(--pdgt-t-body);
	color: var(--pdgt-ink);
	appearance: none;
	transition: border-color .3s var(--pdgt-ease), box-shadow .3s var(--pdgt-ease);
}
.pdgt-search__field::placeholder { color: var(--pdgt-ink-faint); }
.pdgt-search__field:focus {
	outline: none;
	border-color: var(--pdgt-taupe);
	box-shadow: 0 0 0 4px var(--pdgt-line-soft);
}
.pdgt-search__field::-webkit-search-cancel-button { display: none; }

/* ------------------------------------------------- Contenuto scritto ----- */
/* Qui, e solo qui, il tema stila elementi generici: è il contenuto
   dell'editor, dove il plugin non entra mai. */

.pdgt-prose {
	max-width: var(--pdgt-content);
	color: var(--pdgt-ink-soft);
	font-size: clamp(.95rem, 1.1vw, 1.02rem);
	line-height: 1.8;
}
.pdgt-main--full .pdgt-prose,
.pdgt-page .pdgt-prose { max-width: none; }

.pdgt-prose > * + * { margin-top: 1.25em; }
.pdgt-prose h1, .pdgt-prose h2, .pdgt-prose h3, .pdgt-prose h4 {
	font-family: var(--pdgt-display);
	font-weight: 500;
	line-height: 1.2;
	color: var(--pdgt-ink);
	margin-top: 1.8em;
}
.pdgt-prose h1 { font-size: var(--pdgt-t-h1); }
.pdgt-prose h2 { font-size: var(--pdgt-t-h2); }
.pdgt-prose h3 { font-size: clamp(1.15rem, 2vw, 1.5rem); }
.pdgt-prose h4 { font-size: 1.1rem; }
.pdgt-prose p { margin: 0; }
.pdgt-prose a {
	color: var(--pdgt-ink);
	text-decoration: none;
	background-image: linear-gradient(var(--pdgt-nude), var(--pdgt-nude));
	background-size: 100% 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size .35s var(--pdgt-ease);
}
.pdgt-prose a:hover { background-size: 100% 2px; }
.pdgt-prose strong { color: var(--pdgt-ink); font-weight: 600; }
.pdgt-prose ul, .pdgt-prose ol { margin: 1.25em 0; padding-left: 1.3em; }
.pdgt-prose li + li { margin-top: .5em; }
.pdgt-prose ul { list-style: none; padding-left: 1.1em; }
.pdgt-prose ul > li { position: relative; }
.pdgt-prose ul > li::before {
	content: "";
	position: absolute;
	left: -1.1em;
	top: .75em;
	width: 5px; height: 5px;
	border-radius: 50%;
	background: var(--pdgt-nude);
}
.pdgt-prose blockquote {
	margin: 2em 0;
	padding: 1.5em 2em;
	background: var(--pdgt-ivory);
	border-radius: var(--pdgt-radius);
	font-family: var(--pdgt-display);
	font-size: clamp(1.15rem, 2vw, 1.4rem);
	line-height: 1.45;
	color: var(--pdgt-ink);
}
.pdgt-prose blockquote p { margin: 0; }
.pdgt-prose img,
.pdgt-prose iframe,
.pdgt-prose video {
	max-width: 100%;
	height: auto;
	border-radius: var(--pdgt-radius);
}
.pdgt-prose figure { margin: 2em 0; }
.pdgt-prose figcaption {
	margin-top: .7em;
	font-size: var(--pdgt-t-small);
	color: var(--pdgt-ink-faint);
	text-align: center;
}
.pdgt-prose hr { margin: 2.5em 0; border: 0; border-top: 1px solid var(--pdgt-line); }
.pdgt-prose code {
	padding: .15em .45em;
	border-radius: 4px;
	background: var(--pdgt-ivory);
	font-size: .88em;
}
.pdgt-prose pre {
	padding: 1.25em;
	border-radius: var(--pdgt-radius);
	background: var(--pdgt-ivory);
	overflow-x: auto;
}
.pdgt-prose pre code { padding: 0; background: none; }
.pdgt-prose table { width: 100%; border-collapse: collapse; }
.pdgt-prose th, .pdgt-prose td { padding: .8em 1em; border-bottom: 1px solid var(--pdgt-line); text-align: left; }
.pdgt-prose th { font-size: var(--pdgt-t-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--pdgt-ink); }

.pdgt-prose .alignwide { width: min(100%, calc(var(--pdgt-container) - var(--pdgt-pad) * 2)); }
/* `100vw` non è la larghezza dello schermo: su desktop comprende la barra di
   scorrimento verticale, e basta quella per far comparire quella orizzontale.
   Il blocco a piena larghezza esce fino ai bordi del contenitore, che è una
   misura che esiste davvero. */
.pdgt-prose .alignfull {
	width: auto;
	max-width: none;
	margin-inline: calc(-1 * var(--pdgt-pad));
	border-radius: 0;
}
.pdgt-prose .alignleft { float: left; margin: .3em 1.5em 1em 0; }
.pdgt-prose .alignright { float: right; margin: .3em 0 1em 1.5em; }
.pdgt-prose .aligncenter { margin-inline: auto; }

.pdgt-single .pdgt-thumb { margin: 1.75rem 0 2.5rem; }

.pdgt-tags { margin-top: 2.5rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.pdgt-tags a {
	display: inline-block;
	padding: .45rem 1rem;
	border: 1px solid var(--pdgt-line);
	border-radius: 999px;
	font-size: var(--pdgt-t-micro);
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--pdgt-ink-soft);
}
.pdgt-tags a:hover { border-color: var(--pdgt-nude); color: var(--pdgt-ink); }

/* ------------------------------------------------------ Navigazioni ------ */

.pdgt-pagination { margin-top: var(--pdgt-section); }
.pdgt-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .4rem;
}
.pdgt-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 .9rem;
	border: 1px solid var(--pdgt-line);
	border-radius: 999px;
	font-size: var(--pdgt-t-micro);
	font-weight: 600;
	letter-spacing: .12em;
	text-decoration: none;
	color: var(--pdgt-ink);
}
.pdgt-pagination .page-numbers.current { background: var(--pdgt-ink); border-color: var(--pdgt-ink); color: var(--pdgt-warm-white); }
.pdgt-pagination .page-numbers:hover { border-color: var(--pdgt-nude); }
.pdgt-pagination .dots { border-color: transparent; }

.pdgt-postnav {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
	margin-top: var(--pdgt-section);
	padding-top: 2rem;
	border-top: 1px solid var(--pdgt-line);
}
@media (min-width: 700px) { .pdgt-postnav { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.pdgt-postnav__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: .5rem;
	padding: 1.5rem;
	background: var(--pdgt-ivory);
	border-radius: var(--pdgt-radius);
	text-decoration: none;
	color: inherit;
	transition: background .35s var(--pdgt-ease);
}
.pdgt-postnav__item:hover { background: var(--pdgt-warm-white); box-shadow: var(--pdgt-shadow-sm); }
.pdgt-postnav__item--next { text-align: right; }
.pdgt-postnav__title { font-family: var(--pdgt-display); font-size: 1.25rem; line-height: 1.25; color: var(--pdgt-ink); }

.pdgt-pagelinks { margin-top: 2rem; display: flex; gap: .5rem; font-size: var(--pdgt-t-small); }

/* -------------------------------------------------------- Prodotti ------- */

.pdgt-related { margin-top: var(--pdgt-section); }
.pdgt-related__title {
	margin: 0 0 1.5rem;
	font-family: var(--pdgt-display);
	font-size: var(--pdgt-t-h2);
	font-weight: 500;
}

/* -------------------------------------------------- Barra laterale ------- */

.pdgt-aside { display: grid;
	grid-template-columns: minmax(0, 1fr); gap: var(--pdgt-gap); align-content: start; }
@media (min-width: 900px) { .pdgt-aside { position: sticky; top: 100px; } }

.pdgt-widget {
	padding: 1.5rem;
	background: var(--pdgt-ivory);
	border-radius: var(--pdgt-radius);
}
.pdgt-widget__title {
	margin: 0 0 1rem;
	font-size: var(--pdgt-t-micro);
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--pdgt-ink);
}
.pdgt-widget ul { margin: 0; padding: 0; list-style: none; display: grid;
	grid-template-columns: minmax(0, 1fr); gap: .55rem; }
.pdgt-widget li a { color: var(--pdgt-ink-soft); text-decoration: none; font-size: var(--pdgt-t-small); }
.pdgt-widget li a:hover { color: var(--pdgt-ink); }

/* ------------------------------------------------------- Commenti -------- */

.pdgt-comments { margin-top: var(--pdgt-section); padding-top: 2rem; border-top: 1px solid var(--pdgt-line); }
.pdgt-comments__title { margin: 0 0 1.5rem; font-family: var(--pdgt-display); font-size: var(--pdgt-t-h2); font-weight: 500; }
.pdgt-comments__list, .pdgt-comments__list .children { margin: 0; padding: 0; list-style: none; }
.pdgt-comments__list .children { margin-left: 1.5rem; padding-left: 1.5rem; border-left: 1px solid var(--pdgt-line); }
.pdgt-comments .comment-body { padding: 1.25rem 0; border-bottom: 1px solid var(--pdgt-line-soft); }
.pdgt-comments .comment-author img { border-radius: 50%; vertical-align: middle; margin-right: .6rem; }
.pdgt-comments .comment-metadata { font-size: var(--pdgt-t-small); color: var(--pdgt-ink-faint); }
.pdgt-comments .comment-metadata a { color: inherit; }
.pdgt-comments .comment-form { display: grid;
	grid-template-columns: minmax(0, 1fr); gap: 1rem; margin-top: 2rem; }
.pdgt-comments .comment-form label { font-size: var(--pdgt-t-micro); letter-spacing: .14em; text-transform: uppercase; }
.pdgt-comments .comment-form input[type="text"],
.pdgt-comments .comment-form input[type="email"],
.pdgt-comments .comment-form input[type="url"],
.pdgt-comments .comment-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: .9rem 1.1rem;
	border: 1px solid var(--pdgt-line);
	border-radius: var(--pdgt-radius-sm);
	background: var(--pdgt-warm-white);
	font-family: var(--pdgt-sans);
	font-size: var(--pdgt-t-body);
	color: var(--pdgt-ink);
}
.pdgt-comments .comment-form textarea { min-height: 160px; resize: vertical; }

/* ------------------------------------------------------------- 404 ------- */

.pdgt-404 { text-align: center; padding-block: clamp(2rem, 8vw, 5rem); }
.pdgt-404 .pdgt-eyebrow { letter-spacing: .3em; }
.pdgt-404__text { margin: 1.25rem auto 2rem; max-width: 46ch; color: var(--pdgt-ink-soft); }
.pdgt-404 .pdgt-searchbar { justify-content: center; border: 0; padding: 0; margin-bottom: 2rem; }
.pdgt-404 .pdgt-search { max-width: 460px; margin-inline: auto; text-align: left; }
.pdgt-404__actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; }

/* -------------------------------------------------------- Torna su ------- */

.pdgt-totop {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 900;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--pdgt-line);
	border-radius: 50%;
	background: var(--pdgt-warm-white);
	color: var(--pdgt-ink);
	box-shadow: var(--pdgt-shadow-sm);
	cursor: pointer;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .35s var(--pdgt-ease), transform .35s var(--pdgt-ease);
}
.pdgt-totop[hidden] { display: none; }
.pdgt-totop.is-on { opacity: 1; transform: none; }
.pdgt-totop:hover { border-color: var(--pdgt-nude); }

/* ----------------------------------------------- WooCommerce leggero ----- */
/* Carrello, checkout e area cliente: il plugin li veste già quando la pagina
   porta la sua classe `.pdg-page`, con selettori a specificità altissima.
   Quello che segue vale solo dove il plugin non arriva — pagine costruite con
   lo shortcode nativo di WooCommerce — e usa una classe sola, così non può
   mai vincere contro di lui. */

.pdgt-woo-form-page .woocommerce { font-family: var(--pdgt-sans); }
.pdgt-woo-form-page .woocommerce h2,
.pdgt-woo-form-page .woocommerce h3 { font-family: var(--pdgt-display); font-weight: 500; }
/* La tabella degli ordini nell'area cliente. Il carrello e il checkout non
   hanno più tabelle — sono card — quindi questa regola vive solo su
   `/il-mio-account`, dove il plugin non mette il suo involucro `.pdg-page` e
   quindi non c'è niente con cui scontrarsi. */
.woocommerce-account .woocommerce table.shop_table {
	border: 1px solid var(--pdgt-line);
	border-radius: var(--pdgt-radius);
	border-collapse: separate;
	overflow: hidden;
}
.woocommerce-account .woocommerce table.shop_table th {
	font-size: var(--pdgt-t-micro);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pdgt-ink);
}
.pdgt-woo-form-page .woocommerce-info,
.pdgt-woo-form-page .woocommerce-message {
	border-top-color: var(--pdgt-nude);
	background: var(--pdgt-ivory);
	color: var(--pdgt-ink);
}
.pdgt-woo-form-page .woocommerce-info::before,
.pdgt-woo-form-page .woocommerce-message::before { color: var(--pdgt-nude); }

/* Il ciclo prodotti nativo, quando gli archivi PDG sono spenti. */
.pdgt-main--shop ul.products { list-style: none; }
.pdgt-main--shop ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--pdgt-display);
	font-weight: 500;
}

/* ------------------------------------------------------ Movimento -------- */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.pdgt-site *,
	.pdgt-canvas * {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
	.pdgt-card:hover .pdgt-thumb img { transform: none; }
}

/* ------------------------------------------------------------ Stampa ----- */

@media print {
	.pdgt-header, .pdgt-footer, .pdgt-totop, .pdgt-aside, .pdgt-postnav { display: none !important; }
	body.pdgt-theme { background: #fff; color: #000; }
	.pdgt-shell { max-width: none; padding: 0; }
}


/* =========================================================================
   Larghezza unica
   -------------------------------------------------------------------------
   Gli sfondi corrono da bordo a bordo, il contenuto si ferma a
   `--pdgt-container` (1200px di serie, regolabile dal Personalizza).

   Il tema fa già così. Il plugin no: header, footer, breadcrumb, Shop a tutta
   larghezza e scheda prodotto hanno il proprio tetto scritto nel foglio —
   1360px, 1240px, 1100px — con `!important` e sei classi ripetute, cioè
   (0,6,0). Lasciandolo stare, la stessa pagina avrebbe due larghezze diverse
   a seconda di chi disegna il blocco, e si vedrebbe.

   Questo è l'**unico punto** in cui il tema passa sopra al plugin, e lo fa
   con la sua stessa tecnica: `body` aggiunge un selettore di tipo, che porta
   la specificità a (0,7,1) e vince. Si limita a `max-width`: nessun colore,
   nessuna spaziatura, nessun comportamento. E il valore non è un numero
   fisso, è la variabile del tema — quindi resta una sola misura per tutto il
   sito, non una seconda opinione.
   ========================================================================= */

body.pdgt-theme .pdg-header__inner.pdg-header__inner.pdg-header__inner.pdg-header__inner.pdg-header__inner.pdg-header__inner,
body.pdgt-theme .pdg-footer__inner.pdg-footer__inner.pdg-footer__inner.pdg-footer__inner.pdg-footer__inner.pdg-footer__inner,
body.pdgt-theme .pdg-footer__legal.pdg-footer__legal.pdg-footer__legal.pdg-footer__legal.pdg-footer__legal.pdg-footer__legal,
body.pdgt-theme .pdg-bc__inner.pdg-bc__inner.pdg-bc__inner.pdg-bc__inner.pdg-bc__inner.pdg-bc__inner,
body.pdgt-theme .pdg-single.pdg-single.pdg-single.pdg-single.pdg-single.pdg-single,
body.pdgt-theme .pdg-page.pdg-page.pdg-page.pdg-page.pdg-page.pdg-page {
	max-width: var(--pdgt-container) !important;
	margin-inline: auto !important;
}

body.pdgt-theme .pdg-shop--wide.pdg-shop--wide.pdg-shop--wide.pdg-shop--wide.pdg-shop--wide.pdg-shop--wide .pdg-shop__hero.pdg-shop__hero.pdg-shop__hero.pdg-shop__hero.pdg-shop__hero.pdg-shop__hero,
body.pdgt-theme .pdg-shop--wide.pdg-shop--wide.pdg-shop--wide.pdg-shop--wide.pdg-shop--wide.pdg-shop--wide .pdg-shop__search.pdg-shop__search.pdg-shop__search.pdg-shop__search.pdg-shop__search.pdg-shop__search,
body.pdgt-theme .pdg-shop--wide.pdg-shop--wide.pdg-shop--wide.pdg-shop--wide.pdg-shop--wide.pdg-shop--wide .pdg-cats.pdg-cats.pdg-cats.pdg-cats.pdg-cats.pdg-cats,
body.pdgt-theme .pdg-shop--wide.pdg-shop--wide.pdg-shop--wide.pdg-shop--wide.pdg-shop--wide.pdg-shop--wide .pdg-shop__layout.pdg-shop__layout.pdg-shop__layout.pdg-shop__layout.pdg-shop__layout.pdg-shop__layout {
	max-width: var(--pdgt-container) !important;
}

/* Lo Shop senza `full="yes"` non ha un tetto suo: senza queste due righe
   toccherebbe i bordi dello schermo, perché il contenitore del tema sulle
   pagine del plugin è di proposito senza larghezza e senza spaziature. */
body.pdgt-theme .pdg-shop {
	max-width: var(--pdgt-container);
	margin-inline: auto;
	padding-inline: var(--pdgt-pad);
}

/* Le sezioni del tema: sfondo pieno, contenuto al centro. */
.pdgt-band { width: 100%; }
.pdgt-band > * {
	max-width: var(--pdgt-container);
	margin-inline: auto;
	padding-inline: var(--pdgt-pad);
}
