:root{--black:#080505;--white:#F5EDEC;--accent:#EF4444;--accent-rgb:239,68,68;--accent2:#ffe033;--gray:#141209;--gray2:#1C1A15;--text-muted:#888;
/* Thème Rouge Ardent (défaut) — remplacé dynamiquement par setTheme() */
--a1:#B91C1C;--a2:#EF4444;--a-dim:rgba(185,28,28,.09);--a-mid:rgba(185,28,28,.22);--a-glow:rgba(239,68,68,.16);
--bg:#080505;--ink:#F5EDEC;--ink2:rgba(245,237,236,.4);--ink3:rgba(245,237,236,.06);--brd:rgba(245,237,236,.09);--r:5px;--e1:cubic-bezier(.16,1,.3,1);}

/* THEME TOGGLE SWITCH */
.theme-toggle{position:relative;z-index:1;width:46px;height:24px;border-radius:12px;background:var(--gray2);border:1px solid rgba(255,255,255,.08);cursor:none;transition:background .3s;flex-shrink:0;}
.theme-toggle::before{content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--text-muted);transition:transform .3s,background .3s;}
.theme-toggle::after{content:'☽';position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:.6rem;opacity:.6;transition:opacity .3s;}

/* SOCIAL SVG ICONS */
.social-link{display:flex;align-items:center;gap:10px;padding:14px 28px;border:1px solid var(--gray2);background:var(--black);color:var(--white);text-decoration:none;font-size:.9rem;letter-spacing:.05em;transition:all .2s;}
.social-link:hover{transform:translateY(-3px);}
.social-link svg{width:18px;height:18px;flex-shrink:0;}
.social-link.ig:hover{border-color:#E1306C;color:#E1306C;}
.social-link.tt:hover{border-color:#69C9D0;color:#69C9D0;}
.social-link.li:hover{border-color:#0A66C2;color:#0A66C2;}
.social-link.pi:hover{border-color:#E60023;color:#E60023;}
.social-link.be:hover{border-color:#1769FF;color:#1769FF;}
.social-link.yt:hover{border-color:#FF0000;color:#FF0000;}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-weight:300;overflow-x:hidden;cursor:none;-webkit-font-smoothing:antialiased;}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;opacity:0;}

/* ── NAV MODERNE ── */
nav,.nav{position:fixed;top:0;left:0;right:0;z-index:800;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:0 32px;padding:0 52px;height:62px;transition:background .35s;}
.nav.sc{background:rgba(8,5,5,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);}
/* Ligne dégradé rouge en bas */
.nav-line{position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--a1) 20%,var(--a2) 50%,var(--a1) 80%,transparent 100%);opacity:0;transition:opacity .35s;pointer-events:none;}
.nav.sc .nav-line{opacity:1;}
/* Logo */
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0;}
.nav-jcb{font-family:'Unbounded',sans-serif;font-weight:900;font-size:15px;letter-spacing:-.02em;background:linear-gradient(135deg,var(--a1),var(--a2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;}
.nav-logo-sep{width:1px;height:18px;background:var(--brd);flex-shrink:0;}
.nav-logo-sub{font-family:'DM Sans',sans-serif;font-weight:400;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);transition:color .2s;}
.nav-logo:hover .nav-logo-sub{color:var(--ink);}
/* Liens centre */
.nav-links{display:flex;align-items:center;justify-content:center;gap:40px;}
.nav-links a{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);font-weight:400;transition:color .2s;text-decoration:none;position:relative;padding-bottom:3px;}
.nav-links a::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--a1),var(--a2));transform:scaleX(0);transform-origin:center;transition:transform .28s var(--e1);}
.nav-links a:hover{color:var(--ink);}
.nav-links a:hover::after{transform:scaleX(1);}
/* Droite */
.nav-right{display:flex;align-items:center;gap:12px;flex-shrink:0;}
/* Bouton Admin */
.nav-cta{padding:8px 20px;border-radius:var(--r);background:transparent;color:var(--ink2);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--brd);cursor:none;transition:border-color .2s,color .2s,background .2s;}
.nav-cta:hover{border-color:var(--a2);color:var(--a2);}
/* Hamburger */
.ham{display:none;flex-direction:column;gap:5px;padding:8px;background:none;border:none;cursor:none;flex-shrink:0;}
.ham span{display:block;width:22px;height:1.5px;background:var(--ink);border-radius:1px;transition:transform .3s var(--e1),opacity .2s;}
body.mnav .ham span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
body.mnav .ham span:nth-child(2){opacity:0;transform:scaleX(0);}
body.mnav .ham span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
/* Menu mobile plein écran */
#mnav{position:fixed;inset:0;z-index:790;background:var(--bg);display:flex;flex-direction:column;justify-content:center;padding:0 32px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .3s var(--e1),visibility .3s,transform .3s var(--e1);}
body.mnav #mnav{opacity:1;visibility:visible;transform:none;}
.mnav-a{display:block;padding:16px 0;border-bottom:1px solid var(--brd);font-family:'Unbounded',sans-serif;font-size:clamp(28px,8vw,52px);font-weight:900;text-transform:uppercase;letter-spacing:-.04em;color:var(--ink2);transition:color .2s,padding-left .3s var(--e1);text-decoration:none;}
.mnav-a:hover{color:var(--a2);padding-left:10px;}
.mnav-foot{margin-top:28px;font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink2);opacity:.4;}
/* scroll progress bar — défini plus bas (#prog) */

/* NAV CONTROLS */
.nav-controls{display:flex;align-items:center;gap:10px;position:relative;z-index:1;}

/* NAV AVAILABILITY BADGE */
.nav-avail{display:flex;align-items:center;gap:6px;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;font-family:'DM Sans',sans-serif;border:1px solid currentColor;padding:5px 12px;border-radius:0;opacity:.9;}
.navav-dot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:blink 1.5s infinite;flex-shrink:0;}
.nav-avail.avail{color:#4ade80;}
.nav-avail.unavail{color:var(--accent);}
.navav-full{display:inline;}
.navav-short{display:none;}

.lang-switcher{position:relative;}
.lang-btn{background:transparent;border:1px solid rgba(128,128,128,.22);color:var(--ink2);padding:6px 11px;font-family:'DM Sans',sans-serif;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;cursor:none;transition:all .2s;display:flex;align-items:center;gap:5px;border-radius:var(--r);}
.lang-btn:hover{border-color:var(--a2);color:var(--a2);}
.lang-btn .lang-flag{font-size:.82rem;}
.lang-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--gray);border:1px solid var(--gray2);min-width:130px;flex-direction:column;z-index:100;display:none;border-radius:var(--r);overflow:hidden;}
.lang-dropdown.open{display:flex;}
.lang-opt{padding:10px 16px;font-size:.73rem;letter-spacing:.06em;color:rgba(255,255,255,.6);cursor:none;transition:all .15s;display:flex;align-items:center;gap:8px;background:transparent;border:none;text-align:left;width:100%;}
.lang-opt:hover{background:var(--gray2);color:var(--ink);}
.lang-opt.active{color:var(--a2);}

/* Boutons principaux */
.btn-primary{padding:14px 36px;background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;border:none;font-weight:700;cursor:none;text-decoration:none;display:inline-block;transition:opacity .2s,transform .15s;}
.btn-primary:hover{opacity:.86;transform:translateY(-1px);}
.btn-ghost{padding:14px 36px;background:transparent;color:var(--ink);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border:1px solid var(--brd);display:inline-block;transition:border-color .2s,color .2s;}
.btn-ghost:hover{border-color:var(--a2);color:var(--a2);}


.section{padding:120px 48px;}
.section-label{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:60px;display:flex;align-items:center;gap:16px;}
.section-label::before{content:'';width:30px;height:1px;background:var(--accent);}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.about-title{font-family:'Unbounded',sans-serif;font-weight:900;font-size:clamp(36px,5vw,64px);line-height:1.05;letter-spacing:-.03em;}
.about-title em{font-style:italic;color:var(--a2);font-family:'DM Sans',sans-serif;font-weight:300;}
.about-text{color:var(--ink2);line-height:1.8;font-size:1.05rem;}
.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:48px;}
.stat-num{font-family:'Unbounded',sans-serif;font-weight:900;font-size:3rem;letter-spacing:-.04em;color:var(--ink);}
.stat-num span{color:var(--a2);}
.stat-label{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-top:4px;}

/* PROJETS */
.portfolio-section{padding:120px 48px;}
.portfolio-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:60px;flex-wrap:wrap;gap:20px;}
.portfolio-title{font-family:'Unbounded',sans-serif;font-weight:900;font-size:clamp(40px,6vw,80px);letter-spacing:-.04em;line-height:1;}
.filter-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:0 52px 32px;}
.filter-tab{background:transparent;border:1px solid var(--gray2);color:rgba(255,255,255,.5);padding:8px 20px;font-family:'DM Sans',sans-serif;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;cursor:none;transition:all .2s;}
.filter-tab.active,.filter-tab:hover{background:var(--white);color:var(--black);border-color:var(--white);}
/* BENTO GRID 4 colonnes */
.projects-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:300px;gap:16px;min-height:100px;}

/* ANIMATION CARTES */
.project-card{position:relative;overflow:hidden;background:var(--gray);cursor:none;opacity:0;transform:translateY(40px) scale(0.97);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1),border-color .3s;}
.project-card.card-visible{opacity:1;transform:translateY(0) scale(1);}
/* Pattern bento repeating 6 : grand · petit · tall · petit · wide · wide */
.project-card:nth-child(6n+1){grid-column:span 2;grid-row:span 2;}
.project-card:nth-child(6n+3){grid-row:span 2;}
.project-card:nth-child(6n+5){grid-column:span 2;}
.project-card:nth-child(6n+6){grid-column:span 2;}
.project-card:hover{border:1px solid rgba(var(--accent-rgb),.3);box-shadow:0 0 40px rgba(var(--accent-rgb),.05);}

/* Toutes les médias remplissent leur cellule bento */
.project-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.16,1,.3,1);}
.project-card:hover .project-thumb{transform:scale(1.06);}
.project-video-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.16,1,.3,1);}
.project-card:hover .project-video-thumb{transform:scale(1.06);}
.thumb-placeholder{position:absolute;inset:0;width:100%;height:100%;background:linear-gradient(135deg,var(--gray2) 0%,#1C1A10 100%);display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-weight:800;font-size:4rem;color:rgba(var(--accent-rgb),.05);}

/* SLIDESHOW CARTES */
.card-slides{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;}
.project-card.featured-card .card-slides{height:100%;}
.card-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease,transform .6s cubic-bezier(.16,1,.3,1);}
.card-slide.active{opacity:1;}
.project-card:hover .card-slide.active{transform:scale(1.06);}
.card-dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:5px;z-index:5;opacity:.45;transition:opacity .3s;}
.project-card:hover .card-dots{opacity:1;}
.card-dot{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.3);transition:background .3s,transform .3s;cursor:pointer;}
.card-dot.active{background:var(--accent);transform:scale(1.3);}
.projects-grid.view-pinterest .card-slides,.projects-grid.view-behance .card-slides{height:auto;min-height:unset;}
.projects-grid.view-pinterest .card-slide,.projects-grid.view-behance .card-slide{position:static;display:none;width:100%;height:auto;opacity:1;transform:none!important;object-fit:contain;background:var(--gray);}
.projects-grid.view-pinterest .card-slide.active,.projects-grid.view-behance .card-slide.active{display:block;}
.projects-grid.view-behance .card-slide{max-height:500px;}

/* Compteur vues */
.project-views{position:absolute;top:14px;left:14px;background:rgba(10,10,10,.85);border:1px solid rgba(255,255,255,.1);padding:4px 10px;font-size:.68rem;letter-spacing:.08em;color:rgba(237,228,213,.7);display:flex;align-items:center;gap:5px;z-index:2;}
.views-dot{width:5px;height:5px;background:var(--accent2);border-radius:50%;animation:blink 2s infinite;}

.project-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.88) 0%,rgba(10,10,10,.45) 40%,transparent 70%);opacity:0;transition:opacity .4s;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;z-index:3;}
.project-card:hover .project-overlay{opacity:1;}
.project-cat{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;}
.project-name{font-family:'Syne',sans-serif;font-weight:700;font-size:1.2rem;}
.project-media-count{font-size:.72rem;color:rgba(237,228,213,.5);margin-top:4px;}
.project-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;}
.project-btn{background:rgba(30,30,30,.9);border:1px solid rgba(255,255,255,.2);color:var(--white);padding:7px 16px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;cursor:none;transition:all .2s;}
.project-btn:hover{background:var(--accent);border-color:var(--accent);}
.project-btn.view-btn{background:rgba(255,224,51,.08);border-color:rgba(255,224,51,.4);color:var(--accent2);}
.project-btn.view-btn:hover{background:var(--accent2);color:var(--black);}
.share-btn{background:rgba(var(--accent-rgb),.15)!important;border-color:rgba(var(--accent-rgb),.4)!important;color:var(--accent)!important;font-weight:600;}
.share-btn:hover{background:var(--accent)!important;color:var(--white)!important;}

.projects-empty{grid-column:span 4;text-align:center;padding:80px 20px;color:var(--text-muted);}
.projects-empty .empty-icon{font-size:3rem;margin-bottom:16px;opacity:.3;}
.projects-empty p{font-size:.9rem;letter-spacing:.05em;}

.services-section{padding:120px 48px;border-top:1px solid var(--gray2);}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--gray2);margin-top:60px;}
.service-card{background:var(--black);padding:48px 36px;transition:background .3s;position:relative;overflow:hidden;}
.service-card::before{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--accent);transition:width .4s cubic-bezier(.16,1,.3,1);}
.service-card:hover::before{width:100%;}
.service-num{font-family:'Syne',sans-serif;font-weight:800;font-size:.7rem;letter-spacing:.2em;color:var(--accent);margin-bottom:24px;}
.service-name{font-family:'Syne',sans-serif;font-weight:700;font-size:1.4rem;margin-bottom:16px;}
.service-desc{color:rgba(237,228,213,.5);font-size:.9rem;line-height:1.7;}

.social-section{padding:120px 48px;background:var(--gray);}
.social-inner{max-width:900px;margin:0 auto;text-align:center;}
.social-title{font-family:'Unbounded',sans-serif;font-weight:900;font-size:clamp(36px,5vw,60px);letter-spacing:-.03em;margin-bottom:16px;}
.social-sub{color:var(--text-muted);margin-bottom:48px;}
.social-links{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;}

.contact-section{padding:120px 48px;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;}
.contact-title{font-family:'Unbounded',sans-serif;font-weight:900;font-size:clamp(40px,5vw,70px);letter-spacing:-.04em;line-height:1;}
.contact-title span{color:var(--a2);display:block;}
.contact-info{margin-top:40px;display:flex;flex-direction:column;gap:20px;}
.contact-item{display:flex;flex-direction:column;gap:4px;}
.contact-item-label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);}
.contact-item-val{font-size:1rem;}
.contact-form{display:flex;flex-direction:column;gap:20px;}
.form-group{display:flex;flex-direction:column;gap:8px;}
.form-label{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);}
.form-input,.form-textarea{background:var(--gray);border:1px solid var(--gray2);color:var(--white);padding:14px 18px;font-family:'DM Sans',sans-serif;font-size:.95rem;outline:none;transition:border-color .2s;}
.form-input:focus,.form-textarea:focus{border-color:var(--accent);}
.form-input:focus-visible,.form-textarea:focus-visible{outline:2px solid var(--a2);outline-offset:2px;}
.form-textarea{resize:vertical;min-height:120px;}
/* footer → géré par footer.footer plus bas */
.footer-logo{font-family:'Syne',sans-serif;font-weight:800;color:var(--white);display:inline-flex;flex-direction:column;line-height:1.1;}
.old-footer-copy{font-size:.8rem;color:var(--text-muted);}

/* LIGHTBOX PROJET */
.lightbox{position:fixed;inset:0;z-index:8000;background:rgba(10,10,10,.97);display:none;flex-direction:column;overflow-y:auto;}
.lightbox.open{display:flex;}
.lb-header{padding:24px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--gray2);position:sticky;top:0;background:var(--black);z-index:2;flex-shrink:0;}
.lb-title-wrap{display:flex;flex-direction:column;gap:4px;}
.lb-title{font-family:'Syne',sans-serif;font-weight:800;font-size:1.6rem;letter-spacing:-.02em;}
.lb-meta{font-size:.75rem;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;}
.lb-stats{display:flex;align-items:center;gap:24px;}
.lb-views{display:flex;align-items:center;gap:8px;font-size:.85rem;color:rgba(237,228,213,.6);}
.lb-views strong{font-family:'Syne',sans-serif;font-weight:700;color:var(--accent2);font-size:1.1rem;}
.lb-close{background:transparent;border:1px solid var(--gray2);color:var(--white);width:40px;height:40px;font-size:1.2rem;cursor:none;transition:all .2s;display:flex;align-items:center;justify-content:center;}
.lb-close:hover{border-color:var(--accent);color:var(--accent);}
.lb-body{padding:40px;display:flex;flex-direction:column;gap:40px;flex:1;}
.lb-desc{max-width:700px;}
.lb-desc-title{font-family:'Syne',sans-serif;font-weight:700;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;}
.lb-desc-text{color:rgba(237,228,213,.65);line-height:1.8;font-size:1rem;}
.lb-tts-btn{display:inline-flex;align-items:center;gap:8px;margin-top:14px;background:transparent;border:1px solid var(--gray2);color:var(--text-muted);padding:8px 18px;font-family:'DM Sans',sans-serif;font-size:.8rem;letter-spacing:.06em;cursor:none;transition:all .2s;}
.lb-tts-btn:hover,.lb-tts-btn.speaking{border-color:var(--accent2);color:var(--accent2);}
.lb-tts-btn.speaking .tts-icon::after{content:'⏹';}
.tts-icon::after{content:'▶';}
.lb-media-title{font-family:'Syne',sans-serif;font-weight:700;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:20px;display:flex;align-items:center;gap:12px;}
.lb-media-title span{color:var(--white);}
.lb-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.lb-media-item{position:relative;overflow:hidden;background:var(--gray2);cursor:none;}
.lb-media-item img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.16,1,.3,1);}
.lb-media-item video{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.lb-media-item:hover img{transform:scale(1.04);}
.lb-media-badge{position:absolute;top:8px;left:8px;background:rgba(10,10,10,.8);border:1px solid rgba(255,255,255,.1);padding:3px 9px;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(237,228,213,.7);backdrop-filter:blur(6px);}
.lb-media-badge.video{border-color:rgba(var(--accent-rgb),.4);color:var(--accent);}
.lb-fullscreen-btn{position:absolute;bottom:8px;right:8px;background:rgba(10,10,10,.7);border:1px solid rgba(255,255,255,.2);color:var(--white);width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:.9rem;cursor:none;opacity:0;transition:opacity .2s;backdrop-filter:blur(4px);}
.lb-media-item:hover .lb-fullscreen-btn{opacity:1;}

/* NAVIGATION LIGHTBOX ‹ › — cachés par défaut, le JS les affiche à l'ouverture */
.lb-nav-btn{display:none;position:fixed;top:50%;transform:translateY(-50%);background:rgba(10,10,10,.85);border:1px solid var(--gray2);color:var(--white);font-size:1.6rem;width:48px;height:48px;align-items:center;justify-content:center;cursor:pointer;z-index:10010;transition:background .2s,border-color .2s;backdrop-filter:blur(8px);}
.lb-nav-btn:hover{background:var(--accent);border-color:var(--accent);}
#lbPrevBtn{left:12px;}
#lbNextBtn{right:12px;}

/* ═══ MODAL PDF ═══ */
.pdf-modal-overlay{position:fixed;inset:0;background:rgba(10,10,10,.88);z-index:9200;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(6px);}
.pdf-modal-overlay.open{display:flex;}
.pdf-modal{background:var(--black);border:1px solid var(--gray2);width:100%;max-width:460px;padding:44px 40px;position:relative;animation:modalIn .3s cubic-bezier(.16,1,.3,1);}
@keyframes modalIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.pdf-modal-close{position:absolute;top:16px;right:18px;background:transparent;border:none;color:var(--text-muted);font-size:1rem;cursor:pointer;transition:color .2s;}
.pdf-modal-close:hover{color:var(--white);}
.pdf-modal-icon{width:52px;height:52px;border:1px solid var(--gray2);display:flex;align-items:center;justify-content:center;margin-bottom:20px;color:var(--accent);}
.pdf-modal-title{font-family:'Syne',sans-serif;font-weight:800;font-size:1.4rem;margin-bottom:6px;}
.pdf-modal-sub{color:var(--text-muted);font-size:.82rem;margin-bottom:28px;line-height:1.6;}
.pdf-modal-form{display:flex;flex-direction:column;gap:18px;}
.pdf-modal-field{display:flex;flex-direction:column;gap:7px;}
.pdf-modal-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);}
.pdf-modal-input{background:var(--gray);border:1px solid var(--gray2);color:var(--white);font-family:'DM Sans',sans-serif;font-size:.88rem;padding:11px 14px;outline:none;transition:border-color .2s;}
.pdf-modal-input:focus{border-color:var(--accent);}
.pdf-modal-input:focus-visible{outline:2px solid var(--a2);outline-offset:2px;}
.pdf-orientation-group{display:flex;gap:12px;}
.pdf-orientation-opt{flex:1;cursor:pointer;}
.pdf-orientation-opt input{position:absolute;opacity:0;pointer-events:none;}
.pdf-orientation-box{display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid var(--gray2);padding:16px 12px;font-size:.72rem;letter-spacing:.08em;color:var(--text-muted);transition:border-color .2s,color .2s;}
.pdf-orientation-opt input:checked ~ .pdf-orientation-box{border-color:var(--accent);color:var(--accent);}
.pdf-modal-submit{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--accent);color:var(--white);border:none;font-family:'DM Sans',sans-serif;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;padding:14px 24px;cursor:pointer;transition:opacity .2s;margin-top:4px;}
.pdf-modal-submit:hover{opacity:.85;}
.pdf-modal-submit:disabled{opacity:.4;cursor:not-allowed;}
.pdf-modal-notice{font-size:.68rem;color:var(--text-muted);text-align:center;margin-top:2px;}
.pdf-modal-success{text-align:center;padding:12px 0;}
.pdf-success-icon{width:56px;height:56px;background:rgba(var(--accent-rgb),.12);border:1px solid var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:var(--accent);margin:0 auto 18px;}
.pdf-modal-success h4{font-family:'Syne',sans-serif;font-size:1.2rem;margin-bottom:10px;}
.pdf-modal-success p{color:var(--text-muted);font-size:.85rem;line-height:1.7;margin-bottom:24px;}
.pdf-modal-close-btn{background:transparent;border:1px solid var(--gray2);color:var(--white);font-family:'DM Sans',sans-serif;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;padding:10px 24px;cursor:pointer;transition:border-color .2s;}
.pdf-modal-close-btn:hover{border-color:var(--accent);}
/* Tableau téléchargements admin */
.downloads-table{width:100%;border-collapse:collapse;font-size:.78rem;}
.downloads-table th{text-align:left;padding:8px 12px;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-weight:400;border-bottom:1px solid var(--gray2);}
.downloads-table td{padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.04);}
.downloads-table tr:last-child td{border-bottom:none;}
.dl-orient{display:inline-block;padding:2px 8px;border:1px solid var(--gray2);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);}
@media(max-width:600px){.pdf-modal{padding:32px 22px;}.pdf-orientation-group{flex-direction:row;}}

/* ═══ BANNER CTA TÉLÉCHARGEMENT PDF ═══ */
/* Wrapper — respire entre les sections, aligné avec le gutter du site */
.pdf-cta-banner{
  position:relative;overflow:hidden;
  margin:80px auto;
  padding:60px 56px;
  background:#0e0e0e;
  border:1px solid rgba(255,255,255,.08);
  border-left:3px solid var(--accent);
  box-sizing:border-box;
  width:calc(100% - 2*var(--gutter, 48px));
  max-width:1100px;
}
.pdf-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:48px;position:relative;z-index:1;}
.pdf-cta-text{flex:1;min-width:0;}
.pdf-cta-eyebrow{font-size:8px;letter-spacing:4px;text-transform:uppercase;color:var(--accent);margin-bottom:14px;display:block;}
.pdf-cta-heading{font-family:'Syne',sans-serif;font-weight:900;font-size:clamp(1.8rem,3.2vw,2.8rem);line-height:1.05;margin-bottom:14px;letter-spacing:-0.5px;}
.pdf-cta-desc{font-size:.84rem;color:var(--text-muted);line-height:1.75;max-width:380px;}
.pdf-cta-btn{display:inline-flex;align-items:center;gap:12px;background:var(--accent);color:var(--white);border:none;font-family:'DM Sans',sans-serif;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;padding:17px 34px;cursor:pointer;transition:opacity .2s,transform .15s;white-space:nowrap;flex-shrink:0;}
.pdf-cta-btn:hover{opacity:.85;transform:translateY(-2px);}
.pdf-cta-deco{position:absolute;right:-10px;top:50%;transform:translateY(-50%);font-family:'Syne',sans-serif;font-weight:900;font-size:clamp(70px,10vw,160px);color:rgba(255,255,255,.03);line-height:1;pointer-events:none;letter-spacing:-4px;user-select:none;}
/* Tablette */
@media(max-width:900px){
  .pdf-cta-banner{padding:48px 36px;margin:64px auto;width:calc(100% - 48px);}
  .pdf-cta-inner{gap:28px;}
  .pdf-cta-deco{display:none;}
}
/* Mobile */
@media(max-width:600px){
  .pdf-cta-banner{padding:32px 24px;margin:40px auto;width:calc(100% - 32px);border-left-width:3px;}
  .pdf-cta-inner{flex-direction:column;align-items:flex-start;gap:24px;}
  .pdf-cta-heading{font-size:1.6rem;}
  .pdf-cta-desc{max-width:100%;font-size:.82rem;}
  .pdf-cta-btn{width:100%;justify-content:center;padding:15px 20px;}
}

/* MODE PRÉSENTATION — bouton sortie caché par défaut */
.pres-exit-btn{display:none;position:fixed;top:16px;right:16px;z-index:99998;background:var(--accent);color:var(--white);border:none;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;padding:10px 22px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:opacity .2s;}
.pres-exit-btn:hover{opacity:.85;}
body.presentation-mode .pres-exit-btn{display:block;}

/* FULLSCREEN IMG */
.fs-overlay{position:fixed;inset:0;z-index:9500;background:rgba(0,0,0,.97);display:none;align-items:center;justify-content:center;}
.fs-overlay.open{display:flex;}
.fs-img{max-width:92vw;max-height:92vh;object-fit:contain;}
.fs-close{position:absolute;top:20px;right:24px;background:transparent;border:none;color:var(--white);font-size:2rem;cursor:none;opacity:.5;transition:opacity .2s;}
.fs-close:hover{opacity:1;}

/* SHARE MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(10,10,10,.9);backdrop-filter:blur(12px);z-index:7000;display:none;align-items:center;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal{background:var(--gray);border:1px solid var(--gray2);padding:48px;max-width:520px;width:90%;position:relative;animation:fadeUp .3s ease;}
.modal-close{position:absolute;top:20px;right:20px;background:transparent;border:none;color:var(--white);font-size:1.5rem;cursor:none;opacity:.5;transition:opacity .2s;}
.modal-close:hover{opacity:1;}
.modal-title{font-family:'Syne',sans-serif;font-weight:800;font-size:1.8rem;margin-bottom:8px;}
.modal-sub{color:var(--text-muted);font-size:.9rem;margin-bottom:32px;}
.platform-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px;}
.platform-btn{display:flex;align-items:center;gap:12px;padding:14px 18px;border:1px solid var(--gray2);background:transparent;color:var(--white);cursor:none;transition:all .2s;font-family:'DM Sans',sans-serif;font-size:.9rem;}
.platform-btn:hover{border-color:var(--accent);color:var(--accent);}
.platform-btn.selected{border-color:var(--accent);background:rgba(var(--accent-rgb),.1);color:var(--accent);}
.platform-icon{font-size:1.2rem;}
.format-options{margin-bottom:24px;}
.format-label{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px;}
.format-btns{display:flex;gap:8px;}
.format-btn{padding:8px 16px;border:1px solid var(--gray2);background:transparent;color:rgba(255,255,255,.5);font-size:.8rem;cursor:none;transition:all .2s;}
.format-btn.active{border-color:var(--accent2);color:var(--accent2);}
.share-action-btn{width:100%;background:var(--accent);border:none;color:var(--white);padding:16px;font-family:'Syne',sans-serif;font-weight:700;font-size:1rem;letter-spacing:.05em;text-transform:uppercase;cursor:none;transition:background .2s,transform .2s;}
.share-action-btn:hover{background:#ff5a4e;transform:translateY(-2px);}
.share-note{text-align:center;font-size:.75rem;color:var(--text-muted);margin-top:12px;}

/* LOADER */
.loader{position:fixed;inset:0;z-index:99999;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .7s ease,visibility .7s ease;gap:28px;}
.loader.hidden{opacity:0;visibility:hidden;pointer-events:none;}
/* Loader Unbounded — lettres animées */
.loader-logo{font-family:'Unbounded',sans-serif;font-weight:900;font-size:11px;letter-spacing:.2em;text-transform:uppercase;display:flex;gap:0;overflow:hidden;margin-bottom:0;}
.loader-logo .lt{font-size:clamp(1rem,3vw,1.4rem);letter-spacing:.18em;color:var(--ink2);}
.loader-logo .lb{font-size:clamp(2.5rem,7vw,5rem);letter-spacing:.1em;color:var(--a2);}
/* Lettres individuelles du nouveau loader */
.ld-c{display:inline-block;transform:translateY(110%);opacity:0;animation:ldUp .5s var(--e1) forwards;}
.ld-c:nth-child(1){animation-delay:.06s}.ld-c:nth-child(2){animation-delay:.1s}.ld-c:nth-child(3){animation-delay:.14s}
.ld-c:nth-child(4){animation-delay:.18s}.ld-c:nth-child(5){animation-delay:.22s;color:var(--a2)}.ld-c:nth-child(6){animation-delay:.26s}
.ld-c:nth-child(7){animation-delay:.3s}.ld-c:nth-child(8){animation-delay:.34s}.ld-c:nth-child(9){animation-delay:.38s}
.ld-c:nth-child(10){animation-delay:.42s}.ld-c:nth-child(11){animation-delay:.46s}.ld-c:nth-child(12){animation-delay:.5s}
.ld-c:nth-child(13){animation-delay:.54s}.ld-c:nth-child(14){animation-delay:.58s}.ld-c:nth-child(15){animation-delay:.62s}
.ld-c:nth-child(16){animation-delay:.66s}
@keyframes ldUp{to{transform:translateY(0);opacity:1;}}
.ld-logo{font-family:'Unbounded',sans-serif;font-weight:900;font-size:11px;letter-spacing:.2em;text-transform:uppercase;display:flex;gap:0;overflow:hidden;}
.ld-bar{width:100px;height:1.5px;background:var(--ink3);overflow:hidden;border-radius:1px;}
.ld-fill{height:100%;background:linear-gradient(90deg,var(--a1),var(--a2));transform:scaleX(0);transform-origin:left;border-radius:1px;animation:ldFill .9s .5s var(--e1) forwards;}
@keyframes ldFill{to{transform:scaleX(1);}}
.ld-sub{font-size:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink2);}
/* Ancien loader (compat) */
.loader-bar-wrap{width:200px;height:1px;background:rgba(255,255,255,.1);}
.loader-bar{height:1px;width:0%;background:linear-gradient(90deg,var(--a1),var(--a2));transition:width .05s linear;}
.loader-pct{font-size:.7rem;letter-spacing:.2em;color:rgba(255,255,255,.3);margin-top:12px;}

/* WHATSAPP */
.wa-btn{position:fixed;bottom:48px;right:48px;z-index:5000;background:#25D366;border:none;color:#fff;border-radius:50px;padding:12px 22px;cursor:none;box-shadow:0 4px 24px rgba(37,211,102,.4);transition:transform .2s,box-shadow .2s,padding .3s;display:flex;align-items:center;gap:11px;text-decoration:none;overflow:hidden;}
.wa-btn:hover{transform:translateY(-3px);box-shadow:0 8px 32px rgba(37,211,102,.55);}
.wa-logo{width:22px;height:22px;flex-shrink:0;fill:#fff;}
.wa-label{font-size:.75rem;font-family:'DM Sans',sans-serif;font-weight:400;letter-spacing:.03em;white-space:nowrap;color:#fff;}
.wa-btn::before{content:'';position:absolute;inset:0;border-radius:inherit;background:#25D366;opacity:.3;animation:wa-pulse 2.5s ease-out infinite;pointer-events:none;}

/* TÉMOIGNAGES */
.testimonials-section{padding:120px 48px;border-top:1px solid var(--gray2);}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:60px;}
.testi-card{background:var(--gray);border:1px solid var(--gray2);padding:36px;position:relative;transition:border-color .3s;}
.testi-card:hover{border-color:rgba(var(--accent-rgb),.3);}
.testi-card::before{content:'\201C';position:absolute;top:20px;right:24px;font-size:5rem;line-height:1;color:rgba(var(--accent-rgb),.08);font-family:'Syne',sans-serif;font-weight:800;}
.testi-stars{color:var(--accent2);font-size:.9rem;letter-spacing:2px;margin-bottom:16px;}
.testi-text{color:rgba(237,228,213,.7);font-size:.95rem;line-height:1.8;font-style:italic;margin-bottom:24px;}
.testi-author{display:flex;align-items:center;gap:14px;}
.testi-avatar{width:44px;height:44px;border-radius:50%;background:var(--gray2);object-fit:cover;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-weight:800;font-size:1rem;color:var(--accent);}
.testi-name{font-family:'Syne',sans-serif;font-weight:700;font-size:.9rem;}
.testi-role{font-size:.75rem;color:var(--text-muted);margin-top:2px;}

/* TARIFS */
.pricing-section{padding:120px 48px;border-top:1px solid var(--gray2);background:var(--gray);}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:60px;}
.price-card{background:var(--black);border:1px solid var(--gray2);padding:40px;position:relative;transition:border-color .3s,transform .3s;}
.price-card:hover{border-color:rgba(var(--accent-rgb),.4);transform:translateY(-4px);}
.price-card.featured{border-color:var(--accent);background:var(--black);}
.price-card.featured::before{content:'POPULAIRE';position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--accent);color:var(--white);font-family:'Syne',sans-serif;font-weight:700;font-size:.6rem;letter-spacing:.15em;padding:4px 16px;}
.price-plan{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px;}
.price-amount{font-family:'Syne',sans-serif;font-weight:800;font-size:2.8rem;letter-spacing:-.03em;line-height:1;}
.price-amount span{font-size:1rem;color:var(--text-muted);font-weight:300;}
.price-desc{font-size:.82rem;color:var(--text-muted);margin-top:8px;margin-bottom:28px;line-height:1.6;}
.price-features{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:32px;}
.price-features li{font-size:.85rem;color:rgba(237,228,213,.65);display:flex;align-items:center;gap:10px;}
.price-features li::before{content:'✓';color:var(--accent);font-weight:700;flex-shrink:0;}
.price-cta{width:100%;background:transparent;border:1px solid var(--gray2);color:var(--white);padding:13px;font-family:'Syne',sans-serif;font-weight:700;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;cursor:none;transition:all .2s;}
.price-cta:hover,.price-card.featured .price-cta{background:var(--accent);border-color:var(--accent);color:var(--white);}

/* CLIENTS SECTION */
.clients-section{padding:100px 48px;border-top:1px solid var(--gray2);overflow:hidden;background:var(--black);position:relative;}
.clients-section::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--accent) 40%,var(--accent2) 60%,transparent);}
.clients-kicker{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(2rem,4vw,4rem);letter-spacing:-.03em;margin-bottom:60px;opacity:.08;text-transform:uppercase;pointer-events:none;user-select:none;line-height:1;}
.clients-marquee-wrap{-webkit-mask:linear-gradient(to right,transparent,black 8%,black 92%,transparent);mask:linear-gradient(to right,transparent,black 8%,black 92%,transparent);overflow:hidden;margin-top:0;}
.clients-track{display:flex;gap:0;width:max-content;animation:marquee 32s linear infinite;}
.clients-track:hover{animation-play-state:paused;}
.client-item{width:200px;height:110px;border-right:1px solid var(--gray2);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;cursor:none;transition:background .3s;flex-shrink:0;text-decoration:none;position:relative;overflow:hidden;}
.client-item::after{content:'';position:absolute;inset:0;background:var(--accent);transform:scaleY(0);transform-origin:bottom;transition:transform .4s cubic-bezier(.16,1,.3,1);z-index:0;}
.client-item:hover::after{transform:scaleY(1);}
.client-item img,.client-item-name{position:relative;z-index:1;}
.client-item img{max-width:110px;max-height:52px;object-fit:contain;filter:grayscale(1);opacity:.4;transition:filter .3s,opacity .3s;}
.client-item:hover img{filter:grayscale(0) brightness(10);opacity:1;}
.client-item-name{font-family:'Syne',sans-serif;font-weight:700;font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.3);transition:color .3s;text-align:center;}
.client-item:hover .client-item-name{color:var(--white);}

/* PROJECT CARDS AMÉLIORÉES */
.project-num{position:absolute;bottom:20px;right:20px;font-family:'Syne',sans-serif;font-weight:800;font-size:4rem;color:rgba(255,255,255,.04);line-height:1;pointer-events:none;z-index:1;transition:color .4s,font-size .4s;}
.project-card:hover .project-num{color:rgba(255,255,255,.08);font-size:4.5rem;}
.project-cat-badge{position:absolute;top:14px;left:14px;background:var(--accent);color:var(--white);font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;padding:4px 10px;z-index:4;opacity:0;transform:translateY(-6px);transition:opacity .3s,transform .3s;}
.project-card:hover .project-cat-badge{opacity:1;transform:translateY(0);}

/* UPDATE BANNER */
.update-banner{position:fixed;bottom:0;left:0;right:0;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;gap:20px;padding:14px 24px;z-index:10000;transform:translateY(100%);transition:transform .4s cubic-bezier(.16,1,.3,1);font-family:'Syne',sans-serif;}
.update-banner.show{transform:translateY(0);}
.update-msg{font-size:.85rem;font-weight:600;letter-spacing:.04em;}
.update-btn{background:#fff;color:var(--accent);border:none;padding:7px 20px;font-family:'Syne',sans-serif;font-weight:700;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:opacity .2s;}
.update-btn:hover{opacity:.85;}
.update-close{background:transparent;border:none;color:#fff;font-size:1rem;cursor:pointer;opacity:.65;line-height:1;padding:4px 8px;}
.update-close:hover{opacity:1;}

/* TOAST */
.toast{position:fixed;bottom:40px;right:48px;background:var(--accent2);color:var(--black);padding:14px 24px;font-family:'Syne',sans-serif;font-weight:700;font-size:.85rem;letter-spacing:.05em;z-index:9999;transform:translateY(100px);opacity:0;transition:all .4s cubic-bezier(.16,1,.3,1);}
.toast.show{transform:translateY(0);opacity:1;}
.toast.red{background:var(--accent);color:var(--white);}

/* SCROLL PROGRESS */
#scrollProgress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(to right,var(--accent),var(--accent2));z-index:10001;width:0%;pointer-events:none;transition:width .08s linear;}

/* AVAILABILITY BADGE */
.avail-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(37,211,102,.1);border:1px solid rgba(37,211,102,.25);color:#4ade80;padding:6px 14px;font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;margin-top:20px;width:fit-content;}
.avail-dot{width:6px;height:6px;border-radius:50%;background:#4ade80;animation:blink 1.5s infinite;flex-shrink:0;}
.unavail-badge{background:rgba(var(--accent-rgb),.08);border-color:rgba(var(--accent-rgb),.2);color:var(--accent);}

/* PROFILE PHOTO */
.about-photo-wrap{position:relative;margin-bottom:32px;}
.about-photo{width:200px;height:200px;border-radius:50%;object-fit:cover;border:3px solid var(--gray2);display:block;}
.about-photo-placeholder{width:200px;height:200px;border-radius:50%;background:var(--gray2);display:flex;align-items:center;justify-content:center;font-size:3rem;color:var(--text-muted);border:3px solid var(--gray2);}

/* CV DOWNLOAD */
.cv-btn{display:inline-flex;align-items:center;gap:8px;margin-top:24px;background:transparent;border:1px solid var(--gray2);color:var(--white);padding:11px 22px;font-family:'Syne',sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;cursor:none;transition:all .2s;text-decoration:none;}
.cv-btn:hover{border-color:var(--accent2);color:var(--accent2);}

/* TIMELINE */
.timeline-section{padding:120px 48px;border-top:1px solid var(--gray2);}
.timeline-wrap{display:grid;grid-template-columns:1fr 2fr;gap:80px;align-items:start;margin-top:60px;}
.timeline-sticky{position:sticky;top:120px;}
.timeline-big{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(60px,8vw,100px);letter-spacing:-.05em;line-height:1;color:rgba(255,255,255,.06);}
.timeline-line{position:relative;padding-left:40px;}
.timeline-line::before{content:'';position:absolute;left:0;top:8px;bottom:0;width:1px;background:linear-gradient(to bottom,var(--accent),transparent);}
.timeline-item{position:relative;padding-bottom:48px;}
.timeline-item:last-child{padding-bottom:0;}
.timeline-item::before{content:'';position:absolute;left:-44px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(var(--accent-rgb),.15);}
.timeline-year{font-family:'Syne',sans-serif;font-weight:800;font-size:.7rem;letter-spacing:.2em;color:var(--accent);margin-bottom:6px;text-transform:uppercase;}
.timeline-title{font-family:'Syne',sans-serif;font-weight:700;font-size:1.15rem;margin-bottom:8px;}
.timeline-desc{color:rgba(237,228,213,.5);font-size:.88rem;line-height:1.75;}

/* WELCOME POPUP */
.welcome-popup{position:fixed;bottom:90px;left:48px;z-index:6500;background:var(--gray);border:1px solid var(--gray2);border-left:3px solid var(--accent);padding:24px 28px 22px;max-width:310px;transform:translateY(20px);opacity:0;pointer-events:none;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .5s;}
.welcome-popup.show{transform:translateY(0);opacity:1;pointer-events:auto;}
.wp-close{position:absolute;top:10px;right:12px;background:transparent;border:none;color:var(--text-muted);font-size:1rem;cursor:none;line-height:1;padding:4px;}
.wp-close:hover{color:var(--white);}
.wp-avatar{width:38px;height:38px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-weight:800;font-size:.9rem;color:#fff;margin-bottom:12px;}
.wp-title{font-family:'Syne',sans-serif;font-weight:800;font-size:.95rem;margin-bottom:6px;}
.wp-sub{font-size:.8rem;color:var(--text-muted);line-height:1.6;margin-bottom:14px;}
.wp-btn{background:var(--accent);border:none;color:#fff;padding:9px 18px;font-family:'Syne',sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;cursor:none;transition:background .2s;}
.wp-btn:hover{background:#ff5a4e;}

/* FEATURED PROJECT */
.project-card.featured-card{grid-column:span 4!important;grid-row:span 2!important;position:relative;}
.project-card.featured-card .project-thumb,
.project-card.featured-card .project-video-thumb,
.project-card.featured-card .thumb-placeholder{height:500px;min-height:unset;}
.featured-ribbon{position:absolute;top:20px;right:20px;background:var(--accent2);color:var(--black);font-family:'Syne',sans-serif;font-weight:800;font-size:.58rem;letter-spacing:.2em;padding:5px 14px;z-index:5;text-transform:uppercase;}

/* DRAFT MODE */
.draft-overlay{position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(var(--accent-rgb),.04),rgba(var(--accent-rgb),.04) 10px,transparent 10px,transparent 20px);z-index:1;pointer-events:none;}
.draft-label{position:absolute;top:12px;right:12px;background:rgba(10,10,10,.85);border:1px solid rgba(var(--accent-rgb),.4);color:var(--accent);font-size:.58rem;letter-spacing:.12em;padding:3px 8px;z-index:6;text-transform:uppercase;}
.proj-row.is-draft{opacity:.55;}
.draft-tag{font-size:.6rem;background:rgba(var(--accent-rgb),.12);border:1px solid rgba(var(--accent-rgb),.3);color:var(--accent);padding:2px 8px;letter-spacing:.1em;text-transform:uppercase;}

/* LIGHTBOX ZOOM */
.lb-media-item img.zoomable{cursor:zoom-in;transition:transform .25s cubic-bezier(.16,1,.3,1);transform-origin:center center;display:block;width:100%;}
.lb-media-item img.zoomable.zoomed{cursor:zoom-out;}
.lb-zoom-hint{font-size:.68rem;color:var(--text-muted);letter-spacing:.06em;margin-bottom:12px;text-align:right;}

/* RTL SUPPORT */
[dir="rtl"] nav{flex-direction:row-reverse;}
[dir="rtl"] .nav-links{flex-direction:row-reverse;}
[dir="rtl"] .hero{align-items:flex-end;}
[dir="rtl"] .hero-cta{flex-direction:row-reverse;}
[dir="rtl"] .section-label{flex-direction:row-reverse;}
[dir="rtl"] .section-label::before{margin-left:16px;margin-right:0;}
[dir="rtl"] .about-grid{direction:rtl;}
[dir="rtl"] .services-grid{direction:rtl;}
[dir="rtl"] .contact-grid{direction:rtl;}
[dir="rtl"] .hero-title{direction:rtl;}
[dir="rtl"] footer{flex-direction:row-reverse;}
[dir="rtl"] .clients-marquee-wrap{direction:ltr;}
[dir="rtl"] .clients-track{animation-direction:reverse;}

/* VIEW TOGGLE (Pinterest / Behance) */
.portfolio-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
.view-toggle{display:flex;gap:6px;}
.view-btn{background:transparent;border:1px solid var(--gray2);color:var(--text-muted);padding:7px 10px;cursor:none;transition:all .2s;display:flex;align-items:center;justify-content:center;}
.view-btn.active,.view-btn:hover{border-color:var(--accent);color:var(--accent);background:rgba(var(--accent-rgb),.06);}

/* VUE PINTEREST (masonry columns) */
.projects-grid.view-pinterest{display:block!important;columns:3;column-gap:16px;}
.projects-grid.view-pinterest .project-card{break-inside:avoid;display:inline-block;width:100%;margin-bottom:16px;grid-column:unset!important;grid-row:unset!important;}
.projects-grid.view-pinterest .project-thumb,
.projects-grid.view-pinterest .project-video-thumb{position:static!important;height:auto!important;min-height:unset!important;width:100%;object-fit:contain;background:var(--gray);}
.projects-grid.view-pinterest .card-slides{position:static!important;height:auto!important;}
.projects-grid.view-pinterest .thumb-placeholder{position:static!important;height:180px;}

/* VUE BEHANCE (scroll horizontal) */
.projects-grid.view-behance{display:flex!important;flex-wrap:nowrap;overflow-x:auto;gap:20px;padding-bottom:20px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--gray2) transparent;}
.projects-grid.view-behance::-webkit-scrollbar{height:4px;}
.projects-grid.view-behance::-webkit-scrollbar-thumb{background:var(--gray2);border-radius:2px;}
.projects-grid.view-behance .project-card{flex-shrink:0;width:340px;scroll-snap-align:start;grid-column:unset!important;grid-row:unset!important;}
.projects-grid.view-behance .project-thumb,
.projects-grid.view-behance .project-video-thumb{position:static!important;height:auto!important;min-height:unset!important;width:100%;object-fit:contain;background:var(--gray);max-height:500px;}
.projects-grid.view-behance .card-slides{position:static!important;height:auto!important;}
.projects-grid.view-behance .thumb-placeholder{position:static!important;height:260px;}

/* ── RECHERCHE PROJETS ── */
.projects-search-wrap{margin-bottom:20px;position:relative;}
.projects-search{width:100%;background:var(--gray);border:1px solid var(--gray2);color:var(--white);padding:13px 46px 13px 18px;font-family:'DM Sans',sans-serif;font-size:.9rem;outline:none;transition:border-color .2s;}
.projects-search:focus{border-color:var(--accent);}
.projects-search:focus-visible{outline:2px solid var(--a2);outline-offset:2px;}
.projects-search::placeholder{color:var(--text-muted);}
.projects-search-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;}
.projects-search-count{font-size:.72rem;color:var(--text-muted);margin-top:6px;letter-spacing:.06em;}

/* ── BADGE STATUT PROJET ── */
.project-status-badge{position:absolute;top:14px;right:14px;font-family:'Syne',sans-serif;font-weight:700;font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;padding:4px 10px;z-index:5;pointer-events:none;}
.project-status-badge.ongoing{background:rgba(251,191,36,.9);color:#000;}
.project-status-badge.done{background:rgba(74,222,128,.9);color:#000;}
.project-status-badge.awarded{background:var(--accent2);color:#000;}

/* ── INLINE EDIT (mode admin sur le site) ── */
.project-card .card-admin-overlay{position:absolute;inset:0;background:rgba(10,10,10,.7);z-index:9;display:flex;align-items:center;justify-content:center;gap:12px;opacity:0;transition:opacity .2s;backdrop-filter:blur(2px);}
.project-card:hover .card-admin-overlay{opacity:1;}
.card-admin-btn{background:var(--accent);border:none;color:#fff;padding:10px 20px;font-family:'Syne',sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .2s;display:flex;align-items:center;gap:6px;}
.card-admin-btn:hover{background:#ff5a4e;}
.card-admin-btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;}
.card-admin-btn.ghost:hover{background:rgba(255,255,255,.1);}

/* ── FOOTER PAD quand admin bar visible ── */
.admin-mode-active footer{padding-bottom:80px;}

/* ── CORBEILLE BADGE ── */
.trash-badge{display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--accent-rgb),.15);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.3);font-size:.6rem;font-weight:700;letter-spacing:.1em;padding:2px 7px;border-radius:2px;margin-left:4px;}

/* ── PREVIEW MODE ── */
.preview-mode-banner{position:fixed;top:0;left:0;right:0;z-index:9100;background:var(--accent);color:#fff;text-align:center;padding:10px;font-family:'Syne',sans-serif;font-weight:700;font-size:.82rem;letter-spacing:.1em;display:none;}
.preview-mode-banner.active{display:block;}
.preview-mode-banner button{background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff;padding:3px 12px;font-family:'DM Sans',sans-serif;font-size:.75rem;cursor:pointer;margin-left:12px;}

/* ── SPARKLINES (vbp) ── */
.vbp-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--gray2);}
.vbp-name{flex:1;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.vbp-sparkline{display:flex;align-items:flex-end;gap:2px;height:20px;}
.vbp-spark-bar{width:6px;background:var(--gray2);border-radius:1px;transition:background .2s;}
.vbp-spark-bar.today{background:var(--accent);}
.vbp-total{font-size:.75rem;color:var(--text-muted);min-width:24px;text-align:right;}

/* ── TESTIMONIALS SECTION fix ── */
.testimonials-section{padding:120px 48px;border-top:1px solid var(--gray2);}
.testi-grid .testi-card{opacity:1;transform:none;}

/* ── SECTION PROCESSUS ── */
.process-section{padding:120px 48px;border-top:1px solid var(--gray2);}
.process-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;margin-top:60px;}
.process-step{background:var(--gray);padding:36px 28px;position:relative;transition:background .3s;}
.process-step:hover{background:var(--gray2);}
.process-step::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gray2);transition:background .3s;}
.process-step:hover::before{background:var(--accent);}
.process-num{font-family:'Syne',sans-serif;font-size:3rem;font-weight:800;color:var(--gray2);line-height:1;margin-bottom:24px;transition:color .3s;}
.process-step:hover .process-num{color:var(--accent);}
.process-title{font-family:'Syne',sans-serif;font-weight:700;font-size:1rem;margin-bottom:12px;color:var(--white);}
.process-desc{font-size:.82rem;color:var(--text-muted);line-height:1.6;}
@media(max-width:900px){.process-grid{grid-template-columns:1fr 1fr;}
.process-step:nth-child(5){grid-column:span 2;}}
@media(max-width:500px){.process-grid{grid-template-columns:1fr;}}

/* ── BOUTON RETOUR EN HAUT ── */
.back-to-top{position:fixed;bottom:90px;right:24px;width:44px;height:44px;background:var(--gray);border:1px solid var(--gray2);color:var(--white);font-size:1.1rem;cursor:none;z-index:900;opacity:0;pointer-events:none;transition:opacity .3s,background .2s,transform .2s;display:flex;align-items:center;justify-content:center;}
.back-to-top.visible{opacity:1;pointer-events:auto;}
.back-to-top:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-3px);}

/* ── COOKIE BANNER ── */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:var(--gray);border-top:1px solid var(--gray2);padding:16px 40px;display:flex;align-items:center;gap:24px;z-index:9999;transform:translateY(100%);transition:transform .4s cubic-bezier(.16,1,.3,1);flex-wrap:wrap;}
.cookie-banner.show{transform:translateY(0);}
.cookie-text{font-size:.82rem;color:var(--text-muted);flex:1;min-width:200px;}
.cookie-actions{display:flex;gap:8px;flex-shrink:0;}
.cookie-btn{font-family:'Syne',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:9px 20px;border:1px solid var(--gray2);cursor:none;transition:all .2s;}
.cookie-accept{background:var(--accent);border-color:var(--accent);color:#fff;}
.cookie-accept:hover{background:#ff5a4e;}
.cookie-refuse{background:transparent;color:var(--text-muted);}
.cookie-refuse:hover{border-color:var(--white);color:var(--white);}
@media(max-width:600px){.cookie-banner{padding:16px 20px;flex-direction:column;align-items:flex-start;}}

/* ── FAQ ── */
.faq-section{padding:80px 40px;border-top:1px solid var(--gray2);}
.faq-title{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin-bottom:40px;}
.faq-list{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:3px;}
.faq-item{border:1px solid var(--gray2);overflow:hidden;transition:border-color .25s;}
.faq-item.open{border-color:var(--accent);}
.faq-question{width:100%;text-align:left;background:var(--gray);color:var(--white);padding:18px 24px;font-family:'Syne',sans-serif;font-weight:700;font-size:.9rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;border:none;gap:16px;transition:background .2s;}
.faq-question:hover{background:var(--gray2);}
.faq-arrow{flex-shrink:0;font-size:1rem;transition:transform .3s;font-style:normal;}
.faq-item.open .faq-arrow{transform:rotate(180deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s ease;background:var(--black);color:rgba(237,228,213,.72);font-size:.85rem;line-height:1.75;padding:0 24px;}
.faq-item.open .faq-answer{max-height:400px;padding:18px 24px;}
@media(max-width:600px){.faq-section{padding:60px 20px;}.faq-question{padding:14px 18px;font-size:.85rem;}.faq-item.open .faq-answer{padding:14px 18px;}}

/* ── BLOG / ACTUALITÉS ── */
.blog-section{padding:80px 40px;border-top:1px solid var(--gray2);}
.blog-title{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin-bottom:40px;}
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;max-width:1200px;}
.blog-card{background:var(--gray);border:1px solid var(--gray2);padding:28px;cursor:pointer;transition:border-color .25s,transform .25s;}
.blog-card:hover{border-color:var(--accent);transform:translateY(-4px);}
.blog-card-cat{font-size:.68rem;font-weight:700;color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;}
.blog-card-title{font-family:'Syne',sans-serif;font-weight:700;font-size:1rem;margin-bottom:10px;line-height:1.4;}
.blog-card-excerpt{font-size:.82rem;color:var(--text-muted);line-height:1.6;margin-bottom:16px;}
.blog-card-meta{font-size:.72rem;color:var(--text-muted);border-top:1px solid var(--gray2);padding-top:12px;}
@media(max-width:600px){.blog-section{padding:60px 20px;}.blog-grid{grid-template-columns:1fr;}}
/* ══ LIGHT MODE — vibrant & punchy ══ */
[data-theme="light"]{--black:#f7f3ed;--white:#0a0a0a;--gray:#eee9e1;--gray2:#d5cdc3;--text-muted:#5a5a5a;}
[data-theme="light"] body{background:var(--black);}
[data-theme="light"] body::before{opacity:.08;}

/* Hero */
[data-theme="light"] .hero{background:linear-gradient(160deg,#F5F0E8 0%,#EDE7DC 60%,#E8E1D4 100%);}
[data-theme="light"] .hb-proj-name{color:#0E0B08;}
[data-theme="light"] .hero-scroll{color:rgba(200,169,110,.55);}

/* Nav */
[data-theme="light"] nav::before{background:linear-gradient(to bottom,rgba(247,243,237,.97),transparent);}
[data-theme="light"] .nav-logo{color:var(--white);}
[data-theme="light"] .nav-links a{color:rgba(10,10,10,.7);}
[data-theme="light"] .nav-links a:hover{color:var(--accent);}
[data-theme="light"] .nav-admin{border-color:rgba(10,10,10,.25);color:var(--white);}
[data-theme="light"] .nav-admin:hover{background:var(--accent);border-color:var(--accent);color:#fff;}

/* Buttons */
[data-theme="light"] .btn-primary{background:var(--accent);color:#fff;border-color:var(--accent);}
[data-theme="light"] .btn-primary:hover{background:#d42f22;}
[data-theme="light"] .btn-ghost{color:var(--white);border-bottom-color:rgba(10,10,10,.4);}

/* Sections */
[data-theme="light"] .section-label{color:var(--accent);}
[data-theme="light"] .section-label::after{background:var(--accent);}

/* Project cards */
[data-theme="light"] .project-views{background:rgba(247,243,237,.9);}
[data-theme="light"] .project-overlay{background:linear-gradient(to top,rgba(247,243,237,.98) 0%,transparent 55%);}
[data-theme="light"] .thumb-placeholder{background:linear-gradient(135deg,#ede8e0 0%,#d5cdc3 100%);}
[data-theme="light"] .project-cat{color:var(--accent);font-weight:700;}
[data-theme="light"] .project-name{color:var(--white);}
[data-theme="light"] .project-media-count{color:rgba(10,10,10,.5);}
[data-theme="light"] .project-btn{background:rgba(10,10,10,.07);border-color:rgba(10,10,10,.18);color:var(--white);}
[data-theme="light"] .project-card:hover{border-color:rgba(var(--accent-rgb),.5);box-shadow:0 4px 30px rgba(var(--accent-rgb),.12);}

/* Filter tabs */
[data-theme="light"] .filter-tab{color:rgba(10,10,10,.45);border-color:rgba(10,10,10,.15);}
[data-theme="light"] .filter-tab.active,[data-theme="light"] .filter-tab:hover{background:var(--white);color:var(--black);border-color:var(--white);}

/* Lightbox */
[data-theme="light"] .lb-header{background:var(--black);}

/* Cursor */
[data-theme="light"] #cursor-ring{border-color:rgba(var(--accent-rgb),.5);}

/* About */
[data-theme="light"] .about-text{color:rgba(10,10,10,.68);}
[data-theme="light"] .about-title span{color:var(--accent);}

/* Social + Footer */
[data-theme="light"] .social-link{background:var(--black);border-color:rgba(10,10,10,.2);color:var(--white);}
[data-theme="light"] footer{background:var(--black);border-top-color:rgba(10,10,10,.15);}
[data-theme="light"] .footer-copy{color:rgba(10,10,10,.45);}

/* Theme toggle */
[data-theme="light"] .theme-toggle{background:var(--accent2);}
[data-theme="light"] .theme-toggle::before{transform:translateX(22px);background:var(--black);}
[data-theme="light"] .theme-toggle::after{content:'☀';left:5px;right:auto;opacity:.8;}

/* Lang dropdown */
[data-theme="light"] .lang-dropdown{background:var(--gray);border-color:var(--gray2);}
[data-theme="light"] .lang-opt{color:rgba(17,17,17,.6);}
[data-theme="light"] .lang-opt:hover{color:var(--white);}
[data-theme="light"] .lang-btn{color:var(--white);}

/* Loader */
[data-theme="light"] .loader{background:var(--black);}

/* Testimonials */
[data-theme="light"] .testi-text{color:rgba(17,17,17,.7);}

/* Pricing */
[data-theme="light"] .price-features li{color:rgba(17,17,17,.65);}
[data-theme="light"] .price-card{background:var(--black);}

/* Clients */
[data-theme="light"] .client-item img{filter:grayscale(1);opacity:.35;}
[data-theme="light"] .client-item:hover img{filter:grayscale(0) brightness(10);opacity:1;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.3;}}

@keyframes wa-pulse{0%{transform:scale(1);opacity:.3;}100%{transform:scale(1.5);opacity:0;}}

/* GENERAL — fadeUp grand format (sections anciennes) */
@keyframes fadeUpLarge{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:translateY(0);}}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);}
.reveal.visible{opacity:1;transform:translateY(0);}

/* GRAIN ANIMATION — désactivé */
/* ══════════════════════════════════════════════════
   RESPONSIVE — Tous appareils
   Breakpoints : 1200 · 1100 · 900 · 600 · 480 · landscape · touch
   ══════════════════════════════════════════════════ */

/* ── 1200px : grand tablet / petit laptop ── */
@media (max-width: 1200px) {
  .section,
  .portfolio-section,
  .services-section,
  .testimonials-section,
  .pricing-section { padding: 100px 36px; }
  .timeline-section { padding: 100px 36px; }
  .clients-section { padding: 80px 36px; }
  .about-grid { gap: 48px; }
  .contact-grid { gap: 48px; }
  .timeline-wrap { gap: 48px; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── 1100px : badge nav texte court ── */
@media (max-width: 1100px) {
  .navav-full { display: none; }
  .navav-short { display: inline; }
}

/* ── 900px : tablet ── */
@media (max-width: 900px) {

  /* NAV */
  .nav-links { display: none; }
  .nav-controls { gap: 6px; }
  .ham { display: flex; }
  .lang-btn { padding: 5px 8px; font-size: .65rem; }
  .nav-admin { font-size: .65rem; padding: 6px 12px; }

  /* SECTIONS */
  .section,
  .portfolio-section,
  .services-section,
  .testimonials-section,
  .pricing-section { padding: 80px 24px; }
  .timeline-section { padding: 80px 24px; }
  .clients-section { padding: 60px 24px; }

  /* ABOUT (old grid) */
  .about-grid { grid-template-columns: 1fr; gap: 40px; }
  .about-stats { grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 36px; }

  /* PROJETS */
  .portfolio-header { flex-direction: column; align-items: flex-start; gap: 20px; }
  .portfolio-header-right { align-items: flex-start; }
  .projects-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 260px; }
  /* bento 2 colonnes : 1er card large, alternance */
  .project-card:nth-child(6n+1) { grid-column: span 2; grid-row: span 1; }
  .project-card:nth-child(6n+3) { grid-row: span 1; }
  .project-card:nth-child(6n+5) { grid-column: span 2; }
  .project-card:nth-child(6n+6) { grid-column: span 2; }
  .project-card.featured-card { grid-column: span 2 !important; grid-row: span 1 !important; }
  .projects-grid.view-pinterest { columns: 2 !important; }
  /* Filter */
  .filter-tabs { gap: 6px; }
  .filter-tab { padding: 6px 14px; font-size: .72rem; }

  /* SERVICES */
  .services-grid { grid-template-columns: 1fr; }

  /* TÉMOIGNAGES & TARIFS */
  .testi-grid { grid-template-columns: 1fr; }
  .pricing-grid { grid-template-columns: 1fr; }

  /* TIMELINE */
  .timeline-wrap { grid-template-columns: 1fr; gap: 24px; }
  .timeline-sticky { position: static; }
  .timeline-big { font-size: clamp(48px, 10vw, 80px); }

  /* CONTACT */
  .contact-grid { grid-template-columns: 1fr; gap: 40px; }

  /* LIGHTBOX */
  .lb-body { padding: 20px; }
  .lb-header { padding: 16px 20px; }
  .lb-gallery { grid-template-columns: 1fr 1fr; }

  /* ADMIN */
  .admin-stats { grid-template-columns: 1fr 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .full { grid-column: span 1; }
  .settings-grid { grid-template-columns: 1fr; }
  .admin-body { padding: 20px; }
  .admin-mode-bar { padding: 10px 20px; flex-wrap: wrap; gap: 8px; }
  .ambar-left { font-size: .7rem; }

  /* WHATSAPP */
  .wa-btn { bottom: 70px; right: 16px; padding: 11px 14px; }
  .wa-label { display: none; }

  /* WELCOME POPUP */
  .welcome-popup { left: 16px; right: 16px; bottom: 80px; max-width: none; }
}

/* ── 600px : mobile ── */
@media (max-width: 600px) {

  /* NAV mobile */
  .nav,.nav { padding: 0 20px; }
  .nav-logo { font-size: 10px; }
  .nav-admin { font-size: .6rem; padding: 5px 10px; }
  .nav-avail { padding: 4px 8px; font-size: .58rem; gap: 4px; }
  .navav-dot { width: 6px; height: 6px; }
  .logo-top { font-size: .82rem; letter-spacing: .1em; }
  .logo-bot { font-size: 1.3rem; letter-spacing: .1em; }

  /* HERO HB responsive tablet */
  .hb-hero { padding: 48px 28px 0; }
  .hb-bento-section { padding: 14px 28px; }
  .hb-phrase { padding: 20px 28px; }
  .hb-proj-name { font-size: clamp(2.2rem, 10vw, 5rem) !important; }
  .hb-scroll-hint { left: 28px; }
  .hb-bento { grid-template-columns: repeat(2,1fr); grid-template-rows: none; grid-auto-rows: 200px; min-height: 0; }
  .hb-bc:nth-child(1) { grid-column: 1/3; grid-row: span 1; }
  .hb-bc:nth-child(2) { grid-column: 1; grid-row: span 1; }
  .hb-bc:nth-child(3) { grid-column: 2; grid-row: span 1; }
  .hb-bc:nth-child(4) { grid-column: 1; grid-row: span 1; }
  .hb-bc:nth-child(5) { grid-column: 2; grid-row: span 1; }
  .hb-bc:nth-child(6) { grid-column: 1/3; grid-row: span 1; }
  .btn-primary { padding: 13px 24px; font-size: .72rem; }
  .btn-ghost { padding: 13px 24px; font-size: .72rem; }

  /* SECTIONS */
  .section,
  .portfolio-section,
  .services-section,
  .contact-section,
  .testimonials-section,
  .pricing-section { padding: 64px 20px; }
  .timeline-section { padding: 64px 20px; }
  .clients-section { padding: 48px 20px; }
  footer.footer { padding: 16px 20px; flex-direction: column; align-items: flex-start; gap: 10px; }
  .section-label { margin-bottom: 36px; font-size: .62rem; }

  /* ABOUT */
  .about-stats { grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 28px; }
  .stat-num { font-size: 2.4rem; }

  /* PROJETS mobile : 1 colonne, toutes les cartes identiques */
  .projects-grid { grid-template-columns: 1fr; grid-auto-rows: 240px; }
  .project-card:nth-child(n) { grid-column: span 1; grid-row: span 1; }
  .project-card.featured-card { grid-column: span 1 !important; grid-row: span 1 !important; }
  .projects-grid.view-pinterest { columns: 1 !important; }
  .projects-grid.view-behance .project-card { width: 82vw; }
  /* Filter tabs scrollables */
  .filter-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6px;
    scroll-behavior: smooth;
  }
  .filter-tab { white-space: nowrap; padding: 6px 12px; font-size: .68rem; flex-shrink: 0; }

  /* SERVICES */
  .service-card { padding: 30px 22px; }
  .service-name { font-size: 1.2rem; }

  /* TÉMOIGNAGES */
  .testi-card { padding: 24px 20px; }

  /* TARIFS */
  .price-card { padding: 28px 22px; }
  .price-amount { font-size: 2.1rem; }

  /* TIMELINE */
  .timeline-line { padding-left: 28px; }
  .timeline-item { padding-bottom: 36px; }

  /* CONTACT */
  .contact-title { font-size: clamp(30px, 9vw, 50px); }
  .contact-info { gap: 14px; }
  .contact-item-val { font-size: .9rem; word-break: break-word; }

  /* MODAL */
  .modal { padding: 28px 20px; width: 96%; }
  .platform-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .modal-title { font-size: 1.4rem; }

  /* LIGHTBOX */
  .lb-gallery { grid-template-columns: 1fr; }
  .lb-header { padding: 12px 16px; flex-wrap: wrap; gap: 8px; }
  .lb-title { font-size: 1.15rem; }
  .lb-stats { flex-wrap: wrap; gap: 10px; }
  .lb-close { width: 34px; height: 34px; font-size: 1rem; }

  /* TOAST */
  .toast { right: 16px; left: 16px; bottom: 24px; text-align: center; font-size: .8rem; }

  /* WHATSAPP */
  .wa-btn { bottom: 18px; right: 12px; padding: 11px 13px; }

  /* WELCOME POPUP */
  .welcome-popup { left: 10px; right: 10px; bottom: 16px; padding: 20px; }

  /* ADMIN BAR */
  .admin-bar { padding: 12px 16px; flex-direction: column; align-items: flex-start; gap: 10px; }
  .admin-bar-left { width: 100%; }
  .admin-logo .logo-bot { font-size: 1.1rem; }
  .admin-close { align-self: flex-end; font-size: .7rem; padding: 6px 12px; }
  .admin-tab { font-size: .65rem; padding: 6px 10px; }
  .admin-body { padding: 14px; }
  .add-form { padding: 24px 16px; }
  .settings-card { padding: 24px 16px; }
  .btn-add-project { padding: 12px 24px; font-size: .82rem; }
  .proj-row { flex-wrap: wrap; gap: 10px; padding: 12px 14px; }
  .proj-row-actions { flex-wrap: wrap; gap: 6px; }
  .admin-mode-bar { padding: 8px 16px; }
  .ambar-right { gap: 6px; }
  .ambar-btn { padding: 5px 12px; font-size: .68rem; }
}

/* ── 480px : très petit mobile ── */
@media (max-width: 480px) {
  .hb-hero { padding: 32px 16px 0; }
  .hb-proj-name { font-size: clamp(2rem, 11vw, 5rem) !important; }
  .hb-bento-section { padding: 14px 16px; }
  .about-title { font-size: clamp(28px, 8vw, 44px); }
  .stat-num { font-size: 2rem; }
  .portfolio-title { font-size: clamp(30px, 10vw, 54px); }
  .contact-title { font-size: clamp(28px, 9.5vw, 44px); }
  .social-links { gap: 10px; }
  .social-link { padding: 12px 18px; font-size: .82rem; }
  .platform-grid { grid-template-columns: 1fr; }
  .about-stats { gap: 14px; }
  .service-card { padding: 24px 18px; }
  .testi-card { padding: 20px 16px; }
  .price-card { padding: 24px 18px; }
  .modal { padding: 24px 16px; }
}

/* ── Paysage mobile ── */
@media (max-width: 900px) and (orientation: landscape) {
  .hero { min-height: auto; padding-top: 90px; padding-bottom: 40px; }
  .lb-gallery { grid-template-columns: 1fr 1fr; }
}

/* ═══ BOÎTE À OUTILS ═══ */
.tools-section{padding:100px 40px;border-top:1px solid var(--gray2);text-align:center;}
.tools-title{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin-bottom:12px;}
.tools-subtitle{color:var(--text-muted);font-size:.9rem;letter-spacing:.04em;margin-bottom:48px;}
.tools-grid{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:900px;margin:0 auto;}
.tool-chip{display:inline-flex;align-items:center;gap:10px;background:var(--gray);border:1px solid var(--gray2);padding:12px 22px;transition:border-color .2s,transform .2s,box-shadow .2s;position:relative;overflow:hidden;}
.tool-chip::before{content:'';position:absolute;inset:0;background:var(--accent);opacity:0;transition:opacity .2s;}
.tool-chip:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.35);}
.tool-chip:hover::before{opacity:.06;}
.tool-chip-name{font-size:.82rem;letter-spacing:.04em;font-weight:500;position:relative;}
.tool-chip-cat{font-size:.6rem;color:var(--accent);letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:2px 7px;border:1px solid rgba(var(--accent-rgb,255,60,46),.35);position:relative;}
@media(max-width:768px){.tools-section{padding:70px 20px;}.tools-grid{gap:8px;}}

/* ── Écrans tactiles : désactiver curseur custom ── */
@media (hover: none) {
  body { cursor: auto; }
  #cursor, #cursor-ring { display: none; }
  a, button, [onclick] { cursor: pointer; }
}

/* ═══ ADMIN QR CODE BUTTON ═══ */
.admin-qr-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:transparent;border:1px solid var(--gray2);color:var(--text-muted);font-size:.72rem;letter-spacing:.06em;cursor:pointer;transition:border-color .2s,color .2s;white-space:nowrap;font-family:inherit;}
.admin-qr-btn:hover{border-color:var(--accent);color:var(--white);}

/* ══ VOIR PLUS PROJETS ══ */
.projects-voir-plus{grid-column:span 12;display:flex;justify-content:center;padding:24px 0 8px;}
.btn-voir-plus{padding:14px 48px;background:transparent;color:var(--white);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;border:1px solid rgba(var(--accent-rgb),.28);cursor:none;transition:border-color .2s,color .2s;}
.btn-voir-plus:hover{border-color:var(--accent);color:var(--accent);}
.project-card.hidden-card{display:none;}
.project-card.hidden-card.revealed{display:block;}

/* ═══════════════════════════════════════════════════
   NOUVEAU DESIGN — Unbounded × Rouge Ardent (2026-04)
   Composants : orb, hero, badge, ticker, stats new,
                section projets (pj-row), fly image,
                modal projet bento, sélecteur couleur
═══════════════════════════════════════════════════ */

/* Curseur nouveau */
#cur,#ring{position:fixed;pointer-events:none;transform:translate(-50%,-50%);}
#cur{z-index:9998;width:7px;height:7px;border-radius:50%;background:var(--a2);transition:width .2s,height .2s,border-radius .18s;}
#ring{z-index:9997;width:28px;height:28px;border-radius:50%;border:1.5px solid rgba(239,68,68,.35);transition:width .32s var(--e1),height .32s var(--e1),opacity .2s;}
body.chov #cur{width:34px;height:34px;border-radius:var(--r);background:var(--a-dim);border:1px solid var(--a2);}
body.chov #ring{opacity:0;}
@media(hover:none){#cur,#ring{display:none;}}

/* Grille fond subtile */
body::after{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
background-image:linear-gradient(to right,rgba(239,68,68,.014) 1px,transparent 1px),linear-gradient(to bottom,rgba(239,68,68,.014) 1px,transparent 1px);
background-size:72px 72px;}

/* Barre de progression */
#prog{position:fixed;top:0;left:0;z-index:9990;height:2px;background:linear-gradient(90deg,var(--a1),var(--a2));width:0;pointer-events:none;transition:width .1s linear;}

/* ── ORB animé ── */
.orb{position:absolute;border-radius:50%;filter:blur(100px);pointer-events:none;z-index:0;}
.orb-1{width:min(600px,60vw);height:min(600px,60vw);background:radial-gradient(circle,rgba(185,28,28,.12) 0%,transparent 68%);top:-15%;left:-12%;animation:orb1 16s ease-in-out infinite alternate;}
.orb-2{width:min(420px,42vw);height:min(420px,42vw);background:radial-gradient(circle,rgba(239,68,68,.07) 0%,transparent 70%);bottom:5%;right:-8%;animation:orb2 22s 3s ease-in-out infinite alternate;}
@keyframes orb1{from{transform:translate(0,0)scale(1);}to{transform:translate(5%,9%)scale(1.12);}}
@keyframes orb2{from{transform:translate(0,0)scale(1);}to{transform:translate(-7%,-8%)scale(.88);}}

/* ── BADGE disponibilité ── */
.badge-avail{display:flex;align-items:center;gap:8px;padding:6px 16px;border-radius:100px;border:1px solid var(--brd);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink2);}
.badge-avail-dot{width:6px;height:6px;border-radius:50%;background:var(--a2);animation:pulse 2.5s ease infinite;}
@keyframes pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.6);opacity:.6;}}

/* ── HERO ── */
.hero{min-height:100svh;padding-top:58px;display:flex;flex-direction:column;border-bottom:1px solid var(--brd);position:relative;overflow:hidden;}
.hero-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:18px 52px;border-bottom:1px solid var(--brd);position:relative;z-index:2;}
.badge{display:flex;align-items:center;gap:8px;padding:6px 16px;border-radius:100px;border:1px solid var(--brd);font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink2);}
.badge-dot{width:6px;height:6px;border-radius:50%;background:var(--a2);animation:pulse 2.5s ease infinite;}
.hero-clock{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink2);}

/* Corps hero */
.hero-body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:44px 52px 36px 55px;position:relative;z-index:2;}
.hero-body::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,var(--a1),var(--a2),var(--a1));transform:scaleY(0);transform-origin:bottom;animation:vGrow 1s .9s var(--e1) forwards;}
@keyframes vGrow{to{transform:scaleY(1);}}
/* fadeUp du nouveau hero — override l'ancien (translateY 30px → 8px) */
@keyframes fadeUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

.hero-ey{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:var(--a2);display:flex;align-items:center;gap:12px;margin-bottom:20px;opacity:0;animation:fadeUp .6s .8s var(--e1) forwards;will-change:opacity,transform;}
.hero-ey::before{content:'';width:20px;height:1.5px;background:linear-gradient(90deg,var(--a1),var(--a2));}

/* Titre Unbounded avec animation par mot */
.hero-title{font-family:'Unbounded',sans-serif;font-size:clamp(44px,9.5vw,132px);font-weight:900;line-height:.82;letter-spacing:-.05em;text-transform:uppercase;margin-bottom:24px;}
.hw{overflow:hidden;display:block;}
.hw span{display:block;transform:translateY(105%);animation:tlu .9s var(--e1) both;will-change:transform;}
.hw:nth-child(1) span{animation-delay:.95s;}
.hw:nth-child(2) span{animation-delay:1.1s;}
.hw:nth-child(3) span{animation-delay:1.25s;background:linear-gradient(135deg,var(--a1) 20%,var(--a2) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
@keyframes tlu{to{transform:translateY(0);}}

/* Sous-titre rotatif */
.hero-rot{display:flex;align-items:center;gap:14px;margin-bottom:28px;opacity:0;animation:fadeUp .6s 1.45s var(--e1) forwards;will-change:opacity,transform;}
.hero-rot-line{width:30px;height:1.5px;background:linear-gradient(90deg,var(--a1),var(--a2));flex-shrink:0;}
.hero-rot-wrap{overflow:hidden;}
.hero-rot-text{font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--a2);white-space:nowrap;display:block;opacity:1;transform:translateY(0);transition:opacity .4s ease,transform .4s ease;}

.hero-desc{font-size:14px;line-height:1.88;color:var(--ink2);max-width:460px;opacity:0;animation:fadeUp .6s 1.6s var(--e1) forwards;will-change:opacity,transform;}
.hero-ctas{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap;opacity:0;animation:fadeUp .6s 1.75s var(--e1) forwards;will-change:opacity,transform;}

/* Boutons */
.btn-fill{padding:13px 32px;border-radius:var(--r);background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:opacity .2s,box-shadow .25s;cursor:none;border:none;text-decoration:none;display:inline-flex;align-items:center;gap:8px;}
.btn-fill:hover{opacity:.88;box-shadow:0 6px 22px var(--a-glow);}
.btn-out{padding:13px 32px;border-radius:var(--r);border:1px solid var(--brd);color:var(--ink2);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;transition:border-color .2s,color .2s;cursor:none;background:none;text-decoration:none;display:inline-flex;align-items:center;gap:8px;}
.btn-out:hover{border-color:var(--a2);color:var(--a2);}

/* Scroll hint hero */
.hero-scroll{position:absolute;bottom:24px;left:52px;z-index:2;display:flex;align-items:center;gap:10px;font-family:'IBM Plex Mono',monospace;font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink2);opacity:0;animation:fadeUp .5s 2s var(--e1) forwards;will-change:opacity,transform;}
.scroll-line{width:38px;height:1px;background:var(--brd);position:relative;overflow:hidden;}
.scroll-line::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--a1),var(--a2));animation:sLine 2.2s ease-in-out infinite;}
@keyframes sLine{0%{transform:translateX(-100%);}50%{transform:translateX(0);}100%{transform:translateX(100%);}}

/* ── TICKER ── */
.ticker{overflow:hidden;background:linear-gradient(90deg,var(--a1),var(--a2) 50%,var(--a1));padding:12px 0;}
.ticker-t{display:flex;width:max-content;animation:tkr 22s linear infinite;}
@keyframes tkr{to{transform:translateX(-50%);}}
.ticker-i{display:flex;align-items:center;gap:20px;padding:0 20px;font-family:'Unbounded',sans-serif;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.85);white-space:nowrap;}
.ticker-sep{font-size:5px;opacity:.45;}

/* ── STATS ── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--brd);}
.stat{padding:44px 52px;border-right:1px solid var(--brd);position:relative;}
.stat:last-child{border-right:none;}
.stat::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--a1),var(--a2));transform:scaleX(0);transform-origin:left;transition:transform .8s var(--e1);}
.stat.iv::before{transform:scaleX(1);}
.stat:nth-child(2).iv::before{transition-delay:.12s;}.stat:nth-child(3).iv::before{transition-delay:.24s;}.stat:nth-child(4).iv::before{transition-delay:.36s;}
.stat-n{font-family:'Unbounded',sans-serif;font-size:clamp(36px,4vw,64px);font-weight:900;line-height:1;letter-spacing:-.05em;background:linear-gradient(135deg,var(--ink) 40%,var(--a2) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;clip-path:inset(0 100% 0 0);transition:clip-path .75s var(--e1);}
.stat.iv .stat-n{clip-path:inset(0 0% 0 0);}
.stat:nth-child(2).iv .stat-n{transition-delay:.12s;}.stat:nth-child(3).iv .stat-n{transition-delay:.24s;}.stat:nth-child(4).iv .stat-n{transition-delay:.36s;}
.stat-l{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink2);margin-top:8px;}

/* ── SECTION PROJETS (grille de cartes) ── */
.pj { border-top: 1px solid var(--brd); border-bottom: 1px solid var(--brd); }
.pj-hdr { display:flex; align-items:center; justify-content:space-between; padding:24px 52px; border-bottom:1px solid var(--brd); }
.pj-lbl{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink2);}

/* Grille cartes */
#pjList{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}

/* Entrance animation (Intersection Observer) */
.pj-card{
  position:relative;aspect-ratio:4/5;overflow:hidden;cursor:none;background:var(--gray);
  opacity:0;transform:translateY(28px);
  transition:opacity .6s var(--e1), transform .6s var(--e1);
}
.pj-card.pj-card-visible{
  opacity:1;transform:translateY(0);
}

/* Fond carte — diaporama automatique + zoom doux au hover */
.pj-card-bg,
.pj-card-bg-next{
  position:absolute;inset:0;background-size:cover;background-position:center;
  transform:scale(1);
  transition:transform .6s var(--e1);
  filter:blur(0);
}
.pj-card-bg-next{
  opacity:0;
  transition:opacity 1s ease, transform .6s var(--e1);
}
.pj-card-bg-next.fading-in{ opacity:1; }
.pj-card-bg.img-loading{filter:blur(8px);transform:scale(1.03);}
.pj-card:hover .pj-card-bg{transform:scale(1.06);}
.pj-card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,5,5,.95) 0%,rgba(8,5,5,.3) 50%,rgba(8,5,5,0) 100%);transition:background .35s;}
.pj-card:hover .pj-card-overlay{background:linear-gradient(to top,rgba(8,5,5,.97) 0%,rgba(185,28,28,.2) 55%,rgba(185,28,28,.05) 100%);}
.pj-card-body{position:absolute;bottom:0;left:0;right:0;padding:20px 22px 24px;}
.pj-card-meta{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.pj-card-cat{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink2);}
.pj-card-yr{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:.1em;color:var(--ink3);}
.pj-card-meta-dot{width:3px;height:3px;border-radius:50%;background:var(--brd);flex-shrink:0;}
.pj-card-name{font-family:'Unbounded',sans-serif;font-weight:900;font-size:clamp(13px,1.4vw,20px);letter-spacing:-.03em;text-transform:uppercase;color:var(--ink);line-height:1.1;}
.pj-card-arr{position:absolute;top:18px;right:18px;width:34px;height:34px;border-radius:50%;border:1px solid rgba(245,237,236,.15);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--ink2);opacity:0;transform:translateY(-6px);transition:opacity .28s,transform .28s,border-color .28s,color .28s;}
.pj-card:hover .pj-card-arr{opacity:1;transform:none;border-color:var(--a2);color:var(--a2);}
.pj-card-draft{position:absolute;top:12px;left:12px;font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:.18em;text-transform:uppercase;background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);color:var(--a2);padding:3px 8px;}

/* Anciens styles .pj-row conservés pour compatibilité admin */
.pj-row{display:grid;grid-template-columns:58px 52px 1fr auto auto 26px;align-items:center;padding:0 52px;min-height:74px;border-bottom:1px solid var(--brd);position:relative;overflow:hidden;transition:background .22s;cursor:none;}
.pj-row::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1.5px;background:linear-gradient(90deg,var(--a1),var(--a2));transform:scaleX(0);transform-origin:left;transition:transform .42s var(--e1);pointer-events:none;}
.pj-row:hover{background:var(--a-dim);}
.pj-row:hover::after{transform:scaleX(1);}
.pj-num{font-family:'Unbounded',sans-serif;font-size:clamp(22px,2.5vw,38px);font-weight:900;letter-spacing:-.05em;line-height:1;color:var(--ink3);-webkit-text-stroke:1px rgba(245,237,236,.09);transition:color .22s,-webkit-text-stroke .22s;}
.pj-row:hover .pj-num{color:var(--a2);-webkit-text-stroke:0;}
.pj-thumb{width:52px;height:66px;border-radius:4px;overflow:hidden;position:relative;flex-shrink:0;opacity:.55;transform:scale(1);transition:opacity .28s var(--e1),transform .28s var(--e1);}
.pj-row:hover .pj-thumb{opacity:1;transform:scale(1.08);}
.pj-img{position:absolute;inset:0;transition:opacity .35s ease;}
.pj-img img{width:100%;height:100%;object-fit:cover;display:block;}
.pj-name{font-family:'Unbounded',sans-serif;font-size:clamp(14px,2vw,28px);font-weight:900;letter-spacing:-.04em;text-transform:uppercase;padding-left:18px;color:var(--ink);transition:transform .38s var(--e1);}
.pj-row:hover .pj-name{transform:translateX(8px);}
.pj-cat{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);padding-right:24px;text-align:right;}
.pj-yr{font-size:9px;letter-spacing:.1em;color:var(--ink2);opacity:.38;}
.pj-arr{font-size:14px;color:var(--a2);opacity:0;transform:translateX(-6px);transition:opacity .22s,transform .22s;margin-left:10px;}
.pj-row:hover .pj-arr{opacity:1;transform:none;}

/* Image "fly" qui suit le curseur */
#fly{position:fixed;z-index:500;pointer-events:none;width:180px;aspect-ratio:3/4;border-radius:6px;overflow:hidden;opacity:0;transform:scale(.88) rotate(-1deg);transition:opacity .26s var(--e1),transform .26s var(--e1);top:0;left:0;}
#fly.on{opacity:1;transform:scale(1) rotate(0);}
#fly-bg{position:absolute;inset:0;transition:opacity .35s;}
#fly-bg2{position:absolute;inset:0;opacity:0;transition:opacity .35s;}
@media(hover:none){#fly{display:none;}}

/* Gradients placeholder projets */
.pj-g1{background:linear-gradient(150deg,#1a0000,#6B0000,#B91C1C,#EF4444);}
.pj-g2{background:linear-gradient(145deg,#160006,#5C0022,#9F1239,#FB7185);}
.pj-g3{background:linear-gradient(160deg,#14000A,#5C0044,#86198F,#D946EF);}
.pj-g4{background:linear-gradient(140deg,#0A0A00,#4A3500,#A16207,#FACC15);}
.pj-g5{background:linear-gradient(155deg,#050016,#1E1B4B,#4338CA,#818CF8);}
.pj-g6{background:linear-gradient(165deg,#001408,#064520,#15803D,#4ADE80);}

/* ── MODAL PROJET — nouvelle galerie plein écran ── */
#modal{position:fixed;inset:0;z-index:2000;background:var(--bg);overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity .35s var(--e1),visibility .35s,transform .35s var(--e1);}
#modal.open{opacity:1;visibility:visible;transform:none;}
/* Nav modal */
.m-nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px 40px;background:rgba(8,5,5,.95);backdrop-filter:blur(18px);border-bottom:1px solid var(--brd);}
.m-back{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink2);transition:color .2s;cursor:none;background:none;border:none;}
.m-back:hover{color:var(--a2);}
.m-idx{font-size:9px;letter-spacing:.18em;color:var(--ink2);}
.m-nav-arrows{display:flex;gap:6px;}
.m-arr-btn{width:32px;height:32px;border-radius:var(--r);border:1px solid var(--brd);background:none;color:var(--ink2);font-size:14px;cursor:none;transition:border-color .2s,color .2s;display:flex;align-items:center;justify-content:center;}
.m-arr-btn:hover:not(:disabled){border-color:var(--a2);color:var(--a2);}
.m-arr-btn:disabled{opacity:.25;cursor:not-allowed;}
/* Body modal — split galerie/infos */
.m-body{display:grid;grid-template-columns:1fr 380px;min-height:calc(100vh - 61px);}
/* Galerie */
.m-gallery{display:flex;flex-direction:column;border-right:1px solid var(--brd);}
.m-gallery-main{flex:1;position:relative;background:var(--gray);min-height:400px;overflow:hidden;}
.mg-main-img{width:100%;height:100%;object-fit:contain;transition:opacity .2s ease;}
.mg-arr{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(8,5,5,.75);border:1px solid var(--brd);color:var(--ink);font-size:22px;cursor:none;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s,color .2s;}
.mg-arr:hover{background:var(--a1);border-color:var(--a1);color:#fff;}
.mg-arr-l{left:16px;}
.mg-arr-r{right:16px;}
.mg-counter{position:absolute;bottom:12px;right:14px;font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:.18em;color:rgba(245,237,236,.5);background:rgba(8,5,5,.6);padding:4px 10px;}
.mg-placeholder{width:100%;height:100%;min-height:400px;}
.m-gallery-thumbs{display:flex;gap:2px;padding:2px;background:var(--gray);flex-wrap:wrap;}
.mg-thumb{width:70px;height:56px;background-size:cover;background-position:center;cursor:none;opacity:.45;transition:opacity .2s;border:2px solid transparent;}
.mg-thumb.active{opacity:1;border-color:var(--a2);}
.mg-thumb:hover{opacity:.8;}
/* Infos droite */
.m-info{padding:40px 36px;display:flex;flex-direction:column;gap:18px;overflow-y:auto;}
.m-ey{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--a2);}
.m-ey::before{content:'';width:18px;height:1.5px;background:linear-gradient(90deg,var(--a1),var(--a2));}
.m-title{font-family:'Unbounded',sans-serif;font-size:clamp(22px,2.8vw,42px);font-weight:900;line-height:.9;letter-spacing:-.04em;text-transform:uppercase;}
.m-meta{display:flex;gap:10px;flex-wrap:wrap;}
.m-sep{width:100%;height:1px;background:var(--brd);}
.d1{font-size:13px;color:var(--ink2);line-height:1.8;}
.m-header{display:none;}/* ancien — caché */
.m-tag{padding:7px 16px;border-radius:var(--r);background:var(--a-dim);border:1px solid var(--a-mid);font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:var(--a2);}
.m-yr{font-size:10px;letter-spacing:.16em;color:var(--ink2);}
.m-desc{padding:48px 52px;max-width:680px;border-bottom:1px solid var(--brd);}
.m-desc p{font-size:15px;line-height:1.9;color:var(--ink2);margin-bottom:16px;}
.m-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;}
.m-chip{padding:6px 14px;border-radius:100px;background:var(--a-dim);border:1px solid var(--a-mid);font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--a2);}

/* BENTO images modal */
.m-bento-hdr{padding:40px 52px 18px;display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink2);}
.m-bento-hdr::after{content:'';flex:1;height:1px;background:var(--brd);}
.m-bento{padding:0 52px 52px;display:grid;grid-template-columns:1.3fr 1fr 1.1fr;grid-template-rows:250px 172px 205px;gap:10px;}
.mb{position:relative;overflow:hidden;border-radius:8px;}
.mb-bg{position:absolute;inset:0;transition:transform .55s var(--e1);background-size:cover;background-position:center;}
.mb:hover .mb-bg{transform:scale(1.05);}
.mb::after{content:'';position:absolute;inset:0;border-radius:8px;background:linear-gradient(to top,rgba(8,5,5,.55) 0%,transparent 55%);opacity:0;transition:opacity .3s;}
.mb:hover::after{opacity:1;}
.mb:nth-child(1){grid-column:1;grid-row:1/3;}
.mb:nth-child(2){grid-column:2;grid-row:1;}
.mb:nth-child(3){grid-column:3;grid-row:1/3;}
.mb:nth-child(4){grid-column:2;grid-row:2;}
.mb:nth-child(5){grid-column:1/3;grid-row:3;}
.mb:nth-child(6){grid-column:3;grid-row:3;}
.mb-lbl{position:absolute;bottom:12px;left:14px;z-index:3;font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);opacity:0;transform:translateY(4px);transition:opacity .25s,transform .25s;}
.mb:hover .mb-lbl{opacity:1;transform:none;}

/* Footer modal */
.m-footer-cta{padding:48px 52px;border-top:1px solid var(--brd);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;}
.m-footer-txt{font-family:'Unbounded',sans-serif;font-size:clamp(22px,3.2vw,44px);font-weight:900;letter-spacing:-.04em;text-transform:uppercase;}
.m-footer-txt span{background:linear-gradient(135deg,var(--a1),var(--a2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}

/* ── SÉLECTEUR COULEUR (visible en mode admin) ── */
#theme-colpick{display:none;flex-direction:column;gap:8px;align-items:center;}
.admin-visible #theme-colpick{display:flex;}
.cp-dot{width:20px;height:20px;border-radius:50%;border:2px solid transparent;transition:transform .2s,border-color .2s;cursor:pointer;padding:0;background:none;}
.cp-dot:hover{transform:scale(1.2);}
.cp-dot.on{border-color:rgba(255,255,255,.7);transform:scale(1.15);}
.cp-red{background:linear-gradient(135deg,#B91C1C,#EF4444);}
.cp-amber{background:linear-gradient(135deg,#D97706,#F59E0B);}
.cp-blue{background:linear-gradient(135deg,#1D4ED8,#60A5FA);}
.cp-cream{background:linear-gradient(135deg,#78716C,#D4BC8E);}

/* Swatches admin (dans panneau apparence) */
.theme-presets{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;}
.theme-preset-btn{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:var(--r);border:1px solid var(--gray2);background:transparent;color:var(--white);cursor:pointer;transition:border-color .2s,background .2s;font-size:.78rem;letter-spacing:.04em;}
.theme-preset-btn:hover{border-color:var(--accent);background:rgba(var(--accent-rgb),.06);}
.theme-preset-btn.active{border-color:var(--accent);background:rgba(var(--accent-rgb),.1);}
.theme-preset-swatch{width:16px;height:16px;border-radius:50%;flex-shrink:0;}

/* Responsif — nouveau design */
@media(max-width:768px){
  /* Hero compact mobile — fini l'espace noir */
  .hero { min-height: auto; padding-top: 62px; padding-bottom: 48px; }
  .hero-top{padding:12px 20px;}
  .hero-body{padding:24px 20px 20px 22px;justify-content:flex-start;}
  .hero-title{font-size:clamp(38px,12vw,64px);margin-bottom:16px;}
  .hero-desc{font-size:12px;display:block;max-width:100%;margin-top:12px;}
  .hero-ctas{margin-top:18px;gap:10px;}
  .hero-ctas .btn-fill,.hero-ctas .btn-out{padding:13px 22px;font-size:10px;}
  .hero-scroll{left:20px;bottom:16px;}
  /* Nav */
  .nav-links{display:none;}
  .nav-logo-sub,.nav-logo-sep{display:none;}
  .nav-right{gap:8px;}
  .ham{display:flex;}
  /* Stats */
  .stats{grid-template-columns:repeat(2,1fr);}
  .stat{padding:24px 20px;}
  .stat:nth-child(2){border-right:none;}
  .stat:nth-child(3){border-right:1px solid var(--brd);}
  /* Projets */
  .pj-hdr{padding:16px 20px;}
  #pjList{grid-template-columns:repeat(2,1fr);}
  .pj-card-name{font-size:clamp(11px,3.5vw,16px);}
  /* Modal galerie mobile — pleine largeur */
  .m-nav{padding:10px 16px;}
  .m-body{grid-template-columns:1fr;grid-template-rows:auto auto;}
  .m-gallery{border-right:none;border-bottom:1px solid var(--brd);}
  .m-gallery-main{min-height:260px;}
  .mg-thumb{width:56px;height:44px;}
  .m-info{padding:24px 20px;gap:14px;}
  .m-title{font-size:clamp(20px,6vw,32px);}
  /* About */
  .about{grid-template-columns:1fr;}
  .ab-l{padding:40px 20px;border-right:none;border-bottom:1px solid var(--brd);}
  .ab-r{padding:40px 20px;}
  /* Confiance */
  .trust-hdr{padding:0 20px;}
  .trust-logo-slot{width:140px;height:72px;}
  footer.footer{padding:20px;flex-direction:column;align-items:flex-start;}
}
@media(max-width:480px){
  #pjList{grid-template-columns:1fr;}
  .hero-title{font-size:clamp(34px,14vw,52px);}
}

/* ── ABOUT (nouveau design) ── */
.about{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--brd);}
.ab-l{padding:68px 52px;border-right:1px solid var(--brd);display:flex;flex-direction:column;justify-content:space-between;}
.ab-r{padding:68px 52px;display:flex;flex-direction:column;justify-content:space-between;}
.ab-ey{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--a2);display:flex;align-items:center;gap:10px;margin-bottom:24px;}
.ab-ey::before{content:'';width:18px;height:1.5px;background:linear-gradient(90deg,var(--a1),var(--a2));}
.ab-title{font-family:'Unbounded',sans-serif;font-size:clamp(32px,4.8vw,72px);font-weight:900;line-height:.82;letter-spacing:-.05em;text-transform:uppercase;}
.ab-title span{background:linear-gradient(135deg,var(--a1),var(--a2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.ab-yr{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink2);opacity:.3;margin-top:28px;}
.ab-desc{font-size:14px;line-height:1.9;color:var(--ink2);}
.ab-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;}
.ab-tag{padding:7px 14px;border-radius:100px;border:1px solid var(--brd);font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);transition:border-color .22s,color .22s,background .22s;}
.ab-tag:hover{border-color:var(--a2);color:var(--a2);background:var(--a-dim);}
.ab-btns{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap;}

/* ── CONTACT SPLIT (nouveau design 2 colonnes) ── */
/* ── CONTACT SECTION — Minimal High-End ── */
.cta-sec{padding:120px 52px;border-bottom:1px solid var(--brd);position:relative;overflow:hidden;text-align:center;background:var(--gray);border-top:3px solid var(--a1);}
.ct-inner{max-width:760px;margin:0 auto;}
.ct-ey{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--a2);margin-bottom:28px;}
.ct-headline{font-family:'Unbounded',sans-serif;font-size:clamp(32px,5.5vw,72px);font-weight:900;line-height:.9;letter-spacing:-.04em;text-transform:uppercase;margin-bottom:60px;}
.ct-headline span{background:linear-gradient(135deg,var(--a1),var(--a2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
/* 2 CTA directs */
.ct-ctas{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-bottom:48px;}
.ct-cta-btn{display:flex;align-items:center;justify-content:center;gap:12px;padding:28px 24px;background:var(--gray2);border:1px solid var(--brd);color:var(--ink2);font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:background .25s,border-color .25s,color .25s;}
.ct-cta-btn svg{flex-shrink:0;opacity:.5;transition:opacity .25s;}
.ct-cta-btn:hover{background:var(--a1);border-color:var(--a1);color:#fff;}
.ct-cta-btn:hover svg{opacity:1;}
/* Séparateur */
.ct-sep{display:flex;align-items:center;gap:20px;margin-bottom:48px;}
.ct-sep::before,.ct-sep::after{content:'';flex:1;height:1px;background:var(--brd);}
.ct-sep span{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink2);opacity:.5;white-space:nowrap;}
/* Formulaire */
.ct-form{display:flex;flex-direction:column;gap:44px;text-align:left;margin-bottom:60px;}
.ct-row{display:grid;grid-template-columns:1fr 1fr;gap:0;}
.ct-field{display:flex;flex-direction:column;gap:10px;}
.ct-label{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:.22em;text-transform:uppercase;color:var(--a2);opacity:.8;}
.ct-input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--brd);color:var(--ink);padding:18px 0;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:300;outline:none;transition:border-color .3s,background .3s;-webkit-appearance:none;appearance:none;}
.ct-input::placeholder{color:var(--ink2);opacity:.28;}
.ct-input:focus{border-color:var(--a2);}
.ct-input:focus::placeholder{opacity:.15;}
.ct-textarea{resize:none;min-height:130px;padding-top:14px;}
.ct-row .ct-field:first-child{padding-right:28px;border-right:1px solid var(--brd);}
.ct-row .ct-field:last-child{padding-left:28px;}
.ct-form .cf-submit{margin-top:36px;align-self:center;}
/* Icônes réseaux sociaux */
.cs-link{width:40px;height:40px;border-radius:var(--r);border:1px solid var(--brd);display:flex;align-items:center;justify-content:center;color:var(--ink2);text-decoration:none;transition:border-color .25s,color .25s,background .25s,transform .2s;}
.cs-link:hover{transform:translateY(-3px);}
.cs-link.ig:hover{border-color:#E1306C;color:#E1306C;background:rgba(225,48,108,.08);}
.cs-link.fb:hover{border-color:#1877F2;color:#1877F2;background:rgba(24,119,242,.08);}
.cs-link.sc:hover{border-color:#FFFC00;color:#FFFC00;background:rgba(255,252,0,.08);}
.cs-link.li:hover{border-color:#0A66C2;color:#0A66C2;background:rgba(10,102,194,.08);}
/* Pied de section */
.ct-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-top:40px;border-top:1px solid var(--brd);}
.ct-loc{display:flex;align-items:center;gap:6px;font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink2);opacity:.5;}
.ct-socials{display:flex;gap:6px;}
.ct-pdf-btn{font-size:9px;padding:10px 22px;letter-spacing:.12em;}
.ct-copy-btn{display:flex;align-items:center;gap:7px;padding:10px 18px;border-radius:var(--r);border:1px solid var(--brd);background:transparent;color:var(--ink2);font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;cursor:none;transition:border-color .2s,color .2s,background .2s;}
.ct-copy-btn:hover{border-color:var(--a2);color:var(--a2);}
.ct-copy-btn.copied{border-color:#10b981;color:#10b981;background:rgba(16,185,129,.07);}
/* Responsive */
@media(max-width:680px){
  .cta-sec{padding:80px 24px;}
  .ct-ctas{grid-template-columns:1fr;}
  .ct-row{grid-template-columns:1fr;gap:36px;}
  .ct-row .ct-field:first-child{border-right:none;padding-right:0;}
  .ct-row .ct-field:last-child{padding-left:0;}
  .ct-foot{flex-direction:column;align-items:center;gap:20px;}
}

/* ── ILS NOUS ONT FAIT CONFIANCE ── */
.trust-sec { padding: 48px 0; border-top: 1px solid var(--brd); border-bottom: 1px solid var(--brd); overflow: hidden; background:#0f0c0c; }
.trust-hdr{display:flex;align-items:center;gap:24px;padding:0 52px;margin-bottom:40px;}
.trust-label{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink2);white-space:nowrap;}
.trust-line{flex:1;height:1px;background:var(--brd);}
.trust-marquee-wrap{overflow:hidden;}
.trust-marquee{display:flex;}
.trust-track{display:flex;gap:2px;animation:trustScroll 22s linear infinite;width:max-content;}
.trust-track:hover{animation-play-state:paused;}
@keyframes trustScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.trust-logo-slot{width:180px;height:90px;border:1px solid var(--brd);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .2s,background .2s;}
.trust-logo-slot:hover{border-color:var(--a2);background:var(--a-dim);}
.trust-logo-slot img{max-width:120px;max-height:50px;object-fit:contain;filter:grayscale(1);opacity:.5;transition:filter .2s,opacity .2s;}
.trust-logo-slot:hover img{filter:grayscale(0);opacity:1;}
.trust-logo-txt{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink2);}

/* ── FOOTER (nouveau design) ── */
footer.footer{padding:26px 52px;border-top:1px solid var(--brd);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;background:#0f0c0c;}
.ft-logo{font-family:'Unbounded',sans-serif;font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;gap:7px;color:var(--ink);}
.ft-dot{width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,var(--a1),var(--a2));}
.ft-links{display:flex;gap:22px;}
.ft-links a{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);transition:color .2s;text-decoration:none;}
.ft-links a:hover{color:var(--a2);}
.ft-copy{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.1em;color:var(--ink2);opacity:.3;}
.m-footer-btn{padding:13px 32px;border-radius:var(--r);background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;border:none;cursor:none;transition:opacity .2s,box-shadow .25s;}
.m-footer-btn:hover{opacity:.88;box-shadow:0 6px 22px var(--a-glow);}

/* ── PUBLIC CONTACT FORM ── */
.contact-form { max-width: 600px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; text-align: left; }
.cf-row { display: flex; gap: 16px; }
.cf-input { 
  width: 100%; 
  background-color: rgba(255, 255, 255, 0.03) !important; 
  background: #0f0f0f !important; /* Force black if transparent fails */
  border: 1px solid var(--brd); 
  color: var(--ink) !important; 
  padding: 16px 20px; 
  font-family: 'DM Sans', sans-serif; 
  font-size: 14px; 
  border-radius: var(--r, 8px); 
  transition: border-color 0.3s, box-shadow 0.3s; 
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}
.cf-input:-webkit-autofill,
.cf-input:-webkit-autofill:hover, 
.cf-input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--ink) !important;
  -webkit-box-shadow: 0 0 0px 1000px #0f0f0f inset !important;
  transition: background-color 5000s ease-in-out 0s;
}
.cf-input::placeholder { color: var(--ink2); opacity: 0.5; }
.cf-input:focus { border-color: var(--a2); box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1); }
.cf-textarea { resize: vertical; min-height: 120px; }
.cf-submit { 
  display: block !important;
  margin: 20px auto 0 !important;
  font-size: 11px; 
  padding: 16px 48px; 
  width: fit-content !important; 
  cursor: pointer; 
}
.cf-status { font-size: 12px; text-align: center; margin-top: 8px; min-height: 18px; }
.cf-status.success { color: #10b981; }
.cf-status.error { color: var(--a2); }
@media(max-width: 600px) { .cf-row { flex-direction: column; } }

/* ── MODAL PROJET (PAGE DÉDIÉE) ── */
#modal { 
  position: fixed; top: 0; left: 0; width: 100%; height: 100%;
  display: flex; flex-direction: column; 
  background: var(--bg); 
  transform: translateY(100%); transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  padding: 0; z-index: 2000;
  overflow: hidden;
}
#modal.open { transform: translateY(0); }

.m-nav {
  position: sticky; top: 0; width: 100%; height: 72px; 
  padding: 0 52px; display: flex; align-items: center; justify-content: space-between;
  background: rgba(10,10,10,0.8); backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--brd); z-index: 1000;
}
.m-nav-right { display: flex; align-items: center; gap: 16px; }
.m-share-btn,.m-pres-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--r);border:1px solid var(--brd);background:transparent;color:var(--ink2);font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;cursor:none;transition:border-color .2s,color .2s,background .2s;}
.m-share-btn:hover,.m-pres-btn:hover{border-color:var(--a2);color:var(--a2);}
.m-pres-btn.pres-active{border-color:var(--a2);color:var(--a2);background:var(--a-dim);}
@media(max-width:600px){.m-pres-btn span,.m-share-btn span{display:none;}}
.m-idx { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.1em; color: var(--ink2); }
.m-nav-arrows { display: flex; gap: 1px; background: var(--brd); border: 1px solid var(--brd); border-radius: 4px; overflow: hidden; }
.m-arr-btn { width: 44px; height: 36px; background: var(--bg); border: none; color: var(--ink); cursor: pointer; transition: background 0.2s; }
.m-arr-btn:hover:not(:disabled) { background: var(--gray2); color: var(--a2); }
.m-arr-btn:disabled { opacity: 0.3; cursor: not-allowed; }

.m-page-scroll {
  flex: 1; overflow-y: auto; scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

.project-page-footer {
  max-width: 1200px; margin: 0 auto; 
  padding: 100px 52px; border-top: 1px solid var(--brd); 
  text-align: center;
}
.project-page-footer .btn-fill { padding: 24px 60px; font-size: 13px; }

@media(max-width: 768px) {
  .m-nav { padding: 0 24px; height: 64px; }
  .project-page-footer { padding: 80px 24px; }
}

@media(max-width:1024px){
  #about { display: flex !important; flex-direction: column !important; }
  #about .ab-l { border-right: none !important; border-bottom: 1px solid var(--brd) !important; padding: 60px 24px !important; width: 100% !important; min-height: auto !important; }
  #about .ab-r { padding: 60px 24px !important; width: 100% !important; }
}

/* ── PROJECT HEADER (Modal) ── */
.project-header { max-width: 1200px; margin: 0 auto; padding: 60px 52px 40px; }
.ph-cat { font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: .26em; text-transform: uppercase; color: var(--a2); margin-bottom: 16px; }
.ph-title { font-family: 'Unbounded', sans-serif; font-size: clamp(28px, 4vw, 56px); font-weight: 900; line-height: .95; letter-spacing: -.03em; text-transform: uppercase; margin-bottom: 40px; }
.ph-grid { display: grid; grid-template-columns: 240px 1fr; gap: 40px; border-top: 1px solid var(--brd); padding-top: 32px; }
.ph-meta { display: flex; flex-direction: column; gap: 16px; }
.phm-item { display: flex; flex-direction: column; gap: 4px; }
.phm-item span { font-family: 'IBM Plex Mono', monospace; font-size: 8px; letter-spacing: .2em; text-transform: uppercase; color: var(--ink2); opacity: .5; }
.phm-item { font-size: 13px; color: var(--ink2); }
.ph-desc { font-size: 14px; line-height: 1.9; color: var(--ink2); }
.m-gallery-wrap { max-width: 1200px; margin: 0 auto; padding: 0 52px 60px; }

@media(max-width: 768px) {
  .project-header { padding: 40px 24px 32px; }
  .ph-grid { grid-template-columns: 1fr; gap: 24px; }
  .m-gallery-wrap { padding: 0 16px 40px; }
}

/* ── PROJECT GALLERY (Replaces Bento) ── */
.project-gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  max-width: 1200px;
  margin: 0 auto;
}
.pg-item {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  background: var(--gray2);
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3; /* Standard aspect ratio for consistency */
}
.pg-item img {
  width: 100%;
  height: 100%;
  object-fit: contain; /* Full visibility as requested */
  padding: 20px;
  transition: transform 0.6s ease;
}
.pg-item.full-width { grid-column: span 2; aspect-ratio: auto; }
.pg-item.full-width img { padding: 0; object-fit: cover; }

@media(max-width: 900px) {
  .project-gallery { grid-template-columns: repeat(2, 1fr); gap: 16px; padding: 0 20px; }
  .pg-item { aspect-ratio: 1 / 1; min-height: auto; }
  .pg-item img { padding: 10px; }
  .pg-item.full-width { grid-column: span 1; }
  .ph-title { font-size: 26px !important; line-height: 1.1; margin-bottom: 20px; }
  .ph-grid { gap: 20px; }
  .ph-meta { gap: 8px; margin-bottom: 16px; }
  .phm-item { font-size: 11px; }
  .phm-item span { min-width: 60px; display: inline-block; }
}

@media(max-width: 480px) {
  .project-gallery { gap: 10px; padding: 0 16px; }
  .ph-title { font-size: 22px !important; }
}

/* ══ GALERIE MES RÉALISATIONS — défilement marquee ══ */
.real-sec {
  padding: 80px 0;
  overflow: hidden;
  background: var(--bg);
  border-top: 1px solid var(--brd);
}
.real-hdr {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 0 52px;
  margin-bottom: 48px;
}
.real-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 9px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--a2);
  flex-shrink: 0;
}
.real-title {
  font-family: 'Unbounded', sans-serif;
  font-weight: 900;
  font-size: clamp(22px, 4vw, 42px);
  letter-spacing: -.03em;
  color: var(--ink);
  flex-shrink: 0;
}
.real-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--brd), transparent);
}
/* Wrap des rangées */
.real-marquee-wrap {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.real-row {
  overflow: hidden;
}
/* Tracks défilants */
.real-track {
  display: flex;
  gap: 10px;
  width: max-content;
  animation: realScroll 22s linear infinite;
}
.real-track-rev {
  animation-direction: reverse;
}
.real-track:hover,
.real-track-rev:hover {
  animation-play-state: paused;
}
@keyframes realScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
/* Carte image */
.real-item {
  flex-shrink: 0;
  width: 130px;
  aspect-ratio: 4 / 5;
  position: relative;
  overflow: hidden;
  border-radius: 3px;
  cursor: none;
  background: var(--gray2);
}
.real-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s var(--e1), filter .4s;
  filter: brightness(.88);
}
.real-item:hover img {
  transform: scale(1.06);
  filter: brightness(.55);
}
.real-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  padding: 14px;
  background: linear-gradient(to top, rgba(8,5,5,.85) 0%, transparent 65%);
  opacity: 0;
  transition: opacity .35s;
}
.real-item:hover .real-overlay {
  opacity: 1;
}
.real-proj-name {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 8px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ink);
}
/* Skeleton chargement */
.real-skel {
  background: linear-gradient(90deg, var(--gray2) 25%, var(--gray) 50%, var(--gray2) 75%);
  background-size: 200% 100%;
  animation: realSkelAnim 1.4s ease infinite;
  opacity: .35;
  pointer-events: none;
}
@keyframes realSkelAnim {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
/* Responsive */
@media (max-width: 640px) {
  .real-hdr { padding: 0 20px; gap: 14px; }
  .real-title { font-size: clamp(18px, 6vw, 28px); }
  .real-item { width: 110px; }
  .real-track { gap: 8px; }
  .real-marquee-wrap { gap: 8px; }
}
/* ══ CORRECTIONS RESPONSIVE ÉCRAN MINIMUM (≤ 400px) ══ */
@media (max-width: 400px) {
  /* GALERIE */
  .real-hdr { padding: 0 16px; }
  .real-item { width: 95px; }
  .real-track { gap: 6px; }
  /* NAV */
  nav, .nav { padding: 0 16px; gap: 0 12px; }
  .nav-links { display: none; }
  /* HERO */
  .hero-rot-text { font-size: 10px; letter-spacing: .14em; }
  .hero-title { font-size: clamp(28px, 12vw, 44px) !important; }
  /* PROJETS */
  #pjList { grid-template-columns: 1fr; }
  .filter-tabs { padding: 0 16px 24px; gap: 6px; }
  .filter-tab { padding: 5px 10px; font-size: .63rem; }
  /* STATS */
  .stats-grid { grid-template-columns: 1fr 1fr; gap: 20px; }
  .stat-n { font-size: clamp(28px, 10vw, 48px); }
  /* CONTACT */
  .cta-sec { padding: 64px 16px; }
  .ct-ctas { grid-template-columns: 1fr; gap: 2px; }
  .ct-cta-btn { padding: 20px 16px; font-size: 9px; }
  .ct-foot { flex-direction: column; gap: 12px; align-items: center; }
  /* MODAL */
  .m-pres-btn, .m-share-btn { padding: 6px 10px; font-size: .6rem; }
  .m-nav { display: flex; flex-wrap: wrap; gap: 6px; }
  /* TRUST */
  .trust-hdr { padding: 0 16px; }
  /* FOOTER */
  footer.footer { padding: 16px; gap: 12px; flex-direction: column; align-items: flex-start; }
  .ft-links { gap: 12px; flex-wrap: wrap; }
}
