/* =========================================================
   ImprimeZen3D — Machines (Maker Premium, clean & pro)
   Sans texture externe (no noise)
   ========================================================= */

/* =====================
   TOKENS & FALLBACKS
===================== */
:root{
  --mz-max: 1100px;

  --mz-border: var(--gray-light, #e6e8ec);
  --mz-text: var(--dark, #0d1117);
  --mz-muted: var(--gray, #5b6472);

  --mz-bg: #ffffff;
  --mz-bg-alt: rgba(0,0,0,0.02);

  --mz-primary: var(--primary, #2563eb);
  --mz-primary-dark: var(--primary-dark, #1d4ed8);

  --mz-shadow: 0 14px 40px rgba(0,0,0,.06);
  --mz-shadow-strong: 0 20px 60px rgba(0,0,0,.12);

  --mz-r1: .9rem;
  --mz-r2: 1.15rem;
  --mz-r3: 1.35rem;

  --mz-h1: clamp(1.9rem, 2.4vw, 2.6rem);
  --mz-h2: clamp(1.45rem, 1.8vw, 1.9rem);
}

/* =====================
   CONTAINER
===================== */
.mz-container{
  max-width: var(--mz-max);
  margin: 0 auto;
  padding: 0 1rem;
}

/* =====================
   BUTTONS
===================== */
.mz-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.75rem 1.05rem;
  border-radius: var(--mz-r2);
  font-weight: 800;
  text-decoration:none;
  border:1px solid transparent;
  transition: all .15s ease;
}

.mz-btn--primary{
  background: linear-gradient(135deg, var(--mz-primary), var(--mz-primary-dark));
  color:#fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
}
.mz-btn--primary:hover{
  transform: translateY(-1px);
  filter: brightness(1.05);
}

.mz-btn--ghost{
  background:#fff;
  color:var(--mz-text);
  border-color:var(--mz-border);
}
.mz-btn--ghost:hover{
  background:rgba(0,0,0,.02);
  transform: translateY(-1px);
}

.mz-btn--soft{
  background:rgba(255,255,255,.12);
  color:#fff;
  border-color:rgba(255,255,255,.25);
}

/* =====================
   HERO
===================== */
.mz-hero{
  position:relative;
  overflow:hidden;
  background:#0b0f16;
  color:#fff;
  border-bottom:1px solid var(--mz-border);
}

.mz-hero__bg{
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 500px at 15% 20%,
      color-mix(in srgb, var(--mz-primary) 35%, transparent),
      transparent 60%),
    radial-gradient(700px 420px at 85% 25%,
      rgba(255,255,255,.10),
      transparent 62%),
    linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.75)),
    url("/images/hero/machines-atelier.webp");
  background-size:cover;
  background-position:center;
}

.mz-hero__content{
  position:relative;
  display:grid;
  grid-template-columns: 1.4fr .9fr;
  gap:1.5rem;
  padding:2.8rem 1rem 2.2rem;
}

.mz-kicker{
  display:inline-block;
  padding:.35rem .7rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.08);
  font-weight:800;
  font-size:.9rem;
}

.mz-hero h1{
  margin:.9rem 0 .75rem;
  font-size:var(--mz-h1);
  line-height:1.05;
  letter-spacing:-0.02em;
}

.mz-lead{
  max-width:65ch;
  color:rgba(255,255,255,.88);
  font-size:1.05rem;
  line-height:1.6;
}

.mz-bullets{
  margin:1rem 0 1.3rem;
  padding-left:1.1rem;
  color:rgba(255,255,255,.8);
}

.mz-hero__cta{
  display:flex;
  gap:.6rem;
  flex-wrap:wrap;
}

.mz-trust{
  display:flex;
  gap:.5rem;
  margin-top:1.2rem;
  flex-wrap:wrap;
}

.mz-chip{
  padding:.35rem .65rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);
  font-size:.85rem;
}

/* =====================
   HERO CARD (choix rapide)
===================== */
.mz-hero__card{
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
  border-radius:var(--mz-r3);
  padding:1rem;
  box-shadow:0 18px 60px rgba(0,0,0,.35);
  backdrop-filter:blur(10px);
}

.mz-hero__cardTitle{
  font-weight:900;
}

.mz-hero__cardSub{
  color:rgba(255,255,255,.8);
  margin:.35rem 0 .9rem;
}

.mz-quick{
  display:block;
  padding:.8rem;
  border-radius:var(--mz-r2);
  border:1px solid rgba(255,255,255,.2);
  background:rgba(0,0,0,.25);
  margin-bottom:.6rem;
  text-decoration:none;
}
.mz-quick:hover{
  background:rgba(0,0,0,.35);
  transform:translateY(-1px);
}

.mz-quick__ttl{
  font-weight:900;
  color:#fff;
}
.mz-quick__meta{
  font-size:.9rem;
  color:rgba(255,255,255,.75);
}

/* =====================
   STICKY NAV
===================== */
.mz-sticky{
  position:sticky;
  top:0;
  z-index:30;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid var(--mz-border);
  backdrop-filter:blur(12px);
}

.mz-sticky__inner{
  display:flex;
  align-items:center;
  gap:1rem;
  padding:.6rem 0;
}

.mz-sticky__links a{
  font-weight:700;
  color:var(--mz-text);
  text-decoration:none;
  opacity:.85;
}
.mz-sticky__links a:hover{ opacity:1; }

/* =====================
   SECTIONS
===================== */
.mz-section{
  padding:2.8rem 0;
  background:var(--mz-bg);
}

.mz-section--alt{
  background:var(--mz-bg-alt);
}

.mz-section__head h2{
  font-size:var(--mz-h2);
  margin-bottom:.4rem;
}
.mz-section__head p{
  max-width:75ch;
  color:var(--mz-muted);
}

/* =====================
   CHOOSE CARDS
===================== */
.mz-choice{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1rem;
}

.mz-choiceCard{
  background:#fff;
  border:1px solid var(--mz-border);
  border-radius:var(--mz-r3);
  padding:1rem;
  box-shadow:var(--mz-shadow);
}

.mz-choiceCard h3{ font-weight:900; }

/* =====================
   MACHINE CARDS
===================== */
.mz-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}

.mz-card{
  background:#fff;
  border:1px solid var(--mz-border);
  border-radius:var(--mz-r3);
  box-shadow:var(--mz-shadow);
  overflow:hidden;
  transition:.15s ease;
}
.mz-card:hover{
  transform:translateY(-2px);
  box-shadow:var(--mz-shadow-strong);
}

.mz-card__media img{
  width:100%;
  height:190px;
  object-fit:cover;
}

.mz-card__body{
  padding:1rem;
}

.mz-card__title{
  font-weight:900;
}
.mz-card__meta{
  color:var(--mz-muted);
  font-size:.9rem;
}

/* =====================
   COMPARE (Scan 3D)
===================== */
.mz-compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
}

.mz-compareCard{
  background:#fff;
  border:1px solid var(--mz-border);
  border-radius:var(--mz-r3);
  padding:1rem;
  box-shadow:var(--mz-shadow);
}

.mz-badge{
  position:absolute;
  top:1rem;
  right:1rem;
  padding:.35rem .6rem;
  border-radius:999px;
  font-size:.8rem;
  font-weight:900;
  background:#000;
  color:#fff;
}

/* =====================
   PROCESS
===================== */
.mz-steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1rem;
}

.mz-step{
  background:#fff;
  border:1px solid var(--mz-border);
  border-radius:var(--mz-r3);
  padding:1rem;
  box-shadow:var(--mz-shadow);
}
.mz-step h3{ font-weight:900; }

/* =====================
   GALLERY
===================== */
.mz-gallery{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}

.mz-galleryCard{
  border:1px solid var(--mz-border);
  border-radius:var(--mz-r3);
  padding:1rem;
  text-decoration:none;
  color:var(--mz-text);
  box-shadow:var(--mz-shadow);
}
.mz-galleryCard:hover{
  transform:translateY(-2px);
}

/* =====================
   FAQ
===================== */
.mz-faq details{
  border:1px solid var(--mz-border);
  border-radius:var(--mz-r3);
  padding:1rem;
  background:#fff;
  box-shadow:var(--mz-shadow);
  margin-bottom:.8rem;
}

.mz-faq summary{
  font-weight:900;
  cursor:pointer;
}

/* =====================
   RESPONSIVE
===================== */
@media(max-width:1024px){
  .mz-hero__content{ grid-template-columns:1fr; }
  .mz-choice{ grid-template-columns:1fr 1fr; }
  .mz-grid{ grid-template-columns:1fr 1fr; }
  .mz-steps{ grid-template-columns:1fr 1fr; }
  .mz-gallery{ grid-template-columns:1fr 1fr; }
}

@media(max-width:640px){
  .mz-choice,
  .mz-grid,
  .mz-compare,
  .mz-steps,
  .mz-gallery{
    grid-template-columns:1fr;
  }
}
