/* --- БАЗА (СКИДАННЯ) --- */
.cv-wrap { 
    width: 210mm; 
    /* Змінюємо min-height на auto, щоб контент розтягував папір природно */
    min-height: 297mm; 
    height: auto; 
    
    box-sizing: border-box; line-height: 1.5;
    background: var(--scv-paper-bg, #ffffff) !important; 
    overflow: visible; /* Дозволяємо виходити за межі однієї сторінки */
    color: var(--cv-text-primary, #000) !important;
    text-align: left;
    
    transform: none !important;
    transition: none !important;
}

.cv-wrap * {
    font-family: inherit; color: inherit !important; 
    border-color: var(--cv-accent, #000); 
    text-shadow: none !important; box-shadow: none !important;
    margin: 0; padding: 0;
    border-style: solid; border-width: 0;
    transition: none !important;
}

/* Захист від "нескінченних" слів/рядків: не даємо контенту розтягувати аркуш по ширині */
.cv-wrap,
.cv-wrap p,
.cv-wrap div,
.cv-wrap span,
.cv-wrap .item,
.cv-wrap .item-t,
.cv-wrap .item-sub,
.cv-wrap .contact-row,
.cv-wrap .bio,
.cv-wrap .tag,
.cv-wrap .lang-name,
.cv-wrap .cert-name,
.cv-wrap .cert-meta,
.cv-wrap h1,
.cv-wrap h2,
.cv-wrap h3 {
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
}

/* --- МАГІЯ PAGINATION (стабільний multi-page PDF) --- */
.sect,
.h-sect,
h1,
.pos,
.photo,
.rated-row,
.lang-row,
.cert-item {
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
    margin-bottom: 2px;
}

/* Дозволяємо довгим елементам розриватися, щоб не "вилазили" за сторінку */
.item,
.t-item,
.contact-row,
.tags {
    page-break-inside: auto !important;
    break-inside: auto !important;
}

/* Додатковий захист для некоректно введених безпробільних текстів */
.cv-wrap .bio,
.cv-wrap .item-sub,
.cv-wrap .item-t,
.cv-wrap .contact-row,
.cv-wrap .lang-name,
.cv-wrap .cert-name,
.cv-wrap .tag,
.cv-wrap p,
.cv-wrap span {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    hyphens: auto;
    line-height: 1.45;
}

.cv-sans { font-family: 'Manrope', sans-serif !important; }
.cv-serif { font-family: 'Merriweather', serif !important; }


/* --- 1. STOCKHOLM --- */
.cv-stockholm { 
    display: block !important; 
    padding: 50px !important; 
    background: var(--scv-paper-bg, #ffffff) !important;
}
/* Header with optional photo */
.cv-stockholm .header-name { display: flex !important; align-items: center; gap: 30px !important; margin-bottom: 0; }
.cv-stockholm .header-name .photo { width: 80px !important; height: 80px !important; border-radius: 50% !important; object-fit: cover; flex-shrink: 0; margin-bottom: 10px !important; }
.cv-stockholm .header-name > div { flex: 1; }
.cv-stockholm h1 { 
    font-size: 58px; line-height: 1; font-weight: 800; text-transform: uppercase; letter-spacing: -2px; 
    margin-bottom: 10px !important; color: var(--cv-text-primary) !important; width: 100%;
}
.cv-stockholm .pos { 
    font-size: 20px; font-weight: 500; margin-bottom: 40px !important; 
    opacity: 0.8; color: var(--cv-text-primary) !important; display: block;
}
.cv-stockholm .grid { 
    display: flex !important; gap: 0 !important; 
    border-top: 4px solid var(--cv-accent) !important; 
    padding-top: 30px !important; margin-bottom: 30px !important; width: 100%;
}
.cv-stockholm .grid-left {
    width: 140px !important; min-width: 140px !important; max-width: 140px !important;
    flex-shrink: 0 !important; padding-right: 20px !important;
}
.cv-stockholm .lbl { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; color: var(--cv-text-primary) !important; }
.cv-stockholm .grid-right { width: calc(100% - 140px) !important; flex-grow: 0 !important; }
.cv-stockholm .item { margin-bottom: 20px !important; }
.cv-stockholm .item-t { font-weight: 800; font-size: 16px; margin-bottom: 4px !important; display: block; }
.cv-stockholm .item-d { font-size: 13px; opacity: 0.7; margin-bottom: 6px !important; font-style: italic; display: block; }
.cv-stockholm .tags { display: flex; flex-wrap: wrap; gap: 8px; }
.cv-stockholm .tag { border: 1px solid var(--cv-accent) !important; padding: 4px 10px; font-size: 12px; border-radius: 20px; display: inline-block; }


/* --- 2. MANHATTAN --- */
.cv-manhattan { display: flex !important; min-height: 297mm; height: auto; align-items: stretch; }

/* Ліва колонка має тягнутися на всю висоту, навіть на 2 сторінки */
.cv-manhattan .side { 
    width: 33%; flex-shrink: 0;
    background: var(--cv-accent) !important; 
    padding: 60px 40px; 
    border-right: 1px solid rgba(0,0,0,0.1) !important; 
    color: var(--cv-text-primary) !important;
    min-height: 100%;
    display: flex; flex-direction: column;
}

.cv-manhattan .main { flex: 1; padding: 70px 60px; background: var(--scv-paper-bg, #fff) !important; min-height: 100%; display: flex; flex-direction: column; }
.cv-manhattan .photo { width: 150px; height: 150px; border-radius: 50%; object-fit: cover; margin-bottom: 50px !important; display: block; border: 5px solid #fff !important; }
.cv-manhattan h1 { font-family: 'Cormorant Garamond', serif !important; font-size: 54px; line-height: 1; margin-bottom: 10px !important; color: var(--cv-text-primary) !important; }
.cv-manhattan .sub { font-family: 'Manrope', sans-serif !important; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; opacity: 0.7; margin-bottom: 50px !important; display: block; color: var(--cv-text-primary) !important; }
.cv-manhattan .sect { font-family: 'Manrope', sans-serif !important; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; border-bottom: 1px solid var(--cv-text-primary) !important; padding-bottom: 10px !important; margin: 40px 0 25px 0 !important; color: var(--cv-text-primary) !important; }
.cv-manhattan .contact-row { display: flex; align-items: center; gap: 10px; margin-bottom: 12px !important; font-size: 13px; font-weight: 500; }
.cv-manhattan .item { margin-bottom: 25px !important; }
.cv-manhattan .item-t { font-family: 'Cormorant Garamond', serif !important; font-size: 22px; font-weight: 700; color: var(--cv-text-primary) !important; margin-bottom: 5px !important; display: block; }
.cv-manhattan .item-sub { font-size: 12px; text-transform: uppercase; margin-bottom: 10px !important; font-weight: 700; opacity: 0.6; display: block; }


/* --- 3. TOKYO --- */
.cv-tokyo { padding: 0; background: var(--scv-paper-bg, #fff) !important; display: flex; flex-direction: column; min-height: 297mm; height: auto; }
.cv-tokyo .top { background: var(--cv-accent) !important; padding: 60px 50px; display: flex; gap: 40px; align-items: center; }
.cv-tokyo .top * { color: var(--cv-text-primary) !important; }
.cv-tokyo .photo { width: 130px; height: 130px; border-radius: 20px; object-fit: cover; border: 4px solid var(--cv-text-primary) !important; }
.cv-tokyo h1 { font-size: 48px; margin: 0; line-height: 1; }
.cv-tokyo .role { font-size: 18px; margin-top: 10px !important; opacity: 0.9; font-weight: 300; letter-spacing: 1px; text-transform: uppercase; }
.cv-tokyo .body { padding: 50px; display: grid; grid-template-columns: 1fr 2fr; gap: 60px; }
.cv-tokyo .h-sect { font-weight: 800; font-size: 14px; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 25px !important; color: var(--cv-text-primary) !important; }
.cv-tokyo .timeline { border-left: 2px solid var(--cv-accent) !important; padding-left: 25px !important; margin-left: 5px !important; min-height: 50px; }
.cv-tokyo .t-item { position: relative; margin-bottom: 35px !important; }
.cv-tokyo .t-item::before { content:''; position: absolute; left: -31px; top: 5px; width: 10px; height: 10px; background: var(--cv-accent) !important; border-radius: 50%; box-shadow: 0 0 0 4px #fff !important; border: none !important; }
.cv-tokyo .chip { display: inline-block; background: var(--cv-accent) !important; padding: 6px 12px; border-radius: 6px; font-size: 12px; margin: 0 5px 5px 0; font-weight: 600; color: var(--cv-text-primary) !important; opacity: 0.8; }


/* ═══════════════════════════════════════════════════════
   SHARED: Rated Skills, Languages, Certifications
   ═══════════════════════════════════════════════════════ */
.rated-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px !important; font-size: 13px; }
.rated-name { flex: 1; }
.rated-dots { display: flex; gap: 4px; flex-shrink: 0; }
.dot { width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid var(--cv-accent) !important; background: transparent; display: inline-block; }
.dot.dot-on { background: var(--cv-accent) !important; }
.lang-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 7px !important;
    font-size: 13px;
}
.lang-name {
    flex: 1;
    min-width: 0;
    padding-right: 6px;
    word-break: break-word;
}
.lang-sep {
    flex-shrink: 0;
    opacity: 0.45;
    padding: 0 2px;
}
.lang-level {
    font-size: 11px;
    font-weight: 700;
    opacity: 0.55;
    flex-shrink: 0;
    text-align: right;
    max-width: 42%;
}
.cert-item { margin-bottom: 12px !important; }
.cert-name { font-size: 13px; font-weight: 700; display: block; margin-bottom: 2px !important; }
.cert-meta { font-size: 11px; opacity: 0.55; font-style: italic; display: block; }


/* ═══════════════════════════════════════════════════════
   4. BERLIN — Vertical accent bar, two-column
   ═══════════════════════════════════════════════════════ */
.cv-berlin { display: flex; min-height: 297mm; position: relative; font-family: 'IBM Plex Sans', sans-serif !important; background: var(--scv-paper-bg, #fff) !important; align-items: stretch; }
.cv-berlin::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--cv-accent) !important; }
.cv-berlin .side { width: 34%; flex-shrink: 0; padding: 50px 28px 50px 33px; background: #f7f7f7 !important; min-height: 100%; display: flex; flex-direction: column; }
.cv-berlin .main { flex: 1; padding: 50px 48px; background: var(--scv-paper-bg, #fff) !important; min-height: 100%; display: flex; flex-direction: column; }
.cv-berlin .photo { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; margin-bottom: 25px !important; display: block; }
.cv-berlin h1 { font-size: 34px; font-weight: 700; line-height: 1.1; margin-bottom: 4px !important; letter-spacing: -0.5px; color: var(--cv-text-primary) !important; }
.cv-berlin .pos { font-size: 12px; font-weight: 400; text-transform: uppercase; letter-spacing: 2px; opacity: 0.55; margin-bottom: 28px !important; display: block; color: var(--cv-text-primary) !important; }
.cv-berlin .sect { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; color: var(--cv-accent) !important; margin: 22px 0 10px !important; display: block; }
.cv-berlin .item { margin-bottom: 18px !important; }
.cv-berlin .item-t { font-size: 15px; font-weight: 600; margin-bottom: 3px !important; display: block; color: var(--cv-text-primary) !important; }
.cv-berlin .item-sub { font-size: 12px; opacity: 0.5; margin-bottom: 5px !important; display: block; font-style: italic; color: var(--cv-text-primary) !important; }
.cv-berlin .contact-row { font-size: 12px; margin-bottom: 7px !important; display: block; opacity: 0.75; line-height: 1.4; color: var(--cv-text-primary) !important; }
.cv-berlin .tags { display: flex; flex-wrap: wrap; gap: 5px; }
.cv-berlin .tag { background: var(--cv-accent) !important; color: #fff !important; font-size: 11px; padding: 3px 8px; border-radius: 4px; font-weight: 600; display: inline-block; }
.cv-berlin .bio { font-size: 14px; line-height: 1.6; margin-bottom: 25px !important; color: var(--cv-text-primary) !important; }


/* ═══════════════════════════════════════════════════════
   5. PARIS — Centered serif header, two-column body
   ═══════════════════════════════════════════════════════ */
.cv-paris { padding: 0; background: var(--scv-paper-bg, #fff) !important; min-height: 297mm; }
.cv-paris .header { padding: 52px 65px 32px; text-align: center; border-bottom: 1px solid #eee !important; }
.cv-paris .photo { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; margin: 0 auto 18px !important; display: block; border: 3px solid var(--cv-accent) !important; }
.cv-paris h1 { font-family: 'Playfair Display', serif !important; font-size: 44px; font-style: italic; font-weight: 400; line-height: 1.05; margin-bottom: 8px !important; color: var(--cv-text-primary) !important; }
.cv-paris .pos { font-family: 'Lato', sans-serif !important; font-size: 12px; font-weight: 300; text-transform: uppercase; letter-spacing: 4px; opacity: 0.65; display: block; color: var(--cv-text-primary) !important; }
.cv-paris .body { display: flex; min-height: calc(296.5mm - 190px); align-items: stretch; }
.cv-paris .side { width: 35%; flex-shrink: 0; padding: 38px 28px 38px 48px; border-right: 1px solid #f0f0f0 !important; min-height: 100%; display: flex; flex-direction: column; }
.cv-paris .main { flex: 1; padding: 38px 48px; min-height: 100%; display: flex; flex-direction: column; }
.cv-paris .sect { font-family: 'Lato', sans-serif !important; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; color: var(--cv-accent) !important; margin: 22px 0 10px !important; display: block; }
.cv-paris .item { margin-bottom: 20px !important; }
.cv-paris .item-t { font-family: 'Playfair Display', serif !important; font-size: 17px; font-weight: 700; margin-bottom: 3px !important; display: block; color: var(--cv-text-primary) !important; }
.cv-paris .item-sub { font-family: 'Lato', sans-serif !important; font-size: 11px; opacity: 0.5; font-weight: 300; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 5px !important; display: block; color: var(--cv-text-primary) !important; }
.cv-paris .contact-row { font-family: 'Lato', sans-serif !important; font-size: 12px; margin-bottom: 7px !important; opacity: 0.75; display: block; color: var(--cv-text-primary) !important; }
.cv-paris .tags { display: flex; flex-wrap: wrap; gap: 5px; }
.cv-paris .tag { border: 1px solid var(--cv-accent) !important; padding: 3px 10px; font-size: 11px; border-radius: 20px; display: inline-block; }


/* ═══════════════════════════════════════════════════════
   6. SYDNEY — Gradient header, sidebar right
   ═══════════════════════════════════════════════════════ */
.cv-sydney { display: flex; flex-direction: column; min-height: 297mm; background: var(--scv-paper-bg, #fff) !important; font-family: 'Inter', sans-serif !important; }
.cv-sydney .header { background: linear-gradient(135deg, var(--cv-accent) 0%, #111 100%) !important; padding: 48px 58px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.cv-sydney .header * { color: #fff !important; }
.cv-sydney .photo { width: 105px; height: 105px; border-radius: 50%; object-fit: cover; border: 3px solid rgba(255,255,255,0.45) !important; flex-shrink: 0; }
.cv-sydney h1 { font-size: 38px; font-weight: 800; line-height: 1.05; margin-bottom: 5px !important; }
.cv-sydney .role { font-size: 13px; font-weight: 400; text-transform: uppercase; letter-spacing: 3px; opacity: 0.8; margin-bottom: 14px !important; display: block; }
.cv-sydney .hcon { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 12px; opacity: 0.85; }
.cv-sydney .hcon-item::before { content: '• '; opacity: 0.6; }
.cv-sydney .body { flex: 1; display: flex; align-items: stretch; }
.cv-sydney .main { flex: 1; min-width: 0; padding: 42px 48px; min-height: 100%; display: flex; flex-direction: column; }
.cv-sydney .side { width: 31%; min-width: 0; flex-shrink: 0; padding: 42px 38px 42px 18px; border-left: 1px solid #f0f0f0 !important; min-height: 100%; display: flex; flex-direction: column; }
.cv-sydney .sect { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 2px; color: var(--cv-accent) !important; border-bottom: 2px solid var(--cv-accent) !important; padding-bottom: 5px !important; margin: 0 0 16px !important; display: block; }
.cv-sydney .sect-gap { margin-top: 28px !important; }
.cv-sydney .item { margin-bottom: 20px !important; }
.cv-sydney .item-t { font-size: 15px; font-weight: 700; margin-bottom: 3px !important; display: block; color: var(--cv-text-primary) !important; }
.cv-sydney .item-sub { font-size: 11px; opacity: 0.5; margin-bottom: 5px !important; display: block; color: var(--cv-text-primary) !important; }
.cv-sydney .tags { display: flex; flex-wrap: wrap; gap: 5px; }
.cv-sydney .tag { background: rgba(0,0,0,0.06) !important; padding: 4px 10px; font-size: 11px; border-radius: 4px; font-weight: 600; display: inline-block; }


/* ═══════════════════════════════════════════════════════
   7. VIENNA — Academic single-column
   ═══════════════════════════════════════════════════════ */
.cv-vienna { padding: 58px 68px; background: var(--scv-paper-bg, #fff) !important; min-height: 297mm; font-family: 'EB Garamond', serif !important; }
.cv-vienna .header { text-align: center; margin-bottom: 28px !important; }
.cv-vienna .photo { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; margin: 0 auto 18px !important; display: block; border: 1px solid #ddd !important; }
.cv-vienna h1 { font-family: 'EB Garamond', serif !important; font-size: 40px; font-weight: 400; letter-spacing: 2px; margin-bottom: 6px !important; color: var(--cv-text-primary) !important; }
.cv-vienna .pos { font-size: 13px; font-weight: 400; text-transform: uppercase; letter-spacing: 3px; opacity: 0.58; display: block; margin-bottom: 10px !important; color: var(--cv-text-primary) !important; }
.cv-vienna .hcon { font-size: 12px; opacity: 0.65; display: flex; justify-content: center; flex-wrap: wrap; gap: 0 16px; color: var(--cv-text-primary) !important; }
.cv-vienna .cv-rule { border: none; border-top: 1px solid var(--cv-accent) !important; margin: 22px 0 !important; }
.cv-vienna .sect { font-family: 'EB Garamond', serif !important; font-size: 19px; font-style: italic; font-weight: 400; color: var(--cv-accent) !important; margin: 28px 0 12px !important; display: block; }
.cv-vienna .item { display: flex; gap: 22px; margin-bottom: 16px !important; }
.cv-vienna .item-date { width: 78px; flex-shrink: 0; font-size: 12px; opacity: 0.5; padding-top: 2px; text-align: right; color: var(--cv-text-primary) !important; }
.cv-vienna .item-body { flex: 1; padding-left: 14px !important; border-left: 1px solid #e0e0e0 !important; }
.cv-vienna .item-t { font-size: 15px; font-weight: 600; margin-bottom: 2px !important; display: block; color: var(--cv-text-primary) !important; }
.cv-vienna .item-sub { font-size: 12px; opacity: 0.5; margin-bottom: 4px !important; display: block; font-style: italic; color: var(--cv-text-primary) !important; }
.cv-vienna .tags { display: flex; flex-wrap: wrap; gap: 5px; }
.cv-vienna .tag { border: 1px solid var(--cv-accent) !important; padding: 3px 10px; font-size: 11px; display: inline-block; opacity: 0.7; }
.cv-vienna .bottom-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 18px !important; }


/* ═══════════════════════════════════════════════════════
   8. OSLO — Ultra-minimalist typography
   ═══════════════════════════════════════════════════════ */
.cv-oslo { padding: 58px 62px; background: var(--scv-paper-bg, #fff) !important; min-height: 297mm; font-family: 'Outfit', sans-serif !important; }
.cv-oslo h1 { font-family: 'Outfit', sans-serif !important; font-size: 68px; font-weight: 200; line-height: 0.92; letter-spacing: -3px; margin-bottom: 10px !important; color: var(--cv-text-primary) !important; }
.cv-oslo .pos { font-family: 'Outfit', sans-serif !important; font-size: 13px; font-weight: 300; text-transform: uppercase; letter-spacing: 4px; opacity: 0.5; margin-bottom: 22px !important; display: block; color: var(--cv-text-primary) !important; }
.cv-oslo .rule { height: 1px; background: var(--cv-accent) !important; margin-bottom: 28px !important; }
.cv-oslo .body { display: grid; grid-template-columns: 34% 66%; gap: 48px; }
.cv-oslo .body > * { min-width: 0; }

.cv-manhattan .main,
.cv-manhattan .side,
.cv-berlin .main,
.cv-berlin .side,
.cv-paris .main,
.cv-paris .side,
.cv-tokyo .body > * {
    min-width: 0;
}
.cv-oslo .sect { font-family: 'Outfit', sans-serif !important; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 3px; opacity: 0.35; margin: 22px 0 8px !important; display: block; color: var(--cv-text-primary) !important; }
.cv-oslo .item { margin-bottom: 18px !important; }
.cv-oslo .item-t { font-size: 14px; font-weight: 400; margin-bottom: 2px !important; display: block; color: var(--cv-text-primary) !important; }
.cv-oslo .item-sub { font-size: 11px; opacity: 0.42; margin-bottom: 4px !important; display: block; color: var(--cv-text-primary) !important; }
.cv-oslo .contact-row { font-size: 12px; margin-bottom: 6px !important; opacity: 0.65; display: block; color: var(--cv-text-primary) !important; }
.cv-oslo .tags { display: flex; flex-wrap: wrap; gap: 5px; }
.cv-oslo .tag { border: 1px solid rgba(0,0,0,0.18) !important; padding: 3px 10px; font-size: 11px; display: inline-block; opacity: 0.65; }
.cv-oslo .oslo-photo { width: 72px !important; height: 72px !important; border-radius: 50% !important; object-fit: cover; margin-bottom: 16px !important; display: block; }

/* ── Мобільний попередній перегляд (вузький iframe у модалці PDF) ── */
@media (max-width: 760px) {
    .cv-wrap {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box;
    }
    .cv-wrap p,
    .cv-wrap .item-sub,
    .cv-wrap .item-t,
    .cv-wrap .contact-row,
    .cv-wrap .bio {
        word-break: break-word;
        overflow-wrap: anywhere;
    }

    .cv-stockholm { padding: 28px 20px !important; }
    .cv-stockholm .header-name { flex-wrap: wrap !important; gap: 16px !important; }
    .cv-stockholm h1 { font-size: clamp(28px, 9vw, 44px) !important; letter-spacing: -1px !important; }
    .cv-stockholm .grid { flex-direction: column !important; gap: 16px !important; }
    .cv-stockholm .grid-left,
    .cv-stockholm .grid-right {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .cv-manhattan { flex-direction: column !important; min-height: auto !important; }
    .cv-manhattan .side,
    .cv-manhattan .main {
        width: 100% !important;
        min-width: 0 !important;
        flex: none !important;
        min-height: auto !important;
    }
    .cv-manhattan .side { padding: 36px 24px !important; }
    .cv-manhattan .main { padding: 36px 24px !important; }
    .cv-manhattan h1 { font-size: clamp(32px, 8vw, 44px) !important; }

    .cv-tokyo { min-height: auto !important; }
    .cv-tokyo .top { flex-direction: column !important; align-items: flex-start !important; padding: 32px 24px !important; gap: 24px !important; }
    .cv-tokyo .body {
        padding: 28px 20px !important;
        grid-template-columns: 1fr !important;
        gap: 32px !important;
    }

    .cv-berlin { flex-direction: column !important; min-height: auto !important; }
    .cv-berlin .side,
    .cv-berlin .main {
        width: 100% !important;
        min-width: 0 !important;
        flex: none !important;
    }
    .cv-berlin .side { padding: 36px 22px !important; }
    .cv-berlin .main { padding: 36px 24px !important; }

    .cv-paris { min-height: auto !important; }
    .cv-paris .header { padding: 32px 20px 24px !important; }
    .cv-paris .body { flex-direction: column !important; min-height: auto !important; }
    .cv-paris .side,
    .cv-paris .main {
        width: 100% !important;
        min-width: 0 !important;
        border-right: none !important;
        padding: 28px 22px !important;
    }

    .cv-sydney { min-height: auto !important; }
    .cv-sydney .header { flex-direction: column !important; align-items: flex-start !important; padding: 32px 24px !important; }
    .cv-sydney .body { flex-direction: column !important; }
    .cv-sydney .main,
    .cv-sydney .side {
        width: 100% !important;
        min-width: 0 !important;
        border-left: none !important;
        padding: 28px 22px !important;
    }

    .cv-vienna { padding: 36px 22px !important; min-height: auto !important; }
    .cv-vienna h1 { font-size: clamp(28px, 7vw, 36px) !important; }
    .cv-vienna .item { flex-direction: column !important; gap: 8px !important; }
    .cv-vienna .item-date { width: 100% !important; text-align: left !important; padding-top: 0 !important; }
    .cv-vienna .item-body { border-left: none !important; padding-left: 0 !important; border-top: 1px solid #e0e0e0 !important; padding-top: 10px !important; }
    .cv-vienna .bottom-row { grid-template-columns: 1fr !important; gap: 20px !important; }

    .cv-oslo { padding: 36px 22px !important; min-height: auto !important; }
    .cv-oslo h1 { font-size: clamp(36px, 11vw, 52px) !important; letter-spacing: -2px !important; }
    .cv-oslo .body { grid-template-columns: 1fr !important; gap: 28px !important; }
}
