/* PME'Pulse — styles partagés : en-tête, menu, pied de page, boutons */
:root {
  --pp-ink: #0E0E10;
  --pp-ink-2: #3B3B44;
  --pp-ink-3: #6E6E78;
  --pp-yellow: #FFC21A;
  --pp-yellow-soft: #FFE27A;
  --pp-cream: #FFF8E6;
  --pp-orange: #FF5A36;
  --pp-blue: #3D7BFF;
  --pp-mint: #2BD4A4;
  --pp-white: #FFFFFF;
  --pp-line: rgba(14, 14, 16, .12);
  --pp-radius: 22px;
  --pp-header-h: 86px;
  --pp-font: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ---------- Header ---------- */
.pp-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  font-family: var(--pp-font);
  background: rgba(255, 255, 255, 0);
  transition: background .3s ease, box-shadow .3s ease, backdrop-filter .3s ease;
}
.pp-header.is-scrolled,
.pp-header.is-solid {
  background: rgba(255, 255, 255, .92);
  backdrop-filter: saturate(160%) blur(14px);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  box-shadow: 0 1px 0 var(--pp-line), 0 10px 30px -18px rgba(14, 14, 16, .35);
}
.pp-header__inner {
  max-width: 1280px;
  margin: 0 auto;
  height: var(--pp-header-h);
  padding: 0 24px;
  display: flex;
  align-items: center;
  gap: 28px;
}
.pp-logo { display: inline-flex; align-items: center; flex-shrink: 0; }
.pp-logo img { height: 30px; width: auto; display: block; }

.pp-menu { display: flex; align-items: center; gap: 2px; margin: 0 auto; list-style: none; padding: 0; }
.pp-menu > li { position: relative; }
.pp-menu__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 13px;
  border-radius: 999px;
  border: 0;
  background: none;
  font: 600 14.5px/1 var(--pp-font);
  color: var(--pp-ink);
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  transition: background .2s ease;
}
.pp-menu__link:hover,
.pp-menu__link:focus-visible,
.pp-menu > li.is-open > .pp-menu__link { background: rgba(14, 14, 16, .07); outline: none; }
.pp-menu__link[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--pp-yellow); border-radius: 10px; }
.pp-menu__chev { width: 10px; height: 10px; transition: transform .2s ease; }
.pp-menu > li.is-open .pp-menu__chev { transform: rotate(180deg); }

.pp-sub {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  min-width: 290px;
  padding: 10px;
  list-style: none;
  margin: 0;
  background: var(--pp-white);
  border-radius: 18px;
  box-shadow: 0 30px 60px -20px rgba(14, 14, 16, .35), 0 0 0 1px var(--pp-line);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.pp-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.pp-menu > li.is-open > .pp-sub { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.pp-sub a {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 11px 12px;
  border-radius: 12px;
  text-decoration: none;
  color: var(--pp-ink);
}
.pp-sub a:hover, .pp-sub a:focus-visible { background: var(--pp-cream); outline: none; }
.pp-sub__ico {
  flex-shrink: 0;
  width: 34px; height: 34px;
  border-radius: 10px;
  display: grid; place-items: center;
  background: var(--pp-yellow);
  font-size: 17px;
}
.pp-sub__t { display: block; font: 700 14.5px/1.25 var(--pp-font); }
.pp-sub__d { display: block; margin-top: 2px; font: 400 12.5px/1.4 var(--pp-font); color: var(--pp-ink-3); }

.pp-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: 999px;
  background: var(--pp-ink);
  color: var(--pp-white);
  font: 700 14px/1 var(--pp-font);
  text-decoration: none;
  white-space: nowrap;
  transition: transform .2s ease, background .2s ease;
}
.pp-cta:hover { transform: translateY(-2px); background: #000; }
.pp-cta svg { width: 16px; height: 16px; }

.pp-burger {
  display: none;
  margin-left: auto;
  width: 46px; height: 46px;
  border-radius: 14px;
  border: 0;
  background: var(--pp-ink);
  cursor: pointer;
  position: relative;
}
.pp-burger span {
  position: absolute; left: 13px; right: 13px; height: 2.5px; border-radius: 2px; background: #fff;
  transition: transform .25s ease, opacity .25s ease, top .25s ease;
}
.pp-burger span:nth-child(1) { top: 16px; }
.pp-burger span:nth-child(2) { top: 22px; }
.pp-burger span:nth-child(3) { top: 28px; }
.pp-header.menu-open .pp-burger span:nth-child(1) { top: 22px; transform: rotate(45deg); }
.pp-header.menu-open .pp-burger span:nth-child(2) { opacity: 0; }
.pp-header.menu-open .pp-burger span:nth-child(3) { top: 22px; transform: rotate(-45deg); }

@media (max-width: 1300px) {
  .pp-menu__link { padding: 10px 9px; font-size: 14px; }
  .pp-header__inner { gap: 16px; }
}
@media (max-width: 900px) {
  .pp-header__inner { padding: 0 16px; }
  .pp-burger { display: block; }
  .pp-cta--desktop { display: none; }
  .pp-nav {
    position: fixed;
    inset: var(--pp-header-h) 0 0 0;
    background: var(--pp-white);
    overflow-y: auto;
    padding: 12px 16px 40px;
    transform: translateX(100%);
    transition: transform .35s cubic-bezier(.2, .8, .2, 1);
  }
  .pp-header.menu-open .pp-nav { transform: none; }
  .pp-header.menu-open { background: var(--pp-white); }
  .pp-menu { flex-direction: column; align-items: stretch; gap: 0; margin: 0; }
  .pp-menu > li { border-bottom: 1px solid var(--pp-line); }
  .pp-menu__link { width: 100%; justify-content: space-between; padding: 18px 6px; font-size: 18px; border-radius: 0; }
  .pp-menu__link:hover { background: none; }
  .pp-sub {
    position: static; transform: none; opacity: 1; visibility: visible; box-shadow: none;
    min-width: 0; padding: 0 0 10px; display: none;
  }
  .pp-sub::before { display: none; }
  .pp-menu > li.is-open > .pp-sub { display: block; transform: none; }
  .pp-nav .pp-cta { display: flex; justify-content: center; margin-top: 24px; padding: 18px; font-size: 16px; }
}
@media (min-width: 901px) { .pp-nav .pp-cta--mobile { display: none; } }

/* ---------- Footer ---------- */
.pp-footer {
  font-family: var(--pp-font);
  background: var(--pp-ink);
  color: rgba(255, 255, 255, .72);
  padding: 72px 24px 28px;
}
.pp-footer a { color: rgba(255, 255, 255, .82); text-decoration: none; }
.pp-footer a:hover { color: var(--pp-yellow); }
.pp-footer__grid {
  max-width: 1280px; margin: 0 auto;
  display: grid; gap: 40px;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
}
.pp-footer__brand img { height: 34px; width: auto; }
.pp-footer__brand p { margin: 18px 0 0; font-size: 14.5px; line-height: 1.7; max-width: 34ch; }
.pp-footer h2 { margin: 0 0 16px; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--pp-yellow); }
.pp-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 14.5px; }
.pp-footer__bottom {
  max-width: 1280px; margin: 56px auto 0; padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, .12);
  display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between;
  font-size: 13px;
}
@media (max-width: 900px) { .pp-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .pp-footer__grid { grid-template-columns: 1fr; } .pp-footer { padding: 56px 16px 24px; } }

.pp-skip { position: absolute; left: -9999px; top: 8px; z-index: 2000; background: #fff; padding: 10px 16px; border-radius: 10px; }
.pp-skip:focus { left: 16px; }
.pp-sub a[aria-current="page"] { background: var(--pp-cream); box-shadow: inset 3px 0 0 var(--pp-orange); }

/* ---------- Méga-menu Services ---------- */
.pp-header__inner { position: relative; }
.pp-menu > li.has-mega { position: static; }
.pp-menu__link { font-size: 15px; }
.pp-mega {
  left: 50%; top: calc(100% - 6px);
  width: min(1180px, calc(100vw - 32px));
  padding: 22px;
  border-radius: 26px;
  border: 3px solid var(--pp-ink);
  box-shadow: 12px 12px 0 var(--pp-ink);
}
.pp-mega::before { top: -16px; height: 16px; }
.pp-mega__grid { display: grid; grid-template-columns: repeat(3, 1fr) 1.05fr; gap: 14px; }
.pp-mega__col { padding: 16px 12px 12px; border-radius: 18px; background: var(--col-bg); }
.pp-mega__col--orange { --col-bg: #FFF1EC; --col: var(--pp-orange); }
.pp-mega__col--blue { --col-bg: #EEF3FF; --col: var(--pp-blue); }
.pp-mega__col--mint { --col-bg: #E9FBF5; --col: var(--pp-mint); }
.pp-mega__title {
  display: flex; align-items: center; gap: 10px;
  margin: 0 6px 10px;
  font: 900 13px/1 var(--pp-font); letter-spacing: .12em; text-transform: uppercase;
}
.pp-mega__title span { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--pp-ink); color: var(--pp-yellow); font-size: 12px; letter-spacing: 0; }
.pp-mega ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.pp-mega a:not(.pp-mega__promo) {
  display: flex; gap: 12px; align-items: center;
  padding: 10px; border-radius: 14px;
  text-decoration: none; color: var(--pp-ink);
  transition: background .2s ease, transform .2s ease;
}
.pp-mega a:not(.pp-mega__promo):hover, .pp-mega a:not(.pp-mega__promo):focus-visible { background: #fff; transform: translateX(4px); outline: none; }
.pp-mega a[aria-current="page"] { background: #fff; box-shadow: inset 4px 0 0 var(--col); }
.pp-mega__ico {
  flex-shrink: 0; width: 44px; height: 44px; border-radius: 14px;
  display: grid; place-items: center; font-size: 21px;
  background: #fff; border: 2.5px solid var(--pp-ink); box-shadow: 3px 3px 0 var(--col);
  transition: transform .25s cubic-bezier(.2, 1.4, .4, 1);
}
.pp-mega a:hover .pp-mega__ico { transform: rotate(-8deg) scale(1.08); }
.pp-mega__promo {
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; justify-content: flex-end; gap: 10px;
  padding: 22px; border-radius: 18px;
  background: var(--pp-yellow); border: 2.5px solid var(--pp-ink);
  color: var(--pp-ink); text-decoration: none;
  min-height: 250px;
}
.pp-mega__plane { position: absolute; top: 18px; right: 18px; font-size: 40px; transform: rotate(-12deg); transition: transform .5s cubic-bezier(.2, .8, .2, 1); }
.pp-mega__promo:hover .pp-mega__plane { transform: translate(14px, -10px) rotate(-4deg); }
.pp-mega__promo-t { font: 900 22px/1.15 var(--pp-font); letter-spacing: -.02em; }
.pp-mega__promo-d { font: 500 14px/1.5 var(--pp-font); }
.pp-mega__promo-cta { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; margin-top: 4px; padding: 11px 16px; border-radius: 999px; background: var(--pp-ink); color: #fff; font: 700 13.5px/1 var(--pp-font); }
.pp-mega__promo-cta svg { width: 15px; height: 15px; }

/* apparition des colonnes */
.pp-mega__col, .pp-mega__promo { opacity: 0; transform: translateY(10px); transition: opacity .3s ease, transform .35s cubic-bezier(.2, .8, .2, 1); }
.pp-menu > li.is-open .pp-mega__col, .pp-menu > li.is-open .pp-mega__promo { opacity: 1; transform: none; }
.pp-menu > li.is-open .pp-mega__col:nth-child(2) { transition-delay: .05s; }
.pp-menu > li.is-open .pp-mega__col:nth-child(3) { transition-delay: .1s; }
.pp-menu > li.is-open .pp-mega__promo { transition-delay: .15s; }

@media (max-width: 1100px) and (min-width: 901px) {
  .pp-mega__grid { grid-template-columns: repeat(3, 1fr); }
  .pp-mega__promo { grid-column: 1 / -1; min-height: 0; flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
  .pp-mega__plane { position: static; }
}
@media (max-width: 900px) {
  .pp-menu > li.has-mega { position: relative; }
  .pp-mega { width: auto; padding: 0 0 12px; border: 0; border-radius: 0; box-shadow: none; }
  .pp-mega__grid { grid-template-columns: 1fr; gap: 10px; }
  .pp-mega__col, .pp-mega__promo { opacity: 1; transform: none; }
  .pp-mega__promo { min-height: 0; }
  .pp-mega__plane { font-size: 30px; }
}
@media (min-width: 901px) { .pp-nav { flex: 1; display: flex; justify-content: center; } .pp-menu { gap: 6px; } }

/* ---------- Bouton devis fixe sur mobile ---------- */
.pp-sticky { display: none; }
@media (max-width: 640px) {
  .pp-sticky {
    position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom));
    z-index: 900;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    padding: 16px; border-radius: 999px;
    background: var(--pp-ink); color: #fff; text-decoration: none;
    font: 700 15.5px/1 var(--pp-font);
    box-shadow: 0 0 0 2.5px var(--pp-yellow), 0 14px 30px -10px rgba(14, 14, 16, .6);
    transform: translateY(140%); transition: transform .35s cubic-bezier(.2, .8, .2, 1);
  }
  .pp-sticky svg { width: 17px; height: 17px; }
  .pp-sticky.is-visible { transform: none; }
  .pp-header.menu-open ~ .pp-sticky { transform: translateY(140%); }
  .pp-footer { padding-bottom: 96px; }
}

/* Menu mobile fermé : pas de décalage hors écran (évite le débordement horizontal) */
@media (max-width: 900px) {
  .pp-nav { transform: translateY(-12px); opacity: 0; visibility: hidden; pointer-events: none; transition: transform .3s cubic-bezier(.2, .8, .2, 1), opacity .25s ease, visibility .3s; }
  .pp-header.menu-open .pp-nav { transform: none; opacity: 1; visibility: visible; pointer-events: auto; }
}
html { overflow-x: clip; }
/* le flou de l'en-tête enfermerait le menu mobile (position fixe) dans sa hauteur */
@media (max-width: 900px) {
  .pp-header.menu-open { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--pp-white); }
  .pp-nav { height: calc(100dvh - var(--pp-header-h)); }
}

/* ---------- Bloc contact à 3 onglets ---------- */
.ct {
  font-family: var(--pp-font);
  background: #fff; color: var(--pp-ink);
  border: 3px solid var(--pp-ink); border-radius: 26px;
  box-shadow: 12px 12px 0 var(--pp-ink);
  overflow: hidden;
}
.ct__tabs { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 3px solid var(--pp-ink); }
.ct__tab {
  display: grid; justify-items: center; gap: 3px;
  padding: 16px 8px 14px;
  border: 0; border-right: 2px solid var(--pp-ink); background: var(--pp-cream);
  font-family: var(--pp-font); color: var(--pp-ink); cursor: pointer;
  transition: background .2s ease;
}
.ct__tab:last-child { border-right: 0; }
.ct__tab:hover { background: #FFF1C9; }
.ct__tab.is-active { background: var(--pp-yellow); }
.ct__tab:focus-visible { outline: 3px solid var(--pp-blue); outline-offset: -3px; }
.ct__ico { font-size: 22px; line-height: 1; transition: transform .25s cubic-bezier(.2, 1.4, .4, 1); }
.ct__tab.is-active .ct__ico { transform: scale(1.15) rotate(-6deg); }
.ct__t { font-weight: 800; font-size: 15px; }
.ct__s { font-weight: 500; font-size: 12px; opacity: .75; }
.ct__panel { padding: 26px 26px 28px; }
.ct__panel[hidden] { display: none; }
.ct__title { margin: 0; font-weight: 900; font-size: 24px; letter-spacing: -.02em; }
.ct__intro { margin: 6px 0 20px; font-size: 15px; color: var(--pp-ink-2); }
.ct__form { display: grid; gap: 14px; }
.ct__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ct__field { display: grid; gap: 6px; font-weight: 700; font-size: 14px; }
.ct__field input, .ct__field select {
  width: 100%; padding: 14px 16px;
  border: 2.5px solid var(--pp-ink); border-radius: 14px;
  background-color: #fff; color: var(--pp-ink);
  font: 500 16px/1.2 var(--pp-font);
  transition: box-shadow .2s ease;
}
.ct__field select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 10 10%22%3E%3Cpath d=%22M1 3l4 4 4-4%22 fill=%22none%22 stroke=%22%230E0E10%22 stroke-width=%221.8%22 stroke-linecap=%22round%22/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; background-size: 12px; padding-right: 40px;
}
.ct__field input:focus, .ct__field select:focus { outline: none; box-shadow: 4px 4px 0 var(--pp-yellow); }
.ct__field.is-invalid input, .ct__field.is-invalid select { border-color: var(--pp-orange); box-shadow: 4px 4px 0 rgba(255, 90, 54, .35); }
.ct__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ct__submit { justify-self: start; margin-top: 4px; }
.ct__submit[disabled] { opacity: .6; cursor: wait; }
.ct__legal { margin: 0; font-size: 12.5px; color: var(--pp-ink-3); }
.ct__msg { margin: 0; font-weight: 700; font-size: 15px; }
.ct__msg:empty { display: none; }
.ct__msg.is-ok { padding: 14px 16px; border-radius: 14px; background: #E9FBF5; border: 2px solid var(--pp-mint); }
.ct__msg.is-err { padding: 14px 16px; border-radius: 14px; background: #FFF1EC; border: 2px solid var(--pp-orange); }
.ct__msg a { color: inherit; }
.ct .calendly-inline-widget { margin: 0 -10px; }
.ct__phone {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  padding: 20px; border-radius: 18px;
  background: var(--pp-ink); color: #fff; text-decoration: none;
  font-weight: 900; font-size: clamp(26px, 3vw, 34px); letter-spacing: .02em;
  box-shadow: 6px 6px 0 var(--pp-orange);
  transition: transform .2s ease, box-shadow .2s ease;
}
.ct__phone:hover { transform: translate(-2px, -2px); box-shadow: 9px 9px 0 var(--pp-orange); }
.ct__list { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 10px; font-weight: 600; font-size: 15.5px; }
.ct__list li::before { content: "✓"; display: inline-grid; place-items: center; width: 26px; height: 26px; margin-right: 10px; border-radius: 50%; background: var(--pp-yellow); font-weight: 900; font-size: 13px; }

@media (max-width: 640px) {
  .ct { box-shadow: 7px 7px 0 var(--pp-ink); border-radius: 22px; }
  .ct__tab { padding: 12px 4px 11px; }
  .ct__t { font-size: 13px; }
  .ct__s { display: none; }
  .ct__panel { padding: 20px 16px 22px; }
  .ct__title { font-size: 21px; }
  .ct__row { grid-template-columns: 1fr; }
  .ct__submit { justify-self: stretch; }
  .ct .calendly-inline-widget { margin: 0 -16px; height: 640px !important; }
}
.ct__alt { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px; }
.ct__alt a, .ct__alt .ct__pigeon {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 10px; border-radius: 14px; border: 2.5px solid var(--pp-ink);
  background: #fff; color: var(--pp-ink); text-decoration: none; font-weight: 800; font-size: 14.5px;
  transition: transform .2s ease, background .2s ease;
}
.ct__alt a:hover { transform: translateY(-2px); background: var(--pp-cream); }
.ct__pigeon { opacity: .55; cursor: help; }
.ct__pigeon:hover span { display: inline-block; animation: flap .5s ease-in-out infinite alternate; }
@keyframes flap { to { transform: translateY(-4px) rotate(-12deg); } }
.ct__choices { border: 0; margin: 0; padding: 0; min-width: 0; }
.ct__choices legend { padding: 0; margin-bottom: 8px; font-weight: 700; font-size: 14px; }
.ct__choices legend small { font-weight: 500; color: var(--pp-ink-3); margin-left: 4px; }
.ct__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ct__chip { position: relative; cursor: pointer; }
.ct__chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ct__chip span {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 13px; border-radius: 999px;
  border: 2px solid var(--pp-ink); background: #fff;
  font-weight: 600; font-size: 13.5px; line-height: 1.2;
  transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
}
.ct__chip span::before { content: "+"; font-weight: 900; }
.ct__chip:hover span { background: var(--pp-cream); }
.ct__chip input:checked + span { background: var(--pp-yellow); box-shadow: 3px 3px 0 var(--pp-ink); transform: translate(-1px, -1px); }
.ct__chip input:checked + span::before { content: "✓"; }
.ct__chip input:focus-visible + span { outline: 3px solid var(--pp-blue); outline-offset: 2px; }
.ct__choices.is-invalid .ct__chip span { border-color: var(--pp-orange); }
.ct__choices.is-invalid legend { color: var(--pp-orange); }
.contact__move {
  display: inline-flex; align-items: center; gap: 12px;
  margin: 22px 0 0; padding: 14px 18px;
  border-radius: 16px; border: 2.5px solid var(--pp-ink);
  background: #fff; box-shadow: 5px 5px 0 var(--pp-ink);
  font: 800 16.5px/1.35 var(--pp-font); color: var(--pp-ink);
  rotate: -1deg;
}
.contact__move span { font-size: 26px; display: inline-block; animation: drive 2.4s ease-in-out infinite; }
@keyframes drive { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(6px); } }
@media (max-width: 640px) { .contact__move { font-size: 15px; padding: 12px 14px; } }

/* ---------- Newsletter « La lettre Décollage » (au-dessus du pied de page) ---------- */
.pp-nl { font-family: var(--pp-font); background: var(--pp-blue); color: #fff; border-top: 3px solid var(--pp-ink); padding: clamp(48px, 6vw, 80px) 24px; }
.pp-nl__in { max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(28px, 4vw, 64px); align-items: center; }
.pp-nl__kick { display: inline-block; margin: 0 0 14px; padding: 7px 14px; border-radius: 999px; background: var(--pp-ink); color: var(--pp-yellow); font-weight: 800; font-size: 14px; }
.pp-nl h2 { margin: 0 0 14px; font-size: clamp(28px, 3.4vw, 44px); line-height: 1.05; font-weight: 900; letter-spacing: -.035em; color: #fff; }
.pp-nl h2 span { display: block; font-style: italic; color: var(--pp-yellow); }
.pp-nl__txt > p:last-child { margin: 0; font-size: 17px; line-height: 1.65; color: rgba(255,255,255,.9); max-width: 56ch; }
.pp-nl__form { background: #fff; border: 3px solid var(--pp-ink); border-radius: 22px; box-shadow: 8px 8px 0 var(--pp-ink); padding: 22px; rotate: -1deg; }
.pp-nl__label { display: block; font-weight: 800; font-size: 15px; margin-bottom: 10px; color: var(--pp-ink); }
.pp-nl__row { display: flex; gap: 10px; }
.pp-nl__row input { flex: 1; min-width: 0; font: inherit; font-size: 16px; padding: 14px 16px; border: 2.5px solid var(--pp-ink); border-radius: 14px; background: var(--pp-cream); color: var(--pp-ink); }
.pp-nl__row input:focus { outline: 3px solid var(--pp-blue); outline-offset: 2px; }
.pp-nl__row button { flex: none; font: inherit; font-weight: 900; font-size: 16px; padding: 14px 20px; border: 2.5px solid var(--pp-ink); border-radius: 14px; background: var(--pp-orange); color: #fff; cursor: pointer; box-shadow: 4px 4px 0 var(--pp-ink); transition: transform .15s ease, box-shadow .15s ease; }
.pp-nl__row button:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--pp-ink); }
.pp-nl__row button[disabled] { opacity: .6; cursor: wait; }
.pp-nl__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.pp-nl__small { margin: 12px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--pp-ink-2); }
.pp-nl__msg { margin: 10px 0 0; font-weight: 800; font-size: 15px; color: var(--pp-ink); }
.pp-nl__msg:empty { display: none; }
.pp-nl__msg.is-ok { color: #0E7A5C; }
.pp-nl__msg.is-err { color: #C2361A; }
@media (max-width: 860px) { .pp-nl__in { grid-template-columns: 1fr; } .pp-nl__form { rotate: 0deg; } }
@media (max-width: 480px) { .pp-nl__row { flex-direction: column; } .pp-nl__row button { width: 100%; } }
/* newsletter sur téléphone : plus compacte, gouttière de 16 px, rien qui casse */
@media (max-width: 560px) {
  .pp-nl { padding: 40px 16px 44px; }
  .pp-nl__in { gap: 22px; }
  .pp-nl__kick { font-size: 13px; padding: 6px 12px; margin-bottom: 12px; }
  .pp-nl__kick span, .pp-nl__long { display: none; }
  .pp-nl h2 { font-size: 26px; margin-bottom: 10px; }
  .pp-nl__txt > p:last-child { font-size: 15.5px; line-height: 1.6; }
  .pp-nl__form { padding: 18px 16px; border-radius: 18px; box-shadow: 5px 5px 0 var(--pp-ink); margin-right: 5px; }
  .pp-nl__row input, .pp-nl__row button { padding: 13px 14px; }
  .pp-nl__small { font-size: 12.5px; }
}

/* lien parrainage sous le bloc contact */
.ct__parrain { display: flex; align-items: center; gap: 12px; margin-top: 16px; padding: 14px 18px; border-radius: 16px; border: 2.5px dashed var(--pp-ink); background: rgba(255, 255, 255, .55); color: var(--pp-ink); text-decoration: none; font-family: var(--pp-font); font-size: 15px; line-height: 1.45; transition: background .2s ease, transform .2s ease; }
.ct__parrain > span:first-child { font-size: 24px; flex: none; }
.ct__parrain b { font-weight: 800; text-decoration: underline; text-decoration-color: var(--pp-orange); text-underline-offset: 3px; }
.ct__parrain:hover { background: #fff; transform: translateY(-2px); }

/* ---------- Bouton « Parrainage » du menu : un sticker orange un peu de travers ---------- */
.pp-menu__gift { margin-left: 8px; }
.pp-gift { position: relative; display: inline-flex; align-items: center; gap: 7px; padding: 8px 16px 8px 12px; border-radius: 999px; background: var(--pp-orange); color: #fff; border: 2.5px solid var(--pp-ink); box-shadow: 3px 3px 0 var(--pp-ink); font-family: var(--pp-font); font-weight: 800; font-size: 14px; text-decoration: none; white-space: nowrap; rotate: -4deg; transition: rotate .25s cubic-bezier(.3, 1.6, .5, 1), transform .2s ease, box-shadow .2s ease, background .2s ease; animation: pp-gift-wiggle 6s ease-in-out 2s infinite; }
.pp-gift__ico { font-size: 16px; line-height: 1; }
.pp-gift__txt small { display: none; font-size: inherit; font-weight: 700; }
.pp-gift__badge { position: absolute; top: -13px; right: -16px; padding: 3px 7px; border-radius: 8px; background: var(--pp-yellow); color: var(--pp-ink); border: 2px solid var(--pp-ink); font-size: 11px; font-weight: 900; letter-spacing: -.01em; rotate: 12deg; box-shadow: 2px 2px 0 var(--pp-ink); transition: rotate .25s cubic-bezier(.3, 1.6, .5, 1), transform .25s ease; }
.pp-gift:hover, .pp-gift:focus-visible { rotate: 0deg; transform: translate(-1px, -2px); box-shadow: 5px 5px 0 var(--pp-ink); animation: none; }
.pp-gift:hover .pp-gift__badge, .pp-gift:focus-visible .pp-gift__badge { rotate: -6deg; transform: scale(1.12); }
.pp-gift[aria-current="page"] { background: var(--pp-ink); color: var(--pp-yellow); }
@keyframes pp-gift-wiggle {
  0%, 88%, 100% { rotate: -4deg; }
  91% { rotate: 3deg; }
  94% { rotate: -7deg; }
  97% { rotate: 1deg; }
}
@media (prefers-reduced-motion: reduce) { .pp-gift { animation: none; } }
@media (max-width: 1300px) and (min-width: 901px) {
  .pp-menu__gift { margin-left: 4px; }
  .pp-gift { padding: 7px 13px 7px 10px; font-size: 13px; }
}
@media (max-width: 1060px) and (min-width: 901px) { .pp-gift__ico { display: none; } }
/* menu mobile : une carte orange pleine largeur */
@media (max-width: 900px) {
  .pp-menu > li.pp-menu__gift { border-bottom: 0; margin: 18px 4px 0; }
  .pp-gift { display: flex; width: 100%; box-sizing: border-box; justify-content: flex-start; padding: 16px 18px; border-radius: 18px; font-size: 16px; line-height: 1.3; white-space: normal; rotate: -1.5deg; animation: none; box-shadow: 5px 5px 0 var(--pp-ink); }
  .pp-gift__txt { min-width: 0; padding-right: 34px; }
  .pp-gift__ico { font-size: 22px; }
  .pp-gift__txt small { display: inline; }
  .pp-gift__badge { top: -12px; right: 14px; font-size: 13px; }
}
/* l'encart parrainage descend en bas de la colonne de gauche, aligné sur le bas du formulaire */
.contact:has(.ct__parrain-wrap) { align-items: stretch; }
.contact > div:has(> .ct__parrain-wrap) { display: flex; flex-direction: column; }
.ct__parrain-wrap { margin-top: auto; padding-top: 28px; }
.ct__parrain-wrap .ct__parrain { margin-top: 0; }
/* menu un peu plus haut sur ordinateur, pour laisser respirer le badge « 500 € » ; hauteur d'origine sur mobile */
@media (max-width: 900px) { :root { --pp-header-h: 76px; } }
@media (min-width: 901px) { .pp-menu__gift { position: relative; top: 6px; } }

/* ---------- Badges partenaires (Google Partner, Meta Business Partner, Shopify Partner) ---------- */
.pp-footer__partners { margin-top: 22px; }
.pp-footer__partners p { margin: 0 0 10px; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--pp-yellow); }
.pp-footer__partners ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pp-footer__partners li { display: grid; place-items: center; height: 58px; padding: 8px 12px; border-radius: 12px; background: #fff; }
.pp-footer__partners img { display: block; height: 42px; width: auto; }

.pp-partners { font-family: var(--pp-font); background: #fff; border-bottom: 3px solid var(--pp-ink); padding: 26px 24px; }
.pp-partners__in { max-width: 1240px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 18px 32px; flex-wrap: wrap; }
.pp-partners__t { margin: 0; font-size: 17px; line-height: 1.45; color: var(--pp-ink-2); max-width: 38ch; }
.pp-partners__t b { color: var(--pp-ink); font-weight: 900; }
.pp-partners ul { display: flex; flex-wrap: wrap; gap: 14px; margin: 0; padding: 0; list-style: none; }
.pp-partners li { display: flex; align-items: center; gap: 12px; padding: 10px 18px 10px 12px; border: 2.5px solid var(--pp-ink); border-radius: 16px; background: #fff; box-shadow: 4px 4px 0 var(--pp-ink); }
.pp-partners li img { display: block; height: 54px; width: auto; }
.pp-partners li span { font-weight: 800; font-size: 14px; line-height: 1.25; max-width: 15ch; }
.pp-partners li:nth-child(2) { rotate: -1deg; }
@media (max-width: 640px) {
  .pp-partners { padding: 22px 16px; }
  .pp-partners ul { width: 100%; }
  .pp-partners li { flex: 1 1 100%; }
  .pp-partners li img { height: 46px; }
}

.pp-cert { padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(48px, 6vw, 80px); }
.pp-cert__in { display: grid; grid-template-columns: auto 1fr; gap: clamp(24px, 4vw, 56px); align-items: center; }
.pp-cert__logos { display: flex; flex-wrap: wrap; gap: 14px; margin: 0; padding: 0; list-style: none; }
.pp-cert__logos li { display: grid; place-items: center; width: 220px; height: 150px; padding: 18px; border: 3px solid var(--pp-ink); border-radius: 22px; background: #fff; box-shadow: 8px 8px 0 var(--pp-ink); rotate: -2deg; }
.pp-cert__logos img { max-width: 100%; max-height: 100%; width: auto; height: auto; display: block; }
@media (max-width: 760px) { .pp-cert__in { grid-template-columns: 1fr; } .pp-cert__logos li { rotate: 0deg; } }

/* ---------- Pied de page : liens légaux ---------- */
.pp-footer__legal { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.pp-footer__legal a, .pp-footer__legal button { color: inherit; font: inherit; background: none; border: 0; padding: 0; cursor: pointer; text-decoration: none; opacity: .85; }
.pp-footer__legal a:hover, .pp-footer__legal button:hover { opacity: 1; text-decoration: underline; }

/* ---------- Bandeau cookies ---------- */
.pp-cookies {
  position: fixed; left: 16px; bottom: 16px; z-index: 3000; width: min(400px, calc(100vw - 32px));
  font-family: var(--pp-font); color: var(--pp-ink); background: #fff;
  border: 3px solid var(--pp-ink); border-radius: 20px; box-shadow: 6px 6px 0 var(--pp-ink); padding: 18px 20px;
}
.pp-cookies__t { margin: 0 0 6px; font-weight: 900; font-size: 18px; letter-spacing: -.01em; }
.pp-cookies__p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--pp-ink-2); }
.pp-cookies__p a { color: var(--pp-ink); text-decoration: underline; text-decoration-color: var(--pp-orange); text-underline-offset: 3px; }
.pp-cookies__b { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.pp-cookies__b button {
  font: inherit; font-weight: 800; font-size: 15px; padding: 11px 12px; border-radius: 12px; cursor: pointer;
  border: 2.5px solid var(--pp-ink); background: #fff; color: var(--pp-ink);
}
.pp-cookies__b button[data-v="oui"] { background: var(--pp-ink); color: #fff; }
.pp-cookies__b button:hover { background: var(--pp-yellow); color: var(--pp-ink); }
@media (max-width: 560px) { .pp-cookies { left: 12px; bottom: 12px; width: calc(100vw - 24px); padding: 16px; } }

/* Menu à 7 entrées : on resserre sur les petits écrans d'ordinateur pour que « Devis gratuit » reste visible */
@media (min-width: 901px) and (max-width: 1100px) {
  .pp-header__inner { gap: 10px; }
  .pp-logo img { height: 26px; }
  .pp-menu { gap: 0; }
  .pp-menu__link { padding: 10px 6px; font-size: 13.5px; }
  .pp-menu__gift { margin-left: 4px; }
}
@media (min-width: 901px) and (max-width: 1010px) {
  .pp-cta--desktop { display: none; }
}
