/* ============================================================
   shared.css — Styles communs à toutes les pages
   Variables, reset, header, footer, points, traduction
   ============================================================ */

            /* ╔══════════════════════════════════════════════════════════════╗
           ║  PARAMÈTRES GLOBAUX - MODIFIABLES ICI                      ║
           ╠══════════════════════════════════════════════════════════════╣
           ║  --section-gap : espacement vertical uniforme entre toutes  ║
           ║    les sections. Changez une valeur → tout s'ajuste.        ║
           ╚══════════════════════════════════════════════════════════════╝ */
            :root {
                /* ▼ ESPACEMENT UNIFORME ENTRE SECTIONS (haut + bas de chaque section) ▼ */
                --section-gap: 72px;
                /* ───────────────────────────────────────────────────────────────────── */
            }

            /* ============================================================
           THÈME DARK
           --bg-base : couleur de base (header, projets, footer = impairs)
           --bg-alt  : base + ~10% de blanc (demoreel, profil = pairs)
        ============================================================ */
            :root,
            [data-theme="dark"] {
                --bg-base: #0e0e0e;
                --bg-alt: #252525; /* #0e0e0e + ~10% blanc */
                --surface: #1e1e1e;
                --surface2: #161616;
                --accent: #7b8cff;
                --accent-dim: rgba(123,140,255,0.18);
                --text: #e8e8e8;
                --muted: #888;
                --border: rgba(255,255,255,0.08);
                --grid-color: rgba(123,140,255,0.04);
            }

            /* ============================================================
           THÈME LIGHT
           --bg-base : couleur de base claire
           --bg-alt  : base - ~10% de blanc = légèrement plus sombre
        ============================================================ */
            [data-theme="light"] {
                --bg-base: #f2f2f2;
                --bg-alt: #d8d8d8; /* #f2f2f2 - ~10% blanc */
                --surface: #ffffff;
                --surface2: #ebebeb;
                --accent: #5a6aff;
                --accent-dim: rgba(90,106,255,0.12);
                --text: #1a1a1a;
                --muted: #555;
                --border: rgba(0,0,0,0.10);
                --grid-color: rgba(90,106,255,0.05);
            }

            /* ============================================================
           RESET & BASE
        ============================================================ */
            *, *::before, *::after {
                box-sizing: border-box;
                margin: 0;
                padding: 0;
            }

            html {
                scroll-behavior: smooth;
                scroll-padding-top: 70px;
            }

            body {
                color: var(--text);
                font-family: 'Montserrat', sans-serif;
                font-weight: 300;
                line-height: 1.65;
                transition: color 0.35s ease;
                background-color: var(--bg-base); /* fallback */
                position: relative;
            }


        

            /* ============================================================
           COULEURS ALTERNÉES DES SECTIONS
           Section impaire (1, 3, 5…) → bg-base
           Section paire   (2, 4)     → bg-alt
           Ordre : header(base) | demoreel(alt) | projets(base) | profil(alt) | footer(base)
        ============================================================ */

            /* Wrapper pleine largeur pour chaque section = permet bg qui déborde */
        .section-wrap {
            z-index: 0;
            position: relative;
            width: 100%;
            transition: background-color 0.35s ease;
            /* Motif crosshair (croix : barre verticale plus haute que l'horizontale)
                   dessiné en SVG inline encodé, répété en petit nuage de points.
*/
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2040%2040%27%20width%3D%2780%27%20height%3D%2780%27%3E%3Ccircle%20cx%3D%2720%27%20cy%3D%2720%27%20r%3D%271.8%27%20fill%3D%27rgba(123%2C140%2C255%2C0.2)%27%2F%3E%3C%2Fsvg%3E");
            background-size: 40px 40px;
            background-attachment: fixed;
            background-attachment: fixed;
        }

            /* Thème light : crosshair plus sombre */
        [data-theme="light"] .section-wrap {
            background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2040%2040%27%20width%3D%2780%27%20height%3D%2780%27%3E%3Ccircle%20cx%3D%2720%27%20cy%3D%2720%27%20r%3D%271.8%27%20fill%3D%27rgba(90%2C106%2C255%2C0.4)%27%2F%3E%3C%2Fsvg%3E");
        }
                /* Sections impaires : couleur de base */
                .section-wrap.bg-base {
                    background-color: var(--bg-base);
                }
                /* Sections paires : couleur alternative (+10% blanc / -10% blanc) */
                .section-wrap.bg-alt {
                    background-color: var(--bg-alt);
                }

            /* Contenu centré dans la largeur max */
        .section-inner {
            z-index: 2;
            position: relative;
            max-width: 1100px;
            margin: 0 auto;
            padding: var(--section-gap) 48px;
        }

            /* ============================================================
           HEADER
        ============================================================ */
            header {
                position: sticky;
                top: 0;
                z-index: 100;
                width: 100%;
                backdrop-filter: blur(12px);
                border-bottom: 1px solid var(--border);
                transition: background-color 0.35s ease, border-color 0.35s ease;
                /* bg-base avec opacité pour le sticky blur */
                background-color: rgba(14,14,14,0.95);
            }

            [data-theme="light"] header {
                background-color: rgba(242,242,242,0.95);
            }
            [data-theme="light"] footer {
                background-color: rgba(242,242,242,0.95);
            }
            

            .header-inner {
                max-width: 1100px;
                margin: 0 auto;
                padding: 18px 48px;
                display: flex;
                align-items: center;
                justify-content: space-between;
            }

            .header-brand h1 {
                font-family: 'Montserrat', sans-serif;
                font-weight: 700;
                font-size: 1.1rem;
                letter-spacing: 0.18em;
                text-transform: uppercase;
                background: var(--accent);
                color: #fff;
                padding: 4px 10px;
                display: inline-block;
            }

            .header-brand p {
                font-family: 'Montserrat', sans-serif;
                font-size: 0.7rem;
                letter-spacing: 0.22em;
                color: var(--muted);
                text-transform: uppercase;
                margin-top: 3px;
                padding-left: 2px;
            }

            nav {
                display: flex;
                gap: 10px;
                align-items: center;
            }

                nav a.nav-link {
                    font-family: 'Montserrat', sans-serif;
                    font-weight: 600;
                    font-size: 0.75rem;
                    letter-spacing: 0.15em;
                    text-transform: uppercase;
                    color: var(--text);
                    text-decoration: none;
                    border: 1px solid var(--text);
                    padding: 7px 20px;
                    transition: background 0.3s, color 0.3s, border-color 0.3s;
                }

                    nav a.nav-link:hover {
                        background: var(--text);
                        color: var(--bg-base);
                    }

            .nav-sep {
                width: 1px;
                height: 28px;
                background: var(--border);
                margin: 0 4px;
            }

            /* FR / EN toggle */
            .lang-toggle {
                display: flex;
                border: 1px solid var(--border);
                overflow: hidden;
            }

                .lang-toggle button {
                    font-family: 'Montserrat', sans-serif;
                    font-weight: 700;
                    font-size: 0.68rem;
                    letter-spacing: 0.14em;
                    text-transform: uppercase;
                    padding: 6px 12px;
                    background: none;
                    border: none;
                    color: var(--muted);
                    cursor: pointer;
                    transition: background 0.25s, color 0.25s;
                }

                    .lang-toggle button.active {
                        background: var(--accent);
                        color: #fff;
                    }

                    .lang-toggle button:not(.active):hover {
                        background: var(--accent-dim);
                        color: var(--text);
                    }

            /* Dark / Light toggle */
            .theme-toggle {
                width: 36px;
                height: 36px;
                border: 1px solid var(--border);
                background: none;
                color: var(--text);
                cursor: pointer;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 1rem;
                transition: border-color 0.3s, background 0.3s;
                flex-shrink: 0;
            }

                .theme-toggle:hover {
                    border-color: var(--accent);
                    background: var(--accent-dim);
                }

            .icon-moon {
                display: block;
            }

            .icon-sun {
                display: none;
            }

            [data-theme="light"] .icon-moon {
                display: none;
            }

            [data-theme="light"] .icon-sun {
                display: block;
            }

            /* ============================================================
           TRADUCTION FR / EN
        ============================================================ */
            [data-lang="fr"] .t-en {
                display: none;
            }

            [data-lang="en"] .t-fr {
                display: none;
            }

            /* ============================================================
           TITRES DE SECTION (bandeau accent)
        ============================================================ */
            .section-title {
                display: block;
                font-family: 'Montserrat', sans-serif;
                font-weight: 700;
                font-size: 0.9rem;
                letter-spacing: 0.2em;
                text-transform: uppercase;
                color: #fff;
                background: var(--accent);
                padding: 8px 28px;
                text-align: center;
                margin: 0 auto calc(var(--section-gap) * 0.6);
                width: fit-content;
            }

/* ============================================================
           FOOTER
        ============================================================ */
            footer {
                width: 100%;
                position: relative;
                z-index: 100;
                border-top: 1px solid var(--border);
                background-color: rgba(14,14,14,0.95);
                backdrop-filter: blur(12px);
                -webkit-backdrop-filter: blur(12px);
                transition: background-color 0.35s ease, border-color 0.35s ease;
            }

        .footer-inner {
            z-index: 2;
            max-width: 1100px;
            margin: 0 auto;
            padding: 28px 48px;
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        /* .footer-brand h2 {
            <h2>Junior Level Designer</h2>
<p>Marius Queulin</p>
                font-family: 'Montserrat', sans-serif;
                font-weight: 700;
                font-size: 0.9rem;
                letter-spacing: 0.2em;
                text-transform: uppercase;
                background: var(--accent);
                color: #fff;
                padding: 4px 10px;
                display: inline-block;
            }

            .footer-brand p {
                font-family: 'Montserrat', sans-serif;
                font-size: 0.68rem;
                letter-spacing: 0.2em;
                color: var(--muted);
                margin-top: 3px;
                padding-left: 2px;
            }*/

            .back-top {
                width: 44px;
                height: 44px;
                border: 1px solid var(--border);
                display: flex;
                align-items: center;
                justify-content: center;
                color: var(--text);
                text-decoration: none;
                font-size: 1.3rem;
                transition: border-color 0.3s, background 0.3s;
            }

                .back-top:hover {
                    border-color: var(--accent);
                    background: var(--accent-dim);
                }

            /* ============================================================
           MODALE PDF
        ============================================================ */
            .modal-overlay {
                display: none;
                position: fixed;
                inset: 0;
                background: rgba(0,0,0,0.9);
                z-index: 500;
                align-items: center;
                justify-content: center;
                flex-direction: column;
            }

                .modal-overlay.active {
                    display: flex;
                }

            .modal-box {
                background: var(--surface);
                border: 1px solid var(--border);
                width: min(90vw, 820px);
                max-height: 90vh;
                display: flex;
                flex-direction: column;
            }

            .modal-header {
                display: flex;
                justify-content: space-between;
                align-items: center;
                padding: 12px 20px;
                border-bottom: 1px solid var(--border);
            }

                .modal-header span {
                    font-family: 'Montserrat', sans-serif;
                    font-size: 0.78rem;
                    letter-spacing: 0.12em;
                    text-transform: uppercase;
                    color: var(--muted);
                }

            .modal-close {
                background: none;
                border: none;
                color: var(--text);
                font-size: 1.4rem;
                cursor: pointer;
                line-height: 1;
            }

            .modal-body {
                flex: 1;
                overflow: hidden;
            }

                .modal-body iframe {
                    width: 100%;
                    height: 75vh;
                    border: none;
                }

            .modal-footer {
                padding: 12px 20px;
                border-top: 1px solid var(--border);
                display: flex;
                justify-content: flex-end;
                gap: 10px;
            }

            .btn {
                font-family: 'Montserrat', sans-serif;
                font-size: 0.72rem;
                letter-spacing: 0.12em;
                text-transform: uppercase;
                padding: 8px 20px;
                cursor: pointer;
                border: 1px solid var(--text);
                background: none;
                color: var(--text);
                text-decoration: none;
                transition: background 0.3s, color 0.3s;
            }

                .btn:hover {
                    background: var(--text);
                    color: var(--bg-base);
                }

            .btn-accent {
                background: var(--accent);
                border-color: var(--accent);
                color: #fff;
            }

                .btn-accent:hover {
                    background: #9aaaff;
                    border-color: #9aaaff;
                    color: #fff;
                }

/* ============================================================
   RESPONSIVE — COMMUN (header, footer, section-inner)
   ============================================================ */
@media (max-width: 700px) {

                :root {
                    --section-gap: 40px;
                }

                .header-inner {
                    padding: 12px 16px;
                    flex-direction: column;
                    align-items: center;
                    gap: 10px;
                }

                /* Center "Marius Queulin" name on mobile */
                .header-brand {
                    text-align: center;
                    width: 100%;
                }
                .header-brand p {
                    text-align: center;
                }

                nav {
                    width: 100%;
                    flex-wrap: nowrap;     /* single line */
                    gap: 4px;
                    justify-content: center;
                    overflow-x: auto;      /* scroll if truly too tight */
                }

                    nav a.nav-link {
                        padding: 5px 9px;
                        font-size: 0.63rem;
                        white-space: nowrap;
                        flex-shrink: 0;
                    }

                /* Shrink lang/theme/share buttons so they all fit */
                .lang-toggle button {
                    font-size: 0.63rem;
                    padding: 5px 8px;
                }
                .theme-toggle {
                    width: 34px; height: 34px;
                    font-size: 0.9rem;
                }
                .share-btn {
                    width: 34px; height: 34px;
                }
                .share-btn img { width: 15px; height: 15px; }

                .nav-sep {
                    display: none;
                }

                .section-inner {
                    padding: var(--section-gap) 16px;
                }
}

/* ── Tablette (701–900px) ── */
            @media (min-width: 701px) and (max-width: 900px) {
                .section-inner {
                    padding: calc(var(--section-gap) * 0.8) 28px;
                }

/* ── Mobile : croix 40px ─────────────── */
            @media (max-width: 700px) {
                .section-wrap {
                background-size: 40px 40px!important;
                }

/* Mobile footer: always row — confetti left, arrow right */
@media (max-width: 700px) {
    .footer-inner {
        flex-direction: row !important;
        padding: 14px 16px;
    }
}
