/*
Theme Name: Giordani
Theme URI: https://ferramentagiordani.it
Author: Andrea Fois
Description: Tema custom per Ferramenta Giordani SRL. Block theme leggero, senza page builder, accessibile (WCAG 2.1 AA), font di sistema.
Version: 0.1.1
Requires at least: 6.5
Requires PHP: 8.2
License: GNU General Public License v2 or later
Text Domain: giordani
*/

/* Il grosso dello stile vive in theme.json. Qui solo rifiniture non esprimibili nei token. */

/* Pattern "ferramenta" (dadi, viti, chiavi stilizzate): tile SVG ripetuta,
   solo sul footer navy in variante bianca tenue. File locale: niente
   richieste esterne. (La variante navy in assets/pattern/ resta disponibile
   se in futuro servisse altrove.) */
footer.wp-block-template-part > .wp-block-group {
	background-image: url('assets/pattern/tile-light.svg');
	background-size: 260px 260px;
}

/* Link sul footer navy: l'ambra scura di default lì è poco leggibile, e
   l'hover globale (che vira al navy) li farebbe sparire. Qui: ambra brand
   piena di default (contrasto ~7:1 sul navy), schiarita in hover/focus. */
footer.wp-block-template-part a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--accent);
}
footer.wp-block-template-part a:not(.wp-block-button__link):hover,
footer.wp-block-template-part a:not(.wp-block-button__link):focus {
	color: var(--wp--preset--color--base);
}

/* Link sulle bande ambra (es. "Passa in negozio o scrivici"): l'ambra scura
   dei link normali lì non contrasta — navy (~8:1), con hover a sottolineatura
   ispessita perché il testo circostante è già navy. */
.has-accent-background-color a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--contrast);
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}
.has-accent-background-color a:not(.wp-block-button__link):hover,
.has-accent-background-color a:not(.wp-block-button__link):focus {
	color: var(--wp--preset--color--contrast);
	/* finto grassetto a larghezza invariata: niente spostamento delle parole */
	text-shadow: 0.03em 0 currentColor, -0.03em 0 currentColor;
	text-decoration-thickness: 3px;
}

/* Sticky footer: nelle pagine corte il footer navy arriva comunque al fondo
   della finestra, senza strisce di sfondo sotto. */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100svh;
}
.wp-site-blocks > main {
	flex-grow: 1;
}

/* Gutter laterali: applicati ai contenitori di sezione, non alla radice
   (il root padding aware di core confligge coi wrapper annidati del tema). */
.gio-gutter {
	padding-left: var(--wp--preset--spacing--40);
	padding-right: var(--wp--preset--spacing--40);
}

/* Overlay del menu mobile: core lo riempie con
   clamp(1rem, var(--wp--style--root--padding-*), 20rem) — variabili che
   questo tema non definisce (gutter a livello di sezione), quindi l'intera
   dichiarazione è invalida e collassa a 0: voci attaccate al bordo.
   Definirle nel solo contesto dell'overlay fa funzionare la regola di core
   (che ha specificità più alta di qualunque override diretto del padding). */
.wp-block-navigation__responsive-container.is-menu-open {
	--wp--style--root--padding-top: var(--wp--preset--spacing--40);
	--wp--style--root--padding-right: var(--wp--preset--spacing--40);
	--wp--style--root--padding-bottom: var(--wp--preset--spacing--40);
	--wp--style--root--padding-left: var(--wp--preset--spacing--40);
}

:where(a:focus-visible, button:focus-visible, [role="button"]:focus-visible) {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	padding: 0.75rem 1.25rem;
	z-index: 100000;
}
.skip-link:focus {
	left: 0;
}

/* Testata sticky: resta visibile durante lo scroll. Lo z-index la tiene
   sopra i contenuti ma sotto eventuali overlay (menu mobile di WP usa
   z-index piu' alti). L'ombra la stacca dal contenuto. */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 500;
	box-shadow: 0 1px 6px rgb(3 32 74 / 8%);
}

/* Con la testata sticky, i salti ad ancora devono fermarsi sotto la barra */
html {
	scroll-padding-top: 100px;
}

/* Velo dell'hero: core definisce le classi dim solo a multipli di 10,
   l'85% del cover in home lo definiamo qui. */
.wp-block-cover .has-background-dim-85 {
	opacity: 0.85;
}

/* Didascalie delle immagini: piccole e attenuate, da didascalia vera */
figcaption.wp-element-caption {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	margin-top: 0.4rem;
}

/* Card dei settori */
.gio-card {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	border-radius: 8px;
	padding: var(--wp--preset--spacing--40);
	height: 100%;
	background: var(--wp--preset--color--base);
}

/* Spazio di rispetto in fondo al footer: il pulsante WhatsApp flottante
   (fixed, in basso a destra) non deve coprire l'ultima riga coi link legali.
   !important perché il padding del gruppo è inline nel template part. */
footer.wp-block-template-part > .wp-block-group {
	padding-bottom: calc(var(--wp--preset--spacing--40) + 3.5rem) !important;
}

/* Selettore lingua di TranslatePress (switcher v2): in basso a SINISTRA,
   per non sovrapporsi al pulsante WhatsApp che presidia l'angolo destro. */
nav.trp-floating-switcher {
	right: auto !important;
	left: 1rem !important;
}

/* Pulsante WhatsApp flottante (markup dal plugin) */
.gio-whatsapp {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 9000;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: #1ebe5d;
	color: #fff;
	border-radius: 999px;
	padding: 0.7rem 1.1rem;
	text-decoration: none;
	font-weight: 600;
	box-shadow: 0 2px 10px rgb(0 0 0 / 25%);
}
.gio-whatsapp:hover,
.gio-whatsapp:focus {
	background: #179c4b;
	color: #fff;
}
.gio-whatsapp svg {
	width: 1.35em;
	height: 1.35em;
	fill: currentColor;
}
