@charset "UTF-8";
/* =========================================================================
   CV sablonok – A4-es lap + 6 elrendezés
   A színt a --cv-accent, a betűtípust a --cv-font változó szabja meg,
   ezeket a cv/render.php állítja be soron belüli stílusként.
   ========================================================================= */

.cv-page {
    width: 210mm;
    min-height: 297mm;
    background: #fff;
    color: #1f2328;
    font-family: var(--cv-font, 'Segoe UI', Arial, sans-serif);
    font-size: 10.5pt;
    line-height: 1.5;
    position: relative;
    overflow: hidden;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.cv-page *,
.cv-page *::before,
.cv-page *::after {
    box-sizing: border-box;
}

.cv-page .k-name,
.cv-page .m-name,
.cv-page .mi-name,
.cv-page .kr-name,
.cv-page .e-name,
.cv-page .a-name,
.cv-page .l-name,
.cv-page h1,
.cv-page h2,
.cv-page h3 {
    font-family: inherit;
}

.cv-page p {
    margin: 0 0 0.35em;
}

.cv-page a {
    color: inherit;
    text-decoration: none;
}

.cv-bullets {
    margin: 0.15em 0 0.4em;
    padding-left: 1.05em;
}

.cv-bullets li {
    margin-bottom: 0.12em;
}

/* Oldaltörés-védelem minden sablonban */
.cv-page section,
.k-item,
.m-item,
.mi-item,
.kr-item,
.kr-card,
.e-item,
.a-item {
    break-inside: avoid;
}

.cv-page h2 {
    break-after: avoid;
}

/* =========================================================================
   1. KLASSZIKUS
   ========================================================================= */

.cv--klasszikus {
    padding: 17mm 18mm 15mm;
}

.k-head {
    border-bottom: 2px solid var(--cv-accent);
    padding-bottom: 3.5mm;
    margin-bottom: 6mm;
}

.k-name {
    font-size: 25pt;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0;
    color: #111827;
}

.k-role {
    font-size: 12pt;
    font-weight: 600;
    color: var(--cv-accent);
    margin: 0.15em 0 0.6em;
}

.k-contacts {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0.3em 6mm;
    padding: 0;
    margin: 0;
    font-size: 9.5pt;
    color: #4b5563;
}

.k-contacts i {
    margin-right: 1.5mm;
    color: var(--cv-accent);
}

.k-sec {
    margin-bottom: 5.5mm;
}

.k-sec h2 {
    font-size: 10.5pt;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--cv-accent);
    margin: 0 0 3mm;
    padding-bottom: 1.2mm;
    border-bottom: 1px solid #e5e7eb;
}

.k-item {
    display: grid;
    grid-template-columns: 33mm 1fr;
    gap: 4mm;
    margin-bottom: 4mm;
}

.k-item--tight {
    margin-bottom: 3mm;
}

.k-when {
    font-size: 9pt;
    color: #6b7280;
    padding-top: 0.15em;
    word-break: break-word;
}

.k-what h3 {
    font-size: 11pt;
    font-weight: 700;
    margin: 0;
}

.k-org {
    font-size: 10pt;
    color: #374151;
    margin: 0 0 0.25em;
}

.k-text {
    font-size: 10pt;
    color: #374151;
}

.k-skills {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.35em 8mm;
}

.k-skills li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3mm;
    font-size: 10pt;
}

.k-dots i {
    display: inline-block;
    width: 5.5px;
    height: 5.5px;
    border-radius: 50%;
    background: #d8dbe0;
    margin-left: 2.5px;
}

.k-dots i.on {
    background: var(--cv-accent);
}

.k-inline {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25em 8mm;
    font-size: 10pt;
}

.k-list {
    margin: 0;
    padding-left: 1.05em;
    font-size: 10pt;
}

.k-muted {
    color: #6b7280;
}

/* =========================================================================
   2. MODERN
   ========================================================================= */

.cv--modern {
    padding: 0;
}

.m-grid {
    display: grid;
    grid-template-columns: 63mm 1fr;
    min-height: 297mm;
}

.m-side {
    background: var(--cv-accent);
    color: #fff;
    padding: 13mm 8mm;
}

.m-avatar {
    width: 34mm;
    height: 34mm;
    border-radius: 50%;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.18);
    border: 1.2mm solid rgba(255, 255, 255, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19pt;
    font-weight: 700;
    letter-spacing: 0.03em;
    margin: 0 auto 8mm;
}

.m-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.m-block {
    margin-bottom: 7mm;
    font-size: 9.5pt;
}

.m-block h2 {
    font-size: 9pt;
    text-transform: uppercase;
    letter-spacing: 0.11em;
    font-weight: 600;
    margin: 0 0 3mm;
    padding-bottom: 1.5mm;
    border-bottom: 1px solid rgba(255, 255, 255, 0.35);
}

.m-contacts {
    list-style: none;
    padding: 0;
    margin: 0;
}

.m-contacts li {
    display: flex;
    gap: 2mm;
    margin-bottom: 1.6mm;
    word-break: break-word;
}

.m-contacts i {
    opacity: 0.85;
    padding-top: 0.1em;
}

.m-skill {
    margin-bottom: 2.4mm;
}

.m-bar {
    height: 2.6px;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 2px;
    margin-top: 1mm;
}

.m-bar span {
    display: block;
    height: 100%;
    background: #fff;
    border-radius: 2px;
}

.m-plain {
    list-style: none;
    padding: 0;
    margin: 0;
}

.m-plain li {
    margin-bottom: 2mm;
}

.m-muted {
    opacity: 0.8;
}

.m-side .m-text p {
    margin-bottom: 0.3em;
}

.m-main {
    padding: 13mm 12mm 12mm;
}

.m-head {
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 4mm;
    margin-bottom: 5.5mm;
}

.m-head .m-name {
    font-size: 24pt;
    font-weight: 700;
    margin: 0;
    color: #111827;
}

.m-role {
    color: var(--cv-accent);
    font-weight: 600;
    font-size: 11.5pt;
    margin: 0.2em 0 0;
}

.m-sec {
    margin-bottom: 5mm;
}

.m-sec h2 {
    font-size: 10.5pt;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--cv-accent);
    margin: 0 0 3mm;
}

.m-item {
    margin-bottom: 4mm;
    padding-left: 4mm;
    border-left: 1.5px solid #e5e7eb;
}

.m-item-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 4mm;
}

.m-item-head h3 {
    font-size: 11pt;
    font-weight: 700;
    margin: 0;
}

.m-when {
    font-size: 9pt;
    color: #6b7280;
    white-space: nowrap;
}

.m-org {
    font-size: 9.5pt;
    color: #4b5563;
    margin: 0.1em 0 0.3em;
}

.m-main .m-text {
    font-size: 10pt;
    color: #374151;
}

/* =========================================================================
   3. MINIMÁL
   ========================================================================= */

.cv--minimal {
    padding: 21mm 21mm;
    font-size: 10pt;
    color: #27272a;
}

.mi-head {
    margin-bottom: 9mm;
}

.mi-head .mi-name {
    font-size: 22pt;
    font-weight: 400;
    letter-spacing: 0.01em;
    margin: 0;
}

.mi-role {
    color: #71717a;
    font-size: 11pt;
    margin: 0.3em 0 0;
}

.mi-contacts {
    font-size: 9pt;
    color: #71717a;
    margin: 3mm 0 0;
}

.mi-sep {
    margin: 0 0.45em;
    color: #d4d4d8;
}

.mi-head::after {
    content: '';
    display: block;
    width: 16mm;
    height: 2px;
    background: var(--cv-accent);
    margin-top: 5mm;
}

.mi-sec {
    margin-bottom: 6.5mm;
}

.mi-sec h2 {
    font-size: 8.5pt;
    text-transform: uppercase;
    letter-spacing: 0.19em;
    color: #a1a1aa;
    font-weight: 600;
    margin: 0 0 3mm;
}

.mi-item {
    margin-bottom: 4.5mm;
}

.mi-item h3 {
    font-size: 10.5pt;
    font-weight: 600;
    margin: 0;
}

.mi-at::before {
    content: ' · ';
    color: #d4d4d8;
}

.mi-at {
    color: var(--cv-accent);
    font-weight: 500;
}

.mi-meta {
    font-size: 9pt;
    color: #a1a1aa;
    margin: 0.1em 0 0.3em;
}

.mi-text {
    color: #3f3f46;
}

.mi-cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7mm;
}

.mi-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 9.5pt;
}

.mi-list li {
    margin-bottom: 1mm;
}

.mi-muted {
    color: #a1a1aa;
}

/* =========================================================================
   4. KREATÍV
   ========================================================================= */

.cv--kreativ {
    padding: 0;
}

.kr-head {
    background: var(--cv-accent);
    color: #fff;
    padding: 12mm 14mm;
    display: flex;
    align-items: center;
    gap: 8mm;
}

.kr-avatar {
    flex: 0 0 auto;
    width: 28mm;
    height: 28mm;
    border-radius: 7mm;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17pt;
    font-weight: 700;
}

.kr-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.kr-head .kr-name {
    font-size: 23pt;
    font-weight: 700;
    margin: 0;
    line-height: 1.15;
}

.kr-role {
    font-size: 11.5pt;
    opacity: 0.92;
    margin: 0.25em 0 2.5mm;
}

.kr-contacts {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25em 5mm;
    padding: 0;
    margin: 0;
    font-size: 9pt;
    opacity: 0.95;
}

.kr-contacts i {
    margin-right: 1.2mm;
}

.kr-body {
    padding: 8mm 14mm 12mm;
}

.kr-card {
    border: 1px solid #eceef2;
    border-radius: 3mm;
    padding: 5mm 6mm;
    margin-bottom: 5mm;
}

.kr-card--accent {
    background: color-mix(in srgb, var(--cv-accent) 7%, #fff);
    border-color: color-mix(in srgb, var(--cv-accent) 22%, #fff);
}

.kr-card h2 {
    display: flex;
    align-items: center;
    gap: 2mm;
    font-size: 10pt;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--cv-accent);
    margin: 0 0 3.5mm;
}

.kr-h2-gap {
    margin-top: 5mm !important;
}

.kr-two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5mm;
    align-items: start;
}

.kr-item {
    margin-bottom: 4mm;
}

.kr-item:last-child {
    margin-bottom: 0;
}

.kr-item h3 {
    font-size: 10.5pt;
    font-weight: 700;
    margin: 0.6mm 0 0;
}

.kr-chip {
    display: inline-block;
    background: color-mix(in srgb, var(--cv-accent) 13%, #fff);
    color: var(--cv-accent);
    font-size: 8pt;
    font-weight: 600;
    padding: 0.4mm 2.2mm;
    border-radius: 1.5mm;
}

.kr-org {
    font-size: 9.5pt;
    color: #6b7280;
    margin: 0.1em 0 0.3em;
}

.kr-url {
    font-size: 9pt;
    font-weight: 400;
    color: var(--cv-accent);
}

.kr-text {
    font-size: 10pt;
    color: #374151;
}

.kr-pills {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 2mm;
    padding: 0;
    margin: 0;
}

.kr-pills li {
    border: 1px solid #e5e7eb;
    border-radius: 10mm;
    padding: 0.7mm 3mm;
    font-size: 9pt;
}

.kr-pills b {
    color: var(--cv-accent);
    margin-left: 1.5mm;
    letter-spacing: 0.5px;
}

.kr-plain {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 9.5pt;
}

.kr-plain li {
    margin-bottom: 1.4mm;
}

/* =========================================================================
   5. ELEGÁNS
   ========================================================================= */

.cv--elegans {
    padding: 19mm 20mm;
    font-size: 10.5pt;
    color: #292524;
}

.e-head {
    text-align: center;
    margin-bottom: 7mm;
}

.e-head .e-name {
    font-size: 21pt;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin: 0;
}

.e-role {
    font-style: italic;
    font-size: 11.5pt;
    color: var(--cv-accent);
    margin: 0.45em 0 0;
}

.e-rule {
    border-top: 1px solid #d6d3d1;
    border-bottom: 1px solid #d6d3d1;
    height: 1.2mm;
    margin: 4mm 0 2.5mm;
}

.e-contacts {
    font-size: 9pt;
    color: #57534e;
    margin: 0;
}

.e-sec {
    margin-bottom: 6mm;
}

.e-sec h2 {
    display: flex;
    align-items: center;
    gap: 4mm;
    justify-content: center;
    font-size: 9.5pt;
    text-transform: uppercase;
    letter-spacing: 0.17em;
    font-weight: 600;
    color: var(--cv-accent);
    margin: 0 0 4mm;
}

.e-sec h2::before,
.e-sec h2::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e7e5e4;
}

.e-item {
    margin-bottom: 4.5mm;
}

.e-item h3 {
    font-size: 11.5pt;
    font-weight: 600;
    margin: 0;
}

.e-meta {
    display: flex;
    justify-content: space-between;
    gap: 5mm;
    font-size: 9.5pt;
    color: #78716c;
    margin: 0.1em 0 0.35em;
}

.e-org {
    font-style: italic;
}

.e-when {
    white-space: nowrap;
}

.e-text {
    color: #44403c;
}

.e-text--lead {
    text-align: justify;
}

.e-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8mm;
}

.e-list {
    margin: 0;
    padding-left: 4.5mm;
    font-size: 10pt;
}

.e-list li {
    margin-bottom: 1mm;
}

.e-list--wide {
    columns: 2;
    column-gap: 8mm;
}

.e-muted {
    color: #78716c;
}

/* =========================================================================
   6. ATS-BARÁT
   ========================================================================= */

.cv--ats {
    padding: 16mm;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11pt;
    color: #000;
    line-height: 1.42;
}

.a-head {
    margin-bottom: 5mm;
}

.a-head .a-name {
    font-size: 16pt;
    font-weight: 700;
    margin: 0;
}

.a-role {
    font-size: 11.5pt;
    margin: 0.15em 0 0.5em;
}

.a-contact {
    margin: 0;
    font-size: 10.5pt;
}

.a-sec {
    margin-bottom: 5mm;
}

.a-sec h2 {
    font-size: 11pt;
    font-weight: 700;
    letter-spacing: 0.03em;
    margin: 0 0 2mm;
    padding-bottom: 1mm;
    border-bottom: 1px solid #000;
}

.a-item {
    margin-bottom: 3.5mm;
}

.a-title {
    font-weight: 700;
    margin: 0;
}

.a-meta {
    margin: 0 0 0.2em;
}

.a-bullets {
    margin: 0;
    padding-left: 5mm;
}

.a-bullets li {
    margin-bottom: 0.6mm;
}

/* =========================================================================
   Nyomtatás / PDF
   ========================================================================= */

@page {
    size: A4;
    margin: 0;
}

@media print {
    html,
    body {
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
    }

    .no-print {
        display: none !important;
    }

    .cv-page {
        width: 210mm;
        min-height: 297mm;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
}
