/* CV: professional profile, skills, experience and education. */
.cv-page { background:radial-gradient(ellipse at 95% 4%,#ffdfdd6b,transparent 24%),radial-gradient(ellipse at 8% 30%,#d6f4ed65,transparent 28%) }
.cv-page section[id] { scroll-margin-top:0 }
.cv-hero { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr); gap:75px; align-items:center; padding-top:80px; padding-bottom:45px }
.cv-intro .eyebrow { margin:0 0 26px }
.cv-intro h1 { font-family:var(--display); font-size:clamp(48px,4.8vw,64px); font-weight:500; line-height:1.08; letter-spacing:-2px; margin:0 0 25px }
.cv-intro h1 em { font-style:normal; color:#8960b5 }
.cv-full-name { font-size:19px; font-weight:900; margin:0 0 15px }
.cv-lead { max-width:620px; margin:0; font-size:16px; color:var(--muted); line-height:1.85 }
.cv-actions { margin-top:29px; flex-wrap:wrap }
.cv-actions .button { font-size:14px }
.cv-linkedin { display:inline-block; margin-top:25px; font-size:13px }
.cv-profile-card { max-width:355px; width:100%; justify-self:end; border:1px solid #ffffffdc; border-radius:140px 140px 28px 28px; background:#ffffff80; backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); box-shadow:inset 0 1px 0 white,0 24px 50px #553c7520; overflow:hidden }
.cv-profile-image { position:relative; height:360px; overflow:hidden; background:radial-gradient(ellipse at 25% 20%,#fff9e9,transparent 60%),linear-gradient(145deg,#cab8e7,#a9ddcb) }
.cv-profile-image img { width:auto; height:calc(100% - 20px); position:absolute; top:50px; left:50%; transform:translateX(-50%) }
.cv-profile-tag { position:absolute; top:17px; left:50%; transform:translateX(-50%); z-index:1; white-space:nowrap; font-size:9px; letter-spacing:1.4px; background:#ffffffc9; border:1px solid white; padding:7px 12px; border-radius:20px }
.cv-profile-caption { padding:21px 25px 25px }
.cv-profile-caption>span { display:block; font-size:8px; letter-spacing:1px; color:var(--muted); margin-bottom:10px }
.cv-profile-caption strong { font-family:var(--display); font-size:24px; font-weight:500; line-height:1.25 }
.cv-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px }
.cv-summary>div { padding:25px 28px; border:1px solid #ffffffcc; border-radius:20px; background:#ffffff80; box-shadow:0 10px 25px #6b4e7210 }
.cv-summary strong { display:block; font-family:var(--display); font-size:29px; font-weight:500; line-height:1.2; margin-bottom:12px }
.cv-summary span { display:block; font-size:12px; line-height:1.7; color:var(--muted); max-width:280px }
.cv-section-links { display:flex; flex-wrap:wrap; gap:10px; padding-top:28px }
.cv-section-links a { display:inline-flex; gap:24px; align-items:center; padding:10px 16px; border:1px solid #d9cbe9; border-radius:13px; background:#ffffff70; font-size:12px; transition:background .2s }
.cv-section-links a:hover { background:#fff }
.cv-section-links a span { color:#9768bb }
.cv-stars-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px }
.cv-star-card { display:flex; flex-direction:column; align-items:start; padding:34px; border:1px solid #ffffffdd; border-radius:28px; box-shadow:inset 0 1px 0 white,0 18px 35px #76527a15; backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px) }
.cv-star-card--pimer { --cv-star-ink:#a54d22; background:radial-gradient(ellipse at 0 0,#ffe0cba6,transparent 75%),#ffffff85 }
.cv-star-card--zappy { --cv-star-ink:#7343a4; background:radial-gradient(ellipse at 0 0,#e9d2fbb3,transparent 75%),#ffffff85 }
.cv-star-brand { display:flex; align-items:center; justify-content:space-between; gap:20px; width:100%; margin-bottom:26px }
.cv-star-brand img { display:block; width:130px; height:50px; object-fit:contain; object-position:left center }
.cv-star-card--zappy .cv-star-brand img { width:150px; height:56px; padding:11px 16px; border-radius:14px; background:var(--zappy); box-shadow:0 6px 12px #571eb826 }
.cv-star-brand>span { display:grid; place-items:center; width:40px; height:40px; border:1px solid #ffffffd9; border-radius:14px; background:#ffffff96; color:var(--cv-star-ink); font-size:27px }
.cv-star-card .cv-star-role { font-size:9px; line-height:1.7; letter-spacing:1px; color:var(--cv-star-ink); margin:0 0 12px }
.cv-star-card h3 { font-family:var(--display); font-size:37px; font-weight:500; line-height:1.15; margin:0 0 16px }
.cv-star-card>p:not(.cv-star-role) { font-size:14px; color:var(--muted); line-height:1.85; margin:0 0 23px }
.cv-star-milestone { display:inline-block; padding:8px 12px; border:1px solid #ffffffdf; border-radius:11px; background:#ffffff91; color:var(--cv-star-ink); font-size:10px; margin-bottom:27px }
.cv-star-card>.text-link { margin-top:auto; color:var(--cv-star-ink); font-size:13px }
.cv-skills-section { padding-top:25px }
.cv-skills-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px }
.cv-skill-card { padding:27px; border:1px solid #ffffffdd; border-radius:24px; background:#ffffff82; backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 14px 28px #694b7310 }
.cv-skill-card--featured { border-color:#d9c4e9; background:#ffffffe0 }
.cv-card-number { display:grid; place-items:center; width:34px; height:34px; border:1px solid #d9c9ea; background:#ece1f7; border-radius:11px; color:#8354a6; font-size:11px; margin-bottom:21px }
.cv-skill-card:nth-child(3n+2) .cv-card-number { border-color:#ebcdbb; background:#ffead9; color:#a25e2d }
.cv-skill-card:nth-child(3n) .cv-card-number { border-color:#bee0d7; background:#dcf1e9; color:#47856e }
.cv-skill-card h3,.cv-education-card h3 { font-family:var(--display); font-weight:500; font-size:24px; line-height:1.25; margin:0 0 14px }
.cv-skill-card>p { font-size:13px; color:var(--muted); line-height:1.8; margin:0 0 22px }
.cv-tags { list-style:none; display:flex; flex-wrap:wrap; gap:7px; padding:0; margin:0 }
.cv-tags li { padding:5px 9px; font-size:10px; font-weight:700; border:1px solid #ded1ea; border-radius:9px; color:#6b557e; background:#fff8 }
.cv-experience-section { padding-top:25px }
.cv-timeline { list-style:none; margin:0; padding:0 }
.cv-timeline>li { position:relative; display:grid; grid-template-columns:190px minmax(0,1fr); gap:36px; margin-bottom:25px; padding-left:28px; border-left:1px solid #cdb7e6 }
.cv-timeline>li:before { content:''; position:absolute; top:28px; left:-6px; width:11px; height:11px; border-radius:50%; background:#a783c9; box-shadow:0 0 0 5px #ede3f6 }
.cv-experience-date { color:#86649f; font-size:12px; line-height:1.7; padding-top:24px; max-width:165px }
.cv-experience-card { padding:30px 34px; border:1px solid #ffffffdc; border-radius:23px; background:#ffffff83; box-shadow:0 14px 30px #694b7310 }
.cv-experience-card .cv-organization { margin:0 0 11px; color:#896ba5; font-size:10px; letter-spacing:.6px }
.cv-experience-card h3 { font-family:var(--display); font-weight:500; font-size:30px; line-height:1.25; margin:0 0 15px }
.cv-experience-card>p:not(.cv-organization) { margin:0 0 18px; color:var(--muted); font-size:14px; line-height:1.85 }
.cv-highlights { margin:0 0 23px; padding-left:18px; font-size:13px; line-height:1.8; color:var(--muted) }
.cv-highlights li { margin:7px 0 }
.cv-highlights li::marker { color:#ae8bcf }
.cv-experience-card>.text-link { font-size:12px }
.cv-career-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(64px,7vw,112px); align-items:start }
.cv-career-column { min-width:0 }
.cv-career-heading { min-height:145px; padding:0 0 25px }
.cv-career-kicker { display:inline-block; padding:6px 11px; border:1px solid #d9c4e9; border-radius:10px; color:#8a60a7; background:#ffffff80; font-size:9px; letter-spacing:1px }
.cv-career-heading h3 { font-family:var(--display); font-weight:500; font-size:29px; line-height:1.2; margin:17px 0 12px }
.cv-career-heading p { color:var(--muted); font-size:12px; line-height:1.8; margin:0; max-width:460px }
.cv-career-grid .cv-timeline>li { grid-template-columns:minmax(0,1fr); gap:12px; padding-left:24px; margin-bottom:26px }
.cv-career-grid .cv-timeline>li:before { top:5px; width:10px; height:10px; left:-5px }
.cv-career-grid .cv-experience-date { padding:0; max-width:none; font-size:11px }
.cv-career-grid .cv-experience-card { padding:25px; border-radius:21px }
.cv-career-grid .cv-experience-card h4 { font-family:var(--display); font-weight:500; font-size:26px; line-height:1.25; margin:0 0 15px }
.cv-career-grid .cv-experience-card>p:not(.cv-organization) { font-size:13px; line-height:1.85 }
.cv-career-grid .cv-highlights { font-size:12px }
.cv-career-column--employment .cv-career-kicker { border-color:#bbd8d0; color:#4b8074; background:#e2f1e9a6 }
.cv-employment-timeline>li { border-color:#b7d8ce }
.cv-career-grid .cv-employment-timeline>li:before { background:#75b29f; box-shadow:0 0 0 5px #e4f1ea }
.cv-career-column--employment .cv-experience-date { color:#568779 }
.cv-career-grid .cv-employment-card { background:linear-gradient(135deg,#f0fbf6b3,#ffffff91); border-color:#c9e0d8; box-shadow:0 14px 28px #4d796010 }
.cv-employment-topline { display:flex; align-items:center; gap:14px; margin-bottom:18px }
.cv-employment-logo { display:block; width:54px; height:54px; flex:0 0 54px; object-fit:contain; border:1px solid #d4e3dc; border-radius:13px; background:#fff; box-shadow:0 5px 12px #547e6810 }
.cv-employment-topline .cv-organization { min-width:0; color:#598877; margin:0; font-size:12px; font-weight:800; line-height:1.6; letter-spacing:.2px }
.cv-career-grid .cv-employment-card>p:last-child { margin-bottom:0 }
.cv-education-section { padding-top:25px }
.cv-education-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px }
.cv-education-card { padding:29px; border:1px solid #ffffffdc; border-radius:23px; background:#ffffff83; box-shadow:0 14px 28px #694b7310 }
.cv-education-card .eyebrow { font-size:9px; letter-spacing:1px; margin:0 0 20px; color:#9170ab }
.cv-education-card>p:last-child { color:var(--muted); font-size:13px; line-height:1.8; margin:18px 0 0 }
.cv-learning { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:35px; padding:31px; margin-top:24px; border:1px solid #d8cae7; border-radius:23px; background:#e6d9f480 }
.cv-learning .eyebrow { font-size:9px; letter-spacing:1px; margin:0 0 18px }
.cv-learning h3 { font-family:var(--display); font-weight:500; font-size:27px; line-height:1.2; margin:0 }
.cv-course-list { margin:0; padding-left:18px; color:var(--muted); font-size:13px; line-height:1.8 }
.cv-course-list li { margin:6px 0 }
.cv-languages { display:flex; align-items:center; flex-wrap:wrap; gap:13px; margin-top:22px; padding:20px 25px; border:1px solid #ffffffdc; border-radius:18px; background:#ffffff70; font-size:12px }
.cv-languages h3 { margin:0 10px 0 0; font-family:var(--display); font-size:21px; font-weight:500 }
.cv-languages ul { list-style:none; display:flex; flex-wrap:wrap; gap:10px 20px; padding:0; margin:0; color:var(--muted) }
.cv-projects-section { padding-top:25px }
.cv-projects-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px }
.cv-project-card { position:relative; display:block; padding:28px; border:1px solid #ffffffdc; border-radius:23px; background:#ffffff83; box-shadow:0 14px 28px #694b7310; transition:background .2s }
.cv-project-card:hover { background:white }
.cv-project-card>span { font-size:9px; letter-spacing:.8px; color:#9372ad }
.cv-project-card h3 { font-family:var(--display); font-size:29px; font-weight:500; line-height:1.2; margin:22px 0 12px }
.cv-project-card p { font-size:13px; line-height:1.8; color:var(--muted); padding-right:25px; margin:0 }
.cv-project-card>b { position:absolute; right:24px; bottom:23px; font-size:22px; color:#9b76b9 }
.cv-print-contact { display:none }

@media(max-width:1100px) {
    .cv-hero { gap:45px }
    .cv-skills-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
    .cv-summary>div { padding:23px }
    .cv-summary strong { font-size:25px }
    .cv-timeline>li { grid-template-columns:150px minmax(0,1fr); gap:25px }
    .cv-education-card { padding:23px }
    .cv-education-card h3 { font-size:22px }
}

@media(max-width:900px) {
    .cv-hero { grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr); gap:28px; padding-top:45px }
    .cv-intro h1 { font-size:50px }
    .cv-profile-image { height:310px }
    .cv-profile-caption { padding:18px }
    .cv-profile-caption strong { font-size:21px }
    .cv-lead { font-size:14px }
    .cv-education-grid,.cv-projects-grid { grid-template-columns:minmax(0,1fr) }
    .cv-education-card { padding:27px }
    .cv-education-card h3 { font-size:25px }
    .cv-project-card p { max-width:500px }
    .cv-career-grid { grid-template-columns:minmax(0,1fr); gap:64px }
    .cv-career-heading { min-height:0; padding-bottom:23px }
}

@media(max-width:650px) {
    .cv-hero { grid-template-columns:minmax(0,1fr); padding-top:32px; gap:33px; padding-bottom:30px }
    .cv-intro .eyebrow { font-size:9px; letter-spacing:1px; margin-bottom:20px }
    .cv-intro h1 { font-size:clamp(40px,10vw,50px); letter-spacing:-1.5px; margin-bottom:20px }
    .cv-full-name { font-size:16px }
    .cv-lead { font-size:15px }
    .cv-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:13px }
    .cv-actions .button { font-size:13px; padding-inline:16px }
    .cv-linkedin { font-size:12px; margin-top:22px }
    .cv-profile-card { max-width:290px; justify-self:center }
    .cv-profile-image { height:300px }
    .cv-profile-caption { padding:20px 22px }
    .cv-summary { grid-template-columns:minmax(0,1fr); gap:10px }
    .cv-summary>div { padding:20px 23px }
    .cv-summary strong { font-size:26px; margin-bottom:8px }
    .cv-summary span { max-width:none }
    .cv-section-links { gap:8px; padding-top:23px }
    .cv-section-links a { font-size:11px; gap:15px; padding:9px 12px }
    .cv-stars-grid { grid-template-columns:minmax(0,1fr); gap:17px }
    .cv-star-card { padding:25px; border-radius:24px }
    .cv-star-brand { margin-bottom:23px }
    .cv-star-card h3 { font-size:33px }
    .cv-star-card>p:not(.cv-star-role) { font-size:13px }
    .cv-star-milestone { font-size:9px; line-height:1.7; padding:7px 10px }
    .cv-star-card>.text-link { font-size:12px }
    .cv-skills-grid { grid-template-columns:minmax(0,1fr); gap:15px }
    .cv-skill-card { padding:24px }
    .cv-skill-card h3 { font-size:25px }
    .cv-timeline>li { grid-template-columns:minmax(0,1fr); gap:13px; padding-left:20px; margin-bottom:27px }
    .cv-timeline>li:before { top:8px }
    .cv-experience-date { padding-top:0; max-width:none; font-size:11px }
    .cv-experience-card { padding:23px }
    .cv-experience-card h3 { font-size:26px }
    .cv-experience-card .cv-organization { line-height:1.7 }
    .cv-experience-card>p:not(.cv-organization) { font-size:13px }
    .cv-highlights { font-size:12px }
    .cv-experience-card>.text-link { font-size:11px }
    .cv-career-heading h3 { font-size:27px }
    .cv-career-grid .cv-timeline>li { padding-left:20px }
    .cv-career-grid .cv-experience-card { padding:22px }
    .cv-career-grid .cv-experience-card h4 { font-size:24px }
    .cv-career-grid .cv-experience-card>p:not(.cv-organization) { font-size:12px }
    .cv-learning { grid-template-columns:minmax(0,1fr); padding:25px; gap:22px }
    .cv-page .section-head h2 { font-size:33px }
    .cv-page .section-head { gap:25px }
    .cv-project-card { padding:25px }
}

@media print {
    @page { size:A4; margin:15mm }
    body { background:white!important; font-size:10pt; color:#292336!important }
    .nav-shell,.progress,.skip,body>footer,.cv-actions,.cv-linkedin,.cv-section-links,.cv-page #contacto { display:none!important }
    .cv-page { background:none }
    .cv-page .wrap { width:100%; max-width:none }
    .cv-hero { grid-template-columns:1fr; padding:0 0 16px; gap:0 }
    .cv-intro h1 { font-size:32pt; margin-bottom:12px }
    .cv-intro .eyebrow { margin-bottom:12px }
    .cv-full-name { font-size:13pt }
    .cv-lead { font-size:10pt; max-width:none; line-height:1.6 }
    .cv-profile-card { display:none }
    .cv-summary { gap:10px }
    .cv-summary>div { padding:12px; border:1px solid #ddd; background:none; box-shadow:none }
    .cv-summary strong { font-size:16pt; margin-bottom:6px }
    .cv-summary span { font-size:9pt }
    .cv-page .section { padding:25px 0 0 }
    .cv-page .section-head { margin-bottom:16px; display:block; break-after:avoid }
    .cv-page .section-head h2 { font-size:22pt }
    .cv-page .section-head .eyebrow { font-size:8pt; margin-bottom:10px }
    .cv-page .section-head>p,.cv-page .section-head>.text-link { display:none }
    .cv-stars-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px }
    .cv-star-card { padding:16px; background:none; box-shadow:none; border:1px solid #ddd; border-radius:10px; backdrop-filter:none; break-inside:avoid }
    .cv-star-brand { display:none }
    .cv-star-brand>span,.cv-star-card>.text-link { display:none }
    .cv-star-card h3 { font-size:20pt; margin-bottom:10px }
    .cv-star-card>p:not(.cv-star-role) { font-size:9pt; line-height:1.5; margin-bottom:12px }
    .cv-star-card .cv-star-role { font-size:7pt }
    .cv-star-milestone { margin-bottom:0; padding:0; border:0; background:none; font-size:8pt }
    .cv-skills-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px }
    .cv-skill-card,.cv-education-card,.cv-experience-card,.cv-project-card { background:none; box-shadow:none; border:1px solid #ddd; border-radius:10px; padding:16px; backdrop-filter:none; break-inside:avoid }
    .cv-card-number { display:none }
    .cv-skill-card h3,.cv-education-card h3 { font-size:14pt }
    .cv-skill-card>p,.cv-experience-card>p:not(.cv-organization),.cv-education-card>p:last-child,.cv-project-card p { font-size:9pt; line-height:1.5 }
    .cv-tags li { font-size:8pt; padding:3px 5px }
    .cv-timeline>li { grid-template-columns:120px minmax(0,1fr); gap:18px; margin-bottom:14px; break-inside:avoid }
    .cv-experience-date { font-size:9pt; padding-top:14px }
    .cv-experience-card h3 { font-size:16pt }
    .cv-highlights { font-size:9pt; line-height:1.5; margin-bottom:0 }
    .cv-experience-card>.text-link { display:none }
    .cv-career-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px }
    .cv-career-heading { min-height:104px; padding-bottom:14px; break-inside:avoid; break-after:avoid }
    .cv-career-kicker { font-size:7pt; padding:3px 5px }
    .cv-career-heading h3 { font-size:15pt; margin:10px 0 }
    .cv-career-heading p { font-size:8pt; line-height:1.5 }
    .cv-career-grid .cv-timeline>li { gap:8px; padding-left:15px; margin-bottom:16px }
    .cv-career-grid .cv-experience-date { font-size:8pt }
    .cv-career-grid .cv-experience-card { padding:14px; border-radius:10px; background:none; box-shadow:none; border-color:#ddd }
    .cv-career-grid .cv-experience-card h4 { font-size:13pt }
    .cv-career-grid .cv-experience-card>p:not(.cv-organization),.cv-career-grid .cv-highlights { font-size:8pt; line-height:1.5 }
    .cv-employment-topline { gap:10px; margin-bottom:10px }
    .cv-employment-logo { width:36px; height:36px; flex-basis:36px; border-radius:8px; box-shadow:none }
    .cv-employment-topline .cv-organization { font-size:8pt }
    .cv-education-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px }
    .cv-education-card .eyebrow { font-size:7pt; line-height:1.5; margin-bottom:10px }
    .cv-learning { padding:16px; gap:22px; background:none; border-color:#ddd; break-inside:avoid }
    .cv-learning h3 { font-size:16pt }
    .cv-course-list { font-size:9pt }
    .cv-projects-section { display:none }
    .cv-print-contact { display:flex; flex-direction:column; gap:4px; margin-top:24px; padding-top:14px; border-top:1px solid #ddd; font-size:9pt; break-inside:avoid }
}
