/* ==========================================================================
   GS7 – Header compatto + menu laterale a scorrimento (da sinistra)
   --------------------------------------------------------------------------
   Colori: agganciati alla Global Palette di Kadence (con fallback sulla palette
   GameSource: nero/arancione del logo, rosso storico per "live"). Il pannello
   laterale segue la tonalità del tema (chiaro/scuro) come "superficie elevata",
   mai invertito. Font: quelli del sito. Variabili colore su body, misure su :root.

   Desktop largo (≥1200px)
   ┌────────────────────────────────────────────────────────────────────────┐
   │ ☰ Menu  [logo]  Videogiochi  Tech  Movies  Nerd  Live   (cerca…) (Accedi)│  barra 68px
   │ 🔥 IN TENDENZA  [GTA 6] [Switch 2] [Recensioni] [Guide] …               │  striscia 42px
   └────────────────────────────────────────────────────────────────────────┘
   Desktop stretto (1024–1199px): come sopra ma al posto del campo di ricerca
   c'è la lente (apre il pannello con il cursore nella ricerca) e "Accedi" è
   solo icona.
   Compatto (scroll): barra 56px, scritta "Menu" nascosta, striscia chiusa, ombra.
   Mobile (<1024px): ☰ [logo] … (🔍)(👤)  + striscia scorrevole; sezioni e
   ricerca sono nel pannello laterale (la lente lo apre già sul campo).
   Dentro Tech / Movies / Nerd la striscia diventa la sotto-navigazione della
   sezione (classe .gs7-trending--section) invece delle tendenze generali.
   Layout "masthead" (body.gs7-layout-masthead, solo desktop): da fermo
   ┌────────────────────────────────────────────────────────────────────────┐
   │ ☰ Menu                    [ logo grande ]              (cerca…) (Accedi)│  riga 76px
   │              Videogiochi   Tech   Movies   Nerd   Live                  │  riga 46px
   │ 🔥 IN TENDENZA  [GTA 6] [Switch 2] …                                    │  striscia 42px
   └────────────────────────────────────────────────────────────────────────┘
   e allo scroll la stessa barra compatta di sempre (il JS anima lo spostamento).
   L'header è position:fixed; .gs7-header-spacer sotto di esso ha l'altezza
   dell'header non compatto (--gs7-header-height, misurata dal JS).
   ========================================================================== */

body {
	/* ------------------------------------------------------------------
	   COLORI: agganciati alla Global Palette di Kadence
	   (Aspetto → Personalizza → Colori). I valori dopo la virgola sono il
	   fallback (palette GameSource) se le variabili Kadence non esistono.
	   Semantica Kadence: 1 accento · 2 accento alt · 3 testo forte · 4 testo ·
	   5 testo medio · 6 testo tenue · 7 sfondo tenue alt · 8 sfondo tenue · 9 base
	   Con la palette scura del sito header e pannello diventano scuri da soli.
	   NB: definite su BODY (non su :root) perché Kadence Pro ridefinisce la
	   palette su body.color-switch-dark: così l'interruttore chiaro/scuro
	   cambia anche header e pannello.
	   ------------------------------------------------------------------ */
	--gs7-accent: var(--global-palette-highlight, var(--global-palette1, #e07838));
	--gs7-accent-hover: var(--global-palette-highlight-alt, var(--global-palette2, #f08a48));
	--gs7-accent-ink: var(--global-palette-highlight-alt2, var(--global-palette9, #ffffff));
	--gs7-ink: var(--global-palette3, #141414);
	--gs7-ink-2: var(--global-palette4, #262626);
	--gs7-grey: var(--global-palette6, #767676);
	--gs7-line: var(--global-palette7, #e6e6e6);
	--gs7-bar-bg: var(--global-palette9, #ffffff);
	--gs7-bar-text: var(--global-palette3, #141414);
	--gs7-strip-bg: var(--global-palette8, #f4f4f4);
	/* Pannello laterale: STESSA tonalità del tema, mai invertito.
	   È una "superficie elevata" (Material: drawer = 16dp): in dark mode un
	   gradino più chiara dello sfondo pagina, in light mode bianca con ombra.
	   Palette 8 = "sfondo tenue" di Kadence: chiaro nel tema chiaro, un po' più
	   chiaro del base nel tema scuro → funziona in entrambi senza JS. */
	--gs7-drawer-bg: var(--global-palette8, #f4f4f4);
	--gs7-drawer-text: var(--global-palette3, #141414);
	--gs7-drawer-muted: var(--global-palette5, #4a5568);
	/* pannelli interni e linee: velature del colore testo (Material "overlay"),
	   così restano tenui sia su chiaro sia su scuro */
	--gs7-drawer-panel: color-mix(in srgb, var(--gs7-drawer-text) 6%, var(--gs7-drawer-bg));
	--gs7-drawer-line: color-mix(in srgb, var(--gs7-drawer-text) 14%, transparent);
	--gs7-drawer-shadow: 0 0 40px rgba(0, 0, 0, 0.18);
	--gs7-live: #de004a;            /* rosso storico GameSource */
	--gs7-overlay: rgba(0, 0, 0, 0.32); /* scrim (Material: 32%) */
	/* Colori di sezione (gli stessi di tech.css / movies.css / nerd.css) */
	--gs7-sec-videogiochi: var(--global-palette-highlight, var(--global-palette1, #e07838));
	--gs7-sec-tech: #27a364;
	--gs7-sec-movies: #f5333f;
	--gs7-sec-nerd: #0876a7;
	/* filtro applicato al logo (PNG scuro) quando sta su una superficie scura */
	--gs7-logo-dark-filter: invert(1) hue-rotate(180deg);

}

:root {
	/* Font: quelli del sito */
	--gs7-font: var(--global-body-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Arial, sans-serif);

	/* Livelli e animazioni */
	--gs7-z-header: 9000;
	--gs7-z-overlay: 9050;
	--gs7-z-drawer: 9100;
	--gs7-motion: 280ms;
	--gs7-ease: cubic-bezier(0.2, 0.7, 0.2, 1);

	/* Misure (le altezze vengono rimisurate dal JS) */
	--gs7-top-offset: 0px;          /* admin bar / avviso PRE */
	--gs7-header-height: 99px;      /* barra + striscia + bordo */
	--gs7-header-compact-h: 55px;   /* altezza dell'header COMPATTO (barra compatta + bordo): per chi deve stare sotto l'header
	                                   durante lo scorrimento (blocchi fissi, ancore) senza misurare nulla */
	--gs7-container: 1300px;
	--gs7-bar-h: 56px;
	--gs7-bar-h-compact: 52px;
	--gs7-strip-h: 40px;
	--gs7-logo-h: 26px;
	--gs7-drawer-w: 380px;
}
@media (min-width: 1024px) {
	:root {
		--gs7-bar-h: 68px;
		--gs7-bar-h-compact: 56px;
		--gs7-strip-h: 42px;
		--gs7-logo-h: 32px;
		--gs7-header-height: 113px;
		--gs7-header-compact-h: 59px;
	}
}

@supports not (color: color-mix(in srgb, red 10%, blue)) {
	body {
		--gs7-drawer-panel: var(--global-palette7, #e6e6e6);
		--gs7-drawer-line: var(--global-palette7, #e6e6e6);
	}
	.gs7-tile__icon { background: rgba(224, 120, 56, 0.16); }
}

/* Accento di sezione: la classe body la mette il modulo (gs7_hdr_current_section) */
body.gs7-section-tech   { --gs7-accent: var(--gs7-sec-tech);   --gs7-accent-hover: var(--gs7-sec-tech); }
body.gs7-section-movies { --gs7-accent: var(--gs7-sec-movies); --gs7-accent-hover: var(--gs7-sec-movies); }
body.gs7-section-nerd   { --gs7-accent: var(--gs7-sec-nerd);   --gs7-accent-hover: var(--gs7-sec-nerd); }

/* Pannello invertito rispetto al sito (define GS7_DRAWER_TONE = 'contrast') */
body.gs7-drawer-contrast {
	--gs7-drawer-bg: var(--global-palette3, #161616);
	--gs7-drawer-text: var(--global-palette9, #f4f4f4);
	--gs7-drawer-muted: var(--global-palette7, #a8a8a8);
	--gs7-drawer-shadow: 0 0 40px rgba(0, 0, 0, 0.4);
}

/* Logo su superfici scure: se non c'è un logo "dark" (filtro gs7_logo_dark_html)
   il PNG viene invertito mantenendo le tinte. La classe la mette il JS misurando
   la luminosità dello sfondo. */
.gs7-dark-surface .gs7-bar__logo img,
.gs7-dark-surface .gs7-drawer__logo img { filter: var(--gs7-logo-dark-filter); }
.gs7-dark-surface .gs7-logo--dark img { filter: none; }
.gs7-logo--dark { display: none; }
.gs7-dark-surface:has(.gs7-logo--dark) .gs7-logo--light { display: none; }
.gs7-dark-surface .gs7-logo--dark { display: block; }
.gs7-drawer.gs7-dark-surface .gs7-logo--dark { display: block; }

/* Fallback per la admin bar (il JS ricalcola con precisione) */
body.admin-bar { --gs7-top-offset: 32px; }
@media (max-width: 782px) { body.admin-bar { --gs7-top-offset: 46px; } }

/* --------------------------------------------------------------------------
   Reset locale (per non ereditare stili di Kadence su label, liste, input…)
   -------------------------------------------------------------------------- */
.gs7-header,
.gs7-drawer,
.gs7-drawer-overlay { box-sizing: border-box; }
.gs7-header *,
.gs7-header *::before,
.gs7-header *::after,
.gs7-drawer *,
.gs7-drawer *::before,
.gs7-drawer *::after { box-sizing: inherit; }
.gs7-header label,
.gs7-drawer label { margin: 0; font-weight: inherit; font-size: inherit; line-height: inherit; }
.gs7-header a,
.gs7-drawer a { color: inherit; text-decoration: none; }
.gs7-header a:hover,
.gs7-drawer a:hover { text-decoration: none; }
.gs7-header ul,
.gs7-drawer ul { list-style: none; margin: 0; padding: 0; }
.gs7-header li,
.gs7-drawer li { margin: 0; padding: 0; }
.gs7-header h2,
.gs7-drawer h2 { margin: 0; }
.gs7-icon { display: block; width: 1em; height: 1em; flex-shrink: 0; }

.gs7-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}

/* bottone-icona generico (le label del checkbox) */
.gs7-iconbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
	line-height: 1;
	-webkit-tap-highlight-color: transparent;
}
.gs7-iconbtn:focus-visible,
.gs7-nav__toggle:focus-visible,
.gs7-bar__navlink:focus-visible,
.gs7-chip:focus-visible,
.gs7-tile:focus-visible,
.gs7-social__link:focus-visible {
	outline: 2px solid var(--gs7-accent);
	outline-offset: 3px;
	border-radius: 4px;
}

/* --------------------------------------------------------------------------
   HEADER
   -------------------------------------------------------------------------- */
.gs7-header {
	position: fixed;
	top: var(--gs7-top-offset);
	left: 0;
	width: 100%;
	z-index: var(--gs7-z-header);
	background: var(--gs7-bar-bg);
	color: var(--gs7-bar-text);
	font-family: var(--gs7-font);
	line-height: 1;
	border-top: 3px solid var(--gs7-accent);
	box-shadow: 0 1px 0 var(--gs7-line);
	transition: box-shadow var(--gs7-motion) var(--gs7-ease);
}
.gs7-header.is-compact { box-shadow: 0 2px 14px rgba(0, 0, 0, 0.12); }
.gs7-header-spacer { height: var(--gs7-header-height); }
/* Menu a destra (pannello GS7 Aspetto → body.gs7-menu-right): il template stampa ☰ in fondo alla barra e sposta
   interruttore del tema e account nella zona sinistra (zone bilanciate, logo centrato nel masthead). Il pannello
   scorre da destra. */
body.gs7-menu-right .gs7-bar__actions--left { margin-left: 0; }
body.gs7-menu-right .gs7-bar__menu--right { margin-left: 0.25rem; }
body.gs7-menu-right .gs7-drawer { left: auto; right: 0; transform: translateX(102%); }
body.gs7-menu-right .gs7-drawer-check:checked ~ .gs7-drawer { transform: none; }

/* variante "vetro" (esperimento dal pannello Aspetto): sfondo semitrasparente sfocato sopra la pagina */
.gs7-header--glass { background: color-mix(in srgb, var(--gs7-bar-bg) 74%, transparent); -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px); }
.gs7-header--glass .gs7-trending { background: color-mix(in srgb, var(--gs7-strip-bg) 62%, transparent); }
@supports not (backdrop-filter: blur(1px)) { .gs7-header--glass { background: var(--gs7-bar-bg); } .gs7-header--glass .gs7-trending { background: var(--gs7-strip-bg); } }

/* barra */
.gs7-bar__inner {
	max-width: var(--gs7-container);
	margin: 0 auto;
	padding: 0 1rem;
	height: var(--gs7-bar-h);
	display: flex;
	align-items: center;
	gap: 0.75rem;
	transition: height var(--gs7-motion) var(--gs7-ease);
}
.gs7-header.is-compact .gs7-bar__inner { height: var(--gs7-bar-h-compact); }

/* zone della barra: sinistra (☰) · marchio (logo + badge) · [sezioni] · destra
   (ricerca + azioni). Altezze esplicite così le transizioni funzionano anche
   quando il layout "masthead" le cambia. */
.gs7-bar__left,
.gs7-bar__brand,
.gs7-bar__right {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
	height: var(--gs7-bar-h);
	transition: height var(--gs7-motion) var(--gs7-ease);
}
.gs7-bar__right { margin-left: auto; }
.gs7-header.is-compact .gs7-bar__left,
.gs7-header.is-compact .gs7-bar__brand,
.gs7-header.is-compact .gs7-bar__right { height: var(--gs7-bar-h-compact); }

.gs7-bar__menu {
	gap: 0.4rem;
	color: var(--gs7-ink);
	font-size: 0.92rem;
	font-weight: 600;
	padding: 0.35rem;
	margin-left: -0.35rem;
	border-radius: 0.5rem;
	transition: background-color 0.2s ease;
}
.gs7-bar__menu:hover { background: var(--gs7-strip-bg); }
.gs7-bar__menu .gs7-icon { width: 1.6rem; height: 1.6rem; color: var(--gs7-accent); }
/* la scritta "Menu" c'è solo su desktop (≥1024px, vedi sotto) e si dissolve
   quando l'header diventa compatto: resta la sola icona */
.gs7-bar__menu-text {
	display: none;
	max-width: 5rem;
	overflow: hidden;
	white-space: nowrap;
	transition: max-width var(--gs7-motion) var(--gs7-ease), opacity var(--gs7-motion) var(--gs7-ease), margin var(--gs7-motion) var(--gs7-ease);
}
.gs7-header.is-compact .gs7-bar__menu-text { max-width: 0; opacity: 0; margin-left: -0.4rem; }

.gs7-bar__logo {
	display: block;
	height: var(--gs7-logo-h);
	flex-shrink: 0;
	color: var(--gs7-ink);
	transition: height var(--gs7-motion) var(--gs7-ease);
}
.gs7-bar__logo img,
.gs7-bar__logo svg { display: block; height: 100%; width: auto; max-width: none; }
.gs7-header.is-compact .gs7-bar__logo { height: calc(var(--gs7-logo-h) - 4px); }

.gs7-bar__section {
	--gs7-sec: var(--gs7-accent);
	display: inline-flex;
	align-items: center;
	height: 1.5rem;
	padding: 0 0.55rem;
	border-radius: 0.4rem;
	background: var(--gs7-sec);
	color: #fff;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
	flex-shrink: 0;
}
.gs7-bar__nav { display: none; }
.gs7-bar__search { display: none; }

/* lente nella barra (mobile e desktop stretto): è una label del checkbox del
   pannello, quindi lo apre anche senza JS; il JS mette il cursore nel campo */
.gs7-bar__searchbtn {
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	color: var(--gs7-ink);
	transition: background-color 0.2s ease;
}
.gs7-bar__searchbtn:hover { background: var(--gs7-strip-bg); }
.gs7-bar__searchbtn .gs7-icon { width: 1.4rem; height: 1.4rem; }

.gs7-bar__actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

/* bottone account: pieno arancione, solo icona su mobile */
.gs7-btn-account {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	height: 2.4rem;
	width: 2.4rem;
	padding: 0;
	border-radius: 999px;
	background: var(--gs7-accent);
	color: var(--gs7-accent-ink);
	font-size: 0.9rem;
	font-weight: 700;
	white-space: nowrap;
	transition: background-color 0.2s ease, transform 0.2s ease;
}
.gs7-btn-account:hover { background: var(--gs7-accent-hover); }
.gs7-btn-account .gs7-icon { width: 1.3rem; height: 1.3rem; }
.gs7-btn-account img.gs7-avatar {
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}
.gs7-btn-account__label { display: none; }

/* interruttore chiaro/scuro (del modulo) e contenitore per l'elemento Kadence Pro */
.gs7-color-toggle {
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	color: var(--gs7-ink);
	background: var(--gs7-strip-bg);
	transition: background-color 0.2s ease, color 0.2s ease;
}
.gs7-color-toggle:hover { background: var(--gs7-line); }
.gs7-color-toggle .gs7-icon { width: 1.25rem; height: 1.25rem; }
.gs7-color-toggle .gs7-color-toggle__sun { display: none; }
body.color-switch-dark .gs7-color-toggle .gs7-color-toggle__sun { display: block; }
body.color-switch-dark .gs7-color-toggle .gs7-color-toggle__moon { display: none; }
.gs7-color-toggle--drawer { color: var(--gs7-drawer-text); background: var(--gs7-drawer-panel); }
.gs7-color-toggle--drawer:hover { background: var(--gs7-drawer-line); }
.gs7-bar__kadence-item { display: inline-flex; align-items: center; }
.gs7-bar__kadence-item .site-header-item { padding: 0; }
/* nella barra l'interruttore c'è solo su desktop: su mobile la barra è piena e
   l'interruttore sta nella testata del pannello */
.gs7-color-toggle--bar,
.gs7-bar__kadence-item--bar { display: none; }
@media (min-width: 1024px) {
	.gs7-color-toggle--bar,
	.gs7-bar__kadence-item--bar { display: inline-flex; }
}
/* l'interruttore "fisso" di Kadence Pro (angolo in basso) è ridondante quando
   ce n'è uno nell'header: define GS7_KEEP_KADENCE_FIXED_SWITCH per tenerlo */
body.gs7-hide-fixed-switch .kadence-color-palette-fixed-switcher { display: none !important; }

/* striscia "In tendenza" */
.gs7-trending {
	background: var(--gs7-strip-bg);
	border-top: 1px solid var(--gs7-line);
	height: var(--gs7-strip-h);
	overflow: hidden;
	transition: height var(--gs7-motion) var(--gs7-ease), opacity var(--gs7-motion) var(--gs7-ease);
}
.gs7-header.is-compact .gs7-trending { height: 0; opacity: 0; }
.gs7-trending__inner {
	max-width: var(--gs7-container);
	margin: 0 auto;
	padding: 0 1rem;
	height: var(--gs7-strip-h);
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.gs7-trending__label {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	flex-shrink: 0;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--gs7-ink);
}
.gs7-trending__label .gs7-icon { width: 1rem; height: 1rem; color: var(--gs7-accent); }
.gs7-trending__label span { display: none; }
.gs7-trending__nav {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding-right: 1rem;
	-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 1.5rem), transparent);
	mask-image: linear-gradient(90deg, #000 calc(100% - 1.5rem), transparent);
}
.gs7-trending__nav::-webkit-scrollbar { display: none; }
.gs7-trending__chip {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	height: 1.9rem;
	padding: 0 0.8rem;
	border-radius: 999px;
	background: var(--gs7-bar-bg);
	border: 1px solid var(--gs7-line);
	color: var(--gs7-ink-2);
	font-size: 0.85rem;
	font-weight: 600;
	white-space: nowrap;
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}
.gs7-trending__chip:hover { border-color: var(--gs7-accent); color: var(--gs7-accent); }
.gs7-trending__chip.is-active { background: var(--gs7-accent); border-color: var(--gs7-accent); color: var(--gs7-accent-ink); }
/* tendenze vere (plugin gamesource-tendenze): puntino sugli argomenti in salita, chip "Live" con il pallino rosso pulsante */
.gs7-trending__chip--rising::before { content: ""; width: 0.4rem; height: 0.4rem; border-radius: 50%; background: var(--gs7-accent); margin-right: 0.4rem; flex: none; }
.gs7-trending__chip--live { border-color: var(--gs7-accent); color: var(--gs7-accent); font-weight: 800; }
.gs7-trending__chip--live .gs7-live-dot { margin-left: 0.4rem; }
/* striscia come sotto-navigazione di sezione (dentro Tech / Movies / Nerd):
   etichetta = nome e icona della sezione, nel colore di sezione */
.gs7-trending--section .gs7-trending__label { color: var(--gs7-accent); }

/* pallino "live" pulsante */
.gs7-live-dot {
	display: inline-block;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--gs7-live);
	margin-left: 0.15rem;
	animation: gs7-pulse 1.8s ease-out infinite;
}
@keyframes gs7-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(222, 0, 74, 0.55); }
	70%  { box-shadow: 0 0 0 0.45rem rgba(222, 0, 74, 0); }
	100% { box-shadow: 0 0 0 0 rgba(222, 0, 74, 0); }
}

/* ---- desktop ---- */
@media (min-width: 1024px) {
	.gs7-bar__inner { gap: 0.75rem; }
	.gs7-bar__menu-text { display: inline-block; }

	.gs7-bar__nav { display: flex; align-items: center; margin-left: 0.5rem; min-width: 0; }
	.gs7-bar__navlist { display: flex; align-items: center; gap: 0.15rem; }
	.gs7-bar__navitem { --gs7-sec: var(--gs7-accent); }
	.gs7-bar__navlink {
		position: relative;
		display: inline-flex;
		align-items: center;
		gap: 0.4rem;
		padding: 0.6rem 0.7rem;
		border-radius: 0.5rem;
		font-size: 1rem;
		font-weight: 700;
		color: var(--gs7-ink);
		white-space: nowrap;
		transition: background-color 0.2s ease, color 0.2s ease;
	}
	.gs7-bar__navlink::after {
		content: "";
		position: absolute;
		left: 0.7rem;
		right: 0.7rem;
		bottom: 0.3rem;
		height: 3px;
		border-radius: 2px;
		background: var(--gs7-sec);
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.22s var(--gs7-ease);
	}
	.gs7-bar__navitem:hover .gs7-bar__navlink { background: var(--gs7-strip-bg); }
	.gs7-bar__navitem:hover .gs7-bar__navlink::after,
	.gs7-bar__navitem.is-current .gs7-bar__navlink::after { transform: scaleX(1); }

	.gs7-bar__search {
		align-items: center;
		margin-left: auto;
		height: 2.5rem;
		width: 14rem;
		padding: 0 0.3rem 0 0.95rem;
		border: 1px solid var(--gs7-line);
		border-radius: 999px;
		background: var(--gs7-strip-bg);
		transition: width var(--gs7-motion) var(--gs7-ease), border-color 0.2s ease, background-color 0.2s ease;
	}
	.gs7-bar__search:focus-within { width: 19rem; border-color: var(--gs7-accent); background: var(--gs7-bar-bg); }
	.gs7-bar__search input {
		flex: 1;
		min-width: 0;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		outline: none;
		color: var(--gs7-ink);
		font-family: inherit;
		font-size: 0.9rem;
		line-height: 1.2;
		-webkit-appearance: none;
		appearance: none;
	}
	.gs7-bar__search input::placeholder { color: var(--gs7-grey); opacity: 1; }
	.gs7-bar__search button {
		width: 1.9rem;
		height: 1.9rem;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: transparent;
		box-shadow: none;
		color: var(--gs7-ink);
		display: inline-flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		transition: background-color 0.2s ease, color 0.2s ease;
	}
	.gs7-bar__search button:hover,
	.gs7-bar__search button:focus { background: var(--gs7-accent); color: var(--gs7-accent-ink); box-shadow: none; }
	.gs7-bar__search button .gs7-icon { width: 1.1rem; height: 1.1rem; }

	.gs7-trending__label span { display: inline; }
}

/* ---- desktop largo: campo di ricerca a vista e "Accedi" con etichetta.
   Tra 1024 e 1199px la barra è stretta: resta la lente (che apre il pannello
   con il cursore nella ricerca) e il bottone account è solo icona. ---- */
@media (min-width: 1200px) {
	.gs7-bar__inner { gap: 1rem; }
	.gs7-bar__search { display: flex; }
	.gs7-bar__searchbtn { display: none; }
	.gs7-bar__actions { margin-left: 0; }
	.gs7-btn-account { width: auto; padding: 0 1rem 0 0.8rem; }
	.gs7-btn-account.is-logged-in { padding-left: 0.35rem; }
	.gs7-btn-account__label { display: inline; }
}

/* --------------------------------------------------------------------------
   LAYOUT "MASTHEAD" (define GS7_HEADER_LAYOUT = 'masthead' | 'masthead-home')
   Solo desktop. Da fermo: ☰ a sinistra, logo grande al centro, ricerca e
   account a destra, sezioni centrate nella riga sotto, poi la striscia.
   Allo scroll diventa la barra compatta di sempre (logo a sinistra, sezioni
   accanto): il CSS anima le altezze, il JS lo spostamento delle zone (FLIP).
   Con GS7_HEADER_LAYOUT = 'bar' (default) questo blocco non si applica.
   -------------------------------------------------------------------------- */
@media (min-width: 1024px) {
	body.gs7-layout-masthead {
		--gs7-masthead-h: 76px;        /* riga del logo */
		--gs7-masthead-nav-h: 46px;    /* riga delle sezioni */
		--gs7-masthead-logo-h: 44px;
		--gs7-header-height: 167px;    /* 3 + 76 + 46 + 42, poi rimisurata dal JS */
	}
	body.gs7-layout-masthead .gs7-header:not(.is-compact) .gs7-bar__inner {
		flex-wrap: wrap;
		align-content: flex-start;
		row-gap: 0;
		height: calc(var(--gs7-masthead-h) + var(--gs7-masthead-nav-h));
	}
	body.gs7-layout-masthead .gs7-header:not(.is-compact) .gs7-bar__left,
	body.gs7-layout-masthead .gs7-header:not(.is-compact) .gs7-bar__brand,
	body.gs7-layout-masthead .gs7-header:not(.is-compact) .gs7-bar__right { height: var(--gs7-masthead-h); }
	body.gs7-layout-masthead .gs7-header:not(.is-compact) .gs7-bar__left { flex: 1 1 0; }
	body.gs7-layout-masthead .gs7-header:not(.is-compact) .gs7-bar__brand { flex: 0 0 auto; justify-content: center; }
	body.gs7-layout-masthead .gs7-header:not(.is-compact) .gs7-bar__right { flex: 1 1 0; justify-content: flex-end; margin-left: 0; }
	body.gs7-layout-masthead .gs7-header:not(.is-compact) .gs7-bar__logo { height: var(--gs7-masthead-logo-h); }
	body.gs7-layout-masthead .gs7-header:not(.is-compact) .gs7-bar__nav {
		flex: 0 0 100%;
		order: 10;
		justify-content: center;
		height: var(--gs7-masthead-nav-h);
		margin-left: 0;
		box-shadow: inset 0 1px 0 var(--gs7-line);
	}
	body.gs7-layout-masthead .gs7-header:not(.is-compact) .gs7-bar__navlist { gap: 0.6rem; }
	body.gs7-layout-masthead .gs7-header:not(.is-compact) .gs7-bar__navlink { font-size: 1.05rem; }
	body.gs7-layout-masthead .gs7-bar__nav { transition: height var(--gs7-motion) var(--gs7-ease); }
	/* durante il cambio di stato le zone scivolano con transform (Web Animations, dal JS) */
	body.gs7-layout-masthead .gs7-bar__left,
	body.gs7-layout-masthead .gs7-bar__brand,
	body.gs7-layout-masthead .gs7-bar__nav,
	body.gs7-layout-masthead .gs7-bar__right { transform-origin: 0 0; }
}

/* --------------------------------------------------------------------------
   PANNELLO LATERALE (da sinistra)
   -------------------------------------------------------------------------- */
.gs7-drawer-check,
.gs7-acc {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	margin: 0;
	padding: 0;
	pointer-events: none;
}
.gs7-drawer-overlay {
	position: fixed;
	inset: 0;
	z-index: var(--gs7-z-overlay);
	margin: 0;
	background: var(--gs7-overlay);
	opacity: 0;
	pointer-events: none;
	cursor: pointer;
	transition: opacity var(--gs7-motion) var(--gs7-ease);
}
.gs7-drawer {
	position: fixed;
	/* parte sotto l'admin bar di WordPress e l'avviso PRE (stesso offset della
	   barra): altrimenti coprono la testata del pannello con logo e ✕ */
	top: var(--gs7-top-offset);
	left: 0;
	z-index: var(--gs7-z-drawer);
	width: min(var(--gs7-drawer-w), 100%);
	height: calc(100vh - var(--gs7-top-offset));
	height: calc(100dvh - var(--gs7-top-offset));
	display: flex;
	flex-direction: column;
	background: var(--gs7-drawer-bg);
	color: var(--gs7-drawer-text);
	font-family: var(--gs7-font);
	line-height: 1.3;
	box-shadow: var(--gs7-drawer-shadow);
	transform: translateX(-102%);
	visibility: hidden;
	transition: transform var(--gs7-motion) var(--gs7-ease), visibility 0s linear var(--gs7-motion);
}
.gs7-drawer:focus { outline: none; }
.gs7-drawer-check:checked ~ .gs7-drawer-overlay { opacity: 1; pointer-events: auto; }
.gs7-drawer-check:checked ~ .gs7-drawer {
	transform: none;
	visibility: visible;
	transition: transform var(--gs7-motion) var(--gs7-ease), visibility 0s;
}
body.gs7-menu-open { overflow: hidden; }
body:has(.gs7-drawer-check:checked) { overflow: hidden; }

/* testata chiara con logo e ✕ */
.gs7-drawer__head {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.8rem 1.25rem;
	background: var(--gs7-drawer-bg);
	color: var(--gs7-drawer-text);
	border-top: 3px solid var(--gs7-accent);
	border-bottom: 1px solid var(--gs7-drawer-line);
}
.gs7-drawer__tools { display: inline-flex; align-items: center; gap: 0.35rem; margin-right: -0.5rem; }
.gs7-drawer__logo { display: block; height: 24px; color: var(--gs7-drawer-text); }
.gs7-drawer__logo img,
.gs7-drawer__logo svg { display: block; height: 100%; width: auto; max-width: none; }
.gs7-drawer__close {
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	color: var(--gs7-drawer-text);
	background: var(--gs7-drawer-panel);
	border: 1px solid var(--gs7-drawer-line);
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.gs7-drawer__close:hover { background: var(--gs7-accent); border-color: var(--gs7-accent); color: var(--gs7-accent-ink); }
.gs7-drawer__close .gs7-icon { width: 1.5rem; height: 1.5rem; }

/* corpo scorrevole */
.gs7-drawer__body {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 1.25rem 1.25rem 1.75rem;
	display: flex;
	flex-direction: column;
	gap: 1.6rem;
	scrollbar-width: thin;
	scrollbar-color: #3a3a3a transparent;
}

/* ricerca nel pannello: sempre visibile, in evidenza */
.gs7-drawer__search {
	display: flex;
	align-items: center;
	margin: 0;
	height: 3.1rem;
	padding: 0 0.35rem 0 0.95rem;
	border: 1px solid var(--gs7-drawer-line);
	border-radius: 0.65rem;
	background: var(--gs7-drawer-panel);
	transition: border-color 0.2s ease;
}
.gs7-drawer__search:focus-within { border-color: var(--gs7-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--gs7-accent) 30%, transparent); }
.gs7-drawer__search input {
	flex: 1;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	outline: none;
	color: var(--gs7-drawer-text);
	font-family: inherit;
	font-size: 0.95rem;
	line-height: 1.2;
	-webkit-appearance: none;
	appearance: none;
}
.gs7-drawer__search input::placeholder { color: var(--gs7-drawer-muted); opacity: 1; }
.gs7-drawer__search button {
	width: 2.1rem;
	height: 2.1rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0.45rem;
	background: var(--gs7-accent);
	color: var(--gs7-accent-ink);
	box-shadow: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.gs7-drawer__search button:hover,
.gs7-drawer__search button:focus { background: var(--gs7-accent-hover); color: var(--gs7-accent-ink); box-shadow: none; }
.gs7-drawer__search button .gs7-icon { width: 1.15rem; height: 1.15rem; }

/* selettore delle aree (home principale + sezioni) */
.gs7-areas {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	gap: 0.25rem;
	padding: 0.25rem;
	border-radius: 0.7rem;
	background: var(--gs7-drawer-panel);
}
.gs7-areas__link {
	--gs7-sec: var(--gs7-accent);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	min-height: 2.2rem;
	padding: 0.35rem 0.5rem;
	border-radius: 0.5rem;
	color: var(--gs7-drawer-muted);
	font-size: 0.8rem;
	font-weight: 700;
	white-space: nowrap;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.gs7-areas__link .gs7-icon { width: 1rem; height: 1rem; }
.gs7-areas__link:hover { color: var(--gs7-drawer-text); }
.gs7-areas__link.is-current {
	background: var(--gs7-drawer-bg);
	color: var(--gs7-drawer-text);
	box-shadow: inset 0 -3px 0 var(--gs7-sec), 0 1px 2px rgba(0, 0, 0, 0.12);
}

/* gruppi */
.gs7-group { display: flex; flex-direction: column; gap: 0.55rem; }
.gs7-group__title {
	font-family: inherit;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gs7-accent);
	line-height: 1;
}

/* chip (es. piattaforme) */
.gs7-chips { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.gs7-chip {
	display: inline-flex;
	align-items: center;
	height: 2rem;
	padding: 0 0.85rem;
	border-radius: 999px;
	background: var(--gs7-drawer-panel);
	border: 1px solid var(--gs7-drawer-line);
	color: var(--gs7-drawer-text);
	font-size: 0.82rem;
	font-weight: 600;
	white-space: nowrap;
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}
.gs7-chip:hover { border-color: var(--gs7-accent); color: var(--gs7-accent); }
.gs7-chip.is-active { background: var(--gs7-accent); border-color: var(--gs7-accent); color: var(--gs7-accent-ink); }

/* lista con accordion */
.gs7-nav { display: flex; flex-direction: column; }
.gs7-nav__item { border-bottom: 1px solid var(--gs7-drawer-line); --gs7-sec: var(--gs7-accent); }
.gs7-nav__item:last-child { border-bottom: 0; }
.gs7-nav__row { display: flex; align-items: center; gap: 0.35rem; }
.gs7-nav__link {
	flex: 1;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 0.7rem;
	min-height: 3rem;
	padding: 0.6rem 0;
	color: var(--gs7-drawer-text);
	font-size: 1.05rem;
	font-weight: 700;
	transition: color 0.2s ease;
}
.gs7-nav__link .gs7-icon { width: 1.3rem; height: 1.3rem; color: var(--gs7-sec); }
.gs7-nav__text { flex: 1; min-width: 0; }
a.gs7-nav__link:hover .gs7-nav__text { color: var(--gs7-accent); }
.gs7-nav__item.is-current > .gs7-nav__link .gs7-nav__text,
.gs7-nav__item.is-current > .gs7-nav__row .gs7-nav__text { color: var(--gs7-accent); }

.gs7-nav__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 0.5rem;
	color: var(--gs7-drawer-muted);
	cursor: pointer;
	flex-shrink: 0;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.gs7-nav__toggle:hover { background: var(--gs7-drawer-panel); color: var(--gs7-drawer-text); }
.gs7-nav__toggle--full { flex: 1; width: auto; height: auto; justify-content: space-between; padding: 0; border-radius: 0; }
.gs7-nav__toggle--full:hover { background: transparent; }
.gs7-nav__toggle--full .gs7-nav__link { cursor: pointer; }
.gs7-nav__chevron { display: inline-flex; transition: transform 0.25s var(--gs7-ease); }
.gs7-nav__chevron .gs7-icon { width: 1.15rem; height: 1.15rem; }
.gs7-acc:checked ~ .gs7-nav__row .gs7-nav__chevron { transform: rotate(180deg); }
.gs7-acc:checked ~ .gs7-nav__row .gs7-nav__toggle { color: var(--gs7-accent); }

.gs7-nav__sub {
	display: none;
	margin: 0 0 0.9rem;
	padding: 0 0 0 2rem;
	grid-template-columns: 1fr 1fr;
	gap: 0.1rem 0.75rem;
}
.gs7-acc:checked ~ .gs7-nav__sub { display: grid; }
.gs7-nav__sub .gs7-nav__item { border: 0; }
.gs7-nav__sub .gs7-nav__item--parent { grid-column: 1 / -1; }
.gs7-nav__sub .gs7-nav__link {
	min-height: 2.2rem;
	padding: 0.3rem 0;
	font-size: 0.93rem;
	font-weight: 500;
	color: var(--gs7-drawer-muted);
}
.gs7-nav__sub .gs7-nav__link .gs7-icon { width: 1rem; height: 1rem; }
.gs7-nav__sub a.gs7-nav__link:hover { color: var(--gs7-drawer-text); }
.gs7-nav__sub .gs7-nav__sub { grid-template-columns: 1fr; padding-left: 1rem; margin-bottom: 0.4rem; }
.gs7-nav__sub .gs7-nav__toggle { width: 2rem; height: 2rem; }

/* gruppo "piatto" (nessun accordion) → griglia a due colonne */
.gs7-group--grid .gs7-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0.15rem 0.75rem; }
.gs7-group--grid .gs7-nav__item { border: 0; }
.gs7-group--grid .gs7-nav__link { min-height: 2.5rem; padding: 0.4rem 0; font-size: 0.95rem; font-weight: 600; }
.gs7-group--grid .gs7-nav__link .gs7-icon { width: 1.1rem; height: 1.1rem; color: var(--gs7-drawer-muted); }
.gs7-group--grid a.gs7-nav__link:hover .gs7-icon { color: var(--gs7-accent); }

/* azioni rapide (tile) */
.gs7-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
.gs7-tile {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 3.2rem;
	padding: 0.6rem 0.75rem;
	border-radius: 0.7rem;
	background: var(--gs7-drawer-panel);
	border: 1px solid var(--gs7-drawer-line);
	color: var(--gs7-drawer-text);
	font-size: 0.86rem;
	font-weight: 600;
	line-height: 1.2;
	transition: border-color 0.2s ease, transform 0.2s ease;
}
.gs7-tile:hover { border-color: var(--gs7-accent); transform: translateY(-1px); }
.gs7-tile__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	flex-shrink: 0;
	border-radius: 0.5rem;
	background: color-mix(in srgb, var(--gs7-accent) 16%, transparent);
	color: var(--gs7-accent);
}
.gs7-tile__icon .gs7-icon { width: 1.1rem; height: 1.1rem; }

/* social */
.gs7-social { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.gs7-social__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 0.6rem;
	background: var(--gs7-drawer-panel);
	border: 1px solid var(--gs7-drawer-line);
	color: var(--gs7-drawer-text);
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.gs7-social__link:hover { background: var(--gs7-accent); border-color: var(--gs7-accent); color: var(--gs7-accent-ink); }
.gs7-social__link .gs7-icon { width: 1.15rem; height: 1.15rem; }

/* piè di pagina del pannello */
.gs7-drawer__foot {
	flex-shrink: 0;
	padding: 0.75rem 1.25rem;
	border-top: 1px solid var(--gs7-drawer-line);
	font-size: 0.72rem;
	color: var(--gs7-drawer-muted);
}
.gs7-drawer__foot a { color: inherit; text-decoration: underline; }

/* --------------------------------------------------------------------------
   Varie
   -------------------------------------------------------------------------- */
/* durante la misurazione dell'altezza niente transizioni */
.gs7-header.gs7-measuring,
.gs7-header.gs7-measuring * { transition: none !important; animation: none !important; }

@media (prefers-reduced-motion: reduce) {
	.gs7-header,
	.gs7-header *,
	.gs7-drawer,
	.gs7-drawer *,
	.gs7-drawer-overlay { transition: none !important; animation: none !important; }
}

@media print {
	.gs7-header, .gs7-header-spacer, .gs7-drawer, .gs7-drawer-overlay { display: none !important; }
}
