/* ═══════════════ LES SECTIONS ═══════════════ */

/* ── les vagues pastel, en fond de page. Fixe et sans coût : c'est un
      dégradé, pas un flou. Un filter:blur sur cette surface coûterait cher
      et vire au noir en rendu logiciel. ── */
.aura{
  position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(58% 42% at 78% 12%,rgba(255,109,190,.16),transparent 62%),
    radial-gradient(52% 40% at 12% 30%,rgba(139,107,255,.16),transparent 62%),
    radial-gradient(46% 36% at 88% 62%,rgba(255,196,110,.11),transparent 60%),
    radial-gradient(60% 44% at 26% 88%,rgba(139,107,255,.13),transparent 62%),
    linear-gradient(172deg,#FFFFFF 0%,#FAFAFE 40%,#F1F0FB 100%);
}

/* ── NAV ─────────────────────────────────────────────────────── */
.nav{
  position:fixed; top:14px; left:50%; transform:translateX(-50%);
  z-index:100; width:min(calc(100% - 2*var(--gut)),var(--maxw));
  display:flex; align-items:center; gap:18px;
  padding:9px 9px 9px 20px; border-radius:var(--r-pill);
  background:linear-gradient(150deg,rgba(255,255,255,.82),rgba(255,255,255,.56) 50%,
             rgba(240,238,252,.66));
  border:1px solid rgba(255,255,255,.75);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),var(--sh-2);
  transition:transform var(--d3) var(--e-out),box-shadow var(--d3) var(--e-out);
}
html.nav-hidden .nav{ transform:translate(-50%,-160%) }
.nav__logo{ display:flex; align-items:center; gap:10px; font-weight:600; font-size:15px }
.nav__mark{
  display:grid; place-items:center; width:30px; height:30px; border-radius:var(--r-pill);
  font-family:var(--dis); font-weight:600; font-size:13px; letter-spacing:-.03em;
  color:#fff; background:linear-gradient(140deg,var(--violet),var(--magenta));
  box-shadow:0 4px 12px -4px rgba(108,60,245,.55); flex:none;
}
.nav__links{ display:flex; gap:4px; margin-left:auto }
.nav__links a{ padding:9px 15px; border-radius:var(--r-pill); font-size:var(--f3);
  font-weight:500; color:var(--ink-2); transition:background var(--d1),color var(--d1) }
.nav__links a:hover{ background:rgba(255,255,255,.7); color:var(--ink) }
.nav__cta{ padding:12px 20px; font-size:var(--f3) }
.nav__burger{ display:none; width:40px; height:40px; border-radius:var(--r-pill);
  place-items:center; gap:5px; flex-direction:column }
.nav__burger i{ width:17px; height:2px; border-radius:2px; background:var(--ink) }
.menu{ display:none }

@media (max-width:1023px){
  .nav__links{ display:none }
  .nav__cta{ margin-left:auto }
  .nav__burger{ display:flex }
  .menu{ position:fixed; inset:74px var(--gut) auto; z-index:99; display:grid; gap:6px;
    padding:16px; border-radius:var(--r-xl);
    background:rgba(255,255,255,.94); box-shadow:var(--sh-3);
    opacity:0; visibility:hidden; transform:translateY(-10px);
    transition:opacity var(--d2) var(--e-out),transform var(--d2) var(--e-out),visibility var(--d2) }
  html.menu-open .menu{ opacity:1; visibility:visible; transform:none }
  .menu a{ padding:12px 14px; border-radius:var(--r-md); font-weight:500 }
  .menu .btn{ margin-top:6px }
}

/* ── HERO ────────────────────────────────────────────────────── */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center;
  padding-top:120px; padding-bottom:96px; overflow:hidden }
.hero__canvas{ position:absolute; right:0; top:50%; transform:translateY(-50%);
  width:min(50vw,720px); height:min(78vh,700px); z-index:0; pointer-events:none }
.hero__in{ position:relative; z-index:2 }
.hero__t{ margin-top:16px; max-width:12ch }
.hero__lead{ margin-top:22px; max-width:44ch }
.hero__cta{ margin-top:34px; display:flex; flex-wrap:wrap; gap:12px }
.hero__facts{ margin-top:52px; display:flex; flex-wrap:wrap; gap:clamp(24px,3.4vw,54px) }
.hero__facts div{ display:grid }
.hero__facts b{ font-family:var(--dis); font-size:clamp(26px,2.6vw,36px); font-weight:500;
  letter-spacing:-.03em; line-height:1.1 }
.hero__facts span{ font-size:var(--f2); color:var(--ink-3) }
.hero__scroll{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
  z-index:2 }
@media (max-width:1023px){
  .hero{ min-height:0; padding-top:104px; flex-direction:column; align-items:stretch }
  .hero__canvas{ position:relative; right:auto; top:auto; transform:none;
    width:100%; height:min(46vh,340px); margin-bottom:8px; order:-1 }
  .hero__scroll{ display:none }
}

/* ── LE CONSTAT ──────────────────────────────────────────────── */
.why__t{ margin-top:14px }
.why .lead{ margin-top:20px }
.why__row{ margin-top:clamp(36px,4vw,60px); display:grid; gap:20px;
  grid-template-columns:repeat(3,1fr) }
.why__card{ padding:clamp(24px,2.4vw,34px) }
.why__card b{ display:block; font-family:var(--dis); font-weight:500;
  font-size:clamp(34px,3.4vw,48px); letter-spacing:-.03em; line-height:1;
  background:linear-gradient(120deg,var(--violet),var(--magenta));
  -webkit-background-clip:text; background-clip:text; color:transparent }
.why__card p{ margin-top:14px; font-size:var(--f3); line-height:1.6; color:var(--ink-2) }
@media (max-width:900px){ .why__row{ grid-template-columns:1fr } }

/* ── TRAVAUX. C'est le point de rejet : les captures doivent être
      GRANDES, NETTES et évidemment cliquables. ── */
.work h2{ margin-top:14px } .work .lead{ margin-top:18px }
.work__grid{ margin-top:clamp(34px,4vw,56px); display:grid; gap:clamp(18px,2vw,28px);
  grid-template-columns:1fr 1fr }
.work__item{ display:block; border-radius:var(--r-xl); position:relative;
  transition:transform var(--d3) var(--e-out) }
.work__shot{ display:block; border-radius:var(--r-xl); overflow:hidden;
  box-shadow:var(--sh-3); background:var(--lav);
  transition:box-shadow var(--d3) var(--e-out) }
.work__shot img{ width:100%; height:auto; aspect-ratio:16/10;
  object-fit:cover; object-position:top center }
.work__item:hover{ transform:translateY(-6px) }
.work__item:hover .work__shot{ box-shadow:var(--sh-4) }
.work__meta{ position:absolute; left:18px; right:18px; bottom:18px;
  display:flex; align-items:baseline; justify-content:space-between; gap:14px;
  padding:14px 20px; border-radius:var(--r-md) }
.work__meta b{ font-size:var(--f3); font-weight:600 }
.work__meta span{ font-size:var(--f2); color:var(--ink-2); text-align:right }
.work__cta{ margin-top:clamp(30px,3vw,44px) }
@media (max-width:900px){
  .work__grid{ grid-template-columns:1fr }
  .work__meta{ flex-direction:column; align-items:flex-start; gap:2px }
  .work__meta span{ text-align:left }
}

/* ── CE QUI EST INCLUS ───────────────────────────────────────── */
.incl__in{ display:grid; gap:clamp(28px,4vw,64px);
  grid-template-columns:minmax(0,1fr) minmax(0,.88fr); align-items:center }
.incl__txt h2{ margin-top:14px } .incl__txt .lead{ margin-top:18px }
.incl__price{ margin-top:30px; display:flex; align-items:baseline; gap:16px;
  flex-wrap:wrap }
.incl__price b{ font-family:var(--dis); font-weight:500;
  font-size:clamp(42px,4.4vw,64px); letter-spacing:-.03em; line-height:1 }
.incl__price span{ font-size:14px; color:var(--ink-3); line-height:1.5 }
.incl__list{ list-style:none; padding:clamp(22px,2.2vw,32px) }
.incl__list li{ display:flex; align-items:baseline; justify-content:space-between;
  gap:18px; padding:15px 0; border-bottom:1px solid rgba(139,107,255,.14);
  font-size:var(--f3) }
.incl__list li:last-child{ border-bottom:0 }
.incl__list em{ font-style:normal; font-size:13px; color:var(--ink-3);
  text-decoration:line-through; white-space:nowrap }
.incl__tot{ margin-top:8px; padding-top:20px !important;
  border-top:2px solid var(--ink); font-weight:600 }
.incl__tot em{ text-decoration:none; font-family:var(--dis); font-size:var(--f6);
  font-weight:500; color:var(--ink) }
@media (max-width:900px){ .incl__in{ grid-template-columns:1fr } }

/* ── COMMENT ÇA SE PASSE ─────────────────────────────────────── */
.how h2{ margin-top:14px }
.how__steps{ margin-top:clamp(34px,4vw,56px); list-style:none; display:grid; gap:18px;
  grid-template-columns:repeat(2,1fr) }
.how__step{ padding:clamp(24px,2.4vw,34px); position:relative }
.how__step b{ display:inline-grid; place-items:center; width:38px; height:38px;
  border-radius:var(--r-pill); font-family:var(--dis); font-size:14px; font-weight:600;
  color:#fff; background:linear-gradient(140deg,var(--violet),var(--magenta));
  box-shadow:0 6px 16px -6px rgba(108,60,245,.5); margin-bottom:16px }
.how__step p{ margin-top:10px; font-size:var(--f3); line-height:1.6; color:var(--ink-2) }
@media (max-width:900px){ .how__steps{ grid-template-columns:1fr } }

/* ── AVIS ────────────────────────────────────────────────────── */
.says h2{ margin-top:14px }
.says__row{ margin-top:clamp(30px,3.4vw,48px); display:grid; gap:20px;
  grid-template-columns:1fr 1fr }
.says__card{ padding:clamp(26px,2.6vw,38px) }
.says__card blockquote{ font-family:var(--dis); font-weight:400;
  font-size:clamp(19px,1.7vw,24px); line-height:1.42; letter-spacing:-.015em }
.says__card figcaption{ margin-top:22px; padding-top:18px;
  border-top:1px solid rgba(139,107,255,.16); display:grid }
.says__card figcaption b{ font-size:var(--f3); font-weight:600 }
.says__card figcaption span{ font-size:var(--f2); color:var(--ink-3) }
@media (max-width:900px){ .says__row{ grid-template-columns:1fr } }

/* ── QUESTIONS ───────────────────────────────────────────────── */
.faq h2{ margin-top:14px }
.faq__list{ margin-top:clamp(30px,3.4vw,48px); max-width:860px }
.faq__row{ border-bottom:1px solid rgba(139,107,255,.18);
  display:grid; grid-template-rows:auto 0fr;
  transition:grid-template-rows 320ms var(--e-out) }
.faq__row.open{ grid-template-rows:auto 1fr }
.faq__q{ display:flex; align-items:center; justify-content:space-between; gap:20px;
  width:100%; padding:22px 0; text-align:left; font-size:17px; font-weight:500 }
.faq__q i{ width:26px; height:26px; border-radius:var(--r-pill); flex:none;
  display:grid; place-items:center; background:rgba(139,107,255,.12);
  color:var(--violet); font-style:normal; font-size:17px; line-height:1;
  transition:transform var(--d2) var(--e-out),background var(--d2) }
.faq__row.open .faq__q i{ transform:rotate(45deg); background:var(--violet); color:#fff }
.faq__a{ overflow:hidden }
.faq__a p{ padding-bottom:24px; max-width:62ch; color:var(--ink-2); font-size:var(--f3) }

/* ── CONTACT ─────────────────────────────────────────────────── */
.end{ padding-block:clamp(80px,9vw,150px) }
.end__in{ display:grid; justify-items:start }
.end .lead{ margin-top:18px }
.end__num{ margin-top:34px; display:grid; gap:6px; padding:26px 42px;
  border-radius:var(--r-xl);
  transition:transform var(--d3) var(--e-out),box-shadow var(--d3) var(--e-out) }
.end__num:hover{ transform:translateY(-5px); box-shadow:var(--sh-4) }
.end__num b{ font-family:var(--dis); font-weight:500;
  font-size:clamp(30px,3.6vw,50px); letter-spacing:-.028em; line-height:1.06 }
.end__alt{ margin-top:20px }
.end__alt a{ color:var(--violet); text-decoration:underline; text-underline-offset:3px }

/* ── PIED ────────────────────────────────────────────────────── */
.foot{ padding-top:clamp(50px,5vw,80px); padding-bottom:34px;
  border-top:1px solid rgba(139,107,255,.14) }
.foot__in{ display:grid; gap:clamp(26px,3vw,50px);
  grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr)) }
.foot__brand .nav__mark{ width:38px; height:38px; font-size:15px; margin-bottom:14px }
.foot__brand p{ max-width:34ch }
.foot__in a{ display:block; font-size:var(--f3); line-height:2.05; color:var(--ink-2) }
.foot__in a:hover{ color:var(--ink) }
.foot__in .label{ margin-bottom:8px }
.foot__legal{ margin-top:38px; padding-top:20px;
  border-top:1px solid rgba(139,107,255,.14); color:var(--ink-3); font-size:var(--f2) }
@media (max-width:900px){ .foot__in{ grid-template-columns:1fr } }

/* ── BARRE COLLANTE MOBILE ───────────────────────────────────── */
.stick{ position:fixed; left:0; right:0; bottom:0; z-index:98; display:none;
  align-items:center; justify-content:space-between; gap:14px;
  padding:11px var(--gut) calc(11px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94); border-top:1px solid rgba(139,107,255,.16);
  box-shadow:0 -8px 24px -12px rgba(25,23,52,.18) }
.stick b{ font-size:var(--f2); font-weight:600 }
.stick .btn{ padding:11px 18px; font-size:14px }
@media (max-width:1023px){
  html.past-hero .stick{ display:flex }
  html.past-hero .foot{ padding-bottom:86px }
}

/* L'étiquette d'un projet est posée SUR une capture, parfois très sombre
   (ypdacademy). Un verre translucide n'y suffit pas : on l'opacifie assez pour
   que le nom de domaine reste lisible quelle que soit l'image dessous. */
.work__meta{
  background:linear-gradient(150deg,rgba(255,255,255,.96),rgba(255,255,255,.90) 50%,
             rgba(243,241,253,.94));
  border-color:rgba(255,255,255,.9);
}
.work__meta span{ color:var(--ink-3) }

/* ═══════════════════════════════════════════════════════════════════
   RETOURS FLAVIEN — passe 1.
   Le logo en pastille dégradée, il l'a trouvé « dégueulasse » deux fois.
   Sur realtis.ai le logo est le MOT, en typo, et il devient un logotype
   géant fantôme coupé par le bas de la page. On fait pareil.
   ═══════════════════════════════════════════════════════════════════ */

/* ── LE LOGO : plus de badge, jamais ── */
.nav__logo{ display:flex; align-items:baseline; gap:7px; font-family:var(--dis);
  letter-spacing:-.03em; line-height:1 }
.nav__logo b{ font-weight:600; font-size:var(--f5); color:var(--ink) }
.nav__logo span{ font-family:var(--ui); font-weight:500; font-size:var(--f3);
  letter-spacing:-.005em; color:var(--ink-2) }

/* ── LA NAV : beaucoup plus étroite. Elle faisait 1280 px. ── */
.nav{ width:auto; max-width:calc(100% - 2*var(--gut));
  padding:8px 8px 8px 20px; gap:8px }
.nav__links{ margin-left:14px; gap:2px }
.nav__links a{ padding:8px 13px; font-size:14px }
.nav__cta{ margin-left:6px; padding:11px 18px; font-size:14px }

/* ── LE PIED DE PAGE : le logotype géant, tranché par la fin de page ── */
.foot{ overflow:hidden; position:relative }
.foot__brand .nav__logo{ margin-bottom:14px }


/* ── LE CTA FINAL : centré, et le numéro n'apparaît nulle part ── */
.end__in{ justify-items:center; text-align:center; max-width:760px; margin-inline:auto }
.end__in .lead{ margin-inline:auto; text-align:center; max-width:46ch }
.end__in h2 i{ font-style:normal; color:var(--ink-3) }
.end__btn{ margin-top:34px; padding:19px 34px; font-size:var(--f4) }
.end__alt{ margin-top:18px; color:var(--ink-3) }
.end__alt a{ color:var(--violet); text-decoration:underline; text-underline-offset:3px }

/* ── LA FAQ : centrée, comme sur Realtis ── */
.faq .label,.faq h2{ text-align:center }
.faq h2 i{ font-style:normal; color:var(--ink-3) }
.faq__list{ margin-inline:auto }
/* `.foot__in a{display:block}` écrasait le flex du logotype : « 67Web Studio »
   se collait. On lui rend sa disposition. */
.foot__brand .nav__logo{ display:inline-flex }
.foot__brand .nav__logo b,.foot__brand .nav__logo span{ display:inline; line-height:1 }
