/* =========================================================================
   Pluggies Apple — Design System "Apple glass"
   Costruito sopra Bootstrap 5.3. Usa l'attributo data-bs-theme per chiaro/scuro.
   ========================================================================= */

/* ----------------------------- Token globali --------------------------- */
:root {
	--wpp-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text",
		"Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;

	--nav-h: 66px;
	--nav-h-scrolled: 56px;

	--radius-sm: 12px;
	--radius-md: 18px;
	--radius-lg: 26px;
	--radius-xl: 34px;

	--blur: 22px;
	--blur-strong: 40px;

	--ease: cubic-bezier(.22, .61, .36, 1);
	--ease-spring: cubic-bezier(.34, 1.56, .64, 1);

	--container-max: 1180px;

	--wpp-accent: #0071e3;
	--wpp-accent-2: #5e5ce6;
	--wpp-accent-3: #bf5af2;
	--wpp-gradient: linear-gradient(135deg, #0a84ff 0%, #5e5ce6 45%, #bf5af2 100%);
	--wpp-gradient-soft: linear-gradient(135deg, rgba(10, 132, 255, .16), rgba(191, 90, 242, .16));
}

/* Tema chiaro (default) */
:root,
[data-bs-theme="light"] {
	color-scheme: light;

	--wpp-bg: #f5f5f7;
	--wpp-bg-2: #ffffff;
	--wpp-ink: #1d1d1f;
	--wpp-ink-soft: #6e6e73;
	--wpp-ink-faint: #86868b;

	--glass-bg: rgba(255, 255, 255, .62);
	--glass-bg-strong: rgba(255, 255, 255, .80);
	--glass-border: rgba(255, 255, 255, .7);
	--glass-hairline: rgba(0, 0, 0, .08);
	--glass-shadow: 0 10px 40px rgba(0, 0, 0, .10), 0 2px 8px rgba(0, 0, 0, .04);
	--glass-shadow-hover: 0 20px 60px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .06);

	--nav-bg: rgba(245, 245, 247, .72);

	--blob-1: rgba(10, 132, 255, .20);
	--blob-2: rgba(191, 90, 242, .16);
	--blob-3: rgba(48, 209, 88, .12);
	--blob-4: rgba(255, 159, 10, .12);

	/* Allineo Bootstrap ai token */
	--bs-body-bg: transparent;
	--bs-body-color: #1d1d1f;
	--bs-secondary-color: #6e6e73;
	--bs-emphasis-color: #1d1d1f;
	--bs-border-color: rgba(0, 0, 0, .10);
	--bs-link-color: var(--wpp-accent);
	--bs-link-hover-color: #006edb;
}

/* Tema scuro DISATTIVATO: il sito resta sempre chiaro. Selettore reso inerte
   (richiede un attributo inesistente) così queste variabili non si applicano mai. */
[data-bs-theme="dark"][data-pluggies-never] {
	color-scheme: dark;

	--wpp-bg: #000000;
	--wpp-bg-2: #1c1c1e;
	--wpp-ink: #f5f5f7;
	--wpp-ink-soft: #a1a1a6;
	--wpp-ink-faint: #8e8e93;

	--glass-bg: rgba(28, 28, 30, .55);
	--glass-bg-strong: rgba(28, 28, 30, .74);
	--glass-border: rgba(255, 255, 255, .12);
	--glass-hairline: rgba(255, 255, 255, .10);
	--glass-shadow: 0 10px 40px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .3);
	--glass-shadow-hover: 0 20px 60px rgba(0, 0, 0, .6), 0 4px 12px rgba(0, 0, 0, .4);

	--nav-bg: rgba(10, 10, 12, .62);

	--blob-1: rgba(10, 132, 255, .28);
	--blob-2: rgba(191, 90, 242, .22);
	--blob-3: rgba(48, 209, 88, .16);
	--blob-4: rgba(255, 159, 10, .14);

	--bs-body-bg: transparent;
	--bs-body-color: #f5f5f7;
	--bs-secondary-color: #a1a1a6;
	--bs-emphasis-color: #f5f5f7;
	--bs-border-color: rgba(255, 255, 255, .12);
	--bs-link-color: #4aa3ff;
	--bs-link-hover-color: #6fb6ff;
}

/* -------------------------------- Base --------------------------------- */
* {
	scroll-margin-top: calc(var(--nav-h) + 16px);
}

html {
	scroll-behavior: smooth;
}

body.wpp-body {
	font-family: var(--wpp-font);
	color: var(--wpp-ink);
	background-color: var(--wpp-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	letter-spacing: -0.01em;
	min-height: 100vh;
	position: relative;
	overflow-x: hidden;
}

/* Sfondo "mesh" con blob colorati sfumati, fisso dietro al contenuto */
body.wpp-body::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(40% 50% at 12% 8%, var(--blob-1), transparent 70%),
		radial-gradient(38% 46% at 88% 12%, var(--blob-2), transparent 70%),
		radial-gradient(45% 50% at 80% 85%, var(--blob-3), transparent 72%),
		radial-gradient(40% 46% at 15% 88%, var(--blob-4), transparent 72%);
	pointer-events: none;
}

::selection {
	background: rgba(10, 132, 255, .22);
}

h1, h2, h3, h4, h5, h6 {
	letter-spacing: -0.022em;
	font-weight: 700;
}

.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
	letter-spacing: -0.03em;
	font-weight: 700;
}

.container {
	max-width: var(--container-max);
}

.section-pad {
	padding-top: 96px;
	padding-bottom: 96px;
}

@media (max-width: 768px) {
	.section-pad {
		padding-top: 64px;
		padding-bottom: 64px;
	}
}

/* Offset del contenuto sotto la navbar fissa (in home ci pensa l'hero) */
body:not(.home) .site-main {
	padding-top: var(--nav-h);
}

.text-gradient {
	background: var(--wpp-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

.text-secondary {
	color: var(--wpp-ink-soft) !important;
}

/* ----------------------------- Glass utils ----------------------------- */
.glass,
.glass-card {
	background: var(--glass-bg);
	-webkit-backdrop-filter: blur(var(--blur)) saturate(180%);
	backdrop-filter: blur(var(--blur)) saturate(180%);
	border: 1px solid var(--glass-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--glass-shadow);
}

.glass-card {
	transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}

.glass-card.is-hover:hover,
.glass-card.hoverable:hover {
	transform: translateY(-4px);
	box-shadow: var(--glass-shadow-hover);
}

.glass-strong {
	background: var(--glass-bg-strong);
}

/* Fallback se backdrop-filter non è supportato */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {

	.glass,
	.glass-card,
	.navbar-glass,
	.footer-glass,
	.glass-dropdown {
		background: var(--glass-bg-strong);
	}
}

/* ------------------------------- Navbar -------------------------------- */
.navbar-glass {
	background: var(--nav-bg);
	-webkit-backdrop-filter: blur(var(--blur-strong)) saturate(180%);
	backdrop-filter: blur(var(--blur-strong)) saturate(180%);
	border-bottom: 1px solid var(--glass-hairline);
	min-height: var(--nav-h);
	transition: min-height .35s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease);
}

.navbar-glass.is-scrolled {
	min-height: var(--nav-h-scrolled);
	box-shadow: 0 1px 0 var(--glass-hairline), 0 8px 30px rgba(0, 0, 0, .06);
}

.navbar-brand .brand-text {
	font-weight: 700;
	font-size: 1.18rem;
	letter-spacing: -0.02em;
	color: var(--wpp-ink);
}

/* Logo personalizzato (incluso SVG: imponiamo l'altezza, l'immagine scala da sola
   mantenendo le proporzioni — senza questo gli SVG senza dimensioni vengono resi a 0). */
.navbar-brand .custom-logo {
	height: 36px;
	width: auto;
	max-width: 220px;
	display: block;
}
.footer-brand .custom-logo {
	height: 30px;
	width: auto;
	max-width: 200px;
	display: block;
}

/* In modalità scura il logo (SVG monocromatico scuro) viene reso bianco. */
[data-bs-theme="dark"] .custom-logo {
	filter: brightness(0) invert(1);
}

/* Listino prezzi per singolo plugin (home) */
.pricing-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 820px;
	margin: 0 auto;
}
.pricing-row {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.25rem;
}
.pricing-row__icon {
	width: 46px;
	height: 46px;
	flex: none;
	display: grid;
	place-items: center;
	border-radius: 12px;
	background: rgba(120, 120, 128, .12);
	color: var(--wpp-ink);
	font-size: 1.3rem;
}
.pricing-row__main {
	flex: 1 1 auto;
	min-width: 0;
}
.pricing-row__name {
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0;
}
.pricing-row__desc {
	font-size: .85rem;
	color: var(--wpp-ink);
	opacity: .62;
	margin: .15rem 0 0;
}
.pricing-row__price {
	font-weight: 700;
	white-space: nowrap;
}
.pricing-row__free {
	color: #1ba94c;
}
@media (max-width: 575.98px) {
	.pricing-row {
		flex-wrap: wrap;
	}
	.pricing-row__main {
		flex-basis: calc(100% - 62px);
	}
}

.navbar-glass .nav-link {
	color: var(--wpp-ink);
	font-weight: 500;
	font-size: .95rem;
	border-radius: 999px;
	padding: .4rem .9rem;
	transition: background .25s var(--ease), color .25s var(--ease);
}

.navbar-glass .nav-link:hover,
.navbar-glass .nav-link:focus,
.navbar-glass .nav-link.active {
	background: rgba(127, 127, 127, .14);
}

.navbar-toggler {
	color: var(--wpp-ink);
}

.navbar-toggler:focus {
	box-shadow: none;
}

/* Su mobile lingua, account e carrello restano sempre nella barra (fuori dal
   menu a panino): compattiamo logo, pill e toggler per starci su 360–390px. */
@media (max-width: 575.98px) {
	.navbar-brand .custom-logo {
		height: 28px;
		max-width: 118px;
	}
	.navbar-glass .navbar-actions .btn {
		padding: .35rem .55rem;
		font-size: .9rem;
	}
	.navbar-glass .navbar-actions .plgml-switcher__toggle {
		padding: .35rem .55rem;
		font-size: .8rem;
	}
	.navbar-glass .navbar-toggler {
		padding: .25rem .4rem;
	}
}

.glass-dropdown {
	background: var(--glass-bg-strong);
	-webkit-backdrop-filter: blur(var(--blur)) saturate(180%);
	backdrop-filter: blur(var(--blur)) saturate(180%);
	border: 1px solid var(--glass-border);
	border-radius: var(--radius-md);
	box-shadow: var(--glass-shadow);
	padding: .4rem;
}

.glass-dropdown .dropdown-item {
	border-radius: var(--radius-sm);
	color: var(--wpp-ink);
	padding: .5rem .8rem;
}

.glass-dropdown .dropdown-item:hover {
	background: rgba(127, 127, 127, .14);
}

/* ------------------------------- Buttons ------------------------------- */
.btn {
	font-weight: 600;
	border-radius: 999px;
	transition: transform .25s var(--ease-spring), box-shadow .25s var(--ease), background .25s var(--ease), opacity .2s;
}

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

.btn-lg {
	padding: .8rem 1.8rem;
	font-size: 1.02rem;
}

.btn-primary {
	--bs-btn-bg: var(--wpp-accent);
	--bs-btn-border-color: var(--wpp-accent);
	--bs-btn-hover-bg: #0077ed;
	--bs-btn-hover-border-color: #0077ed;
	--bs-btn-active-bg: #006edb;
	--bs-btn-active-border-color: #006edb;
	--bs-btn-color: #fff;
	--bs-btn-hover-color: #fff;
	box-shadow: 0 6px 18px rgba(10, 132, 255, .35);
}

.btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 26px rgba(10, 132, 255, .45);
}

.btn-gradient {
	color: #fff;
	border: 0;
	background: var(--wpp-gradient);
	background-size: 160% 160%;
	box-shadow: 0 8px 24px rgba(94, 92, 230, .40);
}

.btn-gradient:hover {
	color: #fff;
	transform: translateY(-2px);
	background-position: 100% 0;
	box-shadow: 0 12px 30px rgba(94, 92, 230, .50);
}

.btn-ghost {
	color: var(--wpp-ink);
	background: rgba(127, 127, 127, .10);
	border: 1px solid transparent;
}

.btn-ghost:hover {
	color: var(--wpp-ink);
	background: rgba(127, 127, 127, .18);
	transform: translateY(-1px);
}

.btn-outline-glass {
	color: var(--wpp-ink);
	border: 1px solid var(--glass-border);
	background: var(--glass-bg);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.btn-outline-glass:hover {
	color: var(--wpp-ink);
	background: var(--glass-bg-strong);
	transform: translateY(-1px);
}

/* Toggle tema chiaro/scuro */
.theme-toggle {
	width: 40px;
	height: 40px;
	padding: 0;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--wpp-ink);
	background: rgba(127, 127, 127, .12);
	border: 0;
	font-size: 1.05rem;
}

.theme-toggle:hover {
	background: rgba(127, 127, 127, .20);
}

.theme-toggle__moon {
	display: none;
}

.theme-toggle__sun {
	display: inline-block;
}

[data-bs-theme="dark"] .theme-toggle__sun {
	display: none;
}

[data-bs-theme="dark"] .theme-toggle__moon {
	display: inline-block;
}

.cart-count {
	font-size: .78rem;
	min-width: 1.1em;
	line-height: 1;
}

.cart-count:not(.has-items) {
	opacity: .85;
}

/* -------------------------------- Hero --------------------------------- */
.hero {
	position: relative;
	padding-top: calc(var(--nav-h) + 90px);
	padding-bottom: 90px;
	text-align: center;
	overflow: hidden;
}

.hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .4rem .9rem;
	border-radius: 999px;
	font-size: .85rem;
	font-weight: 600;
	color: var(--wpp-accent);
	background: var(--wpp-gradient-soft);
	border: 1px solid var(--glass-border);
}

.hero__title {
	font-size: clamp(2.6rem, 6vw, 4.6rem);
	line-height: 1.04;
	margin: 1.2rem 0 0;
}

.hero__lead {
	font-size: clamp(1.05rem, 2vw, 1.4rem);
	color: var(--wpp-ink-soft);
	max-width: 720px;
	margin: 1.2rem auto 2rem;
}

.hero__visual {
	margin-top: 3.5rem;
}

.hero__visual img {
	border-radius: var(--radius-xl);
	box-shadow: var(--glass-shadow-hover);
	max-width: 100%;
	height: auto;
}

/* --------------------------- Sezioni / blocchi ------------------------- */
.section-head {
	max-width: 720px;
	margin-inline: auto;
}

.section-eyebrow {
	color: var(--wpp-accent);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .82rem;
}

.section-title {
	font-size: clamp(1.9rem, 4vw, 2.9rem);
	margin-top: .4rem;
}

.section-sub {
	color: var(--wpp-ink-soft);
	font-size: 1.12rem;
	margin-top: .8rem;
}

.feature-icon {
	width: 54px;
	height: 54px;
	border-radius: var(--radius-sm);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	color: #fff;
	background: var(--wpp-gradient);
	box-shadow: 0 8px 20px rgba(94, 92, 230, .35);
	margin-bottom: 1rem;
}

/* Card plugin (catalogo / vetrina) */
.plugin-card__media {
	aspect-ratio: 1;
	border-radius: var(--radius-md);
	overflow: hidden;
	background: var(--wpp-gradient-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1rem;
}

.plugin-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.plugin-card__media i {
	font-size: 3rem;
	color: var(--wpp-accent);
}

.plugin-card__price {
	font-weight: 700;
}

.badge-soft {
	background: var(--wpp-gradient-soft);
	color: var(--wpp-accent);
	font-weight: 600;
	border-radius: 999px;
	padding: .35em .8em;
	font-size: .78rem;
}

/* Segmented control (es. Annuale / Lifetime) */
.segmented {
	display: inline-flex;
	padding: 4px;
	border-radius: 999px;
	background: rgba(120, 120, 128, .16);
	border: 1px solid rgba(0, 0, 0, .08);
	position: relative;
}

.segmented input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.segmented label {
	position: relative;
	z-index: 1;
	cursor: pointer;
	padding: .5rem 1.3rem;
	border-radius: 999px;
	font-weight: 600;
	font-size: .95rem;
	color: var(--wpp-ink-soft);
	transition: color .3s var(--ease);
	margin: 0;
}

.segmented input:checked+label {
	color: var(--wpp-ink);
}

.segmented__thumb {
	position: absolute;
	top: 4px;
	bottom: 4px;
	left: 4px;
	width: 0;
	border-radius: 999px;
	background: var(--glass-bg-strong);
	box-shadow: var(--glass-shadow);
	transition: left .35s var(--ease-spring), width .35s var(--ease-spring);
}

/* Pricing card */
.price-card {
	padding: 2rem;
	height: 100%;
	display: flex;
	flex-direction: column;
}

.price-card.is-featured {
	border: 1.5px solid transparent;
	background:
		linear-gradient(var(--wpp-bg), var(--wpp-bg)) padding-box,
		var(--wpp-gradient) border-box;
}

.price-card__amount {
	font-size: 2.6rem;
	font-weight: 700;
	letter-spacing: -0.03em;
}

.price-card__period {
	color: var(--wpp-ink-soft);
	font-size: 1rem;
}

.price-list {
	list-style: none;
	padding: 0;
	margin: 1.2rem 0;
}

.price-list li {
	display: flex;
	gap: .6rem;
	align-items: flex-start;
	padding: .35rem 0;
	color: var(--wpp-ink-soft);
}

.price-list li i {
	color: var(--wpp-accent);
	margin-top: .15rem;
}

/* Testimonial */
.testimonial {
	padding: 1.8rem;
	height: 100%;
}

.testimonial__stars {
	color: #ff9f0a;
}

/* CTA band */
.cta-band {
	border-radius: var(--radius-xl);
	padding: clamp(2rem, 5vw, 4rem);
	text-align: center;
	position: relative;
	overflow: hidden;
}

.cta-band::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--wpp-gradient);
	opacity: .14;
	z-index: -1;
}

/* Logos / trust row */
.trust-logos {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	align-items: center;
	justify-content: center;
	opacity: .65;
}

.trust-logos i {
	font-size: 2rem;
	color: var(--wpp-ink-soft);
}

/* -------------------------------- Footer ------------------------------- */
.site-footer {
	padding: 80px 0 40px;
}

.footer-glass {
	padding: clamp(2rem, 4vw, 3rem);
	border-radius: var(--radius-xl);
	background: var(--glass-bg);
	border: 1px solid var(--glass-border);
	-webkit-backdrop-filter: blur(var(--blur)) saturate(180%);
	backdrop-filter: blur(var(--blur)) saturate(180%);
}

.footer-tagline {
	color: var(--wpp-ink-soft);
	max-width: 320px;
}

.footer-widget__title {
	font-weight: 600;
	margin-bottom: .8rem;
	font-size: .95rem;
}

.footer-menu a,
.footer-widget a {
	color: var(--wpp-ink-soft);
	text-decoration: none;
	display: inline-block;
	padding: .2rem 0;
}

.footer-menu a:hover,
.footer-widget a:hover {
	color: var(--wpp-ink);
}

.footer-divider {
	border-color: var(--glass-hairline);
	opacity: 1;
	margin: 2rem 0 1.2rem;
}

.footer-copy,
.footer-made {
	color: var(--wpp-ink-faint);
	font-size: .9rem;
}

/* ---------------------------- Form (glassy) ---------------------------- */
.form-control,
.form-select {
	border-radius: var(--radius-sm);
	border: 1px solid var(--glass-border);
	background: var(--glass-bg);
	color: var(--wpp-ink);
	padding: .7rem 1rem;
}

.form-control:focus,
.form-select:focus {
	background: var(--glass-bg-strong);
	border-color: var(--wpp-accent);
	box-shadow: 0 0 0 .2rem rgba(10, 132, 255, .2);
	color: var(--wpp-ink);
}

.form-control::placeholder {
	color: var(--wpp-ink-faint);
}

.form-check-input:checked {
	background-color: var(--wpp-accent);
	border-color: var(--wpp-accent);
}

/* --------------------- Richiesta plugin su misura ---------------------- */
.request-form {
	padding: 2rem;
}

@media (max-width: 575.98px) {
	.request-form {
		padding: 1.4rem;
	}
}

.request-form .form-label {
	font-weight: 600;
	font-size: .92rem;
	margin-bottom: .35rem;
}

.request-points {
	list-style: none;
	padding: 0;
	margin: 1.6rem 0 0;
	display: flex;
	flex-direction: column;
	gap: 1.2rem;
}

.request-points li {
	display: flex;
	gap: .95rem;
	align-items: flex-start;
}

.request-points .feature-icon {
	width: 44px;
	height: 44px;
	font-size: 1.15rem;
	margin-bottom: 0;
	flex: 0 0 auto;
}

.request-points h3 {
	font-size: 1.02rem;
	font-weight: 600;
	margin: .15rem 0 .2rem;
}

.request-points p {
	margin: 0;
	color: var(--wpp-ink-faint);
	font-size: .95rem;
}

.request-consent .form-check-label {
	font-size: .9rem;
	color: var(--wpp-ink-faint);
}

.request-consent .form-check-label a {
	font-weight: 600;
}

.request-alert {
	display: flex;
	gap: .6rem;
	align-items: flex-start;
	border-radius: var(--radius-sm);
	border: 1px solid;
	padding: .8rem 1rem;
	margin-bottom: 1.2rem;
	font-size: .95rem;
}

.request-alert.is-ok {
	background: rgba(48, 209, 88, .12);
	border-color: rgba(48, 209, 88, .4);
	color: #1d7a3d;
}

.request-alert.is-err {
	background: rgba(255, 69, 58, .1);
	border-color: rgba(255, 69, 58, .35);
	color: #c0392b;
}

/* Honeypot anti-spam: fuori dallo schermo, mai visibile. */
.plg-hp {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* --------------------------- Reveal on scroll -------------------------- */
.reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .7s var(--ease), transform .7s var(--ease);
	will-change: opacity, transform;
}

.reveal.is-visible {
	opacity: 1;
	transform: none;
}

.reveal[data-delay="1"] { transition-delay: .08s; }
.reveal[data-delay="2"] { transition-delay: .16s; }
.reveal[data-delay="3"] { transition-delay: .24s; }
.reveal[data-delay="4"] { transition-delay: .32s; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.reveal { opacity: 1; transform: none; transition: none; }
	.glass-card:hover, .btn:hover, .glass-card.hoverable:hover { transform: none; }
}

/* ------------------------------ Scrollbar ------------------------------ */
@media (pointer: fine) {
	::-webkit-scrollbar { width: 11px; height: 11px; }
	::-webkit-scrollbar-thumb {
		background: rgba(127, 127, 127, .4);
		border-radius: 999px;
		border: 3px solid transparent;
		background-clip: padding-box;
	}
	::-webkit-scrollbar-thumb:hover {
		background: rgba(127, 127, 127, .6);
		background-clip: padding-box;
	}
}

/* --------------------------- Paginazione (WP) -------------------------- */
.pagination .page-numbers,
.nav-links .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 .5rem;
	margin: 0 .2rem;
	border-radius: 999px;
	color: var(--wpp-ink);
	text-decoration: none;
	background: var(--glass-bg);
	border: 1px solid var(--glass-border);
}

.pagination .page-numbers.current,
.nav-links .page-numbers.current,
.pagination .page-numbers:hover,
.nav-links .page-numbers:hover {
	background: var(--wpp-accent);
	color: #fff;
	border-color: var(--wpp-accent);
}

.nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem;
	justify-content: center;
}

/* ------------------------------ Skip link ------------------------------ */
.skip-link {
	position: absolute;
	top: .5rem;
	left: .5rem;
	z-index: 2000;
	padding: .6rem 1rem;
	border-radius: var(--radius-sm);
	background: var(--wpp-accent);
	color: #fff;
}

/* Article pagina singola */
.page-article {
	max-width: 820px;
}

/* ---------------------------- Hero mockup ------------------------------ */
.mock-window {
	max-width: 720px;
	padding: 0;
	overflow: hidden;
	border-radius: var(--radius-lg);
}

.mock-bar {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .9rem 1.1rem;
	border-bottom: 1px solid var(--glass-hairline);
	background: rgba(127, 127, 127, .06);
}

.mock-dot {
	width: 12px;
	height: 12px;
	border-radius: 999px;
	display: inline-block;
}

.mock-dot--r { background: #ff5f57; }
.mock-dot--y { background: #febc2e; }
.mock-dot--g { background: #28c840; }

.mock-title {
	margin-left: .6rem;
	font-weight: 600;
	font-size: .9rem;
	color: var(--wpp-ink-soft);
}

.mock-body {
	padding: .6rem;
	text-align: left;
}

.mock-row {
	display: flex;
	align-items: center;
	gap: .9rem;
	padding: .85rem .9rem;
	border-radius: var(--radius-md);
	transition: background .25s var(--ease);
}

.mock-row + .mock-row { margin-top: .25rem; }
.mock-row:hover { background: rgba(127, 127, 127, .08); }

.mock-plug {
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	border-radius: var(--radius-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 1.1rem;
	background: var(--wpp-gradient);
}

.mock-info {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.mock-info strong { font-size: .95rem; }

.mock-key {
	color: var(--wpp-ink-faint);
	font-size: .78rem;
	background: transparent;
	padding: 0;
}

.mock-sites {
	flex: 0 0 auto;
	color: var(--wpp-ink-soft);
	font-size: .82rem;
	white-space: nowrap;
}

.mock-state { flex: 0 0 auto; }

@media (max-width: 540px) {
	.mock-sites { display: none; }
	.mock-key { font-size: .7rem; }
}

/* Form di ricerca del tema */
.wpp-search { max-width: 420px; margin-inline: auto; }

/* ============================= WooCommerce ============================= */

/* Breadcrumb */
.woocommerce-breadcrumb,
.wpp-breadcrumb {
	/* WooCommerce rende ".product" position:relative: essendo posizionato, dipinge
	   sopra il contenuto inline del breadcrumb e — col margin-top negativo del gutter
	   Bootstrap (.row.g-lg-5 → -3rem) che lo fa risalire — ne intercetta i click.
	   Posizioniamo il breadcrumb con z-index più alto così resta cliccabile. */
	position: relative;
	z-index: 1;
	color: var(--wpp-ink-faint);
	font-size: .9rem;
	margin-bottom: 1.5rem;
}

.woocommerce-breadcrumb a,
.wpp-breadcrumb a {
	color: var(--wpp-ink-soft);
	text-decoration: none;
}

.woocommerce-breadcrumb a:hover,
.wpp-breadcrumb a:hover {
	color: var(--wpp-accent);
}

/* Shop: griglia prodotti (anche output nativo di WooCommerce) */
.woocommerce ul.products,
ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
	gap: 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce ul.products li.product,
ul.products li.product {
	margin: 0;
	width: auto;
	float: none;
}

/* Card prodotto del catalogo */
.product-card {
	padding: 1.25rem;
	height: 100%;
	display: flex;
	flex-direction: column;
}

.product-card__title,
.product-card .woocommerce-loop-product__title {
	font-size: 1.1rem;
	font-weight: 700;
	margin: 0 0 .25rem;
}

.product-card .price,
.product-card__price {
	color: var(--wpp-ink);
	font-weight: 700;
}

.product-card .price del {
	color: var(--wpp-ink-faint);
	font-weight: 400;
	margin-right: .3rem;
}

.product-card .price ins {
	text-decoration: none;
}

/* Bottoni WooCommerce → pill */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce .button,
.woocommerce #respond input#submit,
.woocommerce input.button {
	border-radius: 999px;
	font-weight: 600;
	background: var(--wpp-accent);
	color: #fff;
	border: 0;
	padding: .6rem 1.3rem;
	transition: transform .2s var(--ease-spring), box-shadow .2s var(--ease);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce .button:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(10, 132, 255, .35);
	color: #fff;
}

.woocommerce .button.alt,
.single_add_to_cart_button {
	background: var(--wpp-gradient);
	box-shadow: 0 8px 24px rgba(94, 92, 230, .4);
}

/* Stato dell'aggiunta al carrello in AJAX: attesa (spinner) e conferma. */
.single_add_to_cart_button.is-loading,
.single_add_to_cart_button.is-added {
	position: relative;
	pointer-events: none;
}
.single_add_to_cart_button.is-loading {
	color: transparent !important;
}
.single_add_to_cart_button.is-loading > * {
	visibility: hidden;
}
.single_add_to_cart_button.is-loading::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 18px;
	margin: -9px 0 0 -9px;
	border: 2px solid rgba(255, 255, 255, .45);
	border-top-color: #fff;
	border-radius: 50%;
	animation: wpp-spin .6s linear infinite;
}
.single_add_to_cart_button.is-added {
	background: #34c759 !important;
	box-shadow: 0 8px 24px rgba(52, 199, 89, .4) !important;
}
@keyframes wpp-spin {
	to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
	.single_add_to_cart_button.is-loading::after { animation-duration: 1.4s; }
}

/* ---- Pagina singolo plugin ---- */
.product-hero {
	padding-top: calc(var(--nav-h) + 40px);
}

.product-media {
	aspect-ratio: 1 / 1;
	border-radius: var(--radius-lg);
	background: var(--wpp-gradient-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--glass-border);
}

.product-media i {
	font-size: 6rem;
	color: var(--wpp-accent);
}

.purchase-box {
	padding: 1.5rem;
}

.product-price-lg {
	font-size: 2.4rem;
	font-weight: 700;
	letter-spacing: -.03em;
}

.purchase-label {
	font-size: .82rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--wpp-ink-faint);
	margin-bottom: .5rem;
}

/* Rating */
.wpp-rating {
	color: #ff9f0a;
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.wpp-rating .muted {
	color: var(--wpp-ink-faint);
	font-weight: 500;
}

/* Tab descrizione/changelog/requisiti */
.wpp-tabs .nav {
	border: 0;
	gap: .4rem;
	margin-bottom: 1.5rem;
}

.wpp-tabs .nav-link {
	border: 0;
	border-radius: 999px;
	color: var(--wpp-ink-soft);
	font-weight: 600;
	padding: .5rem 1.1rem;
}

.wpp-tabs .nav-link.active {
	background: rgba(127, 127, 127, .14);
	color: var(--wpp-ink);
}

/* Changelog */
.changelog-entry {
	padding: 1rem 0;
	border-bottom: 1px solid var(--glass-hairline);
}

.changelog-entry:last-child {
	border-bottom: 0;
}

.changelog-version {
	font-weight: 700;
}

.changelog-date {
	color: var(--wpp-ink-faint);
	font-size: .85rem;
}

/* Requisiti */
.req-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.req-list li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: .7rem 0;
	border-bottom: 1px solid var(--glass-hairline);
}

.req-list li:last-child {
	border-bottom: 0;
}

.req-list .req-k {
	color: var(--wpp-ink-soft);
}

.req-list .req-v {
	font-weight: 600;
}

/* Avvisi WooCommerce → glass */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: var(--radius-md);
	border: 1px solid var(--glass-border);
	background: var(--glass-bg);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	padding: 1rem 1.2rem;
	list-style: none;
}

.woocommerce-message {
	border-left: 4px solid #28c840;
}

.woocommerce-info {
	border-left: 4px solid var(--wpp-accent);
}

.woocommerce-error {
	border-left: 4px solid #ff5f57;
}

/* Nasconde l'icona del font WooCommerce nei messaggi (si sovrapponeva al testo). */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	display: none !important;
	content: none !important;
}
/* Il pulsante nel messaggio resta allineato a destra, senza coprire il testo. */
.woocommerce-message {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}
.woocommerce-message .button {
	margin-left: auto;
	float: none;
}

/* Toast "aggiunto al carrello" (notifica glass in alto a destra) */
.wpp-toast {
	position: fixed;
	top: 84px;
	right: 20px;
	z-index: 1080;
	display: flex;
	align-items: center;
	gap: .7rem;
	max-width: 360px;
	padding: .85rem 1.1rem;
	background: var(--glass-bg-strong);
	border: 1px solid var(--glass-hairline);
	border-radius: 14px;
	box-shadow: var(--glass-shadow);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	backdrop-filter: blur(20px) saturate(180%);
	color: var(--wpp-ink);
	transform: translateY(-14px);
	opacity: 0;
	pointer-events: none;
	transition: opacity .28s ease, transform .28s ease;
}
.wpp-toast.is-visible {
	transform: translateY(0);
	opacity: 1;
	pointer-events: auto;
}
.wpp-toast__icon {
	flex: none;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #34c759;
	color: #fff;
	display: grid;
	place-items: center;
	font-size: 15px;
	font-weight: 700;
}
.wpp-toast__msg {
	font-weight: 600;
	font-size: .95rem;
	letter-spacing: -.01em;
}
.wpp-toast__link {
	margin-left: auto;
	white-space: nowrap;
	font-weight: 600;
	font-size: .9rem;
	color: var(--wpp-accent);
	text-decoration: none;
}
.wpp-toast__link:hover {
	text-decoration: underline;
}
@media (max-width: 575.98px) {
	.wpp-toast {
		left: 14px;
		right: 14px;
		top: 76px;
		max-width: none;
	}
}

/* Variations form nativo reso glass (fallback) */
.woocommerce div.product form.cart .variations select {
	border-radius: var(--radius-sm);
	border: 1px solid var(--glass-border);
	background: var(--glass-bg);
	padding: .6rem .8rem;
	color: var(--wpp-ink);
}

.woocommerce div.product .stock {
	color: #28c840;
	font-weight: 600;
}

/* Galleria immagine del prodotto singolo — override del default WooCommerce (48% + float) */
.woocommerce div.product .woocommerce-product-gallery {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	position: relative;
}
.woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
	margin: 0 !important;
	padding: 0;
}
/* Annulla l'altezza fissa che FlexSlider imposta sul viewport: l'altezza è
   governata dal riquadro a proporzioni costanti qui sotto, così le immagini
   di formati diversi non vengono tagliate né fanno "saltare" il layout. */
.woocommerce-product-gallery .flex-viewport {
	height: auto !important;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image,
.woocommerce-product-gallery .woocommerce-product-gallery__image--placeholder {
	margin: 0 !important;
	aspect-ratio: 1 / 1;
	background: #f4f5f7;
	border-radius: 14px;
	overflow: hidden;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image a {
	display: flex !important;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	border-radius: 14px;
}
/* Lente di zoom: pulsante tondo glass in alto a destra */
.woocommerce-product-gallery .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 9;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, .92);
	border: 1px solid var(--glass-hairline, rgba(0, 0, 0, .08));
	box-shadow: 0 4px 14px rgba(0, 0, 0, .14);
	display: flex;
	align-items: center;
	justify-content: center;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
/* Miniature dello slider come riga di anteprime arrotondate */
.woocommerce-product-gallery .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	/* !important: la regola di WooCommerce ".woocommerce div.product div.images
	   .flex-control-thumbs { margin:0 }" ha specificità più alta e azzererebbe
	   lo stacco dall'immagine grande. */
	margin: 1.5rem 0 0 !important;
	padding: 0;
	list-style: none;
}
.woocommerce-product-gallery .flex-control-thumbs li {
	width: 64px;
	margin: 0;
	float: none;
	list-style: none;
}
.woocommerce-product-gallery .flex-control-thumbs img {
	width: 100%;
	height: auto;
	border-radius: 9px;
	cursor: pointer;
	opacity: .55;
	border: 1px solid var(--glass-hairline, rgba(0, 0, 0, .08));
	transition: opacity .2s ease;
}
.woocommerce-product-gallery .flex-control-thumbs img:hover,
.woocommerce-product-gallery .flex-control-thumbs img.flex-active {
	opacity: 1;
}

/* Form variazioni dentro il box d'acquisto (layout verticale, etichette glass) */
.purchase-box .price {
	font-size: 1.9rem;
	font-weight: 700;
	letter-spacing: -.02em;
	color: var(--wpp-ink);
	margin-bottom: 1rem;
}

.purchase-box .variations {
	width: 100%;
	border: 0;
	margin: 0 0 1rem;
}

.purchase-box .variations tbody,
.purchase-box .variations tr,
.purchase-box .variations td,
.purchase-box .variations th {
	display: block;
	width: auto;
	padding: 0;
	border: 0;
}

.purchase-box .variations tr {
	margin-bottom: 1.1rem;
}

.purchase-box .variations th.label label {
	display: block;
	margin-bottom: .5rem;
	font-size: .82rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--wpp-ink-faint);
}

.purchase-box .reset_variations {
	font-size: .85rem;
	margin-left: .5rem;
}

.purchase-box .single_variation .price {
	font-size: 2.2rem;
	margin-bottom: 1rem;
}

.purchase-box .woocommerce-variation-add-to-cart {
	display: flex;
	gap: .75rem;
	flex-wrap: wrap;
	align-items: center;
}

.purchase-box .single_add_to_cart_button {
	flex: 1 1 auto;
}

.purchase-box .quantity .qty {
	width: 4.5rem;
	border-radius: var(--radius-sm);
	border: 1px solid var(--glass-border);
	background: var(--glass-bg);
	color: var(--wpp-ink);
	padding: .55rem .6rem;
}

.woocommerce-variation-availability {
	color: #28c840;
	font-size: .9rem;
	margin-top: .5rem;
}

/* ---- Catalogo (shop): forza la nostra griglia SOPRA il CSS di WooCommerce ---- */
.woocommerce ul.products,
.woocommerce-page ul.products,
ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
	gap: 1.75rem !important;
	margin: 0 !important;
	padding: 0 !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products li.product {
	width: auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
}

.woocommerce ul.products li.product::before,
.woocommerce ul.products li.product::after {
	display: none !important;
	content: "" !important;
}

/* WooCommerce aggiunge ::before/::after a ul.products (clearfix): in una griglia
   CSS diventano celle vuote → spazio vuoto iniziale. Li disattiviamo. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after,
ul.products::before,
ul.products::after {
	display: none !important;
	content: none !important;
}

.product-card {
	width: 100%;
}

.product-card .price,
.product-card__price {
	font-size: .98rem;
}

/* Intestazione e ordinamento dello shop */
.woocommerce .woocommerce-result-count {
	color: var(--wpp-ink-soft);
	font-size: .92rem;
	margin: 0 0 1rem;
}

.woocommerce .woocommerce-ordering {
	margin-bottom: 1.5rem;
}

.woocommerce .woocommerce-ordering select,
.woocommerce select.orderby {
	border-radius: 999px;
	border: 1px solid var(--glass-border);
	background: var(--glass-bg);
	color: var(--wpp-ink);
	padding: .55rem 1rem;
	font-weight: 500;
}

.woocommerce-products-header,
.woocommerce .woocommerce-products-header__title {
	margin-bottom: .5rem;
}

.woocommerce-products-header__title,
.woocommerce .page-title {
	font-size: clamp(2rem, 4vw, 2.8rem);
	font-weight: 700;
	letter-spacing: -.02em;
}

/* ============================== My Account ============================= */
/* WooCommerce aggiunge ::before/::after (clearfix) a .woocommerce: in una
   griglia diventano celle vuote che spostano i veri contenuti. Via. */
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after {
	display: none !important;
	content: none !important;
}

/* Griglia sidebar+contenuto SOLO nella vista loggata (menu account presente).
   Sulla vista login/registrazione il wrapper resta in flusso normale,
   altrimenti #customer_login finisce nella colonna stretta da 230px. */
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: grid !important;
	grid-template-columns: 230px minmax(0, 1fr) !important;
	gap: 2rem;
	align-items: start;
	width: 100%;
}

/* Le notice occupano tutta la riga sopra menu e contenuto */
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

/* Annulla float/width di WooCommerce sui due pannelli (rompono la griglia) */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

/* Posizionamento esplicito: menu a sinistra (stretto), contenuto a destra (largo) */
.woocommerce-account .woocommerce-MyAccount-navigation {
	grid-column: 1 !important;
}

.woocommerce-account .woocommerce-MyAccount-content {
	grid-column: 2 !important;
	min-width: 0;
}

@media (max-width: 768px) {
	.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
		grid-template-columns: 1fr;
	}
}

/* -------------------- Login / Registrazione (non loggato) -------------------- */
/* Due card affiancate e centrate. Annulla sia le colonne float 48% di
   WooCommerce sia le classi griglia .col-1/.col-2 di Bootstrap (8%/16%). */
.woocommerce-account #customer_login {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem;
	align-items: start;
	width: 100%;
	max-width: 920px;
	margin: 0 auto;
}

.woocommerce-account #customer_login::before,
.woocommerce-account #customer_login::after {
	display: none !important;
	content: none !important;
}

.woocommerce-account #customer_login .col-1,
.woocommerce-account #customer_login .col-2 {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	flex: none !important;
	margin: 0 !important;
	padding: 0 !important;
	min-width: 0;
}

@media (max-width: 768px) {
	.woocommerce-account #customer_login {
		grid-template-columns: 1fr;
	}
}

.woocommerce-account #customer_login h2 {
	font-size: 1.45rem;
	font-weight: 700;
	letter-spacing: -.01em;
	margin: 0 0 1rem;
}

/* Card glass per i form */
.woocommerce-account #customer_login form.login,
.woocommerce-account #customer_login form.register {
	margin: 0;
	padding: 1.75rem;
	border: 1px solid var(--glass-border);
	border-radius: var(--radius-lg);
	background: var(--glass-bg);
	box-shadow: var(--glass-shadow);
	-webkit-backdrop-filter: blur(var(--blur)) saturate(180%);
	backdrop-filter: blur(var(--blur)) saturate(180%);
}

.woocommerce-account #customer_login .form-row {
	margin: 0 0 1.1rem;
	padding: 0;
}

.woocommerce-account #customer_login .form-row label:not(.woocommerce-form__label-for-checkbox) {
	display: block;
	font-weight: 500;
	font-size: .92rem;
	margin-bottom: .35rem;
	color: var(--wpp-ink);
}

/* Campi di testo (vale anche per lost password). Le custom property --wc-form-*
   pilotano la regola di woocommerce.css; il selettore lungo serve a batterne
   la specificità (.woocommerce form .form-row .input-text) per il resto. */
.woocommerce-account {
	--wc-form-border-radius: 12px;
	--wc-form-border-width: 1px;
	--wc-form-border-color: var(--glass-hairline);
	--wc-form-color-background: var(--wpp-bg-2);
	--wc-form-color-text: var(--wpp-ink);
}

.woocommerce-account .input-text,
.woocommerce-account form .form-row .input-text {
	display: block;
	width: 100%;
	padding: .65rem .9rem;
	font-size: 1rem;
	color: var(--wpp-ink);
	background: var(--wpp-bg-2);
	border: 1px solid var(--glass-hairline);
	border-radius: 12px;
	transition: border-color .18s var(--ease), box-shadow .18s var(--ease);
}

.woocommerce-account .input-text:focus,
.woocommerce-account form .form-row .input-text:focus {
	outline: 0;
	border-color: var(--wpp-accent);
	box-shadow: 0 0 0 4px rgba(0, 113, 227, .14);
}

/* Wrapper del campo password con toggle "mostra password" */
.woocommerce-account .password-input {
	display: block;
	width: 100%;
}

/* Asterisco dei campi obbligatori sempre visibile (Woo lo nasconde di default) */
.woocommerce-account form .form-row .required {
	visibility: visible;
	color: #e30000;
	text-decoration: none;
}

/* Righe checkbox (Ricordami, consenso privacy) */
.woocommerce-account #customer_login .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: .55rem;
	font-size: .95rem;
	font-weight: 500;
	margin: 0;
	cursor: pointer;
}

.woocommerce-account #customer_login .woocommerce-form__input-checkbox {
	flex: 0 0 auto;
	width: 1.05rem;
	height: 1.05rem;
	margin-top: .18rem;
	accent-color: var(--wpp-accent);
}

.woocommerce-account #customer_login .woocommerce-form-login__rememberme {
	margin-bottom: 1.1rem;
}

/* Consenso privacy (registrazione) */
.woocommerce-account #customer_login .pluggies-privacy-consent .woocommerce-form__label-for-checkbox {
	font-size: .9rem;
	font-weight: 500;
}

/* Bottoni submit: pillola accent come i .btn-primary del tema */
.woocommerce-account #customer_login button.button,
.woocommerce-account button.woocommerce-Button.button,
.woocommerce-account .woocommerce-ResetPassword button.button {
	display: inline-block;
	width: 100%;
	padding: .68rem 1.6rem;
	font-size: 1rem;
	font-weight: 600;
	color: #fff;
	text-align: center;
	background: var(--wpp-accent);
	border: 1px solid var(--wpp-accent);
	border-radius: 999px;
	box-shadow: 0 6px 18px rgba(10, 132, 255, .35);
	transition: background .18s var(--ease), transform .18s var(--ease);
	cursor: pointer;
}

.woocommerce-account #customer_login button.button:hover,
.woocommerce-account button.woocommerce-Button.button:hover,
.woocommerce-account .woocommerce-ResetPassword button.button:hover {
	background: #0077ed;
	border-color: #0077ed;
	color: #fff;
}

/* Testo informativo privacy e link password dimenticata */
.woocommerce-account #customer_login .woocommerce-privacy-policy-text p {
	font-size: .85rem;
	line-height: 1.55;
	color: var(--wpp-ink-soft);
	margin: 0 0 1.1rem;
}

.woocommerce-account #customer_login .lost_password {
	margin: 1rem 0 0;
	text-align: center;
	font-size: .92rem;
}

.woocommerce-account #customer_login .lost_password a {
	color: var(--wpp-accent);
	text-decoration: none;
}

.woocommerce-account #customer_login .lost_password a:hover {
	text-decoration: underline;
}

.woocommerce-MyAccount-navigation {
	position: sticky;
	top: calc(var(--nav-h) + 16px);
}

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: .5rem;
	border-radius: var(--radius-lg);
	background: var(--glass-bg);
	border: 1px solid var(--glass-border);
	-webkit-backdrop-filter: blur(var(--blur)) saturate(180%);
	backdrop-filter: blur(var(--blur)) saturate(180%);
}

.woocommerce-MyAccount-navigation li {
	margin: 0;
}

.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: .6rem 1rem;
	border-radius: var(--radius-sm);
	color: var(--wpp-ink-soft);
	text-decoration: none;
	font-weight: 500;
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
	background: rgba(127, 127, 127, .14);
	color: var(--wpp-ink);
}

.woocommerce-MyAccount-content {
	min-width: 0;
}

/* Card licenza */
.pl-group {
	margin-bottom: 2.5rem;
}

.pl-group__head {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: 1rem;
}

.pl-group__icon {
	width: 42px;
	height: 42px;
	border-radius: var(--radius-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: var(--wpp-gradient);
	font-size: 1.1rem;
}

.pl-group__title {
	margin: 0;
	font-size: 1.2rem;
}

.pl-group__count {
	color: var(--wpp-ink-faint);
	font-size: .9rem;
	margin-left: auto;
}

.pl-card {
	padding: 1.25rem 1.5rem;
	margin-bottom: 1rem;
}

.pl-card__key {
	display: flex;
	align-items: center;
	gap: .75rem;
	flex-wrap: wrap;
}

.pl-key {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 1rem;
	font-weight: 600;
	color: var(--wpp-ink);
	letter-spacing: .04em;
	background: transparent;
	padding: 0;
}

.pl-status {
	margin-left: auto;
}

.pl-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 1.2rem;
	margin-top: .85rem;
	color: var(--wpp-ink-soft);
	font-size: .92rem;
}

.pl-card__meta i {
	color: var(--wpp-accent);
}

.pl-sites {
	margin-top: 1rem;
	border-top: 1px solid var(--glass-hairline);
	padding-top: .6rem;
}

.pl-site {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	padding: .3rem 0;
}

.pl-site__url {
	color: var(--wpp-ink-soft);
	font-size: .9rem;
	word-break: break-all;
}

.pl-site__form {
	margin: 0;
}

.pl-site__remove {
	color: var(--wpp-ink-faint);
	padding: .2rem .5rem;
}

.pl-site__remove:hover {
	color: #ff5f57;
}

.pl-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-top: 1rem;
}

/* ====================== Ordine ricevuto (thank you) ===================== */
.woocommerce-order {
	max-width: 860px;
	margin: 0 auto;
}

.woocommerce-order .woocommerce-thankyou-order-received {
	font-size: 1.12rem;
	font-weight: 500;
	color: var(--wpp-ink);
	margin: 0 0 1.5rem;
}

/* Riepilogo (numero, data, email, totale): card glass a colonne.
   Il clearfix ::before/::after di WooCommerce diventerebbe una cella vuota. */
.woocommerce-order ul.order_details::before,
.woocommerce-order ul.order_details::after {
	display: none !important;
	content: none !important;
}

.woocommerce-order ul.order_details {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 1rem 1.75rem;
	margin: 0 0 2.5rem;
	padding: 1.4rem 1.6rem;
	border-radius: var(--radius-lg);
	background: var(--glass-bg);
	border: 1px solid var(--glass-border);
	box-shadow: var(--glass-shadow);
	-webkit-backdrop-filter: blur(var(--blur)) saturate(180%);
	backdrop-filter: blur(var(--blur)) saturate(180%);
}

.woocommerce-order ul.order_details li {
	float: none !important;
	width: auto;
	margin: 0;
	padding: 0;
	border: 0 !important;
	font-size: .75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--wpp-ink-faint);
}

.woocommerce-order ul.order_details li strong {
	display: block;
	margin-top: .2rem;
	font-size: 1.02rem;
	font-weight: 650;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wpp-ink);
}

/* Titoli di sezione coerenti con l'area account */
.woocommerce-order h2 {
	font-size: 1.45rem;
	font-weight: 700;
	letter-spacing: -.01em;
	margin: 2.2rem 0 1rem;
}

/* Tabella dettagli ordine: card pulita senza doppi bordi */
.woocommerce-order table.shop_table {
	border: 1px solid var(--glass-hairline);
	border-radius: var(--radius-md);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: var(--glass-bg-strong);
	box-shadow: var(--glass-shadow);
	margin-bottom: 1.5rem;
}

.woocommerce-order table.shop_table th,
.woocommerce-order table.shop_table td {
	border: 0;
	border-bottom: 1px solid var(--glass-hairline);
	padding: .85rem 1.2rem;
}

.woocommerce-order table.shop_table tbody tr:last-child td,
.woocommerce-order table.shop_table tfoot tr:last-child th,
.woocommerce-order table.shop_table tfoot tr:last-child td {
	border-bottom: 0;
}

.woocommerce-order table.shop_table tfoot tr:last-child {
	background: rgba(0, 113, 227, .06);
}

.woocommerce-order table.shop_table tfoot tr:last-child th,
.woocommerce-order table.shop_table tfoot tr:last-child td {
	font-size: 1.02rem;
}

/* Indirizzo di fatturazione: card glass, niente corsivo né bordo tratteggiato */
.woocommerce-order .woocommerce-customer-details address {
	font-style: normal;
	border: 1px solid var(--glass-border);
	border-radius: var(--radius-md);
	background: var(--glass-bg);
	box-shadow: var(--glass-shadow);
	padding: 1.25rem 1.5rem;
	line-height: 1.7;
}

/* Informazioni aggiuntive (campi fiscali): righe pulite in card */
.woocommerce-order .wc-block-components-additional-fields-list {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0;
	margin: 0 0 1.5rem;
	border: 1px solid var(--glass-hairline);
	border-radius: var(--radius-md);
	background: var(--glass-bg-strong);
	box-shadow: var(--glass-shadow);
	overflow: hidden;
}

.woocommerce-order .wc-block-components-additional-fields-list dt,
.woocommerce-order .wc-block-components-additional-fields-list dd {
	margin: 0;
	padding: .85rem 1.2rem;
	border-bottom: 1px solid var(--glass-hairline);
	background: none;
}

.woocommerce-order .wc-block-components-additional-fields-list dt {
	font-weight: 600;
}

.woocommerce-order .wc-block-components-additional-fields-list dt:nth-last-of-type(1),
.woocommerce-order .wc-block-components-additional-fields-list dd:nth-last-of-type(1) {
	border-bottom: 0;
}

/* Sezione licenze e download (resa da pluggies-core) */
.pl-thankyou {
	margin: 0 0 2.5rem;
}

.pl-thankyou__title {
	margin-top: 0 !important;
}

.pl-thankyou__intro {
	color: var(--wpp-ink-soft);
	font-size: .95rem;
	line-height: 1.6;
	margin: 0 0 1.25rem;
}

.pl-thankyou__head {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: .9rem;
}

.pl-thankyou__name {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 650;
}

.pl-thankyou__head .pl-status {
	margin-left: auto;
}

.pl-thankyou__footer {
	color: var(--wpp-ink-soft);
	font-size: .92rem;
	margin: 1rem 0 0;
}

/* Offset della navbar fissa sotto la admin bar di WordPress (utenti loggati) */
.admin-bar .navbar-glass {
	top: 32px;
}

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

/* =========================================================================
 *  Documentazione (CPT pluggies_doc): hub, indice, contenuto guida
 * ========================================================================= */
.doc-card {
	color: inherit;
	text-decoration: none;
	transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}
.doc-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--glass-shadow-hover);
	color: inherit;
}
.doc-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	font-size: 1.5rem;
	color: var(--wpp-accent);
	background: rgba(0, 113, 227, .1);
}
.doc-card__desc {
	color: var(--wpp-ink-soft);
	font-size: .95rem;
	line-height: 1.5;
}
.doc-card__link {
	font-weight: 600;
	color: var(--wpp-accent);
	font-size: .92rem;
}
.doc-card__link i {
	display: inline-block;
	transition: transform .2s var(--ease);
}
.doc-card:hover .doc-card__link i {
	transform: translateX(4px);
}

.doc-breadcrumb {
	font-size: .9rem;
	color: var(--wpp-ink-soft);
}
.doc-breadcrumb a {
	color: var(--wpp-ink-soft);
	text-decoration: none;
}
.doc-breadcrumb a:hover {
	color: var(--wpp-accent);
}
.doc-breadcrumb .current {
	color: var(--wpp-ink);
	font-weight: 600;
}
.doc-breadcrumb span {
	margin: 0 .4rem;
	opacity: .5;
}

.doc-toc {
	position: sticky;
	top: 96px;
	border-left: 2px solid var(--glass-hairline, rgba(0, 0, 0, .08));
	padding-left: 1rem;
}
.doc-toc__title {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--wpp-ink-soft);
	margin-bottom: .6rem;
}
.doc-toc ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.doc-toc li {
	margin: 0 0 .5rem;
}
.doc-toc a {
	display: block;
	color: var(--wpp-ink-soft);
	text-decoration: none;
	font-size: .92rem;
	line-height: 1.35;
	transition: color .2s var(--ease);
}
.doc-toc a:hover {
	color: var(--wpp-accent);
}
@media (max-width: 991.98px) {
	.doc-toc {
		position: static;
		border-left: 0;
		padding-left: 0;
		margin-bottom: 1rem;
	}
}

.doc-content {
	line-height: 1.7;
	color: var(--wpp-ink);
}
.doc-content h2 {
	font-size: 1.4rem;
	font-weight: 700;
	margin: 2rem 0 .8rem;
	scroll-margin-top: 96px;
}
.doc-content h2:first-child {
	margin-top: 0;
}
.doc-content h3 {
	font-size: 1.1rem;
	font-weight: 700;
	margin: 1.4rem 0 .5rem;
}
.doc-content p {
	margin: 0 0 1rem;
}
.doc-content ul,
.doc-content ol {
	margin: 0 0 1rem 1.2rem;
}
.doc-content li {
	margin-bottom: .4rem;
}
.doc-content a {
	color: var(--wpp-accent);
}
.doc-content code {
	background: rgba(0, 0, 0, .06);
	padding: .1rem .4rem;
	border-radius: 6px;
	font-size: .9em;
}
.doc-content blockquote {
	margin: 1.2rem 0;
	padding: .8rem 1.1rem;
	border-left: 3px solid var(--wpp-accent);
	background: rgba(0, 113, 227, .05);
	border-radius: 0 10px 10px 0;
	color: var(--wpp-ink-soft);
}
.doc-content blockquote p:last-child {
	margin-bottom: 0;
}

.doc-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}
.doc-cta > div {
	display: flex;
	flex-direction: column;
}
.doc-cta .text-muted {
	font-size: .92rem;
}
.btn-primary-glass {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	background: linear-gradient(135deg, var(--wpp-accent), var(--wpp-accent-2, #5e5ce6));
	color: #fff;
	border: 0;
	padding: .7rem 1.4rem;
	border-radius: 999px;
	font-weight: 600;
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(0, 113, 227, .3);
	transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.btn-primary-glass:hover {
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 26px rgba(0, 113, 227, .4);
}

/* Prodotti correlati / upsell: stacco dalla scheda prodotto sopra */
.related.products,
.upsells.products {
	margin-top: 4rem;
	padding-top: 2.5rem;
	border-top: 1px solid var(--glass-hairline, rgba(0, 0, 0, .08));
	clear: both;
}
.related.products > h2,
.upsells.products > h2 {
	margin-bottom: 1.75rem;
}
