feat: sitio CV completo v1.0.0

- 4 temas WordPress: persona-cv (activo), lumina, apex-cv, cvolio
- Plugin pflores-cv-fields con CMB2 (100% gratuito) — admin editable
- Generador PDF dinámico con Chromium headless (?cv_pdf=1)
- Datos del CV de Patricia Flores cargados en CMB2
- URL dinámica con soporte proxy SSL (NPM/X-Forwarded-Proto)
- WP Mail SMTP instalado (pendiente config SMTP)
- Documentación completa: PROMPT_IA.md, DEPLOY_WEB.md, PRODUCCION.md, VERSIONADO.md
This commit is contained in:
2026-06-05 11:21:30 -05:00
parent cc6545604c
commit 5846c515f3
77 changed files with 9567 additions and 220 deletions
+645 -115
View File
@@ -1,16 +1,20 @@
:root {
--bg: #f4efe7;
--bg-strong: #eadfd1;
--surface: rgba(255, 255, 255, 0.78);
--surface-strong: #fffdf8;
--text: #1f1d1a;
--muted: #6f685f;
--line: rgba(31, 29, 26, 0.1);
--accent: #d4582b;
--accent-dark: #9f3814;
--accent-soft: #f6c9ae;
--shadow: 0 24px 60px rgba(89, 57, 32, 0.12);
--radius-lg: 28px;
--bg: #ece8e1;
--bg-soft: #f7f5f0;
--surface: rgba(255, 255, 255, 0.82);
--surface-strong: #ffffff;
--surface-dark: #10161d;
--text: #17202a;
--muted: #5d6773;
--line: rgba(23, 32, 42, 0.1);
--accent: #9a7b4f;
--accent-strong: #7b5f39;
--accent-soft: #ece2d1;
--deep: #13202d;
--success: #2f6c60;
--shadow: 0 24px 60px rgba(16, 22, 29, 0.08);
--radius-xl: 32px;
--radius-lg: 24px;
--radius-md: 18px;
--radius-sm: 999px;
--container: 1180px;
@@ -28,12 +32,11 @@ html {
body {
margin: 0;
font-family: "Outfit", sans-serif;
color: var(--text);
font-family: "Manrope", sans-serif;
background:
radial-gradient(circle at top left, rgba(212, 88, 43, 0.14), transparent 34%),
radial-gradient(circle at right 20%, rgba(135, 148, 255, 0.12), transparent 24%),
linear-gradient(180deg, #f6f1e8 0%, #f9f6f1 48%, #efe5d8 100%);
radial-gradient(circle at top left, rgba(154, 123, 79, 0.15), transparent 26%),
linear-gradient(180deg, #f8f6f2 0%, #f0ece5 46%, #e6e0d5 100%);
}
a {
@@ -41,13 +44,18 @@ a {
text-decoration: none;
}
img {
max-width: 100%;
}
.site-bg {
position: fixed;
inset: 0;
background-image: linear-gradient(rgba(31, 29, 26, 0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(31, 29, 26, 0.03) 1px, transparent 1px);
background-size: 24px 24px;
mask-image: radial-gradient(circle at center, black 45%, transparent 90%);
background:
linear-gradient(rgba(19, 32, 45, 0.028) 1px, transparent 1px),
linear-gradient(90deg, rgba(19, 32, 45, 0.028) 1px, transparent 1px);
background-size: 28px 28px;
mask-image: radial-gradient(circle at center, black 38%, transparent 86%);
pointer-events: none;
}
@@ -67,19 +75,19 @@ a {
}
.site-header {
padding: 1.2rem 0 0;
padding-top: 1.2rem;
}
.site-header__inner {
display: flex;
display: grid;
grid-template-columns: auto 1fr auto;
align-items: center;
justify-content: space-between;
gap: 1rem;
padding: 1rem 1.25rem;
border: 1px solid var(--line);
padding: 0.95rem 1.2rem;
border: 1px solid rgba(19, 32, 45, 0.08);
border-radius: var(--radius-sm);
background: rgba(255, 253, 248, 0.78);
backdrop-filter: blur(18px);
background: rgba(255, 255, 255, 0.72);
backdrop-filter: blur(16px);
box-shadow: var(--shadow);
}
@@ -87,94 +95,182 @@ a {
h1,
h2,
h3 {
font-family: "Fraunces", serif;
font-family: "Cormorant Garamond", serif;
}
.site-brand {
font-size: 1.1rem;
font-size: 1.5rem;
font-weight: 700;
letter-spacing: 0.02em;
}
.site-nav-toggle {
display: none;
border: 0;
border-radius: var(--radius-sm);
background: var(--accent);
color: #fff;
padding: 0.85rem 1rem;
font: inherit;
.site-nav {
justify-self: center;
}
.site-nav__menu {
display: flex;
align-items: center;
gap: 1rem;
justify-content: center;
gap: 1.1rem;
list-style: none;
padding: 0;
margin: 0;
list-style: none;
}
.site-nav__menu a {
color: var(--muted);
font-weight: 500;
font-size: 0.95rem;
font-weight: 600;
}
.site-nav__menu a:hover,
.site-nav__menu a:focus-visible {
color: var(--text);
}
.site-nav-toggle,
.site-print,
.btn,
.cv-chip,
.skill-pill {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 44px;
border-radius: var(--radius-sm);
font: inherit;
}
.site-nav-toggle {
display: none;
border: 0;
padding: 0.75rem 1rem;
background: var(--deep);
color: #fff;
}
.site-print {
border: 1px solid rgba(19, 32, 45, 0.12);
background: rgba(255, 255, 255, 0.7);
color: var(--text);
padding: 0.7rem 1rem;
cursor: pointer;
}
.hero {
display: grid;
grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.95fr);
grid-template-columns: minmax(0, 1.6fr) minmax(320px, 0.9fr);
gap: 1.5rem;
padding: 2rem 0 1.5rem;
padding: 1.8rem 0;
}
.hero__copy,
.profile-card,
.content-card,
.side-card {
border: 1px solid rgba(31, 29, 26, 0.08);
border: 1px solid rgba(19, 32, 45, 0.08);
background: var(--surface);
backdrop-filter: blur(14px);
box-shadow: var(--shadow);
}
.hero__copy {
padding: 2rem;
position: relative;
overflow: hidden;
padding: 2.1rem;
border-radius: 40px;
}
.hero__copy::after {
content: "";
position: absolute;
right: -80px;
bottom: -80px;
width: 260px;
height: 260px;
border-radius: 50%;
background: radial-gradient(circle, rgba(154, 123, 79, 0.14), transparent 68%);
}
.eyebrow {
margin: 0 0 1rem;
font-size: 0.82rem;
margin: 0 0 0.9rem;
color: var(--accent-strong);
font-size: 0.8rem;
font-weight: 800;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--accent-dark);
}
.hero h1 {
margin: 0;
font-size: clamp(2.6rem, 5vw, 5.5rem);
line-height: 0.95;
font-size: clamp(3.1rem, 6vw, 5.5rem);
line-height: 0.92;
letter-spacing: -0.03em;
}
.hero__role {
margin: 1rem 0 0;
font-size: clamp(1.2rem, 2vw, 1.6rem);
color: var(--accent-dark);
color: var(--deep);
font-size: clamp(1.2rem, 2vw, 1.55rem);
font-weight: 700;
}
.hero__intro,
.entry-content,
.side-card p {
.side-card p,
.timeline__item p,
.demo-panel li,
.profile-card__label,
.profile-card__highlights span,
.metric-card span,
.achievement-card span {
color: var(--muted);
line-height: 1.7;
font-size: 1rem;
line-height: 1.75;
}
.hero__intro {
max-width: 58ch;
margin-top: 1rem;
}
.hero__metrics,
.hero__actions,
.chip-grid,
.skill-cloud {
.skill-cloud,
.contact-stack {
display: flex;
flex-wrap: wrap;
gap: 0.8rem;
gap: 0.85rem;
}
.hero__metrics {
margin-top: 1.5rem;
}
.hero__metrics--wide .metric-card {
flex: 1 1 180px;
}
.metric-card {
min-width: 170px;
padding: 1rem 1.05rem;
border-radius: 22px;
background: rgba(255, 255, 255, 0.7);
border: 1px solid rgba(19, 32, 45, 0.08);
}
.hero__metrics--wide {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
}
.metric-card strong,
.achievement-card strong {
display: block;
color: var(--deep);
font-size: 1.5rem;
font-weight: 800;
}
.hero__actions {
@@ -184,59 +280,121 @@ h3 {
.btn,
.cv-chip,
.skill-pill {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 44px;
padding: 0.75rem 1.05rem;
border-radius: var(--radius-sm);
}
.btn {
border: 0;
cursor: pointer;
}
.btn--primary {
background: var(--accent);
background: var(--deep);
color: #fff;
font-weight: 600;
font-weight: 700;
}
.btn--secondary {
border: 1px solid rgba(19, 32, 45, 0.12);
background: rgba(255, 255, 255, 0.6);
color: var(--text);
}
.cv-chip,
.skill-pill {
background: rgba(255, 255, 255, 0.8);
border: 1px solid rgba(31, 29, 26, 0.08);
color: var(--text);
border: 1px solid rgba(19, 32, 45, 0.08);
background: rgba(255, 255, 255, 0.78);
}
.profile-card {
border-radius: 30px;
padding: 1.5rem;
height: 100%;
padding: 1.45rem;
border-radius: 30px;
}
.profile-card__media {
margin-bottom: 1.2rem;
border-radius: 24px;
overflow: hidden;
background:
radial-gradient(circle at top left, rgba(154, 123, 79, 0.2), transparent 40%),
linear-gradient(180deg, #f9f5ef 0%, #ede4d7 100%);
}
.profile-card__label {
margin: 0 0 0.5rem;
color: var(--muted);
font-size: 0.95rem;
margin: 0 0 0.45rem;
font-size: 0.92rem;
}
.profile-card h2,
.side-card h2,
.entry-title {
.entry-title,
.demo-section h2 {
margin: 0 0 1rem;
font-size: clamp(1.5rem, 2vw, 2rem);
font-size: clamp(1.9rem, 3vw, 2.45rem);
line-height: 1.04;
}
.profile-card__highlights {
display: grid;
gap: 0.8rem;
margin-top: 1rem;
padding-top: 1rem;
border-top: 1px solid rgba(19, 32, 45, 0.08);
}
.profile-card__highlights strong {
display: block;
margin-top: 0.15rem;
}
.profile-card__contact {
display: flex;
flex-wrap: wrap;
gap: 0.65rem;
}
.profile-card--executive .profile-card__media--portrait {
aspect-ratio: 4 / 4.35;
}
.profile-card--executive .profile-card__media--portrait img {
width: 100%;
height: 100%;
object-fit: cover;
}
.content-wrap {
display: grid;
padding: 0 0 2rem;
padding-bottom: 2rem;
}
.content-wrap--front {
grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.8fr);
grid-template-columns: minmax(0, 1.48fr) minmax(290px, 0.82fr);
gap: 1.5rem;
}
.content-card {
border-radius: 32px;
padding: 2rem;
border-radius: var(--radius-xl);
}
.content-card--resume {
padding: 2.2rem;
}
.resume-section + .resume-section {
margin-top: 2.6rem;
}
.section-head {
display: grid;
gap: 0.35rem;
margin-bottom: 1.15rem;
}
.lead-copy {
font-size: 1.08rem;
}
.entry-content > *:first-child {
@@ -245,23 +403,213 @@ h3 {
.entry-content h2,
.entry-content h3 {
margin-top: 1.8rem;
margin-bottom: 0.75rem;
}
.entry-content .wp-block-group,
.entry-content .wp-block-columns,
.entry-content .wp-block-cover,
.entry-content .wp-block-media-text {
margin-top: 1.5rem;
margin-bottom: 1.5rem;
margin-top: 1.6rem;
margin-bottom: 0.8rem;
}
.entry-content .wp-block-group.cv-section {
padding: 1.5rem;
border-radius: 22px;
background: rgba(255, 255, 255, 0.58);
border: 1px solid rgba(19, 32, 45, 0.08);
}
.demo-section + .demo-section,
.demo-section + .demo-grid,
.demo-grid + .demo-section {
margin-top: 2rem;
}
.achievement-grid,
.demo-grid {
display: grid;
gap: 1rem;
}
.achievement-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.achievement-card,
.timeline__item,
.demo-panel {
padding: 1.25rem;
border: 1px solid rgba(19, 32, 45, 0.08);
border-radius: 24px;
background: rgba(255, 255, 255, 0.52);
border: 1px solid rgba(31, 29, 26, 0.08);
background: rgba(255, 255, 255, 0.68);
}
.achievement-card {
background: linear-gradient(180deg, rgba(19, 32, 45, 0.96) 0%, rgba(24, 39, 55, 0.96) 100%);
}
.achievement-grid--executive {
grid-template-columns: repeat(2, minmax(0, 1fr));
margin-bottom: 1rem;
}
.achievement-card strong,
.achievement-card span {
color: #fff;
}
.achievement-card--stat {
min-height: 172px;
}
.impact-grid,
.credentials-grid {
display: grid;
gap: 1rem;
}
.impact-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.impact-card,
.credential-card,
.cert-item {
padding: 1.25rem;
border: 1px solid rgba(19, 32, 45, 0.08);
border-radius: 22px;
background: rgba(255, 255, 255, 0.74);
}
.impact-card h3,
.credential-card h3,
.cert-item h3,
.competency-block h3 {
margin: 0 0 0.55rem;
font-size: 1.2rem;
}
.credentials-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.credential-card__year,
.cert-item__year {
display: inline-flex;
margin-bottom: 0.9rem;
padding: 0.3rem 0.7rem;
border-radius: var(--radius-sm);
background: var(--accent-soft);
color: var(--accent-strong);
font-size: 0.8rem;
font-weight: 800;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.credential-card__detail,
.side-card__meta,
.timeline__meta,
.cert-item p {
color: var(--muted);
}
.timeline__meta {
margin-top: -0.15rem;
margin-bottom: 0.75rem;
font-weight: 700;
}
.timeline__bullets {
margin: 0.9rem 0 0;
padding-left: 1rem;
color: var(--muted);
line-height: 1.7;
}
.timeline__bullets li + li {
margin-top: 0.45rem;
}
.cert-list {
display: grid;
gap: 0.9rem;
}
.cert-item {
display: grid;
grid-template-columns: 92px 1fr;
gap: 1rem;
align-items: start;
}
.cert-item__year {
justify-content: center;
width: 100%;
margin-bottom: 0;
}
.timeline {
position: relative;
display: grid;
gap: 1rem;
}
.timeline::before {
content: "";
position: absolute;
top: 0.5rem;
bottom: 0.5rem;
left: 0.75rem;
width: 1px;
background: rgba(154, 123, 79, 0.4);
}
.timeline__item {
position: relative;
padding-left: 2.25rem;
}
.timeline__item::before {
content: "";
position: absolute;
top: 1.2rem;
left: 0.35rem;
width: 0.8rem;
height: 0.8rem;
border-radius: 50%;
background: var(--accent);
box-shadow: 0 0 0 6px rgba(154, 123, 79, 0.18);
}
.timeline__year {
display: inline-flex;
margin-bottom: 0.75rem;
padding: 0.36rem 0.78rem;
border-radius: var(--radius-sm);
background: var(--accent-soft);
color: var(--accent-strong);
font-size: 0.82rem;
font-weight: 800;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.timeline__item h3 {
margin: 0 0 0.45rem;
font-size: 1.35rem;
}
.timeline__item--rich {
padding-right: 1.2rem;
}
.demo-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.demo-panel ul {
margin: 0;
padding-left: 1.05rem;
}
.demo-panel--accent {
background: linear-gradient(180deg, rgba(236, 226, 209, 0.75), rgba(255, 255, 255, 0.72));
}
.side-stack {
@@ -270,42 +618,157 @@ h3 {
align-content: start;
}
.side-stack--resume {
position: sticky;
top: 1.5rem;
align-self: start;
}
.side-card {
padding: 1.5rem;
border-radius: 26px;
padding: 1.45rem;
border-radius: 28px;
}
.side-card--business-card {
background: linear-gradient(180deg, rgba(19, 32, 45, 0.98) 0%, rgba(20, 31, 43, 0.98) 100%);
color: #fff;
}
.side-card--business-card .eyebrow,
.side-card--business-card p,
.side-card--business-card h2 {
color: #fff;
}
.competency-block + .competency-block {
margin-top: 1.25rem;
}
.skill-cloud {
gap: 0.75rem;
}
.skill-pill {
color: var(--text);
font-weight: 600;
}
.site-footer {
padding: 0 0 2.5rem;
padding-bottom: 2rem;
}
.site-footer__inner {
padding: 1rem 0;
padding: 0.8rem 0;
color: var(--muted);
text-align: center;
}
@media (max-width: 920px) {
.hero,
.content-wrap--front {
grid-template-columns: 1fr;
.info-list {
display: grid;
gap: 0.95rem;
margin: 0 0 1.2rem;
}
.info-list div {
display: grid;
gap: 0.2rem;
}
.info-list dt {
color: var(--accent-strong);
font-size: 0.82rem;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.info-list dd {
margin: 0;
color: var(--text);
}
.business-card {
padding: 1rem;
border-radius: 22px;
background:
radial-gradient(circle at top left, rgba(154, 123, 79, 0.35), transparent 34%),
linear-gradient(160deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.04));
border: 1px solid rgba(255, 255, 255, 0.12);
}
.business-card__top {
margin-bottom: 1rem;
}
.business-card__name {
margin: 0;
font-family: "Cormorant Garamond", serif;
font-size: 1.55rem;
font-weight: 700;
line-height: 1;
}
.business-card__role {
margin: 0.45rem 0 0;
color: rgba(255, 255, 255, 0.82);
font-size: 0.94rem;
line-height: 1.5;
}
.business-card__body {
display: grid;
grid-template-columns: 110px 1fr;
gap: 1rem;
align-items: center;
}
.business-card__qr {
padding: 0.55rem;
border-radius: 18px;
background: #fff;
}
.business-card__qr img {
display: block;
width: 100%;
height: auto;
}
.business-card__info {
display: grid;
gap: 0.35rem;
}
.business-card__info p,
.business-card__info a {
margin: 0;
color: rgba(255, 255, 255, 0.88);
word-break: break-word;
}
@media (max-width: 980px) {
.site-header__inner {
grid-template-columns: auto auto;
}
.site-nav-toggle {
display: inline-flex;
justify-self: end;
}
.site-print {
order: 4;
grid-column: 1 / -1;
justify-self: start;
}
.site-nav {
position: absolute;
top: calc(100% + 0.75rem);
right: 1rem;
left: 1rem;
grid-column: 1 / -1;
display: none;
padding: 1rem;
border: 1px solid var(--line);
border-radius: 20px;
background: rgba(255, 253, 248, 0.96);
box-shadow: var(--shadow);
padding: 0.95rem;
border-radius: 18px;
border: 1px solid rgba(19, 32, 45, 0.08);
background: rgba(255, 255, 255, 0.92);
}
.site-nav.is-open {
@@ -313,29 +776,96 @@ h3 {
}
.site-nav__menu {
flex-direction: column;
align-items: flex-start;
flex-direction: column;
}
.hero,
.content-wrap--front {
grid-template-columns: 1fr;
}
.achievement-grid {
grid-template-columns: 1fr;
}
.hero__metrics--wide {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.impact-grid,
.credentials-grid {
grid-template-columns: 1fr;
}
.side-stack--resume {
position: static;
}
}
@media (max-width: 640px) {
.site-header__inner,
.hero__copy,
.profile-card,
.content-card,
.side-card {
border-radius: 24px;
}
.site-header__inner,
.hero__copy,
.profile-card,
.content-card,
.side-card {
padding: 1.2rem;
border-radius: 22px;
}
.hero h1 {
font-size: 2.5rem;
font-size: 2.75rem;
}
.metric-card {
min-width: unset;
width: 100%;
}
.hero__metrics--wide {
grid-template-columns: 1fr;
}
.demo-grid {
grid-template-columns: 1fr;
}
.cert-item {
grid-template-columns: 1fr;
}
.business-card__body {
grid-template-columns: 1fr;
}
}
@media print {
.site-header,
.site-footer,
.site-bg,
.hero__actions,
.site-print,
.site-nav-toggle {
display: none !important;
}
body {
background: #fff;
}
.hero,
.content-wrap--front {
grid-template-columns: 1fr;
}
.hero__copy,
.profile-card,
.content-card,
.side-card,
.timeline__item,
.demo-panel,
.achievement-card {
box-shadow: none;
background: #fff;
}
}