/* ============================================================
   Modelos de CV — o documento em si (renderizado e exportado).
   Cada .cv-doc e desenhado para largura A4 (~794px a 96dpi).
   Tres modelos: classico, moderno, elegante.
   ============================================================ */

.cv-doc {
    width: 794px;
    min-height: 1123px;
    margin: 0 auto;
    background: #fff;
    color: #1f1c19;
    box-shadow: 0 6px 30px rgba(0,0,0,.18);
    font-size: 14px;
    line-height: 1.55;
    box-sizing: border-box;
    overflow: hidden;
}
.cv-doc * { box-sizing: border-box; }
.cv-doc p { margin: 0; }
.cv-foto { object-fit: cover; }

/* ----- linhas de seccao (ano | descricao) ----- */
.cv-linha-item { display: grid; grid-template-columns: 110px 1fr; gap: 14px; padding: 7px 0; }
.cv-linha-item .quando { font-weight: 600; }
.cv-linha-item + .cv-linha-item { border-top: 1px solid #eee6da; }

/* ============================================================
   1) CLASSICO — sobrio, formal, uma coluna, serifado
   ============================================================ */
.cv-classico { padding: 56px 60px; font-family: 'Newsreader', Georgia, serif; }
.cv-classico .cab { display: flex; gap: 24px; align-items: center; border-bottom: 2px solid #1f1c19; padding-bottom: 20px; margin-bottom: 8px; }
.cv-classico .cab .cv-foto { width: 96px; height: 96px; border-radius: 4px; }
.cv-classico .cab h1 { font-family: 'Fraunces', Georgia, serif; font-size: 30px; font-weight: 600; line-height: 1.1; letter-spacing: -.01em; }
.cv-classico .cab .sub { color: #5b554c; font-size: 13.5px; margin-top: 6px; }
.cv-classico h2 {
    font-family: 'Fraunces', serif; font-size: 15px; font-weight: 600; letter-spacing: .08em;
    text-transform: uppercase; margin: 26px 0 8px; padding-bottom: 4px; border-bottom: 1px solid #cfc6b6;
}
.cv-classico .dados-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 28px; margin-top: 6px; }
.cv-classico .dados-grid div { font-size: 13.5px; }
.cv-classico .dados-grid b { color: #1f1c19; }
.cv-classico .assinatura { margin-top: 46px; text-align: right; }
.cv-classico .assinatura .traco { display: inline-block; width: 210px; border-top: 1px solid #1f1c19; padding-top: 5px; font-size: 12.5px; color: #5b554c; text-align: center; }

/* ============================================================
   2) MODERNO — duas colunas, barra lateral em tom terra
   ============================================================ */
.cv-moderno { display: flex; min-height: 1123px; font-family: 'Newsreader', Georgia, serif; }
.cv-moderno .lado {
    width: 270px; flex-shrink: 0; background: #3f5246; color: #f3efe6; padding: 40px 26px;
}
.cv-moderno .lado .cv-foto { width: 130px; height: 130px; border-radius: 50%; border: 4px solid rgba(255,255,255,.25); display: block; margin: 0 auto 18px; }
.cv-moderno .lado h1 { font-family: 'Fraunces', serif; font-size: 24px; text-align: center; line-height: 1.15; margin-bottom: 26px; }
.cv-moderno .lado h3 {
    font-family: 'Newsreader', serif; font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
    color: #d6a884; margin: 22px 0 8px; border-bottom: 1px solid rgba(255,255,255,.18); padding-bottom: 5px;
}
.cv-moderno .lado p { font-size: 12.8px; margin-bottom: 8px; }
.cv-moderno .lado p b { display: block; font-weight: 600; color: #fff; }
.cv-moderno .principal { flex: 1; padding: 44px 38px; }
.cv-moderno .principal h2 {
    font-family: 'Fraunces', serif; font-size: 17px; font-weight: 600; color: #3f5246;
    margin: 22px 0 8px; display: flex; align-items: center; gap: 10px;
}
.cv-moderno .principal h2:first-child { margin-top: 0; }
.cv-moderno .principal h2::before { content: ""; width: 22px; height: 3px; background: #b5532f; display: inline-block; }
.cv-moderno .assinatura { margin-top: 40px; text-align: right; color: #5b554c; }
.cv-moderno .assinatura .traco { display:inline-block; width: 200px; border-top: 1px solid #3f5246; padding-top: 5px; font-size: 12.5px; text-align:center; }

/* ============================================================
   3) ELEGANTE — tipografico, leve, acento dourado
   ============================================================ */
.cv-elegante { padding: 60px 64px; font-family: 'Newsreader', Georgia, serif; }
.cv-elegante .cab { text-align: center; margin-bottom: 10px; }
.cv-elegante .cab .cv-foto { width: 104px; height: 104px; border-radius: 50%; margin: 0 auto 14px; display:block; box-shadow: 0 0 0 6px #f4efe6; }
.cv-elegante .cab h1 { font-family: 'Fraunces', serif; font-weight: 400; font-size: 38px; letter-spacing: .02em; }
.cv-elegante .cab .sub { color: #8a6017; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; margin-top: 8px; }
.cv-elegante .regua { width: 60px; height: 2px; background: #c08a2d; margin: 18px auto 30px; }
.cv-elegante .contactos-linha { text-align: center; font-size: 13px; color: #5b554c; margin-bottom: 28px; }
.cv-elegante .contactos-linha span { margin: 0 10px; white-space: nowrap; }
.cv-elegante h2 {
    font-family: 'Fraunces', serif; font-style: italic; font-weight: 400; font-size: 20px; color: #1f1c19;
    text-align: center; margin: 28px 0 12px; position: relative;
}
.cv-elegante h2 small { display:block; }
.cv-elegante .dados-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 30px; max-width: 560px; margin: 0 auto; }
.cv-elegante .dados-grid div { font-size: 13.5px; text-align: center; }
.cv-elegante .cv-linha-item { grid-template-columns: 120px 1fr; max-width: 600px; margin: 0 auto; }
.cv-elegante .aptidoes-texto { text-align: center; max-width: 580px; margin: 0 auto; color: #3a352e; }
.cv-elegante .assinatura { margin-top: 44px; text-align: center; }
.cv-elegante .assinatura .traco { display:inline-block; width: 220px; border-top: 1px solid #c08a2d; padding-top: 6px; font-size: 12.5px; color: #8a6017; }

/* Em ecras pequenos, o documento encolhe proporcionalmente via JS (transform scale).
   Aqui garantimos que o contentor permite o scroll horizontal se necessario. */
.cv-palco { overflow-x: hidden; overflow-y: auto; padding: 10px; }
