/*
Theme Name:   Hello Elementor Child - Orizzonte
Theme URI:    https://orizzonte-brescia.it
Description:  Child theme di Hello Elementor per Orizzonte Brescia.
Author:       Sipre Digitale
Author URI:   https://sipredigitale.it
Template:     hello-elementor
Version:      1.0.0
Text Domain:  hello-elementor-child
*/

/* ============================================================
   1. Font loading: gestito nativamente da Elementor 4.x
   Settings → Performance → "Carica localmente i Google Fonts" → Abilita
   I font Marcellus + Montserrat sono caricati da Elementor stesso,
   serviti dal server WordPress (GDPR compliant). Nessun @font-face
   necessario qui.
   ============================================================ */

/* ============================================================
   2. CSS custom properties (token brand)
   Mirror dei Global Colors Elementor per uso in CSS custom.
   ============================================================ */
:root {
	--orizzonte-green: #1F4A2C;
	--orizzonte-green-dark: #15351F;
	--orizzonte-gold: #C9A227;
	--orizzonte-cream: #F0E8DC;
	--orizzonte-rose: #C8A294;
	--orizzonte-ink: #1A2E1F;
	--orizzonte-white: #FFFFFF;

	--font-display: 'Marcellus', Georgia, 'Times New Roman', serif;
	--font-body: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

	--radius-sm: 4px;
	--radius-md: 8px;
	--radius-lg: 12px;
	--radius-pill: 999px;

	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-6: 24px;
	--space-8: 32px;
	--space-12: 48px;
	--space-16: 64px;
	--space-20: 80px;
	--space-24: 96px;
}

/* ============================================================
   3. Base typography hardening
   ============================================================ */
body {
	font-family: var(--font-body);
	color: var(--orizzonte-ink);
	background: var(--orizzonte-cream);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-display);
	color: var(--orizzonte-green);
	letter-spacing: -0.01em;
}

/* ============================================================
   4. Accessibility: focus visible
   ============================================================ */
*:focus-visible {
	outline: 3px solid var(--orizzonte-gold);
	outline-offset: 3px;
	border-radius: var(--radius-sm);
}

/* No outline removal! Override Elementor defaults dove rimuove. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--orizzonte-gold) !important;
	outline-offset: 3px !important;
}

/* ============================================================
   5. Skip link (accessibility)
   ============================================================ */
.skip-link {
	position: absolute;
	left: -9999px;
	top: 8px;
	z-index: 10000;
	background: var(--orizzonte-green);
	color: var(--orizzonte-cream);
	padding: 12px 20px;
	border-radius: var(--radius-md);
	text-decoration: none;
	font-weight: 600;
}
.skip-link:focus {
	left: 8px;
}

/* ============================================================
   6. WhatsApp button styled
   ============================================================ */
.orizzonte-wa-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #25D366;
	color: #FFFFFF !important;
	padding: 12px 24px;
	border-radius: var(--radius-md);
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s ease;
}
.orizzonte-wa-link:hover {
	background: #128C7E;
}
.orizzonte-wa-link::before {
	content: '';
	display: inline-block;
	width: 18px;
	height: 18px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FFFFFF'%3E%3Cpath d='M.057 24l1.687-6.163c-1.041-1.804-1.588-3.849-1.587-5.946.003-6.556 5.338-11.891 11.893-11.891 3.181.001 6.167 1.24 8.413 3.488 2.245 2.248 3.481 5.236 3.48 8.414-.003 6.557-5.338 11.892-11.893 11.892-1.99-.001-3.951-.5-5.688-1.448L.057 24zm6.597-3.807c1.676.995 3.276 1.591 5.392 1.592 5.448 0 9.886-4.434 9.889-9.885.002-5.462-4.415-9.89-9.881-9.892-5.452 0-9.887 4.434-9.889 9.884-.001 2.225.651 3.891 1.746 5.634l-.999 3.648 3.742-.981zm11.387-5.464c-.074-.124-.272-.198-.57-.347-.297-.149-1.758-.868-2.031-.967-.272-.099-.47-.149-.669.149-.198.297-.768.967-.941 1.165-.173.198-.347.223-.644.074-.297-.149-1.255-.462-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.521.151-.172.2-.296.3-.495.099-.198.05-.372-.025-.521-.075-.148-.669-1.611-.916-2.206-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.263.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
}

/* ============================================================
   7. Header sticky behavior
   ============================================================ */
.orizzonte-header {
	transition: box-shadow 0.3s ease, padding 0.3s ease;
}
.orizzonte-header.is-scrolled {
	box-shadow: 0 2px 16px rgba(31, 74, 44, 0.08);
}

/* ============================================================
   8. Responsive helpers
   ============================================================ */
@media (max-width: 767px) {
	body {
		font-size: 16px; /* never less on mobile */
	}
}

/* ============================================================
   9. Reduce motion respect
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ============================================================
  10. Print
   ============================================================ */
@media print {
	.orizzonte-header,
	.orizzonte-footer,
	.orizzonte-cta-tel {
		display: none;
	}
}
