@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Source+Sans+Pro:wght@300;400;500;600&display=swap');

:root {
    --primary-dark: #2C2C2C;
    --secondary-dark: #4A4A4A;
    --accent-gray: #666666;
    --light-gray: #888888;
    --border-gray: #CCCCCC;
    --line-gray: #E0E0E0;

    /* Base font size */
    --base-font-size: 12pt;

    /* Heading font sizes */
    --heading-h1-size: 22pt;
    --heading-h2-size: 13pt;
    --heading-h3-size: 10pt;
    
    /* Subtitle and decorative text */
    --subtitle-size: 14pt;
    
    /* Body and content text */
    --text-default: var(--base-font-size);
    --text-sm: 12pt;
    --text-xs: 9pt;
    --text-xsm: 11pt;
    
    /* Component-specific sizes (derived from base) */
    --contact-text-size: var(--text-sm);
    --profile-text-size: var(--text-default);
    --address-text-size: var(--text-sm);
    --exp-date-size: var(--text-sm);
    --exp-title-size: 10pt;
    --exp-company-size: var(--text-sm);
    --exp-description-size: var(--text-sm);
    --course-year-size: var(--text-sm);
    /* --course-title-size: 8pt; */
    --course-title-size: var(--text-xs);
    /* --course-details-size: var(--text-xs); */
    --course-details-size: var(--text-xsm);

    --pub-item-size: var(--text-sm);

    /* --conf-item-size: var(--text-sm); */
    --conf-item-size: var(--text-xsm);
    --membership-item-size: var(--text-sm);

    --simple-list-size: var(--text-sm);
    --expertise-grid-size: var(--text-sm);
    --additional-info-size: var(--text-xs);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

@page {
    size: A4;
    margin: 12mm 16mm 18mm;
    /* margin-bottom: 18mm; */
    @bottom-center {
        content: counter(page);
        font-family: 'Source Sans Pro', sans-serif;
        font-size: 11pt;
        color: #999;
    }
}

body {
    font-family: 'Source Sans Pro', -apple-system, sans-serif;
    font-size: var(--text-default);
    line-height: 1.4;
    color: var(--primary-dark);
    background: white;
}

.cv-container {
    max-width: 210mm;
    margin: 0 auto;
}

header {
    padding-bottom: 10px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--border-gray);
}

header img.logo {
    /* position: relative; */
    float: right;
    /* right: 0; */
    height: 100px;
    padding: 0 0 0 16px;
    
}
h1 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: var(--heading-h1-size);
    font-weight: 500;
    color: var(--primary-dark);
    letter-spacing: 1px;
    margin-bottom: 2px;
    text-transform: uppercase;
}

.subtitle {
    font-size: var(--subtitle-size);
    font-weight: 400;
    color: var(--accent-gray);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 8px;
}

.contact-row {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 18px;
    font-size: var(--contact-text-size);
    color: var(--secondary-dark);
}

.contact-row a {
    color: var(--secondary-dark);
    text-decoration: none;
}

section {
    /* margin-top: 10px; */
    margin-bottom: 24px;
    page-break-inside: avoid;
}

h2.section-title {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: var(--heading-h2-size);
    font-weight: 600;
    color: var(--primary-dark);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    padding-bottom: 4px;
    border-bottom: 1.5px solid var(--primary-dark);
    margin-bottom: 8px;
}

h3.subsection-title {
    font-size: var(--heading-h3-size);
    font-weight: 600;
    color: var(--accent-gray);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 10px;
    margin-bottom: 8px;
}

.profile-text {
    font-size: var(--profile-text-size);
    line-height: 1.45;
    color: var(--secondary-dark);
    text-align: justify;
}

.profile-text strong {
    color: var(--primary-dark);
}

.address-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 20px;
    font-size: var(--address-text-size);
    color: var(--secondary-dark);
    margin-bottom: 8px;
}

.address-item strong {
    color: var(--primary-dark);
    font-weight: 600;
}

.exp-row {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 12px;
    margin-bottom: 6px;
}

.exp-date {
    font-size: var(--exp-date-size);
    color: var(--accent-gray);
}

.exp-content {
    border-left: 1px solid var(--line-gray);
    padding-left: 12px;
}

.exp-title {
    font-size: var(--exp-title-size);
    font-weight: 600;
    color: var(--primary-dark);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.exp-company {
    font-size: var(--exp-company-size);
    color: var(--accent-gray);
    font-style: italic;
}

.exp-description {
    font-size: var(--exp-description-size);
    color: var(--secondary-dark);
    margin-top: 2px;
}

.two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.course-row {
    display: grid;
    grid-template-columns: 55px 1fr;
    gap: 10px;
    margin-bottom: 5px;
}

.course-year {
    font-size: var(--course-year-size);
    color: var(--accent-gray);
}

.course-content {
    border-left: 1px solid var(--line-gray);
    padding-left: 10px;
}

.course-title {
    font-size: var(--course-title-size);
    font-weight: 600;
    color: var(--primary-dark);
}

.course-details {
    font-size: var(--course-details-size);
    color: var(--accent-gray);
}

.pub-item {
    margin-bottom: 5px;
    font-size: var(--pub-item-size);
    line-height: 1.4;
    padding-left: 8px;
    border-left: 1.5px solid var(--line-gray);
}

.pub-item .authors {
    color: var(--accent-gray);
}

.pub-item .title {
    font-weight: 600;
    color: var(--primary-dark);
}

.pub-item .journal {
    font-style: italic;
    color: var(--accent-gray);
}

.conf-list {
    column-count: 2;
    column-gap: 20px;
    font-size: var(--conf-item-size);
}

.conf-item {
    margin-bottom: 4px;
    color: var(--secondary-dark);
    break-inside: avoid;
}

.membership-list {
    column-count: 2;
    column-gap: 20px;
    font-size: var(--membership-item-size);
}

.membership-item {
    color: var(--secondary-dark);
    margin-bottom: 3px;
    padding-left: 8px;
    position: relative;
    break-inside: avoid;
}

.membership-item::before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--accent-gray);
}

.simple-list {
    font-size: var(--simple-list-size);
    color: var(--secondary-dark);
    line-height: 1.5;
}

.simple-list strong {
    color: var(--primary-dark);
    font-weight: 600;
}

.expertise-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 20px;
    font-size: var(--expertise-grid-size);
    margin-bottom: 16px;
}

.expertise-item {
    color: var(--secondary-dark);
    padding-left: 12px;
    position: relative;
}

.expertise-item::before {
    content: "▸";
    position: absolute;
    left: 0;
    color: var(--accent-gray);
    font-size: 8pt;
    line-height: 16pt;
}

.additional-info {
    font-size: var(--additional-info-size);
    color: var(--accent-gray);
    margin-top: 8px;
    padding-top: 6px;
    border-top: 1px solid var(--line-gray);
}

.page-break {
    page-break-before: always;
    margin-top: 0;
    padding-top: 10px;
}

@media print {
    body {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .cv-container {
        max-width: none;
    }

    section {
        break-inside: avoid;
    }
}
