/* core/gs7-core.css */
/* ==========================================================================
   GS7 Blocks – CORE: token + primitive comuni a tutti i blocchi
   --------------------------------------------------------------------------
   REGOLA: i blocchi (gs7-blocks/blocks/<nome>/block.css) contengono SOLO
   layout (griglie, colonne, spaziature). Tipografia, colori, linee, badge,
   card e testate vivono QUI e solo qui. Se una cosa grafica va cambiata
   ovunque, si cambia in questo file.

   Prefisso classi: gsb-  (GameSource Blocks)
   Prefisso variabili: --gsb-

   Scala tipografica (6 gradini, nessun altro valore ammesso nei blocchi):
     display  hero della home / del blocco di apertura
     lead     articolo principale di una fascia (recensione, guida, video)
     title    card standard
     row      righe di lista e card piccole
     meta     data, autore, "vedi tutte", chip
     kicker   etichetta di categoria in maiuscoletto
   ========================================================================== */

/* .gsb = token + reset + font; .gsb-tokens = SOLO i token (per pagine intere, es. body.gs7-article, senza toccare il resto) */
.gsb, .gsb-tokens {
	/* ---- colori: dalla Global Palette di Kadence (chiaro/scuro automatici) ---- */
	--gsb-accent: var(--gs7-accent, var(--global-palette-highlight, #f04737));
	--gsb-text: var(--global-palette3, #1a202c);
	--gsb-text-2: var(--global-palette4, #2d3748);
	--gsb-muted: var(--global-palette5, #4a5568);
	--gsb-faint: var(--global-palette6, #718096);
	--gsb-bg: var(--global-palette9, #ffffff);
	--gsb-line: color-mix(in srgb, var(--gsb-text) 14%, transparent);
	--gsb-line-strong: color-mix(in srgb, var(--gsb-text) 28%, transparent);
	--gsb-panel: color-mix(in srgb, var(--gsb-text) 5%, transparent);
	--gsb-panel-2: color-mix(in srgb, var(--gsb-text) 9%, transparent);

	/* colori di sezione (stessi nomi dell'header gs7) */
	--gsb-sec-videogiochi: var(--gs7-sec-videogiochi, var(--gsb-accent));
	--gsb-sec-tech: var(--gs7-sec-tech, #27a364);
	--gsb-sec-movies: var(--gs7-sec-movies, #f5333f);
	--gsb-sec-nerd: var(--gs7-sec-nerd, #0876a7);
	--gsb-sec: var(--gsb-accent);

	/* semafori voto e live */
	--gsb-good: #27a364;
	--gsb-mid: #e8a317;
	--gsb-bad: #de004a;
	--gsb-live: #de004a;

	/* ---- tipografia ---- */
	--gsb-font-head: var(--global-heading-font-family, Poppins, sans-serif);
	--gsb-font-body: var(--global-body-font-family, Roboto, sans-serif);
	--gsb-fs-display: 1.6rem;
	--gsb-fs-lead: 1.3rem;
	--gsb-fs-title: 1.05rem;
	--gsb-fs-row: 0.95rem;
	--gsb-fs-meta: 0.78rem;
	--gsb-fs-kicker: 0.7rem;
	--gsb-lh-tight: 1.2;
	--gsb-lh-title: 1.3;
	--gsb-lh-body: 1.5;

	/* ---- misure ---- */
	--gsb-radius: 0.5rem;
	--gsb-gap: 1.25rem;
	--gsb-gap-l: 2rem;
	--gsb-block-space: 2.75rem;
	--gsb-motion: 200ms;
}
.gsb {
	font-family: var(--gsb-font-body);
	color: var(--gsb-text);
	line-height: var(--gsb-lh-body);
}
@media (min-width: 1024px) {
	.gsb, .gsb-tokens { --gsb-fs-display: 1.9rem; }
}
@media (min-width: 1200px) {
	.gsb, .gsb-tokens { --gsb-fs-display: 2.1rem; --gsb-fs-lead: 1.4rem; }
}
@supports not (color: color-mix(in srgb, red 10%, blue)) {
	.gsb, .gsb-tokens {
		--gsb-line: var(--global-palette7, #e6e6e6);
		--gsb-line-strong: var(--global-palette6, #767676);
		--gsb-panel: var(--global-palette8, #f4f4f4);
		--gsb-panel-2: var(--global-palette7, #e6e6e6);
	}
}

/* reset locale: dentro .entry-content-wrap Kadence e il child stilano p, h2, h3, ul */
.gsb *, .gsb *::before, .gsb *::after { box-sizing: border-box; }
.gsb h2, .gsb h3, .gsb h4, .gsb p, .gsb ul, .gsb ol, .gsb figure { margin: 0; padding: 0; }
.gsb ul, .gsb ol { list-style: none; }
.gsb a { color: inherit; text-decoration: none; }
.gsb img { display: block; max-width: 100%; height: auto; }
.gsb button { font: inherit; }

/* colore di sezione: classe gsb-sec-<sezione> sul blocco, sul singolo articolo o sul body (pagina articolo) */
.gsb .gsb-sec-videogiochi, .gsb-tokens.gsb-sec-videogiochi { --gsb-sec: var(--gsb-sec-videogiochi); }
.gsb .gsb-sec-tech,        .gsb-tokens.gsb-sec-tech        { --gsb-sec: var(--gsb-sec-tech); }
.gsb .gsb-sec-movies,      .gsb-tokens.gsb-sec-movies      { --gsb-sec: var(--gsb-sec-movies); }
.gsb .gsb-sec-nerd,        .gsb-tokens.gsb-sec-nerd        { --gsb-sec: var(--gsb-sec-nerd); }

/* --------------------------------------------------------------------------
   1. TESTO: i 6 gradini. Ogni titolo di card usa una di queste classi.
   -------------------------------------------------------------------------- */
.gsb-t-display, .gsb-t-lead, .gsb-t-title, .gsb-t-row {
	font-family: var(--gsb-font-head);
	color: var(--gsb-text);
	overflow-wrap: anywhere;
}
.gsb-t-display { font-size: var(--gsb-fs-display); font-weight: 800; line-height: var(--gsb-lh-tight); letter-spacing: -0.015em; }
.gsb-t-lead    { font-size: var(--gsb-fs-lead);    font-weight: 800; line-height: var(--gsb-lh-tight); letter-spacing: -0.01em; }
.gsb-t-title   { font-size: var(--gsb-fs-title);   font-weight: 700; line-height: var(--gsb-lh-title); }
.gsb-t-title--lg { font-size: calc(var(--gsb-fs-title) * 1.12); } /* stesso gradino, un filo più grande (fiume principale) */
.gsb-t-row     { font-size: var(--gsb-fs-row);     font-weight: 600; line-height: var(--gsb-lh-title); }
.gsb-t-meta    { font-family: var(--gsb-font-body); font-size: var(--gsb-fs-meta); font-weight: 500; line-height: 1.35; color: var(--gsb-muted); }
.gsb-t-kicker  { font-family: var(--gsb-font-head); font-size: var(--gsb-fs-kicker); font-weight: 800; line-height: 1.2; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gsb-sec); }

/* link nei titoli: MAI sottolineati, al passaggio prendono il colore di sezione */
.gsb-t-display a, .gsb-t-lead a, .gsb-t-title a, .gsb-t-row a { transition: color var(--gsb-motion) ease; }
.gsb-t-display a:hover, .gsb-t-lead a:hover, .gsb-t-title a:hover, .gsb-t-row a:hover { color: var(--gsb-sec); }

/* sommario: sempre corpo, mai Poppins; clamp a 2 o 3 righe */
.gsb-excerpt { font-size: 0.95rem; line-height: var(--gsb-lh-body); color: var(--gsb-muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.gsb-excerpt--2 { -webkit-line-clamp: 2; }
.gsb-t-display + .gsb-excerpt { font-size: 1.02rem; }

/* clamp titoli */
.gsb-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.gsb-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* --------------------------------------------------------------------------
   2. TESTATA DI BLOCCO (una sola; variante --side per la colonna laterale)
   -------------------------------------------------------------------------- */
.gsb-head {
	position: relative;
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	padding-bottom: 0.6rem;
	margin-bottom: var(--gsb-gap);
	border-bottom: 2px solid var(--gsb-line);
}
.gsb-head::after { content: ""; position: absolute; left: 0; bottom: -2px; width: 3.5rem; height: 2px; background: var(--gsb-sec); }
.gsb-head__title { font-family: var(--gsb-font-head); font-size: var(--gsb-fs-lead); font-weight: 800; letter-spacing: -0.01em; line-height: 1.2; color: var(--gsb-text); }
.gsb-head__sub { font-size: var(--gsb-fs-meta); color: var(--gsb-faint); }
.gsb-head__more { margin-left: auto; font-size: var(--gsb-fs-meta); font-weight: 700; color: var(--gsb-sec); white-space: nowrap; }
.gsb-head__more:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.gsb-head--side { padding-bottom: 0.55rem; margin-bottom: 0.5rem; }
.gsb-head--side .gsb-head__title { font-size: var(--gsb-fs-kicker); letter-spacing: 0.12em; text-transform: uppercase; }
.gsb-head--sec .gsb-head__title { color: var(--gsb-sec); }
.gsb-head--live .gsb-head__title::before { content: ""; display: inline-block; width: 0.55rem; height: 0.55rem; margin: 0 0.5rem 0.1rem 0; border-radius: 50%; background: var(--gsb-live); animation: gsb-pulse 1.6s infinite; }

/* --------------------------------------------------------------------------
   3. MEDIA: immagine con proporzione fissa, angoli, zoom leggero al passaggio
   -------------------------------------------------------------------------- */
.gsb-media { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--gsb-radius); background: var(--gsb-panel); }
.gsb-media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--gsb-motion) ease; }
.gsb-media--4x3 { aspect-ratio: 4 / 3; }
.gsb-media--3x4 { aspect-ratio: 3 / 4; }
.gsb-media--1x1 { aspect-ratio: 1; }
.gsb-media--3x2 { aspect-ratio: 3 / 2; }
.gsb-media--21x9 { aspect-ratio: 21 / 9; }
.gsb-card:hover .gsb-media img, .gsb-media:hover img { transform: scale(1.03); }
.gsb-media__ph { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--gsb-font-head); font-weight: 800; font-size: 1.4rem; color: var(--gsb-faint); background: var(--gsb-panel-2); }

/* --------------------------------------------------------------------------
   4. CARD: UNA sola card, 4 varianti. Struttura: [media] + body(kicker, titolo, excerpt, meta)
      hero   foto grande, titolo display, sommario 2 righe
      card   foto 16:9, titolo title
      row    testo a sinistra, miniatura a destra (fiume)   / --thumb-left
      mini   senza foto: numero o voto + titolo row
   -------------------------------------------------------------------------- */
.gsb-card { position: relative; display: flex; flex-direction: column; gap: 0.7rem; min-width: 0; }
li > .gsb-card { height: 100%; } /* nelle griglie (ul > li) la card riempie la cella */
.gsb-card__body { display: flex; flex-direction: column; gap: 0.35rem; min-width: 0; flex: 1; }
/* riga in cima al corpo: kicker + firma (elementi a altezza fissa stanno sopra il titolo, così le griglie restano allineate) */
.gsb-card__top { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.6rem; min-height: 1.6rem; }
.gsb-card__top .gsb-byline { gap: 0.4rem; }
.gsb-card__top .gsb-t-kicker + .gsb-byline::before { content: "·"; color: var(--gsb-faint); margin-right: 0.2rem; }
/* piede della card: usato solo dove serve allineare (schede); resta in basso nella cella */
.gsb-card__foot { margin-top: auto; padding-top: 0.2rem; display: flex; flex-direction: column; gap: 0.4rem; }
/* slot titolo: riserva N righe al titolo così ciò che segue è allineato tra le card della stessa fila */
.gsb-t-slot-2 { min-height: calc(2 * var(--gsb-lh-title) * 1em); }
.gsb-t-slot-3 { min-height: calc(3 * var(--gsb-lh-title) * 1em); }
/* tutta la card è cliccabile: il link del titolo si "estende" sull'intera card; kicker e link secondari restano sopra */
.gsb-card__body .gsb-t-display > a::after, .gsb-card__body .gsb-t-lead > a::after, .gsb-card__body .gsb-t-title > a::after, .gsb-card__body .gsb-t-row > a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.gsb-card .gsb-t-kicker, .gsb-card__foot a, .gsb-card__top a { position: relative; z-index: 2; }
.gsb-card .gsb-meta a, .gsb-card .gsb-byline a { position: relative; z-index: 2; } /* la firma porta alla pagina autore */
.gsb-meta__author:hover, .gsb-byline__name:hover { color: var(--gsb-sec); text-decoration: underline; text-underline-offset: 0.2em; }
.gsb-card:hover .gsb-t-display a, .gsb-card:hover .gsb-t-lead a, .gsb-card:hover .gsb-t-title a, .gsb-card:hover .gsb-t-row a { color: var(--gsb-sec); }
.gsb-card--hero { gap: 0.9rem; }
.gsb-card--hero .gsb-card__body { gap: 0.5rem; }
.gsb-card--row { display: grid; grid-template-columns: minmax(0, 1fr) 9.5rem; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--gsb-line); }
.gsb-card--row .gsb-media { align-self: start; order: 2; } /* markup: media prima del body; nella riga la foto sta a destra */
.gsb-card--row.gsb-card--thumb-left { grid-template-columns: 6.5rem minmax(0, 1fr); }
.gsb-card--row.gsb-card--thumb-left .gsb-media { order: -1; }
.gsb-card--mini { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.7rem; align-items: center; padding: 0.6rem 0; border-bottom: 1px solid var(--gsb-line); }
.gsb-card--mini .gsb-card__body { gap: 0.2rem; }
.gsb-card--mini.gsb-card--plain { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 560px) {
	.gsb-card--row { grid-template-columns: minmax(0, 1fr) 6.5rem; padding: 0.8rem 0; }
	.gsb-card--row.gsb-card--thumb-left { grid-template-columns: 5.5rem minmax(0, 1fr); }
}
/* griglie allineate riga per riga (subgrid): media, kicker, titolo, meta… di ogni card stanno sulle stesse righe
   della griglia, quindi i piedi sono allineati e i "buchi" compaiono solo se un titolo vicino va a capo */
@media (min-width: 560px) {
	.gsb-grid-align { row-gap: 0.4rem; }
	.gsb-grid-align > li { display: contents; }
	.gsb-grid-align > li > .gsb-card { display: grid; grid-template-rows: subgrid; grid-row: span var(--gsb-rows, 4); gap: 0; }
	.gsb-grid-align > li > .gsb-card > .gsb-media { margin-bottom: 0.3rem; }
	.gsb-grid-align > li > .gsb-card > .gsb-card__body { display: contents; }
	.gsb-grid-align > li > .gsb-card > .gsb-card__body > :last-child { margin-bottom: 1rem; }
	.gsb-grid-align > li > .gsb-card > .gsb-card__body > .gsb-card__foot { margin-top: 0; }
}
/* due card a riga affiancate (blocchi con pochi elementi: pezzi scelti, poche recensioni); su telefono una sotto l'altra */
.gsb-rows2 { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: var(--gsb-gap-l); }
@media (min-width: 900px) { .gsb-rows2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* card in lista sui telefoni (le griglie di card) */
@media (max-width: 559.98px) {
	.gsb-card--list-sm { display: grid; grid-template-columns: 38% minmax(0, 1fr); gap: 0.85rem; align-items: start; }
	.gsb-card--list-sm .gsb-t-slot-2, .gsb-card--list-sm .gsb-t-slot-3 { min-height: 0; }
}

/* --------------------------------------------------------------------------
   5. META: riga data · autore · piattaforme; byline con avatar
   -------------------------------------------------------------------------- */
.gsb-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.5rem; font-size: var(--gsb-fs-meta); font-weight: 500; color: var(--gsb-faint); }
.gsb-meta > * + *::before { content: "·"; margin-right: 0.5rem; color: var(--gsb-faint); }
.gsb-meta time { font-variant-numeric: tabular-nums; }
.gsb-meta strong { font-weight: 600; color: var(--gsb-muted); }
.gsb-byline { display: flex; align-items: center; gap: 0.5rem; font-size: var(--gsb-fs-meta); font-weight: 600; color: var(--gsb-muted); }
.gsb-avatar { width: 1.6rem; height: 1.6rem; border-radius: 50%; object-fit: cover; }
/* avatar senza foto (gs7-author): iniziali su un fondo di tinta fissa per persona; dimensione da --gs7-av o dalla classe */
.gs7-avatar--initials { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: var(--gs7-av, 2.5rem); height: var(--gs7-av, 2.5rem); border-radius: 50%; background: hsl(var(--gs7-av-h, 210) 38% 42%); color: #fff; font-family: var(--gsb-font-head, sans-serif); font-size: calc(var(--gs7-av, 2.5rem) * 0.38); font-weight: 800; line-height: 1; letter-spacing: 0.02em; text-transform: uppercase; user-select: none; }
.gsb-avatar.gs7-avatar--initials { width: 1.6rem; height: 1.6rem; font-size: 0.62rem; }

/* numero d'ordine (classifiche) */
.gsb-num { font-family: var(--gsb-font-head); font-size: 1.5rem; font-weight: 800; line-height: 1; color: var(--gsb-sec); min-width: 1.6rem; text-align: center; font-variant-numeric: tabular-nums; }

/* --------------------------------------------------------------------------
   6. BADGE: voto, video, live, piattaforme, chip filtro, tag "Aggiornato"
   -------------------------------------------------------------------------- */
.gsb-score { display: inline-grid; place-items: center; min-width: 2.4rem; height: 2.4rem; padding: 0 0.3rem; border-radius: 50%; font-family: var(--gsb-font-head); font-weight: 800; font-size: 1rem; line-height: 1; color: #fff; background: var(--gsb-good); font-variant-numeric: tabular-nums; }
.gsb-score--mid { background: var(--gsb-mid); }
.gsb-score--bad { background: var(--gsb-bad); }
.gsb-score--l { min-width: 3.4rem; height: 3.4rem; font-size: 1.4rem; }
.gsb-score--s { min-width: 1.9rem; height: 1.9rem; font-size: 0.8rem; }
.gsb-media .gsb-score { position: absolute; right: 0.6rem; bottom: 0.6rem; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35); }

.gsb-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 3.2rem; height: 3.2rem; border-radius: 50%; display: grid; place-items: center; background: rgba(0, 0, 0, 0.62); color: #fff; }
.gsb-play::before { content: ""; width: 0; height: 0; border-style: solid; border-width: 0.55rem 0 0.55rem 0.95rem; border-color: transparent transparent transparent #fff; margin-left: 0.2rem; }
.gsb-play--s { width: 1.8rem; height: 1.8rem; }
.gsb-play--s::before { border-width: 0.32rem 0 0.32rem 0.55rem; margin-left: 0.1rem; }

.gsb-badge { display: inline-flex; align-items: center; gap: 0.35rem; height: 1.45rem; padding: 0 0.55rem; border-radius: 0.3rem; font-family: var(--gsb-font-head); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: #fff; background: var(--gsb-sec); }
.gsb-badge--live { background: var(--gsb-live); }
.gsb-badge--live::before { content: ""; width: 0.45rem; height: 0.45rem; border-radius: 50%; background: #fff; animation: gsb-pulse-w 1.6s infinite; }
.gsb-badge--ghost { color: var(--gsb-sec); background: color-mix(in srgb, var(--gsb-sec) 12%, transparent); }
.gsb-media .gsb-badge { position: absolute; left: 0.6rem; top: 0.6rem; }

.gsb-plats { display: flex; flex-wrap: wrap; gap: 0.25rem; }
.gsb-plat { display: inline-block; padding: 0.15rem 0.45rem; border-radius: 0.3rem; font-family: var(--gsb-font-head); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.04em; color: var(--gsb-muted); background: var(--gsb-panel-2); }

/* la linea è un'ombra interna (non un bordo): così la sottolineatura della linguetta attiva, disegnata dentro il suo
   riquadro, la copre esattamente anche se il contenitore scorre in orizzontale sui telefoni */
.gsb-chips { display: flex; align-items: stretch; gap: 0 1.35rem; margin: calc(-1 * var(--gsb-gap)) 0 var(--gsb-gap); box-shadow: inset 0 -2px 0 var(--gsb-line); overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.gsb-chips::-webkit-scrollbar { display: none; }
.gsb-chip { position: relative; flex-shrink: 0; display: inline-flex; align-items: center; height: 2.4rem; padding: 0; border: 0; background: transparent; color: var(--gsb-muted); font-family: var(--gsb-font-head); font-size: 0.9rem; font-weight: 700; letter-spacing: 0; cursor: pointer; transition: color var(--gsb-motion); }
.gsb-chip::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: transparent; transition: background var(--gsb-motion); }
.gsb-chip:hover { color: var(--gsb-text); }
.gsb-chip.is-on { color: var(--gsb-text); }
.gsb-chip.is-on::after { background: var(--gsb-sec); }
.gsb-chip:focus-visible { outline: 2px solid var(--gsb-sec); outline-offset: -2px; }
/* i filtri rapidi proseguono la linea della testata: stessa linea (2px), stesso colore, stessa famiglia dei titoli */
.gsb-head:has(+ .gsb-chips) { border-bottom-color: transparent; }
.gsb-head:has(+ .gsb-chips)::after { display: none; }

/* --------------------------------------------------------------------------
   7. PULSANTI, PANNELLI, SPAZI PUBBLICITARI, PRO/CONTRO
   -------------------------------------------------------------------------- */
.gsb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; height: 2.6rem; padding: 0 1.4rem; border-radius: 999px; border: 2px solid var(--gsb-accent); background: transparent; color: var(--gsb-accent); font-family: var(--gsb-font-head); font-weight: 700; font-size: 0.9rem; cursor: pointer; transition: background var(--gsb-motion), color var(--gsb-motion); }
.gsb-btn:hover { background: var(--gsb-accent); color: #fff; }
.gsb-btn--solid { background: var(--gsb-accent); color: #fff; }
.gsb-btn--solid:hover { filter: brightness(1.08); }
.gsb-btn[disabled] { opacity: 0.6; cursor: wait; }
.gsb-btn--ghost { width: 100%; height: 2.9rem; border-radius: var(--gsb-radius); border: 1px solid var(--gsb-line-strong); color: var(--gsb-text); font-size: 0.85rem; letter-spacing: 0.02em; }
.gsb-btn--ghost::after { content: ""; width: 0.5rem; height: 0.5rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.gsb-btn--ghost:hover { background: var(--gsb-panel); color: var(--gsb-text); border-color: var(--gsb-line-strong); }
.gsb-more { margin-top: 1rem; }

.gsb-panel { padding: 1.25rem; border-radius: var(--gsb-radius); background: var(--gsb-panel); }
.gsb-panel__title { font-family: var(--gsb-font-head); font-size: var(--gsb-fs-title); font-weight: 800; }
.gsb-panel p { font-size: 0.9rem; color: var(--gsb-muted); margin: 0.35rem 0 0.8rem; }

.gsb-ad { display: grid; place-items: center; min-height: 6rem; border-radius: var(--gsb-radius); border: 1px dashed var(--gsb-line-strong); color: var(--gsb-faint); font-size: var(--gsb-fs-meta); }
.gsb-ad:empty { display: none; }

.gsb-procon { display: flex; flex-direction: column; gap: 0.3rem; margin: 0; padding: 0; list-style: none; font-size: 0.88rem; color: var(--gsb-muted); }
.gsb-procon li { padding-left: 1.1rem; position: relative; }
.gsb-procon li::before { position: absolute; left: 0; font-weight: 800; }
.gsb-procon__pro::before { content: "+"; color: var(--gsb-good); }
.gsb-procon__con::before { content: "−"; color: var(--gsb-bad); }

/* prosa: testo scorrevole dentro un blocco (es. la descrizione della scheda gioco); corpo, mai Poppins */
.gsb-prose { font-family: var(--gsb-font-body); font-size: 1.0625rem; line-height: 1.7; color: var(--gsb-text); }
.gsb-prose > * + * { margin-top: 1em; }
.gsb-prose p { margin: 0; text-align: left; text-wrap: pretty; }
.gsb-prose h3, .gsb-prose h4 { font-family: var(--gsb-font-head); font-size: 1.15rem; font-weight: 700; line-height: 1.3; margin: 1.5em 0 0; }
.gsb-prose h3 + *, .gsb-prose h4 + * { margin-top: 0.5em; }
.gsb-prose ul, .gsb-prose ol { padding-left: 1.4em; }
.gsb-prose ul { list-style: disc; }
.gsb-prose ol { list-style: decimal; }
.gsb-prose li + li { margin-top: 0.4em; }
.gsb-prose a { color: var(--gsb-sec); text-decoration: underline; text-underline-offset: 0.15em; text-decoration-thickness: 1px; }
.gsb-prose a:hover { text-decoration-thickness: 2px; }
.gsb-prose img { border-radius: var(--gsb-radius); }
.gsb-prose blockquote { margin: 1.5em 0 0; padding: 0.25rem 0 0.25rem 1.25rem; border-left: 4px solid var(--gsb-sec); font-family: var(--gsb-font-head); font-size: 1.15rem; font-weight: 600; line-height: 1.4; }

/* --------------------------------------------------------------------------
   8. REGIONI (sopra · centrale | laterale · sotto), INVOLUCRO DI BLOCCO, LINEE
   Desktop: griglia a due colonne. Mobile: tutti i blocchi in un'unica colonna
   nell'ORDINE DI LETTURA deciso dal motore (--gsb-order sul blocco).
   -------------------------------------------------------------------------- */
.gsb-region { min-width: 0; }
.gsb-region + .gsb-cols, .gsb-cols + .gsb-region, .gsb-region + .gsb-region { margin-top: var(--gsb-block-space); }
.gsb-cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gsb-gap-l); align-items: start; }
.gsb-block { margin-top: var(--gsb-block-space); min-width: 0; }
.gsb-block:first-child { margin-top: 0; }
.gsb-region--main .gsb-block--hero + .gsb-block--cards { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--gsb-line); }
.gsb-region--main .gsb-block--ad { margin-top: 1.5rem; }
.gsb-region--main .gsb-block--ad + .gsb-block { margin-top: 1.5rem; }
.gsb-region--side .gsb-block { margin-top: var(--gsb-gap-l); }
.gsb-region--side .gsb-block:first-child { margin-top: 0; }
@media (min-width: 1024px) {
	.gsb-cols { grid-template-columns: minmax(0, 1fr) 320px; }
	.gsb-cols--single { grid-template-columns: minmax(0, 1fr); }
	.gsb-region--side { align-self: stretch; border-left: 1px solid var(--gsb-line); padding-left: var(--gsb-gap-l); display: flex; flex-direction: column; }
	/* opzione "fisso da qui" del pannello: il contenitore resta visibile mentre si scorre il resto della colonna centrale */
	.gsb-region--side .gsb-sticky { position: sticky; top: var(--gsb-sticky-top, 5.5rem); display: flex; flex-direction: column; gap: var(--gsb-gap-l); }
	.gsb-region--side .gsb-sticky .gsb-block { margin-top: 0; }
}
@media (min-width: 1024px) and (max-width: 1199.98px) { .gsb-cols { grid-template-columns: minmax(0, 1fr) 280px; gap: 1.5rem; } }
@media (max-width: 1023.98px) {
	.gsb-scope { display: flex; flex-direction: column; gap: var(--gsb-block-space); }
	.gsb-scope .gsb-region, .gsb-scope .gsb-cols, .gsb-scope .gsb-sticky { display: contents; }
	.gsb-scope .gsb-block, .gsb-scope .gsb-region--side .gsb-block, .gsb-scope .gsb-region--main .gsb-block--hero + .gsb-block--cards, .gsb-scope .gsb-region--main .gsb-block--ad { margin-top: 0; order: var(--gsb-order, 0); }
	.gsb-scope .gsb-region--main .gsb-block--hero + .gsb-block--cards { padding-top: 0; border-top: 0; }
}
/* copia "su mobile prima" di un blocco di colonna: la copia (.gsb-early) si vede solo su schermi stretti,
   l'originale nella colonna (.gsb-block--early) solo su schermi larghi. Nessun contenuto doppio visibile.
   La classe gsb-block--early la mette il motore SOLO se la copia è stata stampata (gsb_render_early): in home e nelle aree,
   dove la copia non c'è, l'originale resta visibile e su mobile prende il posto dato dall'ordine di lettura. */
.gsb-early { display: none; }
@media (max-width: 1024.98px) {
	.gsb-early { display: flex; flex-direction: column; gap: var(--gsb-gap); }
	.gsb-early .gsb-block { margin-top: 0; }
	.gsb-region--side .gsb-block--early { display: none; }
}
/* regione stampata da sola (es. laterale e fasce di un articolo): nessuna colonna, nessun bordo */
.gsb-region--solo { display: flex; flex-direction: column; gap: var(--gsb-gap-l); }
.gsb-region--solo .gsb-block { margin-top: 0; }
.gsb-region--solo.gsb-region--bottom { gap: var(--gsb-block-space); }
.gsb-region--solo.gsb-region--rail { gap: 1.25rem; }
.gsb-region--rail .gsb-sticky { position: sticky; top: var(--gsb-sticky-top, 6rem); display: flex; flex-direction: column; gap: 1.25rem; }
.gsb-region--rail .gsb-sticky .gsb-block { margin-top: 0; }
@media (min-width: 1024px) { .gsb-region--solo.gsb-region--side { border-left: 0; padding-left: 0; height: 100%; } }
.gsb-rule { border: 0; border-top: 1px solid var(--gsb-line); margin: 0; }
.gsb-list { margin: 0; padding: 0; list-style: none; }
.gsb-list > li { border-bottom: 1px solid var(--gsb-line); }
.gsb-list > li:last-child { border-bottom: 0; }

@keyframes gsb-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--gsb-live) 55%, transparent); } 70% { box-shadow: 0 0 0 0.45rem transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }
@keyframes gsb-pulse-w { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
@media (prefers-reduced-motion: reduce) { .gsb * { transition: none !important; animation: none !important; } }

/* scheda-descrizione/block.css */
/* scheda · descrizione: testo scorrevole + due colonne "ti piacerà se / non ti piacerà se" */
.gsb-sdesc__likes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gsb-gap); margin-top: var(--gsb-gap-l); padding-top: var(--gsb-gap); border-top: 1px solid var(--gsb-line); }
.gsb-sdesc__text + .gsb-sdesc__likes { margin-top: var(--gsb-gap-l); }
/* solo pro e contro (nessun testo editoriale): niente testata "Descrizione", le due colonne partono da sole */
.gsb-sdesc--likes-only .gsb-sdesc__likes { margin-top: 0; padding-top: 0; border-top: 0; }
.gsb-sdesc__col { display: flex; flex-direction: column; gap: 0.5rem; min-width: 0; }
.gsb-sdesc__from { grid-column: 1 / -1; }
.gsb-sdesc__from a { color: var(--gsb-sec); font-weight: 600; }
@media (max-width: 600px) { .gsb-sdesc__likes { grid-template-columns: minmax(0, 1fr); } }

/* scheda-media/block.css */
/* scheda · media: facciata del trailer, griglia della galleria, altri video, visore */
.gsb-facade { position: relative; aspect-ratio: 16 / 9; border-radius: var(--gsb-radius); overflow: hidden; background: #000; }
.gsb-facade img { width: 100%; height: 100%; object-fit: cover; opacity: 0.92; transition: opacity var(--gsb-motion), transform var(--gsb-motion); }
.gsb-facade:hover img { opacity: 1; transform: scale(1.02); }
.gsb-facade__btn { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
.gsb-facade__btn:focus-visible { outline: 3px solid #fff; outline-offset: -3px; }
.gsb-facade--big .gsb-play { width: 4.5rem; height: 4.5rem; }
.gsb-facade iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.gsb-facade noscript { position: absolute; left: 0.75rem; bottom: 0.75rem; }
.gsb-facade noscript a { color: #fff; font-size: var(--gsb-fs-meta); }
.gsb-smedia__gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.6rem; margin-top: var(--gsb-gap); }
.gsb-smedia__shot { aspect-ratio: 16 / 9; }
.gsb-smedia__more { margin-top: var(--gsb-gap-l); display: flex; flex-direction: column; gap: 0.6rem; }
.gsb-smedia__videos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.6rem; }
@media (max-width: 560px) { .gsb-smedia__gallery, .gsb-smedia__videos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* visore della galleria: dialog nativo, tutto schermo, frecce e chiusura */
.gsb-lightbox { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(0, 0, 0, 0.92); color: #fff; }
.gsb-lightbox::backdrop { background: rgba(0, 0, 0, 0.6); }
.gsb-lightbox figure { position: absolute; inset: 0; margin: 0; display: grid; place-items: center; grid-template-rows: minmax(0, 1fr) auto; padding: 3.5rem 4rem; }
.gsb-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; }
.gsb-lightbox figcaption { font-size: var(--gsb-fs-meta); color: rgba(255, 255, 255, 0.7); padding-top: 0.75rem; font-variant-numeric: tabular-nums; }
.gsb-lightbox button { position: absolute; z-index: 1; width: 3rem; height: 3rem; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.12); color: #fff; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.gsb-lightbox button:hover { background: rgba(255, 255, 255, 0.25); }
.gsb-lightbox button:focus-visible { outline: 2px solid #fff; }
.gsb-lightbox__close { top: 0.75rem; right: 0.75rem; }
.gsb-lightbox__prev { left: 0.75rem; top: 50%; transform: translateY(-50%); }
.gsb-lightbox__next { right: 0.75rem; top: 50%; transform: translateY(-50%); }
@media (max-width: 600px) { .gsb-lightbox figure { padding: 3.5rem 0.75rem 3rem; } .gsb-lightbox__prev, .gsb-lightbox__next { top: auto; bottom: 0.5rem; transform: none; } .gsb-lightbox__prev { left: calc(50% - 3.5rem); } .gsb-lightbox__next { right: calc(50% - 3.5rem); } }

/* scheda-contenuti/block.css */
/* scheda · contenuti: una sezione per tipo, griglia di card allineate (subgrid) */
.gsb-scont__sec + .gsb-scont__sec { margin-top: var(--gsb-block-space); }
.gsb-scont__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gsb-gap); }
@media (max-width: 1023.98px) { .gsb-scont__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559.98px) { .gsb-scont__grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; } }
.gsb-scont__all { margin-top: var(--gsb-gap-l); }
.gsb-scont__all .gsb-btn--ghost { text-decoration: none; }

/* scheda-simili/block.css */
/* scheda · giochi simili: fila scorrevole di copertine (nessun buco: tutte sulla stessa riga) */
.gsb-ssim__scroller { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(140px, 1fr); gap: var(--gsb-gap); overflow-x: auto; padding-bottom: 0.5rem; scrollbar-width: thin; scroll-snap-type: x proximity; }
.gsb-ssim__scroller > li { scroll-snap-align: start; }
.gsb-ssim .gsb-t-kicker { color: var(--gsb-faint); text-transform: none; letter-spacing: 0.02em; font-size: var(--gsb-fs-meta); font-weight: 600; }

/* scheda-tecnica/block.css */
/* scheda · tecnica: etichetta → valore; su mobile (copia anticipata) due colonne compatte */
.gsb-stech__list { margin: 0; display: flex; flex-direction: column; }
.gsb-stech__row { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 0.25rem 0.75rem; padding: 0.55rem 0; border-bottom: 1px solid var(--gsb-line); font-size: var(--gsb-fs-row); }
.gsb-stech__row:last-child { border-bottom: 0; }
.gsb-stech__row dt { color: var(--gsb-faint); font-size: var(--gsb-fs-meta); font-weight: 600; padding-top: 0.1rem; }
.gsb-stech__row dd { margin: 0; color: var(--gsb-text); font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.gsb-stech__row dd a { color: inherit; }
.gsb-stech__row dd a:hover { color: var(--gsb-sec); }
.gsb-stech__dates { display: flex; flex-direction: column; gap: 0.15rem; margin-top: 0.35rem; font-size: var(--gsb-fs-meta); font-weight: 500; color: var(--gsb-muted); }
.gsb-stech__date { display: flex; justify-content: space-between; gap: 0.5rem; }
.gsb-stech__date > span { color: var(--gsb-faint); }
.gsb-stech__all { display: inline-block; margin-top: 0.9rem; font-family: var(--gsb-font-head); font-size: var(--gsb-fs-meta); font-weight: 700; color: var(--gsb-sec); }
.gsb-stech__all:hover { text-decoration: underline; text-underline-offset: 0.2em; }
/* variante mobile: due colonne, righe più fitte, niente linee esterne */
.gsb-stech--early .gsb-stech__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.25rem; }
.gsb-stech--early .gsb-stech__row { grid-template-columns: minmax(0, 1fr); gap: 0.1rem; padding: 0.45rem 0; border-bottom: 1px solid var(--gsb-line); }
.gsb-stech--early .gsb-stech__row:last-child { border-bottom: 1px solid var(--gsb-line); }
.gsb-stech--early .gsb-stech__dates { margin-top: 0.2rem; }
@media (max-width: 420px) { .gsb-stech--early .gsb-stech__list { grid-template-columns: minmax(0, 1fr); } }

/* scheda-link/block.css */
/* scheda · dove trovarlo: righe cliccabili, separate da linee */
.gsb-slink__list { display: flex; flex-direction: column; }
.gsb-slink__list > li { border-bottom: 1px solid var(--gsb-line); }
.gsb-slink__list > li:last-child { border-bottom: 0; }
.gsb-slink__item { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.7rem 0.15rem; font-family: var(--gsb-font-head); font-size: var(--gsb-fs-row); font-weight: 700; color: var(--gsb-text); transition: color var(--gsb-motion); }
.gsb-slink__item:hover { color: var(--gsb-sec); }
.gsb-slink__ext { color: var(--gsb-faint); font-weight: 400; }
.gsb-slink__item:hover .gsb-slink__ext { color: inherit; }

/* ultime/block.css */
.gsb-ultime .gsb-card--row { padding: 0.6rem 0; border-bottom: 0; }

/* gs7-scheda/gs7-scheda.css */
/* ==========================================================================
   GS7 – Pagina scheda gioco (prefisso gs7s-). Entra nel CSS unico di gs7-blocks e usa i token e le primitive di
   gs7-blocks/core/gs7-core.css (gsb-*). Stessi principi della pagina articolo: niente scatole, la pagina è la
   superficie; testata a tutta larghezza → colonne → fasce; scala di spazi 0.75 · 1.25 · 2 · 3 · 4rem.
   ========================================================================== */
body.gs7-scheda { --gs7s-side: 320px; --gs7s-s1: 0.75rem; --gs7s-s2: 1.25rem; --gs7s-s3: 2rem; --gs7s-s4: 3rem; --gs7s-s5: 4rem; }
/* offset sotto l'header fisso (barra admin + header compatto + respiro): per le ancore e per i blocchi "fissi" della laterale */
body.gs7-scheda { --gs7s-sticky-top: calc(var(--gs7-top-offset, 0px) + var(--gs7-header-compact-h, 59px) + 1.5rem); }
html:has(body.gs7-scheda) { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html:has(body.gs7-scheda) { scroll-behavior: auto; } }
body.gs7-scheda .content-area { margin-top: 0; }
body.gs7-scheda .content-container.site-container { background: transparent; }
body.gs7-scheda .single-entry.content-bg { background: transparent; box-shadow: none; border: 0; border-radius: 0; margin-left: 0; margin-right: 0; }
body.gs7-scheda .single-entry .entry-content-wrap { padding: 0; }
@media screen and (min-width: 1025px) {
	body.gs7-scheda.has-sidebar .content-container { grid-template-columns: minmax(0, 1fr) var(--gs7s-side); grid-gap: var(--gs7s-s4); }
}
/* le ancore (#trailer, #dove-trovarlo, #recensioni, #guide…) si fermano sotto l'header fisso */
body.gs7-scheda .gsb-block, body.gs7-scheda .gsb-scont__sec { scroll-margin-top: var(--gs7s-sticky-top); }

/* ---- testata ---- */
.gs7s-head-wrap { padding-top: var(--gs7s-s3); }
.gs7s-top { margin-bottom: var(--gs7s-s3); }
.gs7s-top .gsb-region--solo:empty { display: none; }
.gs7s-head { display: flex; flex-direction: column; gap: var(--gs7s-s3); padding-bottom: var(--gs7s-s3); margin-bottom: var(--gs7s-s4); border-bottom: 1px solid var(--gsb-line); }
.gs7s-crumbs { display: flex; flex-wrap: wrap; gap: 0.35rem; font-size: var(--gsb-fs-meta); color: var(--gsb-faint); margin: 0; }
.gs7s-crumbs a { color: inherit; }
.gs7s-crumbs a:hover { color: var(--gsb-text); }
.gs7s-crumbs__sep { opacity: 0.6; }
/* la testata è una griglia con aree: copertina | info | (voto) — pulsanti e voto cambiano posto con la larghezza */
.gs7s-hero { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); grid-template-areas: "cover info" "actions actions" "aside aside"; gap: var(--gs7s-s2); align-items: start; }
.gs7s-hero--no-actions { grid-template-areas: "cover info" "aside aside"; }
.gs7s-hero--no-aside { grid-template-areas: "cover info" "actions actions"; }
.gs7s-hero--no-actions.gs7s-hero--no-aside { grid-template-areas: "cover info"; }
.gs7s-cover { grid-area: cover; }
.gs7s-info { grid-area: info; }
.gs7s-actions { grid-area: actions; }
.gs7s-aside { grid-area: aside; }
@media (min-width: 700px) {
	.gs7s-hero { grid-template-columns: 12rem minmax(0, 1fr); grid-template-areas: "cover info" "cover actions" "cover aside"; gap: var(--gs7s-s2) var(--gs7s-s3); }
	.gs7s-hero--no-actions { grid-template-areas: "cover info" "cover aside"; }
	.gs7s-hero--no-aside { grid-template-areas: "cover info" "cover actions"; }
	.gs7s-hero--no-actions.gs7s-hero--no-aside { grid-template-areas: "cover info"; }
}
@media (min-width: 1025px) {
	.gs7s-hero { grid-template-columns: 13.5rem minmax(0, 1fr) auto; grid-template-areas: "cover info aside" "cover actions aside"; }
	.gs7s-hero--no-actions { grid-template-areas: "cover info aside"; }
	.gs7s-hero--no-aside { grid-template-columns: 13.5rem minmax(0, 1fr); grid-template-areas: "cover info" "cover actions"; }
	.gs7s-hero--no-actions.gs7s-hero--no-aside { grid-template-areas: "cover info"; }
}
.gs7s-cover { position: relative; aspect-ratio: 3 / 4; border-radius: var(--gsb-radius); overflow: hidden; background: var(--gsb-panel); box-shadow: 0 10px 30px color-mix(in srgb, var(--gsb-text) 18%, transparent); }
.gs7s-cover__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gs7s-cover__ph { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--gsb-font-head); font-size: 2.6rem; font-weight: 800; letter-spacing: 0.05em; color: #fff; background: linear-gradient(160deg, color-mix(in srgb, var(--gsb-sec) 85%, #000) 0%, color-mix(in srgb, var(--gsb-sec) 45%, #000) 100%); }
.gs7s-info { display: flex; flex-direction: column; gap: var(--gs7s-s1); min-width: 0; }
.gs7s-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.9rem; }
.gs7s-chips .gsb-t-kicker { font-size: 0.8rem; }
.gs7s-chips a.gsb-t-kicker:hover { text-decoration: underline; text-underline-offset: 0.25em; }
.gs7s-plat { display: inline-block; padding: 0.2rem 0.55rem; border-radius: 0.3rem; font-family: var(--gsb-font-head); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.04em; color: var(--gsb-muted); background: var(--gsb-panel-2); text-decoration: none; }
a.gs7s-plat:hover { color: var(--gsb-text); background: var(--gsb-panel); }
.gs7s-title.entry-title { font-family: var(--gsb-font-head); font-size: clamp(1.9rem, 1.1rem + 2.4vw, 3rem); font-weight: 800; line-height: 1.08; letter-spacing: -0.025em; margin: 0; color: var(--gsb-text); overflow-wrap: anywhere; text-wrap: balance; }
.gs7s-status { --gs7s-dot: var(--gsb-faint); display: inline-flex; align-items: center; gap: 0.55rem; margin: 0.15rem 0 0; font-family: var(--gsb-font-head); font-size: 1rem; font-weight: 700; color: var(--gsb-text); }
.gs7s-status__dot { flex-shrink: 0; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--gs7s-dot); box-shadow: 0 0 0 3px color-mix(in srgb, var(--gs7s-dot) 25%, transparent); }
.gs7s-status--out { --gs7s-dot: var(--gsb-good); }
.gs7s-status--soon { --gs7s-dot: var(--gsb-sec); }
.gs7s-status--year, .gs7s-status--tba { --gs7s-dot: var(--gsb-mid); }
.gs7s-studio { margin: 0; font-size: var(--gsb-fs-row); color: var(--gsb-muted); }
.gs7s-studio__name { color: var(--gsb-text); font-weight: 600; text-decoration: none; }
a.gs7s-studio__name:hover { color: var(--gsb-sec); }
.gs7s-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.gs7s-actions .gsb-btn { text-decoration: none; }
.gs7s-actions .gsb-btn--solid::before { content: ""; width: 0; height: 0; border-style: solid; border-width: 0.4rem 0 0.4rem 0.65rem; border-color: transparent transparent transparent currentColor; }
.gs7s-aside { display: flex; flex-direction: column; gap: 0.6rem; min-width: 13rem; }
.gs7s-score { --gs7s-band: var(--gsb-good); display: flex; flex-direction: column; gap: 0.5rem; padding: var(--gs7s-s2); border-radius: var(--gsb-radius); border: 1px solid color-mix(in srgb, var(--gs7s-band) 40%, transparent); background: color-mix(in srgb, var(--gs7s-band) 10%, transparent); color: var(--gsb-text); text-decoration: none; transition: background var(--gsb-motion); }
.gs7s-score:hover { background: color-mix(in srgb, var(--gs7s-band) 18%, transparent); }
.gs7s-score--mid { --gs7s-band: var(--gsb-mid); }
.gs7s-score--bad { --gs7s-band: var(--gsb-bad); }
.gs7s-score__label { font-family: var(--gsb-font-head); font-size: 0.64rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gsb-faint); }
.gs7s-score__row { display: flex; align-items: center; gap: 0.75rem; }
.gs7s-score__word { font-family: var(--gsb-font-head); font-size: 1rem; font-weight: 800; color: var(--gs7s-band); }
.gs7s-score__link { font-family: var(--gsb-font-head); font-size: var(--gsb-fs-meta); font-weight: 700; color: var(--gsb-sec); }
.gs7s-score:hover .gs7s-score__link { text-decoration: underline; text-underline-offset: 0.2em; }
.gs7s-meta-link { align-self: flex-start; font-size: var(--gsb-fs-meta); font-weight: 600; color: var(--gsb-muted); text-decoration: none; }
.gs7s-meta-link:hover { color: var(--gsb-text); }
.gs7s-brief { margin: 0; max-width: 60rem; font-size: 1.05rem; line-height: 1.55; color: var(--gsb-text-2); text-wrap: pretty; }
.gs7s-brief .gsb-t-kicker { margin-right: 0.6rem; }

/* ---- colonna principale, laterale, fasce ---- */
.gs7s-early-wrap { display: none; }
@media (max-width: 1024.98px) { .gs7s-early-wrap { display: block; margin: 0 0 var(--gs7s-s3); } .gs7s-early-wrap:empty { display: none; } }
.gs7s-main { min-width: 0; }
.gs7s-main .gsb-region--solo { gap: var(--gsb-block-space); }
.gs7s-empty { display: flex; flex-direction: column; gap: 0.6rem; padding: var(--gs7s-s3); border: 1px dashed var(--gsb-line-strong); border-radius: var(--gsb-radius); }
.gs7s-empty p { margin: 0; }
.gs7s-empty a { color: var(--gsb-sec); }
.gs7s-empty .gsb-btn { margin-top: 0.5rem; text-decoration: none; }
.gs7s-sidebar { min-width: 0; }
@media screen and (min-width: 1025px) {
	.gs7s-sidebar { align-self: stretch; border-left: 1px solid var(--gsb-line); padding-left: var(--gs7s-s3); --gsb-sticky-top: var(--gs7s-sticky-top); }
}
.gs7s-below { padding-top: var(--gs7s-s5); }
body.gs7-scheda .gs7s-head, body.gs7-scheda .gs7s-main, body.gs7-scheda .gs7s-sidebar { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }

/* ---- mobile e tablet ---- */
@media (max-width: 1024.98px) { .gs7s-sidebar { margin-top: var(--gs7s-s4); } }
@media (max-width: 699.98px) {
	.gs7s-head-wrap { padding-top: var(--gs7s-s2); }
	.gs7s-head { gap: var(--gs7s-s2); padding-bottom: var(--gs7s-s2); margin-bottom: var(--gs7s-s3); }
	.gs7s-cover { box-shadow: 0 4px 14px color-mix(in srgb, var(--gsb-text) 18%, transparent); }
	.gs7s-cover__ph { font-size: 1.6rem; }
	.gs7s-title.entry-title { font-size: clamp(1.45rem, 1rem + 2.6vw, 1.9rem); }
	.gs7s-status { font-size: 0.92rem; }
	.gs7s-aside { min-width: 0; }
	.gs7s-score { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 0.5rem 0.9rem; padding: var(--gs7s-s1) var(--gs7s-s2); }
	.gs7s-score__label { flex-basis: 100%; }
	.gs7s-score__link { margin-left: auto; }
	.gs7s-brief { font-size: 0.98rem; }
}

