/* =============================================================================
   CV.CSS — CV a colonna singola, elegante a schermo e ottimizzato per la stampa/PDF
   e per i parser automatici (ATS): testo reale, intestazioni standard, lettura lineare.
   ========================================================================== */
.cv-toolbar {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  max-width: 820px; margin: 0 auto 18px; flex-wrap: wrap;
}

.cv-sheet {
  max-width: 820px; margin: 0 auto; background: var(--bg-soft);
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 42px 46px; box-shadow: var(--shadow);
}

/* Header: foto + dati */
.cv-head { display: flex; gap: 22px; align-items: center; border-bottom: 2px solid var(--accent); padding-bottom: 18px; margin-bottom: 20px; }
.cv-head__main { flex: 1; min-width: 0; }
.cv-name { font-size: 2.1rem; margin: 0 0 2px; }
.cv-role { color: var(--accent-2); font-weight: 600; font-size: .98rem; margin-bottom: 8px; }
.cv-contacts { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: .82rem; color: var(--muted); }
.cv-contacts a { color: var(--muted); }
.cv-contacts span { white-space: nowrap; }

/* Foto / avatar */
.cv-photo {
  position: relative; flex: none; width: 108px; height: 108px; border-radius: 16px; overflow: hidden;
  background: var(--grad); display: grid; place-items: center; box-shadow: 0 8px 24px rgba(45,212,191,.28);
}
.cv-photo__mono { font-family: var(--font); font-weight: 700; font-size: 2.1rem; color: #04211d; }
.cv-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }

/* Logo "MF" a destra dell'intestazione (decorativo, dimensione fissa) */
.cv-logo { flex: none; width: 64px; height: 64px; margin-left: auto; align-self: flex-start; opacity: .9; }

.cv-sec { margin-bottom: 18px; }
.cv-sec > h2 {
  font-size: .8rem; text-transform: uppercase; letter-spacing: .13em;
  color: var(--accent); border-bottom: 1px solid var(--line); padding-bottom: 5px; margin-bottom: 10px;
}
.cv-sec p { font-size: .92rem; color: var(--text); margin: 0 0 .55em; }
.cv-keywords { font-size: .86rem !important; color: var(--muted) !important; line-height: 1.85; }
.cv-job { margin-bottom: 13px; }
.cv-job-head { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: .95rem; }
.cv-period { color: var(--muted-2); font-family: var(--mono); font-size: .78rem; }
.cv-sec ul { margin: .4rem 0 0; padding-left: 1.1rem; }
.cv-sec li { font-size: .9rem; color: var(--muted); margin-bottom: .22rem; }
.cv-edu { margin-bottom: 7px; font-size: .92rem; }

@media (max-width: 720px) {
  .cv-sheet { padding: 26px 20px; }
  .cv-head { flex-direction: column; text-align: center; align-items: center; }
  .cv-contacts { justify-content: center; }
  .cv-logo { display: none; }
}

/* ---------------------------- STAMPA / PDF (ATS) ---------------------------- */
@media print {
  @page { margin: 13mm; }
  :root { --bg:#fff; --bg-soft:#fff; --bg-soft-2:#f3f4f6; --line:#cfd5df; --text:#111; --muted:#2c2c2c; --muted-2:#555; --accent:#0b7d72; --accent-2:#1d4ed8; }
  body::before { display: none !important; }
  .bg-aurora, .bg-grid, .bg-noise, #fxCanvas, #spotlight, #scrollbar { display: none !important; }
  .nav, .footer, .cv-toolbar, .icon-btn { display: none !important; }
  .section { padding: 0 !important; }
  .cv-sheet { border: none; box-shadow: none; max-width: 100%; padding: 0; background: #fff; }
  .cv-name, .cv-sec p, .cv-sec li, .cv-job-head { color: #111 !important; }
  .cv-keywords { color: #333 !important; }
  a { color: #111 !important; text-decoration: none; }
  .cv-photo { box-shadow: none; }
  .cv-job, .cv-sec, .cv-head { page-break-inside: avoid; }
}
