/* Lo stile comune delle PAGINE AUTONOME del sito: guide, documenti legali, e via via le
   altre man mano che escono da `index.html`. Poche righe — colori, caratteri, intestazione
   e piede — perché il resto lo mette il foglio della singola pagina.
   ⚠️ NON riusa lo stile di index.html: quel file pesa 708 KB perché contiene tutta
   l'applicazione, e caricarlo per leggere una pagina di testo sarebbe il difetto che queste
   pagine servono a evitare.
   ⚠️⚠️ Intestazione e piede sono una COPIA delle regole del sito, non un riuso: gli
   originali stanno DENTRO index.html (CSS in linea). Vanno tenuti allineati a mano, e la
   marcatura gemella sta in `_testa_sito()` e `_piede_sito()` in `app/main.py`. */
/* ⚠️⚠️ I VALORI SONO QUELLI DI `index.html`, alla virgola. Tre erano diversi —
   `--line` a .12 invece di .09, `--faint` #8b9ba0 invece di #8aa0a5, `--brand-soft` a .10
   invece di .12 — ed è bastato per far uscire i bordi delle sezioni di un grigio più
   scuro: il confronto pixel per pixel di /agenzie prima e dopo li ha trovati come righe
   intere diverse. Un colore «quasi uguale» qui vale un sito che non è più lo stesso. */
:root {
  --brand: #2f97b3;
  --brand-ink: #0b5f78;
  --brand-soft: rgba(47,151,179,.12);
  --ink: #1c2f36;
  --muted: #5a6d73;
  --faint: #8aa0a5;
  --line: rgba(28,47,54,.09);
  --bg: #edefee;
  --card: #ffffff;
  --card-soft: #f4f7f7;      /* riquadri interni alle card */
  --serif: 'Spectral', Georgia, 'Times New Roman', serif;
  --sans: 'Hanken Grotesk', system-ui, -apple-system, sans-serif;
}
* { box-sizing: border-box; }
/* ⚠️ Misure IDENTICHE a quelle di `index.html`: 16px e 1.5. Erano 17px e 1.65 — le
   misure da lettura nate per le guide — e su /agenzie spostavano in basso ogni riga
   che non avesse una misura sua, per 49px a fondo pagina. Chi vuole il testo più largo
   se lo prende nel proprio foglio, come fa `guide.css`. */
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--sans);
  font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
/* ⚠️⚠️ Il contenitore di pagina, identico a quello di `index.html`, e NON si può togliere:
   le strisce di case del piede escono dai bordi di proposito, e a contenerle dev'essere
   QUESTO, non il <body>. Su `body` l'`overflow-x` viene propagato al viewport: invece di
   ritagliare allarga il documento, e il risultato — visto il 01/09/2026 su tablet e
   portatili — è la pagina schiacciata a sinistra con una fascia vuota a destra, e sul
   telefono il menu a scomparsa (`position: fixed; right: 0`) che si apre fuori schermo. */
.lp-pagina { position: relative; width: 100%; overflow-x: clip; }

/* ⚠️ Ricopiata dal sito, dove è una regola sul TAG: colora di grigio tutto il piede,
   marchio compreso. Senza, il «TrueDomus» in fondo veniva nero invece che grigio — il
   confronto pixel per pixel con la pagina di prima l'ha trovato in 430 pixel. */
footer { text-align: center; color: var(--muted); font-size: 12px; margin-top: 30px; }
.logo { font-family: var(--serif); font-weight: 600; font-size: 34px; letter-spacing: -.02em; }
.logo span { color: var(--brand); }
.site-head { position: sticky; top: 0; z-index: 50; background: rgba(237,239,238,.86);
  backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.site-head .inner { max-width: 1160px; margin: 0 auto; display: flex; align-items: center;
  justify-content: space-between; gap: 16px; padding: 14px 28px; }
/* ⚠️ Nel sito il marchio è un <div> mosso dal JS; qui è un collegamento vero alla home,
   quindi gli va tolta la veste da link. */
.site-head .logo { font-size: 26px; color: var(--ink); text-decoration: none; }
.site-nav { display: flex; gap: 26px; font-size: 13.5px; color: var(--muted); }
.site-nav a { color: inherit; text-decoration: none; cursor: pointer; }
.site-nav a:hover { color: var(--brand); }
/* La voce della pagina in cui ci si trova, accesa con la sua sottolineatura.
   ⚠️ Ricopiate da `index.html`: là la classe la mette `segnaVoceAttiva()` a ogni
   cambio di vista, qui la scrive il server, perché la pagina è una sola e non cambia. */
.site-nav a.attiva { color: var(--brand); position: relative; }
.site-nav a.attiva::after { content: ""; position: absolute; left: 0; right: 0; bottom: -7px;
  height: 2px; border-radius: 2px; background: var(--brand); }
.btn-menu { display: none; background: transparent; border: 1px solid var(--line);
  color: var(--ink); border-radius: 9px; width: 38px; height: 38px; cursor: pointer;
  align-items: center; justify-content: center; font-size: 20px; padding: 0; }
/* Il pannello degli schermi stretti: fisso al viewport e agganciato a destra, si appoggia
   sotto l'intestazione (che è sticky) senza spostare di un pixel ciò che c'è sotto. */
.menu-mobile { display: none; position: fixed; top: 0; right: 0; z-index: 60;
  width: max-content; max-width: calc(100vw - 24px);
  flex-direction: column; gap: 2px; padding: 8px 18px 14px; text-align: right;
  background: rgba(237,239,238,.86); backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px); border: 1px solid var(--line); border-top: none;
  border-radius: 0 0 0 14px; box-shadow: 0 18px 40px rgba(0,0,0,.16); }
.menu-mobile a { color: var(--ink); text-decoration: none; font-size: 15px; font-weight: 600;
  padding: 12px 0; cursor: pointer; border-bottom: 1px solid var(--line); }
.menu-mobile a:last-of-type { border-bottom: none; }
.menu-mobile a.attiva { color: var(--brand); border-bottom: 2px solid var(--brand); }
.menu-mobile .btn-accedi { display: block; margin-top: 10px; width: 100%;
  font-size: 14px; padding: 11px 17px; }
/* ⚠️ Nel sito «Accedi» è un <button>; qui è un <a> che porta alla home col modulo aperto,
   perché l'accesso vive nell'applicazione. Da qui `display` e `text-decoration`. */
.btn-accedi { display: inline-block; font-size: 13px; padding: 8px 17px; background: var(--brand);
  border: none; color: #fff; text-decoration: none; text-align: center; border-radius: 9px;
  cursor: pointer; font-family: inherit; font-weight: 600;
  /* ⚠️ `line-height: normal` perché qui il bottone è un <a> e nel sito è un <button>:
     un <button> non eredita l'interlinea del corpo, un <a> sì, e il bottone veniva un
     pixel più alto. Trovato confrontando /privacy con la versione di prima. */
  line-height: normal; }
.btn-accedi:hover { background: var(--brand-ink); color: #fff; }
/* Chi è collegato: al posto di «Accedi» compare il suo nome, che può essere lungo.
   ⚠️ Ricopiata da `index.html` (là è su `#btn-accedi.collegato`, un <button>; qui il
   bottone è un <a> che porta all'area privata). Senza, un nome lungo allargherebbe la
   barra e spingerebbe fuori le voci di menu. */
.btn-accedi.collegato { max-width: 190px; overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap; }
@media (max-width: 700px) {
  .site-nav { display: none !important; }
  .btn-menu { display: flex; }
  .inner > .btn-accedi { display: none; }         /* resta quello dentro il pannello */
  .menu-mobile.aperto { display: flex; }
}
/* La fascia dei tablet: il menu in riga c'è ancora (l'hamburger arriva solo sotto i 700px),
   ma cinque voci più il marchio e il bottone non ci stanno più. Il carattere si stringe e
   le voci restano su una riga sola. */
@media (min-width: 701px) and (max-width: 900px) {
  .site-nav { gap: 14px; font-size: 12px; }
  .site-nav a { white-space: nowrap; }
  .site-head .inner { padding: 16px 18px; }
}

/* ── Il cappello della pagina: occhiello + sottotitolo, come nella home ────────── */
.lp-cappello { text-align: center; margin: 0 0 38px; }
.lp-occhiello { font-size: 16px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--brand); font-weight: 700; margin: 0 0 12px; }
.lp-h2 { font-family: var(--serif); font-weight: 500; font-size: 34px; letter-spacing: -.02em;
  line-height: 1.15; margin: 0 auto; max-width: 560px; }
@media (max-width: 700px) { .lp-h2 { font-size: 27px; } }

/* ── Piede: le regole del sito, ricopiate (vedi l'avviso in cima) ──────────────── */
.lp-decoro { position: relative; }
.lp-decoro > img { position: absolute; bottom: 0; pointer-events: none;
  user-select: none; z-index: 0; max-width: none; }
.lp-decoro > *:not(img) { position: relative; z-index: 1; }
.lp-piede { max-width: 1160px; margin: 0 auto; padding: 40px 28px 140px; text-align: center; }
.lp-piede .logo { font-size: 26px; margin-bottom: 10px; }
.lp-piede p { font-size: 12.5px; color: var(--faint); margin: 0 auto; max-width: 460px; line-height: 1.5; }
/* ⚠️ Sottolineati SEMPRE, non solo al passaggio del mouse: senza, sembrano testo grigio
   e non collegamenti — e sul telefono, dove il passaggio del mouse non esiste, non c'era
   nessun modo di capirlo. Segnalato dall'utente il 01/09/2026.
   `text-underline-offset` stacca la riga dalle lettere: attaccata, a 12,5px si legge male. */
.lp-piede .lp-legale { margin-top: 14px; font-size: 12.5px; }
.lp-piede .lp-legale a { color: var(--muted); text-decoration: underline;
  text-underline-offset: 3px; text-decoration-thickness: 1px;
  text-decoration-color: rgba(90,109,115,.45); }
.lp-piede .lp-legale a:hover { color: var(--brand-ink); text-decoration-color: currentColor; }
/* ⭐ Il rimando alle agenzie è un BOTTONE, non una riga di testo: è l'unico invito del
   piede rivolto a qualcuno in particolare, e chiedeva di essere premuto. Contorno e non
   pieno: nel piede un bottone pieno peserebbe più del marchio che gli sta sopra. */
.lp-piede .lp-agenzie { margin-top: 18px; }
.lp-piede .lp-agenzie a { display: inline-block; color: var(--brand); font-weight: 600;
  text-decoration: none; font-size: 13px; line-height: 1; padding: 11px 20px;
  border: 1px solid var(--brand); border-radius: 999px; transition: background .15s; }
.lp-piede .lp-agenzie a:hover { background: var(--brand); color: #fff; text-decoration: none; }
/* ⚠️ Riga di attribuzione DOVUTA per licenza: la stessa dimensione e lo stesso colore
   della riga sopra, perché LocationIQ chiede un link prominente. */
.lp-piede .lp-lic { margin-top: 14px; max-width: 640px; }
.lp-piede .lp-lic a { color: inherit; text-decoration: underline; }
/* Sui tablet le due strisce pendono a destra: sono posizionate con misure da desktop.
   `!important` perché left e margin sono scritti in linea sulle <img>, come nel sito. */
@media (min-width: 701px) and (max-width: 900px) {
  .lp-piede > img.deco-tetti { margin-left: 90px !important; }
  .lp-piede > img.deco-via { left: -662px !important; }
}
@media (max-width: 700px) {
  .lp-decoro > img.deco-via { display: none; }
  .lp-decoro > img.deco-resta { opacity: .9; left: 50% !important; right: auto !important;
    bottom: 0 !important; top: auto !important; transform: translateX(-50%) !important; }
  .lp-decoro > img.deco-tetti { width: 608px !important; height: 123px !important;
    transform: translateX(calc(-50% - 200px)) !important; }
}

