/* Marzin Consulting · feuille de style commune */
/* Palette anthracite et argent, reprise de la carte de visite */
:root{
  --bg:#131315;
  --bg-alt:#1A1A1D;
  --tile:#202024;
  --text:#ECECEE;
  --muted:#9A9AA1;
  --line:#2E2E33;
  --link:#D4D4D9;
  --btn-bg:linear-gradient(180deg,#F7F7F8 0%,#D2D2D6 55%,#B9B9BE 100%);
  --btn-text:#141416;
  --argent:linear-gradient(180deg,#FAFAFB 0%,#D6D6DA 50%,#9E9EA4 100%);
  --nav-bg:rgba(19,19,21,.72);
  --radius:22px;
  --max:1024px;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif;
  color-scheme:dark;
}

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:64px}
body{
  background:var(--bg);color:var(--text);font-family:var(--font);
  font-size:17px;line-height:1.5;letter-spacing:-.012em;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;display:block}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 22px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--btn-bg);color:var(--btn-text);padding:8px 14px;border-radius:8px;z-index:100}
.skip:focus{left:8px}

/* ---------- Navigation ---------- */
.nav{
  position:sticky;top:0;z-index:50;height:52px;
  background:var(--nav-bg);
  -webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid color-mix(in srgb, var(--line) 60%, transparent);
}
.nav .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}
.nav-logo img{height:22px;width:auto}
.nav ul{display:flex;align-items:center;gap:28px;list-style:none}
.nav ul a{color:var(--text);font-size:13px;opacity:.82;transition:opacity .2s}
.nav ul a:hover{opacity:1;text-decoration:none}
.nav .pill{
  opacity:1;background:var(--btn-bg);color:var(--btn-text);
  padding:6px 14px;border-radius:980px;font-weight:500;
}
@media (max-width:720px){ .nav li:not(.nav-cta){display:none} }

/* ---------- Boutons ---------- */
.actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 28px;margin-top:34px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--btn-bg);color:var(--btn-text);
  font-size:17px;font-weight:500;padding:12px 24px;border-radius:980px;
  transition:opacity .2s,transform .2s;
}
.btn{box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 1px 2px rgba(0,0,0,.5),0 8px 24px -10px rgba(220,220,230,.35)}
.btn:hover{text-decoration:none;filter:brightness(1.06)}
.btn:active{transform:scale(.98)}
.more{font-size:17px}
.more::after{content:" ›";font-size:1.15em;line-height:0}

/* ---------- Sections ---------- */
section{padding:110px 0}
.alt{background:var(--bg-alt)}
.head{text-align:center;max-width:720px;margin:0 auto 60px}
h1,h2,h3{font-weight:700;letter-spacing:-.028em;line-height:1.08}
h2{font-size:clamp(34px,5vw,52px)}
.head p{font-size:clamp(19px,2vw,21px);color:var(--muted);margin-top:16px;line-height:1.45}

/* Hero */
.hero{
  padding:120px 0 40px;text-align:center;position:relative;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(900px 520px at 12% -10%, #2C2C30 0%, transparent 65%),
    linear-gradient(160deg,#1E1E21 0%,#141416 55%,#0D0D0F 100%);
}
/* Emblème en filigrane, comme au recto de la carte */
.hero::before{
  content:"";position:absolute;z-index:-1;right:-12%;top:-4%;width:min(78vw,900px);aspect-ratio:1;
  background:url("/brand/embleme-blanc.svg") no-repeat center/contain;opacity:.035;
}
.grain{position:relative}
.grain::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
.hero .kicker{font-size:clamp(17px,2vw,21px);font-weight:600;color:var(--muted);letter-spacing:-.01em}
.hero h1{font-size:clamp(44px,8vw,88px);letter-spacing:-.04em;line-height:1.04;margin:10px auto 0;max-width:900px;padding-bottom:.06em}
.metal{background:var(--argent);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lede{font-size:clamp(19px,2.2vw,24px);color:var(--muted);max-width:680px;margin:24px auto 0;line-height:1.4;letter-spacing:-.018em}
.hero-photo{
  margin:80px auto 0;max-width:var(--max);padding:0 22px;
}
.hero-photo figure{
  border-radius:var(--radius);overflow:hidden;background:var(--bg-alt);
  aspect-ratio:16/8;position:relative;
}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
@media (max-width:640px){ .hero{padding-top:84px} .hero-photo{margin-top:56px} .hero-photo figure{aspect-ratio:4/5} }

/* Services */
.tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:20px}
.tile{
  grid-column:span 2;background:var(--bg);border-radius:var(--radius);
  padding:40px 34px 44px;display:flex;flex-direction:column;
}
.tile{background:var(--bg-alt);border:1px solid rgba(255,255,255,.04)}
.alt .tile{background:var(--tile)}
.tile.wide{grid-column:span 3}
.tile h3{font-size:clamp(24px,2.6vw,28px);margin-bottom:12px}
.tile p{color:var(--muted);font-size:17px}
.tile .label{font-size:14px;font-weight:600;color:var(--muted);margin-bottom:10px;letter-spacing:-.005em}
@media (max-width:900px){ .tile,.tile.wide{grid-column:span 3} }
@media (max-width:640px){ .tiles{grid-template-columns:1fr} .tile,.tile.wide{grid-column:auto;padding:32px 26px 36px} }

/* Méthode */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;list-style:none;counter-reset:s}
.steps li{counter-increment:s}
.steps li::before{
  content:counter(s);display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;border:1.5px solid var(--text);
  font-size:19px;font-weight:600;margin-bottom:22px;
}
.steps h3{font-size:21px;letter-spacing:-.02em;margin-bottom:8px}
.steps p{color:var(--muted);font-size:16px}
@media (max-width:900px){ .steps{grid-template-columns:repeat(2,1fr)} }
@media (max-width:540px){ .steps{grid-template-columns:1fr;gap:34px} }

/* À propos */
.about{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:center}
.about figure{border-radius:var(--radius);overflow:hidden;background:var(--bg-alt);aspect-ratio:4/5}
.about figure img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.about h2{margin-bottom:22px}
.about p{color:var(--muted);font-size:19px;line-height:1.5}
.about p+p{margin-top:16px}
.about strong{color:var(--text);font-weight:600}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:22px 30px;margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}
.facts dt{font-size:14px;color:var(--muted)}
.facts dd{font-size:17px;font-weight:500;margin-top:2px}
@media (max-width:820px){ .about{grid-template-columns:1fr;gap:40px} .about figure{max-width:420px;width:100%;margin:0 auto} }


/* FAQ */
.faq{max-width:780px;margin:0 auto;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  list-style:none;cursor:pointer;padding:26px 44px 26px 0;position:relative;
  font-size:clamp(19px,2vw,22px);font-weight:600;letter-spacing:-.02em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:6px;top:50%;width:10px;height:10px;margin-top:-7px;
  border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
  transform:rotate(45deg);transition:transform .25s;
}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.faq details p{color:var(--muted);font-size:17px;padding:0 44px 28px 0;max-width:680px}

/* Contact */
.contact{
  text-align:center;isolation:isolate;
  background:
    radial-gradient(700px 420px at 0% 0%, #2A2A2E 0%, transparent 70%),
    linear-gradient(135deg,#1F1F22 0%,#131315 55%,#09090A 100%);
}
.contact .mail{display:block;margin-top:30px;font-size:15px;color:var(--muted)}
.contact .mail a{color:var(--text)}

/* Pied de page */
footer{background:var(--bg-alt);color:var(--muted);font-size:12px;line-height:1.6;padding:28px 0 36px}
footer .row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;padding-top:16px;border-top:1px solid var(--line)}
footer nav ul{display:flex;flex-wrap:wrap;list-style:none}
footer nav li+li::before{content:"|";margin:0 10px;color:var(--line)}
footer a{color:var(--muted)}
footer a:hover{color:var(--text)}
footer .intro{padding-bottom:16px}

/* Pages simples (mentions, 404) */
.page{padding:96px 0 120px}
.page h1{font-size:clamp(36px,5vw,52px);margin-bottom:28px}
.prose{max-width:720px}
.prose h2{font-size:24px;letter-spacing:-.02em;margin:44px 0 12px}
.prose p,.prose li{color:var(--muted);font-size:17px}
.prose p+p{margin-top:12px}
.prose ul{padding-left:20px;margin-top:8px}
.prose strong{color:var(--text);font-weight:600}

/* Apparition douce au défilement */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *{transition:none!important}
}
