/*
Theme Name:   K2Print
Theme URI:    https://k2print.it
Description:  Tema child di Astra per K2Print — stampa 3D. Palette derivata dal logo.
Author:       K2Print
Template:     astra
Version:      1.0.0
Text Domain:  k2print
*/

/* ============================================================
   PALETTE — estratta dal gradiente del cubo del logo
   ============================================================ */
:root {
	--k2-giallo:    #FFD60A;
	--k2-rosa:      #FF2E93;
	--k2-magenta:   #F400C4;
	--k2-viola:     #A400E0;
	--k2-blu:       #0A84FF;
	--k2-ciano:     #00D9C0;

	--k2-nero:      #1A1D21;
	--k2-antracite: #14171C;
	--k2-grigio:    #6B7280;
	--k2-bordo:     #E5E7EB;
	--k2-chiaro:    #F7F8FA;
	--k2-bianco:    #FFFFFF;

	/* gradiente firma: segue l'ordine dei colori sul cubo */
	--k2-gradient: linear-gradient(135deg,
		var(--k2-giallo) 0%,
		var(--k2-rosa) 22%,
		var(--k2-magenta) 42%,
		var(--k2-viola) 62%,
		var(--k2-blu) 82%,
		var(--k2-ciano) 100%);

	--k2-gradient-caldo: linear-gradient(135deg, var(--k2-giallo), var(--k2-rosa), var(--k2-magenta));
	--k2-gradient-freddo: linear-gradient(135deg, var(--k2-viola), var(--k2-blu), var(--k2-ciano));

	--k2-radius: 14px;
	--k2-radius-sm: 8px;
	--k2-shadow: 0 4px 20px rgba(26, 29, 33, .08);
	--k2-shadow-lg: 0 12px 40px rgba(26, 29, 33, .14);
}

/* ============================================================
   TIPOGRAFIA — stack di sistema, nessuna chiamata a CDN esterni
   (i Google Fonts remoti sono problematici lato GDPR)
   ============================================================ */
body {
	font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	color: var(--k2-nero);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.site-title, .ast-product-title {
	font-family: "Segoe UI Variable Display", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, sans-serif;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--k2-nero);
}

h1 { font-size: clamp(2rem, 5vw, 3.25rem); line-height: 1.1; }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.4rem); line-height: 1.18; }

/* ============================================================
   ELEMENTI DI MARCA
   ============================================================ */
.k2-gradient-text {
	background: var(--k2-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

/* filo colorato che richiama il logo */
.k2-rule {
	height: 4px;
	width: 100%;
	border: 0;
	border-radius: 4px;
	background: var(--k2-gradient);
	margin: 0;
}

/* ============================================================
   BOTTONI
   ============================================================ */
.ast-button, .button, button, input[type="submit"],
.wp-block-button__link,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt {
	background: var(--k2-nero);
	color: var(--k2-bianco);
	border: 0;
	border-radius: var(--k2-radius-sm);
	padding: .85em 1.7em;
	font-weight: 600;
	letter-spacing: .01em;
	transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}

.ast-button:hover, .button:hover, button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover {
	background: var(--k2-nero);
	color: var(--k2-bianco);
	transform: translateY(-2px);
	box-shadow: var(--k2-shadow);
}

/* Bottone principale: gradiente del logo.
   Nota: Gutenberg applica la className al contenitore .wp-block-button,
   non al link, quindi il selettore deve scendere al figlio. */
.k2-btn-gradient .wp-block-button__link,
.wp-block-button__link.k2-btn-gradient,
a.k2-btn-gradient,
button.k2-btn-gradient,
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce #payment #place_order {
	background: var(--k2-gradient) !important;
	background-size: 220% 100% !important;
	background-position: 0 0 !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: var(--k2-radius-sm) !important;
	font-weight: 700 !important;
	transition: background-position .45s ease, transform .15s ease, box-shadow .15s ease !important;
}

.k2-btn-gradient .wp-block-button__link:hover,
.wp-block-button__link.k2-btn-gradient:hover,
a.k2-btn-gradient:hover,
button.k2-btn-gradient:hover,
.woocommerce div.product form.cart .single_add_to_cart_button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #payment #place_order:hover {
	background-position: 100% 0 !important;
	color: #fff !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(244, 0, 196, .28) !important;
}

/* Bottone secondario in outline */
.k2-btn-outline .wp-block-button__link,
.wp-block-button__link.k2-btn-outline,
a.k2-btn-outline {
	background: transparent !important;
	color: var(--k2-nero) !important;
	border: 2px solid var(--k2-bordo) !important;
}
.k2-btn-outline .wp-block-button__link:hover,
.wp-block-button__link.k2-btn-outline:hover,
a.k2-btn-outline:hover {
	border-color: var(--k2-magenta) !important;
	color: var(--k2-magenta) !important;
	background: transparent !important;
}

/* Dentro l'hero scuro l'outline va in bianco, altrimenti sparisce */
.k2-hero .k2-btn-outline .wp-block-button__link,
.k2-hero .wp-block-button__link.k2-btn-outline {
	color: #fff !important;
	border-color: rgba(255, 255, 255, .45) !important;
}
.k2-hero .k2-btn-outline .wp-block-button__link:hover,
.k2-hero .wp-block-button__link.k2-btn-outline:hover {
	color: #fff !important;
	border-color: #fff !important;
	background: rgba(255, 255, 255, .1) !important;
}

/* ============================================================
   INTESTAZIONE — logo e titolo
   ============================================================ */

/* Il logo contiene gia' la parola K2PRINT: il titolo testuale
   accanto sarebbe una ripetizione. Resta leggibile agli screen reader. */
.site-title,
.ast-site-identity .site-title {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.custom-logo-link img,
.ast-site-identity .custom-logo-link img {
	max-width: 190px;
	width: 100%;
	height: auto;
}

@media (max-width: 921px) {
	.custom-logo-link img,
	.ast-site-identity .custom-logo-link img { max-width: 140px; }
}

/* ============================================================
   HERO
   ============================================================ */
.k2-hero {
	position: relative;
	background: var(--k2-antracite);
	color: #fff;
	padding: clamp(3.5rem, 9vw, 6.5rem) 0;
	overflow: hidden;
	text-align: center;
}
.k2-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 15% 20%, rgba(0, 217, 192, .18), transparent 45%),
		radial-gradient(circle at 85% 25%, rgba(244, 0, 196, .22), transparent 45%),
		radial-gradient(circle at 50% 95%, rgba(10, 132, 255, .18), transparent 50%);
	pointer-events: none;
}
.k2-hero > * { position: relative; z-index: 1; }
.k2-hero h1, .k2-hero h2, .k2-hero p { color: #fff; }
.k2-hero h1 { margin-bottom: .6rem; }

.k2-hero p.k2-lead {
	font-size: clamp(1.02rem, 2vw, 1.18rem);
	opacity: .84;
	max-width: 52ch;
	margin-left: auto;
	margin-right: auto;
}

/* i bottoni dell'hero vanno centrati anche senza layout flex nel blocco */
.k2-hero .wp-block-buttons {
	justify-content: center;
	gap: .75rem;
	margin-top: 1.8rem;
}

/* ============================================================
   CARD CATEGORIE E PRODOTTI
   ============================================================ */
.k2-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1.25rem;
}
.k2-card {
	position: relative;
	display: block;
	padding: 1.6rem 1.4rem;
	border: 1px solid var(--k2-bordo);
	border-radius: var(--k2-radius);
	background: var(--k2-bianco);
	text-decoration: none;
	color: inherit;
	overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.k2-card::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 4px;
	background: var(--k2-gradient);
	opacity: 0;
	transition: opacity .18s ease;
}
.k2-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--k2-shadow-lg);
	border-color: transparent;
}
.k2-card:hover::before { opacity: 1; }
.k2-card h3 { margin: 0 0 .4rem; font-size: 1.15rem; }
.k2-card p { margin: 0; color: var(--k2-grigio); font-size: .94rem; }

/* prodotti WooCommerce */
.woocommerce ul.products li.product {
	border: 1px solid var(--k2-bordo);
	border-radius: var(--k2-radius);
	padding: 1rem;
	background: #fff;
	transition: transform .18s ease, box-shadow .18s ease;
}
.woocommerce ul.products li.product:hover {
	transform: translateY(-4px);
	box-shadow: var(--k2-shadow-lg);
}
.woocommerce ul.products li.product img { border-radius: var(--k2-radius-sm); }
.woocommerce ul.products li.product .price { color: var(--k2-nero); font-weight: 700; }

/* etichetta offerta con il rosa del logo */
.woocommerce span.onsale {
	background: var(--k2-gradient-caldo);
	color: #fff;
	border-radius: 999px;
	font-weight: 700;
	padding: .35em .9em;
	min-height: auto;
	min-width: auto;
	line-height: 1.5;
}

/* ============================================================
   BADGE / PILLOLE
   ============================================================ */
.k2-badge {
	display: inline-block;
	padding: .35em .85em;
	border-radius: 999px;
	font-size: .8rem;
	font-weight: 600;
	background: rgba(244, 0, 196, .1);
	color: var(--k2-magenta);
}
.k2-badge--ciano { background: rgba(0, 217, 192, .14); color: #069684; }
.k2-badge--blu   { background: rgba(10, 132, 255, .12); color: var(--k2-blu); }

/* ============================================================
   BLOCCO PREVENTIVO (Stimalo)
   ============================================================ */
.k2-quote {
	background: var(--k2-chiaro);
	border: 1px solid var(--k2-bordo);
	border-radius: var(--k2-radius);
	padding: clamp(1.5rem, 4vw, 2.6rem);
	text-align: center;
}
.k2-quote h2 { margin-top: 0; }
.k2-quote p { color: var(--k2-grigio); max-width: 58ch; margin-inline: auto; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer, .ast-small-footer {
	background: var(--k2-antracite);
	color: rgba(255, 255, 255, .7);
}
.site-footer a, .ast-small-footer a { color: rgba(255, 255, 255, .85); }
.site-footer a:hover, .ast-small-footer a:hover { color: var(--k2-ciano); }

.k2-footer-legal {
	margin: 0 0 .5rem;
	font-size: .92rem;
}
.k2-footer-legal a { text-decoration: none; }
.k2-footer-legal a:hover { text-decoration: underline; }
.k2-footer-legal span { opacity: .45; margin: 0 .15rem; }

/* ============================================================
   ACCESSIBILITA'
   ============================================================ */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, .k2-card:focus-visible {
	outline: 3px solid var(--k2-blu);
	outline-offset: 2px;
	border-radius: var(--k2-radius-sm);
}

@media (prefers-reduced-motion: reduce) {
	* { animation: none !important; transition: none !important; }
	.k2-card:hover, .ast-button:hover, .button:hover { transform: none; }
}
