/* ==========================================================================
   Tcg-Pull · Pokémon 8-bit Game Boy edition
   Palette bright + retro pixel touches · niente più dark
   ========================================================================== */

:root {
	/* Core palette (bright, readable, Pokémon classic) */
	--tp-red: #e63946;
	--tp-red-deep: #c1121f;
	--tp-yellow: #ffd60a;
	--tp-yellow-soft: #fff3a3;
	--tp-blue: #4361ee;
	--tp-blue-deep: #2a3eb1;
	--tp-green: #06d6a0;
	--tp-cream: #fff8e7;
	--tp-cream-deep: #fff0c2;
	--tp-paper: #ffffff;
	--tp-ink: #1d1d2c;
	--tp-ink-soft: #4a4a63;
	--tp-line: #1d1d2c;

	/* Fonts */
	--tp-font-pixel: 'Press Start 2P', 'VT323', monospace;
	--tp-font-display: 'VT323', 'Press Start 2P', monospace;
	--tp-font-body: 'Outfit', 'Nunito', system-ui, -apple-system, sans-serif;

	/* Hard pixel shadows (no blur) */
	--tp-shadow-sm: 3px 3px 0 var(--tp-ink);
	--tp-shadow:    5px 5px 0 var(--tp-ink);
	--tp-shadow-lg: 7px 7px 0 var(--tp-ink);

	/* Pixel grid bg */
	--tp-grid: repeating-linear-gradient(0deg, transparent 0 23px, rgba(29,29,44,.04) 23px 24px),
	           repeating-linear-gradient(90deg, transparent 0 23px, rgba(29,29,44,.04) 23px 24px);
}

/* --- Cursor reset: niente cursori custom dal sito --- */
html, body, body * { cursor: auto; }

/* Forza pointer su TUTTI gli elementi cliccabili (anche con specificity alta) */
html body a,
html body a *,
html body button,
html body button *,
html body [role="button"],
html body input[type="submit"],
html body input[type="button"],
html body .button,
html body .button *,
html body .tcgpull-btn,
html body .tcgpull-account-fab,
html body .tcgpull-account-fab *,
html body .tcgpull-cart-fab,
html body .tcgpull-cart-fab *,
html body label[for],
html body select,
html body .ct-menu-link {
	cursor: pointer !important;
}
input[type="text"], input[type="email"], input[type="number"], input[type="password"], textarea {
	cursor: text !important;
}

/* --- Reset / base — kill any dark Blocksy palette --- */
html,
html body,
body.home,
body.page,
body.archive,
body.single,
body.woocommerce,
body.woocommerce-page {
	background: var(--tp-cream) !important;
	background-image: var(--tp-grid) !important;
	background-attachment: fixed;
	color: var(--tp-ink) !important;
	font-family: var(--tp-font-body);
}

/* Blocksy main wrappers: transparent so body cream shows through */
#main-container,
.ct-main-container,
.ct-container,
.ct-container-full,
[id="main"],
#main,
main,
article,
.entry-content,
.site-main,
.ct-main-styles {
	background: transparent !important;
}

/* Generic prose colour fix on light bg */
.entry-content,
.entry-content p,
.entry-content li,
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5 {
	color: var(--tp-ink) !important;
}

/* Fix bg grid che si vede dentro gli input (no background-image pattern) */
input,
textarea,
select,
input[type="text"],
input[type="email"],
input[type="number"],
input[type="password"],
input[type="tel"],
.input-text,
.wpcf7-form-control {
	background-image: none !important;
	background: #ffffff !important;
}
input:focus,
textarea:focus,
select:focus {
	background: #fff !important;
	background-image: none !important;
}

h1, h2, h3, h4, h5, h6,
.entry-title {
	font-family: var(--tp-font-body);
	font-weight: 800;
	color: var(--tp-ink);
	letter-spacing: -0.01em;
}

a { color: var(--tp-blue); }
a:hover { color: var(--tp-red); }

/* OVERRIDE Blocksy: link testuali (no bottoni/CTA/menu/footer) → rosso scuro per contrasto su crema
   Esclusi esplicitamente: link header, menu, footer (devono restare gialli) */
.entry-content a:not(.button):not(.tcgpull-btn):not(.tcgpull-cat-card):not(.tcgpull-tg-cta):not(.tcgpull-vinted-cta):not(.wp-block-button__link):not(.ct-menu-link),
main .woocommerce a:not(.button):not(.tcgpull-btn):not(.tcgpull-tg-cta):not(.tcgpull-vinted-cta):not([class*="wp-block"]):not(.ct-menu-link),
main .woocommerce-page a:not(.button):not(.tcgpull-btn):not(.tcgpull-tg-cta):not(.tcgpull-vinted-cta):not(.ct-menu-link),
.page-content a:not(.ct-menu-link),
.tcgpull-contact-main a:not(.button):not(.ct-menu-link) {
	color: var(--tp-red-deep) !important;
	text-decoration: underline !important;
	font-weight: 700;
}
main .entry-content a:hover,
main .woocommerce a:not(.button):hover,
main .woocommerce-page a:not(.button):hover {
	color: var(--tp-red) !important;
}
/* Eccezioni: i link dentro contesti scuri (footer, header) RESTANO gialli
   Specificity alta per battere il rosso WC che viene dopo in cascade */
html body header.ct-header a,
html body header.ct-header .ct-menu-link,
html body .ct-header [data-id="menu"] a,
html body [data-footer] a,
html body .tcgpull-footer__contacts a,
html body .tcgpull-footer__links a {
	color: var(--tp-yellow) !important;
	text-decoration: none !important;
	font-weight: 700 !important;
}
html body header.ct-header .site-title a,
html body header.ct-header [data-id="logo"] a {
	color: transparent !important; /* logo bg-image only */
}
html body header.ct-header a:hover,
html body header.ct-header .ct-menu-link:hover {
	color: #ffffff !important;
}
/* Link dentro short_description / banner gialli devono restare neri (no rosso su giallo) */
.woocommerce-product-details__short-description a,
.tcgpull-stock-banner a:not(.tcgpull-howto-link),
.wpcf7 .tcgpull-req {
	color: var(--tp-ink) !important;
}

/* --- HEADER (Blocksy override max specificity) --- */
header#header.ct-header,
.ct-header,
[data-row="middle"] {
	background: var(--tp-red) !important;
	background-image: linear-gradient(180deg, var(--tp-red) 0%, var(--tp-red) 50%, var(--tp-red-deep) 50%, var(--tp-red-deep) 100%) !important;
	border-bottom: 4px solid var(--tp-ink) !important;
	color: #fff !important;
	position: relative;
}
.ct-header::after {
	content: '';
	display: block;
	position: absolute;
	bottom: -10px;
	left: 0;
	right: 0;
	height: 6px;
	background-image:
		linear-gradient(90deg, var(--tp-yellow) 0 12px, transparent 12px 24px);
	background-size: 24px 6px;
	pointer-events: none;
}

.ct-header a,
.ct-header .ct-menu-link,
.ct-header .ct-cart-item,
.ct-header .ct-header-account a,
[data-row="middle"] a {
	color: #fff !important;
	text-shadow: 2px 2px 0 rgba(0,0,0,.25);
}
.ct-header .ct-menu-link {
	font-family: var(--tp-font-body);
	font-weight: 800;
	text-transform: uppercase;
	font-size: 13px !important;
	letter-spacing: 0.06em;
}
.ct-header .ct-menu-link:hover,
.ct-header a:hover {
	color: var(--tp-yellow) !important;
}

/* Sostituisce il site-title testo con il logo SVG (direttamente sul rosso del header, senza box) */
[data-id="logo"] .site-title,
.ct-header .site-title,
[data-id="logo"] .site-title-container {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0 !important;
}
[data-id="logo"] .site-title a,
.ct-header .site-title a {
	display: block !important;
	width: 480px;
	max-width: 100%;
	height: 104px;
	background-image: url('logo-v5.svg');
	background-repeat: no-repeat;
	background-position: left center;
	background-size: contain;
	background-color: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 4px 0 !important;
	/* Image replacement che NON sposta visivamente l'elemento (manteniamo cliccabilità) */
	font-size: 0 !important;
	line-height: 0 !important;
	color: transparent !important;
	text-indent: 0 !important;
	overflow: hidden;
	white-space: nowrap;
	text-decoration: none;
	cursor: pointer;
	pointer-events: auto !important;
	position: relative;
	z-index: 10;
	transition: transform .1s steps(2);
}
[data-id="logo"] .site-title a:hover,
.ct-header .site-title a:hover {
	transform: scale(1.04);
}
/* Nasconde la tagline che a volte Blocksy mostra sotto */
.ct-header .site-description {
	display: none !important;
}

.ct-header .ct-icon,
.ct-header svg {
	color: #fff !important;
	fill: #fff !important;
}

/* --- Hide front-page title --- */
body.home .entry-header,
body.page-id-29 .entry-header,
body.page .page-title {
	display: none !important;
}
body.home article.post,
body.home .ct-container,
body.page-id-29 .ct-container {
	background: transparent !important;
}
body.home .entry-content > p:empty {
	display: none;
}

/* --- BUTTONS — 8-bit hard shadow pillbox --- */
.tcgpull-btn,
.button,
.wp-element-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce-page .button,
.woocommerce input.button {
	display: inline-block;
	padding: 14px 26px;
	font-family: var(--tp-font-body);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	text-decoration: none;
	border-radius: 4px !important;
	border: 3px solid var(--tp-ink) !important;
	box-shadow: var(--tp-shadow) !important;
	transition: transform .1s steps(2), box-shadow .1s steps(2);
	cursor: pointer;
	font-size: 14px;
}
.tcgpull-btn:active,
.button:active,
.woocommerce a.button:active,
.woocommerce button.button:active {
	transform: translate(3px, 3px);
	box-shadow: 2px 2px 0 var(--tp-ink) !important;
}

.tcgpull-btn--primary,
.woocommerce .single_add_to_cart_button {
	background: var(--tp-red) !important;
	color: #fff !important;
}
.tcgpull-btn--primary:hover {
	background: var(--tp-red-deep) !important;
	color: #fff !important;
}

a.tcgpull-btn--ghost,
.tcgpull-btn.tcgpull-btn--ghost,
.tcgpull-hero a.tcgpull-btn--ghost {
	background: var(--tp-yellow) !important;
	color: var(--tp-ink) !important;
	text-shadow: none !important;
}
a.tcgpull-btn--ghost:hover,
.tcgpull-btn.tcgpull-btn--ghost:hover {
	background: var(--tp-yellow-soft) !important;
	color: var(--tp-ink) !important;
}
a.tcgpull-btn--primary,
.tcgpull-btn.tcgpull-btn--primary,
.tcgpull-hero a.tcgpull-btn--primary {
	background: var(--tp-red) !important;
	color: #fff !important;
	text-shadow: none !important;
}

/* --- HERO --- */
.tcgpull-hero {
	background:
		repeating-linear-gradient(0deg, transparent 0 23px, rgba(29,29,44,.06) 23px 24px),
		repeating-linear-gradient(90deg, transparent 0 23px, rgba(29,29,44,.06) 23px 24px),
		linear-gradient(135deg, var(--tp-cream-deep) 0%, var(--tp-yellow-soft) 60%, var(--tp-cream) 100%);
	color: var(--tp-ink);
	padding: 70px 24px 90px;
	position: relative;
	overflow: hidden;
	border-bottom: 5px solid var(--tp-ink);
	margin-bottom: 0;
}
/* Pattern nuvolette diffuso in background hero */
.tcgpull-clouds {
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	z-index: 0;
}
.tcgpull-cloud {
	position: absolute;
	width: 48px;
	height: 22px;
	background: var(--tp-paper);
	border-radius: 999px;
	box-shadow: 3px 3px 0 var(--tp-ink);
	opacity: .9;
}
.tcgpull-cloud::before,
.tcgpull-cloud::after {
	content: '';
	position: absolute;
	background: var(--tp-paper);
	border-radius: 50%;
	box-shadow: 3px 3px 0 var(--tp-ink);
}
.tcgpull-cloud::before {
	width: 22px;
	height: 22px;
	top: -12px;
	left: 8px;
}
.tcgpull-cloud::after {
	width: 18px;
	height: 18px;
	top: -8px;
	right: 8px;
}
.tcgpull-cloud--sm {
	width: 32px;
	height: 14px;
}
.tcgpull-cloud--sm::before { width: 16px; height: 16px; top: -8px; left: 4px; }
.tcgpull-cloud--sm::after  { width: 12px; height: 12px; top: -5px; right: 4px; }
.tcgpull-cloud--lg {
	width: 64px;
	height: 26px;
}
.tcgpull-cloud--lg::before { width: 28px; height: 28px; top: -16px; left: 10px; }
.tcgpull-cloud--lg::after  { width: 22px; height: 22px; top: -12px; right: 10px; }

/* La hero deve avere position:relative per le nuvolette */
.tcgpull-hero { position: relative; }
.tcgpull-hero__inner { position: relative; z-index: 1; }
.tcgpull-hero__inner {
	max-width: 1180px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 56px;
	align-items: center;
	position: relative;
	z-index: 1;
}
.tcgpull-hero__eyebrow {
	display: inline-block;
	font-family: var(--tp-font-pixel);
	font-size: 13px;
	color: var(--tp-ink);
	padding: 12px 18px 11px;
	background: var(--tp-yellow);
	border: 3px solid var(--tp-ink);
	box-shadow: var(--tp-shadow-sm);
	margin-bottom: 32px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.tcgpull-hero__title {
	font-family: var(--tp-font-body);
	font-size: clamp(48px, 7vw, 88px);
	font-weight: 900;
	line-height: 1.02;
	margin: 0 0 28px;
	letter-spacing: -0.02em;
	color: var(--tp-ink) !important;
	text-shadow: 6px 6px 0 var(--tp-yellow);
}
.tcgpull-hero__title span {
	display: inline-block;
	color: var(--tp-red) !important;
	text-shadow: 6px 6px 0 var(--tp-ink);
}
.tcgpull-hero__sub {
	font-size: 22px;
	line-height: 1.5;
	color: var(--tp-ink);
	margin: 0 0 36px;
	max-width: 600px;
	font-weight: 500;
}
.tcgpull-hero__cta {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	margin-bottom: 36px;
}
.tcgpull-hero__cta .tcgpull-btn {
	padding: 18px 32px;
	font-size: 16px;
}
.tcgpull-hero__trust {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	font-size: 18px;
	color: var(--tp-ink);
	font-weight: 800;
}
.tcgpull-hero__trust li {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 24px 20px;
	background: var(--tp-paper);
	border: 3px solid var(--tp-ink);
	border-radius: 6px;
	box-shadow: 5px 5px 0 var(--tp-ink);
	text-align: center;
	line-height: 1.2;
	min-height: 100px;
}

/* Hero visual: area con Pokéball + satelliti + Pikachu + decorazioni */
.tcgpull-hero__visual {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	min-height: 380px;
}
.tcgpull-pokeball {
	width: 240px;
	height: 240px;
	border-radius: 50%;
	position: relative;
	box-shadow:
		0 0 0 6px var(--tp-ink),
		var(--tp-shadow-lg);
	animation: tp-float 4s steps(20) infinite;
	overflow: hidden;
	z-index: 3;
}

/* === POKÉBALL SATELLITI === */
/* Struttura: .tcgpull-ball usa ::before (top half color) + ::after (bottom half white) + .tcgpull-ball__btn (bottone frontale) */
.tcgpull-ball {
	position: absolute;
	width: 68px;
	height: 68px;
	border-radius: 50%;
	box-shadow: 0 0 0 4px var(--tp-ink), 4px 4px 0 var(--tp-ink);
	overflow: hidden;
	z-index: 2;
}
.tcgpull-ball::before,
.tcgpull-ball::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	z-index: 0;
}
.tcgpull-ball::before { top: 0; bottom: 50%; }
.tcgpull-ball::after  {
	top: 50%; bottom: 0;
	background: #fafafa;
	/* belt nero */
	box-shadow: inset 0 4px 0 0 var(--tp-ink);
}
.tcgpull-ball::before {
	/* belt nero in basso */
	box-shadow: inset 0 -4px 0 0 var(--tp-ink);
}
/* Bottone frontale al centro */
.tcgpull-ball__btn {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 24px;
	height: 24px;
	margin: -12px 0 0 -12px;
	background: var(--tp-paper);
	border: 3px solid var(--tp-ink);
	border-radius: 50%;
	box-shadow:
		inset 0 0 0 2px var(--tp-paper),
		inset 0 0 0 5px rgba(0,0,0,.18);
	z-index: 3;
}

/* Varianti colori (top half) */
/* Great Ball: top blu + decorazione "M" rossa stilizzata via SVG inline */
.tcgpull-ball--great::before {
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50' preserveAspectRatio='none'><path d='M 10 48 L 10 28 L 35 28 L 35 12 L 65 12 L 65 28 L 90 28 L 90 48 Z' fill='%23e63946' stroke='%231d1d2c' stroke-width='1.5'/></svg>") no-repeat center bottom / 80% 70%,
		#4361ee;
}
.tcgpull-ball--great { animation: tp-float 5s steps(20) infinite reverse; }
/* Bottone Great Ball bianco senza shadow forte */
.tcgpull-ball--great .tcgpull-ball__btn {
	box-shadow: none;
	background: #ffffff;
	z-index: 4;
}

/* Ultra Ball corretta: top NERO con 2 stripe gialle verticali (forma H),
   bottom BIANCO, bottone bianco con anello nero */
.tcgpull-ball--ultra::before {
	background:
		linear-gradient(90deg,
			#1d1d2c 0 22%,
			#ffd60a 22% 32%,
			#1d1d2c 32% 68%,
			#ffd60a 68% 78%,
			#1d1d2c 78% 100%
		);
	box-shadow: inset 0 -4px 0 0 var(--tp-ink); /* belt nero in basso del top half */
}
.tcgpull-ball--ultra::after {
	background: #ffffff;
	box-shadow: inset 0 4px 0 0 var(--tp-ink); /* belt nero sopra del bottom half */
}
.tcgpull-ball--ultra .tcgpull-ball__btn {
	background: #ffffff;
	box-shadow:
		inset 0 0 0 2px #ffffff,
		inset 0 0 0 5px rgba(0,0,0,.18);
}
.tcgpull-ball--ultra { animation: tp-float 4.5s steps(20) infinite; width: 60px; height: 60px; }

.tcgpull-ball--master {
	width: 80px; height: 80px;
	animation: tp-float 6s steps(20) infinite reverse;
}
/* Top half: viola con 2 pallini rosa */
.tcgpull-ball--master::before {
	background:
		radial-gradient(circle at 28% 55%, #ff8fb1 0 4px, transparent 4px 100%),
		radial-gradient(circle at 72% 55%, #ff8fb1 0 4px, transparent 4px 100%),
		#a855f7;
}
/* Bottone bianco senza shadow interna per leggere la M */
.tcgpull-ball--master .tcgpull-ball__btn {
	width: 28px; height: 28px;
	margin: -14px 0 0 -14px;
	box-shadow: none;
	background: #ffffff;
	overflow: visible;
}
/* "M" stilizzata Master Ball */
.tcgpull-ball--master .tcgpull-ball__btn::after {
	content: 'M';
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--tp-font-body);
	font-weight: 900;
	font-size: 16px;
	line-height: 1;
	color: #a855f7;
	z-index: 5;
	text-shadow: 0 0 1px #6b21a8;
}

/* === STELLE / SPARKLE === */
.tcgpull-spark {
	position: absolute;
	font-size: 22px;
	filter: drop-shadow(2px 2px 0 var(--tp-ink));
	animation: tp-twinkle 2.4s steps(8) infinite;
	z-index: 4;
	user-select: none;
}
.tcgpull-spark[data-d="0"]   { animation-delay: 0s; }
.tcgpull-spark[data-d=".5"]  { animation-delay: .6s; }
.tcgpull-spark[data-d="1"]   { animation-delay: 1.2s; }
.tcgpull-spark[data-d="1.5"] { animation-delay: 1.8s; }
@keyframes tp-twinkle {
	0%, 100% { transform: scale(1) rotate(0); opacity: .9; }
	50%      { transform: scale(1.4) rotate(20deg); opacity: 1; }
}

/* === FULMINE ZIG-ZAG === */
.tcgpull-bolt {
	position: absolute;
	font-size: 28px;
	color: var(--tp-yellow);
	filter: drop-shadow(3px 3px 0 var(--tp-ink));
	animation: tp-bolt 1.8s steps(6) infinite;
	z-index: 4;
	user-select: none;
}
@keyframes tp-bolt {
	0%, 100% { transform: rotate(-8deg) scale(1); }
	50%      { transform: rotate(8deg) scale(1.15); }
}

/* === CARTE FLUTTUANTI (stilizzate) === */
.tcgpull-card-float {
	position: absolute;
	width: 64px;
	height: 90px;
	background: var(--tp-paper);
	border: 3px solid var(--tp-ink);
	box-shadow: 4px 4px 0 var(--tp-ink);
	padding: 4px;
	display: flex;
	flex-direction: column;
	gap: 3px;
	z-index: 2;
}
.tcgpull-card-float--1 {
	top: 20%;
	right: 4%;
	transform: rotate(8deg);
	animation: tp-card-1 5s steps(20) infinite;
}
.tcgpull-card-float--2 {
	bottom: 8%;
	right: 8%;
	transform: rotate(-12deg);
	animation: tp-card-2 6s steps(20) infinite;
}
.tcgpull-card-float__top {
	height: 8px;
	background: var(--tp-red);
	border: 2px solid var(--tp-ink);
}
.tcgpull-card-float__top--blue { background: var(--tp-blue); }
.tcgpull-card-float__art {
	flex: 1;
	background:
		linear-gradient(135deg, #ffd60a 0 50%, #fff3a3 50% 100%);
	border: 2px solid var(--tp-ink);
	position: relative;
}
.tcgpull-card-float__top--blue + .tcgpull-card-float__art {
	background: linear-gradient(135deg, #06d6a0 0 50%, #b4f5e6 50% 100%);
}
.tcgpull-card-float__line {
	height: 4px;
	background: var(--tp-ink);
}
.tcgpull-card-float__line + .tcgpull-card-float__line {
	height: 3px;
	background: var(--tp-ink-soft);
}
@keyframes tp-card-1 {
	0%, 100% { transform: rotate(8deg) translateY(0); }
	50%      { transform: rotate(12deg) translateY(-10px); }
}
@keyframes tp-card-2 {
	0%, 100% { transform: rotate(-12deg) translateY(0); }
	50%      { transform: rotate(-8deg) translateY(-8px); }
}

/* === SPRITE POKÉMON ORIGINALI GAME BOY (Gen II Crystal) === */
.tcgpull-mon {
	filter: drop-shadow(2px 2px 0 var(--tp-ink));
	image-rendering: pixelated;
	image-rendering: crisp-edges;
	display: block;
}

/* Posizionamento hero - .tcgpull-mon--pos-XXX */
.tcgpull-mon--pos-pika {
	position: absolute;
	width: 84px; height: 84px;
	bottom: -6%; left: 36%;
	animation: tp-mon-hop 1.6s steps(4) infinite;
	z-index: 5;
}
.tcgpull-mon--pos-char {
	position: absolute;
	width: 70px; height: 70px;
	top: 26%; left: -4%;
	animation: tp-mon-hop 2.1s steps(4) infinite;
	animation-delay: .3s;
	z-index: 5;
}
.tcgpull-mon--pos-bulb {
	position: absolute;
	width: 62px; height: 62px;
	bottom: 12%; right: 12%;
	animation: tp-mon-hop-flip 2.4s steps(4) infinite;
	animation-delay: .5s;
	z-index: 5;
}
.tcgpull-mon--pos-squi {
	position: absolute;
	width: 58px; height: 58px;
	top: -2%; right: 30%;
	animation: tp-mon-hop 1.9s steps(4) infinite;
	animation-delay: .8s;
	z-index: 5;
}
/* Dragonite postino: solo accanto a "Spedizione tracciata", dimensione uniforme con i badge */
.tcgpull-trust-mascot {
	display: inline-block;
	width: 54px;
	height: 54px;
	vertical-align: middle;
	margin-right: 4px;
	flex-shrink: 0;
}
.tcgpull-trust-mascot img {
	width: 100%;
	height: 100%;
	display: block;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
	filter: drop-shadow(2px 2px 0 var(--tp-ink));
}
@keyframes tp-mon-hop {
	0%, 100% { transform: translateY(0) rotate(-3deg); }
	50%      { transform: translateY(-8px) rotate(3deg); }
}
@keyframes tp-mon-hop-flip {
	0%, 100% { transform: scaleX(-1) translateY(0) rotate(-3deg); }
	50%      { transform: scaleX(-1) translateY(-8px) rotate(3deg); }
}
@keyframes tp-mon-fly {
	0%   { transform: translate(0, 0) rotate(-6deg); }
	25%  { transform: translate(-12px, -8px) rotate(0deg); }
	50%  { transform: translate(-6px, -16px) rotate(6deg); }
	75%  { transform: translate(8px, -8px) rotate(0deg); }
	100% { transform: translate(0, 0) rotate(-6deg); }
}

/* Mascot shortcode manuale (uso raro, [tcgpull_mascot]) */
.tcgpull-mascot-inline {
	display: inline-block;
	width: var(--size, 64px);
	height: var(--size, 64px);
	vertical-align: middle;
}
.tcgpull-mascot-inline img {
	width: 100%;
	height: 100%;
	display: block;
	image-rendering: pixelated;
	image-rendering: crisp-edges;
	filter: drop-shadow(2px 2px 0 var(--tp-ink));
}
.tcgpull-pokeball__top {
	position: absolute;
	inset: 0 0 50% 0;
	background: var(--tp-red);
}
.tcgpull-pokeball__bottom {
	position: absolute;
	inset: 50% 0 0 0;
	background: var(--tp-paper);
}
.tcgpull-pokeball__belt {
	position: absolute;
	top: calc(50% - 11px);
	left: 0;
	right: 0;
	height: 22px;
	background: var(--tp-ink);
}
.tcgpull-pokeball__btn {
	position: absolute;
	top: calc(50% - 28px);
	left: calc(50% - 28px);
	width: 56px;
	height: 56px;
	background: var(--tp-paper);
	border: 6px solid var(--tp-ink);
	border-radius: 50%;
	box-shadow:
		inset 0 0 0 3px var(--tp-paper),
		inset 0 0 0 8px rgba(0,0,0,.15);
	animation: tp-pulse 1.6s steps(8) infinite;
	z-index: 2;
}
@keyframes tp-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-12px); }
}
@keyframes tp-pulse {
	0%, 100% { background: var(--tp-paper); }
	50%      { background: var(--tp-yellow); }
}

/* --- SECTION TITLE --- */
.tcgpull-section-title {
	text-align: center;
	max-width: 800px;
	margin: 70px auto 36px;
	padding: 0 20px;
}
.tcgpull-section-title h2 {
	font-size: clamp(24px, 3.5vw, 36px);
	margin: 0 0 12px;
	letter-spacing: -0.01em;
	color: var(--tp-ink);
	display: inline-block;
	position: relative;
	font-family: var(--tp-font-body);
	font-weight: 900;
	text-transform: uppercase;
}
.tcgpull-section-title h2::before {
	content: '◆';
	color: var(--tp-red);
	margin-right: 12px;
	font-size: 0.8em;
}
.tcgpull-section-title h2::after {
	content: '◆';
	color: var(--tp-red);
	margin-left: 12px;
	font-size: 0.8em;
}
.tcgpull-section-title p {
	color: var(--tp-ink-soft);
	font-size: 17px;
	margin: 0;
	font-weight: 500;
}

/* --- CATEGORY CARDS --- */
.tcgpull-cats {
	padding: 10px 20px 40px;
}
.tcgpull-cats__grid {
	max-width: 1180px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}
.tcgpull-cat-card {
	display: block;
	padding: 38px 32px;
	background: var(--tp-paper);
	border: 4px solid var(--tp-ink);
	box-shadow: var(--tp-shadow-lg);
	text-decoration: none;
	color: var(--tp-ink);
	transition: transform .1s steps(2), box-shadow .1s steps(2);
	position: relative;
	overflow: hidden;
}
.tcgpull-cat-card:nth-child(1) { background: linear-gradient(135deg, var(--tp-paper) 0%, var(--tp-paper) 60%, var(--tp-yellow-soft) 100%); }
.tcgpull-cat-card:nth-child(2) { background: linear-gradient(135deg, var(--tp-paper) 0%, var(--tp-paper) 60%, #cfe7ff 100%); }
.tcgpull-cat-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 14px;
	background-image: linear-gradient(90deg, var(--tp-red) 0 14px, transparent 14px 28px);
	background-size: 28px 14px;
}
.tcgpull-cat-card:nth-child(2)::before {
	background-image: linear-gradient(90deg, var(--tp-blue) 0 14px, transparent 14px 28px);
	background-size: 28px 14px;
}
.tcgpull-cat-card:hover {
	transform: translate(-3px, -3px);
	box-shadow: 10px 10px 0 var(--tp-ink);
	color: var(--tp-ink);
}
.tcgpull-cat-card__emoji {
	font-size: 56px;
	display: inline-block;
	margin: 14px 0 16px;
	filter: drop-shadow(3px 3px 0 var(--tp-ink));
}
.tcgpull-cat-card__title {
	font-size: 26px;
	margin: 0 0 8px;
	font-weight: 900;
	color: var(--tp-ink);
	text-transform: uppercase;
	letter-spacing: -0.01em;
}
.tcgpull-cat-card__sub {
	color: var(--tp-ink-soft);
	margin: 0 0 20px;
	font-weight: 600;
}
.tcgpull-cat-card__cta {
	display: inline-block;
	padding: 10px 18px;
	background: var(--tp-ink);
	color: var(--tp-yellow);
	font-family: var(--tp-font-pixel);
	font-size: 10px;
	letter-spacing: 0.05em;
	border-radius: 4px;
	box-shadow: 3px 3px 0 var(--tp-red);
}

/* --- WC PRODUCT CARDS --- */
.woocommerce ul.products {
	max-width: 1180px;
	margin: 0 auto !important;
	padding: 0 20px !important;
	gap: 22px;
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: var(--tp-paper) !important;
	border: 3px solid var(--tp-ink) !important;
	box-shadow: var(--tp-shadow) !important;
	padding: 14px !important;
	margin: 0 !important;
	width: 100% !important;
	transition: transform .1s steps(2), box-shadow .1s steps(2);
	position: relative;
	border-radius: 0 !important;
}
.woocommerce ul.products li.product:hover {
	transform: translate(-2px, -2px);
	box-shadow: 8px 8px 0 var(--tp-ink) !important;
	z-index: 20;
}
/* === HOVER ZOOM CARTE (archive shop / category / preorder grid) ===
   Blocksy mette il link IMG come <a class="ct-media-container"> dentro un <figure>.
   NON usa <a class="woocommerce-loop-product__link">. Su <body> WC mette .woocommerce
   come classe diretta — quindi NIENTE spazio tra body e .woocommerce nel selettore.
   Lo scale è applicato all'IMG per evitare conflitti col flex sulla FIGURE. */
ul.products li.product figure,
ul.products li.product a.ct-media-container,
ul.products li.product .ct-image-container,
ul.products li.product a.woocommerce-loop-product__link {
	display: block !important;
	overflow: visible !important;
	position: relative;
}
ul.products li.product img.wp-post-image,
ul.products li.product .ct-media-container img,
ul.products li.product .ct-image-container img {
	transition: transform .35s cubic-bezier(0.34, 1.56, 0.64, 1), filter .35s !important;
	transform-origin: center center !important;
	will-change: transform;
	display: block !important;
}
ul.products li.product:hover img.wp-post-image,
ul.products li.product:hover .ct-media-container img,
ul.products li.product:hover .ct-image-container img,
ul.products li.product.is-tcg-hover img.wp-post-image,
ul.products li.product.is-tcg-hover .ct-media-container img,
ul.products li.product.is-tcg-hover .ct-image-container img {
	transform: scale(1.12) !important;
	z-index: 30 !important;
	position: relative;
}
.woocommerce ul.products li.product img {
	border-radius: 0 !important;
	margin-bottom: 18px !important;
	border: 0 !important;
	background: transparent;
	/* aspect-ratio matchata al box → no padding, la carta riempie. */
	object-fit: contain !important;
	width: 100% !important;
	height: 100% !important;
	padding: 6px !important;
	box-sizing: border-box;
}
/* Box carta — aspect-ratio leggermente più "alto" così la carta JAP (taller than 3:4)
   si vede TUTTA senza tagli laterali. overflow:hidden così il zoom hover sta DENTRO
   al box (effetto Instagram) → niente sbordi sul titolo. */
.woocommerce ul.products li.product .ct-image-container,
.woocommerce ul.products li.product .ct-media-container {
	aspect-ratio: 5 / 7 !important;
	background: var(--tp-cream-deep);
	border: 3px solid var(--tp-ink);
	overflow: hidden !important;
	position: relative;
}
.woocommerce ul.products li.product .ct-image-container img,
.woocommerce ul.products li.product .ct-media-container img {
	object-fit: contain !important;
	height: 100% !important;
	width: 100% !important;
	padding: 4px !important;
}
/* Sticker JP/IN MAGAZZINO: spostiamo SOPRA la card (negative top) così non coprono la foto */
.tcgpull-badge-jap {
	top: -8px !important;
	left: -8px !important;
}
.woocommerce span.onsale {
	top: -12px !important;
	right: -12px !important;
	z-index: 6;
}
/* Sticker PRE-ORDER (top dei box archivio) — sopra il box, non sopra la carta */
.woocommerce ul.products li.product .tcgpull-stock-badge--preorder,
.woocommerce ul.products li.product .tcgpull-stock-badge--instock {
	position: absolute;
	top: -10px !important;
	left: 50% !important;
	right: auto !important;
	transform: translateX(-50%) rotate(-2deg);
	z-index: 6;
}
/* Container badge availability (IN MAGAZZINO / PRE-ORDER): anche lui sopra la card */
.woocommerce ul.products li.product .ct-product-badge,
.woocommerce ul.products li.product .tcgpull-loop-availability {
	top: -8px !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3,
.woocommerce ul.products li.product a,
.woocommerce ul.products li.product a:link,
.woocommerce ul.products li.product a:visited {
	color: var(--tp-ink) !important;
	text-shadow: none !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	min-height: 56px;
	padding: 4px 0 !important;
	margin-top: 18px !important;
}
.woocommerce ul.products li.product .product_cat,
.woocommerce ul.products li.product .posted_in,
.woocommerce ul.products li.product .category,
.woocommerce ul.products li.product .ct-woo-card-extra a {
	color: var(--tp-ink-soft) !important;
	font-weight: 600;
	font-size: 12px;
	text-shadow: none !important;
}
/* override eventuale Blocksy "hover effect" yellow */
.woocommerce ul.products li.product a:hover h2,
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title {
	color: var(--tp-red) !important;
}
/* "AGGIUNGI" button retains its own colors */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
	color: var(--tp-yellow) !important;
}
.woocommerce ul.products li.product .price {
	color: var(--tp-red-deep) !important;
	font-weight: 900 !important;
	font-size: 20px !important;
	font-family: var(--tp-font-body);
}
.woocommerce ul.products li.product .price del {
	color: var(--tp-ink-soft) !important;
	font-weight: 600;
	margin-right: 6px;
	font-size: 16px !important;
}
.woocommerce ul.products li.product .price ins {
	background: transparent !important;
	color: var(--tp-red-deep) !important;
}
.woocommerce ul.products li.product .button {
	background: var(--tp-ink) !important;
	color: var(--tp-yellow) !important;
	margin-top: 10px !important;
	padding: 10px 16px !important;
	font-size: 12px !important;
	width: 100%;
	text-align: center;
	font-family: var(--tp-font-pixel);
	letter-spacing: 0.04em;
	box-shadow: 3px 3px 0 var(--tp-red) !important;
}
.woocommerce ul.products li.product .button:hover {
	background: var(--tp-red) !important;
	color: #fff !important;
	box-shadow: 3px 3px 0 var(--tp-ink) !important;
}

/* JAP badge — pixel sticker */
.tcgpull-badge-jap {
	position: absolute;
	top: 22px;
	left: 22px;
	z-index: 2;
	background: var(--tp-blue);
	color: #fff;
	font-family: var(--tp-font-pixel);
	font-size: 9px;
	padding: 6px 8px;
	letter-spacing: 0.06em;
	border: 2px solid var(--tp-ink);
	box-shadow: 2px 2px 0 var(--tp-ink);
	transform: rotate(-6deg);
}

.woocommerce span.onsale {
	background: var(--tp-yellow) !important;
	color: var(--tp-ink) !important;
	font-family: var(--tp-font-pixel) !important;
	font-size: 9px !important;
	padding: 6px 8px !important;
	border-radius: 0 !important;
	border: 2px solid var(--tp-ink) !important;
	box-shadow: 2px 2px 0 var(--tp-ink) !important;
	min-height: auto !important;
	min-width: auto !important;
	line-height: 1 !important;
	top: 22px !important;
	right: 22px !important;
	left: auto !important;
	transform: rotate(6deg);
}

/* --- SINGLE PRODUCT --- */
.woocommerce div.product .product_title {
	font-size: clamp(26px, 3vw, 38px) !important;
	font-weight: 900 !important;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: var(--tp-ink);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--tp-red-deep) !important;
	font-size: 32px !important;
	font-weight: 900 !important;
}
.woocommerce div.product .woocommerce-product-details__short-description {
	background: var(--tp-yellow-soft);
	border: 3px solid var(--tp-ink);
	padding: 16px 20px;
	box-shadow: var(--tp-shadow-sm);
	margin-bottom: 20px;
}
.woocommerce div.product div.images img {
	border: 4px solid var(--tp-ink) !important;
	box-shadow: var(--tp-shadow-lg);
}

/* --- CART / CHECKOUT --- */
.woocommerce table.shop_table {
	border: 3px solid var(--tp-ink) !important;
	border-radius: 0 !important;
	box-shadow: var(--tp-shadow-sm) !important;
	background: var(--tp-paper);
}
.woocommerce table.shop_table th {
	background: var(--tp-ink) !important;
	color: var(--tp-yellow) !important;
	font-family: var(--tp-font-pixel);
	font-size: 10px !important;
	letter-spacing: 0.05em;
	padding: 14px !important;
}

/* --- FOOTER --- */
[data-footer] {
	background: var(--tp-ink) !important;
	color: rgba(255,255,255,.85) !important;
	border-top: 5px solid var(--tp-red);
	background-image: linear-gradient(0deg, var(--tp-ink) 0 calc(100% - 6px), var(--tp-red) calc(100% - 6px) 100%) !important;
}
[data-footer] a { color: var(--tp-yellow) !important; }
[data-footer]::before {
	content: '';
	display: block;
	height: 6px;
	background-image: linear-gradient(90deg, var(--tp-yellow) 0 12px, transparent 12px 24px);
	background-size: 24px 6px;
}

/* --- BREADCRUMBS / SHOP TITLE --- */
.woocommerce-products-header__title,
.woocommerce-breadcrumb {
	max-width: 1180px;
	margin: 30px auto !important;
	padding: 0 20px;
}
.woocommerce-products-header__title {
	font-size: clamp(28px, 4vw, 42px) !important;
	font-weight: 900 !important;
	text-transform: uppercase;
	color: var(--tp-ink);
	text-align: center;
}
.woocommerce-products-header__title::before {
	content: '▶ ';
	color: var(--tp-red);
}

/* --- INFO STRIP (sotto header, sempre visibile) --- */
.tcgpull-info-strip {
	background: var(--tp-ink);
	color: #fff;
	padding: 10px 16px;
	border-bottom: 4px solid var(--tp-yellow);
	font-family: var(--tp-font-body);
	font-size: 13px;
	overflow: hidden;
}
.tcgpull-info-strip__inner {
	max-width: 1180px;
	margin: 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	text-align: center;
}
.tcgpull-info-strip__item { color: #fff; }
.tcgpull-info-strip__item strong { color: var(--tp-yellow); font-weight: 800; }
.tcgpull-info-strip__sep { color: var(--tp-yellow); opacity: .6; }

/* --- "COME FUNZIONA" SECTION --- */
.tcgpull-how {
	padding: 20px 20px 50px;
}
.tcgpull-how__grid {
	max-width: 1180px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.tcgpull-how__card {
	background: var(--tp-paper);
	border: 3px solid var(--tp-ink);
	box-shadow: var(--tp-shadow);
	padding: 30px 28px;
	position: relative;
	text-align: center;
}
.tcgpull-how__card:nth-child(1) { background: linear-gradient(180deg, #fff7d6 0%, var(--tp-paper) 60%); }
.tcgpull-how__card:nth-child(2) { background: linear-gradient(180deg, #ffe4e6 0%, var(--tp-paper) 60%); }
.tcgpull-how__card:nth-child(3) { background: linear-gradient(180deg, #d6ecff 0%, var(--tp-paper) 60%); }
.tcgpull-how__n {
	position: absolute;
	top: 14px;
	right: 16px;
	font-family: var(--tp-font-pixel);
	font-size: 10px;
	color: var(--tp-ink-soft);
	letter-spacing: 0.05em;
	opacity: .6;
}
.tcgpull-how__icon {
	display: inline-block;
	font-size: 44px;
	margin: 6px 0 14px;
	filter: drop-shadow(2px 2px 0 var(--tp-ink));
}
.tcgpull-how__title {
	margin: 0 0 10px;
	font-size: 22px;
	font-weight: 900;
	text-transform: uppercase;
	color: var(--tp-ink);
	letter-spacing: -0.01em;
}
.tcgpull-how__body {
	margin: 0;
	color: var(--tp-ink);
	font-size: 15px;
	line-height: 1.5;
}
.tcgpull-how__body strong { color: var(--tp-red-deep); }

/* --- BADGE DISPONIBILITÀ sui product cards --- */
.tcgpull-stock-badge {
	display: inline-block;
	position: absolute;
	top: 22px;
	right: 22px;
	z-index: 2;
	padding: 5px 8px;
	font-family: var(--tp-font-pixel);
	font-size: 8px;
	letter-spacing: 0.04em;
	border: 2px solid var(--tp-ink);
	box-shadow: 2px 2px 0 var(--tp-ink);
	text-transform: uppercase;
	line-height: 1.2;
	transform: rotate(4deg);
}
.tcgpull-stock-badge--instock {
	background: var(--tp-green);
	color: var(--tp-ink);
}
.tcgpull-stock-badge--preorder {
	background: var(--tp-yellow);
	color: var(--tp-ink);
}
/* Banner disponibilità sulla single product page */
.tcgpull-stock-banner {
	display: block;
	padding: 14px 18px;
	border: 3px solid var(--tp-ink);
	box-shadow: var(--tp-shadow-sm);
	margin: 0 0 18px;
	max-width: 520px;
}
.tcgpull-stock-banner strong {
	display: block;
	font-size: 16px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--tp-ink);
	margin-bottom: 4px;
}
.tcgpull-stock-banner small {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: var(--tp-ink);
	line-height: 1.4;
}
.tcgpull-stock-banner small strong {
	display: inline;
	font-size: 14px;
	text-transform: none;
	font-weight: 800;
	margin: 0;
}
.tcgpull-stock-banner--instock { background: var(--tp-green); }
.tcgpull-stock-banner--preorder { background: var(--tp-yellow); }

/* --- FOOTER CUSTOM --- */
/* Nasconde SOLO il footer Blocksy default (selector preciso) */
footer#footer.ct-footer {
	display: none !important;
}
.tcgpull-footer-wrap {
	background: var(--tp-ink);
	color: #fff;
	border-top: 5px solid var(--tp-red);
	margin-top: 40px;
	position: relative;
}
.tcgpull-footer-wrap::before {
	content: '';
	display: block;
	height: 6px;
	background-image: linear-gradient(90deg, var(--tp-yellow) 0 12px, transparent 12px 24px);
	background-size: 24px 6px;
}
.tcgpull-footer {
	max-width: 1180px;
	margin: 0 auto;
	padding: 50px 24px 24px;
	color: rgba(255,255,255,.92);
	font-size: 15px;
	line-height: 1.6;
	text-align: left;
}
.tcgpull-footer__grid {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: 40px;
}
.tcgpull-footer__col p { margin: 0 0 12px; color: rgba(255,255,255,.85); }
.tcgpull-footer__title {
	font-family: var(--tp-font-pixel);
	font-size: 12px;
	color: var(--tp-yellow) !important;
	letter-spacing: 0.05em;
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 3px solid var(--tp-red);
	display: inline-block;
}
.tcgpull-footer__contacts,
.tcgpull-footer__links {
	list-style: none;
	padding: 0;
	margin: 0 0 14px;
}
.tcgpull-footer__contacts li,
.tcgpull-footer__links li {
	padding: 6px 0;
	color: rgba(255,255,255,.92);
}
.tcgpull-footer__contacts a {
	color: var(--tp-yellow) !important;
	font-weight: 700;
	text-decoration: none;
}
.tcgpull-footer__contacts a:hover {
	color: #fff !important;
	text-decoration: underline;
}
.tcgpull-footer__small {
	font-size: 13px;
	color: rgba(255,255,255,.65);
	margin-top: 10px !important;
}
.tcgpull-footer__bottom {
	text-align: center;
	padding: 18px 0 0;
	margin-top: 30px;
	border-top: 2px dashed rgba(255,255,255,.18);
	color: rgba(255,255,255,.6);
	font-size: 13px;
}
.tcgpull-footer__bottom p { margin: 0; }

/* --- PAGINA ACCOUNT (My Account WooCommerce) — login + registrazione in tema --- */
.woocommerce-account .u-columns,
.woocommerce-account .woocommerce > .u-columns,
.woocommerce-page form.woocommerce-form-login + form,
body.page-id-9 .u-columns {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 28px !important;
	align-items: stretch !important;
	max-width: 1100px;
	margin: 20px auto !important;
}
.woocommerce-account .col-1,
.woocommerce-account .col-2 {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}
.woocommerce form.woocommerce-form-login,
.woocommerce form.woocommerce-form-register,
.woocommerce-page form.woocommerce-form-login,
.woocommerce-page form.woocommerce-form-register {
	background: var(--tp-paper) !important;
	border: 3px solid var(--tp-ink) !important;
	box-shadow: var(--tp-shadow) !important;
	padding: 28px !important;
	border-radius: 0 !important;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 420px;
}
.woocommerce form .form-row label,
.woocommerce-account h2,
.woocommerce-page h2 {
	font-family: var(--tp-font-body);
	font-weight: 800;
	color: var(--tp-ink);
}
.woocommerce-account h2,
.woocommerce-page h2 {
	font-size: 26px;
	margin-bottom: 18px;
	text-transform: uppercase;
	letter-spacing: -0.01em;
}
.woocommerce-account h2::before,
.woocommerce-page h2::before {
	content: '◆ ';
	color: var(--tp-red);
	font-size: 0.7em;
	vertical-align: middle;
}
.woocommerce form .form-row {
	margin-bottom: 16px !important;
}
.woocommerce form .form-row label {
	display: block;
	margin-bottom: 6px;
	font-size: 14px;
}
.woocommerce form .form-row .required {
	color: var(--tp-red);
	font-weight: 900;
	text-decoration: none !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row input[type="password"] {
	width: 100% !important;
	padding: 12px 14px !important;
	border: 2.5px solid var(--tp-ink) !important;
	border-radius: 4px !important;
	background: #fff !important;
	font-family: var(--tp-font-body) !important;
	font-size: 15px !important;
	color: var(--tp-ink) !important;
	box-shadow: inset 2px 2px 0 rgba(0,0,0,.04) !important;
}
.woocommerce form .form-row input.input-text:focus {
	border-color: var(--tp-red) !important;
	outline: none;
	box-shadow: inset 2px 2px 0 rgba(238,21,21,.08), 0 0 0 3px rgba(238,21,21,.18) !important;
}
/* Bottoni Accedi/Registrati in tema (rosso pixel hard-shadow) */
.woocommerce-form-login__submit,
.woocommerce-form-register__submit,
.woocommerce button[name="login"],
.woocommerce button[name="register"],
.woocommerce-account button[type="submit"] {
	background: var(--tp-red) !important;
	color: #fff !important;
	border: 3px solid var(--tp-ink) !important;
	border-radius: 4px !important;
	padding: 14px 28px !important;
	font-family: var(--tp-font-body) !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 15px !important;
	box-shadow: var(--tp-shadow) !important;
	cursor: pointer;
	transition: transform .1s steps(2), box-shadow .1s steps(2);
}
.woocommerce-form-login__submit:hover,
.woocommerce-form-register__submit:hover {
	background: var(--tp-red-deep) !important;
	transform: translate(-1px,-1px);
	box-shadow: 6px 6px 0 var(--tp-ink) !important;
}
.woocommerce-form-login__rememberme {
	display: flex !important;
	align-items: center;
	gap: 8px;
	margin: 12px 0 18px !important;
	font-weight: 600;
	color: var(--tp-ink);
}
.woocommerce-LostPassword a,
.lost_password a {
	color: var(--tp-red) !important;
	font-weight: 700;
	text-decoration: underline;
}
.woocommerce-privacy-policy-text {
	color: var(--tp-ink) !important;
	font-size: 13px;
	line-height: 1.5;
	margin: 12px 0 !important;
}
.woocommerce-privacy-policy-text a {
	color: var(--tp-red) !important;
	font-weight: 700;
}
/* Dashboard account (utente loggato) — testo NERO ovunque per contrasto */
.woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0 !important;
	margin: 0 !important;
}
.woocommerce-MyAccount-navigation ul li {
	background: var(--tp-paper) !important;
	border: 3px solid var(--tp-ink) !important;
	box-shadow: 3px 3px 0 var(--tp-ink) !important;
	margin-bottom: 12px !important;
	padding: 0 !important;
	font-weight: 800;
	overflow: hidden;
}
.woocommerce-MyAccount-navigation ul li a {
	display: block !important;
	padding: 14px 20px !important;
	color: var(--tp-ink) !important;
	text-decoration: none !important;
	font-family: var(--tp-font-body) !important;
	font-weight: 800 !important;
	font-size: 15px !important;
	transition: background .1s steps(2);
}
.woocommerce-MyAccount-navigation ul li.is-active,
.woocommerce-MyAccount-navigation ul li:hover {
	background: var(--tp-yellow) !important;
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li:hover a {
	color: var(--tp-ink) !important;
	background: transparent !important;
}
/* Active = bordo + shadow rossi per spiccare */
.woocommerce-MyAccount-navigation ul li.is-active {
	box-shadow: 4px 4px 0 var(--tp-red) !important;
	border-color: var(--tp-ink) !important;
}
/* Content area: testo + link in nero (era giallo da Blocksy default) */
.woocommerce-MyAccount-content,
.woocommerce-MyAccount-content p,
.woocommerce-MyAccount-content strong,
body.woocommerce-account .woocommerce {
	color: var(--tp-ink) !important;
}
.woocommerce-MyAccount-content a,
body.woocommerce-account .woocommerce a {
	color: var(--tp-red) !important;
	text-decoration: underline !important;
	font-weight: 700 !important;
}
.woocommerce-MyAccount-content a:hover {
	color: var(--tp-red-deep) !important;
}

/* === FLOATING FAB BUTTONS (Account + Carrello, stacked) === */
.tcgpull-account-fab,
.tcgpull-cart-fab {
	position: fixed;
	right: 40px;
	z-index: 90;
	background: var(--tp-yellow);
	border: 3px solid var(--tp-ink);
	box-shadow: 4px 4px 0 var(--tp-ink);
	width: 60px;
	height: 60px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--tp-ink);
	text-decoration: none !important;
	transition: transform .1s steps(2), box-shadow .1s steps(2);
	overflow: visible;
	padding: 6px;
}
.tcgpull-account-fab { top: 100px; }
.tcgpull-cart-fab    { top: 175px; background: var(--tp-red); }

.tcgpull-account-fab:hover,
.tcgpull-cart-fab:hover {
	transform: translate(-2px, -2px);
	box-shadow: 6px 6px 0 var(--tp-ink);
}
.tcgpull-account-fab:hover { background: var(--tp-yellow-soft); }
.tcgpull-cart-fab:hover    { background: var(--tp-red-deep); }

.tcgpull-account-fab svg,
.tcgpull-cart-fab svg,
.tcgpull-account-fab img,
.tcgpull-cart-fab img {
	width: 100%;
	height: 100%;
	display: block;
}
.tcgpull-account-fab__pika {
	image-rendering: pixelated;
	image-rendering: crisp-edges;
	filter: drop-shadow(1px 1px 0 var(--tp-ink));
}
.tcgpull-account-fab,
.tcgpull-cart-fab {
	cursor: pointer !important;
}
.tcgpull-cart-fab__icon {
	font-size: 28px;
	line-height: 1;
}
.tcgpull-account-fab__icon {
	font-size: 26px;
	line-height: 1;
}
.tcgpull-cart-fab__count {
	position: absolute;
	top: -8px;
	right: -8px;
	background: var(--tp-yellow);
	color: var(--tp-ink);
	border: 2px solid var(--tp-ink);
	border-radius: 50%;
	min-width: 24px;
	height: 24px;
	font-family: var(--tp-font-body);
	font-weight: 900;
	font-size: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.tcgpull-account-fab__label,
.tcgpull-cart-fab__label {
	position: absolute;
	right: calc(100% + 10px);
	top: 50%;
	transform: translateY(-50%);
	background: var(--tp-ink);
	color: var(--tp-yellow);
	font-family: var(--tp-font-pixel);
	font-size: 9px;
	padding: 4px 8px;
	border-radius: 4px;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity .15s;
}
.tcgpull-account-fab:hover .tcgpull-account-fab__label,
.tcgpull-cart-fab:hover .tcgpull-cart-fab__label {
	opacity: 1;
}
@media (max-width: 768px) {
	.tcgpull-account-fab,
	.tcgpull-cart-fab {
		right: 16px;
		width: 52px;
		height: 52px;
	}
	.tcgpull-account-fab { bottom: 86px; top: auto; }
	.tcgpull-cart-fab    { bottom: 20px; top: auto; }
}

/* === LINK "COME FUNZIONA PRE-ORDER" nel banner prodotto === */
.tcgpull-stock-banner--preorder a.tcgpull-howto-link {
	display: inline-block;
	margin-top: 8px;
	color: var(--tp-ink) !important;
	font-weight: 800;
	text-decoration: underline !important;
	font-size: 13px;
}

/* --- PAGINA CONTATTACI (layout 2 colonne) --- */
.tcgpull-contact-grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 40px;
	max-width: 1100px;
	margin: 0 auto;
	padding: 10px 0 40px;
}
.tcgpull-contact-main { min-width: 0; }
.tcgpull-contact-main h2 {
	margin-top: 30px;
	margin-bottom: 12px;
	font-size: 28px;
	color: var(--tp-ink);
}
.tcgpull-contact-main h2:first-child { margin-top: 0; }
.tcgpull-contact-main hr {
	border: 0;
	border-top: 3px dashed var(--tp-ink);
	margin: 40px 0;
}

.tcgpull-contact-side {
	display: flex;
	flex-direction: column;
	gap: 16px;
	align-self: start; /* non si stira con il form lungo a sinistra */
}
.tcgpull-contact-card {
	background: var(--tp-paper);
	border: 3px solid var(--tp-ink);
	box-shadow: var(--tp-shadow);
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 130px; /* tutte uniformi a 130 minimo */
}
.tcgpull-contact-card h3 {
	margin: 0 0 8px;
	font-size: 15px;
	font-family: var(--tp-font-pixel);
	color: var(--tp-red);
	letter-spacing: 0.05em;
}
.tcgpull-contact-card p { margin: 0 0 4px; font-weight: 700; }
.tcgpull-contact-card a {
	color: var(--tp-ink);
	text-decoration: underline;
	font-weight: 800;
}
.tcgpull-contact-card a:hover { color: var(--tp-red); }
.tcgpull-contact-card__note {
	font-weight: 500 !important;
	font-size: 13px;
	color: var(--tp-ink-soft);
	margin-top: 4px !important;
}
.tcgpull-contact-card--hours { background: var(--tp-yellow-soft); }

/* --- STILE Contact Form 7 (coerente col tema) --- */
.wpcf7 {
	background: var(--tp-paper);
	border: 3px solid var(--tp-ink);
	box-shadow: var(--tp-shadow);
	padding: 24px 28px;
	margin: 20px 0;
}
.wpcf7 p {
	margin: 0 0 16px;
}
.wpcf7 label {
	display: block;
	font-weight: 800;
	color: var(--tp-ink);
	font-size: 15px;
	letter-spacing: 0.01em;
}
.wpcf7 .tcgpull-req {
	color: var(--tp-red);
	font-weight: 900;
}
.wpcf7-form-control:not([type="submit"]) {
	display: block;
	width: 100%;
	margin-top: 6px;
	padding: 12px 14px;
	border: 2.5px solid var(--tp-ink);
	border-radius: 4px;
	background: #fff;
	font-family: var(--tp-font-body);
	font-size: 15px;
	color: var(--tp-ink);
	box-shadow: inset 2px 2px 0 rgba(0,0,0,.04);
	transition: border-color .1s steps(2), box-shadow .1s steps(2);
}
.wpcf7-form-control:not([type="submit"]):focus {
	outline: none;
	border-color: var(--tp-red);
	box-shadow: inset 2px 2px 0 rgba(238,21,21,.08), 0 0 0 3px rgba(238,21,21,.18);
}
.wpcf7-form-control[type="number"] { max-width: 200px; }
.wpcf7 textarea { min-height: 120px; resize: vertical; }

/* Select custom: appearance:none + freccia SVG, altezza fissa per evitare clipping testo */
.wpcf7 select,
.wpcf7 .wpcf7-form-control.wpcf7-select,
form.wpcf7-form select {
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	height: 56px !important;
	line-height: 1.2 !important;
	padding: 14px 44px 14px 14px !important;
	box-sizing: border-box !important;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'><path d='M1 1 L7 8 L13 1' stroke='%231d1d2c' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	background-color: #fff !important;
	cursor: pointer;
	vertical-align: middle;
}
.wpcf7 select:focus,
form.wpcf7-form select:focus {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'><path d='M1 1 L7 8 L13 1' stroke='%23e63946' stroke-width='2.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
}

.wpcf7-submit,
input.wpcf7-submit {
	background: var(--tp-red) !important;
	color: #fff !important;
	border: 3px solid var(--tp-ink) !important;
	border-radius: 4px !important;
	padding: 14px 28px !important;
	font-family: var(--tp-font-body) !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 15px !important;
	box-shadow: var(--tp-shadow) !important;
	cursor: pointer;
	width: auto !important;
	transition: transform .1s steps(2), box-shadow .1s steps(2);
}
.wpcf7-submit:hover {
	background: var(--tp-red-deep) !important;
	transform: translate(-1px, -1px);
	box-shadow: 6px 6px 0 var(--tp-ink) !important;
}
.wpcf7-submit:active {
	transform: translate(3px, 3px);
	box-shadow: 2px 2px 0 var(--tp-ink) !important;
}

/* CF7 messages */
.wpcf7-response-output {
	margin: 16px 0 0 !important;
	padding: 12px 16px !important;
	border: 3px solid var(--tp-ink) !important;
	border-radius: 4px !important;
	font-weight: 700 !important;
	box-shadow: 3px 3px 0 var(--tp-ink) !important;
}
.wpcf7 form.sent .wpcf7-response-output { background: var(--tp-green); color: var(--tp-ink); }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output { background: var(--tp-yellow); color: var(--tp-ink); }

.wpcf7-not-valid-tip {
	color: var(--tp-red-deep) !important;
	font-weight: 700;
	margin-top: 4px;
	display: block;
}

@media (max-width: 800px) {
	.tcgpull-contact-grid { grid-template-columns: 1fr; gap: 24px; }
}

/* --- PAGINA CARRELLO + CHECKOUT (layout pulito, allineato) --- */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
	max-width: 1180px;
	margin: 20px auto !important;
	padding: 0 16px;
}

/* Layout cart: stack semplice (tabella prodotti FULL WIDTH sopra, totals a destra sotto)
   Layout stacked è più robusto del grid 2-cols che si spaccava con table overflow. */
.woocommerce-cart .woocommerce {
	display: block !important;
}
.woocommerce-cart-form,
.woocommerce-cart .cart-collaterals {
	box-sizing: border-box;
	float: none !important;
	clear: both !important;
}
.woocommerce-cart .woocommerce-cart-form {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 0 28px !important;
}
.woocommerce-cart .cart-collaterals {
	width: 100% !important;
	max-width: 480px !important;
	margin-left: auto !important;
	margin-right: 0 !important;
	display: block;
}
.woocommerce-cart .cart-collaterals .cart_totals {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}
/* Su desktop, opzionalmente affianchiamo MA con float pulito (NO grid che si rompe) */
@media (min-width: 1100px) {
	.woocommerce-cart .woocommerce-cart-form {
		float: left !important;
		width: calc(100% - 460px) !important;
		padding-right: 24px !important;
		margin-bottom: 0 !important;
	}
	.woocommerce-cart .cart-collaterals {
		float: right !important;
		width: 440px !important;
		max-width: 440px !important;
	}
	.woocommerce-cart .woocommerce::after {
		content: '';
		display: block;
		clear: both;
	}
}
/* Cart table: tutte le colonne hanno larghezza minima sensata per leggibilità */
.woocommerce-cart table.shop_table {
	table-layout: auto !important;
}
.woocommerce-cart table.shop_table .product-thumbnail {
	width: 80px !important;
}
.woocommerce-cart table.shop_table .product-thumbnail img {
	max-width: 70px !important;
	width: 70px !important;
	height: auto !important;
	display: block;
	border: 2px solid var(--tp-ink);
	background: var(--tp-cream-deep);
}
.woocommerce-cart table.shop_table .product-name {
	font-weight: 700;
	min-width: 220px !important;
	white-space: normal !important;
}
.woocommerce-cart table.shop_table .product-name a {
	color: var(--tp-ink) !important;
	text-decoration: none !important;
	font-weight: 700;
	display: inline-block;
}
.woocommerce-cart table.shop_table .product-name a:hover {
	color: var(--tp-red) !important;
}
.woocommerce-cart table.shop_table .product-quantity {
	width: 100px !important;
}
.woocommerce-cart table.shop_table .product-quantity input.qty {
	width: 70px !important;
	padding: 8px !important;
	text-align: center;
	border: 2px solid var(--tp-ink) !important;
}
.woocommerce-cart table.shop_table .product-subtotal {
	width: 110px !important;
	font-weight: 800;
	color: var(--tp-red-deep);
}
.woocommerce-cart table.shop_table .product-remove a {
	color: var(--tp-red) !important;
	font-size: 22px;
	text-decoration: none !important;
}

/* Carrello + Totale: stesso stile pixel */
.woocommerce table.shop_table,
.woocommerce-cart .cart_totals table,
.woocommerce-checkout #order_review table {
	width: 100% !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	border: 3px solid var(--tp-ink) !important;
	box-shadow: var(--tp-shadow) !important;
	background: var(--tp-paper) !important;
}
.woocommerce-cart .cart_totals h2,
.woocommerce-checkout h3 {
	font-size: 22px !important;
	margin: 0 0 14px !important;
	text-transform: uppercase;
	color: var(--tp-ink);
}
.woocommerce-cart .cart_totals h2::before,
.woocommerce-checkout h3::before {
	content: '◆ ';
	color: var(--tp-red);
	font-size: 0.7em;
}
.woocommerce table.shop_table td,
.woocommerce table.shop_table th {
	padding: 14px 16px !important;
	border-top: 1px solid var(--tp-border) !important;
	font-size: 15px;
	color: var(--tp-ink);
}
.woocommerce table.shop_table .product-thumbnail img {
	max-width: 60px;
	border: 2px solid var(--tp-ink);
}
.woocommerce-shipping-methods label {
	color: var(--tp-ink) !important;
	font-weight: 600;
}
.woocommerce .coupon {
	display: flex !important;
	gap: 8px !important;
	align-items: center;
	flex-wrap: wrap;
}
.woocommerce #coupon_code {
	flex: 1;
	min-width: 200px;
	padding: 12px 14px !important;
	border: 2.5px solid var(--tp-ink) !important;
}
.woocommerce .actions .button,
.woocommerce .checkout-button {
	background: var(--tp-red) !important;
	color: #fff !important;
	border: 3px solid var(--tp-ink) !important;
	box-shadow: var(--tp-shadow) !important;
	padding: 14px 22px !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

/* Layout 2 colonne checkout: dettagli sx + order sx */
@media (min-width: 900px) {
	.woocommerce-checkout form.checkout {
		display: grid !important;
		grid-template-columns: 1.4fr 1fr !important;
		gap: 32px !important;
		align-items: start;
	}
	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout #order_review {
		grid-column: 2 !important;
	}
	.woocommerce-checkout .col2-set,
	.woocommerce-checkout .col-1,
	.woocommerce-checkout .col-2 {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		float: none !important;
	}
}
.woocommerce-checkout form .form-row {
	margin-bottom: 14px !important;
}
.woocommerce-checkout #payment {
	background: var(--tp-paper) !important;
	border: 3px solid var(--tp-ink) !important;
	box-shadow: var(--tp-shadow) !important;
	padding: 18px !important;
	border-radius: 0 !important;
}
.woocommerce-checkout #payment ul.payment_methods {
	background: transparent !important;
	border: 0 !important;
}
.woocommerce-checkout #payment .place-order .button {
	background: var(--tp-red) !important;
	color: #fff !important;
	width: 100% !important;
	margin-top: 12px !important;
}
.woocommerce-checkout #payment label {
	color: var(--tp-ink) !important;
	font-weight: 700;
}

/* --- SINGLE PRODUCT: layout 2 colonne (foto sx | summary unico con descrizione dx) --- */
/* Nasconde short_description box giallo (ridondante: c'è già la descrizione lunga sotto) */
.woocommerce div.product .woocommerce-product-details__short-description {
	display: none !important;
}
.woocommerce div.product div.images img {
	max-width: 100%;
	height: auto;
}

/* === Fix paint defer su immagine prodotto ===
   Il wrapper FIGURE di Blocksy parte con width:0 (figlio di flex container con
   flex-basis non risolto) e quindi l'IMG (contain:size dall'UA stylesheet) non
   viene dipinto al primo render. Fix:
   1. display:block sul figure
   2. aspect-ratio 3:4 → la figure ha altezza deterministica prima ancora che
      l'IMG carichi → Chrome non defera la pittura
   3. translate3d(0,0,0) come ulteriore hint per il compositor */
.woocommerce-product-gallery .ct-product-gallery-container {
	display: block !important;
	width: 100% !important;
}
.woocommerce-product-gallery .ct-media-container {
	display: block !important;
	position: relative;
	width: 100% !important;
	aspect-ratio: 3 / 4;
	transform: translate3d(0, 0, 0);
	-webkit-transform: translate3d(0, 0, 0);
	background: var(--tp-cream-deep);
}
.woocommerce-product-gallery .ct-media-container img,
.woocommerce-product-gallery img.wp-post-image {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: 100%;
	object-fit: contain !important;
	transform: translate3d(0, 0, 0);
	-webkit-transform: translate3d(0, 0, 0);
	contain: none !important;
	content-visibility: visible !important;
	contain-intrinsic-size: auto !important;
}

/* Layout single product 2 colonne — Blocksy usa .product-entry-wrapper (display:flex)
   con figli .woocommerce-product-gallery + .summary. Diamo proporzioni 45/55. */
@media (min-width: 1000px) {
	.woocommerce div.product .product-entry-wrapper {
		display: flex !important;
		flex-direction: row !important;
		gap: 50px !important;
		align-items: flex-start !important;
	}
	.woocommerce div.product .product-entry-wrapper .woocommerce-product-gallery {
		flex: 0 0 42% !important;
		max-width: 42% !important;
		margin-bottom: 30px !important;
	}
	.woocommerce div.product .product-entry-wrapper .summary,
	.woocommerce div.product .product-entry-wrapper .entry-summary {
		flex: 1 1 auto !important;
		max-width: calc(58% - 50px) !important;
		margin-bottom: 30px !important;
	}
	/* Fallback per struttura WC standard (no Blocksy wrapper) */
	.woocommerce div.product:not(:has(.product-entry-wrapper)) div.images {
		float: left !important;
		width: 42% !important;
		margin-right: 4% !important;
	}
	.woocommerce div.product:not(:has(.product-entry-wrapper)) .summary,
	.woocommerce div.product:not(:has(.product-entry-wrapper)) .entry-summary {
		float: right !important;
		width: 54% !important;
	}
	/* Tabs sotto, full width sotto le 2 colonne */
	.woocommerce div.product .woocommerce-tabs {
		clear: both;
		margin-top: 36px !important;
	}
}

/* Descrizione INTEGRATA dentro il summary (NON un box separato).
   Stile sobrio: solo separatore sopra, niente bordo/box-shadow, fluisce naturalmente
   tra prezzo e bottone "Aggiungi al carrello". */
.tcgpull-inline-desc {
	margin: 18px 0 22px !important;
	padding: 18px 0 0 !important;
	border-top: 2px dashed rgba(29, 29, 44, 0.18);
	font-size: 15px;
	line-height: 1.6;
	color: var(--tp-ink);
	background: transparent !important;
	box-shadow: none !important;
	border-left: 0; border-right: 0; border-bottom: 0;
}
.tcgpull-inline-desc p {
	margin: 0 0 10px;
}
.tcgpull-inline-desc p:last-child {
	margin-bottom: 0;
}
.tcgpull-inline-desc a {
	color: var(--tp-red);
	font-weight: 700;
	text-decoration: underline;
}
.tcgpull-inline-desc a:hover { color: var(--tp-red-deep); }

/* Nascondi tab "Descrizione" sotto (è già nel summary destro) — desktop only.
   Su mobile resta accessibile come tab perché summary va sotto la foto e diventa lungo. */
@media (min-width: 1000px) {
	.woocommerce div.product .woocommerce-Tabs-panel--description {
		display: none;
	}
	.woocommerce div.product .woocommerce-tabs ul.tabs li.description_tab {
		display: none;
	}
}
/* Tabs Descrizione/Recensioni: stile minimalista pixel */
.woocommerce div.product .woocommerce-tabs {
	max-width: 900px;
	margin: 50px auto 30px !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0 !important;
	margin: 0 0 -3px !important;
	border-bottom: 3px solid var(--tp-ink) !important;
	display: flex;
	gap: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: var(--tp-paper) !important;
	border: 3px solid var(--tp-ink) !important;
	border-bottom: 0 !important;
	border-radius: 0 !important;
	margin: 0 4px 0 0 !important;
	padding: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--tp-ink) !important;
	font-weight: 800 !important;
	text-decoration: none !important;
	padding: 14px 22px !important;
	display: block;
	text-transform: uppercase;
	font-size: 14px;
	letter-spacing: 0.04em;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--tp-yellow) !important;
}
.woocommerce div.product .woocommerce-tabs .panel {
	background: var(--tp-paper);
	border: 3px solid var(--tp-ink);
	box-shadow: var(--tp-shadow);
	padding: 28px !important;
	margin: 0 !important;
}
/* Nasconde firma duplicata Tcg-pull dentro la long description (è già nel footer/banner) */
.woocommerce-Tabs-panel--description p:has(img[alt*="📦"]),
.woocommerce-Tabs-panel--description p:has(img[alt*="💬"]),
.woocommerce-Tabs-panel--description p:has(img[alt*="🛒"]),
.woocommerce-Tabs-panel--description p:has(.tg-mention),
.woocommerce-Tabs-panel--description p:last-child:has(a[href*="vinted"]) {
	display: none;
}
/* "PRODOTTI CORRELATI" sotto: snello */
.woocommerce .related.products h2,
.woocommerce .upsells h2 {
	font-size: 24px !important;
	text-align: center;
	margin: 50px 0 24px !important;
	text-transform: uppercase;
	color: var(--tp-ink);
}
.woocommerce .related.products h2::before {
	content: '◆ ';
	color: var(--tp-red);
}

/* --- BOTTONE "VEDI ANNUNCIO SU VINTED" (su prodotti sincronizzati da Vinted) --- */
.tcgpull-vinted-cta {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 22px;
	background: #09b1ba; /* Vinted teal */
	color: #fff !important;
	border: 3px solid var(--tp-ink);
	box-shadow: var(--tp-shadow);
	margin: 18px 0;
	text-decoration: none !important;
	transition: transform .1s steps(2), box-shadow .1s steps(2);
	max-width: 460px;
}
.tcgpull-vinted-cta:hover {
	transform: translate(-2px, -2px);
	box-shadow: 8px 8px 0 var(--tp-ink);
	background: #07959c;
}
.tcgpull-vinted-cta__icon {
	font-size: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	background: #fff;
	color: #09b1ba;
	border-radius: 50%;
	border: 2px solid var(--tp-ink);
	box-shadow: 2px 2px 0 var(--tp-ink);
	flex-shrink: 0;
}
.tcgpull-vinted-cta__txt {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}
.tcgpull-vinted-cta__txt strong {
	font-size: 18px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.tcgpull-vinted-cta__txt small {
	font-size: 13px;
	opacity: .92;
	margin-top: 4px;
}

/* --- BOTTONE "ORDINA VIA TELEGRAM" (su prodotti dal canale Telegram) --- */
.tcgpull-tg-cta {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 22px;
	background: #229ED9; /* Telegram blue */
	color: #fff !important;
	border: 3px solid var(--tp-ink);
	box-shadow: var(--tp-shadow);
	margin: 18px 0;
	text-decoration: none !important;
	transition: transform .1s steps(2), box-shadow .1s steps(2);
	max-width: 460px;
}
.tcgpull-tg-cta:hover {
	transform: translate(-2px, -2px);
	box-shadow: 8px 8px 0 var(--tp-ink);
	background: #1e8bc3;
}
.tcgpull-tg-cta__icon {
	font-size: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	background: #fff;
	color: #229ED9;
	border-radius: 50%;
	border: 2px solid var(--tp-ink);
	box-shadow: 2px 2px 0 var(--tp-ink);
	flex-shrink: 0;
}
.tcgpull-tg-cta__txt {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}
.tcgpull-tg-cta__txt strong {
	font-size: 18px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.tcgpull-tg-cta__txt small {
	font-size: 13px;
	opacity: .92;
	margin-top: 4px;
}

/* --- RESPONSIVE --- */
@media (max-width: 1024px) {
	.woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
	.tcgpull-hero { padding: 50px 20px 70px; }
	.tcgpull-hero__inner { grid-template-columns: 1fr; text-align: center; }
	.tcgpull-hero__sub { margin-left: auto; margin-right: auto; }
	.tcgpull-hero__cta, .tcgpull-hero__trust { justify-content: center; }
	.tcgpull-pokeball { width: 200px; height: 200px; }
	.tcgpull-pokeball__btn { top: calc(50% - 22px); left: calc(50% - 22px); width: 44px; height: 44px; border-width: 5px; }
	.tcgpull-cats__grid { grid-template-columns: 1fr; }
	.tcgpull-how__grid { grid-template-columns: 1fr; }
	.tcgpull-footer__grid { grid-template-columns: 1fr; gap: 30px; }
	.tcgpull-info-strip__inner { font-size: 12px; gap: 8px; }
	.tcgpull-info-strip__sep { display: none; }
	.woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
	[data-id="logo"] .site-title a,
	.ct-header .site-title a { width: 170px; height: 44px; }
}
@media (max-width: 540px) {
	.woocommerce ul.products { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ROUND 12 — Fix giallo su giallo, via Recensioni, carrello layout, email,
   disclaimer pre-order Telegram, hover zoom solo-img.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ----- 1. VIA i LINK GIALLI ovunque (giallo su cream = illeggibile) ----- */
.tcgpull-inline-desc a,
.tcgpull-inline-desc a:link,
.tcgpull-inline-desc a:visited,
.woocommerce-Tabs-panel a,
.woocommerce-Tabs-panel a:link,
.woocommerce-Tabs-panel a:visited,
.woocommerce-product-details__short-description a,
.product .summary a,
.woocommerce-cart a,
.woocommerce-cart-form a,
.woocommerce table.shop_table a,
.cart_totals a,
.tcgpull-tg-mention,
.woocommerce-info a,
.woocommerce-message a {
	color: var(--tp-red-deep) !important;
	font-weight: 700;
	text-decoration: underline;
}
.tcgpull-inline-desc a:hover,
.woocommerce-Tabs-panel a:hover,
.woocommerce-cart a:hover,
.woocommerce table.shop_table a:hover {
	color: var(--tp-red) !important;
}

/* ----- 2. NASCONDI TAB RECENSIONI (single product) ----- */
.woocommerce-tabs ul.tabs li.reviews_tab,
.woocommerce-tabs #tab-reviews,
.woocommerce-Tabs-panel--reviews {
	display: none !important;
}
/* Se rimane solo un tab, nascondi anche la lista tabs (è ridondante) */
.woocommerce-tabs ul.tabs:has(li:only-child) {
	display: none;
}

/* ----- 3. CARRELLO: layout (Blocksy usa .ct-woocommerce-cart-form display:grid
   con colonne strette 260+130 → tutto sovrapposto). Override colonne larghe. -- */
.woocommerce-cart .ct-woocommerce-cart-form {
	display: grid !important;
	grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr) !important;
	gap: 36px !important;
	align-items: start !important;
}
.woocommerce-cart .ct-woocommerce-cart-form > form.woocommerce-cart-form {
	width: 100% !important;
	min-width: 0 !important;
}
.woocommerce-cart .ct-woocommerce-cart-form > .cart_totals {
	width: 100% !important;
	min-width: 280px !important;
	margin: 0 !important;
	position: sticky;
	top: 90px;
	z-index: 5;
	background: var(--tp-cream);
	border: 3px solid var(--tp-ink);
	box-shadow: 6px 6px 0 var(--tp-ink);
	padding: 0 !important;
}
.woocommerce-cart .ct-woocommerce-cart-form > .cart_totals h2 {
	display: none;  /* "Totale carrello" duplicato — già evidente */
}
/* Cart form: bordo solo intorno alla TABELLA, non al wrap */
.woocommerce-cart .ct-woocommerce-cart-form > form.woocommerce-cart-form table.shop_table {
	width: 100% !important;
	max-width: 100% !important;
	border: 3px solid var(--tp-ink) !important;
}
@media (max-width: 900px) {
	.woocommerce-cart .ct-woocommerce-cart-form {
		grid-template-columns: 1fr !important;
	}
}
.woocommerce-cart .actions {
	display: flex !important;
	flex-wrap: wrap;
	gap: 14px;
	align-items: stretch;
	justify-content: space-between;
	padding: 18px 0 !important;
	border-top: 2px dashed rgba(29, 29, 44, 0.15);
}
.woocommerce-cart .actions .coupon {
	display: flex;
	flex: 1 1 380px;
	gap: 10px;
	align-items: stretch;
	margin: 0 !important;
}
.woocommerce-cart .actions .coupon input.input-text {
	flex: 1 1 auto;
	min-width: 160px;
	max-width: 240px;
	margin: 0 !important;
	padding: 12px 14px !important;
	height: auto !important;
}
.woocommerce-cart .actions .coupon .button {
	flex: 0 0 auto;
	margin: 0 !important;
	white-space: nowrap;
}
.woocommerce-cart .actions > button[name="update_cart"],
.woocommerce-cart .actions button.button[name="update_cart"] {
	flex: 0 0 auto;
	margin: 0 !important;
	white-space: nowrap;
	opacity: 1 !important;
	background: var(--tp-yellow) !important;
	color: var(--tp-ink) !important;
}

/* ----- 4. EMAIL/INPUT background pattern fix (il "10101010" che si vede) -----
   Causa: body usa background-image pattern, gli input ereditano la trasparenza
   in alcuni browser. Forziamo SFONDO BIANCO PIENO. */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row input[type="text"],
.woocommerce form .form-row input[type="email"],
.woocommerce form .form-row input[type="tel"],
.woocommerce form .form-row input[type="number"],
.woocommerce form .form-row input[type="password"],
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout input,
.woocommerce-checkout select,
.woocommerce-checkout textarea,
form.checkout input.input-text,
form.checkout textarea {
	background: #ffffff !important;
	background-image: none !important;
	color: var(--tp-ink) !important;
	border: 2px solid var(--tp-ink) !important;
	border-radius: 0 !important;
	padding: 12px 14px !important;
	font-family: var(--tp-font-body) !important;
	box-shadow: 3px 3px 0 var(--tp-ink) !important;
}

/* ----- 5. DISCLAIMER pre-order Telegram (box dentro la descrizione) ----- */
.tcgpull-preorder-disclaimer {
	background: linear-gradient(180deg, #fff8e7 0%, #ffe6a8 100%);
	border: 3px solid var(--tp-ink);
	box-shadow: 4px 4px 0 var(--tp-ink);
	padding: 16px 20px;
	margin: 0 0 22px 0;
	font-size: 14px;
	line-height: 1.55;
	color: var(--tp-ink);
}
.tcgpull-preorder-disclaimer h4 {
	margin: 0 0 8px;
	font-size: 15px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--tp-red-deep);
}
.tcgpull-preorder-disclaimer h4::before {
	content: '🇯🇵 ';
}
.tcgpull-preorder-disclaimer p {
	margin: 0 0 8px;
}
.tcgpull-preorder-disclaimer p:last-child {
	margin-bottom: 0;
}
.tcgpull-preorder-disclaimer strong {
	color: var(--tp-red-deep);
}

/* ═══════════════════════════════════════════════════════════════════════════
   ROUND 19 — Search modal overlay (era dark quasi nero, illeggibile)
   ═══════════════════════════════════════════════════════════════════════════ */
/* Pannello modale: cream invece di nero */
html body #search-modal.ct-panel,
html body .ct-panel[data-behaviour="modal"][aria-label*="ricerca" i],
html body .ct-panel[aria-label*="earch" i] {
	background: rgba(255, 248, 231, 0.99) !important;  /* cream tcg-pull semi-trasparente */
	color: var(--tp-ink) !important;
}
html body .ct-panel.active .ct-toggle-close,
html body .ct-panel.active .ct-toggle-close svg {
	color: var(--tp-ink) !important;
	fill: var(--tp-ink) !important;
	background: var(--tp-yellow);
	border: 2px solid var(--tp-ink);
	border-radius: 0;
	width: 36px;
	height: 36px;
	box-shadow: 3px 3px 0 var(--tp-ink);
}
/* Input ricerca: sfondo bianco + bordo pixel */
html body .ct-panel.active input[type="search"],
html body .ct-panel.active input.search-field,
html body .ct-panel.active .ct-search-form input {
	background: #ffffff !important;
	color: var(--tp-ink) !important;
	border: 3px solid var(--tp-ink) !important;
	border-radius: 0 !important;
	padding: 16px 22px !important;
	font-size: 18px !important;
	font-family: var(--tp-font-body) !important;
	box-shadow: 4px 4px 0 var(--tp-ink) !important;
	font-weight: 600;
}
html body .ct-panel.active .ct-search-form button[type="submit"],
html body .ct-panel.active button.search-submit {
	background: var(--tp-red) !important;
	color: #fff !important;
	border: 3px solid var(--tp-ink) !important;
	border-radius: 0 !important;
	box-shadow: 4px 4px 0 var(--tp-ink) !important;
}
/* Risultati live search */
html body .ct-panel.active .ct-search-results,
html body .ct-panel.active .ct-live-results {
	background: transparent !important;
	color: var(--tp-ink) !important;
	margin-top: 22px !important;
}
html body .ct-panel.active .ct-search-results a,
html body .ct-panel.active .ct-live-results a,
html body .ct-panel.active .ct-live-results .ct-result {
	background: #ffffff !important;
	color: var(--tp-ink) !important;
	border: 2px solid var(--tp-ink) !important;
	box-shadow: 3px 3px 0 var(--tp-ink);
	padding: 12px 16px !important;
	margin-bottom: 14px !important;
	display: flex;
	align-items: center;
	gap: 14px;
	text-decoration: none !important;
	font-weight: 700;
	transition: transform .1s steps(2), box-shadow .1s steps(2);
}
html body .ct-panel.active .ct-search-results a:hover,
html body .ct-panel.active .ct-live-results a:hover {
	transform: translate(-2px, -2px);
	box-shadow: 5px 5px 0 var(--tp-ink);
	background: var(--tp-yellow-soft, #fff8d6) !important;
	color: var(--tp-red-deep) !important;
}
html body .ct-panel.active .ct-search-results img,
html body .ct-panel.active .ct-live-results img {
	border: 2px solid var(--tp-ink);
	background: #fff;
}
/* "Mostra di più" link */
html body .ct-panel.active .ct-search-results > a:last-child,
html body .ct-panel.active a[class*="show-more"],
html body .ct-panel.active .ct-show-more {
	background: var(--tp-red) !important;
	color: #fff !important;
	text-align: center;
	text-transform: uppercase;
	font-weight: 800;
}
