/* ============================================================
   Virtus Currículos — Modelos de Currículo (folha A4)
   Todos os modelos compartilham a base .resume-page e usam
   uma classe .tpl-* para as variações visuais.
   ============================================================ */
.resume-page{
  width:210mm; min-height:297mm; margin:0 auto; background:#fff;
  color:#20242C; font-family:var(--f-body); font-size:12.3px; line-height:1.5;
  padding:16mm 15mm; position:relative;
}
.resume-page *{ box-sizing:border-box; }
.resume-page h1,.resume-page h2,.resume-page h3{ margin:0; font-family:var(--f-display); }
.resume-page p{ margin:0 0 4px; }
.resume-page ul{ margin:2px 0 0; padding-left:16px; }
.resume-page li{ margin-bottom:2px; }
.r-section{ margin-bottom:14px; }
.r-section:last-child{ margin-bottom:0; }
.r-empty-hint{ color:#B7BEC9; font-style:italic; }

/* ---------------- TRADICIONAL (fiel ao modelo enviado) ---------------- */
.tpl-tradicional{ font-size:12.5px; }
.tpl-tradicional .r-title{
  text-align:center; font-size:19px; font-weight:700; letter-spacing:.02em;
  margin-bottom:2px; color:#16324F; text-transform:none;
}
.tpl-tradicional .r-subtitle{
  text-align:center; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:#8A93A3; margin-bottom:14px;
}
.tpl-tradicional .r-hr{ border:none; border-top:2px solid #16324F; margin:0 0 14px; }
.tpl-tradicional .r-heading{
  font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  color:#16324F; border-bottom:1.5px solid #D8DEE8; padding-bottom:3px; margin-bottom:7px;
}
.tpl-tradicional .r-row{ display:flex; flex-wrap:wrap; gap:0 22px; }
.tpl-tradicional .r-field{ margin-bottom:3px; }
.tpl-tradicional .r-field b{ color:#16324F; }
.tpl-tradicional .r-exp-item{ margin-bottom:10px; }
.tpl-tradicional .r-exp-head{ display:flex; justify-content:space-between; gap:10px; font-weight:700; }
.tpl-tradicional .r-exp-role{ font-weight:600; color:#3A4457; margin-bottom:2px; }
.tpl-tradicional .r-letter{
  border:1px solid #D8DEE8; border-radius:4px; padding:12px 14px; margin-top:4px; background:#FBFBFC;
}
.tpl-tradicional .r-letter .r-letter-title{
  text-align:center; font-weight:700; text-transform:uppercase; letter-spacing:.08em;
  font-size:11px; margin-bottom:8px; color:#16324F;
}
.tpl-tradicional .r-sign{ margin-top:16px; font-size:11.5px; }
.tpl-tradicional .r-sign .company{ font-weight:700; text-transform:uppercase; margin-top:2px; }

/* ---------------- MODERNO (duas colunas) ---------------- */
.tpl-moderno{ padding:0; display:flex; min-height:297mm; }
.tpl-moderno .r-side{
  width:34%; background:#16324F; color:#EAF0F7; padding:16mm 8mm; flex:none;
}
.tpl-moderno .r-main{ width:66%; padding:16mm 12mm; }
.tpl-moderno .r-photo{
  width:88px; height:88px; border-radius:50%; overflow:hidden; margin:0 auto 14px;
  background:rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center;
  border:3px solid rgba(255,255,255,.35); color:#B9C7DA; font-size:10px; text-align:center;
}
.tpl-moderno .r-photo img{ width:100%; height:100%; object-fit:cover; }
.tpl-moderno .r-name{ font-size:19px; font-weight:700; text-align:center; line-height:1.2; color:#fff; }
.tpl-moderno .r-role{ text-align:center; font-size:11px; color:#FF9A5C; margin:3px 0 16px; font-weight:600; }
.tpl-moderno .r-side .r-heading{
  font-size:10.5px; text-transform:uppercase; letter-spacing:.1em; color:#FF9A5C;
  border-bottom:1px solid rgba(255,255,255,.25); padding-bottom:4px; margin-bottom:8px; font-weight:700;
}
.tpl-moderno .r-side .r-section{ margin-bottom:16px; font-size:11px; }
.tpl-moderno .r-side .r-field{ margin-bottom:6px; color:#DCE5F0; word-break:break-word; }
.tpl-moderno .r-skill{ display:flex; justify-content:space-between; margin-bottom:5px; font-size:10.8px; }
.tpl-moderno .r-skill-bar{ height:5px; background:rgba(255,255,255,.18); border-radius:3px; margin-top:3px; overflow:hidden; }
.tpl-moderno .r-skill-bar span{ display:block; height:100%; background:#FF7A30; }
.tpl-moderno .r-main .r-heading{
  font-size:12.5px; text-transform:uppercase; letter-spacing:.08em; color:#16324F;
  border-bottom:2px solid #FF7A30; display:inline-block; padding-bottom:3px; margin-bottom:9px; font-weight:700;
}
.tpl-moderno .r-exp-item{ margin-bottom:11px; }
.tpl-moderno .r-exp-head{ display:flex; justify-content:space-between; font-weight:700; color:#20242C; }
.tpl-moderno .r-exp-role{ color:#FF7A30; font-weight:600; font-size:11px; margin-bottom:2px; }
.tpl-moderno .r-period{ color:#8A93A3; font-size:10.3px; font-weight:600; white-space:nowrap; }

/* ---------------- EXECUTIVO (elegante, serifado) ---------------- */
.tpl-executivo{ font-family:'Georgia',serif; padding:18mm 17mm; }
.tpl-executivo .r-title{ font-size:24px; letter-spacing:.03em; color:#16324F; font-weight:700; }
.tpl-executivo .r-subtitle{ font-size:12px; color:#FF7A30; font-weight:700; margin-top:2px; letter-spacing:.03em; }
.tpl-executivo .r-contactline{ font-size:10.6px; color:#5B6472; margin-top:8px; font-family:var(--f-body); }
.tpl-executivo .r-hr{ border:none; border-top:1px solid #16324F; margin:12px 0 16px; }
.tpl-executivo .r-heading{
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#16324F;
  margin-bottom:8px; font-weight:700;
}
.tpl-executivo .r-summary{ font-size:12.6px; color:#33394A; margin-bottom:4px; }
.tpl-executivo .r-exp-item{ margin-bottom:12px; }
.tpl-executivo .r-exp-head{ display:flex; justify-content:space-between; font-weight:700; font-size:13px; }
.tpl-executivo .r-exp-role{ font-style:italic; color:#5B6472; font-family:var(--f-body); font-size:11px; margin-bottom:3px; }
.tpl-executivo .r-period{ font-family:var(--f-body); color:#8A93A3; font-size:10.5px; }
.tpl-executivo .r-skills-inline{ font-family:var(--f-body); font-size:11.5px; color:#33394A; }
.tpl-executivo .r-skills-inline span{
  display:inline-block; background:#F1F3F7; border:1px solid #E1E6EE; padding:3px 9px; border-radius:4px; margin:0 6px 6px 0;
}

/* ---------------- PRIMEIRO EMPREGO (acolhedor, foco em potencial) ---------------- */
.tpl-primeiro-emprego{ padding:16mm 15mm; }
.tpl-primeiro-emprego .r-top{
  background:#E7EEF5; border-radius:10px; padding:16px 18px; margin-bottom:16px;
  display:flex; align-items:center; gap:14px;
}
.tpl-primeiro-emprego .r-photo{
  width:64px; height:64px; border-radius:50%; overflow:hidden; flex:none; background:#fff;
  display:flex; align-items:center; justify-content:center; color:#8A93A3; font-size:9px; text-align:center;
  border:2px solid #fff; box-shadow:0 0 0 2px #16324F;
}
.tpl-primeiro-emprego .r-photo img{ width:100%; height:100%; object-fit:cover; }
.tpl-primeiro-emprego .r-title{ font-size:19px; font-weight:700; color:#16324F; }
.tpl-primeiro-emprego .r-subtitle{ font-size:11px; color:#5B6472; margin-top:3px; }
.tpl-primeiro-emprego .r-heading{
  font-size:11.5px; text-transform:uppercase; letter-spacing:.08em; color:#fff; background:#16324F;
  display:inline-block; padding:4px 10px; border-radius:5px; margin-bottom:8px; font-weight:700;
}
.tpl-primeiro-emprego .r-tags{ display:flex; flex-wrap:wrap; gap:6px; }
.tpl-primeiro-emprego .r-tags span{
  background:#FFEADC; color:#E15F17; font-size:10.6px; font-weight:600; padding:4px 10px; border-radius:999px;
}
.tpl-primeiro-emprego .r-exp-item{ margin-bottom:10px; padding-left:12px; border-left:3px solid #FF7A30; }
.tpl-primeiro-emprego .r-exp-head{ font-weight:700; }
.tpl-primeiro-emprego .r-exp-role{ font-size:11px; color:#5B6472; }

/* ---------------- MILITAR (formal, oficial) ---------------- */
.tpl-militar{ padding:14mm 15mm; font-family:var(--f-mono); font-size:11.3px; }
.tpl-militar .r-box{ border:2px solid #20242C; padding:10px 14px; margin-bottom:12px; }
.tpl-militar .r-title{
  text-align:center; font-size:16px; text-transform:uppercase; letter-spacing:.1em; font-weight:700;
  font-family:var(--f-mono);
}
.tpl-militar .r-subtitle{ text-align:center; font-size:9.5px; letter-spacing:.15em; text-transform:uppercase; color:#5B6472; margin-top:2px; }
.tpl-militar .r-heading{
  font-size:10.8px; text-transform:uppercase; letter-spacing:.08em; font-weight:700;
  background:#20242C; color:#fff; padding:4px 8px; margin-bottom:7px;
}
.tpl-militar .r-field{ margin-bottom:3px; }
.tpl-militar .r-field b{ text-transform:uppercase; }
.tpl-militar .r-exp-item{ margin-bottom:9px; border-bottom:1px dotted #C7CDD8; padding-bottom:7px; }
.tpl-militar .r-exp-head{ display:flex; justify-content:space-between; font-weight:700; text-transform:uppercase; font-size:10.8px; }
.tpl-militar .r-exp-role{ color:#3A4457; }

/* ---------------- COM FOTO (banner colorido no topo) ---------------- */
.tpl-com-foto{ padding:0; }
.tpl-com-foto .r-banner{
  background:linear-gradient(120deg,#16324F,#1F4A73); color:#fff; padding:16mm 15mm 14mm;
  display:flex; align-items:center; gap:16px;
}
.tpl-com-foto .r-photo{
  width:92px; height:92px; border-radius:14px; overflow:hidden; flex:none; background:rgba(255,255,255,.14);
  display:flex; align-items:center; justify-content:center; color:#B9C7DA; font-size:10px; text-align:center;
  border:2px solid rgba(255,255,255,.4);
}
.tpl-com-foto .r-photo img{ width:100%; height:100%; object-fit:cover; }
.tpl-com-foto .r-title{ font-size:21px; font-weight:700; color:#fff; }
.tpl-com-foto .r-subtitle{ font-size:11.5px; color:#FF9A5C; font-weight:600; margin-top:4px; }
.tpl-com-foto .r-contactline{ font-size:10.4px; color:#CBD8E8; margin-top:8px; }
.tpl-com-foto .r-body{ padding:14mm 15mm; }
.tpl-com-foto .r-heading{
  font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:#16324F;
  border-left:4px solid #FF7A30; padding-left:8px; margin-bottom:9px; font-weight:700;
}
.tpl-com-foto .r-exp-item{ margin-bottom:11px; }
.tpl-com-foto .r-exp-head{ display:flex; justify-content:space-between; font-weight:700; }
.tpl-com-foto .r-exp-role{ color:#FF7A30; font-weight:600; font-size:11px; }
.tpl-com-foto .r-period{ color:#8A93A3; font-size:10.3px; }

/* ---------------- Screen scaling ---------------- */
@media screen{
  #preview-surface .resume-page{ box-shadow:none; }
}
@media (max-width:560px){
  .preview-frame{ padding:var(--sp-3); }
}
