/* Thème dev — style principal */
:root{
  --bg:#0f172a;
  --card:#0b1220;
  --muted:#94a3b8;
  --accent1:#7c3aed;
  --accent2:#06b6d4;
  --white:#ffffff;
  --radius:10px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  color:var(--white);
  background: linear-gradient(180deg,#071024 0%, #071827 60%);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.container{max-width:1100px;margin:0 auto;padding:28px}
.header-inner{display:flex;align-items:center;justify-content:space-between}
.brand{font-weight:700;color:var(--white);text-decoration:none;font-size:1.2rem}
.main-nav{display:flex;gap:16px}
.main-nav a{color:var(--muted);text-decoration:none}
.main-nav a:hover{color:var(--white)}
.nav-toggle{display:none;background:none;border:0;color:var(--white)}
.hamburger{width:22px;height:2px;background:var(--white);display:inline-block;position:relative}
.hamburger::after,.hamburger::before{content:'';position:absolute;left:0;width:22px;height:2px;background:var(--white)}
.hamburger::before{top:-7px}
.hamburger::after{top:7px}

.hero{padding:48px 0}
.hero-inner{display:flex;gap:32px;align-items:center}
.hero-content{flex:1}
.hero-visual{flex:0 0 380px}
.hero h1{font-size:2rem;margin:0 0 10px}
.hero p{color:var(--muted);line-height:1.5}
.cta-row{margin-top:18px}
.btn{display:inline-block;padding:10px 16px;border-radius:8px;text-decoration:none}
.btn.primary{background:linear-gradient(90deg,var(--accent1),var(--accent2));color:#031124;font-weight:600}
.btn.ghost{border:1px solid rgba(255,255,255,0.08);color:var(--white);background:transparent;margin-left:10px}

.section{
  padding:64px 0;
  position:relative;
  border-top:1px solid rgba(255,255,255,0.03);
  margin-top:22px;
}
/* alternate subtle backgrounds to clearly separate sections */

/* Per-section solid/soft backgrounds to clearly separate sections
   Using subtle tints (solid colors) to avoid visual "débordements" */
.hero{background-color:#071024;padding-top:84px;padding-bottom:48px}

/* Solid backgrounds per section to create clear, full-width color bands */
#services{background-color: rgba(124,58,237,0.14)}
#realisations{background-color: rgba(6,182,212,0.14)}
.process{background-color: rgba(10,16,30,0.06)}
#contact{background-color: rgba(80,40,160,0.12)}

.section h2{margin:0 0 12px;font-size:1.6rem;letter-spacing:0.2px;display:inline-block;padding-bottom:8px;border-bottom:4px solid rgba(124,58,237,0.12);border-radius:4px}
.lede{color:var(--muted);margin-bottom:20px;font-size:1.02rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.card{background:linear-gradient(180deg,rgba(255,255,255,0.02),transparent);padding:18px;border-radius:var(--radius);box-shadow:0 6px 18px rgba(2,6,23,0.6)}
.card .icon{font-size:28px;margin-bottom:10px}
.card h3{margin:0 0 8px}

.portfolio .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.project{background:var(--card);border-radius:12px;overflow:hidden;position:relative}
.project .thumb{width:100%;height:auto;display:block}

/* project card two-tone band on left (cadran look) */
.project::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:8px;border-top-left-radius:12px;border-bottom-left-radius:12px;background:linear-gradient(180deg,var(--accent1),var(--accent2));opacity:0.9}
.project:nth-child(even)::before{background:linear-gradient(180deg,var(--accent2),var(--accent1))}

/* Services cards: alternate two-tone cards */
.cards .card{color:var(--white);background:rgba(255,255,255,0.02)}
.project figcaption{padding:12px}

.process .steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.process .steps li{background:rgba(255,255,255,0.03);padding:14px;border-radius:8px}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-card{background:rgba(255,255,255,0.02);padding:18px;border-radius:10px}
.contact-form{background:var(--card);padding:18px;border-radius:10px}
.contact-form label{display:block;margin-top:8px;font-size:0.9rem}
.contact-form input,.contact-form textarea{width:100%;padding:10px;margin-top:6px;border-radius:8px;border:1px solid rgba(255,255,255,0.06);background:transparent;color:var(--white)}
.muted{font-size:0.85rem;color:var(--muted)}
.form-row{text-align:right;margin-top:12px}

.site-footer{border-top:1px solid rgba(255,255,255,0.04);padding:18px 0;margin-top:28px}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:16px}
.site-footer nav a{color:var(--muted);text-decoration:none;margin-left:12px}

/* responsive */
@media(max-width:880px){
  .hero-inner{flex-direction:column}
  .hero-visual{order:2}
  .nav-toggle{display:block}
  .main-nav{position:absolute;top:72px;right:24px;background:rgba(2,6,23,0.9);padding:12px;border-radius:8px;flex-direction:column;display:none}
  .main-nav.open{display:flex}
  .contact-grid{grid-template-columns:1fr}
}

/* small tweak for accessibility */
button:focus, a:focus, input:focus, textarea:focus{outline:2px solid rgba(124,58,237,0.3);outline-offset:2px}

/* Modern effects: glassmorphism, animated gradient, ripple */
/* glass look for cards and forms */
.card, .contact-card, .contact-form, .project{background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,0.04)}

/* animated hero gradient overlay */
.hero::before{content:'';position:absolute;inset:0;border-radius:0;mix-blend-mode:overlay;opacity:0.12;pointer-events:none;background:linear-gradient(120deg,var(--accent1),var(--accent2));transform:translateZ(0);animation:shiftGradient 8s linear infinite}
.hero{position:relative;overflow:hidden}
@keyframes shiftGradient{0%{transform:translateX(-10%)}50%{transform:translateX(10%)}100%{transform:translateX(-10%)}}

/* animated stroke drawing for connection lines */
.bg-molecules g line{stroke-dasharray:200;stroke-dashoffset:200;animation:dash 6s linear infinite}
@keyframes dash{0%{stroke-dashoffset:200}50%{stroke-dashoffset:80}100%{stroke-dashoffset:200}}
.bg-molecules g line:nth-child(2){animation-duration:7s}
.bg-molecules g line:nth-child(3){animation-duration:5.5s}
.bg-molecules g line:nth-child(4){animation-duration:8.2s}
.bg-molecules g line:nth-child(5){animation-duration:6.6s}
.bg-molecules g line:nth-child(6){animation-duration:7.8s}

/* ripple effect for buttons */
.btn{position:relative;overflow:hidden}
.ripple{position:absolute;border-radius:50%;transform:scale(0);background:rgba(255,255,255,0.18);pointer-events:none;animation:ripple 620ms cubic-bezier(.2,.9,.2,1)}
@keyframes ripple{to{transform:scale(1);opacity:0}}

/* subtle 3D tilt on project cards when moving mouse (fallback: hover lift) */
.project{transform-style:preserve-3d}
.project:hover{transform:translateY(-8px) rotateX(1.2deg) rotateY(-1.2deg)}

/* respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .bg-molecules, .btn, .card, .project, .hero::before{animation:none;transition:none}
  .bg-molecules{opacity:0.06}
}
