@import url('/css/cv-doc-fonts.css');
:root{
  --ink:#111A2A; --ink2:#1A2B45; --ink3:#24395A;
  --accent:#F2A33C; --accent-d:#D9861A; --accent-l:#FFC876;
  --green:#2E9E6B; --green-l:#E6F4EC;
  --paper:#FFFDFA;
  --text:#141D2C; --muted:#57647A; --muted2:#8D9AAC;
  --line:#DFE5EE;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
html,body{font-family:'Inter',sans-serif;color:var(--text);font-size:9pt;line-height:1.45;-webkit-font-smoothing:antialiased;background:#fff;}
.page{width:210mm;height:297mm;position:relative;overflow:hidden;display:flex;background:var(--paper);}
.page + .page{page-break-before:always;}
svg.i{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none;}
svg.bi{width:3mm;height:3mm;flex:none;}
h1,h2,h3,.dsp{font-family:'Space Grotesk',sans-serif;}
.hand{font-family:'Caveat',cursive;font-weight:600;}
.mark{background-image:linear-gradient(180deg,rgba(242,163,60,0) 52%,rgba(242,163,60,.42) 52%,rgba(242,163,60,.42) 93%,rgba(242,163,60,0) 93%);padding:0 .4mm;}
.mark-g{background-image:linear-gradient(180deg,rgba(46,158,107,0) 52%,rgba(46,158,107,.28) 52%,rgba(46,158,107,.28) 93%,rgba(46,158,107,0) 93%);padding:0 .4mm;}

/* ============ SIDEBAR ============ */
.side{width:66mm;background:linear-gradient(168deg,#0E1728 0%,#152740 52%,#1C3252 100%);color:#E9EEF6;padding:9mm 7.5mm 8mm 8mm;position:relative;}
.side:after{content:"";position:absolute;top:0;right:0;width:1.1mm;height:100%;background:linear-gradient(180deg,var(--accent) 10%,rgba(242,163,60,.05) 95%);}
.ph{position:relative;width:29mm;height:29mm;margin-bottom:4mm;}
.ph img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:52% 32%;filter:contrast(1.04) saturate(1.02);}
.ph .ring{position:absolute;inset:-2.1mm;width:calc(100% + 4.2mm);height:calc(100% + 4.2mm);}
.ph .ring path{fill:none;stroke:var(--accent);stroke-width:2.1;stroke-linecap:round;}
.ph .dotbadge{position:absolute;right:-1mm;bottom:1mm;background:var(--green);color:#fff;font-size:5.6pt;font-weight:800;letter-spacing:.3pt;text-transform:uppercase;padding:.9mm 1.8mm;border-radius:99px;transform:rotate(-4deg);border:.4mm solid #0E1728;white-space:nowrap;}
.name{font-size:19.5pt;font-weight:700;letter-spacing:-.5pt;line-height:1.02;color:#fff;}
.name span{display:block;color:var(--accent);}
.role{margin-top:2mm;font-size:9pt;font-weight:600;color:#CBD7E7;}
.note{margin-top:1.5mm;font-size:10.5pt;color:var(--accent-l);transform:rotate(-1.6deg);transform-origin:left;}
.rule{margin:3mm 0 0;height:2.4mm;}
.rule path{fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;opacity:.85;}

.s-head{display:flex;align-items:center;gap:1.7mm;margin:6mm 0 2.6mm;font-family:'Space Grotesk',sans-serif;font-size:7.4pt;font-weight:700;letter-spacing:1.1pt;text-transform:uppercase;color:var(--accent);}
.s-head svg.i{font-size:9pt;stroke-width:2.1;}
.side .txt{font-size:7.8pt;color:#C3CFDF;line-height:1.55;}
.side .txt b{color:#fff;font-weight:600;}

.contact{display:flex;flex-direction:column;gap:1.8mm;}
.contact a,.contact div{display:flex;align-items:flex-start;gap:2.1mm;font-size:7.8pt;color:#DDE5F0;text-decoration:none;line-height:1.35;}
.contact svg.i{font-size:9.3pt;color:var(--accent);margin-top:.2mm;}

.sk{display:flex;align-items:center;gap:2mm;margin-bottom:1.9mm;}
.sk .lg{width:5.2mm;height:5.2mm;border-radius:1.4mm;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;flex:none;}
.sk .lg svg.bi{width:3.4mm;height:3.4mm;}
.sk .nm{flex:1;font-size:7.7pt;font-weight:600;color:#E6EDF7;line-height:1.15;}
.sk .nm i{display:block;font-style:normal;font-size:6.4pt;font-weight:500;color:#8FA1B8;}
.dots{display:flex;gap:.85mm;flex:none;}
.dot{width:1.5mm;height:1.5mm;border-radius:50%;background:rgba(255,255,255,.16);}
.dot.on{background:var(--accent);}
.sk.top .lg{box-shadow:0 0 0 .5mm var(--accent);}
.sk.top .nm{color:#fff;}

.edu{margin-bottom:2.8mm;}
.edu b{display:block;font-size:7.9pt;font-weight:600;color:#fff;line-height:1.3;}
.edu span{font-size:7.2pt;color:#93A3B9;}
.edu em{font-style:normal;color:var(--accent);font-weight:700;}
.lang{display:flex;justify-content:space-between;gap:2mm;font-size:7.8pt;margin-bottom:1.5mm;color:#DDE5F0;}
.lang b{font-weight:600;color:#fff;}
.lang span{color:#93A3B9;font-size:7.1pt;text-align:right;max-width:32mm;line-height:1.3;}

.chips{display:flex;flex-wrap:wrap;gap:1.2mm;}
.chip{display:inline-flex;align-items:center;gap:1.1mm;font-size:6.7pt;font-weight:600;padding:.85mm 1.8mm;border-radius:99px;background:rgba(255,255,255,.08);border:.22mm solid rgba(255,255,255,.16);color:#D8E1EE;}
.chip svg.bi{width:2.6mm;height:2.6mm;}
.grp{font-size:6.8pt;font-weight:700;letter-spacing:.6pt;text-transform:uppercase;color:#8697AF;margin:2.5mm 0 1.3mm;}
.soft li{list-style:none;display:flex;gap:1.7mm;font-size:7.5pt;color:#C3CFDF;margin-bottom:1.2mm;line-height:1.35;}
.soft svg.i{font-size:8.4pt;color:var(--accent);margin-top:.4mm;}

.qr{margin-top:5mm;background:rgba(255,255,255,.06);border:.28mm dashed rgba(255,255,255,.28);border-radius:2.4mm;padding:3mm;display:flex;gap:3mm;align-items:center;}
.qr img{width:18mm;height:18mm;background:#fff;padding:1mm;border-radius:1.2mm;}
.qr b{display:block;font-size:7.5pt;color:#fff;line-height:1.25;margin-bottom:.8mm;}
.qr span{font-size:6.7pt;color:#9CAEC5;line-height:1.35;}

/* ============ MAIN ============ */
.main{flex:1;padding:9mm 10mm 8mm 9mm;display:flex;flex-direction:column;background:var(--paper);}
.eyebrow{display:flex;align-items:center;gap:2mm;font-size:6.9pt;font-weight:700;letter-spacing:1.3pt;text-transform:uppercase;color:var(--muted2);}
.eyebrow:after{content:"";flex:1;height:.22mm;background:var(--line);}
.claim{margin-top:3mm;font-family:'Space Grotesk',sans-serif;font-size:15pt;font-weight:700;letter-spacing:-.4pt;line-height:1.22;color:var(--ink);}
.intro{margin-top:2.6mm;font-size:8.5pt;color:var(--muted);line-height:1.58;}

.tickets{display:flex;gap:2.4mm;margin:5mm 0 1mm;}
.tk{flex:1;border:.32mm dashed var(--ink);border-radius:2.2mm;padding:2.6mm 2.4mm;background:#fff;position:relative;}
.tk:nth-child(odd){transform:rotate(-.7deg);}
.tk:nth-child(even){transform:rotate(.6deg);}
.tk b{display:block;font-family:'Space Grotesk',sans-serif;font-size:13pt;font-weight:700;color:var(--ink);letter-spacing:-.4pt;line-height:1;}
.tk span{display:block;margin-top:1.1mm;font-size:6.6pt;font-weight:700;text-transform:uppercase;letter-spacing:.4pt;color:var(--muted2);line-height:1.3;}

h2{display:flex;align-items:center;gap:2.1mm;font-size:9.4pt;font-weight:700;letter-spacing:.3pt;text-transform:uppercase;color:var(--ink);margin:6.5mm 0 3.6mm;}
h2 svg.i{font-size:11pt;color:var(--accent);stroke-width:2.1;}
h2 .sq{flex:1;height:2mm;}
h2 .sq path{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;opacity:.55;}

.badge{display:inline-flex;align-items:center;gap:1.1mm;font-size:6.2pt;font-weight:800;letter-spacing:.5pt;text-transform:uppercase;padding:.8mm 1.8mm;border-radius:99px;white-space:nowrap;}
.badge.now{background:var(--green-l);color:#1E7A4F;border:.25mm dashed #6FBF9A;transform:rotate(-1.8deg);}
.badge.now:before{content:"";width:1.4mm;height:1.4mm;border-radius:50%;background:var(--green);}
.badge.past{background:#EEF1F6;color:var(--muted);border:.25mm solid var(--line);transform:rotate(1.2deg);}

.tl{position:relative;padding-left:6mm;}
.tl:before{content:"";position:absolute;left:1.4mm;top:2mm;bottom:2mm;width:.35mm;background:repeating-linear-gradient(180deg,var(--accent) 0 1.2mm,rgba(242,163,60,0) 1.2mm 2.4mm);}
.job{position:relative;margin-bottom:4.2mm;}
.job:last-child{margin-bottom:0;}
.job:before{content:"";position:absolute;left:-5.35mm;top:1.1mm;width:2.5mm;height:2.5mm;border-radius:50%;background:var(--paper);border:.55mm solid var(--accent);}
.job-h{display:flex;justify-content:space-between;align-items:flex-start;gap:3mm;}
.job-t{font-family:'Space Grotesk',sans-serif;font-size:9.6pt;font-weight:700;color:var(--ink);line-height:1.22;}
.job-c{display:flex;align-items:center;gap:1.4mm;margin-top:.5mm;font-size:8.1pt;font-weight:600;color:var(--accent-d);}
.job-c i{font-style:normal;color:var(--muted2);font-weight:500;}
.job-r{flex:none;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:1.1mm;}
.per{font-family:'Space Grotesk',sans-serif;font-size:7pt;font-weight:700;letter-spacing:.2pt;color:var(--ink);white-space:nowrap;}
.job ul{margin:1.5mm 0 0;padding:0;}
.job li{list-style:none;position:relative;padding-left:2.8mm;font-size:8pt;color:var(--muted);line-height:1.45;margin-bottom:.8mm;}
.job li:before{content:"";position:absolute;left:0;top:1.7mm;width:1mm;height:1mm;border-radius:50%;background:var(--accent);}
.stack{margin-top:1.6mm;display:flex;flex-wrap:wrap;gap:1.2mm;}
.tc{display:inline-flex;align-items:center;gap:1.1mm;font-size:6.6pt;font-weight:600;color:#2B3A50;background:#fff;border:.25mm solid var(--line);border-radius:99px;padding:.7mm 1.7mm .7mm 1.3mm;}
.tc svg.bi{width:2.7mm;height:2.7mm;}

.prev{display:flex;flex-direction:column;gap:1.3mm;}
.prow{display:flex;align-items:baseline;gap:2.4mm;font-size:7.9pt;padding-bottom:1.1mm;border-bottom:.25mm dashed var(--line);}
.prow b{font-family:'Space Grotesk',sans-serif;font-weight:700;color:var(--ink);flex:none;}
.prow span{color:var(--muted);flex:1;}
.prow em{font-style:normal;font-size:6.8pt;font-weight:700;color:var(--muted2);white-space:nowrap;}

.cards{display:grid;grid-template-columns:1fr 1fr;gap:2.4mm;}
.card{border:.3mm solid var(--line);border-radius:2.6mm;padding:3mm;background:#fff;position:relative;box-shadow:1.1mm 1.1mm 0 rgba(17,26,42,.055);}
.card:before{content:"";position:absolute;left:-.3mm;top:2.6mm;bottom:2.6mm;width:.9mm;background:var(--accent);border-radius:99px;}
.card h3{font-family:'Space Grotesk',sans-serif;font-size:8.7pt;font-weight:700;color:var(--ink);line-height:1.22;margin-bottom:1mm;padding-left:1.4mm;}
.card .cli{display:flex;align-items:center;gap:1.4mm;font-size:6.6pt;font-weight:700;text-transform:uppercase;letter-spacing:.4pt;color:var(--muted2);margin:0 0 1.5mm 1.4mm;}
.card p{font-size:7.5pt;color:var(--muted);line-height:1.45;padding-left:1.4mm;}
.card .stack{margin-top:1.8mm;padding-left:1.4mm;}
.card .tc{font-size:6.2pt;}

.cta{margin-top:auto;padding-top:3.5mm;border-top:.3mm dashed var(--line);display:flex;align-items:center;gap:3mm;}
.cta .ic{width:8mm;height:8mm;flex:none;border-radius:2.2mm;background:var(--ink);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:11pt;transform:rotate(-3deg);}
.cta b{display:block;font-family:'Space Grotesk',sans-serif;font-size:8.4pt;color:var(--ink);line-height:1.3;}
.cta span{font-size:7.4pt;color:var(--muted);}
.cta a{color:var(--accent-d);font-weight:700;text-decoration:none;}
.foot{margin-top:auto;padding-top:3mm;font-size:6.7pt;color:var(--muted2);display:flex;justify-content:space-between;border-top:.22mm solid var(--line);}

/* --- strip / post-it --- */
.strip{margin-top:6mm;border:.32mm dashed var(--ink);border-radius:2.8mm;padding:3mm 3.4mm;background:#fff;display:flex;gap:3.2mm;align-items:flex-start;box-shadow:1.1mm 1.1mm 0 rgba(17,26,42,.05);}
.strip .sic{width:7.5mm;height:7.5mm;flex:none;border-radius:2mm;background:var(--ink);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:10.5pt;transform:rotate(-4deg);}
.strip b{display:block;font-family:'Space Grotesk',sans-serif;font-size:8.6pt;font-weight:700;color:var(--ink);margin-bottom:1.2mm;}
.strip p{font-size:7.8pt;color:var(--muted);line-height:1.5;}
.strip .ch2{display:flex;flex-wrap:wrap;gap:1.4mm;margin-top:2mm;}
.strip .ch2 span{font-size:6.9pt;font-weight:700;color:var(--ink);background:#FFF4E3;border:.25mm solid #F5CE93;border-radius:99px;padding:.9mm 2mm;}
.strip .ch2 span:nth-child(2){transform:rotate(-1.4deg);}
.strip .ch2 span:nth-child(3){transform:rotate(1.2deg);}
.handnote{font-family:'Caveat',cursive;font-weight:600;font-size:11.5pt;color:var(--accent-d);line-height:1.25;}
.side .txt.mini{font-size:7.4pt;line-height:1.5;}

/* --- Variante senza foto: monogramma {P} nel font del marchio -------------
   Stesso ingombro della foto (29mm) e stesso anello disegnato a mano: la
   colonna non si riequilibra, cambia solo cosa c'è dentro il cerchio.
   Kg Happy ha UN SOLO peso: mai chiedere il bold. */
@font-face{font-family:'Kg Happy';src:url('fonts/KGHAPPY.ttf') format('truetype');font-weight:400;font-style:normal;}
.ph.mono{display:flex;align-items:center;justify-content:center;border-radius:50%;
  background:rgba(255,255,255,.055);border:.3mm solid rgba(255,255,255,.14);}
.ph.mono span.mg{font-family:'Kg Happy',cursive;font-weight:400;font-size:30pt;line-height:1;
  color:var(--accent);padding-top:1.5mm;}

/* chip di ingaggio, ora in testa al documento */
.ch2-top{display:flex;flex-wrap:wrap;gap:1.4mm;margin-top:2.6mm;}
.ch2-top span{font-size:6.9pt;font-weight:700;color:var(--ink);background:#FFF4E3;border:.25mm solid #F5CE93;border-radius:99px;padding:.9mm 2mm;}
.ch2-top span:nth-child(2){transform:rotate(-1.4deg);}
.ch2-top span:nth-child(3){transform:rotate(1.2deg);}

/* ==================================================================
   TUNING DEL CV SINTETICO
   Stessa skin, serrata per stare in UNA pagina A4. Non toccare a caso:
   ogni valore qui e' stato scelto misurando il riempimento della colonna.
   ================================================================== */
/* La sidebar cambia altezza con la lingua: il QR resta ancorato in fondo,
   cosi' lo spazio che avanza sta sopra e non taglia il blocco. */
.side{display:flex;flex-direction:column;}
.side .qr{margin-top:auto;}

/* L'occhiello porta anche il nome dell'offerta nelle varianti: se va a capo
   sposta tutto il foglio, quindi resta su una riga e taglia.
   Senza min-width:0 la riga non-wrappabile alza il min-content della colonna
   e sfonda il foglio invece di essere tagliata; .side non deve stringersi. */
.side{flex:none;}
.main{min-width:0;}
.eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.page.cv-compact .claim{font-size:14pt;}
.page.cv-compact .intro{margin-top:2.2mm;font-size:8.3pt;}
.page.cv-compact .tickets{margin:4mm 0 0;}
.page.cv-compact h2{margin:5mm 0 3mm;}
.page.cv-compact .job{margin-bottom:3.4mm;}
.page.cv-compact .cta{padding-top:3mm;}
.page.cv-compact .tk{padding:2.2mm 2.3mm;}
.page.cv-compact .job li{font-size:7.9pt;line-height:1.4;}
.page.cv-compact .prev{gap:1.1mm;}

/* ==================================================================
   LAYER SCHERMO
   Sopra c'e' la CSS del PDF, identica: e' la verita' di stampa.
   Qui sotto solo cio' che serve per leggere la stessa pagina a video.
   In stampa e in `?pdf=1` questo blocco non si applica mai.
   ================================================================== */
@media screen {
  body:not(.cv-pdf-mode){background:#E9EDF4;padding:16px 0 40px;}
  body:not(.cv-pdf-mode) .page{
    width:210mm;height:auto;min-height:0;margin:0 auto 18px;
    box-shadow:0 2px 4px rgba(16,25,40,.08),0 12px 32px rgba(16,25,40,.12);
    border-radius:3px;overflow:visible;
  }
  /* i pt del PDF sono piccoli a video: zoom proporzionale, non transform,
     cosi' il testo resta selezionabile e il layout si ricalcola davvero */
  body:not(.cv-pdf-mode) .page{zoom:1.18;}
  body:not(.cv-pdf-mode) .side{padding-bottom:10mm;}

  /* Sotto i 900px la pagina smette di essere un foglio: la sidebar
     passa sopra il contenuto invece di stringersi fino a rompersi. */
  @media (max-width:900px){
    body:not(.cv-pdf-mode){padding:0;}
    body:not(.cv-pdf-mode) .page{
      width:100%;flex-direction:column;margin:0;border-radius:0;box-shadow:none;zoom:1.12;
    }
    body:not(.cv-pdf-mode) .side{width:100%;padding:7mm 6mm 6mm;}
    body:not(.cv-pdf-mode) .side:after{width:100%;height:1.1mm;top:auto;bottom:0;
      background:linear-gradient(90deg,var(--accent) 10%,rgba(242,163,60,.05) 95%);}
    body:not(.cv-pdf-mode) .main{padding:7mm 6mm 8mm;}

    /* Le griglie del foglio sono tarate su 210mm: a video su un telefono
       vanno srotolate, altrimenti la pagina scorre di lato. */
    body:not(.cv-pdf-mode) .cards{grid-template-columns:1fr;}
    body:not(.cv-pdf-mode) .tickets{flex-wrap:wrap;}
    body:not(.cv-pdf-mode) .tk{flex:1 1 40%;}
    body:not(.cv-pdf-mode) .job-h{flex-wrap:wrap;}
    body:not(.cv-pdf-mode) .job-r{flex-direction:row;align-items:center;gap:2mm;}
    body:not(.cv-pdf-mode) .prow{flex-wrap:wrap;}
    body:not(.cv-pdf-mode) .prow span{flex:1 1 100%;}
  }
}

/* In modalita' PDF il foglio deve restare esattamente A4, senza ombre. */
body.cv-pdf-mode{background:#fff;padding:0;}
body.cv-pdf-mode .page{box-shadow:none;border-radius:0;margin:0;}

@page{size:A4;margin:0;}
