/* ================= FONTS ================= */
@font-face{font-family:'Space Grotesk';src:url('fonts/sg-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/sg-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Manrope';src:url('fonts/mn-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Manrope';src:url('fonts/mn-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Manrope';src:url('fonts/mn-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Manrope';src:url('fonts/mn-800.woff2') format('woff2');font-weight:800;font-display:swap}

/* ================= TOKENS ================= */
:root{
  --bg:#0E0F14;
  --panel:#171922;
  --panel-2:#1E2130;
  --line:#2A2D3D;
  --ink:#F2EFE6;
  --muted:#A9ACB8;
  --gold:#C79A3D;
  --pink:#E8577E;
  --purple:#7C5CFF;
  --teal:#2FBFA6;
  --holo:linear-gradient(100deg,var(--gold),var(--pink) 33%,var(--purple) 66%,var(--teal));
  --radius:14px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Manrope',system-ui,sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

/* ================= LAYOUT ================= */
.wrap{max-width:980px;margin:0 auto;padding:0 20px}
main{padding:32px 0 64px}
section{margin-bottom:44px}

/* ================= HEADER ================= */
header{
  border-bottom:1px solid var(--line);
  position:sticky;top:0;background:rgba(14,15,20,.92);
  backdrop-filter:blur(8px);z-index:50;
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;flex-wrap:wrap}
.brand{
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:19px;
  letter-spacing:.01em;text-decoration:none;color:var(--ink);
  display:flex;align-items:center;gap:9px;
}
.brand::before{
  content:"";width:14px;height:20px;border-radius:3px;
  background:var(--holo);display:inline-block;transform:rotate(-8deg);
}
.nav-links{display:flex;gap:6px;flex-wrap:wrap}
.nav-links a{
  color:var(--muted);text-decoration:none;font-weight:600;font-size:14px;
  padding:9px 13px;border-radius:9px;transition:.15s;
}
.nav-links a:hover,.nav-links a.actif{color:var(--ink);background:var(--panel-2)}

/* ================= HERO ================= */
.hero{padding:56px 0 8px;text-align:left}
h1{
  font-family:'Space Grotesk',sans-serif;font-weight:700;
  font-size:clamp(32px,6vw,52px);line-height:1.04;letter-spacing:-.01em;
  margin-bottom:14px;
}
.holo-text{background:var(--holo);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{color:var(--muted);font-size:17px;max-width:34em;margin-bottom:26px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}

/* ================= BOUTONS ================= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:15px;
  padding:14px 22px;border-radius:11px;text-decoration:none;cursor:pointer;
  border:none;transition:.15s;min-height:48px;
}
.btn-primaire{background:var(--holo);color:#111;}
.btn-primaire:hover{filter:brightness(1.08)}
.btn-secondaire{background:var(--panel-2);color:var(--ink);border:1px solid var(--line)}
.btn-secondaire:hover{border-color:var(--muted)}
.btn-large{width:100%;font-size:16px;padding:16px}

/* ================= TITRES SECTION ================= */
h2{
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:24px;
  margin-bottom:18px;display:flex;align-items:center;gap:10px;
}
h2::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}

/* ================= CARTES ================= */
.grille{display:grid;gap:16px}
.grille-3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.carte{
  background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);padding:22px;
}
.carte h3{font-family:'Space Grotesk',sans-serif;font-size:17px;margin-bottom:8px}
.carte p{color:var(--muted);font-size:14.5px}
.etape-num{
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:13px;
  background:var(--holo);color:#111;width:28px;height:28px;border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px;
}

/* holo border card */
.carte-holo{background:var(--holo);padding:1.5px;border-radius:var(--radius)}
.carte-holo>.interieur{background:var(--panel);border-radius:calc(var(--radius) - 2px);padding:22px}

/* ================= MACHINES ================= */
.machine-carte{margin-bottom:22px}
.machine-tete{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.machine-lieu{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:18px}
.machine-adresse{color:var(--muted);font-size:14px;margin-top:2px}
.badge{
  font-size:12px;font-weight:700;padding:5px 11px;border-radius:99px;
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
}
.badge::before{content:"";width:7px;height:7px;border-radius:99px;background:currentColor}
.badge-service{background:rgba(47,191,166,.12);color:var(--teal)}
.badge-bientot{background:rgba(199,154,61,.12);color:var(--gold)}
.badge-entretien{background:rgba(232,87,126,.12);color:var(--pink)}
.lien-maps{color:var(--teal);font-size:14px;font-weight:600;text-decoration:none}
.lien-maps:hover{text-decoration:underline}

/* ================= TABLE INVENTAIRE ================= */
.inv-table{width:100%;border-collapse:collapse;margin-top:14px;font-size:14.5px}
.inv-table th{
  text-align:left;color:var(--muted);font-weight:600;font-size:12px;
  text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;
  border-bottom:1px solid var(--line);
}
.inv-table td{padding:11px 10px;border-bottom:1px solid var(--line)}
.inv-table tr:last-child td{border-bottom:none}
.prix{font-family:'Space Grotesk',sans-serif;font-weight:700;white-space:nowrap}
.dispo-oui{color:var(--teal);font-weight:700;font-size:13px}
.dispo-non{color:var(--muted);font-weight:600;font-size:13px;text-decoration:line-through}
.note-inv{color:var(--muted);font-size:13px;margin-top:10px}

/* ================= FORMULAIRE ================= */
form{display:flex;flex-direction:column;gap:18px;max-width:560px}
label{font-weight:700;font-size:14.5px;display:block;margin-bottom:7px}
label .opt{color:var(--muted);font-weight:400;font-size:13px}
input[type=text],input[type=email],input[type=tel],select,textarea{
  width:100%;background:var(--panel-2);border:1px solid var(--line);
  border-radius:11px;color:var(--ink);font-family:inherit;font-size:16px;
  padding:14px;min-height:50px;transition:.15s;
}
textarea{min-height:120px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--purple)}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23A9ACB8' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:44px}

/* zone photo */
.zone-photo{
  border:2px dashed var(--line);border-radius:var(--radius);
  padding:22px;text-align:center;cursor:pointer;transition:.15s;
}
.zone-photo:hover{border-color:var(--purple)}
.zone-photo p{color:var(--muted);font-size:14px;margin-top:6px}
.zone-photo .icone{font-size:26px}
.zone-photo input{display:none}
.photo-apercu{max-width:100%;max-height:220px;border-radius:10px;margin-top:12px;display:none}
.photo-etat{color:var(--teal);font-size:13px;font-weight:600;margin-top:8px;display:none}

/* ================= FOOTER ================= */
footer{border-top:1px solid var(--line);padding:34px 0;margin-top:20px}
.foot-grille{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.foot-contact{font-size:14.5px;line-height:1.9}
.foot-contact a{color:var(--ink);text-decoration:none}
.foot-contact .titre{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:16px;margin-bottom:6px}
.disclaimer{color:var(--muted);font-size:12px;max-width:44em;line-height:1.6;margin-top:18px}
.neq{color:var(--muted);font-size:13px;margin-top:8px}

/* ================= DIVERS ================= */
.avis{
  background:rgba(124,92,255,.08);border:1px solid rgba(124,92,255,.3);
  border-radius:11px;padding:14px 16px;font-size:14px;color:var(--ink);
}
.merci-boite{text-align:center;padding:70px 0}
.merci-boite .coche{font-size:52px;margin-bottom:16px}
@media(max-width:560px){
  .hero{padding:36px 0 4px}
  .btn{width:100%}
  .machine-tete{flex-direction:column}
}
