/*
Theme Name: Studio Tecnico Elettrico
Theme URI: https://wordpress.org/
Author: Studio Tecnico
Description: Tema a blocchi per uno studio tecnico che si occupa di sicurezza elettrica, formazione CEI 11-27 e CEI 78-17, progettazione di impianti elettrici, termografie e direzione lavori. All'attivazione crea le pagine del sito; i dati dello studio si compilano in Aspetto › Dati dello studio.
Version: 1.1.0
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: studio-tecnico
Tags: block-patterns, full-site-editing, business, one-column, custom-colors
*/

/* ---------------------------------------------------------------- Base */
:root {
	--st-ink: var(--wp--preset--color--ink);
	--st-navy: var(--wp--preset--color--navy);
	--st-steel: var(--wp--preset--color--steel);
	--st-muted: var(--wp--preset--color--muted);
	--st-line: var(--wp--preset--color--line);
	--st-paper: var(--wp--preset--color--paper);
	--st-accent: var(--wp--preset--color--accent);
	--st-accent-ink: var(--wp--preset--color--accent-ink);
	--st-radius: 10px;
	--st-section-pad: clamp(3.5rem, 8vw, 6.5rem);
	--st-grid-dark: radial-gradient(circle at 1px 1px, rgba(143, 160, 184, .16) 1px, transparent 0) 0 0 / 22px 22px;
	--st-grid-light: radial-gradient(circle at 1px 1px, rgba(21, 37, 64, .08) 1px, transparent 0) 0 0 / 22px 22px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: "cv11", "ss01"; }
:where(h1, h2, h3, h4) { text-wrap: balance; }
:where(p, li) { text-wrap: pretty; }
[id] { scroll-margin-top: 110px; }
::selection { background: var(--st-accent); color: var(--st-ink); }
a:focus-visible, .wp-element-button:focus-visible { outline: 3px solid var(--st-accent); outline-offset: 2px; }
.wp-site-blocks > main { margin-block-start: 0; }
.wp-site-blocks > footer { margin-block-start: 0; }

.st-eyebrow {
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--st-accent-ink);
	display: flex;
	align-items: center;
	gap: .6rem;
}
.st-eyebrow::before {
	content: "";
	width: 22px;
	height: 2px;
	background: currentColor;
}
.st-lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.6;
	color: var(--st-steel);
}
.st-small { font-size: var(--wp--preset--font-size--small); color: var(--st-muted); }

/* ---------------------------------------------------------------- Header */
.st-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, .94);
	backdrop-filter: saturate(1.4) blur(8px);
	border-bottom: 1px solid var(--st-line);
}
.admin-bar .st-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .st-header { top: 0; position: relative; } }
.st-header__inner { padding-block: .85rem; gap: 1.5rem; }
.st-brand { gap: .75rem; flex-wrap: nowrap; }
.st-brand__mark {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	border-radius: 8px;
	background: var(--st-navy);
	display: grid;
	place-items: center;
	margin: 0;
}
.st-brand__mark svg { width: 20px; height: 20px; display: block; }
.st-brand__text { gap: 0 !important; }
.st-brand .wp-block-site-title { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 1.08rem; line-height: 1.2; margin: 0; letter-spacing: -.01em; }
.st-brand .wp-block-site-title a { color: var(--st-ink); text-decoration: none; }
.st-brand__tag { margin: 0; font-size: .74rem; color: var(--st-muted); letter-spacing: .02em; line-height: 1.3; }

.st-nav { font-size: .95rem; font-weight: 500; }
.st-nav a { text-decoration: none; color: var(--st-ink); }
.st-nav .wp-block-navigation-item__content { padding-block: .35rem; position: relative; }
.st-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 2px;
	background: var(--st-accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .2s ease;
}
.st-nav .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.st-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.st-nav .wp-block-navigation__submenu-container {
	border: 1px solid var(--st-line) !important;
	border-radius: 8px;
	padding: .4rem 0;
	box-shadow: 0 12px 30px rgba(13, 22, 38, .12);
	min-width: 250px !important;
}
.st-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .5rem 1rem !important; }
.st-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--st-paper); }
.st-header__cta .wp-block-button__link { padding: .6rem 1.1rem; font-size: .92rem; }
@media (max-width: 960px) { .st-header__cta { display: none; } }
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { font-size: 1.15rem; }

/* ---------------------------------------------------------------- Hero */
.st-hero {
	background: var(--st-grid-dark), linear-gradient(160deg, #13213A 0%, #0D1626 70%);
	color: #fff;
	padding-block: clamp(3.5rem, 9vw, 7rem) !important;
	position: relative;
	overflow: hidden;
}
.st-hero::after {
	content: "";
	position: absolute;
	right: -10%;
	top: -30%;
	width: 60%;
	height: 120%;
	background: radial-gradient(closest-side, rgba(245, 184, 0, .10), transparent);
	pointer-events: none;
}
.st-hero > * { position: relative; z-index: 1; }
.st-hero__cols { align-items: center !important; gap: clamp(2rem, 5vw, 4.5rem) !important; }
.st-hero .st-eyebrow { color: var(--st-accent); }
.st-hero__title { color: #fff; margin-block: .5rem 1.25rem; }
.st-hero .st-lead { color: #C3CEDD; max-width: 38em; }
.st-hero__actions { margin-top: 2rem; gap: .75rem; }
.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--st-ink);
	border: 1.5px solid currentColor;
}
.st-hero .is-style-outline > .wp-block-button__link,
.st-band .is-style-outline > .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .45); }
.st-hero .is-style-outline > .wp-block-button__link:hover { border-color: #fff; background: rgba(255, 255, 255, .06); }
.st-norms { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2.25rem !important; }
.st-norms span {
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .04em;
	color: #C3CEDD;
	border: 1px solid rgba(195, 206, 221, .28);
	border-radius: 999px;
	padding: .3rem .75rem;
	font-variant-numeric: tabular-nums;
}
.st-schema { margin: 0; }
.st-schema img { width: 100%; height: auto; display: block; border-radius: 14px; box-shadow: 0 30px 60px rgba(0, 0, 0, .35); }
@media (max-width: 781px) { .st-hero__visual { display: none; } }

/* ---------------------------------------------------------------- Sezioni */
.st-section { padding-block: var(--st-section-pad) !important; }
.st-section--paper { background: var(--st-paper); }
.st-section__head { max-width: 720px; margin-bottom: clamp(2rem, 4vw, 3rem) !important; }
.st-section__head > * { margin-block: 0 .75rem; }
.st-section__head p:not(.st-eyebrow) { color: var(--st-steel); font-size: 1.1rem; }

/* Card servizi */
.st-cards {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 1.25rem;
}
.st-cards > * { margin: 0 !important; }
.st-cards--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); margin-block: 1.5rem 2.5rem !important; }
.st-card {
	position: relative;
	background: #fff;
	border: 1px solid var(--st-line);
	border-radius: var(--st-radius);
	padding: 1.75rem 1.6rem 1.5rem !important;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.st-card > * { margin-block: 0 .6rem !important; }
.st-card h3 { font-size: 1.2rem; }
.st-card p { color: var(--st-steel); font-size: .98rem; line-height: 1.6; }
.st-card:has(.st-card__link):hover { border-color: var(--st-accent); box-shadow: 0 14px 34px rgba(13, 22, 38, .09); transform: translateY(-2px); }
.st-card__link { margin: 1rem 0 0 !important; font-weight: 600; font-size: .95rem; }
.st-card__link a { color: var(--st-navy); text-decoration: none; }
.st-card__link a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.st-card__link::after { content: " →"; color: var(--st-accent-ink); transition: margin .2s ease; }
.st-card:hover .st-card__link::after { margin-left: .25rem; }
.st-card--plain { background: var(--st-paper); border-color: transparent; }
.st-card--plain h3 { font-size: 1.08rem; }

/* Icone (maschere SVG) */
.st-ico { --st-ico-size: 46px; }
.st-ico::before {
	content: "";
	display: block;
	width: var(--st-ico-size);
	height: var(--st-ico-size);
	border-radius: 9px;
	background: var(--st-navy);
	margin-bottom: 1.1rem;
}
.st-ico::after {
	content: "";
	position: absolute;
	width: 24px;
	height: 24px;
	top: calc(1.75rem + (var(--st-ico-size) - 24px) / 2);
	left: calc(1.6rem + (var(--st-ico-size) - 24px) / 2);
	background: var(--st-accent);
	-webkit-mask: var(--st-ico) center / contain no-repeat;
	mask: var(--st-ico) center / contain no-repeat;
}
.st-ico--shield { --st-ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l8 3v6c0 4.6-3.4 8.3-8 9-4.6-.7-8-4.4-8-9V6z'/><path d='M13 7.5L10 12.5h4l-3 4'/></svg>"); }
.st-ico--people { --st-ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 8l9-4 9 4-9 4z'/><path d='M7 10v4.5c0 1.4 2.2 2.5 5 2.5s5-1.1 5-2.5V10'/><path d='M21 8v5'/></svg>"); }
.st-ico--cabin { --st-ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 10l9-6 9 6'/><path d='M5 9v11h14V9'/><path d='M13 10l-3 4.5h4L11 19'/></svg>"); }
.st-ico--plan { --st-ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='18' height='18' rx='2'/><path d='M3 9h18M9 21V9'/><path d='M13 13h4M13 17h2'/></svg>"); }
.st-ico--thermo { --st-ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10 14.8V5a2 2 0 1 1 4 0v9.8a4 4 0 1 1-4 0z'/><path d='M12 11v6'/><path d='M17 6h3M17 10h2'/></svg>"); }
.st-ico--site { --st-ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 17h18v3H3z'/><path d='M5 17a7 7 0 0 1 14 0'/><path d='M10 10.5V7h4v3.5'/></svg>"); }
.st-ico--phone { --st-ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/></svg>"); }
.st-ico--mail { --st-ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='14' rx='2'/><path d='M3 7l9 6 9-6'/></svg>"); }
.st-ico--pin { --st-ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/><circle cx='12' cy='9.5' r='2.5'/></svg>"); }
.st-ico--clock { --st-ico: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>"); }

/* Passi del metodo */
.st-steps {
	list-style: none;
	counter-reset: st-step;
	padding: 0 !important;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 0;
	border-top: 1px solid var(--st-line);
	max-width: var(--wp--style--global--wide-size, 1200px) !important;
}
.st-steps li {
	counter-increment: st-step;
	padding: 1.75rem 1.5rem 0 0;
	color: var(--st-steel);
	font-size: .98rem;
	margin: 0 !important;
	position: relative;
}
.st-steps li::before {
	content: "0" counter(st-step);
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 2rem;
	color: var(--st-accent-ink);
	font-variant-numeric: tabular-nums;
	margin-bottom: .75rem;
}
.st-steps li::after {
	content: "";
	position: absolute;
	top: -1px; left: 0;
	width: 40px; height: 3px;
	background: var(--st-accent);
}
.st-steps strong { display: block; color: var(--st-ink); font-size: 1.12rem; margin-bottom: .35rem; }

/* Fascia formazione */
.st-band { background: var(--st-grid-dark), var(--st-navy); color: #DCE4EF; }
.st-band h2 { color: #fff; }
.st-band .st-eyebrow { color: var(--st-accent); }
.st-band__cols { gap: clamp(2rem, 5vw, 4.5rem) !important; align-items: center !important; }
.st-courses { display: grid; gap: 1rem; }
.st-courses > * { margin: 0 !important; }
.st-course {
	background: rgba(13, 22, 38, .55);
	border: 1px solid rgba(195, 206, 221, .18);
	border-left: 3px solid var(--st-accent);
	border-radius: var(--st-radius);
	padding: 1.5rem 1.6rem !important;
}
.st-course > * { margin: 0 !important; }
.st-course__code { color: var(--st-accent); font-weight: 700; font-size: .85rem; letter-spacing: .1em; }
.st-course__title { color: #fff; font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: 1.3rem; margin-top: .35rem !important; }
.st-course__meta { color: #9FB0C6; font-size: .92rem; margin-top: .3rem !important; }

/* Liste con spunta */
.st-checks { list-style: none; padding-left: 0 !important; }
.st-checks li { position: relative; padding-left: 1.9rem; margin-block: .55rem; }
.st-checks li::before {
	content: "";
	position: absolute;
	left: 0; top: .2em;
	width: 1.2rem; height: 1.2rem;
	background: var(--st-accent-ink);
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>") center / contain no-repeat;
	mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>") center / contain no-repeat;
}
.st-band .st-checks li::before { background: var(--st-accent); }

/* Elenco norme */
.st-norm-list { list-style: none; padding: 0 !important; border-top: 1px solid var(--st-line); }
.st-norm-list li { padding: .85rem 0; border-bottom: 1px solid var(--st-line); margin: 0; color: var(--st-steel); }
.st-norm-list li strong { color: var(--st-ink); display: inline-block; min-width: 3.2rem; }

/* CTA */
.st-cta { background: var(--st-grid-light), var(--st-accent); text-align: center; }
.st-cta h2 { max-width: 22ch; margin-inline: auto !important; }
.st-cta p { color: #3A2C00; max-width: 40em; margin-inline: auto !important; font-size: 1.1rem; }
.st-cta .wp-block-buttons { justify-content: center; margin-top: 1.75rem; }
.st-cta .wp-block-button__link,
.st-cta-box .wp-block-button__link { background: var(--st-ink); color: #fff; }
.st-cta .wp-block-button__link:hover { background: var(--st-navy); color: #fff; }

.st-cta-box {
	background: var(--st-grid-dark), var(--st-navy);
	color: #C3CEDD;
	border-radius: 14px;
	padding: clamp(1.75rem, 4vw, 3rem) !important;
	margin-top: clamp(3rem, 6vw, 4.5rem) !important;
	border-left: 4px solid var(--st-accent);
}
.st-cta-box h2 { color: #fff; font-size: var(--wp--preset--font-size--x-large); margin-top: 0; }
.st-cta-box .wp-block-button__link { background: var(--st-accent); color: var(--st-ink); }

.st-note {
	background: var(--st-paper);
	border-left: 3px solid var(--st-accent);
	border-radius: 0 8px 8px 0;
	padding: 1rem 1.25rem !important;
	font-size: .95rem;
	color: var(--st-steel);
}
.st-note > * { margin: 0 !important; }

/* Pagina formazione */
.st-course-block {
	border: 1px solid var(--st-line);
	border-radius: 14px;
	padding: clamp(1.5rem, 4vw, 2.75rem) !important;
	margin-block: 2rem !important;
}
.st-course-block > h2:first-child { margin-top: 0; padding-bottom: 1rem; border-bottom: 1px solid var(--st-line); }
.st-course-block h3 { margin-top: 1.75rem; }

/* Contatti */
.st-contacts { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 1rem; margin-block: 2rem 3rem !important; }
.st-contacts > * { margin: 0 !important; }
.st-contact {
	position: relative;
	border: 1px solid var(--st-line);
	border-radius: var(--st-radius);
	padding: 1.75rem 1.6rem 1.5rem !important;
}
.st-contact > * { margin: 0 !important; }
.st-contact__label { font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--st-muted); }
.st-contact__value { font-size: 1.05rem; font-weight: 600; margin-top: .25rem !important; word-break: break-word; }
.st-contact__value a { text-decoration: none; color: var(--st-ink); }
.st-contact__value a:hover { color: var(--st-link, #1B5CB8); text-decoration: underline; }

/* ---------------------------------------------------------------- Testata pagine interne */
.st-pagehead {
	background: var(--st-grid-light), var(--st-paper);
	border-bottom: 1px solid var(--st-line);
	padding-block: clamp(2.5rem, 6vw, 4.5rem) !important;
}
.st-pagehead .wp-block-post-title { margin: .4rem 0 0; font-size: var(--wp--preset--font-size--huge); }
.st-page-content { padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(3.5rem, 8vw, 6rem) !important; }
.st-page-content h2 { margin-top: 2.75rem; }
.st-page-content h2 + * { margin-top: 1rem; }
.st-page-content > :first-child { margin-top: 0; }

/* ---------------------------------------------------------------- Footer */
.st-footer {
	background: var(--st-ink);
	color: #9FB0C6;
	font-size: .94rem;
	padding-block: clamp(3rem, 7vw, 4.5rem) 1.5rem !important;
}
.st-footer a { color: #DCE4EF; text-decoration: none; }
.st-footer a:hover { color: var(--st-accent); }
.st-footer__cols { gap: 2.5rem !important; }
.st-footer h2 {
	color: #fff;
	font-family: var(--wp--preset--font-family--body);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin: 0 0 1rem;
}
.st-footer__brand { color: #fff; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 1.2rem; margin: 0 0 .5rem; }
.st-footer ul { list-style: none; padding: 0; margin: 0; }
.st-footer li { margin: 0 0 .55rem; }
.st-footer__legal {
	margin-top: 3rem !important;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(195, 206, 221, .14);
	font-size: .82rem;
	color: #7F90A8;
	gap: .5rem 1.5rem;
}
.st-footer__legal p { margin: 0; }

/* ---------------------------------------------------------------- Varie */
.st-404 { text-align: center; padding-block: clamp(4rem, 12vw, 9rem) !important; }
.st-404 .wp-block-buttons { justify-content: center; }
.wp-block-post-content > .alignfull:first-child { margin-top: 0; }
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; scroll-behavior: auto !important; }
}
.wp-block-post-content > .alignfull + .alignfull { margin-block-start: 0; }
.wp-block-post-content > .alignfull:last-child { margin-block-end: 0; }
@media (max-width: 782px) { .st-brand__tag { display: none; } }

/* ---------------------------------------------------------------- Modulo contatti */
.st-form-box .st-modulo { margin-top: 1.75rem; }
.st-modulo form { margin: 0; }
.st-modulo__griglia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
@media (max-width: 640px) { .st-modulo__griglia { grid-template-columns: 1fr; } }
.st-campo { margin: 0; display: flex; flex-direction: column; gap: .4rem; }
.st-campo--intero { grid-column: 1 / -1; }
.st-campo label { font-size: .88rem; font-weight: 600; color: var(--st-ink); }
.st-form-box .st-campo label { color: #DCE4EF; }
.st-campo label span { color: var(--st-accent-ink); }
.st-form-box .st-campo label span { color: var(--st-accent); }
.st-campo input[type="text"],
.st-campo input[type="email"],
.st-campo input[type="tel"],
.st-campo select,
.st-campo textarea {
	width: 100%;
	font: inherit;
	font-size: 1rem;
	color: var(--st-ink);
	background: #fff;
	border: 1px solid var(--st-line);
	border-radius: 6px;
	padding: .75rem .9rem;
	line-height: 1.4;
}
.st-campo textarea { resize: vertical; min-height: 9rem; }
.st-campo input:focus,
.st-campo select:focus,
.st-campo textarea:focus { outline: 3px solid var(--st-accent); outline-offset: 0; border-color: var(--st-accent); }
.st-campo--check { flex-direction: row; align-items: flex-start; gap: .65rem; margin-top: 1.25rem; }
.st-campo--check input { width: 1.15rem; height: 1.15rem; margin-top: .2rem; flex: 0 0 auto; accent-color: var(--st-accent); }
.st-campo--check label { font-weight: 400; font-size: .9rem; line-height: 1.5; }
.st-form-box .st-campo--check label a { color: var(--st-accent); }
.st-campo-trappola { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.st-modulo__invio { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 1.5rem 0 0; }
.st-modulo__invio button {
	cursor: pointer;
	border: 0;
	border-radius: 4px;
	background: var(--st-accent);
	color: var(--st-ink);
	font: inherit;
	font-weight: 600;
	padding: .85rem 1.4rem;
}
.st-modulo__invio button:hover { background: #FFCB2E; }
.st-modulo__nota { font-size: .82rem; color: var(--st-muted); }
.st-form-box .st-modulo__nota { color: #9FB0C6; }
.st-avviso { margin: 0 0 1.25rem; padding: .9rem 1.1rem; border-radius: 6px; font-weight: 500; }
.st-avviso--ok { background: #E7F6EC; color: #145C2E; border-left: 4px solid #2E9E57; }
.st-avviso--errore { background: #FDECEC; color: #8A1C1C; border-left: 4px solid #D64545; }
