:root {
  /* Azzurro ripreso dal vecchio sito D6 (sites/all/themes/psico/style.css: #0B92DA/#086BA0),
     scurito leggermente per il testo/logo cosi' da avere piu' contrasto (AA) su sfondo chiaro. */
  --bg: #F6F9FB;
  --bg-card: #FFFFFF;
  --fg: #101820;
  --fg-muted: #5C7080;
  --fg-faint: #8A99A8;
  --accent: #0B92DA;
  --accent-dark: #06699E;
  --accent-ink: #075E8F; /* per testo su sfondo chiaro: stesso hue, piu' scuro per contrasto */
  --accent-soft: #EAF5FC;
  --gold: #A9752B;
  --gold-soft: #FBF1DE;
  --border: #E1E8EE;
  --border-strong: #C7D4DE;
  --shadow-sm: 0 1px 2px rgba(16,24,32,0.06);
  --shadow-md: 0 8px 24px rgba(16,24,32,0.08);
  --shadow-lg: 0 16px 40px rgba(16,24,32,0.12);
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-pill: 999px;

  /* Scala spaziale 8px — ogni margin/padding del tema usa una di queste. */
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 24px;
  --sp-6: 32px; --sp-7: 48px; --sp-8: 64px; --sp-9: 96px;

  /* Scala tipografica (rapporto ~1.25), fluida sui titoli principali. */
  --fs-sm: 14px; --fs-base: 16px; --fs-md: 18px;
  --fs-lg: clamp(20px, 2vw, 24px);
  --fs-xl: clamp(26px, 3vw, 32px);
  --fs-2xl: clamp(34px, 5vw, 48px);

  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
/* Icone Font Awesome inline (sostituiscono le emoji, incoerenti tra sistemi/browser): un
   margine destro comune, cosi' nel markup non serve gestire uno spazio manuale ogni volta. */
.psico-profile-luogo i, .psico-cta-block i, .psico-address-list li i, .psico-card-luogo i, .psico-card-name i { margin-right: 6px; color: var(--fg-faint); }
.psico-cta-block i { color: inherit; }
html { scroll-behavior: smooth; }
/* Il tema padre a blocchi (Twenty Twenty-Five) impone font-weight:300 e letter-spacing:-0.1px sul
   tag <body> nudo (vedi global-styles-inline-css, generato dal suo theme.json) — mai dichiarati
   qui prima d'ora, quindi "ereditati" per tutto il testo del sito che non ha un font-weight
   proprio (paragrafi, dd, hint, FAQ...), rendendolo visivamente sottile/fragile invece del peso
   normale previsto dal design. Ridichiarati esplicitamente per togliere qualunque dipendenza dal
   tema padre, stesso principio del fix sulla pagina di login. */
body.psico { background: var(--bg); color: var(--fg); font-family: var(--font-body); font-size: var(--fs-base); font-weight: 400; letter-spacing: normal; margin: 0; line-height: 1.55; -webkit-font-smoothing: antialiased; }
a { color: var(--accent-ink); }
.psico-wrap { max-width: 1120px; margin: 0 auto; padding: 0 var(--sp-5); }

/* ---------- Header ---------- */
.psico-header { background: rgba(255,255,255,0.92); backdrop-filter: saturate(180%) blur(8px); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 10; }
.psico-header-inner { display: flex; align-items: center; justify-content: space-between; padding: var(--sp-4) var(--sp-5); max-width: 1120px; margin: 0 auto; gap: var(--sp-5); }
.psico-logo { font-family: var(--font-serif); font-size: 21px; font-weight: 700; letter-spacing: -0.01em; text-decoration: none; color: var(--fg); white-space: nowrap; }
.psico-logo span { color: var(--accent-ink); }
.psico-nav { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2) var(--sp-5); }
.psico-nav a { color: var(--fg-muted); text-decoration: none; font-size: var(--fs-sm); font-weight: 500; transition: color 0.15s; }
.psico-nav a:hover { color: var(--accent-ink); }

.psico-nav-toggle { display: none; flex: none; width: 40px; height: 40px; border: none; background: transparent; cursor: pointer; padding: 0; flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
.psico-nav-toggle span { display: block; width: 22px; height: 2px; background: var(--fg); transition: transform 0.2s, opacity 0.2s; }
.psico-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.psico-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.psico-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 860px) {
  .psico-header-inner { position: relative; }
  .psico-nav-toggle { display: flex; }
  .psico-nav {
    position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--bg-card); border-bottom: 1px solid var(--border); box-shadow: var(--shadow-md);
    max-height: 0; overflow: hidden; opacity: 0; pointer-events: none;
    transition: max-height 0.2s ease, opacity 0.15s ease;
  }
  .psico-nav.is-open { max-height: 420px; opacity: 1; pointer-events: auto; }
  .psico-nav a { padding: 14px var(--sp-5); border-bottom: 1px solid var(--border); font-size: 15px; }
  .psico-nav a:last-child { border-bottom: none; }
}

/* ---------- Hero / ricerca ---------- */
.psico-hero {
  background:
    radial-gradient(60% 100% at 50% 0%, var(--accent-soft) 0%, transparent 70%),
    var(--bg);
  padding: var(--sp-9) var(--sp-5) var(--sp-7);
  text-align: center;
}
.psico-hero h1 {
  font-family: var(--font-serif); font-weight: 600;
  font-size: var(--fs-2xl); line-height: 1.15; letter-spacing: -0.01em;
  margin: 0 0 var(--sp-6); color: var(--fg);
  max-width: 720px; margin-left: auto; margin-right: auto;
}
.psico-hero p.sub { color: var(--fg-muted); font-size: var(--fs-md); line-height: 1.6; max-width: 560px; margin: calc(-1 * var(--sp-4)) auto var(--sp-6); }

.psico-search-form {
  max-width: 620px; margin: 0 auto; display: flex; align-items: center; gap: var(--sp-2);
  background: var(--bg-card); padding: var(--sp-2); border-radius: var(--radius-pill);
  box-shadow: var(--shadow-lg); border: 1px solid var(--border);
}
.psico-search-form .psico-search-icon { flex: none; width: 20px; height: 20px; margin-left: var(--sp-3); color: var(--fg-faint); }
.psico-search-form input[type=text] { flex: 1; border: none; background: transparent; padding: var(--sp-4) var(--sp-2); font-size: var(--fs-md); outline: none; color: var(--fg); min-width: 0; }
.psico-search-form input[type=text]::placeholder { color: var(--fg-faint); }
.psico-search-form button { background: var(--accent); color: #fff; border: none; border-radius: var(--radius-pill); padding: var(--sp-4) var(--sp-6); font-size: var(--fs-sm); font-weight: 600; cursor: pointer; transition: background 0.15s; }
.psico-search-form button:hover { background: var(--accent-dark); }
.psico-search-hint { color: var(--fg-faint); font-size: 13px; margin: var(--sp-4) 0 0; }

/* Chip regioni sotto la ricerca */
.psico-chip-row { display: flex; flex-wrap: wrap; gap: var(--sp-2); justify-content: center; margin-top: var(--sp-6); max-width: 720px; margin-left: auto; margin-right: auto; }
.psico-chip { display: inline-flex; align-items: center; gap: 5px; padding: 7px 16px; border-radius: var(--radius-pill); background: var(--bg-card); border: 1px solid var(--border); color: var(--fg); text-decoration: none; font-size: 13px; font-weight: 500; transition: border-color 0.15s, color 0.15s, box-shadow 0.15s; }
.psico-chip:hover { border-color: var(--accent); color: var(--accent-ink); box-shadow: var(--shadow-sm); }
.psico-chip .n { color: var(--fg-faint); font-weight: 400; }

/* ---------- Sezioni generiche ---------- */
.psico-section { padding: var(--sp-7) var(--sp-5); }
.psico-section h1 { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-xl); letter-spacing: -0.01em; margin: 0 0 var(--sp-5); }
.psico-section h2 { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-lg); letter-spacing: -0.005em; margin: var(--sp-6) 0 var(--sp-4); }
.psico-section h2:first-child { margin-top: 0; }

/* ---------- Numeri di fiducia (home) ---------- */
.psico-stats-row { display: flex; justify-content: center; gap: var(--sp-8); margin-top: var(--sp-7); flex-wrap: wrap; }
.psico-stat { text-align: center; }
.psico-stat strong { display: block; font-family: var(--font-serif); font-size: var(--fs-xl); color: var(--accent-ink); line-height: 1; }
.psico-stat span { display: block; margin-top: 4px; color: var(--fg-muted); font-size: 13px; }

/* ---------- Come funziona (home) ---------- */
.psico-come-funziona { max-width: 900px; margin: 0 auto var(--sp-8); }
.psico-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--sp-6); margin-top: var(--sp-6); }
.psico-step { text-align: center; }
.psico-step-num { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--accent); color: #fff; font-family: var(--font-serif); font-weight: 700; font-size: 16px; margin-bottom: var(--sp-3); }
.psico-step h3 { font-size: var(--fs-md); margin: 0 0 var(--sp-2); }
.psico-step p { color: var(--fg-muted); font-size: 14px; line-height: 1.6; margin: 0; }

/* ---------- FAQ (home) — <details>/<summary> nativi, funzionano anche senza JS */
.psico-faq { max-width: 720px; margin: 0 auto; }
.psico-faq-list { margin-top: var(--sp-6); display: flex; flex-direction: column; gap: var(--sp-3); }
.psico-faq-item { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--sp-4) var(--sp-5); }
.psico-faq-item summary { cursor: pointer; font-weight: 600; list-style: none; }
.psico-faq-item summary::-webkit-details-marker { display: none; }
.psico-faq-item summary::after { content: '+'; float: right; color: var(--accent); font-weight: 700; }
.psico-faq-item[open] summary::after { content: '−'; }
.psico-faq-item p { color: var(--fg-muted); font-size: 14px; line-height: 1.6; margin: var(--sp-3) 0 0; }

/* ---------- Griglia card ---------- */
.psico-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--sp-5); }
.psico-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--sp-5); text-decoration: none; color: var(--fg); display: block; position: relative; transition: box-shadow 0.18s ease, transform 0.18s ease, border-color 0.18s ease; }
.psico-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); border-color: var(--border-strong); }
.psico-card-photo { width: 68px; height: 68px; border-radius: 50%; object-fit: cover; background: var(--accent-soft); margin-bottom: var(--sp-4); border: 1px solid var(--border); flex: none; }
/* Segnaposto senza foto (circa 170 profili su 411 non ne hanno mai avuta una): un cerchio
   completamente vuoto sembra un avatar "rotto"/non caricato. Un'iniziale del nome dentro il
   cerchio comunica subito che e' un placeholder intenzionale, non un errore. */
div.psico-card-photo { display: flex; align-items: center; justify-content: center; font-family: var(--font-serif); font-weight: 600; font-size: 24px; color: var(--accent); }
.psico-card-name { font-weight: 700; font-size: var(--fs-md); margin: 0 0 3px; letter-spacing: -0.005em; }
.psico-card-qualifica { color: var(--fg-muted); font-size: 13px; margin: 0 0 var(--sp-2); }
.psico-card-luogo { color: var(--fg-faint); font-size: 13px; }
.psico-card-excerpt { display: none; color: var(--fg-muted); font-size: 14px; line-height: 1.5; margin: var(--sp-2) 0 0; }
.psico-tag--overflow { display: none; }
.psico-badge { display: inline-block; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; padding: 4px 10px; border-radius: var(--radius-pill); position: absolute; top: var(--sp-4); right: var(--sp-4); }
.psico-badge--evidenza { background: var(--gold); color: #fff; }
.psico-badge--avanzato { background: var(--accent); color: #fff; }

/* Card "in evidenza" (posizionamento a pagamento): bordo e sfondo dorato tenue per distinguerle
   dal resto — orizzontale, indipendente dalla posizione nella griglia sotto. */
.psico-card--evidenza { background: var(--gold-soft); border-color: #E9D3A5; }
.psico-card--evidenza:hover { border-color: var(--gold); }

/* ---------- Griglia editoriale ---------- */
/* Ritmo fisso, si ripete ogni 6 card: 1 grande (riga intera) → 3 medie → 2 grandi. Sostituisce
   la griglia uniforme di prima (tutte le card identiche) su ogni elenco del sito — un'unica
   regola, mai una card scritta apposta per una posizione. Chi e' ordinato per primo (chi paga,
   vedi psico_scheda_query_ordinata) finisce nella posizione "hero": prominenza vera, non solo
   un colore diverso, e risolve anche il vecchio problema della sezione "in evidenza" con un
   solo elemento (span:6 riempie comunque tutta la riga, nessun vuoto fantasma). */
.psico-grid--editorial { grid-template-columns: repeat(6, 1fr); }
.psico-grid--editorial .psico-card:nth-of-type(6n+2),
.psico-grid--editorial .psico-card:nth-of-type(6n+3),
.psico-grid--editorial .psico-card:nth-of-type(6n+4) { grid-column: span 2; }
.psico-grid--editorial .psico-card:nth-of-type(6n+5),
.psico-grid--editorial .psico-card:nth-of-type(6n+6) { grid-column: span 3; }
.psico-grid--editorial .psico-card:nth-of-type(6n+5) .psico-card-photo,
.psico-grid--editorial .psico-card:nth-of-type(6n+6) .psico-card-photo { width: 84px; height: 84px; }

.psico-grid--editorial .psico-card:nth-of-type(6n+1) {
  grid-column: span 6;
  display: flex;
  align-items: center;
  gap: var(--sp-6);
  padding: var(--sp-6);
}
.psico-grid--editorial .psico-card:nth-of-type(6n+1) .psico-card-photo { width: 128px; height: 128px; margin-bottom: 0; }
.psico-grid--editorial .psico-card:nth-of-type(6n+1) div.psico-card-photo { font-size: 40px; }
.psico-grid--editorial .psico-card:nth-of-type(6n+1) .psico-card-body { flex: 1; min-width: 0; }
.psico-grid--editorial .psico-card:nth-of-type(6n+1) .psico-card-name { font-size: var(--fs-lg); }
.psico-grid--editorial .psico-card:nth-of-type(6n+1) .psico-card-qualifica { font-size: 14px; }
.psico-grid--editorial .psico-card:nth-of-type(6n+1) .psico-card-excerpt { display: block; }
.psico-grid--editorial .psico-card:nth-of-type(6n+1) .psico-tag--overflow { display: inline-flex; }
.psico-grid--editorial .psico-card:nth-of-type(6n+1) .psico-tag--more { display: none; }

@media (max-width: 860px) {
  .psico-grid--editorial .psico-card:nth-of-type(n) { grid-column: span 3; }
  .psico-grid--editorial .psico-card:nth-of-type(6n+1) { grid-column: span 6; }
}
@media (max-width: 560px) {
  .psico-grid--editorial .psico-card:nth-of-type(n) { grid-column: span 6; display: block; padding: var(--sp-5); }
  .psico-grid--editorial .psico-card:nth-of-type(6n+1) .psico-card-photo { width: 68px; height: 68px; margin-bottom: var(--sp-4); }
  .psico-grid--editorial .psico-card:nth-of-type(6n+1) div.psico-card-photo { font-size: 24px; }
  .psico-grid--editorial .psico-card:nth-of-type(6n+1) .psico-card-name { font-size: var(--fs-md); }
}

/* ---------- Filtri laterali ---------- */
.psico-layout { display: grid; grid-template-columns: 232px 1fr; gap: var(--sp-6); align-items: start; }
.psico-filters { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--sp-5); position: sticky; top: 88px; }
.psico-filters h3 { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--fg-faint); margin: 0 0 var(--sp-3); }
.psico-filters h3:not(:first-child) { margin-top: var(--sp-5); }
.psico-filters ul { list-style: none; margin: 0; padding: 0; }
.psico-filters li { margin-bottom: 2px; }
.psico-filters a { display: block; text-decoration: none; color: var(--fg-muted); font-size: 14px; padding: 6px 8px; margin: 0 -8px; border-radius: var(--radius-sm); transition: background 0.15s, color 0.15s; }
.psico-filters a:hover { color: var(--accent-ink); background: var(--accent-soft); }
.psico-filters .active { color: var(--accent-ink); font-weight: 700; background: var(--accent-soft); }
/* .psico-filters a sopra vince per specificita' su .psico-btn (stessa specificita' ma piu' vecchia
   nel file) e gli cancella colore/padding/pill — bottone risultava testo blu-grigio su sfondo blu,
   illeggibile. Reimpostiamo qui le proprieta' del bottone con specificita' piu' alta. */
.psico-filters a.psico-btn, .psico-filters a.psico-btn:hover { display: inline-flex; color: #fff; padding: 12px 24px; margin: 0; border-radius: var(--radius-pill); }
.psico-filters a.psico-btn:hover { background: var(--accent-dark); }
@media (max-width: 800px) { .psico-layout { grid-template-columns: 1fr; } .psico-filters { position: static; } }

/* ---------- Layout blog (contenuto a sinistra, sidebar stretta a destra — ordine invertito
   rispetto a .psico-layout, che ha i filtri stretti a sinistra) ---------- */
.psico-layout--blog { grid-template-columns: 1fr 280px; }
@media (max-width: 800px) { .psico-layout--blog { grid-template-columns: 1fr; } }

/* ---------- Testata "PsicologoPer Magazine" ---------- */
.psico-mag-masthead { text-align: center; margin-bottom: var(--sp-7); }
.psico-mag-kicker { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; color: var(--fg-faint); margin: 0 0 4px; }
.psico-mag-brand { font-family: var(--font-serif); font-weight: 700; font-size: clamp(30px, 4vw, 44px); letter-spacing: -0.01em; margin: 0 0 var(--sp-5); padding-bottom: var(--sp-5); border-bottom: 3px double var(--border-strong); }

/* ---------- Griglia magazine ---------- */
/* Stesso ritmo editoriale della griglia psicologi (vedi sopra): ogni 6 articoli, 1 grande in
   evidenza (span 6, orizzontale, estratto visibile) poi 3 medie poi 2 grandi — niente logica
   per-posizione in PHP, solo nth-of-type. */
.psico-mag-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--sp-6); }
.psico-mag-item { display: block; text-decoration: none; grid-column: span 2; }
.psico-mag-thumb-link { display: block; }
.psico-mag-thumb { width: 100%; height: 140px; object-fit: cover; border-radius: var(--radius-md); background: var(--accent-soft); display: block; margin-bottom: var(--sp-3); }
.psico-mag-thumb--placeholder { display: flex; align-items: center; justify-content: center; color: var(--accent); font-size: 26px; }
.psico-mag-item-title { font-family: var(--font-serif); font-size: var(--fs-md); font-weight: 600; margin: 0 0 6px; line-height: 1.3; }
.psico-mag-item-title a { color: var(--fg); text-decoration: none; }
.psico-mag-item-title a:hover { color: var(--accent-ink); }
.psico-mag-meta { font-size: 13px; color: var(--fg-faint); margin: 0 0 var(--sp-2); }
.psico-mag-meta a { color: var(--fg-faint); }
.psico-mag-meta a:hover { color: var(--accent-ink); }
.psico-mag-excerpt { display: none; font-size: 14.5px; color: var(--fg-muted); line-height: 1.6; margin: 0; }

.psico-mag-item:nth-of-type(6n+5), .psico-mag-item:nth-of-type(6n+6) { grid-column: span 3; }
.psico-mag-item:nth-of-type(6n+5) .psico-mag-thumb, .psico-mag-item:nth-of-type(6n+6) .psico-mag-thumb { height: 170px; }

.psico-mag-item:nth-of-type(6n+1) {
  grid-column: span 6;
  display: flex;
  gap: var(--sp-6);
  align-items: center;
}
.psico-mag-item:nth-of-type(6n+1) .psico-mag-thumb-link { flex: none; width: 340px; }
.psico-mag-item:nth-of-type(6n+1) .psico-mag-thumb { height: 220px; margin-bottom: 0; }
.psico-mag-item:nth-of-type(6n+1) .psico-mag-body { flex: 1; min-width: 0; }
.psico-mag-item:nth-of-type(6n+1) .psico-mag-item-title { font-size: var(--fs-xl); }
.psico-mag-item:nth-of-type(6n+1) .psico-mag-excerpt { display: block; }

@media (max-width: 860px) {
  .psico-mag-item:nth-of-type(n) { grid-column: span 3; }
  .psico-mag-item:nth-of-type(6n+1) { grid-column: span 6; }
}
@media (max-width: 560px) {
  .psico-mag-item:nth-of-type(n) { grid-column: span 6; }
  .psico-mag-item:nth-of-type(6n+1) { display: block; }
  .psico-mag-item:nth-of-type(6n+1) .psico-mag-thumb-link { width: 100%; }
  .psico-mag-item:nth-of-type(6n+1) .psico-mag-thumb { height: 180px; margin-bottom: var(--sp-3); }
}

.psico-sidebar-cta { text-align: left; }
.psico-sidebar-cta h3 { font-family: var(--font-serif); font-size: var(--fs-md); font-weight: 600; text-transform: none; letter-spacing: normal; color: var(--fg); margin: 0 0 var(--sp-2); }
.psico-sidebar-cta p { font-size: 14px; color: var(--fg-muted); margin: 0 0 var(--sp-4); }

/* ---------- "In evidenza" ridotto, per colonne strette (sidebar) ---------- */
.psico-sidebar-evidenza { margin-top: var(--sp-6); padding-top: var(--sp-5); border-top: 1px solid var(--border); }
.psico-sidebar-evidenza h3 { font-family: var(--font-serif); font-size: var(--fs-md); font-weight: 600; text-transform: none; letter-spacing: normal; color: var(--fg); margin: 0 0 var(--sp-4); }
.psico-mini-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-3); }
.psico-mini-item a { display: flex; align-items: center; gap: var(--sp-3); text-decoration: none; padding: 6px; margin: 0 -6px; border-radius: var(--radius-sm); transition: background 0.15s; }
.psico-mini-item a:hover { background: var(--accent-soft); }
.psico-mini-photo { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; background: var(--accent-soft); flex: none; }
.psico-mini-photo--placeholder { display: flex; align-items: center; justify-content: center; font-family: var(--font-serif); font-weight: 600; font-size: 17px; color: var(--accent); }
.psico-mini-body { min-width: 0; }
.psico-mini-name { font-weight: 700; font-size: 14px; color: var(--fg); margin: 0; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.psico-mini-qualifica { font-size: 12.5px; color: var(--fg-muted); margin: 2px 0 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- Pagina profilo ---------- */
.psico-profile-layout { display: grid; grid-template-columns: 1fr 300px; gap: var(--sp-7); align-items: start; }
.psico-profile-layout--senza-sidebar { grid-template-columns: 1fr; }
.psico-profile-side { position: sticky; top: 88px; display: flex; flex-direction: column; gap: var(--sp-5); }
@media (max-width: 860px) { .psico-profile-layout { grid-template-columns: 1fr; } .psico-profile-side { position: static; } }

/* display:flow-root invece di un clearfix classico: contiene la foto flottante cosi' il testo
   (nome/qualifica/luogo/tag) le scorre naturalmente accanto, senza che il float "esca" dal
   blocco e faccia flottare anche cio' che viene dopo (Chi sono, ecc). */
.psico-profile-top { display: flow-root; margin-bottom: var(--sp-6); }
.psico-profile-photo { float: left; width: 116px; height: 116px; border-radius: 50%; object-fit: cover; background: var(--accent-soft); margin: 0 var(--sp-5) var(--sp-3) 0; border: 3px solid var(--bg-card); box-shadow: var(--shadow-sm); }
div.psico-profile-photo { display: flex; align-items: center; justify-content: center; font-family: var(--font-serif); font-weight: 600; font-size: 40px; color: var(--accent); }
.psico-profile-name { font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-xl); letter-spacing: -0.01em; margin: 0 0 4px; line-height: 1.15; }
.psico-profile-qualifica { color: var(--accent-ink); font-weight: 600; font-size: var(--fs-md); margin: 0 0 var(--sp-2); }
.psico-profile-luogo { color: var(--fg-muted); font-size: 14px; margin: 0 0 var(--sp-3); }
.psico-badge--static { position: static; display: inline-block; margin-bottom: var(--sp-2); }

/* ---------- Pagina account: form + servizi pubblicitari ---------- */
.psico-account-main { max-width: 720px; }
.psico-form-field { margin-bottom: var(--sp-4); }
.psico-form-field label { display: block; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--fg-faint); margin-bottom: 6px; }
.psico-form-field input[type=text], .psico-form-field input[type=email], .psico-form-field input[type=url], .psico-form-field textarea {
  width: 100%; padding: 10px 12px; border: 1px solid var(--border-strong); border-radius: var(--radius-sm);
  font-family: inherit; font-size: 15px; color: var(--fg); background: var(--bg-card);
}
.psico-form-field input:focus, .psico-form-field textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.psico-form-field .hint { color: var(--fg-faint); font-size: 13px; margin: 4px 0 0; }
.psico-form-field select {
  width: 100%; padding: 10px 12px; border: 1px solid var(--border-strong); border-radius: var(--radius-sm);
  font-family: inherit; font-size: 15px; color: var(--fg); background: var(--bg-card);
}
.psico-form-field select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }

/* ---------- Barra "Città" + "Disturbo", in cima a /psicologi/ al posto del titolo ---------- */
.psico-filter-bar {
  display: flex; align-items: end; gap: var(--sp-4);
  background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm); padding: var(--sp-5); margin-bottom: var(--sp-6);
}
.psico-filter-bar .psico-form-field { flex: 1; min-width: 0; margin: 0; }
.psico-filter-bar .psico-btn { flex: none; }
.psico-filter-bar-reset { flex: none; font-size: 14px; color: var(--fg-faint); text-decoration: none; padding: 12px 4px; }
.psico-filter-bar-reset:hover { color: var(--accent-ink); }
@media (max-width: 700px) {
  .psico-filter-bar { flex-direction: column; align-items: stretch; }
  .psico-filter-bar .psico-btn { width: 100%; justify-content: center; }
}

.psico-disagi-checklist {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 4px 12px;
  max-height: 260px; overflow-y: auto; padding: var(--sp-3); border: 1px solid var(--border-strong); border-radius: var(--radius-sm);
}
.psico-disagio-check { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 400; text-transform: none; letter-spacing: normal; color: var(--fg); padding: 4px 0; cursor: pointer; }
.psico-disagio-check input { flex: none; width: 16px; height: 16px; accent-color: var(--accent); cursor: pointer; }

.psico-btn { display: inline-flex; align-items: center; gap: 8px; background: var(--accent); color: #fff; text-decoration: none; border: none; padding: 12px 24px; border-radius: var(--radius-pill); font-weight: 600; font-size: 15px; cursor: pointer; transition: background 0.15s; }
.psico-btn:hover { background: var(--accent-dark); color: #fff; }
.psico-btn--gold { background: var(--gold); }
.psico-btn--gold:hover { background: #8f5f20; }
.psico-btn--outline { background: transparent; color: var(--accent-ink); border: 1px solid var(--border-strong); padding: 10px 20px; font-size: 14px; }
.psico-btn--outline:hover { background: var(--accent-soft); color: var(--accent-ink); }

.psico-account-jump { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-bottom: var(--sp-5); }
#blocco-abbonamento, #blocco-evidenza, #blocco-motore-ricerca, #blocco-contenuto { scroll-margin-top: 96px; }
@media (max-width: 560px) { .psico-account-jump { flex-direction: column; } .psico-account-jump .psico-btn { width: 100%; justify-content: center; } }

/* Bottoni grandi "vendita" nell'area account: sono la vetrina vera dei servizi a pagamento,
   devono trasmettere fiducia — icona, titolo, spiegazione breve, prezzo bene in vista. */
.psico-ad-card { display: flex; align-items: center; gap: var(--sp-5); padding: var(--sp-5); }
.psico-ad-card + .psico-ad-card { margin-top: var(--sp-4); }
.psico-ad-icon { flex: none; width: 52px; height: 52px; border-radius: 50%; background: var(--accent-soft); color: var(--accent); display: flex; align-items: center; justify-content: center; font-size: 22px; }
.psico-ad-card--gold .psico-ad-icon { background: var(--gold-soft); color: var(--gold); }
.psico-ad-body { flex: 1; min-width: 0; }
.psico-ad-body h3 { font-family: var(--font-serif); font-size: var(--fs-md); font-weight: 600; margin: 0 0 2px; text-transform: none; letter-spacing: normal; color: var(--fg); }
.psico-ad-body p { color: var(--fg-muted); font-size: 14px; line-height: 1.5; margin: 0 0 var(--sp-3); }
.psico-ad-price { font-family: var(--font-serif); font-weight: 700; color: var(--fg); }
.psico-ad-active { display: flex; align-items: center; gap: 8px; color: #2a7a2a; font-weight: 600; font-size: 14px; }

.psico-avviso { padding: var(--sp-4); border-radius: var(--radius-sm); background: var(--bg-card); border: 1px solid var(--border); margin-bottom: var(--sp-5); font-size: 14.5px; }
.psico-avviso--ok { background: #EAF7EC; border-color: #BFE4C6; color: #216B2E; }
.psico-avviso--errore { background: #FBEAEA; border-color: #E7B9B9; color: #B3261E; }
.psico-avviso--attenzione { background: var(--gold-soft); border-color: #E9D3A5; color: #6B4C14; }
.psico-avviso--full { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-4); }
.psico-avviso--full .psico-btn { flex: none; }
@media (max-width: 560px) { .psico-avviso--full { flex-direction: column; align-items: stretch; } .psico-avviso--full .psico-btn { text-align: center; } }

.psico-contact-box { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--sp-5); box-shadow: var(--shadow-sm); }
.psico-contact-box h3 { font-family: var(--font-body); font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--fg-faint); margin: 0 0 var(--sp-2); }
.psico-contact-box dt { font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--fg-faint); margin-top: var(--sp-3); }
.psico-contact-box dt:first-child { margin-top: 0; }
.psico-contact-box dd { margin: 3px 0 0; font-size: 15px; word-break: break-word; }
.psico-cta-group { display: flex; flex-direction: column; gap: var(--sp-2); }
.psico-cta-block { display: block; width: 100%; text-align: center; background: var(--accent); color: #fff; text-decoration: none; border: none; padding: var(--sp-4); border-radius: var(--radius-sm); font-weight: 600; font-size: 15px; font-family: inherit; cursor: pointer; transition: background 0.15s; }
.psico-cta-block:hover { background: var(--accent-dark); }
.psico-contact-box dl:not(:first-child) { margin-top: var(--sp-4); padding-top: var(--sp-1); border-top: 1px solid var(--border); }
.psico-tag-row { display: flex; flex-wrap: wrap; gap: 6px; margin: var(--sp-4) 0 0; }

.psico-reveal-value { display: block; text-align: center; font-size: 15px; font-weight: 600; color: var(--accent-ink); text-decoration: none; padding: var(--sp-4); border-radius: var(--radius-sm); background: var(--accent-soft); }
.psico-card-thumb { width: 100%; height: 140px; object-fit: cover; border-radius: var(--radius-sm); margin-bottom: var(--sp-3); }
.psico-card-thumb--placeholder { display: flex; align-items: center; justify-content: center; background: var(--accent-soft); color: var(--accent); font-size: 26px; }
.psico-grid--articoli { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.psico-card--articolo .psico-card-name { font-family: var(--font-serif); font-size: var(--fs-md); }
.psico-card--articolo .psico-card-luogo { margin: 0 0 var(--sp-2); }
.psico-card--articolo .psico-card-excerpt { display: block; }
.psico-tag { background: var(--accent-soft); color: var(--accent-ink); font-size: 12px; font-weight: 500; padding: 5px 12px; border-radius: var(--radius-pill); text-decoration: none; }
.psico-tag--static { cursor: default; }
.psico-tag-row--card { margin-top: var(--sp-3); }
.psico-tag-row--card .psico-tag { font-size: 11px; padding: 3px 10px; }
.psico-tag--more { background: transparent; color: var(--fg-faint); padding-left: 4px; }

/* Segnale automatico di fiducia (psico_is_verified) — non un badge commerciale come "in
   evidenza"/"avanzato", quindi volutamente discreto: un'icona inline accanto al nome, non un
   badge a se' stante. */
.psico-verified { color: var(--accent); font-size: 0.75em; margin-left: 4px; font-weight: 700; }
.psico-profile-name .psico-verified { display: inline-flex; align-items: center; vertical-align: middle; background: var(--accent-soft); color: var(--accent-ink); font-size: 13px; font-family: var(--font-body); font-weight: 700; padding: 4px 12px; border-radius: var(--radius-pill); margin-left: var(--sp-3); }
/* Niente white-space:pre-line: le bio (soprattutto quelle storiche importate da D6) sono HTML
   vero con paragrafi/elenchi propri — pre-line rispettava ANCHE gli a-capo letterali del sorgente
   HTML sopra ai margini gia' dati dai tag <p>, raddoppiando lo spazio tra i paragrafi. */
.psico-bio { font-size: var(--fs-md); line-height: 1.75; margin: var(--sp-5) 0; color: var(--fg); max-width: 68ch; }
.psico-bio p { margin: 0 0 var(--sp-4); }
.psico-bio p:last-child { margin-bottom: 0; }
.psico-bio ul, .psico-bio ol { margin: 0 0 var(--sp-4); padding-left: 1.3em; }

.psico-address-list { list-style: none; margin: 0 0 var(--sp-4); padding: 0; }
.psico-address-list li { font-size: 15px; color: var(--fg); padding: 6px 0; border-bottom: 1px solid var(--border); }
.psico-address-list li:last-child { border-bottom: none; }
.psico-map-embed { border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--border); }
.psico-map-embed iframe { width: 100%; height: 200px; border: 0; display: block; }

.psico-empty { color: var(--fg-faint); padding: var(--sp-7) 0; text-align: center; }
.psico-pagination { display: flex; gap: var(--sp-2); justify-content: center; margin-top: var(--sp-6); }
.psico-pagination a, .psico-pagination span { padding: 8px 15px; border-radius: var(--radius-sm); border: 1px solid var(--border); text-decoration: none; color: var(--fg-muted); font-size: 14px; font-weight: 500; }
.psico-pagination a:hover { border-color: var(--accent); color: var(--accent-ink); }
.psico-pagination .current { background: var(--accent); color: #fff; border-color: var(--accent); }

.psico-footer { border-top: 1px solid var(--border); padding: var(--sp-6) var(--sp-5); text-align: center; color: var(--fg-faint); font-size: 13px; margin-top: var(--sp-7); }

.psico-share { display: flex; align-items: center; gap: 10px; margin: var(--sp-6) 0; padding-top: var(--sp-5); border-top: 1px solid var(--border); }
.psico-share-label { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--fg-faint); margin-right: 4px; }
.psico-share-btn {
  display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px;
  border-radius: 50%; border: 1px solid var(--border); color: var(--fg-muted); transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.psico-share-btn svg { width: 16px; height: 16px; }
.psico-share-btn:hover, .psico-share-btn:focus-visible { background: var(--accent); border-color: var(--accent); color: #fff; }
