/* ==========================================================================
   ArtProMac — design system (v2, flat)
   Flat, matte design — no glassmorphism, no blur, no glow shadows.
   Gotham Light is the brand font;
   Inter/-apple-system is the fallback stack if the .woff isn't present yet.
   ========================================================================== */

@font-face{
  font-family: 'Gotham';
  src: url('fonts/gotham-extralight-webfont.woff') format('woff');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: 'Gotham';
  src: url('fonts/gotham-light-webfont.woff') format('woff');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

:root{
  --blue: rgb(99,182,226);
  --blue-deep: rgb(58,140,186);
  --ink: rgb(22,22,22);
  --ink-soft: rgb(90,90,90);
  --bg: #ffffff;
  --bg-soft: #f7f7f7;
  --line: #e3e3e3;
  --dark: #1a1a1a;
  --max: 1120px;
  --maxw-text: 720px;
  --radius: 4px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *{ animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

body{
  margin:0;
  font-family: 'Gotham', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
  font-weight: 200;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}

img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }

.wrap{ max-width: var(--max); margin: 0 auto; padding: 0 24px; }
.wrap--text{ max-width: var(--maxw-text); margin: 0 auto; padding: 0 24px; }

/* ---------- Typography ---------- */
h1,h2,h3{ font-weight: 200; letter-spacing: 0; margin: 0; color: var(--ink); }
h1{ font-size: 40px; font-weight: 200; line-height: 1.2; color: var(--ink); }
h2{ font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 200; line-height: 1.25; }
h3{ font-size: 1.1rem; font-weight: 200; }
@media (max-width: 640px){ h1{ font-size: 30px; } }
p{ margin: 0 0 1em; font-size: 1rem; font-weight: 200; color: var(--ink-soft); }
.lede{ font-size: 1rem; color: var(--ink-soft); font-weight: 200; }
.eyebrow{ color: var(--blue-deep); font-weight: 200; font-size:1rem; margin: 0 0 10px; }

/* ---------- Client marquee (scrolling strip) ---------- */
/* ---------- Client marquee (scrolling strip) ---------- */
.client-marquee {
  overflow: hidden;
  border-top: 1px solid var(--bg);
  border-bottom: 1px solid var(--bg);
  padding: 26px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.client-marquee .track {
  display: flex;
  align-items: center;
  gap: 48px;
  width: max-content;
  will-change: transform;
  /* Durée augmentée à 120s pour un défilement fluide et lent */
  animation: marquee 140s linear infinite;
}

.client-marquee:hover .track {
  animation-play-state: paused;
}

.client-marquee .track span {
  font-size: 1rem;
  font-weight: 300;
  color: #000000;
  white-space: nowrap;
  flex-shrink: 0; /* Empêche le chevauchement ou la déformation des noms */
  padding-left: 50px;
   padding-top: 50px;
  text-transform: uppercase;
}

/* Animation fluide sans saut */
@keyframes marquee {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-50%, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .client-marquee {
    overflow-x: auto;
    -webkit-mask-image: none;
    mask-image: none;
  }
  .client-marquee .track {
    animation: none;
  }
}

@keyframes marquee{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce){
  .client-marquee{ overflow-x:auto; -webkit-mask-image:none; mask-image:none; }
  .client-marquee .track{ animation: none; }
}

/* ---------- Header / nav (flat, no blur) ---------- */
.site-header{
  position: sticky; top:0; z-index: 100;
  background: #ffffff;
  border-bottom: 1px solid var(--line);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height: 62px;
}
.logo img{ height: 17px; width:auto; }
nav.primary{ display:flex; align-items:center; gap: 26px; }
nav.primary a{
  font-size: .84rem; font-weight: 200; color: var(--ink);
  opacity:.78; transition: opacity .15s var(--ease);
  white-space: nowrap;
}
nav.primary a:hover{ opacity: 1; }
nav.primary a.active{ opacity: 1; color: var(--blue-deep); }
.nav-toggle{ display:none; }
.header-cta{
  font-size: .8rem; padding: 8px 18px; border-radius: var(--radius);
  background: var(--blue); color:#fff !important; font-weight: 200; opacity:1 !important;
}
.header-cta:hover{ background: var(--blue-deep); }

@media (max-width: 860px){
  nav.primary{
    position: fixed; inset: 62px 0 0 0; background: #fff;
    flex-direction: column; align-items: flex-start; gap: 0;
    padding: 10px 24px 30px; transform: translateY(-8px);
    opacity: 0; pointer-events: none; transition: all .25s var(--ease);
    overflow-y:auto;
  }
  nav.primary a{ padding: 14px 0; width:100%; border-bottom: 1px solid var(--line); opacity:1; font-size:1rem;}
  nav.primary.open{ opacity:1; pointer-events:auto; transform: translateY(0); }
  .nav-toggle{
    display:block; background:none; border:0; width:28px; height:20px; position:relative; cursor:pointer;
  }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
    content:''; position:absolute; left:0; right:0; height:1.5px; background:var(--ink); transition: all .25s var(--ease);
  }
  .nav-toggle span{ top:9px; }
  .nav-toggle span::before{ top:-7px; }
  .nav-toggle span::after{ top:7px; }
  .nav-toggle.open span{ background:transparent; }
  .nav-toggle.open span::before{ transform: rotate(45deg); top:0; }
  .nav-toggle.open span::after{ transform: rotate(-45deg); top:0; }
}

/* ---------- Hero (flat) ---------- */


/* ---------- Hero (flat) ---------- */
.hero {
  position: relative;
  padding: 76px 0 64px;
  background: var(--bg);
}

.hero--page { 
  padding: 64px 0 48px; 
  border-bottom: 1px solid var(--bg); 
}

/* Centrage global du Hero (s'applique avec ou sans la classe hero--center) */
.hero .wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
}

.hero .eyebrow,
.hero h1,
.hero .lede,
.hero .reveal,
.hero .reveal.in {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  align-self: center;
}

.hero h1 { 
  max-width: 760px; 
  margin-bottom: 18px; 
}

.hero .lede { 
  max-width: 560px; 
}

/* Centrage spécifique du bouton et des actions dans la section Hero */
.hero-actions {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100%;
  margin-top: 30px;
  gap: 14px;
}

/* Si le bouton est contenu dans un bloc parent spécifique */
.hero .hero-actions,
.hero--page .hero-actions {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.btn{
  display:inline-block; padding: 12px 24px; border-radius: var(--radius);
  font-size: .9rem; font-weight: 200; transition: background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
}
.btn-primary{ background: var(--blue); color:#fff; }
.btn-primary:hover{ background: var(--blue-deep); }
.btn-ghost{ border: 1px solid var(--line); color: var(--ink); }
.btn-ghost:hover{ border-color: var(--blue); color: var(--blue-deep); }

.hero-visual{
  margin: 48px 0 0; max-width: 100%;
  border-radius: var(--radius);
  overflow:hidden;
  border: 1px solid var(--line);
}
.hero-visual img{ width:100%; display:block; }
.hero-visual.wide{ max-width: none; }

/* ---------- Sections ---------- */
section{ padding: 72px 0; }
section.soft{ background: var(--bg-soft); }
section.dark{ background: var(--ink); color: #fff; }
section.dark h2, section.dark p{ color:#fff; }
.section-head{ max-width: 680px; margin: 0 auto 48px; text-align:left; }
.section-head.center{ text-align:center; margin-left:auto; margin-right:auto; }
.section-head.left{ text-align:left; margin: 0 0 40px; }

/* Feature list — flat, dash bullets, no icon bubbles (Artlogic-style) */
.grid{ display:grid; gap: 32px; }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-2{ grid-template-columns: repeat(2, 1fr); }
@media (max-width: 860px){ .grid-3, .grid-2{ grid-template-columns: 1fr; } }

.feature{ padding: 0; border-top: 1px solid var(--line); padding-top: 22px; }
.feature h3{ margin-bottom: 6px; font-size: 1rem; }
.feature p{ color: var(--ink-soft); font-size: .92rem; margin:0; }

/* Simple flat bullet list, used instead of icon-card grids where possible */
.flat-list{ list-style:none; padding:0; margin:0; columns: 2; column-gap: 48px; }
.flat-list li{ break-inside: avoid; padding: 10px 0 10px 18px; position:relative; border-top:1px solid var(--line); font-size:.94rem; color:var(--ink-soft); }
.flat-list li::before{ content:'–'; position:absolute; left:0; color: var(--blue-deep); }
.flat-list li strong{ color: var(--ink); font-weight: 200; }
@media (max-width:700px){ .flat-list{ columns:1; } }

/* ---------- Split media/text rows ---------- */
.split {
  display: flex;
  align-items: center;
  gap: 56px;
  padding: 56px 0;
  border-bottom: 1px solid var(--line);
}

.split > * {
  flex: 1;
}

/* Inversion de l'ordre d'affichage pour alterner la photo */
.split.reverse {
  flex-direction: row-reverse;
}

.split-media img {
  border-radius: var(--radius);
  border: 1px solid var(--line);
}

.split h3 {
  font-size: 1.35rem;
  font-weight: 200;
  margin-bottom: 14px;
}

.split ul {
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

.split ul li {
  padding-left: 18px;
  position: relative;
  margin-bottom: 10px;
  color: var(--ink-soft);
  font-size: .94rem;
}

.split ul li::before {
  content: '–';
  position: absolute;
  left: 0;
  color: var(--blue-deep);
}

@media (max-width: 860px) {
  .split, 
  .split.reverse {
    flex-direction: column;
    gap: 26px;
  }
}

/* Pricing — flat cards, no shadow, no lift */
.price-card{
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 30px 26px; background:#fff; display:flex; flex-direction:column; height:100%;
}
.price-card.featured{ border-color: var(--blue); border-width: 2px; position:relative; }
.price-card.featured::before{
  content:'Recommandée'; position:absolute; top:-12px; left:26px;
  background: var(--blue); color:#fff; font-size:.7rem; font-weight: 200;
  padding: 3px 10px; border-radius: var(--radius);
}
.price-card h3{ font-size:1rem; color: var(--ink-soft); font-weight: 200; margin-bottom:6px; }
.price-amount{ font-size: 2.1rem; font-weight: 200; margin: 4px 0 18px; }
.price-amount span{ font-size: .92rem; color: var(--ink-soft); font-weight: 200; }
.price-card ul{ list-style:none; padding:0; margin: 0 0 24px; flex:1; }
.price-card ul li{ font-size:.86rem; color: var(--ink-soft); padding: 8px 0; border-top: 1px solid var(--bg-soft); }
.price-card ul li:first-child{ border-top:0; }

/* Table (comparison) */
.compare{ width:100%; border-collapse: collapse; font-size:.86rem; }
.compare th, .compare td{ padding: 13px 12px; border-bottom:1px solid var(--line); text-align:left; }
.compare th{ font-weight: 200; color:var(--ink-soft); font-size:.76rem; }
.compare td.center, .compare th.center{ text-align:center; }

/* Clients page — grille de gauche à droite sur 3 colonnes */
.people-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3 colonnes de largeur égale */
  gap: 0 44px; /* Alignement de l'espace horizontal entre colonnes */
}

.people-list .entry {
padding-top: 20px;    /* Espace au-dessus du texte (sous la ligne) */
  padding-bottom: 20px; /* Espace en-dessous du texte */
    border-top: 1px solid var(--bg);
}

/* Style du nom (Gotham Light ~17px) */
.people-list .name {
  font-family: 'Gotham', -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 300; /* Gotham Light */
  font-size: 1.0625rem; /* Equivalent 17px */
  color: var(--ink);
  line-height: 1.3;
}

/* Style de la ville (Gris 100 ~14px) */
.people-list .place {
  font-family: 'Gotham', -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 200; /* Gotham ExtraLight */
  font-size: 0.875rem; /* Equivalent 14px */
  color: var(--ink-soft);
  margin-top: 4px;
}

/* Responsive mobile & tablette */
@media (max-width: 860px) {
  .people-list {
    grid-template-columns: repeat(2, 1fr); /* 2 colonnes sur tablette */
  }
}

@media (max-width: 560px) {
  .people-list {
    grid-template-columns: 1fr; /* 1 seule colonne sur mobile */
  }
}
/* FAQ accordion */
.faq-item{ border-top: 1px solid var(--line); }
.faq-item:last-child{ border-bottom: 1px solid var(--line); }
.faq-q{
  width:100%; text-align:left; background:none; border:0; padding: 20px 0;
  display:flex; justify-content:space-between; align-items:center; gap:20px;
  font-size: .98rem; font-weight: 200; cursor:pointer; color: var(--ink);
}
.faq-q .plus{ font-size:1.2rem; font-weight: 200; color: var(--blue-deep); transition: transform .2s var(--ease); flex:none; }
.faq-item.open .faq-q .plus{ transform: rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition: max-height .3s var(--ease); }
.faq-a-inner{ padding: 0 0 20px; color: var(--ink-soft); font-size:.92rem; }
.faq-a-inner ul{ padding-left: 18px; }
.faq-a-inner a{ color: var(--blue-deep); text-decoration: underline; }

/* Forms */
.form-field{ margin-bottom: 18px; }
.form-field label{ display:block; font-size:.82rem; color: var(--ink-soft); margin-bottom:6px; }
.form-field input, .form-field textarea{
  width:100%; padding: 11px 13px; border-radius: var(--radius); border: 1px solid var(--line);
  font-family: inherit; font-size: .95rem; background: #fff; color: var(--ink);
  transition: border-color .2s var(--ease);
}
.form-field input:focus, .form-field textarea:focus{
  outline: none; border-color: var(--blue);
}
.form-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
button.btn{ border:0; cursor:pointer; font-family: inherit; }

/* CTA band */
.cta-band{
  background: var(--blue); color:#fff; text-align:left; padding: 48px 0;
}
.cta-band .wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.cta-band h2{ color:#fff; margin-bottom:6px; }
.cta-band p{ color: rgba(255,255,255,.92); margin:0; }
.cta-band .btn-ghost{ border-color: rgba(255,255,255,.6); color:#fff; flex:none; }
.cta-band .btn-ghost:hover{ border-color:#fff; background: rgba(255,255,255,.1); color:#fff; }

/* Footer — minimal, as specified */
footer{ background: #000; color: rgba(255,255,255,.7); padding: 20px 0; font-size: .76rem; }
footer .wrap{ text-align:center; }
footer a{ color: rgba(255,255,255,.85); }
footer a:hover{ color:#fff; }

/* Reveal-on-scroll (fondu) */
.reveal{ opacity:0; transform: translateY(18px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.in{ opacity:1; transform: translateY(0); }
.reveal-scale{ opacity:0; transform: scale(.98); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal-scale.in{ opacity:1; transform: scale(1); }

.page-title{ text-align:inherit; }

.divider{ height:1px; background: var(--line); border:0; margin: 0; }
.small{ font-size:.8rem; color: var(--ink-soft); }
.center{ text-align:center; }
.mt-0{margin-top:0;}