:root{
    --bg:#0e0f12;          /* fond général */
    --surface:#15171c;     /* cartes, header */
    --elev:#1b1e24;        /* zones surélevées */
    --text:#e7eaf0;
    --muted:#b1b6c3;
    --brand:#ff9800;       /* ambre */
    --brand-700:#e68900;
    --accent:#4fc3f7;
    --ok:#66bb6a; --warn:#ffca28; --err:#ef5350;
    --radius:14px;
    --header-h:72px;
    --container:1200px;
}

/* Reset de base */
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{
    margin:0; font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,"Noto Sans",sans-serif;
    background:var(--bg); color:var(--text); line-height:1.6;
    -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:50%; display:block}
a{color:inherit; text-decoration:none}
:focus-visible{outline:3px solid var(--accent); outline-offset:2px; border-radius:8px}

.container{max-width:var(--container); margin-inline:auto; padding-inline:20px}
section{padding:64px 0; scroll-margin-top:calc(var(--header-h) + 16px)}
h1,h2,h3{line-height:1.2; margin:0 0 .5rem}
h1{font-size:clamp(2rem,4vw,3rem)}
h2{font-size:clamp(1.5rem,3vw,2rem); color:var(--brand)}
h3{font-size:clamp(1.125rem,2.5vw,1.25rem); color:#ffd54f}
p{margin:0 0 1rem; color:var(--text)}
.muted{color:var(--muted)}

/* Header */
header{
    position:sticky; top:0; z-index:1000; height:var(--header-h);
    backdrop-filter:saturate(1.1) blur(10px);
    background:linear-gradient(to bottom, rgba(10,10,12,.85), rgba(10,10,12,.6));
    border-bottom:1px solid rgba(255,255,255,.06);
}
.nav{display:flex; align-items:center; justify-content:space-between; height:100%}
.brand{display:flex; align-items:center; gap:12px}
.brand img{height:40px; width:auto; object-fit:contain}
.brand .title{font-weight:700; letter-spacing:.4px}

.menu{display:flex; align-items:center; gap:12px}
.menu a{
    padding:.6rem .9rem; border-radius:10px; color:#ffd27b; font-weight:600;
    transition:background .2s ease,color .2s ease
}
.menu a:hover{background:rgba(255,152,0,.12); color:#fff}

.nav-cta{margin-left:8px}

/* Burger mobile */
.nav-toggle{display:none; background:none; border:none; color:var(--text); font-size:1.6rem}
@media (max-width: 900px){
    .menu{position:fixed; inset:auto 0 0 0; top:var(--header-h); background:var(--surface); 
        border-top:1px solid rgba(255,255,255,.06); padding:16px; display:none; flex-direction:column}
    .menu.open{display:flex}
    .nav-toggle{display:inline-flex}
}

/* Hero */
.hero{
    position:relative; min-height:calc(100vh - var(--header-h)); display:grid; place-items:center;
    background:#0b0c10 url('cubee_fanart.jpg') center/cover no-repeat; isolation:isolate;
}
.hero::after{content:""; position:absolute; inset:0; background:
    linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.55)),
    radial-gradient(60% 60% at 50% 40%, rgba(255,152,0,.25), transparent 60%)}
.hero .inner{position:relative; z-index:1; text-align:center; padding:40px}
.kicker{display:inline-block; padding:.25rem .6rem; border-radius:999px; font-weight:700; letter-spacing:.4px;
    background:rgba(255,152,0,.15); color:#ffd27b; margin-bottom:12px}
.h1{font-size:clamp(2rem,6vw,3.25rem); font-weight:800; letter-spacing:.2px; margin-bottom:10px}
.lead{font-size:clamp(1rem,2.2vw,1.125rem); max-width:850px; margin-inline:auto; color:#eaeef6}

/* Buttons */
.btn{display:inline-flex; align-items:center; gap:.6rem; padding:.9rem 1.1rem; border-radius:12px; 
        font-weight:700; border:1px solid transparent; transition:transform .08s ease, background .2s ease, border-color .2s ease}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--brand); color:#111}
.btn-primary:hover{background:var(--brand-700)}
.btn-outline{background:transparent; color:#ffd27b; border-color:rgba(255,210,123,.35)}
.btn-outline:hover{background:rgba(255,210,123,.1); border-color:rgba(255,210,123,.65)}

.btn-row{display:flex; gap:12px; justify-content:center; margin-top:20px; flex-wrap:wrap}

/* Cards & grid */
.grid{display:grid; gap:20px}
.cards{grid-template-columns:repeat(auto-fit, minmax(260px, 1fr))}
.card{background:var(--surface); border:1px solid rgba(255,255,255,.06); border-radius:var(--radius); padding:20px; box-shadow:0 8px 22px rgba(0,0,0,.35)}
.card h3{margin-bottom:.25rem}
.card p{color:#d9dde6}

/* Services list with icons bullets */
.checklist{margin:.5rem 0 0; padding:0; list-style:none}
.checklist li{display:flex; align-items:flex-start; gap:10px; margin:.5rem 0; color:#cfd5e2}
.check{width:22px; height:22px; border-radius:999px; display:grid; place-items:center; background:rgba(102,187,106,.12); color:var(--ok); border:1px solid rgba(102,187,106,.35); font-size:.9rem}

/* Projects */
/*.projects .grid{grid-template-columns:repeat(auto-fit, minmax(280px, 1fr))}
.project-card{padding:0; overflow:hidden}
.project-thumb{aspect-ratio:16/9; background:var(--elev)}
.project-thumb img{width:100%; height:100%; object-fit:cover}
.project-body{padding:16px}*/

    /* ---- Projets ---- */
.projects .grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.card{background:var(--surface);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);box-shadow:0 8px 22px rgba(0,0,0,.35);overflow:hidden}
.project-body{padding:16px}
.pill{display:inline-block;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:.2rem .55rem;color:#cfd5e2;font-size:.85rem}

/* Galerie 2 colonnes (même ligne) */
    .project-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:16px;}
.frame{aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#0b0c10;cursor:pointer;position:relative}
.frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease, filter .25s ease}
.frame::after{
    content:"";
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(0,0,0,0.35);
    opacity:0;
    transition:opacity .25s ease;
    background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>');
    background-repeat:no-repeat;
    background-position:center;
    background-size:48px;
}    .frame:hover img{transform:scale(1.05);filter:brightness(0.9)}
.frame:hover::after{opacity:1}

/* Lightbox */
.lightbox { position:fixed; inset:0; background:rgba(0,0,0,0.9); display:none; align-items:center; justify-content:center; z-index:9999; }
.lightbox.active { display:flex; }
.lightbox img { max-width:90%; max-height:90%; border-radius:10px; box-shadow:0 4px 20px rgba(0,0,0,0.5); }
.lightbox .close, .lightbox .prev, .lightbox .next {
    position:absolute; top:50%; transform:translateY(-50%);
    background:rgba(0,0,0,0.5); border:none; color:#fff; font-size:2rem; cursor:pointer; padding:10px; border-radius:50%;
}
.lightbox .close { top:20px; right:30px; transform:none; }
.lightbox .prev { left:30px; }
.lightbox .next { right:30px; }

.lb-btn {
display: grid;
place-items: center;
width: 52px;
height: 52px;
border: none;
border-radius: 8px;
background: transparent;
cursor: pointer;
transition: background 0.25s ease;
}
.lb-btn svg {
width: 24px;
height: 24px;
stroke: white;
stroke-width: 2.5;
}
.lb-btn:hover {
background: rgba(59, 130, 246, 0.9); /* bleu au hover */
}
.lb-btn.close {
width: 48px;
height: 48px;
}
.lb-btn.close:hover {
background: rgba(239, 68, 68, 0.9); /* rouge au hover */
}

/* Team */
.team{display:grid; grid-template-columns:1fr 1.3fr; gap:24px}
.avatar{border-radius:var(--radius); overflow:hidden; display:grid; place-items:center; color:#8391a3}
@media (max-width:900px){.team{grid-template-columns:1fr}}

/* Contact */
form{display:grid; gap:12px; max-width:720px}
input, textarea{width:100%; background:#0f1116; border:1px solid rgba(255,255,255,.08); color:var(--text); border-radius:12px; padding:12px 14px; font:inherit}
textarea{min-height:140px; resize:vertical}
input::placeholder, textarea::placeholder{color:#8e97a8}

/* Footer */
footer{background:#0b0c10; border-top:1px solid rgba(255,255,255,.06); padding:28px 0; color:#aeb6c7}

footer div a {
  color: var(--accent);
  text-decoration: none;
}
footer div a:hover {
  text-decoration: underline;
}

.footer-heading {
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 4px;
  color: #ffd27b; /* cohérent avec ton thème */
  letter-spacing: .3px;
}

.footer-mail {
  display: inline-block;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--accent);
}

.footer-mail:hover {
  text-decoration: underline;
}

/* Utilities */
.row{display:flex; gap:12px; flex-wrap:wrap}
.center{text-align:center}
.pill{display:inline-block; border:1px solid rgba(255,255,255,.08); border-radius:999px; padding:.25rem .65rem; font-size:.85rem; color:#cdd4e1}

/* Motion safety */
@media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation:none!important; transition:none!important; scroll-behavior:auto!important}
}

/* Lang dropdown */
.lang-dd{position:relative; margin-left:8px}
.lang-dd__btn{display:inline-flex; align-items:center; gap:8px; padding:.45rem .6rem; border-radius:10px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); color:#e7eaf0; cursor:pointer}
.lang-dd__btn:hover{background:rgba(255,255,255,.08)}
.lang-dd__btn:focus-visible{outline:3px solid var(--accent); outline-offset:2px}
.lang-dd__list{position:absolute; right:0; top:calc(100% + 8px); background:var(--surface); border:1px solid rgba(255,255,255,.12); border-radius:12px; padding:6px; list-style:none; margin:0; display:none; min-width:160px; box-shadow:0 12px 28px rgba(0,0,0,.38); z-index:20}
.lang-dd__list.open{display:block; animation:ddIn .12s ease-out}
@keyframes ddIn{from{opacity:0; transform:translateY(-4px)} to{opacity:1; transform:translateY(0)}}
.lang-dd__list li{display:flex; align-items:center; gap:10px; padding:.5rem .6rem; border-radius:10px; cursor:pointer; color:#e7eaf0}
.lang-dd__list li[aria-selected="true"], .lang-dd__list li:hover{background:rgba(255,255,255,.08)}
.lang-dd .flag{width:20px; height:14px; border-radius:3px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
/* Petites SVG/CSS flags (FR & EN) */
.flag-fr{background:linear-gradient(90deg,#0055A4 0 33%,#fff 33% 66%,#EF4135 66%)}
/* EN: Union-ish simplified; alternatively use US if tu préfères */
.flag-en {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='60' height='30'><rect width='60' height='30' fill='%23012169'/><path d='M0 0l60 30M60 0L0 30' stroke='%23fff' stroke-width='6'/><path d='M0 0l60 30M60 0L0 30' stroke='%23c8102e' stroke-width='4'/><path d='M30 0v30M0 15h60' stroke='%23fff' stroke-width='10'/><path d='M30 0v30M0 15h60' stroke='%23c8102e' stroke-width='6'/></svg>");
  background-size: cover;
}
/* Bouton actuel */
#langFlag{display:inline-block; width:20px; height:14px; border-radius:3px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
.lang-dd .chev{opacity:.8}

@media (max-width:900px){
  .lang-dd{align-self:flex-start}
}


