:root {
	--ssg-black: #000;
	--ssg-light: #f7f7f7;
	--ssg-soft: #f5f7fa;
	--ssg-dark: #333;
	--ssg-border: #b7bcc2;
	--ssg-font: "Montserrat", sans-serif;
}

/* ---------- Header ---------- */
.ssg-header { font-family: var(--ssg-font); position: relative; z-index: 50; background: transparent; }
.ssg-header__inner {
	display: flex; align-items: center; max-width: 1140px; margin: 0 auto; width: 100%; box-sizing: border-box;
}
.ssg-header__nav { flex: 0 0 40%; display: flex; flex-direction: column; justify-content: center; position: relative; }
.ssg-header__logo { flex: 0 0 20%; display: flex; flex-direction: column; justify-content: center; }
.ssg-header__logo img { width: 100%; height: 76px; object-fit: contain; display: block; }
.ssg-header__cta { flex: 0 0 40%; display: flex; justify-content: flex-end; }

.ssg-menu { list-style: none; margin: 0; padding: 0; }
.ssg-menu a {
	display: block; padding: 10px 20px; text-transform: uppercase; text-decoration: none;
	color: var(--ssg-black); font-size: 17px; line-height: 1.5;
}
.ssg-menu a:hover, .ssg-menu a:focus-visible { opacity: .65; }

.ssg-cta { text-decoration: none; color: var(--ssg-light); font-size: 18px; line-height: 1; }
.ssg-cta--text { display: none; background: var(--ssg-dark); border-radius: 10px; padding: 12px 24px; }
.ssg-cta--icon { display: inline-flex; background: var(--ssg-dark); border-radius: 13px; padding: 12px 18px; }
.ssg-cta:hover { color: #fff; opacity: .9; }

.ssg-burger { display: inline-flex; align-self: flex-start; background: #fff; color: var(--ssg-dark); border: 0; border-radius: 3px; padding: 8px 10px; cursor: pointer; }

/* Desktop: menu orizzontale, bottone testuale */
@media (min-width: 1025px) {
	.ssg-burger { display: none; }
	.ssg-nav { display: block; }
	.ssg-menu { display: flex; }
	.ssg-cta--text { display: inline-block; }
	.ssg-cta--icon { display: none; }
}
/* Tablet + mobile: burger con dropdown a tutta larghezza */
@media (max-width: 1024px) {
	.ssg-nav { display: none; position: absolute; top: 100%; left: 0; width: 100vw; margin-top: 36px; background: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.08); }
	.ssg-header.is-open .ssg-nav { display: block; }
	.ssg-menu a { padding: 11px 24px; }
	.ssg-cta--icon { display: none; }
}
@media (max-width: 767px) {
	.ssg-header__inner { flex-wrap: nowrap; padding: 0 16px; }
	.ssg-header__nav, .ssg-header__cta { flex: 1 1 0; }
	.ssg-header__logo { flex: 0 0 auto; width: 120px; }
	.ssg-cta--icon { display: inline-flex; }
	.ssg-nav { left: -16px; }
}

/* ---------- Menu footer ---------- */
.ssg-footer-menu { font-family: var(--ssg-font); }
.ssg-menu--vertical { text-align: center; }
.ssg-menu--vertical a { color: var(--ssg-light); font-weight: 600; }

/* ---------- Form ---------- */
.ssg-form { display: flex; flex-wrap: wrap; gap: 10px; font-family: var(--ssg-font); padding-bottom: 4rem; }
.ssg-field { flex: 1 1 100%; box-sizing: border-box; }
.ssg-field--half { flex: 1 1 calc(50% - 5px); }
.ssg-field label { display: block; font-weight: 600; padding-bottom: 6px; }
.ssg-field input, .ssg-field textarea {
	width: 100%; box-sizing: border-box; background: #fff; border: 1px solid var(--ssg-border);
	border-radius: 20px; padding: 12px 16px; font: inherit; color: var(--ssg-dark);
}
.ssg-btn { background: var(--ssg-dark); color: #fff; border: 0; border-radius: 10px; padding: 14px 28px; font: inherit; cursor: pointer; }
.ssg-btn:hover { opacity: .9; }
.ssg-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ssg-form__notice { color: #b32d2e; }
@media (max-width: 767px) { .ssg-field--half { flex-basis: 100%; } }

/* ---------- Recensioni ---------- */
.ssg-reviews {
	display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; font-family: var(--ssg-font);
}
.ssg-review { flex: 0 0 min(100%, 360px); margin: 0; scroll-snap-align: start; border-radius: 30px; overflow: hidden; background: #fff; }
.ssg-review__head { display: flex; align-items: center; gap: 14px; background: var(--ssg-soft); padding: 26px; font-size: 18px; }
.ssg-review__head img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.ssg-review cite { display: flex; flex-direction: column; font-style: normal; }
.ssg-review__name { font-weight: 700; }
.ssg-review__role { font-size: .8em; opacity: .7; }
.ssg-review__text { margin: 0; padding: 26px; font-size: 19px; line-height: 30px; }
