/* =========================================================
   Classic CV page (cv.html)
   Reuses tokens and components from main.css.
   Keep every fact identical to the PDF CV and to index.html.
   ========================================================= */

.cv-page .nav{position:sticky}
.cv-actions{display:flex;gap:8px;flex-wrap:wrap}

.cv{max-width:980px;padding-top:40px;padding-bottom:80px}
.cv-head{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:30px 0 28px;border-bottom:1.5px solid var(--ink)}
.cv-photo{width:104px;height:104px;border-radius:50%;object-fit:cover;object-position:50% 18%;flex:none}
.cv-id{flex:1;min-width:0}
.cv-head h1{font-size:clamp(44px,6vw,72px);line-height:1}
.cv-role{font:500 15px var(--sans);color:var(--ink-2);margin-top:10px}
.cv-contact{list-style:none;font:500 13px var(--mono);color:var(--ink-2);text-align:right;display:grid;gap:4px}
.cv-contact a{border-bottom:1px solid var(--line)}
.cv-contact a:hover{color:var(--clay);border-color:var(--clay)}

.cv-sec{padding:34px 0;border-bottom:1px solid var(--line)}
.cv-sec:last-child{border-bottom:0}
.cv-sec h2{font:600 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--clay);margin-bottom:18px}
.cv-summary{font:400 clamp(19px,1.8vw,23px)/1.45 var(--serif);color:var(--ink-2);max-width:820px}

.cv-job{display:grid;grid-template-columns:170px 1fr;gap:24px;padding:18px 0;border-top:1px solid var(--line)}
.cv-job:first-of-type{border-top:0;padding-top:0}
.cv-when{font:500 12px var(--mono);letter-spacing:.04em;color:var(--muted);padding-top:6px}
.cv-job h3,.cv-edu h3{font-size:24px;line-height:1.2}
.cv-co{font:500 14px var(--sans);color:var(--ink-2);margin:2px 0 10px}
.cv-job ul{list-style:none;display:grid;gap:6px}
.cv-job li{position:relative;padding-left:16px;font-size:15px;color:var(--ink-2)}
.cv-job li::before{content:"";position:absolute;left:0;top:.65em;width:6px;height:6px;border-radius:50%;background:var(--clay)}

.cv-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,70px)}
.cv-edu{padding-bottom:18px}
.cv-edu .cv-when{padding-top:0}
.cv-edu p{font-size:14.5px;color:var(--ink-2)}
.cv-langs{list-style:none;border-top:1px solid var(--line)}
.cv-langs li{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
.cv-langs span{font:500 11px var(--mono);letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.cv-mt{margin-top:34px}
.cv-skills{display:grid;grid-template-columns:96px 1fr;gap:8px 14px;font-size:14.5px}
.cv-skills dt{font:600 11px var(--mono);letter-spacing:.08em;color:var(--ink);padding-top:3px;text-transform:uppercase}
.cv-skills dd{color:var(--ink-2)}

@media (max-width:760px){
  .cv-head{align-items:flex-start}
  .cv-contact{text-align:left;flex-basis:100%}
  .cv-photo{width:76px;height:76px}
  .cv-head h1{font-size:36px}
  .cv-job{grid-template-columns:1fr;gap:4px}
  .cv-two{grid-template-columns:1fr}
  .cv-actions .btn.line{display:none}
}

/* ---------- print / save as PDF ---------- */
@media print{
  @page{size:A4;margin:14mm}
  body{background:#fff;color:#000;font-size:11pt}
  .nav,footer{display:none}
  .cv{padding:0;max-width:none}
  .cv-head{padding-top:0}
  .cv-photo{width:80px;height:80px}
  .cv-sec{padding:16px 0;break-inside:avoid-page}
  .cv-job{break-inside:avoid;padding:10px 0}
  .cv-summary{font-size:13pt}
  .cv-job h3,.cv-edu h3{font-size:14pt}
  .cv-job li,.cv-skills,.cv-edu p{font-size:10pt}
  a{color:#000}
}
