/*
Theme Name: Roma Sud
Description: Tema del sito di informazione di quartiere Roma Sud: leggibile prima di tutto dal telefono, ogni notizia con foto, "Cosa ne pensi?" e condivisione ovunque. Da usare con il plugin "Roma Sud — Funzioni".
Version: 1.4.0
Author: Roma Sud
Requires PHP: 8.0
Requires at least: 6.4
Text Domain: romasud
*/

:root {
	--rs-sfondo: #F4F5F7;
	--rs-carta: #FFFFFF;
	--rs-inchiostro: #14181F;
	--rs-testo2: #2F3640;
	--rs-grigio: #4A5260;
	--rs-linea: #DDE1E6;
	--rs-linea2: #EEF0F3;
	--rs-foto: #D5DAE0;
	--rs-verde: #0B6B57;
	--rs-verde-scuro: #084D3F;
	--rs-verde-chiaro: #E3F1ED;
	--rs-verde-luce: #6FD3B8;
	--rs-giallo: #F4B400;
	--rs-arancio: #C2410C;
	--rs-arancio-scuro: #9A3412;
	--rs-arancio-chiaro: #FDEBE1;
	--rs-barra-neutra: #B8C0CA;
	--rs-pub-sfondo: #FFF4D6;
	--rs-pub-testo: #6B4E00;
	--rs-pub-linea: #E6D9B5;
	--rs-scuro: #14181F;
	--rs-scuro2: #232934;
	--rs-scuro-testo: #C9CED6;
	--rs-serif: 'Newsreader', Georgia, 'Times New Roman', serif;
	--rs-sans: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--rs-raggio: 14px;
	--rs-raggio-piccolo: 10px;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--rs-sfondo);
	color: var(--rs-inchiostro);
	font-family: var(--rs-sans);
	font-size: 17px;
	line-height: 1.5;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--rs-verde); }
a:hover { color: var(--rs-verde-scuro); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
	outline: 3px solid var(--rs-giallo);
	outline-offset: 2px;
}

h1, h2, h3 { font-family: var(--rs-serif); line-height: 1.15; margin: 0; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.rs-salta {
	position: absolute; left: 8px; top: -60px; z-index: 100;
	padding: 10px 14px; background: var(--rs-giallo); color: var(--rs-inchiostro); font-weight: 700; border-radius: 8px;
}
.rs-salta:focus { top: 8px; }

.rs-wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 16px; }

/* ---------- Pulsanti ---------- */
.rs-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 0 16px;
	border: 1px solid transparent; border-radius: var(--rs-raggio-piccolo);
	font: 600 15px/1 var(--rs-sans); text-decoration: none; cursor: pointer;
	background: var(--rs-carta); color: var(--rs-inchiostro);
}
.rs-btn svg { width: 18px; height: 18px; flex-shrink: 0; }
.rs-btn--verde { background: var(--rs-verde); color: #fff; font-weight: 700; }
.rs-btn--verde:hover { background: var(--rs-verde-scuro); color: #fff; }
.rs-btn--giallo { background: var(--rs-giallo); color: var(--rs-inchiostro); font-weight: 700; }
.rs-btn--giallo:hover { background: #E0A500; color: var(--rs-inchiostro); }
.rs-btn--bordo { border-color: var(--rs-linea); }
.rs-btn--bordo:hover { border-color: var(--rs-grigio); color: var(--rs-inchiostro); }
.rs-btn--scuro { background: var(--rs-scuro); color: #fff; font-weight: 700; }
.rs-btn--scuro:hover { background: #000; color: #fff; }
.rs-btn--largo { width: 100%; min-height: 50px; font-size: 16px; }
.rs-btn--tondo { border-radius: 999px; }
.rs-btn--icona { width: 44px; padding: 0; }

/* ---------- Barra in alto ---------- */
.rs-topbar { background: var(--rs-scuro); color: #fff; font-size: 13px; }
.rs-topbar .rs-wrap { display: flex; flex-wrap: wrap; gap: 6px 20px; align-items: center; justify-content: space-between; padding-top: 8px; padding-bottom: 8px; }
.rs-topbar__info { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.rs-topbar__voce { display: inline-flex; align-items: center; gap: 6px; }
.rs-topbar__voce svg { width: 16px; height: 16px; }
.rs-topbar a { color: var(--rs-verde-luce); font-weight: 600; }

/* ---------- Testata ---------- */
.rs-header { background: var(--rs-carta); border-bottom: 1px solid var(--rs-linea); }
.rs-header__riga { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; padding-top: 16px; padding-bottom: 12px; }
.rs-logo { font-family: var(--rs-serif); font-size: 34px; font-weight: 700; letter-spacing: -0.5px; line-height: 1; color: var(--rs-inchiostro); text-decoration: none; white-space: nowrap; }
.rs-logo span { color: var(--rs-verde); }
.rs-logo:hover { color: var(--rs-inchiostro); }
.rs-tagline { margin: 4px 0 0; font-size: 14px; color: var(--rs-grigio); }
.rs-header__azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; width: 100%; }
.rs-quartiere { display: flex; align-items: center; gap: 8px; flex: 1 1 260px; }
.rs-quartiere label { font-size: 14px; color: var(--rs-grigio); white-space: nowrap; }
.rs-quartiere svg { width: 18px; height: 18px; color: var(--rs-verde); flex-shrink: 0; }
.rs-quartiere select {
	flex: 1; min-width: 0; height: 44px; padding: 0 12px;
	border: 1px solid var(--rs-linea); border-radius: var(--rs-raggio-piccolo);
	background: var(--rs-carta); font: 600 15px var(--rs-sans); color: var(--rs-inchiostro);
}
.rs-header__cta { display: none; }

.rs-cerca { display: none; padding: 0 16px 12px; }
.rs-cerca.is-aperta { display: block; }
.rs-cerca form { display: flex; gap: 8px; max-width: 640px; }
.rs-cerca input[type="search"] { flex: 1; min-width: 0; height: 46px; padding: 0 12px; border: 1px solid var(--rs-linea); border-radius: var(--rs-raggio-piccolo); font: 16px var(--rs-sans); }

.rs-nav { border-top: 1px solid var(--rs-linea); }
.rs-nav ul { list-style: none; margin: 0; padding: 10px 16px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.rs-nav ul::-webkit-scrollbar { display: none; }
.rs-nav li { flex-shrink: 0; }
.rs-nav a {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px;
	border-radius: 999px; background: var(--rs-linea2); color: var(--rs-inchiostro);
	font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap;
}
.rs-nav .current-menu-item > a, .rs-nav .current-cat > a, .rs-nav a[aria-current="page"] { background: var(--rs-inchiostro); color: #fff; }

/* ---------- Etichette ---------- */
.rs-etichetta { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: 0.4px; text-transform: uppercase; color: var(--rs-verde); }
.rs-etichetta a { color: inherit; text-decoration: none; }
.rs-etichetta--pub { align-self: flex-start; padding: 3px 8px; border-radius: 6px; background: var(--rs-pub-sfondo); color: var(--rs-pub-testo); letter-spacing: 0; }
.rs-etichetta--partner { padding: 3px 8px; border-radius: 6px; background: var(--rs-verde-chiaro); color: var(--rs-verde-scuro); letter-spacing: 0; }
.rs-meta { font-size: 13px; color: var(--rs-grigio); }

/* ---------- Foto ---------- */
.rs-foto { position: relative; overflow: hidden; background: var(--rs-foto); }
.rs-foto img { width: 100%; height: 100%; object-fit: cover; }
.rs-foto--16x9 { aspect-ratio: 16 / 9; }
.rs-foto--4x3 { aspect-ratio: 4 / 3; }

/* ---------- Home ---------- */
.rs-main { padding: 16px 0 32px; }
.rs-main > .rs-wrap { display: flex; flex-direction: column; gap: 24px; }

.rs-apertura-riga { display: flex; flex-wrap: wrap; gap: 16px 24px; }
.rs-apertura { flex: 999 1 560px; min-width: 0; }
.rs-laterale { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }

.rs-box { background: var(--rs-carta); border-radius: var(--rs-raggio); padding: 16px; }
.rs-box__titolo { margin: 0 0 12px; font-family: var(--rs-sans); font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--rs-verde); }

.rs-card { display: flex; flex-direction: column; background: var(--rs-carta); border-radius: var(--rs-raggio); overflow: hidden; color: var(--rs-inchiostro); }
.rs-card__corpo { display: flex; flex-direction: column; gap: 8px; padding: 16px; flex: 1; }
.rs-card__titolo { font-size: 21px; font-weight: 600; }
.rs-card__titolo a { color: var(--rs-inchiostro); text-decoration: none; }
.rs-card__titolo a::after { content: ''; position: absolute; inset: 0; }
.rs-card { position: relative; }
.rs-card a:hover { color: var(--rs-verde-scuro); }
.rs-card__riassunto { margin: 0; font-size: 15px; color: var(--rs-testo2); }
.rs-card__piede { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 4px; position: relative; z-index: 1; }

.rs-card--apertura .rs-card__titolo { font-size: 27px; font-weight: 700; }
.rs-card--apertura .rs-card__riassunto { font-size: 17px; }

.rs-riga { position: relative; display: flex; gap: 12px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--rs-linea2); }
.rs-riga:last-child { border-bottom: 0; padding-bottom: 0; }
.rs-riga:first-of-type { padding-top: 0; }
.rs-riga .rs-foto { flex-shrink: 0; width: 88px; aspect-ratio: 4 / 3; border-radius: 8px; }
.rs-riga__testo { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rs-riga__titolo { font-family: var(--rs-serif); font-size: 18px; font-weight: 600; line-height: 1.2; }
.rs-riga__titolo a { color: var(--rs-inchiostro); text-decoration: none; }
.rs-riga__titolo a::after { content: ''; position: absolute; inset: 0; }

.rs-breve { position: relative; display: flex; gap: 12px; align-items: center; padding: 8px 0; }
.rs-breve .rs-foto { flex-shrink: 0; width: 60px; height: 56px; border-radius: 8px; }
.rs-breve__ora { display: block; font-size: 13px; font-weight: 700; color: var(--rs-grigio); }
.rs-breve a { color: var(--rs-inchiostro); text-decoration: none; font-size: 15px; }
.rs-breve a::after { content: ''; position: absolute; inset: 0; }

.rs-classifica { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; counter-reset: rs; }
.rs-classifica li { counter-increment: rs; display: flex; gap: 12px; align-items: flex-start; }
.rs-classifica li::before { content: counter(rs); font: 700 28px/1 var(--rs-serif); color: var(--rs-barra-neutra); min-width: 18px; }
.rs-classifica a { color: var(--rs-inchiostro); text-decoration: none; font-weight: 600; font-size: 15px; }

.rs-griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }

.rs-sezione { display: flex; flex-direction: column; gap: 12px; }
.rs-sezione__testa { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.rs-sezione__titolo { font-size: 26px; font-weight: 700; }
.rs-sezione__testa a { font-size: 15px; font-weight: 600; }

.rs-due { display: flex; flex-wrap: wrap; gap: 24px; }
.rs-due > * { flex: 1 1 380px; min-width: 0; }

.rs-partner { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 12px 14px; background: var(--rs-verde-chiaro); border-radius: 12px; font-size: 15px; }
.rs-partner .rs-pub__contenuto { display: contents; }
.rs-partner p { margin: 0; }

.rs-scuro { background: var(--rs-scuro); color: #fff; border-radius: var(--rs-raggio); padding: 20px 16px; display: flex; flex-direction: column; gap: 12px; }
.rs-scuro h2 { color: #fff; }
.rs-scuro p { margin: 0; color: var(--rs-scuro-testo); font-size: 15px; }
.rs-scuro__card { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 14px; background: var(--rs-scuro2); border-radius: 12px; }
.rs-scuro__card .rs-etichetta { color: var(--rs-giallo); }
.rs-scuro__card a { color: #fff; text-decoration: none; font-size: 18px; font-weight: 600; }
.rs-scuro__card a::after { content: ''; position: absolute; inset: 0; }
.rs-scuro__card .rs-foto { border-radius: 8px; aspect-ratio: 21 / 9; }

.rs-svago-griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
.rs-svago-card { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 14px; background: var(--rs-carta); border-radius: var(--rs-raggio); }
.rs-svago-card a { color: var(--rs-inchiostro); text-decoration: none; font-weight: 600; }
.rs-svago-card a::after { content: ''; position: absolute; inset: 0; }
.rs-svago-card .rs-foto { border-radius: 8px; }

.rs-iscriviti { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; padding: 20px 16px; background: var(--rs-verde-chiaro); border-radius: var(--rs-raggio); }
.rs-iscriviti > div { flex: 1 1 320px; display: flex; flex-direction: column; gap: 8px; }
.rs-iscriviti h2 { font-size: 24px; }
.rs-iscriviti p { margin: 0; font-size: 15px; color: var(--rs-testo2); }
.rs-iscriviti__azioni { flex-direction: row !important; flex-wrap: wrap; gap: 10px !important; }

.rs-vuoto { padding: 24px; background: var(--rs-carta); border-radius: var(--rs-raggio); color: var(--rs-grigio); }

/* ---------- Opinioni ---------- */
.rs-barra { display: flex; height: 8px; border-radius: 4px; overflow: hidden; background: var(--rs-linea2); }
.rs-barra span { display: block; height: 100%; }
.rs-barra .is-accordo { background: var(--rs-verde); }
.rs-barra .is-neutrale { background: var(--rs-barra-neutra); }
.rs-barra .is-contrario { background: var(--rs-arancio); }
.rs-opinioni-mini { display: flex; flex-direction: column; gap: 6px; flex: 1 1 220px; }
.rs-opinioni-mini__testo { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: 13px; color: var(--rs-grigio); }
.rs-num-accordo { color: var(--rs-verde); }
.rs-num-contrario { color: var(--rs-arancio); }

.rs-opinioni { display: flex; flex-direction: column; gap: 14px; padding: 20px 16px; background: var(--rs-carta); border: 1px solid var(--rs-linea); border-radius: var(--rs-raggio); }
.rs-opinioni h2 { font-size: 26px; }
.rs-opinioni__pulsanti { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rs-voto { min-height: 50px; border-radius: 12px; font: 700 15px var(--rs-sans); cursor: pointer; background: var(--rs-carta); }
.rs-voto--accordo { border: 1px solid var(--rs-verde); color: var(--rs-verde-scuro); }
.rs-voto--neutrale { border: 1px solid var(--rs-barra-neutra); color: var(--rs-inchiostro); }
.rs-voto--contrario { border: 1px solid var(--rs-arancio); color: var(--rs-arancio-scuro); }
.rs-voto[aria-pressed="true"].rs-voto--accordo { background: var(--rs-verde-chiaro); }
.rs-voto[aria-pressed="true"].rs-voto--neutrale { background: var(--rs-linea2); }
.rs-voto[aria-pressed="true"].rs-voto--contrario { background: var(--rs-arancio-chiaro); }
.rs-voto:disabled { cursor: default; opacity: 0.85; }
.rs-opinioni .rs-barra { height: 12px; border-radius: 6px; }
.rs-opinioni__numeri { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; text-align: center; }
.rs-opinioni__numeri strong { display: block; font-size: 24px; line-height: 1.1; }
.rs-opinioni__numeri span { font-size: 13px; color: var(--rs-grigio); }
.rs-opinioni__nota { margin: 0; font-size: 13px; color: var(--rs-grigio); }

/* ---------- Condivisione ---------- */
.rs-condividi { display: flex; flex-wrap: wrap; gap: 8px; }
.rs-condividi .rs-btn--verde { flex: 1 1 140px; }
.rs-condividi--mini { gap: 6px; }
.rs-condividi--mini .rs-btn { min-height: 40px; padding: 0 12px; font-size: 13px; }
.rs-condividi--mini .rs-btn--icona { width: 40px; padding: 0; }
.rs-condividi--mini .rs-btn--verde { flex: 0 0 auto; }
.rs-copiato { font-size: 13px; color: var(--rs-verde-scuro); align-self: center; }

/* ---------- Articolo ---------- */
.rs-articolo-layout { display: flex; flex-wrap: wrap; gap: 32px 48px; }
.rs-articolo { flex: 999 1 560px; min-width: 0; max-width: 760px; display: flex; flex-direction: column; gap: 18px; }
.rs-articolo__laterale { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.rs-articolo__titolo { font-size: 31px; font-weight: 700; }
.rs-in3righe { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; background: var(--rs-verde-chiaro); border-radius: 12px; }
.rs-in3righe .rs-etichetta { color: var(--rs-verde-scuro); }
.rs-in3righe p { margin: 0; }
.rs-figura { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.rs-figura .rs-foto { border-radius: 12px; }
.rs-figura figcaption { font-size: 14px; color: var(--rs-grigio); }

.rs-contenuto { font-size: 18px; line-height: 1.6; }
.rs-contenuto > * { margin: 0 0 1em; }
.rs-contenuto h2 { font-size: 24px; margin-top: 1.4em; }
.rs-contenuto h3 { font-size: 20px; margin-top: 1.2em; }
.rs-contenuto ul, .rs-contenuto ol { padding-left: 1.3em; }
.rs-contenuto li { margin-bottom: 0.4em; }
.rs-contenuto img { border-radius: 10px; }
.rs-contenuto blockquote { margin-left: 0; padding: 4px 16px; border-left: 4px solid var(--rs-verde); color: var(--rs-testo2); }
.rs-contenuto .rs-cosa-fare, .rs-contenuto .wp-block-group.is-style-cosa-fare { padding: 18px 20px; background: var(--rs-sfondo); border-radius: 12px; }
.rs-contenuto .rs-pub { margin: 1.4em 0; }

.rs-fonti { display: flex; flex-direction: column; gap: 6px; font-size: 16px; }
.rs-fonti h2 { font-family: var(--rs-sans); font-size: 18px; font-weight: 700; }
.rs-fonti ul { margin: 0; padding-left: 1.2em; }

.rs-pagina { max-width: 760px; }
.rs-pagina__titolo { font-size: 34px; font-weight: 700; margin-bottom: 16px; }

/* ---------- Pubblicità ---------- */
.rs-pub { display: flex; flex-direction: column; gap: 10px; padding: 16px; background: var(--rs-carta); border: 1px solid var(--rs-pub-linea); border-radius: var(--rs-raggio); font-size: 15px; }
.rs-pub__titolo { margin: 0; font-weight: 700; }
.rs-pub img { border-radius: 10px; }
.rs-pub p { margin: 0; }

/* Spazio libero: invita le aziende, resta discreto */
.rs-pub--libero { border-style: dashed; background: var(--rs-pub-sfondo); color: var(--rs-pub-testo); }
.rs-pub--libero .rs-pub__contenuto { display: flex; flex-direction: column; gap: 4px; }
.rs-pub__link { font-weight: 700; color: var(--rs-pub-testo); }
.rs-pub__link:hover { color: var(--rs-inchiostro); }
.rs-partner--libero { background: transparent; border: 1px dashed var(--rs-verde); }
.rs-partner--libero a { font-weight: 700; }

/* ---------- Attività in zona ---------- */
.rs-filtri { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 16px; background: var(--rs-carta); border-radius: var(--rs-raggio); }
.rs-filtri > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rs-filtri label { font-size: 14px; font-weight: 600; color: var(--rs-grigio); }
.rs-filtri select, .rs-filtri input { width: 100%; min-height: 46px; padding: 0 12px; border: 1px solid var(--rs-linea); border-radius: var(--rs-raggio-piccolo); background: #fff; font: 16px var(--rs-sans); color: var(--rs-inchiostro); }
.rs-filtri .rs-btn { align-self: end; min-height: 46px; }

.rs-att-lista { display: grid; grid-template-columns: 1fr; gap: 10px; }
.rs-att { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 14px 16px; background: var(--rs-carta); border: 1px solid transparent; border-radius: var(--rs-raggio); }
.rs-att--promo { border-color: var(--rs-verde); }
.rs-att__testo { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1 1 240px; }
.rs-att__nome { font-size: 20px; font-weight: 600; }
.rs-att__nome a { color: var(--rs-inchiostro); text-decoration: none; }
.rs-att__nome a:hover { color: var(--rs-verde-scuro); }
.rs-att__dato { display: flex; gap: 6px; align-items: flex-start; margin: 0; font-size: 15px; color: var(--rs-testo2); }
.rs-att__dato svg { width: 16px; height: 16px; margin-top: 3px; flex-shrink: 0; color: var(--rs-verde); }
.rs-att__azioni { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rs-att__azioni .rs-btn { min-height: 42px; font-size: 14px; }

.rs-promo { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: 999px; background: var(--rs-giallo); color: var(--rs-inchiostro); font: 700 13px var(--rs-sans); letter-spacing: 0.4px; text-transform: uppercase; text-decoration: none; }
a.rs-promo { min-height: 42px; padding: 0 16px; }
a.rs-promo:hover { background: #E0A500; color: var(--rs-inchiostro); }

.rs-chip { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rs-chip a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px; background: var(--rs-carta); border: 1px solid var(--rs-linea); color: var(--rs-inchiostro); font-size: 14px; font-weight: 600; text-decoration: none; }
.rs-chip a:hover { border-color: var(--rs-verde); color: var(--rs-verde-scuro); }
.rs-sezione > .rs-btn--bordo { align-self: flex-start; }

.rs-scheda { display: flex; flex-direction: column; gap: 16px; }
.rs-scheda .rs-pagina__titolo { margin-bottom: 0; }
.rs-scheda__dati { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; margin: 0; padding: 16px; background: var(--rs-carta); border-radius: var(--rs-raggio); font-size: 16px; }
.rs-scheda__dati dt { font-weight: 700; color: var(--rs-grigio); }
.rs-scheda__dati dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.rs-scheda__azioni { display: flex; flex-wrap: wrap; gap: 8px; }
.rs-scheda__azioni .rs-btn { flex: 1 1 160px; }
.rs-scheda__titolare { margin: 0; padding: 14px 16px; background: var(--rs-verde-chiaro); border-radius: 12px; font-size: 15px; }
.rs-promo-box { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; padding: 18px 16px; background: var(--rs-pub-sfondo); border: 2px solid var(--rs-giallo); border-radius: var(--rs-raggio); }
.rs-promo-box h2 { font-size: 22px; }
.rs-promo-box p { margin: 0; }
.rs-promo-box .rs-foto { width: 100%; border-radius: 10px; }
.rs-credito-osm { margin: 0; }

/* ---------- Oroscopo in home e in Svago ---------- */
.rs-oroscopo-home { display: flex; flex-direction: column; gap: 10px; padding: 18px 16px; background: var(--rs-carta); border-radius: var(--rs-raggio); }
.rs-oroscopo-home .rs-meta { margin: 0; }
.rs-oroscopo-home .rs-contenuto { font-size: 16px; }
.rs-oroscopo-home .rs-contenuto > * { margin: 0; }

/* ---------- Consigli del giorno ---------- */
.rs-consigli > .rs-meta { margin: 0; }
.rs-consigli__griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.rs-consigli__box { display: flex; flex-direction: column; gap: 10px; padding: 16px; background: var(--rs-carta); border-radius: var(--rs-raggio); }
.rs-consigli__box h3 { font-family: var(--rs-sans); font-size: 15px; font-weight: 600; color: var(--rs-grigio); }
.rs-consigli__box h3 strong { display: block; font-family: var(--rs-serif); font-size: 22px; color: var(--rs-inchiostro); }
.rs-consigli__box ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.rs-consigli__box li { display: flex; flex-direction: column; gap: 2px; padding: 10px 0; border-top: 1px solid var(--rs-linea2); }
.rs-consigli__box li:first-child { border-top: 0; padding-top: 0; }
.rs-consigli__box li .rs-etichetta--partner { align-self: flex-start; }
.rs-consigli__nome { font-weight: 700; color: var(--rs-inchiostro); text-decoration: none; }
.rs-consigli__nome:hover { color: var(--rs-verde-scuro); }
.rs-consigli__dove { font-size: 14px; color: var(--rs-grigio); }
.rs-consigli__tel { font-size: 14px; font-weight: 600; }
.rs-consigli__box--giocare { background: var(--rs-verde-chiaro); }

/* ---------- Giochi ---------- */
.rs-giochi { display: grid; grid-template-columns: 1fr; gap: 16px; }
.rs-gioco { display: flex; flex-direction: column; gap: 10px; padding: 18px 16px; background: var(--rs-carta); border-radius: var(--rs-raggio); min-width: 0; }
.rs-gioco p { margin: 0; }
.rs-gioco__azioni { display: flex; flex-wrap: wrap; gap: 8px; }
.rs-gioco__esito { font-weight: 600; color: var(--rs-verde-scuro); min-height: 1.5em; }
.rs-parola__parola { font: 700 34px/1.1 var(--rs-serif); color: var(--rs-verde-scuro); }
.rs-parola__esempio { font-style: italic; color: var(--rs-testo2); }
.rs-parola .rs-btn { align-self: flex-start; }

.rs-sudoku__griglia { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); width: 100%; max-width: 420px; border: 2px solid var(--rs-inchiostro); }
.rs-sudoku__griglia input { width: 100%; aspect-ratio: 1; min-width: 0; border: 1px solid var(--rs-linea); border-radius: 0; text-align: center; font: 600 20px var(--rs-sans); color: var(--rs-verde-scuro); background: #fff; padding: 0; }
.rs-sudoku__griglia input:nth-child(9n+3), .rs-sudoku__griglia input:nth-child(9n+6) { border-right: 2px solid var(--rs-inchiostro); }
.rs-sudoku__griglia input:nth-child(n+19):nth-child(-n+27), .rs-sudoku__griglia input:nth-child(n+46):nth-child(-n+54) { border-bottom: 2px solid var(--rs-inchiostro); }
.rs-sudoku__griglia input.is-fisso { color: var(--rs-inchiostro); background: var(--rs-linea2); }
.rs-sudoku__griglia input.is-errore, .rs-cruci__cella input.is-errore { color: var(--rs-arancio-scuro); background: var(--rs-arancio-chiaro); }

.rs-cruci__griglia { display: grid; width: 100%; max-width: 520px; gap: 1px; }
.rs-cruci__cella, .rs-cruci__nera { position: relative; aspect-ratio: 1; }
.rs-cruci__cella { background: #fff; outline: 1px solid var(--rs-inchiostro); }
.rs-cruci__cella span { position: absolute; top: 1px; left: 2px; font-size: 9px; font-weight: 700; line-height: 1; color: var(--rs-grigio); pointer-events: none; }
.rs-cruci__cella input { width: 100%; height: 100%; border: 0; padding: 0; text-align: center; text-transform: uppercase; font: 700 15px var(--rs-sans); background: transparent; color: var(--rs-inchiostro); }
.rs-cruci__definizioni h3 { font-family: var(--rs-sans); font-size: 15px; margin: 10px 0 4px; }
.rs-cruci__definizioni ul { list-style: none; margin: 0; padding: 0; font-size: 15px; display: flex; flex-direction: column; gap: 4px; }

.rs-quiz fieldset { margin: 0 0 14px; padding: 0; border: 0; display: flex; flex-direction: column; gap: 6px; }
.rs-quiz legend { font-weight: 700; margin-bottom: 6px; }
.rs-quiz__risposta { min-height: 44px; padding: 8px 12px; text-align: left; border: 1px solid var(--rs-linea); border-radius: 10px; background: #fff; font: 15px var(--rs-sans); color: var(--rs-inchiostro); cursor: pointer; }
.rs-quiz__risposta.is-giusta { border-color: var(--rs-verde); background: var(--rs-verde-chiaro); font-weight: 700; }
.rs-quiz__risposta.is-sbagliata { border-color: var(--rs-arancio); background: var(--rs-arancio-chiaro); }
.rs-quiz__spiega { font-size: 14px; color: var(--rs-testo2); }

/* ---------- Mi piace, link da copiare, detto, numeri utili ---------- */
.rs-mipiace[aria-pressed="true"] { border-color: var(--rs-arancio); color: var(--rs-arancio-scuro); background: var(--rs-arancio-chiaro); }
.rs-mipiace span[aria-hidden] { font-size: 18px; line-height: 1; }
.rs-mipiace__n:empty { display: none; }
.rs-scheda__azioni .rs-condividi { flex: 1 1 260px; }
.rs-copia { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; max-width: 100%; }
.rs-copia__url { padding: 2px 6px; border-radius: 6px; background: var(--rs-linea2); font: 13px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--rs-testo2); overflow-wrap: anywhere; user-select: all; }
.rs-copia__btn { min-height: 32px; padding: 0 10px; border: 1px solid var(--rs-linea); border-radius: 8px; background: #fff; font: 600 13px var(--rs-sans); color: var(--rs-verde-scuro); cursor: pointer; }
.rs-detto { display: flex; flex-direction: column; gap: 8px; padding: 18px 16px; background: var(--rs-verde-chiaro); border-radius: var(--rs-raggio); }
.rs-detto p { margin: 0; }
.rs-detto__detto { font: italic 600 26px/1.2 var(--rs-serif); color: var(--rs-verde-scuro); }
.rs-detto .rs-btn { align-self: flex-start; }
.rs-numeri { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; margin-top: 16px; }
.rs-numeri__box { display: flex; flex-direction: column; gap: 6px; padding: 16px; background: var(--rs-carta); border-radius: var(--rs-raggio); font-size: 16px; }
.rs-numeri__box h2 { font-size: 21px; margin: 0 0 4px; }
.rs-numeri__box p, .rs-numeri__box ul { margin: 0; }
.rs-numeri__box--urgente { background: var(--rs-arancio-chiaro); }
.rs-numero { display: inline-block; padding: 2px 10px; border-radius: 8px; background: var(--rs-verde); color: #fff; font-weight: 700; text-decoration: none; }
.rs-numeri__box--urgente .rs-numero { background: var(--rs-arancio-scuro); font-size: 22px; }
.rs-iscriviti__form { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.rs-iscriviti__form input[type="email"], .rs-iscriviti__form select { flex: 1 1 200px; min-width: 0; min-height: 46px; padding: 0 12px; border: 1px solid #B9C7C2; border-radius: 12px; font: 16px var(--rs-sans); background: #fff; }
.rs-iscriviti__form .rs-check { flex-basis: 100%; font-size: 13px; }
.rs-pagina .rs-numeri, .rs-pagina .rs-modulo { max-width: none; }

/* ---------- Commenti ---------- */
.rs-commenti { display: flex; flex-direction: column; gap: 14px; }
.rs-commenti__titolo { font-size: 26px; }
.rs-commenti__regole { margin: 0; font-size: 14px; color: var(--rs-grigio); }
.rs-lista-commenti, .rs-lista-commenti .children { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.rs-lista-commenti .children { margin-top: 12px; padding-left: 16px; border-left: 3px solid var(--rs-linea); }
.rs-commento { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; background: var(--rs-carta); border-radius: 12px; }
.rs-commento__testa { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 14px; }
.rs-commento__autore { font-weight: 700; }
.rs-commento__testo { font-size: 16px; }
.rs-commento__testo p { margin: 0 0 0.6em; }
.rs-commento__testo p:last-child { margin-bottom: 0; }
.rs-commento__rispondi a { font-size: 14px; font-weight: 600; }
.rs-badge { padding: 1px 7px; border-radius: 6px; font-size: 12px; font-weight: 600; }
.rs-badge--accordo { background: var(--rs-verde-chiaro); color: var(--rs-verde-scuro); }
.rs-badge--neutrale { background: var(--rs-linea2); color: var(--rs-grigio); }
.rs-badge--contrario { background: var(--rs-arancio-chiaro); color: var(--rs-arancio-scuro); }
.rs-nota { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; background: var(--rs-verde-chiaro); border-radius: 10px; font-size: 15px; }
.rs-nota .rs-etichetta { color: var(--rs-verde-scuro); }
.rs-nota p { margin: 0; }
.rs-in-attesa { font-size: 14px; color: var(--rs-grigio); font-style: italic; }

.comment-respond { display: flex; flex-direction: column; gap: 10px; padding: 16px; background: var(--rs-carta); border-radius: var(--rs-raggio); }
.comment-reply-title { font-family: var(--rs-sans); font-size: 17px; font-weight: 700; }
.comment-form { display: flex; flex-direction: column; gap: 12px; }
.comment-form p { margin: 0; display: flex; flex-direction: column; gap: 4px; }
.comment-form label { font-size: 15px; font-weight: 600; }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #C8CED6; border-radius: 12px; font: 16px var(--rs-sans); background: #fff;
}
.comment-form .comment-form-cookies-consent { flex-direction: row; align-items: flex-start; gap: 8px; }
.comment-form .comment-form-cookies-consent label { font-weight: 400; font-size: 14px; }
.comment-form .form-submit { align-items: flex-end; }
.comment-form .submit { min-height: 46px; padding: 0 20px; border: 0; border-radius: var(--rs-raggio-piccolo); background: var(--rs-scuro); color: #fff; font: 700 15px var(--rs-sans); cursor: pointer; }
.comment-notes, .logged-in-as { font-size: 14px; color: var(--rs-grigio); }

.rs-posizione { margin: 0; padding: 0; border: 0; }
.rs-posizione legend { font-size: 15px; font-weight: 600; margin-bottom: 6px; }
.rs-posizione__scelte { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rs-posizione__scelta { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 46px; padding: 0 8px; border: 1px solid var(--rs-linea); border-radius: 12px; font-size: 14px; font-weight: 600; cursor: pointer; }
.rs-posizione__scelta:has(input:checked) { border-color: var(--rs-verde); background: var(--rs-verde-chiaro); }
.rs-posizione__scelta--contrario:has(input:checked) { border-color: var(--rs-arancio); background: var(--rs-arancio-chiaro); }
.rs-posizione__scelta--neutrale:has(input:checked) { border-color: var(--rs-grigio); background: var(--rs-linea2); }

/* ---------- Moduli (Dì la tua) ---------- */
.rs-modulo { display: flex; flex-direction: column; gap: 20px; padding: 18px 16px; background: var(--rs-carta); border-radius: var(--rs-raggio); }
.rs-modulo__gruppo { margin: 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: 8px; }
.rs-modulo legend, .rs-modulo__gruppo > label:first-child { font-size: 16px; font-weight: 700; margin-bottom: 4px; }
.rs-modulo label { font-size: 15px; font-weight: 600; }
.rs-modulo input[type="text"], .rs-modulo input[type="email"], .rs-modulo select, .rs-modulo textarea {
	width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #C8CED6; border-radius: 12px; font: 16px var(--rs-sans); background: #fff; color: var(--rs-inchiostro);
}
.rs-modulo input[type="file"] { font: 15px var(--rs-sans); }
.rs-scelte { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.rs-scelta { display: flex; flex-direction: column; gap: 2px; padding: 12px; border: 1px solid var(--rs-linea); border-radius: 12px; cursor: pointer; font-weight: 400 !important; }
.rs-scelta input { position: absolute; opacity: 0; }
.rs-scelta__nome { font-weight: 700; }
.rs-scelta__aiuto { font-size: 13px; color: var(--rs-grigio); }
.rs-scelta:has(input:checked) { border-color: var(--rs-verde); background: var(--rs-verde-chiaro); }
.rs-scelta:has(input:focus-visible) { outline: 3px solid var(--rs-giallo); outline-offset: 2px; }
.rs-check { display: flex; align-items: flex-start; gap: 10px; font-weight: 400 !important; }
.rs-check input { width: 22px; height: 22px; margin: 0; flex-shrink: 0; }
.rs-aiuto { margin: 0; font-size: 13px; color: var(--rs-grigio); }
.rs-hp { position: absolute; left: -9999px; }
.rs-avviso { padding: 14px 16px; border-radius: 12px; font-size: 15px; margin-bottom: 16px; }
.rs-avviso--ok { background: var(--rs-verde-chiaro); }
.rs-avviso--errore { background: var(--rs-arancio-chiaro); color: var(--rs-arancio-scuro); }
.rs-dopo { margin-top: 16px; padding: 18px 16px; background: var(--rs-carta); border-radius: var(--rs-raggio); }
.rs-dopo h2 { font-size: 22px; margin-bottom: 8px; }
.rs-dopo ol { margin: 0; padding-left: 1.2em; font-size: 15px; }

/* ---------- Oroscopo (articoli con tag "oroscopo") ---------- */
.rs-oroscopo { display: flex; flex-direction: column; gap: 12px; }
.rs-oroscopo__segni { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.rs-oroscopo__segni button { min-height: 44px; padding: 0 4px; border: 1px solid var(--rs-linea); border-radius: 10px; background: #fff; font: 600 13px var(--rs-sans); color: var(--rs-inchiostro); cursor: pointer; }
.rs-oroscopo__segni button[aria-pressed="true"] { border-color: var(--rs-verde); background: var(--rs-verde); color: #fff; }
.rs-oroscopo__testo { display: flex; flex-direction: column; gap: 8px; padding: 14px; background: var(--rs-verde-chiaro); border-radius: 12px; }
.rs-oroscopo__testo h3 { font-family: var(--rs-sans); font-size: 13px; text-transform: uppercase; color: var(--rs-verde-scuro); }
.rs-oroscopo__testo p { margin: 0; }

/* ---------- Archivi e paginazione ---------- */
.rs-archivio__testa { display: flex; flex-direction: column; gap: 6px; }
.rs-archivio__titolo { font-size: 32px; font-weight: 700; }
.rs-archivio__descr { margin: 0; color: var(--rs-grigio); }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.nav-links .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; border-radius: 10px; background: var(--rs-carta); color: var(--rs-inchiostro); text-decoration: none; font-weight: 600; }
.nav-links .current { background: var(--rs-inchiostro); color: #fff; }

/* ---------- Piede ---------- */
.rs-footer { background: var(--rs-scuro); color: var(--rs-scuro-testo); font-size: 14px; padding: 32px 0 110px; }
.rs-footer__griglia { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; }
.rs-footer__logo { font-family: var(--rs-serif); font-size: 28px; font-weight: 700; color: #fff; }
.rs-footer__logo span { color: var(--rs-verde-luce); }
.rs-footer p { margin: 8px 0 0; }
.rs-footer h2 { font-family: var(--rs-sans); font-size: 14px; font-weight: 700; color: #fff; margin-bottom: 8px; }
.rs-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.rs-footer a { color: var(--rs-scuro-testo); }
.rs-footer a:hover { color: #fff; }

/* Pulsante fisso "Dì la tua" sul telefono */
.rs-fab {
	position: fixed; left: 50%; bottom: max(14px, env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 50;
	display: inline-flex; align-items: center; gap: 8px; min-height: 50px; padding: 0 22px;
	border-radius: 999px; background: var(--rs-giallo); color: var(--rs-inchiostro);
	font: 700 16px var(--rs-sans); text-decoration: none; box-shadow: 0 6px 18px rgba(20, 24, 31, 0.25);
}
.rs-fab svg { width: 20px; height: 20px; }
.rs-fab:hover { color: var(--rs-inchiostro); }

/* ---------- Computer ---------- */
@media (min-width: 768px) {
	.rs-wrap { padding: 0 24px; }
	.rs-logo { font-size: 48px; letter-spacing: -1px; }
	.rs-filtri { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; align-items: end; }
	.rs-att-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rs-giochi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rs-giochi .rs-cruci { grid-row: span 2; }
	.rs-oroscopo-home { padding: 24px; }
	.rs-tagline { font-size: 15px; }
	.rs-header__riga { padding-top: 24px; padding-bottom: 16px; }
	.rs-header__azioni { width: auto; flex-wrap: nowrap; }
	.rs-quartiere { flex: 0 1 auto; }
	.rs-header__cta { display: inline-flex; }
	.rs-nav ul { flex-wrap: wrap; overflow: visible; padding: 0 24px; gap: 4px 22px; max-width: 1200px; margin: 0 auto; }
	.rs-nav a { min-height: 46px; padding: 0; border-radius: 0; background: none; border-bottom: 3px solid transparent; font-size: 15px; }
	.rs-nav .current-menu-item > a, .rs-nav .current-cat > a, .rs-nav a[aria-current="page"] { background: none; color: var(--rs-inchiostro); border-bottom-color: var(--rs-verde); }
	.rs-cerca { padding: 0 24px 12px; }
	.rs-main { padding: 24px 0 48px; }
	.rs-main > .rs-wrap { gap: 32px; }
	.rs-box { padding: 20px; }
	.rs-card--apertura .rs-card__corpo { padding: 24px; gap: 10px; }
	.rs-card--apertura .rs-card__titolo { font-size: 40px; }
	.rs-card--apertura .rs-card__riassunto { font-size: 18px; }
	.rs-sezione__titolo { font-size: 30px; }
	.rs-griglia { gap: 24px; }
	.rs-scuro { padding: 24px; }
	.rs-iscriviti { padding: 28px; }
	.rs-articolo__titolo { font-size: 46px; }
	.rs-opinioni { padding: 24px; }
	.rs-modulo { padding: 24px; }
	.rs-fab { display: none; }
	.rs-footer { padding-bottom: 40px; }
}
