/* EM Site Kit — Estetica Momenti
   Palette esistente: verde salvia, verde scuro, crema. Font del sito: Montserrat (titoli), Source Sans Pro (testo). */
:root {
	--em-sage: #98b99d;
	--em-sage-soft: #e6efe7;
	--em-green: #375c55;
	--em-green-deep: #2b4a44;
	--em-cream: #f9f2e5;
	--em-text: #344249;
	--em-radius: 18px;
	--em-shadow: 0 6px 24px rgba(55, 92, 85, .10);
	--em-shadow-hover: 0 18px 44px rgba(55, 92, 85, .20);
	--em-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */
body { overflow-x: clip; }
h1, h2, h3, .elementor-heading-title { text-wrap: balance; }
.elementor-widget-text-editor p { text-wrap: pretty; }
a:focus-visible, button:focus-visible, [role="button"]:focus-visible, .elementor-button:focus-visible {
	outline: 3px solid var(--em-sage);
	outline-offset: 3px;
	border-radius: 6px;
}
.emsk-autolink { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: rgba(55, 92, 85, .45); transition: color .2s, text-decoration-color .2s; }
.emsk-autolink:hover { color: var(--em-green); text-decoration-color: currentColor; }

/* Pulsanti coerenti */
.elementor-button { transition: transform .25s var(--em-ease), box-shadow .25s var(--em-ease), background-color .25s, color .25s; }
.elementor-button:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(55, 92, 85, .25); }

/* ---------- Header sticky ---------- */
#masthead { transition: background-color .3s ease, box-shadow .3s ease; }
body.emsk-scrolled #masthead {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 999;
	background: rgba(55, 92, 85, .97);
	box-shadow: 0 6px 24px rgba(0, 0, 0, .12);
	animation: emsk-drop .35s var(--em-ease);
}
body.admin-bar.emsk-scrolled #masthead { top: 32px; }
@media (max-width: 782px) { body.admin-bar.emsk-scrolled #masthead { top: 46px; } }
@media (max-width: 600px) { body.admin-bar.emsk-scrolled #masthead { top: 0; } }
body.emsk-scrolled #masthead .main-header-bar,
body.emsk-scrolled #masthead .ast-primary-header-bar { background: transparent; border: 0; }
body.emsk-scrolled #masthead .site-logo-img img,
body.emsk-scrolled #masthead .custom-logo { max-width: 92px; width: 92px; height: auto; transition: max-width .3s ease; }
body.emsk-scrolled #masthead .ast-builder-grid-row,
body.emsk-scrolled #masthead .site-primary-header-wrap { min-height: 0; }
body.emsk-scrolled #masthead .main-header-bar { padding-top: 4px; padding-bottom: 4px; }
@keyframes emsk-drop { from { transform: translateY(-100%); } to { transform: none; } }

/* Sottomenu: stile e apertura da tastiera */
.ast-desktop #masthead .main-header-menu .sub-menu {
	border: 0;
	border-radius: 14px;
	padding: 8px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, .16);
	background: #fff;
	min-width: 250px;
}
.ast-desktop #masthead .main-header-menu .sub-menu .menu-link {
	color: var(--em-text);
	border-radius: 10px;
	padding: 10px 14px;
	border: 0;
	transition: background-color .2s, color .2s;
}
.ast-desktop #masthead .main-header-menu .sub-menu .menu-link:hover,
.ast-desktop #masthead .main-header-menu .sub-menu .menu-link:focus-visible,
.ast-desktop #masthead .main-header-menu .sub-menu .current-menu-item > .menu-link {
	background: var(--em-sage-soft);
	color: var(--em-green);
}
.ast-desktop #masthead .main-header-menu .menu-item.emsk-open > .sub-menu,
.ast-desktop #masthead .main-header-menu .menu-item:focus-within > .sub-menu {
	visibility: visible;
	opacity: 1;
	left: 0;
	right: auto;
	display: block;
	pointer-events: auto;
}
#masthead .main-header-menu > .menu-item > .menu-link { position: relative; }
.ast-desktop #masthead .main-header-menu > .menu-item > .menu-link::after {
	content: "";
	position: absolute;
	left: 1em;
	right: 1em;
	bottom: 18%;
	height: 2px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s var(--em-ease);
	opacity: .8;
}
.ast-desktop #masthead .main-header-menu > .menu-item:hover > .menu-link::after,
.ast-desktop #masthead .main-header-menu > .current-menu-item > .menu-link::after,
.ast-desktop #masthead .main-header-menu > .current-menu-ancestor > .menu-link::after { transform: scaleX(1); }

/* ---------- Card dei servizi (home) ---------- */
.emsk-card {
	background: #fff;
	border-radius: var(--em-radius);
	box-shadow: var(--em-shadow);
	transition: transform .4s var(--em-ease), box-shadow .4s var(--em-ease);
	cursor: pointer;
	overflow: hidden;
}
.emsk-card:hover, .emsk-card:focus-within { transform: translateY(-6px); box-shadow: var(--em-shadow-hover); }
.emsk-card .elementor-widget-image { overflow: hidden; border-radius: 12px; }
.emsk-card .elementor-widget-image img { display: block; transition: transform .7s var(--em-ease); }
.emsk-card:hover .elementor-widget-image img { transform: scale(1.06); }
.emsk-card__img { display: block; }
.emsk-card .elementor-heading-title,
.emsk-card .elementor-heading-title a { color: var(--em-green) !important; }
.emsk-card__link { display: inline-flex; align-items: center; gap: .45em; text-decoration: none; }
.emsk-card__arrow { display: inline-block; transition: transform .3s var(--em-ease); }
.emsk-card:hover .emsk-card__arrow, .emsk-card__link:focus-visible .emsk-card__arrow { transform: translateX(5px); }
.emsk-card .elementor-icon-list-item { transition: background-color .2s; border-radius: 8px; }
.emsk-card .elementor-icon-list-item:hover { background: var(--em-sage-soft); }
.emsk-card .emsk-list-link { display: block; transition: color .2s; }
.emsk-card .emsk-list-link:hover .elementor-icon-list-text { color: var(--em-green); }

/* ---------- Prodotti ---------- */
.emsk-product__link { display: inline-block; border-radius: 12px; }
.emsk-product__link img { transition: transform .5s var(--em-ease), filter .5s; }
.emsk-product__link:hover img { transform: scale(1.03); filter: saturate(1.08); }

/* ---------- Animazioni d'entrata (solo opacity/transform: nessun CLS) ---------- */
.emsk-js .emsk-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--em-ease), transform .7s var(--em-ease); }
.emsk-js .emsk-reveal.emsk-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.emsk-js .emsk-reveal { opacity: 1; transform: none; transition: none; }
	.emsk-card, .emsk-card img, .elementor-button, #masthead { transition: none !important; animation: none !important; }
}

/* ---------- Componenti comuni ---------- */
.emsk-wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.emsk-cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.emsk-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 10px 22px;
	border-radius: 30px;
	font-family: "Source Sans Pro", sans-serif;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.2;
	text-decoration: none !important;
	transition: transform .25s var(--em-ease), background-color .25s, color .25s, box-shadow .25s;
}
.emsk-btn svg { width: 18px; height: 18px; fill: currentColor; flex: none; }
.emsk-btn:hover { transform: translateY(-2px); }
.emsk-btn--light { background: var(--em-cream); color: var(--em-green) !important; border: 2px solid var(--em-cream); }
.emsk-btn--light:hover { background: #fff; border-color: #fff; box-shadow: 0 10px 22px rgba(0, 0, 0, .18); }
.emsk-btn--outline { background: transparent; color: #fff !important; border: 2px solid rgba(255, 255, 255, .7); }
.emsk-btn--outline:hover { background: rgba(255, 255, 255, .12); border-color: #fff; }

/* ---------- Fascia "altri trattamenti" ---------- */
.emsk-related { background: var(--em-green); color: var(--em-cream); padding: 48px 0 8px; }
.emsk-eyebrow { margin: 0 0 6px; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: #cfe3d2; }
.emsk-related__title { color: #fff !important; font-family: Montserrat, sans-serif; font-size: clamp(24px, 3vw, 34px); margin: 0 0 24px; }
.emsk-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.emsk-related__group h3 { color: #cfe3d2 !important; font-family: Montserrat, sans-serif; font-size: 14px; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 12px; }
.emsk-related__group ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.emsk-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 999px;
	color: #fff !important;
	font-size: 15px;
	text-decoration: none !important;
	transition: background-color .25s, color .25s, border-color .25s;
}
.emsk-chip svg { width: 14px; height: 14px; fill: currentColor; transition: transform .25s var(--em-ease); }
.emsk-chip:hover { background: var(--em-cream); color: var(--em-green) !important; border-color: var(--em-cream); }
.emsk-chip:hover svg { transform: translateX(3px); }
.emsk-chip.is-current { background: var(--em-sage); border-color: var(--em-sage); color: #1f3833 !important; }
.emsk-related .emsk-cta-row { justify-content: center; padding: 32px 0 40px; margin: 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }

/* ---------- Footer ---------- */
.emsk-footer {
	position: relative;
	background: var(--em-green);
	color: var(--em-cream);
	font-family: "Source Sans Pro", sans-serif;
	font-size: 16px;
	line-height: 1.6;
	padding: 56px 0 0;
}
.emsk-footer__wave { display: none; position: absolute; left: 0; top: -59px; width: 100%; height: 60px; fill: var(--em-green); }
body.emsk-footer-wave .emsk-footer { margin-top: 60px; }
body.emsk-footer-wave .emsk-footer__wave { display: block; }
body.emsk-related-joined .emsk-footer { padding-top: 40px; }
.emsk-footer a { color: #fff; text-decoration: none; transition: color .2s, opacity .2s; }
.emsk-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.emsk-footer__grid { display: grid; grid-template-columns: 1.35fr 1.25fr repeat(3, 1fr); gap: 36px; padding-bottom: 44px; }
.emsk-footer__logo img { width: 150px; height: auto; display: block; }
.emsk-footer__tagline { margin: 16px 0 0; max-width: 30ch; color: var(--em-cream); }
.emsk-footer .emsk-cta-row--footer .emsk-btn { min-height: 42px; padding: 8px 16px; font-size: 15px; }
.emsk-footer__title { color: #cfe3d2 !important; font-family: Montserrat, sans-serif; font-size: 13px !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 14px; line-height: 1.4; }
.emsk-footer__title--sm { margin-top: 24px; }
.emsk-footer__nav ul, .emsk-contact { list-style: none; margin: 0; padding: 0; }
.emsk-footer__nav li { margin: 0 0 8px; }
.emsk-footer__nav a { display: inline-block; padding: 2px 0; }
.emsk-contact li { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 10px; }
.emsk-contact svg { width: 18px; height: 18px; fill: var(--em-sage); flex: none; margin-top: 3px; }
.emsk-hours { margin: 0; display: grid; gap: 2px; font-size: 15px; }
.emsk-hours div { display: flex; justify-content: space-between; gap: 12px; max-width: 260px; border-bottom: 1px dashed rgba(255, 255, 255, .14); padding: 2px 0; }
.emsk-hours dt { font-weight: 600; }
.emsk-hours dd { margin: 0; }
.emsk-hours .is-closed dd { color: #cfe3d2; }
.emsk-social { display: flex; gap: 10px; margin-top: 20px; }
.emsk-social a { display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255, 255, 255, .1); transition: background-color .25s, transform .25s; }
.emsk-social a:hover { background: var(--em-cream); transform: translateY(-2px); text-decoration: none; }
.emsk-social a:hover svg { fill: var(--em-green); }
.emsk-social svg { width: 20px; height: 20px; fill: #fff; }
.emsk-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .15); background: var(--em-green-deep); font-size: 14px; }
.emsk-footer__bottom-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; padding-top: 16px; padding-bottom: 16px; }
.emsk-legal { margin: 0; color: var(--em-cream); }
.emsk-legal-links { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.emsk-totop { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border: 1px solid rgba(255, 255, 255, .45); border-radius: 30px; }
.emsk-totop svg { width: 16px; height: 16px; fill: currentColor; }
.emsk-totop:hover { background: rgba(255, 255, 255, .12); text-decoration: none !important; }

/* Vecchio footer Astra: nascosto se ancora presente */
#colophon.site-footer { display: none !important; }

/* ---------- Barra contatti mobile ---------- */
.emsk-mbar { display: none; }
@media (max-width: 921px) {
	.emsk-mbar {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 998;
		background: var(--em-green);
		box-shadow: 0 -6px 20px rgba(0, 0, 0, .15);
		padding-bottom: env(safe-area-inset-bottom, 0);
	}
	.emsk-mbar a {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 2px;
		min-height: 58px;
		color: #fff;
		font-size: 13px;
		font-weight: 600;
		text-decoration: none;
	}
	.emsk-mbar a + a { border-left: 1px solid rgba(255, 255, 255, .15); }
	.emsk-mbar svg { width: 20px; height: 20px; fill: currentColor; }
	body { padding-bottom: 58px; }
	#ast-scroll-top { display: none !important; }
	#cmplz-manage-consent .cmplz-manage-consent { bottom: 58px !important; font-size: 12px !important; padding: 6px 12px !important; min-height: 0 !important; }
	.emsk-footer__grid { grid-template-columns: 1fr 1fr; gap: 28px; }
	.emsk-footer__brand { grid-column: 1 / -1; }
	.emsk-related__grid { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 600px) {
	.emsk-footer__grid { grid-template-columns: 1fr 1fr; gap: 26px 18px; }
	.emsk-footer__brand, .emsk-footer__col:not(.emsk-footer__nav) { grid-column: 1 / -1; }
	.emsk-footer__nav:last-child { grid-column: 1 / -1; }
	.emsk-footer__bottom-inner { flex-direction: column; align-items: flex-start; }
	.emsk-wrap { padding: 0 20px; }
	.emsk-cta-row .emsk-btn { flex: 1 1 auto; }
}

/* ---------- Banner cookie Complianz: stile del sito, pulsanti di pari evidenza ---------- */
.cmplz-cookiebanner {
	--cmplz_banner_background_color: #fff;
	--cmplz_text_color: var(--em-text);
	--cmplz_hyperlink_color: var(--em-green);
	--cmplz_banner_border_radius: 18px;
	--cmplz_slider_active_color: var(--em-green);
	--cmplz_slider_inactive_color: #b8c4c0;
	--cmplz_slider_bullet_color: #fff;
	--cmplz_category_header_always_active_color: #2e6b3a;
	--cmplz_category_header_title_color: var(--em-text);
	--cmplz_category_header_active_color: var(--em-green);
	--cmplz_button_accept_background_color: var(--em-green);
	--cmplz_button_accept_border_color: var(--em-green);
	--cmplz_button_accept_text_color: #fff;
	--cmplz_button_deny_background_color: var(--em-green);
	--cmplz_button_deny_border_color: var(--em-green);
	--cmplz_button_deny_text_color: #fff;
	--cmplz_button_settings_background_color: var(--em-green);
	--cmplz_button_settings_border_color: var(--em-green);
	--cmplz_button_settings_text_color: #fff;
	--cmplz_button_border_radius: 30px;
	font-family: "Source Sans Pro", sans-serif;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .22) !important;
}
.cmplz-cookiebanner .cmplz-title { font-family: Montserrat, sans-serif; font-weight: 700; color: var(--em-green); }
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn,
.cmplz-cookiebanner .cmplz-btn.cmplz-accept,
.cmplz-cookiebanner .cmplz-btn.cmplz-deny,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences {
	background-color: var(--em-green) !important;
	border: 2px solid var(--em-green) !important;
	color: #fff !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	border-radius: 30px !important;
	text-decoration: none !important;
	opacity: 1 !important;
}
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn:hover { background-color: var(--em-green-deep) !important; border-color: var(--em-green-deep) !important; }
.cmplz-cookiebanner .cmplz-links a, .cmplz-cookiebanner .cmplz-link { color: var(--em-green) !important; }
#cmplz-manage-consent .cmplz-manage-consent { background: var(--em-green) !important; color: #fff !important; border-color: var(--em-green) !important; font-family: "Source Sans Pro", sans-serif; }

/* ---------- Pagine senza Elementor (Cookie Policy UE, Note legali): header leggibile e testo curato ---------- */
body.page:not(.elementor-page) #masthead,
body.page:not(.elementor-page) #masthead .main-header-bar,
body.page:not(.elementor-page) #masthead .ast-primary-header-bar,
body.page:not(.elementor-page) #masthead .ast-mobile-header-content,
body.page:not(.elementor-page) #masthead .ast-desktop-header-content { background: var(--em-green) !important; border-bottom: 0; }
body.page:not(.elementor-page) #masthead { position: relative; }
body.page:not(.elementor-page) #masthead .main-header-menu > .menu-item > .menu-link,
body.page:not(.elementor-page) #masthead .ast-builder-menu-mobile .menu-link,
body.page:not(.elementor-page) #masthead .menu-toggle,
body.page:not(.elementor-page) #masthead .ast-menu-toggle { color: #fff !important; }
body.page:not(.elementor-page) #masthead .menu-toggle .ast-mobile-svg { fill: #fff; }
body.page:not(.elementor-page) .site-content { background: var(--em-cream); }
body.page:not(.elementor-page) .site-content .ast-container { max-width: 960px; }
body.page:not(.elementor-page) .site-main > article {
	background: #fff;
	border-radius: var(--em-radius);
	box-shadow: var(--em-shadow);
	padding: clamp(24px, 4vw, 56px);
	margin: 48px 0;
}
body.page:not(.elementor-page) .entry-title { color: var(--em-green); font-family: Montserrat, sans-serif; font-size: clamp(30px, 4vw, 42px); line-height: 1.2; }
body.page:not(.elementor-page) .entry-content h2 { font-size: clamp(22px, 2.6vw, 28px); }
body.page:not(.elementor-page) .entry-content { font-size: 17px; line-height: 1.7; color: var(--em-text); }
body.page:not(.elementor-page) .entry-content h2,
body.page:not(.elementor-page) .entry-content h3 { color: var(--em-green); margin-top: 1.6em; }
body.page:not(.elementor-page) .entry-content a { color: var(--em-green); text-decoration: underline; text-underline-offset: 3px; }
body.page:not(.elementor-page) .entry-content table { font-size: 15px; }

/* Pulsante "torna su" di Astra sopra la linguetta "Gestisci consenso" */
@media (min-width: 922px) { #ast-scroll-top { bottom: 64px !important; } }
