/* --- DESIGN SYSTEM (identique à index.html) --- */
        :root {
            --color-brand-orange: #FA8334;
            --color-brand-yellow: #F4B648;
            --color-brand-blue: #02008D;
            --color-teal-link: #02008D;
            --color-gray-50: #f9fafb;
            --color-gray-100: #f3f4f6;
            --color-gray-200: #e5e7eb;
            --color-gray-300: #d1d5db;
            --color-gray-400: #9ca3af;
            --color-gray-600: #374151;
            --color-gray-700: #1f2937;
            --color-gray-800: #111827;
            --color-gray-900: #030712;
            --font-inter: 'Inter', sans-serif;
        }

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

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: var(--font-inter);
            background-color: var(--color-gray-50);
            color: var(--color-gray-800);
            line-height: 1.6;
            -webkit-font-smoothing: antialiased;
        }

        a {
            text-decoration: none;
            color: inherit;
            transition: opacity 0.2s;
        }

        a:hover {
            opacity: 0.8;
        }

        /* --- NAV STICKY (identique à index / cas-clients) --- */
        .site-nav {
            border-bottom: 1px solid var(--color-gray-200);
            background: white;
            position: sticky;
            top: 0;
            z-index: 50;
        }

        .nav-inner {
            max-width: 1024px;
            margin: 0 auto;
            padding: 1rem 1.5rem;
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        @media (min-width: 768px) {
            .nav-inner {
                padding: 1rem 3rem;
            }
        }

        .nav-name {
            font-size: 1.125rem;
            font-weight: 800;
            color: var(--color-gray-900);
            letter-spacing: -0.025em;
        }

        .nav-back {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            font-size: 0.875rem;
            font-weight: 600;
            color: var(--color-gray-600);
            text-decoration: none;
            transition: color 0.2s;
        }

        .nav-back:hover {
            color: var(--color-brand-orange);
        }

        /* --- LAYOUT --- */
        .container {
            width: 100%;
            max-width: 1024px;
            margin: 0 auto;
            padding: 2rem 1.5rem;
        }

        @media (min-width: 768px) {
            .container {
                padding: 3rem;
            }
        }

        /* --- HERO CV --- */
        .cv-hero {
            padding: 3rem 0 2.5rem;
            border-bottom: 1px solid var(--color-gray-200);
            margin-bottom: 3rem;
        }

        .cv-hero-eyebrow {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            font-size: 0.8rem;
            font-weight: 700;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            color: var(--color-brand-orange);
            background: #fff7ed;
            padding: 0.35rem 0.85rem;
            border-radius: 9999px;
            border: 1px solid #fed7aa;
            margin-bottom: 1.25rem;
        }

        .cv-hero h1 {
            font-size: clamp(2rem, 5vw, 3.5rem);
            font-weight: 900;
            color: var(--color-gray-900);
            letter-spacing: -0.04em;
            line-height: 1.05;
            margin-bottom: 1rem;
        }

        .cv-tagline {
            font-size: 1.1rem;
            color: var(--color-gray-600);
            line-height: 1.6;
            max-width: 600px;
            margin-bottom: 1.5rem;
        }

        .cv-tagline strong {
            color: var(--color-gray-900);
            font-weight: 600;
        }

        .cv-contact-strip {
            display: flex;
            flex-wrap: wrap;
            gap: 0.75rem 1.5rem;
            align-items: center;
            font-size: 0.875rem;
            color: var(--color-gray-600);
            font-weight: 500;
            margin-bottom: 1.5rem;
        }

        .cv-contact-strip a {
            color: var(--color-teal-link);
            font-weight: 600;
            transition: color 0.2s;
        }

        .cv-contact-strip a:hover {
            color: var(--color-brand-orange);
        }

        .cv-contact-item {
            display: flex;
            align-items: center;
            gap: 0.35rem;
        }

        .cv-stats {
            display: flex;
            gap: 2rem;
            flex-wrap: wrap;
            padding-top: 1.5rem;
            border-top: 1px solid var(--color-gray-200);
            margin-top: 1.5rem;
        }

        .cv-stat-number {
            font-size: 1.75rem;
            font-weight: 800;
            color: var(--color-brand-orange);
            line-height: 1;
        }

        .cv-stat-label {
            font-size: 0.75rem;
            color: var(--color-gray-600);
            font-weight: 500;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            margin-top: 2px;
        }

        /* --- MAIN LAYOUT --- */
        .cv-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 2.5rem;
        }

        @media (min-width: 768px) {
            .cv-grid {
                grid-template-columns: 280px 1fr;
                gap: 3rem;
            }
        }

        /* --- LEFT COLUMN --- */
        .cv-left {
            display: flex;
            flex-direction: column;
            gap: 2.5rem;
        }

        .cv-section-title {
            font-size: 0.7rem;
            font-weight: 700;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            color: var(--color-gray-400);
            margin-bottom: 1rem;
            padding-bottom: 0.5rem;
            border-bottom: 1px solid var(--color-gray-200);
        }

        .cv-photo {
            width: 160px;
            height: 160px;
            border-radius: 50%;
            object-fit: cover;
            border: 3px solid white;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
            margin-bottom: 1rem;
        }

        /* Skills */
        .skill-group {
            margin-bottom: 1.25rem;
        }

        .skill-group-title {
            font-size: 0.75rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: var(--color-gray-600);
            margin-bottom: 0.5rem;
            padding-left: 0.75rem;
            border-left: 3px solid var(--color-brand-blue);
        }

        .skills-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 0.4rem;
        }

        .skill-tag {
            background: white;
            color: var(--color-gray-700);
            border: 1px solid var(--color-gray-200);
            padding: 0.3rem 0.7rem;
            border-radius: 6px;
            font-size: 0.8rem;
            font-weight: 500;
            transition: border-color 0.2s, color 0.2s;
        }

        .skill-tag:hover {
            border-color: var(--color-brand-orange);
            color: var(--color-brand-orange);
        }

        /* Links block */
        .cv-links {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
        }

        .cv-link-item {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.875rem;
            font-weight: 600;
            color: var(--color-teal-link);
            padding: 0.5rem 0.75rem;
            background: white;
            border: 1px solid var(--color-gray-200);
            border-radius: 8px;
            transition: all 0.2s;
        }

        .cv-link-item:hover {
            border-color: var(--color-brand-orange);
            color: var(--color-brand-orange);
            transform: translateX(2px);
        }

        /* Languages */
        .lang-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0.4rem 0;
            font-size: 0.875rem;
            border-bottom: 1px solid var(--color-gray-100);
        }

        .lang-level {
            font-size: 0.75rem;
            font-weight: 600;
            color: var(--color-gray-400);
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        /* --- RIGHT COLUMN --- */
        .cv-right {
            display: flex;
            flex-direction: column;
            gap: 2.5rem;
        }

        /* Experience blocks */
        .exp-block {
            position: relative;
        }

        .exp-main-role {
            margin-bottom: 1.5rem;
        }

        .exp-main-role h3 {
            font-size: 1.2rem;
            font-weight: 700;
            color: var(--color-gray-900);
            margin-bottom: 0.25rem;
        }

        .exp-period {
            font-size: 0.8rem;
            font-weight: 600;
            color: var(--color-gray-400);
            text-transform: uppercase;
            letter-spacing: 0.06em;
            margin-bottom: 0.75rem;
            display: block;
        }

        .exp-desc {
            font-size: 0.9rem;
            color: var(--color-gray-600);
            line-height: 1.65;
            margin-bottom: 0.5rem;
        }

        /* Timeline sub-experiences */
        .sub-exp-container {
            border-left: 2px solid var(--color-gray-200);
            margin-left: 0.5rem;
            padding-left: 1.5rem;
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
        }

        .sub-exp {
            position: relative;
        }

        .sub-exp::before {
            content: '';
            position: absolute;
            left: -1.9rem;
            top: 0.4rem;
            width: 10px;
            height: 10px;
            background: var(--color-brand-blue);
            border-radius: 50%;
            border: 2px solid white;
            box-shadow: 0 0 0 2px var(--color-brand-blue);
        }

        .sub-exp-header {
            display: flex;
            align-items: flex-start;
            gap: 0.5rem;
            margin-bottom: 0.4rem;
        }

        .sub-exp-dot-icon {
            width: 1.1rem;
            height: 1.1rem;
            color: var(--color-brand-orange);
            flex-shrink: 0;
            margin-top: 1px;
        }

        .sub-exp h4 {
            font-size: 1rem;
            font-weight: 700;
            color: var(--color-gray-800);
            margin-bottom: 0;
        }

        .sub-exp ul {
            list-style: none;
            padding: 0;
            margin-top: 0.4rem;
            display: flex;
            flex-direction: column;
            gap: 0.25rem;
        }

        .sub-exp ul li {
            font-size: 0.875rem;
            color: var(--color-gray-600);
            line-height: 1.55;
            display: flex;
            align-items: flex-start;
            gap: 0.5rem;
        }

        .sub-exp ul li::before {
            content: '—';
            color: var(--color-gray-300);
            font-size: 0.75rem;
            flex-shrink: 0;
            margin-top: 1px;
        }

        /* Section block with orange left border */
        .cv-section-block {
            background: white;
            border: 1px solid var(--color-gray-200);
            border-left: 4px solid var(--color-brand-orange);
            border-radius: 0 12px 12px 0;
            padding: 1.5rem;
        }

        /* CTA banner */
        .cv-cta {
            background: var(--color-gray-900);
            color: white;
            padding: 2rem;
            border-radius: 16px;
            display: flex;
            flex-direction: column;
            gap: 1rem;
            margin-top: 1rem;
        }

        @media (min-width: 640px) {
            .cv-cta {
                flex-direction: row;
                align-items: center;
                justify-content: space-between;
            }
        }

        .cv-cta h3 {
            font-size: 1.1rem;
            font-weight: 700;
            color: white;
            margin-bottom: 0.25rem;
        }

        .cv-cta p {
            font-size: 0.875rem;
            color: #9ca3af;
        }

        .cv-cta-btn {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            background: var(--color-brand-orange);
            color: white;
            font-weight: 700;
            font-size: 0.875rem;
            padding: 0.75rem 1.5rem;
            border-radius: 9999px;
            white-space: nowrap;
            transition: opacity 0.2s, transform 0.2s;
            flex-shrink: 0;
        }

        .cv-cta-btn:hover {
            opacity: 0.9;
            transform: translateY(-1px);
        }

        /* --- FOOTER --- */
        footer {
            margin-top: 4rem;
            border-top: 1px solid var(--color-gray-200);
            padding: 2rem 0;
            font-size: 0.875rem;
            color: var(--color-gray-600);
        }

        .footer-content {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
        }

        .footer-links {
            display: flex;
            flex-wrap: wrap;
            gap: 0.25rem 1rem;
        }

        .footer-links a {
            font-weight: 500;
            color: var(--color-gray-600);
            transition: color 0.2s;
        }

        .footer-links a:hover {
            color: var(--color-brand-orange);
        }

        .text-link {
            color: var(--color-teal-link);
            font-weight: 600;
            text-decoration: underline;
            text-underline-offset: 2px;
        }
