/*
Theme Name: Studio Tecnico di Progettazione
Author: Fabio Campilongo
Description: Tema WordPress nativo a blocchi (Full Site Editing) per uno studio professionale o attività di consulenza tecnica. Costruito usando solo blocchi Gutenberg nativi e theme.json, pensato come base riutilizzabile per più progetti.
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 8.0
Version: 1.3.0
License: Proprietaria - All Rights Reserved. Copyright (c) 2026
Text Domain: studio-campilongo
Tags: full-site-editing, block-patterns, custom-colors, custom-menu, footer-widgets, one-column, translation-ready

Changelog:
1.3.0 - Riscritti tutti i pattern con testi generici (titolo, paragrafi,
        pulsanti, schede, elenchi) senza alcun riferimento a uno
        specifico settore o attività. Restano riconoscibili solo dai
        nomi dei file immagine caricati (foto reali del progetto
        originale), sostituibili liberamente con le proprie.
1.2.0 - Tema "puro": rimosso ogni contenuto precompilato dai modelli.
        Home, Servizi, Contatti e Informativa sulla privacy sono ora
        pagine vuote e identiche a qualsiasi altra pagina di WordPress
        (titolo + contenuto), senza nessuna corrispondenza automatica
        legata allo slug. Tutte le sezioni pronte (hero, elenco servizi,
        modulo di contatto, ecc.) restano disponibili come pattern
        inseribili liberamente dall'inseritore di blocchi, ma non sono
        più forzate in nessun modello. Rimossa la voce "customTemplates"
        da theme.json, non più necessaria.
1.1.0 - Rimosso ogni riferimento testuale a una persona o attività specifica
        (titoli, testi, recapiti, dati SEO) sostituito con contenuti
        generici segnaposto, per permettere il riuso del tema come base
        per altri progetti. Aggiunto un colore dedicato "Intestazione e
        piè di pagina" in theme.json, separato dal colore primario, cosi'
        da poter cambiare lo sfondo di header/footer indipendentemente
        dal resto della palette (pannello Stili dell'editor).
1.0.1 - Corretti alcuni mismatch di validazione nei blocchi "Copertina"
        (classe is-position-*, arrotondamento dimRatio ai multipli di 10,
        style min-height mancante) che potevano mostrare "Tenta il
        recupero" nell'editor a blocchi. Nessun impatto sul sito pubblicato.
        Il titolo nell'header non usa più il blocco "Titolo del sito" (che
        non permette di andare a capo, essendo un campo a riga singola in
        Impostazioni → Generali) ma un paragrafo libero su due righe.
1.0.0 - Prima versione.

Studio Tecnico di Progettazione e' un tema a blocchi (block theme). Struttura, palette
colori e tipografia sono definite in theme.json; questo file contiene solo
le regole che i blocchi nativi non esprimono ancora via theme.json (form
di contatto, mappa, dettagli di accessibilita').
*/

/* Skip link (accessibilita') */
.skip-link.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.skip-link.screen-reader-text:focus {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--dark);
	clip: auto !important;
	clip-path: none;
	display: block;
	height: auto;
	left: 6px;
	line-height: normal;
	padding: 12px 16px;
	position: fixed !important;
	top: 6px;
	width: auto;
	z-index: 100000;
	border-radius: 4px;
}

/* Navigazione header/footer */
.site-header .wp-block-navigation-item a,
.site-footer .wp-block-navigation-item a {
	text-decoration: none;
}

.site-header .wp-block-navigation-item a:hover,
.site-footer .wp-block-navigation-item a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* Form di contatto nativo (markup HTML puro in un blocco core/html,
   inviato tramite admin-post.php: vedi functions.php) */
.contact-form {
	display: grid;
	gap: var(--wp--preset--spacing--40);
}

.contact-form .form-row {
	display: grid;
	gap: var(--wp--preset--spacing--20);
}

.contact-form label {
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	padding: 0.75em 1em;
	border: 1px solid var(--wp--preset--color--slate);
	border-radius: 4px;
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--dark);
	width: 100%;
	box-sizing: border-box;
}

.contact-form input:focus,
.contact-form textarea:focus {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 1px;
}

.contact-form .form-consent {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	font-size: var(--wp--preset--font-size--small);
}

.contact-form .form-consent input {
	margin-top: 0.35em;
}

.contact-form .form-required {
	color: var(--wp--preset--color--primary);
}

.contact-form .form-notice {
	padding: 0.9em 1.2em;
	border-radius: 4px;
	font-size: var(--wp--preset--font-size--small);
}

.contact-form .form-notice.is-success {
	background-color: var(--wp--preset--color--success-background);
	color: var(--wp--preset--color--success);
}

.contact-form .form-notice.is-error {
	background-color: var(--wp--preset--color--error-background);
	color: var(--wp--preset--color--error);
}

/* Mappa: proporzioni responsive senza librerie esterne */
.map-embed {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 4px;
}

.map-embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Card dei servizi */
.service-card {
	background-color: var(--wp--preset--color--white);
	border-radius: 6px;
	overflow: hidden;
	height: 100%;
}

.service-card .wp-block-image {
	margin: 0;
}

.service-card .wp-block-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
}

/* -----------------------------------------------------------------------
   Sezione di contatto in home page: il modulo e i recapiti (pattern
   riutilizzati anche su pagine a sfondo chiaro) vanno a testo chiaro
   quando compaiono sopra la foto scura di sfondo.
----------------------------------------------------------------------- */
.on-dark-cover .wp-block-heading,
.on-dark-cover p,
.on-dark-cover label,
.on-dark-cover a:not(.wp-element-button) {
	color: var(--wp--preset--color--white) !important;
}

.on-dark-cover .form-required {
	color: var(--wp--preset--color--primary) !important;
}

.on-dark-cover input[type="text"],
.on-dark-cover input[type="email"],
.on-dark-cover textarea {
	background-color: color-mix(in srgb, var(--wp--preset--color--white) 92%, transparent);
}

/* -----------------------------------------------------------------------
   Riquadro bordato usato nelle sezioni "hero" sopra le foto di sfondo
----------------------------------------------------------------------- */
.hero-box {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--white) 60%, transparent);
}

/* Stile per Contact Form 7, coerente con il resto del tema */
.wpcf7-form {
	display: grid;
	gap: var(--wp--preset--spacing--40);
}

.wpcf7-form label {
	display: block;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
	margin-bottom: var(--wp--preset--spacing--20);
}

.wpcf7-form-control {
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	padding: 0.75em 1em;
	border: 1px solid var(--wp--preset--color--slate);
	border-radius: 4px;
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--dark);
	width: 100%;
	box-sizing: border-box;
}

.wpcf7-form-control:focus {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 1px;
}

.wpcf7-acceptance {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	font-size: var(--wp--preset--font-size--small);
}

.wpcf7-list-item {
	margin: 0;
}

.wpcf7-submit {
	background-color: var(--wp--preset--color--charcoal);
	color: var(--wp--preset--color--white);
	border: none;
	border-radius: 4px;
	padding: 0.9em 1.6em;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	cursor: pointer;
}

.wpcf7-submit:hover {
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--dark);
}

.wpcf7-not-valid-tip {
	color: var(--wp--preset--color--error);
	font-size: var(--wp--preset--font-size--small);
	margin-top: 0.3em;
}

.wpcf7-response-output {
	padding: 0.9em 1.2em;
	border-radius: 4px;
	font-size: var(--wp--preset--font-size--small);
	margin-top: var(--wp--preset--spacing--20);
}

.wpcf7-mail-sent-ok {
	background-color: var(--wp--preset--color--success-background);
	color: var(--wp--preset--color--success);
	border-color: var(--wp--preset--color--success) !important;
}

.wpcf7-validation-errors,
.wpcf7-mail-sent-ng {
	background-color: var(--wp--preset--color--error-background);
	color: var(--wp--preset--color--error);
	border-color: var(--wp--preset--color--error) !important;
}

/* Correzioni aggiuntive per Contact Form 7 */
.wpcf7-form p {
	margin: 0;
}
.wpcf7-acceptance,
.wpcf7-acceptance .wpcf7-list-item,
.wpcf7-acceptance .wpcf7-list-item-label {
	background: none;
}
.on-dark-cover .wpcf7-acceptance,
.on-dark-cover .wpcf7-acceptance .wpcf7-list-item,
.on-dark-cover .wpcf7-acceptance .wpcf7-list-item-label {
	color: var(--wp--preset--color--white);
}
.wpcf7-acceptance a {
	color: var(--wp--preset--color--dark);
	text-decoration: underline;
}

/* Aggiunta per giustificare i testi nei blocchi degli articoli */
.testo-giustificato p {
	text-align: justify;
}