*{box-sizing:border-box;margin:0;padding:0}
:root {
  --bg-color: #ffffff;
  --text-color: #231f3f;
  --accent-color: #534596;
  --secondary-bg: #f5f5f5;
  --border-color: #534596;
  --nav-hover: #ebe7f6;
  --email-bg: rgba(83,69,150,0.12);
}
[data-theme="dark"] {
  --bg-color: #1a1a1a;
  --text-color: #f0f0f0;
  --accent-color: #7c5cfa;
  --secondary-bg: #2a2a2a;
  --border-color: #7c5cfa;
  --nav-hover: #3a3a3a;
  --email-bg: rgba(124,92,250,0.15);
}
[data-theme="dark"] body {
  background: radial-gradient(circle at top left, #2a1c47 0%, #1a1a1a 70%);
}
body{font-family:'Quicksand', 'Poppins', 'Nunito', sans-serif;background:radial-gradient(circle at top left, #E5E2F2 0%, #ffffff 70%);color:var(--text-color);line-height:1.5;padding:0px 0px 14px}
html{scroll-behavior:smooth}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:8px;background:radial-gradient(circle at top right, #E5E2F2 0%, #ffffff 70%);color:var(--text-color);border:0;border-radius:0;padding:10px 24px;position:sticky;top:0;backdrop-filter:blur(12px);z-index:30}
[data-theme="dark"] .site-header{background:rgba(26,26,26,0.9)}
.site-branding{display:flex;align-items:center;gap:10px}
.header-logo-text{display:flex;flex-direction:column;gap:1px;color:black}
.header-logo-svg{height:2.5rem;width:auto;object-fit:contain}
.theme-toggle{background:transparent;border:0;border-radius:8px;padding:.3rem;font-size:1rem;cursor:pointer;margin-right:.25rem;transition:.2s;display:flex;align-items:center;justify-content:center}
.theme-toggle:hover{background:var(--nav-hover)}
.theme-icon{width:24px;height:24px;object-fit:contain}
.brand{font-weight:800;font-size:1rem;color:var(--accent-color);text-transform:uppercase;letter-spacing:.02em}
.sub{font-size:.7rem;color:var(--accent-color);text-transform:lowercase;letter-spacing:.01em;line-height:1.1}
.nav-links{display:flex;gap:.35rem}
.nav-links a{color:var(--text-color);text-decoration:none;font-size:.76rem;font-weight:600;padding:.35rem .5rem;border-radius:6px;transition:.2s;background:transparent}
.nav-links a:hover{background:var(--nav-hover)}
.header-actions{display:flex;align-items:center;gap:.45rem}
.contact-btn{background:var(--secondary-bg);color:var(--text-color);border:1px solid var(--border-color);border-radius:8px;padding:.35rem .7rem;font-size:.75rem;font-weight:700;cursor:pointer}
.burger{display:none;background:var(--accent-color);color:#fff;border:0;padding:.3rem .55rem;border-radius:8px;font-size:1rem;cursor:pointer}
.divider{margin-top:12px;border:0;height:1px;background:var(--border-color)}
.hidden{opacity:0;transform:translateY(20px);transition:opacity 0.6s ease, transform 0.6s ease}
.visible{opacity:1;transform:translateY(0)}
main{max-width:980px;margin:18px auto;display:flex;flex-direction:column;gap:16px}
.hero-home{display:flex;flex-direction:column;gap:14px;align-items:center;background:transparent;border:0;border-radius:0;padding:14px}
.hero-logo{display:flex;justify-content:center;align-items:center}
.home-logo{width:220px;height:auto;object-fit:contain}
.hero-welcome{text-align:center}
.hero-welcome h1{font-size:2rem;margin-bottom:.35rem;color:var(--accent-color);text-shadow:0 1px 2px rgba(83,69,150,0.25)}
.hero-welcome p{font-size:1rem;color:var(--text-color)}
.drawing-box{width:100%;border:0;background:var(--secondary-bg);border-radius:0;height:auto;overflow:hidden;padding:0;box-shadow:0 4px 16px rgba(0,0,0,0.08);display:flex;justify-content:center}
.apropos .drawing-box{max-width:780px;margin:18px auto 0}
.schema-image{max-width:100%;height:auto;display:block}
.actualite{background:transparent;border:0;border-radius:0;padding:12px}
.actualite h2{font-size:1.25rem;margin-bottom:7px;color:#534596;}
.actualite p{color:var(--text-color)}
#charte{scroll-margin-top:80px;padding-top:80px}
#charte table{width:100%;border-collapse:separate;border-spacing:24px 0;}
#charte td{padding:0 8px;vertical-align:top}
#charte td.outlined{border-radius:8px;padding:12px 8px;background:transparent;transition:.2s}
#charte td.outlined:hover{background:var(--nav-hover)}
.apropos-columns{display:grid;grid-template-columns:1fr 1.2fr;gap:22px;align-items:center}
.apropos-illustration{display:flex;justify-content:center;align-items:center;width:100%}
.apropos-illustration img{width:100%;height:auto;max-width:420px;display:block}
.carousel-container .carousel-track{display:flex;height:100%;transition:transform 0.8s ease}
.carousel-slide{flex:0 0 100%;width:100%;height:100%;object-fit:contain;object-position:center center;display:block}
.apropos-copy p{margin-bottom:1rem;color:var(--text-color)}
.email-tag{display:inline-block;background:var(--email-bg);color:var(--text-color);padding:.15rem .4rem;border-radius:8px;font-weight:700;text-decoration:none}
section{background:transparent;border:0;border-radius:0;padding:12px 12px 40px 12px;scroll-margin-top:80px}
@media (min-width:901px){
  #apropos{min-height:100vh;display:flex;flex-direction:column;justify-content:center}
}
section h2{margin-bottom:8px;color:var(--accent-color);font-size:1.1rem;}
.section-divider{border:0;height:2px;background:linear-gradient(to right, transparent, var(--border-color) 20%, var(--border-color) 80%, transparent);margin:4px 20px 0 20px}
.carousel-container{width:100%;height:300px;overflow:hidden;border-radius:4px;position:relative}
.carousel-image{width:auto;height:100%;max-width:100%;transition:opacity 0.4s ease;display:block}
@media (max-width:900px){
  .hero-home{align-items:stretch}
  .nav-links{position:absolute;right:10px;top:72px;flex-direction:column;background:#ffffff;padding:.5rem;border-radius:0;display:none;box-shadow:0 14px 30px rgba(0,0,0,0.15)}
  .nav-links.open{display:flex}
  .nav-links a:hover{background:var(--nav-hover)}
  .burger{display:inline-block}
  .drawing-box{height:300px;overflow-x:auto;overflow-y:hidden}
  .schema-image{min-width:900px;width:1200px;max-width:none}
  .apropos-columns{grid-template-columns:1fr;}
  .apropos-illustration{order:0}
  .apropos-copy{order:1}
}
@media (max-width:900px){
  .hero-home{align-items:stretch}
  .nav-links{position:absolute;right:10px;top:72px;flex-direction:column;background:var(--bg-color);padding:.5rem;border-radius:0;display:none;box-shadow:0 14px 30px rgba(0,0,0,0.15)}
  .nav-links.open{display:flex}
  .burger{display:inline-block}
  .drawing-box{height:300px;overflow-x:auto;overflow-y:hidden}
  .schema-image{min-width:900px;width:1200px;max-width:none}
  .apropos-columns{grid-template-columns:1fr;}
  .apropos-illustration{order:0}
  .apropos-copy{order:1}
  .carousel-container{height:240px}
  .carousel-image{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
  #charte table tr{display:flex;flex-direction:column}
  #charte table td{display:block;width:100%;margin-bottom:8px}
}
