/* ==========================================================================
   CV: página, hoja (8.5 × 11 in) y dos plantillas
   Fuentes guardadas en el sitio para que el PDF salga igual en cualquier equipo.
   ========================================================================== */
@font-face { font-family: 'Tinos'; src: url('assets/fonts/tinos-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: block; }
@font-face { font-family: 'Tinos'; src: url('assets/fonts/tinos-latin-400-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: block; }
@font-face { font-family: 'Tinos'; src: url('assets/fonts/tinos-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: block; }
@font-face { font-family: 'CV Oswald'; src: url('assets/fonts/oswald-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-display: block; }
@font-face { font-family: 'CV Oswald'; src: url('assets/fonts/oswald-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-display: block; }
@font-face { font-family: 'CV Oswald'; src: url('assets/fonts/oswald-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-display: block; }
@font-face { font-family: 'CV Arimo'; src: url('assets/fonts/arimo-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: block; }
@font-face { font-family: 'CV Arimo'; src: url('assets/fonts/arimo-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-display: block; }

/* ---------- Página ---------- */
.cv-main {
    background-color: #0D0E15;
    padding-bottom: 72px;
}

.cv-hero {
    padding: clamp(36px, 7vh, 64px) 24px;
    background-color: #1D2D44;
    text-align: center;
}

.cv-hero h1 {
    margin: 0;
    color: #F3F4F6;
    font-family: 'MiFuentePersonalizada', 'Oswald', sans-serif;
    font-size: clamp(2.4rem, 5vw, 4rem);
    letter-spacing: 2px;
    line-height: 1.1;
    text-transform: uppercase;
}

.cv-hero p {
    max-width: 560px;
    margin: 14px auto 0;
    color: #D1D5DB;
    font-size: 1.1rem;
    line-height: 1.6;
}

.cv-toolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 12px;
    margin-top: 28px;
}

.segmented {
    display: inline-flex;
    padding: 4px;
    border: 1px solid rgba(243, 244, 246, 0.2);
    border-radius: 999px;
}

.segmented button {
    min-height: 40px;
    padding: 8px 18px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #D1D5DB;
    font-family: 'Arimo', sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
}

.segmented button[aria-pressed="true"] {
    background: #F3F4F6;
    color: #0D0E15;
}

.cv-note {
    font-size: 0.9rem !important;
    color: #9CA3AF !important;
}

.cv-stage {
    width: min(100% - 40px, 816px);
    margin: 40px auto 0;
}

.cv-scale {
    position: relative;
}

/* ---------- Hoja ---------- */
.paper {
    width: 8.5in;
    min-height: 11in;
    background: #FFFFFF;
    color: #111827;
    transform-origin: top left;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}

.cv ul {
    margin: 0;
    padding: 0;
}

/* ==========================================================================
   Plantilla Harvard: texto sobrio, una columna, amigable con ATS
   ========================================================================== */
.cv-harvard {
    padding: 0.5in 0.65in;
    font-family: 'Tinos', 'Times New Roman', serif;
    font-size: 10.5pt;
    line-height: 1.28;
}

.h-head {
    text-align: center;
}

.h-head h1 {
    margin: 0;
    font-size: 20pt;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.h-head p {
    margin: 4px 0 0;
    font-size: 9.5pt;
}

.cv-harvard section {
    margin-top: 10px;
}

.cv-harvard h2 {
    margin: 0 0 6px;
    padding-bottom: 2px;
    border-bottom: 1px solid #111827;
    font-size: 10pt;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
}

.cv-harvard p {
    margin: 0 0 3px;
}

.h-entry {
    margin-bottom: 7px;
}

.h-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
}

.h-row span {
    flex-shrink: 0;
    text-align: right;
}

.cv-harvard ul {
    margin: 2px 0 0 18px;
}

.cv-harvard li {
    margin-bottom: 1px;
}

/* ==========================================================================
   Plantilla visual: identidad del portafolio (azul noche + verde)
   ========================================================================== */
.cv-visual {
    display: grid;
    grid-template-columns: 2.75in 1fr;
    min-height: 11in;
    font-family: 'CV Arimo', Arial, sans-serif;
    font-size: 9pt;
    line-height: 1.42;
}

.v-side {
    padding: 0.45in 0.3in;
    background: #1D2D44;
    color: #E5E7EB;
}

.v-photo {
    display: block;
    width: 1.2in;
    height: 1.2in;
    margin: 0 auto 12px;
    border: 3px solid #10B981;
    border-radius: 50%;
    object-fit: cover;
}

.v-side h1 {
    margin: 0;
    color: #FFFFFF;
    font-family: 'CV Oswald', sans-serif;
    font-size: 17pt;
    font-weight: 700;
    line-height: 1.08;
    text-transform: uppercase;
    text-align: center;
}

.v-title {
    margin: 6px 0 2px;
    color: #10B981;
    font-weight: 700;
    text-align: center;
}

.v-location {
    margin: 0;
    color: #9CA3AF;
    font-size: 8.5pt;
    text-align: center;
}

.v-side section {
    margin-top: 14px;
}

.v-side h2,
.v-main h2 {
    margin: 0 0 8px;
    font-family: 'CV Oswald', sans-serif;
    font-size: 11pt;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.v-side h2 {
    padding-bottom: 4px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    color: #FFFFFF;
}

.v-side h3 {
    margin: 8px 0 4px;
    color: #9CA3AF;
    font-size: 7.5pt;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
}

.v-side ul {
    list-style: none;
}

.v-contact li {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 5px;
    font-size: 8.2pt;
}

.v-contact .icon {
    width: 12px;
    height: 12px;
    color: #10B981;
}

.v-contact a {
    color: inherit;
    text-decoration: none;
}

.v-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.v-chips li {
    padding: 2px 8px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    font-size: 8pt;
}

.v-langs li {
    display: flex;
    justify-content: space-between;
    margin-bottom: 3px;
}

.v-langs li span:last-child {
    color: #9CA3AF;
}

.v-interests {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 0;
}

.v-interests li:not(:last-child)::after {
    content: '·';
    margin: 0 6px;
    color: #10B981;
}

.v-main {
    padding: 0.45in 0.42in;
}

.v-main section + section {
    margin-top: 16px;
}

.v-main h2 {
    color: #1D2D44;
}

.v-main h2::after {
    content: '';
    display: block;
    width: 28px;
    height: 3px;
    margin-top: 3px;
    border-radius: 3px;
    background: #10B981;
}

.v-summary p {
    margin: 0;
    color: #374151;
    font-size: 9.5pt;
}

.v-entry {
    margin-bottom: 10px;
}

.v-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
}

.v-entry h3 {
    margin: 0;
    color: #111827;
    font-size: 10pt;
    font-weight: 700;
}

.v-date {
    flex-shrink: 0;
    color: #6B7280;
    font-size: 8.5pt;
    font-weight: 700;
}

.v-stack {
    margin: 1px 0 3px;
    color: #059669;
    font-size: 8.5pt;
    font-weight: 700;
}

.v-main ul {
    margin-left: 14px;
    color: #374151;
}

.v-main li {
    margin-bottom: 2px;
}

.v-main li::marker {
    color: #10B981;
}

.v-certs {
    margin-left: 0 !important;
    list-style: none;
}

.v-certs li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px;
}

/* ==========================================================================
   Modos sin sitio alrededor: generación de PDF, vista previa del admin e impresión
   ========================================================================== */
@page {
    size: letter;
    margin: 0;
}

.cv-print body,
.cv-embed body {
    min-height: 0;
    background: #FFFFFF;
}

.cv-print .cv-main,
.cv-embed .cv-main {
    padding: 0;
    background: transparent;
}

.cv-print .cv-stage {
    width: 8.5in;
    margin: 0;
}

.cv-print .paper {
    box-shadow: none;
}

.cv-embed body {
    background: #E5E7EB;
}

.cv-embed .cv-stage {
    width: calc(100% - 24px);
    margin: 12px auto;
}

@media print {
    body {
        background: #FFFFFF !important;
    }

    [data-layout],
    .skip-link,
    .cv-hero {
        display: none !important;
    }

    .cv-main {
        padding: 0 !important;
        background: transparent !important;
    }

    .cv-stage {
        width: 8.5in !important;
        margin: 0 !important;
    }

    .cv-scale {
        height: auto !important;
    }

    .paper {
        transform: none !important;
        box-shadow: none !important;
    }

    .cv-visual {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

/* Skeleton de la hoja mientras llegan los datos */
.paper.skel {
    --skel-base: #E5E7EB;
    --skel-shine: #F9FAFB;
    background-color: var(--skel-base);
}
