
:root{--bg:#fff;--fg:#0a0a0a;--muted:#6b7280;--brand:#0f3d5e;--brand2:#1b6fa7;--border:#e5e7eb}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--fg);background:var(--bg);line-height:1.6}
img{max-width:100%;display:block;height:auto}
a{text-decoration:none;color:inherit}
.container{width:min(1100px,92%);margin:0 auto}
.site-header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--border);z-index:50}
.nav{display:flex;align-items:center;justify-content:space-between;padding:.8rem 0;gap:1rem}
.logo img{height: 100px}
.nav-menu{display:flex;gap:1rem;align-items:center}
.nav-toggle{display:none;background:none;border:1px solid var(--border);border-radius:8px;padding:.3rem .5rem}
.btn{display:inline-block;padding:.8rem 1.1rem;border-radius:999px;border:1px solid var(--brand);background:var(--brand);color:#fff;font-weight:600}
.btn:hover{background:var(--brand2);border-color:var(--brand2)}
.btn.ghost{background:transparent;color:var(--brand);border-color:var(--brand)}
.hero{padding:clamp(2.5rem,6vw,6rem) 0;background:linear-gradient(135deg,#eff6ff,#f8fafc)}
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;padding:2rem 0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:1rem 0 2rem}
.card{padding:1rem;border:1px solid var(--border);border-radius:14px;background:#fff}
.grid.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:1rem 0 2rem}
.two{display:grid;grid-template-columns:2fr 1fr;gap:2rem}
.map-wrap{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:12px;border:1px solid var(--border)}
.map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.site-footer{margin-top:3rem;padding:2rem 0;background:#0f172a;color:#e5e7eb}
.footer-logo{height:100px;filter:brightness(3)}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
.legal{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid rgba(229,231,235,.2);margin-top:1rem;padding-top:1rem}
@media (max-width:900px){
  .nav-toggle{display:inline-block}
  #nav-menu{position:absolute;right:4%;top:58px;flex-direction:column;background:#fff;border:1px solid var(--border);padding:.6rem;border-radius:12px;display:none}
  #nav-menu.open{display:flex}
  .two{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr}
}
/* ==== Formulaire moderne (labels flottants) ==== */
.form-modern{
  --radius:16px;
  --shadow:0 8px 28px rgba(2,8,23,.08);
  --field-bg:#fff;
  --field-br:#e5e7eb;
  --field-br-focus: var(--brand);
  --field-ring: rgba(27,111,167,.12);
  background:#fff;border:1px solid var(--field-br);border-radius:var(--radius);
  padding:clamp(1rem,2.5vw,1.5rem);box-shadow:var(--shadow);
}

.form-head{margin-bottom:0.6rem}
.form-head .sub{margin:.2rem 0 0;color:var(--muted)}

.form-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.form-grid-2 .full{grid-column:1/-1}

.fl-group{position:relative;display:grid;gap:.4rem}
.fl-group .hint{color:var(--muted);font-size:.85rem}

.fl-group input,
.fl-group textarea{
  width:100%;background:var(--field-bg);
  border:1px solid var(--field-br);border-radius:12px;
  padding:1rem 1rem .9rem;font:inherit;outline:0;
  transition:border-color .15s, box-shadow .15s, background .15s;
}
.fl-group textarea{resize:vertical;min-height:140px}

/* Label flottant (input ~ label) */
.fl-group label{
  position:absolute;left:12px;top:12px;
  background:#fff;padding:0 .35rem;
  color:#6b7280;font-size:.95rem;
  transform-origin:left top;transform:translateY(0) scale(1);
  transition:transform .15s,color .15s, top .15s;
  pointer-events:none;
}
.fl-group input:focus,
.fl-group textarea:focus{border-color:var(--field-br-focus);box-shadow:0 0 0 4px var(--field-ring)}
.fl-group input:not(:placeholder-shown) ~ label,
.fl-group input:focus ~ label,
.fl-group textarea:not(:placeholder-shown) ~ label,
.fl-group textarea:focus ~ label{
  top:-9px; transform:translateY(0) scale(.85); color:var(--brand);
}


/* Actions */
.actions{display:flex;align-items:center;gap:1rem;margin-top:.4rem;flex-wrap:wrap}
.btn.btn-lg{padding:1rem 1.4rem;font-weight:700;border-radius:999px}
.btn-spinner{display:none;width:18px;height:18px;border-radius:999px;border:2px solid rgba(255,255,255,.6);border-top-color:#fff;animation:spin .9s linear infinite;margin-left:.6rem}
.btn.loading .btn-text{opacity:.9}
.btn.loading .btn-spinner{display:inline-block}
.status{margin:0;color:var(--muted);font-weight:600}

@keyframes spin{to{transform:rotate(360deg)}}

/* Plus aéré sur grands écrans */
@media (min-width:1200px){
  .form-modern{padding:2rem}
}

/* Mobile */
@media (max-width:900px){
  .form-grid-2{grid-template-columns:1fr}
}
/* Messages d'erreur discrets après soumission */
.error-msg{
  margin-top:.25rem;
  font-size:.85rem;
  color:var(--muted);
}
.is-error{
  border-color: var(--brand);
  box-shadow: 0 0 0 4px var(--field-ring);
}
/* Cache le honeypot anti-spam */
.hp{
  position:absolute !important;
  left:-9999px !important;
  opacity:0 !important;
  pointer-events:none !important;
  height:0 !important; width:0 !important;
  margin:0 !important; padding:0 !important; border:0 !important;
}
/* Neutralise les styles rouges natifs des navigateurs */
input:invalid,
textarea:invalid {
  box-shadow: none;
  border-color: var(--field-br); /* couleur neutre */
}
/* Style des images dans la page À propos */
.container figure {
  margin: 2rem 0;
  text-align: center;
}

.container figure img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;       /* coins arrondis */
  box-shadow: 0 6px 20px rgba(0,0,0,0.1); /* ombre légère */
}

.container figure figcaption {
  margin-top: 0.5rem;
  font-size: 0.9rem;
  color: var(--muted);
  font-style: italic;
}
.status.success { color: green; margin-top: 0.5rem; }
.status.error { color: red; margin-top: 0.5rem; }
.cta-row {
  display: flex;
  flex-wrap: wrap;     
  gap: 0.8rem;         
  margin-top: 1.2rem;  
}
/* Grille uniforme comme "Nos services" */
.features {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 24px); /* espace entre les cartes */
}

/* Le titre occupe toute la ligne et respire */
.features > h2 {
  grid-column: 1 / -1;        /* le h2 s'étend sur toute la grille */
  margin: 0 0 5px;           /* espace sous le titre */
  line-height: 1.2;
}

/* Cartes de la section (optionnel si tu as déjà un style global) */
.features article {
  background: var(--card-bg, #fff);
  border-radius: 12px;
  padding: clamp(16px, 1.8vw, 24px);
  box-shadow: 0 1px 2px rgba(0,0,0,.05);
}

/* Mobile : 1 colonne */
@media (max-width: 768px) {
  .features {
    grid-template-columns: 1fr;
  }
  .features > h2 {
    margin-bottom: 16px;      /* un peu moins serré sur mobile */
  }
}

