:root {
  --law-ink: #0f2c4a;
  --law-ink-soft: #58728d;
  --law-blue: #1464bb;
  --law-blue-dark: #0f529c;
  --law-green: #1a7f37;
  --law-green-dark: #14692d;
  --law-sky: #cfe7f6;
  --law-sky-light: #f8fcff;
  --law-yellow: #ffca2e;
  --law-line: rgba(13, 47, 83, 0.14);
  --law-paper: #ffffff;
  --law-shadow: 0 18px 50px rgba(20, 100, 187, 0.12);
}

html { scroll-behavior: smooth; }
body.page-ads-landing {
  margin: 0;
  color: var(--law-ink);
  background: var(--law-sky-light);
  font-family: "Outfit", sans-serif;
  -webkit-font-smoothing: antialiased;
  padding-bottom: 0;
}
.page-ads-landing *, .page-ads-landing *::before, .page-ads-landing *::after { box-sizing: border-box; }
.page-ads-landing img { display: block; max-width: 100%; }
.page-ads-landing a { color: inherit; }
.page-ads-landing main { overflow: clip; }

/* Le header des landing pages doit rester entièrement contenu dans sa pilule. */
.page-ads-landing main > header { width: min(1040px, calc(100% - 40px)); max-width: none; }
.page-ads-landing .glass-nav { width: 100%; max-width: 100%; min-width: 0; }
.page-ads-landing .glass-nav .logo { min-width: 0; }
.page-ads-landing .glass-nav .nav-links { flex: 0 0 auto; min-width: 0; }
.page-ads-landing .glass-nav .header-btn {
  flex: 0 1 auto;
  min-width: 0;
  color: #fff !important;
  white-space: nowrap;
}
.page-ads-landing .glass-nav > .header-btn,
.page-ads-landing .glass-nav > .header-btn:visited,
.page-ads-landing .glass-nav > .header-btn:hover,
.page-ads-landing .glass-nav > .header-btn:focus-visible {
  color: #fff !important;
}

.law-shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.law-section { padding: clamp(80px, 9vw, 132px) 0; }
.law-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 18px;
  padding: 6px 14px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 999px;
  color: var(--law-ink);
  background: rgba(255,255,255,.62);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .02em;
}
.law-eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--law-yellow); }
.law-heading { max-width: 720px; margin-bottom: 48px; }
.law-heading--center { margin-inline: auto; text-align: center; }
.law-heading--center .law-eyebrow { justify-content: center; }
.law-heading h2, .law-rules__content h2, .law-team__copy h2, .law-conversion__copy h2 {
  margin: 0;
  color: var(--law-ink);
  font-size: clamp(2.05rem, 4vw, 4rem);
  line-height: .99;
  letter-spacing: -.045em;
  font-family: "acumin-pro", "Outfit", sans-serif;
}
.law-heading > p:last-child, .law-rules__content > p, .law-team__copy > p, .law-conversion__copy > p {
  color: var(--law-ink-soft);
  font-size: 1.08rem;
  line-height: 1.65;
}


.law-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 14px 24px;
  border: 1px solid var(--law-blue);
  border-radius: 999px;
  color: #fff !important;
  background: var(--law-blue);
  box-shadow: 0 4px 18px rgba(20,100,187,.24);
  font: inherit;
  font-weight: 900;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
  cursor: pointer;
}
.law-button:hover { transform: translateY(-2px); background: var(--law-blue-dark); box-shadow: 0 9px 25px rgba(20,100,187,.32); }
.law-button--small { min-height: 44px; padding: 10px 18px; font-size: .88rem; }
.law-button--ghost { color: var(--law-ink) !important; background: #fff; border-color: var(--law-line); box-shadow: none; }
.law-button--ghost { color: var(--law-blue) !important; border-color: rgba(20,100,187,.16); }
.law-button--ghost:hover { color: var(--law-blue-dark) !important; background: var(--law-sky-light); }
.law-button--full { width: 100%; border: 0; }

.law-hero {
  position: relative;
  height: 162vh;
  min-height: 1180px;
  overflow: clip;
  background: linear-gradient(180deg, #dff2ff 0%, #cfe7f6 38%, #edf8ff 76%, #f8fcff 100%);
}
.law-hero__stage {
  position: sticky;
  top: 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 126px 0 42px;
  overflow: hidden;
}
.law-hero__stage::after {
  content: "";
  position: absolute;
  width: 460px;
  height: 460px;
  right: -210px;
  bottom: -250px;
  border: 44px solid rgba(255,255,255,.26);
  border-radius: 50%;
}
.law-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(480px, .95fr); align-items: center; gap: clamp(46px, 6vw, 92px); }
.law-hero__content { position: relative; z-index: 2; }
.law-hero h1 { margin: 0 0 24px; max-width: 680px; color: var(--law-ink); font-family: "acumin-pro", "Outfit", sans-serif; font-weight: 900; font-size: clamp(2.9rem, 5vw, 4.65rem); line-height: 1.01; letter-spacing: -.045em; }
.law-cloud { position: absolute; z-index: 0; width: 150px; height: 42px; border-radius: 100px; background: rgba(255,255,255,.6); pointer-events: none; }
.law-cloud::before, .law-cloud::after { content: ""; position: absolute; border-radius: 50%; background: inherit; }
.law-cloud::before { width: 58px; height: 58px; top: -29px; left: 25px; }
.law-cloud::after { width: 76px; height: 68px; top: -34px; left: 60px; }
.law-cloud--one { top: 18%; left: -45px; }
.law-cloud--two { top: 12%; right: 5%; width: 120px; height: 34px; opacity: .65; }
.law-cloud--three { bottom: 13%; left: 38%; width: 105px; height: 30px; opacity: .42; }
.law-hero__promise { margin: 0 0 18px; max-width: 650px; color: var(--law-ink); font-size: clamp(1.28rem, 2vw, 1.72rem); font-weight: 700; line-height: 1.25; }
.law-hero__promise strong { padding: 0 .1em; background: linear-gradient(transparent 57%, rgba(255, 202, 46, .72) 57%); font-size: 1.06em; font-weight: 900; }
.law-hero__copy { max-width: 610px; margin: 0 0 26px; color: var(--law-ink-soft); font-size: 1.06rem; line-height: 1.62; }
.law-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 22px; padding: 0; margin: 0 0 30px; list-style: none; }
.law-checks li { position: relative; padding-left: 25px; font-size: .96rem; font-weight: 700; }
.law-checks li::before { content: "✓"; position: absolute; left: 0; top: -2px; display: grid; place-items: center; width: 19px; height: 19px; border-radius: 50%; color: var(--law-green); background: #fff; font-size: .75rem; }
.law-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.law-reassurance { margin: 12px 0 0; color: var(--law-ink-soft); font-size: .86rem; }

.law-hero__right { position: relative; z-index: 1; min-height: 560px; }
.law-hero__product { position: absolute; z-index: 1; inset: 0; min-height: 520px; transition: opacity .48s ease, transform .58s cubic-bezier(.22,.8,.25,1); }
.law-hero-carousel, .law-hero-carousel__track { position: relative; width: 100%; min-height: 560px; }
.law-hero-carousel__track { overflow: visible; }
.law-hero-design {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(34px) scale(.98);
  transition: opacity .36s ease, transform .48s cubic-bezier(.22,.8,.25,1), visibility 0s linear .48s;
}
.law-hero-design.is-active {
  z-index: 2;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
  transition-delay: 0s;
}
.law-hero-carousel__next {
  position: absolute;
  z-index: 8;
  top: 49%;
  right: -50px;
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 2px solid rgba(20,100,187,.2);
  border-radius: 50%;
  color: #fff;
  background: var(--law-blue);
  box-shadow: 0 14px 32px rgba(20,100,187,.3);
  cursor: pointer;
  transform: translateY(-50%);
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.law-hero-carousel__next:hover { background: var(--law-blue-dark); box-shadow: 0 18px 38px rgba(20,100,187,.38); transform: translateY(-50%) translateX(4px); }
.law-hero-carousel__next:focus-visible { outline: 3px solid #fff; box-shadow: 0 0 0 6px rgba(20,100,187,.35); }
.law-hero-carousel__next svg { width: 24px; height: 24px; }
.law-hero-carousel__pagination {
  position: absolute;
  z-index: 8;
  right: 18px;
  bottom: -5px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 8px 22px rgba(13,47,83,.1);
}
.law-hero-carousel__pagination button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: #a9bfd2; cursor: pointer; transition: width .2s ease, background .2s ease; }
.law-hero-carousel__pagination button.is-active { width: 22px; border-radius: 999px; background: var(--law-blue); }
.law-hero-design__placeholder { min-height: 316px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; color: var(--law-ink-soft); background: linear-gradient(rgba(20,100,187,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(20,100,187,.055) 1px, transparent 1px), #f8fcff; background-size: 22px 22px; text-align: center; }
.law-hero-design__placeholder span { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 3px; border: 2px dashed rgba(20,100,187,.35); border-radius: 15px; color: var(--law-blue); background: #fff; font-size: 1.6rem; }
.law-hero-design__placeholder strong { color: var(--law-ink); font-size: 1.35rem; }
.law-hero-design__placeholder small { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.law-hero__form { position: absolute; z-index: 2; inset: -18px -22px; display: flex; flex-direction: column; justify-content: center; padding: 28px; overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: 32px; color: #fff; background: linear-gradient(145deg, #0d2f53 0%, #123f70 100%); box-shadow: 0 32px 75px rgba(13,47,83,.3); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(34px) scale(.975); transition: opacity .48s ease, transform .58s cubic-bezier(.22,.8,.25,1), visibility 0s linear .5s; }
.law-hero__form::before { position: absolute; inset: -42% -30% auto auto; width: 310px; height: 310px; border-radius: 50%; background: rgba(98,181,241,.13); content: ""; pointer-events: none; }
.law-hero__form-heading { position: relative; z-index: 1; margin: 0 0 16px; }
.law-hero__form-heading .law-eyebrow { margin-bottom: 11px; }
.law-hero__form-heading h2 { max-width: 520px; margin: 0 0 8px; color: #fff; font-family: "acumin-pro", "Outfit", sans-serif; font-size: clamp(1.8rem, 3vw, 2.65rem); line-height: 1.02; letter-spacing: -.04em; }
.law-hero__form-heading > p:last-child { margin: 0; color: rgba(255,255,255,.74); font-size: .92rem; }
.law-form.law-form--hero { position: relative; z-index: 1; padding: 14px; box-shadow: 0 20px 52px rgba(0,0,0,.2); }
.law-form.law-form--hero .law-form__field { margin-bottom: 3px; }
.law-form.law-form--hero input,
.law-form.law-form--hero select { height: 40px; }
.law-form.law-form--hero .law-button { min-height: 50px; padding-block: 11px; }
.law-form.law-form--hero .law-form__privacy { margin-top: 7px; margin-bottom: 0; }
.law-hero.is-form-visible .law-hero__product { opacity: 0; pointer-events: none; transform: translateY(-38px) scale(.965); }
.law-hero.is-form-visible .law-hero__form { opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition-delay: .08s, .08s, 0s; }
.law-browser { overflow: hidden; border: 1px solid rgba(13, 47, 83, .15); border-radius: 18px; background: #fff; box-shadow: var(--law-shadow); }
.law-browser__bar { height: 38px; display: flex; align-items: center; gap: 6px; padding: 0 14px; border-bottom: 1px solid var(--law-line); color: #6b8093; font-size: .7rem; }
.law-browser__bar i { width: 7px; height: 7px; border-radius: 50%; background: #ff756d; }
.law-browser__bar i:nth-child(2) { background: #ffd057; }
.law-browser__bar i:nth-child(3) { background: #5dce74; }
.law-browser__bar span { flex: 1; margin-left: 8px; overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.law-browser > img, .law-browser > video { display: block; width: 100%; height: auto; aspect-ratio: 1.68 / 1; object-fit: cover; object-position: top; }
.law-browser--hero { position: absolute; width: min(100%, 590px); right: 24px; top: 46px; padding: 10px; padding-top: 0; background: #f2f7fb; transform: rotate(1.2deg); }
.law-browser--hero > img, .law-browser--hero > video {
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(13,47,83,.08);
  border-radius: 10px;
  object-fit: cover;
  object-position: center top;
}
.law-phone { position: absolute; z-index: 3; width: 180px; height: 355px; right: 24px; bottom: 2px; padding: 8px 4px 5px; border: 2px solid #102d4b; border-radius: 26px; background: #102d4b; box-shadow: 0 24px 50px rgba(13, 47, 83, .3); transform: rotate(-3deg); }
.law-phone__speaker { position: absolute; z-index: 2; top: 4px; left: 50%; width: 44px; height: 9px; border-radius: 10px; background: #102d4b; transform: translateX(-50%); }
.law-phone img { width: 100%; height: 100%; border-radius: 20px; background: #fff; object-fit: contain; object-position: center top; }
.law-phone.law-phone--project { right: -24px; bottom: -28px; width: 150px; height: 296px; }
.law-phone.law-phone--project-cover { overflow: hidden; }
.law-phone.law-phone--project-cover img { object-fit: cover; object-position: center top; transform: scale(1.05); transform-origin: left top; }
.law-product-note { position: absolute; z-index: 4; display: flex; align-items: center; gap: 10px; padding: 12px 15px; border: 1px solid rgba(13, 47, 83, .1); border-radius: 12px; background: rgba(255,255,255,.96); box-shadow: 0 14px 30px rgba(13, 47, 83, .13); font-size: .78rem; font-weight: 800; }
.law-product-note__icon { flex: 0 0 auto; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; color: var(--law-blue); background: var(--law-sky-light); }
.law-product-note__copy { display: flex; flex-direction: column; min-width: 0; }
.law-product-note__copy strong { color: var(--law-ink); line-height: 1.15; }
.law-product-note__copy small { margin-top: 2px; color: var(--law-ink-soft); font-size: .66rem; font-weight: 700; line-height: 1.2; }
.law-product-note--bottom { max-width: min(355px, calc(100% - 80px)); }
.law-product-note--bottom strong { line-height: 1.2; }
.law-product-note--top { left: -18px; top: 0; }
.law-product-note--bottom { left: 10px; bottom: 26px; }

@keyframes lawHeroDrop {
  from { opacity: 0; transform: translateY(-34px) rotate(var(--law-entry-rotate, 0deg)); }
  to { opacity: 1; transform: translateY(0) rotate(var(--law-entry-rotate, 0deg)); }
}

@media (min-width: 981px) and (prefers-reduced-motion: no-preference) {
  .law-hero-design:first-child .law-browser--hero { --law-entry-rotate: 1.2deg; animation: lawHeroDrop .72s cubic-bezier(.2,.82,.3,1) .08s both; }
  .law-hero-design:first-child .law-phone { --law-entry-rotate: -3deg; animation: lawHeroDrop .68s cubic-bezier(.2,.82,.3,1) .22s both; }
  .law-hero-design:first-child .law-product-note--top { animation: lawHeroDrop .5s cubic-bezier(.2,.82,.3,1) .38s both; }
  .law-hero-design:first-child .law-product-note--bottom { animation: lawHeroDrop .5s cubic-bezier(.2,.82,.3,1) .5s both; }
}

.law-trust { position: relative; z-index: 3; padding: 30px 0; background: var(--law-sky-light); }
.law-trust__carousel { overflow: hidden; padding: 18px; border: 1px solid #e2e7eb; border-radius: 24px; background: #fff; box-shadow: 0 14px 38px rgba(13,47,83,.07); }
.law-trust__heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 0 2px 15px; }
.law-trust__heading > div:first-child { display: flex; align-items: center; gap: 9px; color: var(--law-ink-soft); font-size: .78rem; }
.law-trust__heading strong { color: var(--law-ink); font-size: .95rem; }
.law-trust__summary-stars, .law-trust-review__stars { color: #fbbc04; letter-spacing: .06em; }
.law-trust__controls { display: flex; gap: 7px; }
.law-trust__controls button { width: 34px; height: 34px; padding: 0; border: 1px solid #dce3e9; border-radius: 50%; color: var(--law-ink); background: #fff; cursor: pointer; font-size: 1rem; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.law-trust__controls button:hover { border-color: var(--law-blue); color: #fff; background: var(--law-blue); }
.law-trust__track { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.law-trust__track::-webkit-scrollbar { display: none; }
.law-trust-review { flex: 0 0 calc((100% - 24px) / 3); min-width: 0; padding: 16px; border: 1px solid #e4e8ec; border-radius: 15px; background: #fff; scroll-snap-align: start; }
.law-trust-review__meta { display: flex; align-items: center; gap: 10px; }
.law-trust-review__avatar { flex: 0 0 auto; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #fff; background: var(--law-blue); font-size: .72rem; font-weight: 900; }
.law-trust-review__identity { min-width: 0; display: flex; flex: 1; flex-direction: column; }
.law-trust-review__identity strong { overflow: hidden; color: #202124; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.law-trust-review__identity small { margin-top: 2px; color: #70757a; font-size: .68rem; }
.law-google-mark { flex: 0 0 auto; color: #4285f4; font-family: Arial, sans-serif; font-size: 1.25rem; font-weight: 900; }
.law-trust-review__stars { margin: 11px 0 7px; font-size: .8rem; }
.law-trust-review__text { display: -webkit-box; min-height: 4.35em; margin: 0; overflow: hidden; color: #3c4043; font-family: Arial, sans-serif; font-size: .8rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.law-trust-review__text.is-expanded { display: block; min-height: 0; overflow: visible; }
.law-trust-review__more { display: inline; padding: 0; border: 0; color: #5f6368; background: transparent; cursor: pointer; font-family: Arial, sans-serif; font-size: .76rem; font-weight: 700; }
.law-trust-review__more[hidden] { display: none; }
.law-trust-review__more:hover { color: var(--law-blue); }

.law-projects { background: var(--law-sky-light); }
.law-projects__list { display: grid; gap: 105px; }
.law-project { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); align-items: center; gap: clamp(42px, 7vw, 100px); }
.law-project--reverse { grid-template-columns: minmax(300px, .65fr) minmax(0, 1.35fr); }
.law-project--reverse .law-project__visual { order: 2; }
.law-project--reverse .law-project__content { order: 1; }
.law-project__visual { position: relative; }
.law-project__visual::before { content: ""; position: absolute; inset: 12% -5% -10% 9%; border-radius: 32px; background: var(--law-sky-light); transform: rotate(-2deg); }
.law-project__visual .law-browser { position: relative; padding: 10px; padding-top: 0; background: #f2f7fb; }
.law-project__visual .law-browser > img { width: 100%; aspect-ratio: 16 / 9; border: 1px solid rgba(13,47,83,.08); border-radius: 10px; object-fit: cover; object-position: center top; }
.law-project__comparison { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 10px; background: #eaf2f8; }
.law-project__comparison figure { position: relative; min-width: 0; margin: 0; overflow: hidden; border: 1px solid rgba(13,47,83,.1); border-radius: 10px; background: #fff; }
.law-project__comparison figure > span { position: absolute; z-index: 1; top: 10px; left: 10px; padding: 6px 11px; border-radius: 999px; color: #fff; background: rgba(15,44,74,.88); font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.law-project__comparison figure:last-child > span { background: var(--law-blue); }
.law-project__comparison img { width: 100%; height: 100%; aspect-ratio: 16 / 9; padding: 6px; background: #fff; object-fit: contain; object-position: center; }
.law-project__comparison--slider { --compare-position: 50%; position: relative; display: grid; grid-template-columns: 1fr; min-height: 0; }
.law-project__comparison--slider figure { grid-area: 1 / 1; }
.law-project__comparison--slider figure:last-of-type { clip-path: inset(0 0 0 var(--compare-position)); }
.law-project__comparison--slider figure:last-of-type > span { right: 10px; left: auto; }
.law-before-after__divider { position: absolute; z-index: 4; top: 0; bottom: 0; left: var(--compare-position); width: 3px; background: #fff; box-shadow: 0 0 0 1px rgba(13,47,83,.18); transform: translateX(-50%); pointer-events: none; }
.law-before-after__divider i { position: absolute; top: 50%; left: 50%; display: grid; place-items: center; width: 42px; height: 42px; border: 3px solid #fff; border-radius: 50%; color: #fff; background: var(--law-blue); box-shadow: 0 8px 20px rgba(13,47,83,.3); font-size: 1rem; font-style: normal; transform: translate(-50%, -50%); }
.law-before-after__range { position: absolute; z-index: 5; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }

@media (max-width: 1100px) and (min-width: 901px) {
  .page-ads-landing .glass-nav { gap: 10px; padding-inline: 14px; }
  .page-ads-landing .glass-nav .logo-img { width: 96px; }
  .page-ads-landing .glass-nav .nav-links a { gap: 5px; padding-inline: 10px; font-size: .85rem; }
  .page-ads-landing .glass-nav .header-btn { padding-inline: 15px; font-size: .84rem; }
}
.law-project__placeholder { min-height: 345px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 34px; color: var(--law-ink-soft); background: linear-gradient(rgba(0,0,0,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,.025) 1px, transparent 1px), #f8f8f6; background-size: 22px 22px; text-align: center; }
.law-project__placeholder::before { content: "+"; display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 5px; border: 2px dashed rgba(20,100,187,.35); border-radius: 16px; color: var(--law-blue); background: #fff; font-size: 1.7rem; }
.law-project__placeholder span { font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.law-project__placeholder strong { color: var(--law-ink); font-size: 1.5rem; }
.law-project__placeholder small { max-width: 100%; overflow-wrap: anywhere; font-size: .65rem; }
.law-project__metric { position: absolute; right: -28px; bottom: -34px; display: flex; flex-direction: column; width: 155px; padding: 18px; border-radius: 18px; color: #fff; background: var(--law-ink); box-shadow: var(--law-shadow); }
.law-project__metric strong { color: var(--law-yellow); font-size: 2.4rem; line-height: 1; }
.law-project__metric span { margin-top: 5px; font-size: .75rem; }
.law-project__index { margin: 0 0 26px; color: var(--law-blue); font-size: .75rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.law-project__location { margin: 0 0 6px; color: var(--law-ink-soft); font-size: .85rem; }
.law-project__content h3 { margin: 0; font-size: clamp(2rem, 3.7vw, 3.4rem); letter-spacing: -.04em; }
.law-project__mission { margin: 10px 0 22px; color: var(--law-ink-soft); font-size: 1.05rem; line-height: 1.55; }
.law-inline-list { display: flex; flex-wrap: wrap; gap: 7px; padding: 0; margin: 0 0 22px; list-style: none; }
.law-inline-list li { padding: 8px 11px; border-radius: 99px; background: var(--law-sky-light); font-size: .76rem; font-weight: 700; }
.law-project__proof { margin: 18px 0 4px; line-height: 1.5; }
.law-project__source { margin: 0 0 18px; color: var(--law-ink-soft); font-size: .72rem; }
.law-project__verified { display: flex; align-items: center; gap: 8px; margin: 18px 0 0; color: var(--law-blue); font-size: .82rem; font-weight: 900; }
.law-project__verified span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--law-sky-light); }
.law-text-link { color: var(--law-blue) !important; font-weight: 900; text-decoration: none; }
.law-text-link span { display: inline-block; margin-left: 5px; transition: transform .2s ease; }
.law-text-link:hover span { transform: translateX(5px); }
.law-center-cta { display: flex; justify-content: center; margin-top: 70px; }

.law-challenges { background: linear-gradient(180deg, #dff2ff, #edf8ff); color: var(--law-ink); }
.law-challenges .law-heading h2 { color: var(--law-ink); }
.law-challenges .law-eyebrow { color: var(--law-blue); }
.law-challenges__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.law-challenge { overflow: hidden; border: 2px solid #e8e8e4; border-radius: 24px; background: #fff; box-shadow: var(--law-shadow); }
.law-challenge__image { height: 190px; overflow: hidden; }
.law-challenge__image img { width: 100%; height: 100%; object-fit: cover; object-position: top; filter: saturate(.82); transition: transform .5s ease; }
.law-challenge:hover img { transform: scale(1.03); }
.law-challenge__body { padding: 24px; }
.law-challenge__body > span { color: var(--law-yellow); font-size: .72rem; font-weight: 900; letter-spacing: .15em; }
.law-challenge h3 { margin: 16px 0 10px; color: var(--law-ink); font-size: 1.35rem; line-height: 1.1; }
.law-challenge p { margin: 0; color: var(--law-ink-soft); line-height: 1.55; }

.law-build { background: #fff; }
.law-build__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; }
.law-build-card { position: relative; overflow: hidden; min-height: 460px; display: flex; flex-direction: column; border: 1px solid var(--law-line); border-radius: 24px; background: #fff; box-shadow: 0 14px 42px rgba(13, 47, 83, .07); }
.law-build-card--wide { grid-column: span 7; }
.law-build-card--phone { grid-column: span 5; }
.law-build-card--square { grid-column: span 5; }
.law-build-card__copy { position: relative; z-index: 2; padding: 30px 30px 18px; }
.law-build-card__copy > span { color: var(--law-blue); font-size: .72rem; font-weight: 900; letter-spacing: .15em; }
.law-build-card h3 { margin: 12px 0 8px; font-size: 1.55rem; }
.law-build-card p { max-width: 440px; margin: 0; color: var(--law-ink-soft); line-height: 1.55; }
.law-build-card__visual { flex: 1; min-height: 250px; margin: 0 22px 22px; overflow: hidden; border-radius: 15px; background: var(--law-sky-light); }
.law-build-card__visual img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.law-build-card--phone .law-build-card__visual { max-width: 225px; align-self: center; border: 7px solid var(--law-ink); border-radius: 28px; }
.law-build-card--phone .law-build-card__visual img { aspect-ratio: .62 / 1; }

.law-rules { background: #fff; }
.law-rules__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(380px, .65fr); align-items: center; gap: clamp(48px, 8vw, 120px); }
.law-rules__note { padding: 16px 18px; border-left: 4px solid var(--law-yellow); background: #fffbed; font-size: .92rem !important; }
.law-rules__sources { margin-top: 15px; font-size: .75rem !important; }
.law-rules__sources a { color: var(--law-blue); font-weight: 800; }
.law-rules__document { position: relative; padding: 34px; border: 1px solid var(--law-line); border-radius: 4px 24px 24px 4px; background: #fff; box-shadow: var(--law-shadow); }
.law-rules__document::before { content: ""; position: absolute; inset: 12px auto 12px -8px; width: 8px; border-radius: 10px 0 0 10px; background: var(--law-blue); }
.law-rules__document-head { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--law-line); }
.law-rules__document-head span { color: var(--law-blue); font-size: .76rem; font-weight: 900; text-transform: uppercase; }
.law-rules__document ul { display: grid; gap: 15px; padding: 22px 0 0; margin: 0; list-style: none; }
.law-rules__document li { position: relative; padding: 11px 10px 11px 42px; border-radius: 10px; background: var(--law-sky-light); font-weight: 700; }
.law-rules__document li::before { content: "✓"; position: absolute; left: 13px; color: var(--law-blue); }

.law-included { background: var(--law-sky-light); }
.law-included__grid { border-top: 1px solid var(--law-line); }
.law-included__grid article { display: grid; grid-template-columns: 70px minmax(180px, .55fr) 1fr; align-items: center; gap: 26px; min-height: 105px; padding: 22px 4px; border-bottom: 1px solid var(--law-line); }
.law-included__grid span { color: var(--law-blue); font-weight: 900; }
.law-included__grid h3 { margin: 0; font-size: 1.25rem; }
.law-included__grid p { margin: 0; color: var(--law-ink-soft); }

.law-process { background: #fff; }
.law-process__timeline { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding: 0; margin: 65px 0 0; list-style: none; }
.law-process__timeline::before { content: ""; position: absolute; top: 25px; left: 11%; right: 11%; height: 2px; background: var(--law-line); }
.law-process__timeline li { position: relative; padding: 0 22px; text-align: center; }
.law-process__timeline li > span { position: relative; z-index: 1; display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 23px; border: 1px solid var(--law-blue); border-radius: 50%; color: var(--law-blue); background: #fff; font-weight: 900; }
.law-process__timeline h3 { margin: 0 0 8px; font-size: 1.15rem; }
.law-process__timeline p { margin: 0; color: var(--law-ink-soft); font-size: .9rem; line-height: 1.5; }

.law-team { padding-bottom: 0; color: var(--law-ink); background: linear-gradient(180deg, #dff2ff, #cfe7f6); }
.law-team__grid { display: grid; grid-template-columns: minmax(300px, .7fr) minmax(0, 1fr); align-items: end; gap: clamp(45px, 8vw, 120px); }
.law-team__portrait { align-self: stretch; display: flex; align-items: end; }
.law-team__portrait img { width: min(100%, 540px); height: auto; aspect-ratio: 1 / 1; margin: auto auto 0; object-fit: contain; filter: drop-shadow(0 18px 35px rgba(0,0,0,.22)); }
.law-team__copy { padding: 85px 0 100px; }
.law-team__copy h2 { color: var(--law-ink); }
.law-team__copy > p { color: var(--law-ink-soft); }
.law-checks--dark { grid-template-columns: 1fr; margin-top: 28px; }
.law-checks--dark li::before { color: #fff; background: var(--law-green); }

.law-faq { background: #fff; }
.law-faq__grid { display: grid; grid-template-columns: minmax(280px, .55fr) minmax(0, 1fr); gap: clamp(45px, 8vw, 115px); align-items: start; }
.law-faq__list details { border-bottom: 1px solid var(--law-line); }
.law-faq__list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 21px 0; cursor: pointer; font-size: 1.04rem; font-weight: 800; list-style: none; }
.law-faq__list summary::-webkit-details-marker { display: none; }
.law-faq__list summary span { color: var(--law-blue); font-size: 1.5rem; font-weight: 500; transition: transform .2s ease; }
.law-faq__list details[open] summary span { transform: rotate(45deg); }
.law-faq__list details p { margin: -3px 40px 22px 0; color: var(--law-ink-soft); line-height: 1.6; }

.law-conversion { position: relative; overflow: hidden; padding: clamp(80px, 10vw, 140px) 0; color: var(--law-ink); background: linear-gradient(180deg, #dff2ff, #cfe7f6 60%, #edf8ff); }
.law-conversion__grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(420px, .7fr); align-items: center; gap: clamp(45px, 8vw, 110px); }
.law-conversion__copy h2 { color: var(--law-ink); }
.law-conversion__copy > p { color: var(--law-ink-soft); }
.law-conversion__contact { display: flex; flex-direction: column; margin-top: 35px; }
.law-conversion__contact span { color: var(--law-ink-soft); font-size: .8rem; }
.law-conversion__contact a { margin-top: 4px; color: var(--law-blue); font-size: 1.6rem; font-weight: 900; text-decoration: none; }
.law-cloud--conversion { top: 20%; right: 7%; opacity: .48; }
.law-form { padding: 30px; border-radius: 24px; color: var(--law-ink); background: #fff; box-shadow: 0 30px 70px rgba(0,0,0,.22); }
.law-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.law-form__field { display: flex; flex-direction: column; margin-bottom: 15px; }
.law-form__field label { margin-bottom: 7px; font-size: .82rem; font-weight: 800; }
.law-form__field label span { color: var(--law-ink-soft); font-weight: 500; }
.law-form input, .law-form select, .law-form textarea { width: 100%; border: 1px solid var(--law-line); border-radius: 11px; color: var(--law-ink); background: #f9fcfd; font: inherit; outline: none; }
.law-form input, .law-form select { height: 49px; padding: 0 13px; }
.law-form textarea { min-height: 100px; padding: 13px; resize: vertical; }
.law-form input:focus, .law-form select:focus, .law-form textarea:focus { border-color: var(--law-blue); box-shadow: 0 0 0 3px rgba(23,107,197,.1); }
.law-form__privacy { margin: 11px 0 0; color: var(--law-ink-soft); font-size: .72rem; text-align: center; }

.law-spotlight { position: relative; height: 240vh; background: var(--law-sky-light); }
.law-spotlight__stage { position: sticky; top: 0; height: 100vh; overflow: hidden; }
.law-spotlight__panel {
  position: absolute;
  inset: var(--law-spotlight-y, 8vh) var(--law-spotlight-x, 12vw);
  display: flex;
  align-items: center;
  overflow: hidden;
  border-radius: var(--law-spotlight-radius, 28px);
  color: #fff;
  background: linear-gradient(135deg, #0d2f53 0%, #123f70 100%);
  box-shadow: 0 34px 90px rgba(13,47,83,.28);
  will-change: inset, border-radius;
}
.law-spotlight__grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(390px, .68fr); align-items: center; gap: clamp(38px, 7vw, 100px); padding-top: 44px; padding-bottom: 44px; }
.law-spotlight__copy { max-width: 610px; }
.law-spotlight__copy .law-eyebrow { color: #8bc8ff; }
.law-spotlight__copy h2 { margin: 12px 0 18px; color: #fff; font-size: clamp(2.55rem, 4.5vw, 5rem); line-height: .98; }
.law-spotlight__copy > p { max-width: 580px; color: rgba(255,255,255,.78); font-size: 1.04rem; line-height: 1.65; }
.law-spotlight__rating { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin-top: 28px; }
.law-spotlight__rating span { color: var(--law-yellow); letter-spacing: .08em; }
.law-spotlight__rating strong { font-size: 1.08rem; }
.law-spotlight__rating small { color: rgba(255,255,255,.68); }
.law-spotlight__reassurance { display: grid; gap: 9px; margin: 23px 0 0; padding: 0; list-style: none; }
.law-spotlight__reassurance li { position: relative; padding-left: 28px; color: rgba(255,255,255,.86); font-size: .9rem; font-weight: 700; }
.law-spotlight__reassurance li::before { position: absolute; left: 0; content: "\2713"; color: var(--law-yellow); font-weight: 900; }
.law-spotlight__form { width: 100%; max-width: 520px; justify-self: end; }

.law-footer { padding: 24px 0; border-top: 1px solid rgba(15,44,74,.08); background: #fff; color: var(--law-ink-soft); }
.law-footer__inner { display: grid; grid-template-columns: 90px 1fr auto; align-items: center; gap: 24px; }
.law-footer img { width: 80px; height: auto; }
.law-footer p { margin: 0; font-size: .78rem; }
.law-footer a { color: inherit; }
.law-footer nav { display: flex; gap: 16px; font-size: .75rem; }
.law-mobile-actions { display: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .law-button, .law-challenge img, .law-text-link span, .law-hero__product, .law-hero__form { transition: none; animation: none; }
  .law-spotlight { height: auto; padding: 80px 0; }
  .law-spotlight__stage { position: relative; height: auto; overflow: visible; }
  .law-spotlight__panel { position: relative; inset: auto; margin: 0 5vw; border-radius: 28px; }
}

@media (max-width: 980px) {
  .law-shell { width: min(100% - 36px, 760px); }
  .law-hero { height: auto; min-height: auto; padding: 0; }
  .law-hero__stage { position: relative; min-height: auto; padding: 135px 0 70px; }
  .law-hero__grid { grid-template-columns: 1fr; }
  .law-hero__content { max-width: 690px; }
  .law-hero__right { width: min(100%, 650px); min-height: 500px; margin: -18px auto 0; }
  .law-hero__product { position: relative; width: 100%; min-height: 500px; }
  .law-hero-carousel, .law-hero-carousel__track { min-height: 500px; }
  .law-hero-carousel__track { display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; touch-action: pan-x pan-y; }
  .law-hero-carousel__track::-webkit-scrollbar { display: none; }
  .law-hero-design { position: relative; inset: auto; flex: 0 0 100%; min-width: 100%; min-height: 500px; opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition: none; scroll-snap-align: start; scroll-snap-stop: always; }
  .law-hero-carousel__next { display: none; }
  .law-hero-carousel__pagination { right: 50%; bottom: -8px; transform: translateX(50%); }
  .law-hero__form { display: none; }
  .law-trust-review { flex-basis: calc((100% - 12px) / 2); }
  .law-project, .law-project--reverse { grid-template-columns: 1fr; gap: 42px; }
  .law-project--reverse .law-project__visual, .law-project--reverse .law-project__content { order: initial; }
  .law-project__content { max-width: 620px; }
  .law-challenges__grid { grid-template-columns: 1fr; }
  .law-challenge { display: grid; grid-template-columns: .72fr 1fr; }
  .law-challenge__image { height: 100%; min-height: 220px; }
  .law-build-card--wide, .law-build-card--phone, .law-build-card--square { grid-column: span 6; }
  .law-rules__grid, .law-team__grid, .law-faq__grid, .law-conversion__grid { grid-template-columns: 1fr; }
  .law-team__grid { width: min(100% - 36px, 760px); }
  .law-team__portrait { order: 2; max-width: 520px; margin: -70px auto 0; }
  .law-team__copy { padding-bottom: 80px; }
  .law-conversion__copy { max-width: 680px; }
  .law-spotlight { height: auto; padding: 70px 0; }
  .law-spotlight__stage { position: relative; height: auto; overflow: visible; }
  .law-spotlight__panel { position: relative; inset: auto; margin: 0 18px; border-radius: 28px; will-change: auto; }
  .law-spotlight__grid { grid-template-columns: 1fr; gap: 32px; padding-top: 58px; padding-bottom: 58px; }
  .law-spotlight__form { max-width: none; justify-self: stretch; }
}

@media (max-width: 680px) {
  body.page-ads-landing { padding-bottom: 68px; }
  .law-shell { width: min(100% - 28px, 560px); }
  .law-section { padding: 70px 0; }
  .law-hero__stage { padding: 104px 0 58px; }
  .law-hero__grid { gap: 30px; }
  .law-hero h1 { max-width: 500px; font-size: clamp(2.7rem, 13vw, 4.1rem); }
  .law-hero__promise { font-size: 1.19rem; }
  .law-hero__copy { font-size: .96rem; }
  .law-checks { grid-template-columns: 1fr; gap: 8px; }
  .law-actions .law-button { width: 100%; }
  .law-hero__right { min-height: 350px; margin-top: 0; }
  .law-hero__product { min-height: 350px; }
  .law-hero-carousel, .law-hero-carousel__track, .law-hero-design { min-height: 350px; }
  .law-browser--hero { width: 94%; top: 25px; right: 0; }
  .law-browser__bar { height: 29px; }
  .law-phone { width: 116px; height: 225px; right: -3px; bottom: 4px; padding: 6px 3px 4px; border-width: 2px; border-radius: 19px; }
  .law-phone.law-phone--project { right: 4px; bottom: -18px; width: 116px; height: 225px; }
  .law-phone__speaker { top: 3px; width: 30px; height: 7px; }
  .law-phone img { border-radius: 14px; }
  .law-product-note { padding: 8px 10px; font-size: .64rem; }
  .law-product-note__icon { width: 23px; height: 23px; }
  .law-product-note__copy small { font-size: .58rem; }
  .law-product-note--bottom { max-width: calc(100% - 78px); }
  .law-product-note--top { left: 0; top: 0; }
  .law-product-note--bottom { left: 0; bottom: 2px; }
  .law-hero-design:first-child .law-browser--hero, .law-hero-design:first-child .law-phone, .law-hero-design:first-child .law-product-note { animation: lawHeroDrop .34s ease-out both; }
  .law-hero-design:first-child .law-phone { animation-delay: .06s; }
  .law-hero-design:first-child .law-product-note--top { animation-delay: .1s; }
  .law-hero-design:first-child .law-product-note--bottom { animation-delay: .14s; }
  .law-trust { padding: 22px 0; }
  .law-trust__carousel { padding: 14px; border-radius: 20px; }
  .law-trust__heading > div:first-child { flex-wrap: wrap; gap: 5px 8px; }
  .law-trust__heading > div:first-child > span:last-child { width: 100%; }
  .law-trust-review { flex-basis: 88%; }
  .law-heading { margin-bottom: 34px; }
  .law-heading h2, .law-rules__content h2, .law-team__copy h2, .law-conversion__copy h2 { font-size: clamp(2rem, 10vw, 3rem); }
  .law-heading--center { text-align: left; }
  .law-heading--center .law-eyebrow { justify-content: flex-start; }
  .law-projects__list { gap: 76px; }
  .law-project { gap: 30px; }
  .law-project__visual::before { inset: 8% 1% -8% 6%; }
  .law-project__metric { right: 8px; bottom: -40px; width: 132px; padding: 14px; }
  .law-project__content { padding-top: 12px; }
  .law-project__content h3 { font-size: 2.2rem; }
  .law-challenge { grid-template-columns: 1fr; }
  .law-challenge__image { min-height: 170px; height: 170px; }
  .law-build__grid { grid-template-columns: 1fr; }
  .law-build-card--wide, .law-build-card--phone, .law-build-card--square { grid-column: auto; }
  .law-build-card { min-height: 390px; }
  .law-build-card__copy { padding: 24px 24px 15px; }
  .law-build-card__visual { min-height: 220px; margin: 0 15px 15px; }
  .law-rules__document { padding: 24px; }
  .law-rules__document-head { flex-direction: column; gap: 6px; }
  .law-included__grid article { grid-template-columns: 45px 1fr; gap: 9px 15px; padding: 18px 0; }
  .law-included__grid p { grid-column: 2; }
  .law-process__timeline { grid-template-columns: 1fr; gap: 0; margin-top: 30px; }
  .law-process__timeline::before { top: 12px; bottom: 12px; left: 22px; right: auto; width: 2px; height: auto; }
  .law-process__timeline li { min-height: 120px; padding: 0 0 30px 72px; text-align: left; }
  .law-process__timeline li > span { position: absolute; left: 0; top: 0; width: 46px; height: 46px; }
  .law-team__copy { padding: 70px 0 45px; }
  .law-team__portrait { margin-top: -35px; }
  .law-faq__list summary { font-size: .96rem; }
  .law-conversion__grid { gap: 34px; }
  .law-conversion__contact a { font-size: 1.4rem; }
  .law-form { padding: 21px; border-radius: 18px; }
  .law-spotlight { padding: 48px 0; }
  .law-spotlight__panel { margin: 0 10px; border-radius: 22px; }
  .law-spotlight__grid { width: min(100% - 28px, 560px); gap: 26px; padding-top: 40px; padding-bottom: 40px; }
  .law-spotlight__copy h2 { font-size: clamp(2.2rem, 10vw, 3.2rem); }
  .law-form__row { grid-template-columns: 1fr; gap: 0; }
  .law-footer__inner { grid-template-columns: 70px 1fr; gap: 16px; }
  .law-footer p { line-height: 1.5; }
  .law-footer nav { grid-column: 1 / -1; justify-content: center; }
  .law-mobile-actions { position: fixed; z-index: 100; left: 8px; right: 88px; bottom: 8px; display: grid; grid-template-columns: .72fr 1.28fr; gap: 7px; padding: 6px; border: 1px solid var(--law-line); border-radius: 16px; background: rgba(255,255,255,.94); box-shadow: 0 12px 35px rgba(13,47,83,.22); backdrop-filter: blur(12px); }
  .law-mobile-actions a { display: grid; place-items: center; min-height: 48px; border-radius: 11px; color: var(--law-ink); font-weight: 900; text-decoration: none; }
  .law-mobile-actions a:last-child { color: #fff; background: var(--law-blue); }
}

/* ==========================================================================
   Confort de navigation et UX/UI mobile
   ========================================================================== */

:root {
  --law-header-gap: 20px;
  --law-header-h: 88px;
  --law-chat-gutter: 74px;
  --law-anchor-offset: calc(var(--law-header-h) + var(--law-header-gap) + 14px);
}

/* Cibles tactiles et retours visuels ------------------------------------- */
.page-ads-landing a,
.page-ads-landing button,
.page-ads-landing summary { -webkit-tap-highlight-color: rgba(20,100,187,.14); }
/* :where() garde la spécificité à zéro pour ne pas écraser les focus sur mesure. */
:where(.page-ads-landing) :where(a, button, summary, input, select, textarea):focus-visible {
  outline: 3px solid var(--law-blue);
  outline-offset: 3px;
}

/* Tablette et mobile ----------------------------------------------------- */
/* Le menu est un menu d'ancres : sans décalage, chaque cible atterrit sous le
   header fixe. Une seule source de décalage — y ajouter scroll-margin sur les
   cibles doublerait l'offset. */
html { scroll-padding-top: var(--law-anchor-offset); }

@media (max-width: 900px) {
  :root { --law-header-gap: 15px; --law-header-h: 72px; }
}

@media (max-width: 980px) {

  /* Barre d'actions persistante dès la tablette, plus seulement en 680px. */
  body.page-ads-landing { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .law-mobile-actions {
    position: fixed;
    z-index: 100;
    left: calc(10px + env(safe-area-inset-left));
    right: calc(var(--law-chat-gutter) + env(safe-area-inset-right));
    bottom: calc(10px + env(safe-area-inset-bottom));
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    padding: 7px;
    border: 1px solid var(--law-line);
    border-radius: 18px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 14px 38px rgba(13,47,83,.22);
    backdrop-filter: blur(12px);
    transition: transform .28s cubic-bezier(.22,.8,.25,1), opacity .2s ease;
  }
  .law-mobile-actions.is-hidden { transform: translateY(calc(100% + 24px)); opacity: 0; pointer-events: none; }
  .law-mobile-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 48px;
    min-height: 50px;
    padding: 0 14px;
    border-radius: 13px;
    color: var(--law-ink);
    font-size: .92rem;
    font-weight: 900;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
  }
  .law-mobile-actions a:first-child { border: 1px solid var(--law-line); background: #fff; }
  .law-mobile-actions a:last-child { color: #fff; background: var(--law-blue); }
  .law-mobile-actions svg { flex: 0 0 auto; width: 18px; height: 18px; }

  /* Pastilles du carrousel : zone tactile confortable, visuel inchangé. */
  .law-hero-carousel__pagination { gap: 2px; padding: 4px 6px; }
  .law-hero-carousel__pagination button { position: relative; width: 8px; height: 8px; margin: 0 3px; }
  .law-hero-carousel__pagination button.is-active { width: 24px; }
  .law-hero-carousel__pagination button::after { content: ""; position: absolute; inset: -16px -8px; }

  /* Avis : flèches à la bonne taille et arrêt net sur chaque carte. */
  .law-trust__controls { gap: 8px; }
  .law-trust__controls button { width: 44px; height: 44px; font-size: 1.1rem; }
  .law-trust__track { scroll-padding-left: 2px; }
  .law-trust-review { scroll-snap-stop: always; }

  /* FAQ : en-têtes plus faciles à viser. */
  .law-faq__list summary { min-height: 60px; padding: 18px 2px; }
  .law-faq__list details p { margin-right: 8px; }
}

@media (max-width: 680px) {
  body.page-ads-landing { padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
  .law-mobile-actions a { font-size: .88rem; padding: 0 10px; }
  .law-mobile-actions a:first-child span { display: none; }
  .law-mobile-actions a:first-child { width: 54px; padding: 0; }
  .law-mobile-actions svg { width: 20px; height: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .law-mobile-actions { transition: none; }
}

/* ==========================================================================
   Contraste des badges posés sur les panneaux sombres
   ========================================================================== */
.law-spotlight__copy .law-eyebrow,
.law-hero__form-heading .law-eyebrow {
  color: var(--law-ink);
  background: #fff;
  border-color: #fff;
}

/* ==========================================================================
   Bandeau de réassurance du hero
   ========================================================================== */
.law-hero__trust { display: none; }
.law-hero__trust li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  font-size: .8rem;
  font-weight: 800;
  white-space: nowrap;
}
.law-hero__trust-stars { color: #fbbc04; font-size: .82rem; letter-spacing: .04em; }
.law-hero__trust-rating small { color: var(--law-ink-soft); font-weight: 700; }
.law-hero__promise--short { display: none; }

/* ==========================================================================
   Mobile : hiérarchie du hero et densité de la page
   Le visuel et les CTA passaient très loin sous la ligne de flottaison, et
   l'ensemble de la page demandait plus de 23 écrans de défilement.
   ========================================================================== */
@media (max-width: 900px) {
  /* --- Hero : le visuel remonte juste après le titre, le texte se resserre. */
  .law-hero__grid { display: flex; flex-direction: column; gap: 18px; }
  .law-hero__content { display: contents; }
  .law-hero__grid > *,
  .law-hero__content > * { position: relative; z-index: 2; }

  .law-hero .law-eyebrow { order: 1; align-self: flex-start; margin-bottom: 0; }
  .law-hero h1 { order: 2; margin: 0; }
  .law-hero__promise--short { order: 3; display: block; margin: 0; }
  .law-hero__promise:not(.law-hero__promise--short),
  .law-hero__copy,
  .law-checks,
  .law-reassurance { display: none; }
  /* La preuve sociale passe avant le visuel : elle tient dans la ligne de
     flottaison, là où le visuel seul la repoussait sous la barre d'actions. */
  .law-hero__right { order: 4; z-index: 1; }
  .law-hero__trust { order: 5; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; padding: 0; margin: 0; list-style: none; }
  .law-actions { order: 6; }

  .law-hero__stage { padding: 96px 0 42px; }
  .law-hero h1 { font-size: clamp(2.4rem, 11vw, 3.4rem); }
  .law-hero__promise--short { font-size: 1.12rem; }

  /* --- Rythme général : titres, sections et CTA intermédiaires. */
  .law-section { padding: 52px 0; }
  .law-heading { margin-bottom: 24px; }
  .law-heading > p:last-child,
  .law-rules__content > p,
  .law-team__copy > p,
  .law-conversion__copy > p { font-size: .98rem; line-height: 1.5; }
  .law-center-cta { margin-top: 32px; }

  /* --- Réalisations : les lignes de texte étaient très aérées. */
  .law-projects__list { gap: 46px; }
  .law-project, .law-project--reverse { gap: 20px; }
  .law-project__content { padding-top: 4px; }
  .law-project__index { margin: 0 0 8px; }
  .law-project__location { margin: 0 0 2px; }
  .law-project__content h3 { font-size: 1.75rem; line-height: 1.1; }
  .law-project__mission { margin: 6px 0 13px; font-size: .96rem; line-height: 1.45; }
  .law-inline-list { gap: 6px; margin-bottom: 13px; }
  .law-project__proof { margin: 0 0 3px; font-size: .93rem; line-height: 1.45; }
  .law-project__source { margin: 0 0 11px; }
  .law-project__verified { margin: 0; }

  /* --- Enjeux, offre, méthode : cartes et listes resserrées. */
  .law-challenges__grid { gap: 12px; }
  .law-challenge__image { height: 148px; min-height: 148px; }
  .law-challenge__body { padding: 18px; }
  .law-challenge h3 { margin: 9px 0 6px; font-size: 1.18rem; }
  .law-challenge p { font-size: .93rem; line-height: 1.45; }

  .law-build__grid { gap: 12px; }
  .law-build-card { min-height: 0; }
  .law-build-card__copy { padding: 20px 20px 12px; }
  .law-build-card h3 { margin: 8px 0 6px; font-size: 1.25rem; }
  .law-build-card p { font-size: .93rem; line-height: 1.45; }
  .law-build-card__visual { min-height: 180px; margin: 0 12px 12px; }

  .law-rules__note { padding: 12px 14px; }
  .law-rules__document { padding: 20px; }
  .law-rules__document-head { padding-bottom: 14px; }
  .law-rules__document ul { gap: 8px; padding-top: 16px; }
  .law-rules__document li { padding: 9px 10px 9px 36px; font-size: .93rem; }
  .law-rules__document li::before { left: 12px; }

  .law-included__grid article { min-height: 0; padding: 15px 0; gap: 5px 14px; }
  .law-included__grid h3 { font-size: 1.08rem; }
  .law-included__grid p { font-size: .92rem; line-height: 1.45; }

  .law-process__timeline { margin-top: 22px; }
  .law-process__timeline li { min-height: 0; padding: 0 0 22px 60px; }
  .law-process__timeline li > span { width: 40px; height: 40px; }
  .law-process__timeline::before { left: 19px; }
  .law-process__timeline h3 { font-size: 1.05rem; }
  .law-process__timeline p { font-size: .89rem; line-height: 1.42; }

  .law-team__copy { padding: 46px 0 30px; }
  .law-team__portrait { margin-top: -22px; }
  .law-checks--dark { margin-top: 18px; }

  .law-faq__list summary { min-height: 52px; padding: 15px 2px; }
  .law-faq__list details p { margin: 0 8px 16px 0; font-size: .93rem; line-height: 1.5; }

  .law-spotlight { padding: 42px 0; }
  .law-spotlight__grid { gap: 22px; padding-top: 32px; padding-bottom: 32px; }
  .law-spotlight__copy h2 { margin: 8px 0 12px; }
  .law-spotlight__reassurance { gap: 6px; margin-top: 16px; }
  .law-spotlight__rating { margin-top: 18px; }

  .law-conversion { padding: 52px 0; }
  .law-conversion__grid { gap: 24px; }
  .law-conversion__contact { margin-top: 22px; }

  .law-form { padding: 18px; }
  .law-form__field { margin-bottom: 11px; }
  .law-trust { padding: 18px 0; }
}

@media (max-width: 680px) {
  .law-hero__right { min-height: 300px; }
  .law-hero__product,
  .law-hero-carousel,
  .law-hero-carousel__track,
  .law-hero-design { min-height: 300px; }
  .law-hero__trust li { padding: 6px 10px; font-size: .75rem; }
}

/* ==========================================================================
   Mobile : échelle typographique
   Les titres étaient dimensionnés en 10vw : le seul H2 de la section
   Réalisations occupait cinq lignes, soit plus d'un demi-écran.
   ========================================================================== */
@media (max-width: 900px) {
  .law-hero h1 { font-size: clamp(2rem, 8.4vw, 2.9rem); line-height: 1.04; }
  .law-hero__promise--short { font-size: 1.08rem; line-height: 1.35; }
  .law-hero__grid { gap: 15px; }
  /* Le bouton d'appel est déjà offert en permanence par la barre basse. */
  .law-actions__call { display: none; }

  .law-heading h2,
  .law-rules__content h2,
  .law-team__copy h2,
  .law-conversion__copy h2,
  .law-spotlight__copy h2 {
    font-size: clamp(1.65rem, 6.8vw, 2.3rem);
    line-height: 1.08;
    letter-spacing: -.03em;
  }
  .law-project__content h3 { font-size: 1.6rem; letter-spacing: -.03em; }
  .law-eyebrow { margin-bottom: 12px; font-size: .74rem; }
  .law-hero__form-heading h2 { font-size: 1.6rem; }
}

/* Les puces de bénéfices étaient en law-sky-light sur une section de la même
   couleur : invisibles, elles se lisaient comme des lignes de texte isolées. */
.law-inline-list li {
  border: 1px solid var(--law-line);
  background: #fff;
}

@media (max-width: 900px) {
  .law-build-card__visual { min-height: 150px; }
  .law-build-card__copy { padding: 18px 18px 10px; }
  .law-challenge__image { height: 132px; min-height: 132px; }
  .law-challenge__body { padding: 16px; }
  .law-project__visual::before { display: none; }
  .law-project__metric { bottom: -32px; width: 118px; padding: 12px; }
  .law-project__metric strong { font-size: 1.8rem; }
  .law-projects__list { gap: 42px; }
}

/* ==========================================================================
   Hero mobile : composition centrée reprise des pages service
   Badge, titre, promesse, deux CTA côte à côte puis rangée de réassurance.
   ========================================================================== */
.law-actions__proof { display: none; }
.law-button__compact { display: none; }

@media (max-width: 900px) {
  .law-hero__stage { text-align: center; }
  .law-hero .law-eyebrow { align-self: center; }
  .law-hero h1,
  .law-hero__promise--short { margin-inline: auto; max-width: 460px; }

  .law-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: 9px;
  }
  .law-actions .law-button {
    flex: 1 1 150px;
    width: auto;
    min-height: 50px;
    padding: 11px 14px;
    font-size: .84rem;
  }

  /* Le second CTA remplace l'appel, et le libellé du CTA principal se
     raccourcit pour que les deux pastilles tiennent sur une ligne. */
  .law-actions__proof { display: inline-flex; }
  .law-button__full { display: none; }
  .law-button__compact { display: inline; }

  .law-hero__trust li {
    padding: 6px 11px;
    font-size: .75rem;
    background: rgba(255,255,255,.6);
    border-color: rgba(255,255,255,.5);
  }
  .law-hero__trust strong { font-weight: 900; }
  .law-hero__trust-stars { letter-spacing: .06em; }
}

/* ==========================================================================
   Hero mobile : tout tient dans la ligne de flottaison
   Titre, promesse, aperçus des sites, réassurance et les deux CTA doivent
   être visibles sans défilement. Les valeurs ci-dessous sont calées sur un
   viewport de 664 px (iPhone 13) et se resserrent encore en dessous.
   ========================================================================== */
@media (max-width: 900px) {
  .law-hero__stage { padding: 94px 0 26px; }
  .law-hero__grid { gap: 12px; }
  .law-hero .law-eyebrow { margin-bottom: 0; }
  .law-hero__right { min-height: 286px; margin: 0 auto; }
  .law-hero__product,
  .law-hero-carousel,
  .law-hero-carousel__track,
  .law-hero-design { min-height: 286px; }

  /* Les trois pastilles tiennent sur une ligne à 390 px ; en dessous elles
     passent à la ligne plutôt que de déborder. */
  .law-hero__trust { flex-wrap: wrap; gap: 5px; }
  .law-hero__trust li { gap: 4px; padding: 5px 9px; font-size: .67rem; white-space: nowrap; }
  .law-hero__trust-stars { font-size: .69rem; letter-spacing: 0; }

  .law-actions { gap: 8px; }
  .law-actions .law-button { min-height: 48px; padding: 10px 12px; font-size: .82rem; }

  /* La barre basse n'apparaît qu'au premier défilement : au chargement, la
     ligne de flottaison appartient entièrement au hero. */
  .law-mobile-actions { transform: translateY(calc(100% + 24px)); opacity: 0; pointer-events: none; }
  .law-mobile-actions.is-ready { transform: none; opacity: 1; pointer-events: auto; }
  .law-mobile-actions.is-ready.is-hidden { transform: translateY(calc(100% + 24px)); opacity: 0; pointer-events: none; }

  /* Le lanceur de tchat est désactivé sur cette page : la barre reprend
     toute la largeur. */
  .law-mobile-actions { right: calc(10px + env(safe-area-inset-right)); }
}

@media (max-width: 380px) {
  .law-hero__right,
  .law-hero__product,
  .law-hero-carousel,
  .law-hero-carousel__track,
  .law-hero-design { min-height: 250px; }
  .law-hero__stage { padding: 94px 0 22px; }
}

/* ==========================================================================
   Page de remerciement (/merci)
   Atterrissage des formulaires de campagne Ads.
   ========================================================================== */
.law-thanks {
  display: flex;
  align-items: center;
  min-height: 100vh;
  padding: 140px 0 80px;
  text-align: center;
  background: linear-gradient(180deg, #dff2ff 0%, #cfe7f6 42%, #f8fcff 100%);
}
.law-thanks__inner { max-width: 660px; }
.law-thanks .law-eyebrow { margin-bottom: 16px; }
.law-thanks__badge {
  display: grid;
  place-items: center;
  width: 74px;
  height: 74px;
  margin: 0 auto 24px;
  border-radius: 50%;
  color: #fff;
  background: var(--law-green);
  box-shadow: 0 14px 34px rgba(26,127,55,.28);
}
.law-thanks__badge svg { width: 34px; height: 34px; }
.law-thanks h1 {
  margin: 0 0 16px;
  color: var(--law-ink);
  font-family: "acumin-pro", "Outfit", sans-serif;
  font-weight: 900;
  font-size: clamp(2rem, 5vw, 3.2rem);
  line-height: 1.05;
  letter-spacing: -.035em;
}
.law-thanks__lead { margin: 0 auto 36px; max-width: 520px; color: var(--law-ink-soft); font-size: 1.05rem; line-height: 1.6; }
.law-thanks__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 0;
  margin: 0 0 36px;
  list-style: none;
  text-align: left;
}
.law-thanks__steps li {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 18px;
  background: rgba(255,255,255,.72);
}
.law-thanks__steps span { color: var(--law-blue); font-size: .72rem; font-weight: 900; letter-spacing: .15em; }
.law-thanks__steps strong { color: var(--law-ink); font-size: .98rem; }
.law-thanks__steps small { color: var(--law-ink-soft); font-size: .82rem; line-height: 1.45; }
.law-thanks__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.law-thanks__note { margin: 22px 0 0; color: var(--law-ink-soft); font-size: .85rem; }
.law-thanks__note a { color: var(--law-blue); font-weight: 800; }

@media (max-width: 900px) {
  .law-thanks { min-height: auto; padding: 118px 0 60px; }
  .law-thanks__steps { grid-template-columns: 1fr; gap: 8px; }
  .law-thanks__steps li { flex-direction: row; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; padding: 14px 16px; }
  .law-thanks__steps small { flex-basis: 100%; }
  .law-thanks__lead { margin-bottom: 26px; font-size: .98rem; }
  .law-thanks__actions .law-button { flex: 1 1 100%; }
}
