/* ===== Base ===== */
html{ -webkit-text-size-adjust:100%; }
:root{
  --bg-dark:#2a3a3f; --brand:#DDC225; --btnc:#c9ab00; --accent:#ec5552;
  --ink:#3b3b3b; --ink_header:#f6f6f6; --surface:#f6f6f6; --line:#e5e7eb;
}
*{ box-sizing:border-box; }
html,body{
  margin:0; padding:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Helvetica,Arial,'Apple Color Emoji','Segoe UI Emoji';
  color:var(--ink); background:#fff;
  overflow-x: hidden;
}
.container{ max-width:1120px; margin:0 auto; padding:0 16px; }
a{ color:var(--accent); text-decoration:none; }
a:hover{ opacity:.9; text-decoration:underline; }

/* ===== Header sticky ===== */
.site-header{
  position:sticky; top:0; z-index:10;
  background:rgba(59,59,59,.92); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
  transition:background .2s,box-shadow .2s,backdrop-filter .2s;
}
body.is-scrolled .site-header{
  background:rgba(59,59,59,.68); backdrop-filter:blur(12px);
  box-shadow:0 8px 20px rgba(0,0,0,.08);
}
.nav{ display:flex; align-items:center; justify-content:space-between; height:64px; }
.brand{ display:flex; align-items:center; gap:10px; }
.brand-logo{ height:34px; width:auto; display:block; }
@media (min-width:860px){ .brand-logo{ height:40px; } }

/* ===== Boutons génériques ===== */
.btn,.btnc{ display:inline-block; padding:10px 14px; border-radius:10px; min-height:44px; }
.btn{ border:2px solid var(--brand); background:#fff; color:var(--ink); }
.btn-primary{ background:var(--brand); color:var(--ink); border-color:var(--brand); font-weight:700; }
.btn-primary:hover{ filter:brightness(1.05); }
.btnc{ border:3px solid var(--brand); background:#fff; color:var(--ink); }
.btnc:any-link{ color:var(--btnc); }
.lang-btn{
  margin-left:10px; border:1px solid var(--line); background:#fff;
  padding:8px 10px; border-radius:8px; cursor:pointer;
}

/* ===== Hero ===== */
.hero{ padding:128px 0 28px; min-height:64vh; }
.hero-dark{
  position:relative; isolation:isolate; color:var(--surface);
  background-image:
    linear-gradient(rgba(42,58,63,.80),rgba(42,58,63,.80)),
    url('https://res.cloudinary.com/ldanieltvr/image/upload/f_auto,q_auto/v1492818435/folio/background.jpg');
  background-size:cover; background-position:50% top; background-repeat:no-repeat;
}
.hero-dark a{ color:var(--surface); }
.hero-inner{ position:relative; z-index:1; display:grid; grid-template-columns:1fr; gap:24px; }
.hero-copy h1{ font-size:clamp(28px,4vw,42px); line-height:1.15; margin:0 0 12px; }
.lead{ font-size:clamp(16px,2vw,20px); color:#f0f0f0; }
.microproof{ margin-top:8px; color:#ededed; font-size:14px; }
.pills{ margin-top:12px; display:flex; gap:8px; flex-wrap:wrap; }
.pill{ border:1px solid #cbd5e1; color:#f5f5f5; border-radius:999px; padding:4px 10px; font-size:12px; background:rgba(0,0,0,.15); }

/* Effet “aurora” doux */
.hero-dark::after{
  content:""; position:absolute; inset:-10%; pointer-events:none;
  background:
    radial-gradient(40% 30% at 20% 20%, rgba(224,220,195,.55) 0%, transparent 60%),
    radial-gradient(35% 25% at 80% 30%, rgba(255,217,0,.25) 0%, transparent 60%),
    radial-gradient(50% 40% at 50% 80%, rgba(255,255,255,.18) 0%, transparent 60%);
  filter: blur(12px); mix-blend-mode:screen;
  animation: auroraMove 8s ease-in-out infinite alternate;
}
@keyframes auroraMove{ 0%{transform:translate3d(0,0,0) scale(1)} 100%{transform:translate3d(0,-5%,0) scale(1.05)} }
@media (prefers-reduced-motion:reduce){ .hero-dark::after{ animation:none; } }

/* ===== Sections ===== */
.section{ padding:56px 0; border-top:4px solid transparent; }
.section.with-brand-top{ border-top-color:var(--brand); }
.section.alt{ background:#f8fafc; }
.card{ border:1px solid var(--line); border-radius:16px; padding:18px; background:#fff; }
.card h3{ margin-top:4px; }
.bullets{ line-height:1.7; }
.grid{ display:grid; gap:12px; grid-template-columns:1fr; }
label span{ display:block; font-weight:600; margin-bottom:6px; }
input,textarea{ width:100%; padding:10px; border:1px solid #d1d5db; border-radius:10px; font:inherit; }
.note{ color:#6b7280; } .small{ font-size:12px; }

/* Grille des cartes (1→2→3→5) */
.cards{ display:grid; gap:16px; grid-template-columns:1fr; }
@media (min-width:600px){ .cards{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px){ .cards{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width:1200px){ .cards{ grid-template-columns:repeat(5,1fr); } }

/* ===== Footer ===== */
.site-footer{ border-top:1px solid var(--line); padding:24px 0; background:#3b3b3b; color:var(--surface); }
.foot{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.foot-nav a{ color:#e5e7eb; margin-left:12px; }

/* =========================================================
   Menu mobile (overlay sombre)
   ========================================================= */
.menu a{ margin:0 10px; color:var(--ink_header); }            /* liens dans le header */
.nav-toggle{
  display:inline-flex; width:40px; height:40px; align-items:center; justify-content:center;
  border:1px solid var(--line); border-radius:10px; background:#fff; z-index:31;
}
.nav-toggle .bar{ width:18px; height:2px; background:#111; border-radius:2px; display:block; }
.nav-toggle .bar + .bar{ margin-top:4px; }
.nav-toggle i{ font-size:22px; line-height:1; pointer-events:none; }

.menu{ display:none; }                                        /* caché par défaut */

/* Quand le menu est ouvert : on neutralise le header sticky pour éviter les artefacts */
body.menu-open .site-header{
  position:static; background:transparent; -webkit-backdrop-filter:none; backdrop-filter:none;
}

/* Overlay pleine page */
body.menu-open .menu{
  display:flex; flex-direction:column; gap:0;
  position:fixed; left:0; top:0; width:100vw; height:100dvh; z-index:1000;
  padding:calc(16px + env(safe-area-inset-top,0)) 20px calc(24px + env(safe-area-inset-bottom,0));
  background:rgba(17,17,17,.94); color:#fff; backdrop-filter:blur(25px);
  overflow:auto;
}
body.menu-open .menu a:not(.btnc){
  display:block; font-size:18px; padding:14px 0; color:#fff;
  border-bottom:1px solid rgba(255,255,255,.12);
}

/* Bouton CONTACT (plein largeur) */
body.menu-open .menu .btnc{
  display:block; width:100%; margin:16px 0 8px; padding:14px 16px;
  text-align:center; border-radius:12px; border-width:2px;
  background:var(--brand); color:var(--ink_header); border-color:var(--brand);
  box-shadow:0 6px 16px rgba(0,0,0,.22);
  border-bottom:0 !important;
}

/* Bouton LANGUE — déclaration unique, bordure et trait de base bien visibles */
body.menu-open .menu .lang-btn{
  display:block; width:100%; align-self:stretch; box-sizing:border-box;
  margin:8px 0 0; padding:12px 16px; text-align:center;
  color:#fff; background:rgba(255,255,255,.03);
  border-radius:12px; border:1px solid rgba(255,255,255,.42);
  /* Trait net sous le bouton + léger renfort interne */
  box-shadow: 0 1px 0 rgba(255,255,255,.65), inset 0 0 0 1px rgba(255,255,255,.06);
}

/* Desktop : nav inline, bouton caché */
@media (min-width:900px){
  .nav-toggle{ display:none; }
  .menu{ display:flex; align-items:center; gap:12px; position:static; background:transparent; color:inherit; }
}

/* ===== Forms spacing ===== */
.contact .btn{ margin-top:10px; }

/* ===== Responsive forms/hero layout ===== */
@media (min-width:860px){
  .hero-inner{ grid-template-columns:1.2fr .8fr; }
  .grid{ grid-template-columns:1fr 1fr; }
}

.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}