* {
    transition: none !important;
    box-sizing: border-box;
}

body {
    font-size: 11pt;
    font-family: "Roboto", sans-serif;
    margin: 0;
    padding: 0;
}

/* ── Header ──────────────────────────────────────────────────────────────── */
.header a {
    color: inherit;
    text-decoration: inherit;
}

.header,
.header-space {
    height: auto;
    min-height: 100px;
}

.header {
    background-color: #2b2b2b;
    overflow: hidden;
    padding: 16px 24px 20px 24px;
}

.header .myName {
    float: inline-block;
    width: calc(50% - 26px);
    margin-left: 26px;
}

.header .my-name h1 {
    text-align: center;
    font-size: clamp(18pt, 5vw, 26pt); /* scales down on small screens */
    color: white;
    letter-spacing: clamp(4px, 2vw, 15px);
    margin: 8px 0 12px 0;
}

/* Contact info table — stack on mobile */
.header .contact-info table {
    margin-top: 4px;
    color: white;
    width: 100%;
}

.contact-info table {
    border-collapse: collapse;
}

.contact-info table tr {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px 0;
}

.contact-info table tr td {
    border-left: 1px solid white;
    border-right: 1px solid white;
    padding-right: 20px;
    padding-left: 20px;
    white-space: nowrap;
    font-size: clamp(8pt, 2.5vw, 11pt);
}

.contact-info table tr td:first-child {
    border-left: none;
}

.contact-info table tr td:last-child {
    border-right: none;
}

/* ── Content ─────────────────────────────────────────────────────────────── */
.content {
    border-spacing: 0px;
    padding: 0px;
    margin-left: clamp(8px, 3vw, 24px);
    margin-right: clamp(8px, 3vw, 24px);
}

.content table {
    border-spacing: 0px;
    width: 100%;
    table-layout: fixed;
}

.headings {
    font-size: clamp(13pt, 4vw, 18pt);
}

.headings td {
    border-bottom: 2px ridge #2b2b2b;
    width: 100%;
    border-radius: 2px;
    padding-top: 8px;
    padding-bottom: 4px;
}

.content h2,
h3,
ul {
    -webkit-margin-before: 4px;
    -webkit-margin-after: 2px;
}

.content th {
    font-size: clamp(9pt, 2.5vw, 13pt);
    word-break: break-word;
}

/* Job title / company / date row — responsive */
.content table tr {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 8px;
}

.content table tr th {
    flex: 1 1 auto;
    min-width: 0;
}

.content .dates {
    float: right;
    text-align: right;
    white-space: nowrap;
    flex-shrink: 0;
    min-width: 190px;
}

.content .titles {
    float: left;
    text-align: left;
    white-space: nowrap;
    flex-shrink: 0;
    min-width: 190px;
}

.content .companies {
    float: center;
    text-align: center;
    white-space: nowrap;
    flex: 1;
    justify-content: center;
}

.content ul {
    padding-left: clamp(16px, 4vw, 32px);
    margin: 4px 0 8px 0;
}

.content ul li {
    font-size: clamp(9pt, 2.5vw, 11pt);
    line-height: 1.3;
    margin-bottom: 2px;
}

/* ── Color helpers ───────────────────────────────────────────────────────── */
.orange {
    color: orange;
}
.red {
    color: red;
}
.green {
    color: lightgreen;
}
.purple {
    color: mediumorchid;
}

/* ── Table resets ────────────────────────────────────────────────────────── */
.grades {
    padding: 0px;
}

.table > tbody > tr > td,
.table > tbody > tr > th,
.table > tfoot > tr > td,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > thead > tr > th.table > tbody > tr > td {
    border: none;
}

body > div.content > table > tbody > tr > td > table > tbody > tr > th {
    padding-top: 4px;
}

/* ── Print ───────────────────────────────────────────────────────────────── */
@media print {
    thead {
        display: table-header-group;
    }
    tfoot {
        display: table-footer-group;
    }
    .pagebreak {
        page-break-before: always;
    }

    .header .my-name h1 {
        font-size: 26pt;
        letter-spacing: 15px;
    }

    .content {
        margin-left: 24px;
        margin-right: 24px;
    }

    .content table {
        table-layout: fixed;
        width: 100%;
    }

    .content table tr {
        display: table-row;
    }

    .content table tr th {
        display: table-cell;
        vertical-align: middle;
    }

    .content ul li {
        font-size: 11pt;
        line-height: 1;
        margin-bottom: 2px;
    }
}

/* ── Mobile ──────────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
    .header {
        padding: 12px 12px 16px 12px;
    }

    /* Stack contact info vertically on very small screens */
    .contact-info table tr td {
        border-left: none;
        border-right: none;
        border-top: 1px solid rgba(255, 255, 255, 0.3);
        padding: 4px 12px;
        width: 100%;
        text-align: center;
    }

    .contact-info table tr td:first-child {
        border-top: none;
    }

    /* Job rows stack vertically */
    .content table tr {
        flex-direction: column;
        gap: 0;
    }

    .content .dates {
        text-align: left;
        color: #666;
        font-size: 9pt;
    }

    .content .companies {
        text-align: left;
        font-style: italic;
    }

    /* Inline styles on th elements with fixed widths need overriding */
    .content table tr th[style] {
        width: auto !important;
    }
}
