
/* =========================================================
   PRESTATIONS iDevArt v2 — styles scopés (préfixe .idvp-)
   ========================================================= */
.idvp-page{
  --idvp-ink:#171a2e;
  --idvp-muted:#5b6076;
  --idvp-paper:#ffffff;
  --idvp-mist:#f4f6fb;
  --idvp-line:#e6e9f3;
  --idvp-pink:#ff4d8d;
  --idvp-violet:#7b5cff;
  --idvp-blue:#3d8bff;
  --idvp-grad:linear-gradient(120deg,#ff4d8d,#7b5cff 55%,#3d8bff);
  --idvp-radius:18px;
  --idvp-shadow:0 10px 30px rgba(23,26,46,.07);
  font-family:'Inter',system-ui,sans-serif;
  color:var(--idvp-ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.idvp-page h1,.idvp-page h2,.idvp-page h3{font-family:'Space Grotesk','Inter',sans-serif;letter-spacing:-.02em;margin:0}
.idvp-page p{margin:0}
.idvp-page a{text-decoration:none;color:inherit}
.idvp-container{max-width:1180px;margin:0 auto;padding:0 24px}
.idvp-page :focus-visible{outline:3px solid var(--idvp-violet);outline-offset:3px;border-radius:6px}

/* Boutons */
.idvp-btn{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Space Grotesk','Inter',sans-serif;font-weight:600;font-size:.9rem;
  padding:12px 22px;border-radius:999px;border:none;cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease;
}
.idvp-btn--grad{background:var(--idvp-grad);color:#fff!important;box-shadow:0 6px 18px rgba(123,92,255,.35)}
.idvp-btn--grad:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(123,92,255,.45)}
.idvp-btn--ghost{background:transparent;border:1.5px solid rgba(255,255,255,.3);color:#fff!important}
.idvp-btn--ghost:hover{border-color:#fff}

/* ===== HERO ===== */
.idvp-hero{padding:72px 0 56px;position:relative;overflow:hidden}
.idvp-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(600px 300px at 12% 0%, rgba(255,77,141,.08), transparent 65%),
    radial-gradient(600px 300px at 88% 10%, rgba(61,139,255,.09), transparent 65%);
}
.idvp-hero .idvp-container{position:relative}
.idvp-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--idvp-violet);margin-bottom:18px;
}
.idvp-eyebrow::before{content:"";width:22px;height:2px;background:var(--idvp-grad);border-radius:2px}
.idvp-hero h1{font-size:clamp(2.1rem,4.6vw,3.4rem);line-height:1.08;font-weight:700;max-width:16ch}
.idvp-hero h1 .idvp-grad-text{background:var(--idvp-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.idvp-hero p{margin-top:20px;max-width:52ch;color:var(--idvp-muted);font-size:1.05rem}

/* ===== OFFRE PHARE ===== */
.idvp-phare{margin:48px auto 0}
.idvp-phare__card{
  border-radius:calc(var(--idvp-radius) + 4px);padding:2px;
  background:var(--idvp-grad);box-shadow:0 18px 50px rgba(123,92,255,.18);
}
.idvp-phare__inner{
  background:var(--idvp-paper);border-radius:var(--idvp-radius);
  padding:40px 44px;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;
}
.idvp-phare__tag{
  display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  background:var(--idvp-grad);color:#fff;padding:6px 14px;border-radius:999px;margin-bottom:16px;
}
.idvp-phare h2{font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.15;margin-bottom:14px}
.idvp-phare__inner > div > p{color:var(--idvp-muted);max-width:55ch}
.idvp-phare__points{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}
.idvp-phare__points li{display:flex;gap:10px;font-size:.9rem;font-weight:500}
.idvp-phare__points li::before{content:"✓";color:var(--idvp-pink);font-weight:700;flex-shrink:0}
.idvp-phare__side{background:var(--idvp-mist);border-radius:14px;padding:28px}
.idvp-phare__side p{font-size:.85rem;color:var(--idvp-muted);margin:0 0 20px}
.idvp-phare__side .idvp-btn{width:100%;justify-content:center;box-sizing:border-box}
.idvp-phare__side .idvp-btn + .idvp-btn{margin-top:10px;background:transparent;border:1.5px solid var(--idvp-line);color:var(--idvp-ink)!important;box-shadow:none}
.idvp-phare__side .idvp-btn + .idvp-btn:hover{border-color:var(--idvp-ink)}

/* ===== FAMILLES : titre sticky à gauche, cartes à droite ===== */
.idvp-services{padding:80px 0 40px}
.idvp-family{
  display:grid;grid-template-columns:250px 1fr;gap:48px;align-items:start;
  padding:56px 0;border-top:1px solid var(--idvp-line);
}
.idvp-family:first-of-type{border-top:none;padding-top:0}
.idvp-family__aside{position:sticky;top:96px}
.idvp-family__aside h2{font-size:1.45rem;font-weight:700;line-height:1.2}
.idvp-family__count{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Space Grotesk','Inter',sans-serif;font-size:.78rem;font-weight:600;
  color:var(--idvp-violet);margin-bottom:14px;letter-spacing:.08em;text-transform:uppercase;
}
.idvp-family__count::before{content:"";width:22px;height:2px;background:var(--idvp-grad);border-radius:2px}
.idvp-family__desc{color:var(--idvp-muted);margin:12px 0 0;font-size:.92rem;line-height:1.6}

.idvp-cards{display:flex;flex-direction:column;gap:16px}
.idvp-card{
  display:grid;grid-template-columns:56px 1fr auto;gap:20px;align-items:start;
  background:var(--idvp-paper);border:1px solid var(--idvp-line);border-radius:var(--idvp-radius);
  padding:26px 28px;transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.idvp-card:hover{border-color:transparent;box-shadow:var(--idvp-shadow);transform:translateY(-2px)}
.idvp-card__icon{
  width:56px;height:56px;border-radius:14px;display:grid;place-items:center;
  background:var(--idvp-mist);font-size:1.25rem;color:var(--idvp-violet);
}
.idvp-card h3{font-size:1.1rem;font-weight:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.idvp-badge{
  font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:4px 10px;border-radius:999px;background:var(--idvp-mist);color:var(--idvp-violet);
}
.idvp-card__desc{color:var(--idvp-muted);font-size:.9rem;margin-top:6px;max-width:62ch}
.idvp-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.idvp-chip{
  font-size:.76rem;font-weight:500;color:var(--idvp-muted);
  background:var(--idvp-mist);padding:5px 12px;border-radius:999px;white-space:nowrap;
}
.idvp-card__cta{
  align-self:center;font-family:'Space Grotesk','Inter',sans-serif;font-weight:600;font-size:.85rem;
  color:var(--idvp-violet);white-space:nowrap;display:inline-flex;align-items:center;gap:6px;
}
.idvp-card__cta::after{content:"→";transition:transform .15s ease}
.idvp-card:hover .idvp-card__cta::after{transform:translateX(4px)}

/* ===== CTA FINAL ===== */
.idvp-final{padding:40px 0 90px}
.idvp-final__card{
  border-radius:calc(var(--idvp-radius) + 6px);padding:64px 48px;text-align:center;
  background:var(--idvp-ink);color:#fff;position:relative;overflow:hidden;
}
.idvp-final__card::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(500px 260px at 15% 100%, rgba(255,77,141,.25), transparent 70%),
    radial-gradient(500px 260px at 85% 0%, rgba(61,139,255,.25), transparent 70%);
}
.idvp-final__card>*{position:relative}
.idvp-final__card h2{font-size:clamp(1.6rem,3vw,2.3rem);max-width:22ch;margin:0 auto 16px}
.idvp-final__card p{color:rgba(255,255,255,.7);max-width:52ch;margin:0 auto 32px;font-size:.98rem}
.idvp-final__actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ===== RESPONSIVE ===== */
@media (max-width:960px){
  .idvp-family{grid-template-columns:1fr;gap:24px;padding:44px 0}
  .idvp-family__aside{position:static}
}
@media (max-width:820px){
  .idvp-phare__inner{grid-template-columns:1fr;padding:32px 28px}
  .idvp-phare__points{grid-template-columns:1fr}
}
@media (max-width:640px){
  .idvp-card{grid-template-columns:1fr;padding:22px}
  .idvp-card__icon{width:46px;height:46px;font-size:1.05rem}
  .idvp-card__cta{align-self:start;margin-top:4px}
}
@media (prefers-reduced-motion: reduce){
  .idvp-page *{transition:none!important;animation:none!important}
}


/* =========================================================
   HABILLAGE ÉDITORIAL — préfixe idvps-
   Le catalogue .idvp-container.idvp-services conserve son design.
   ========================================================= */
.idvp-page { font-family: inherit; }
.idvp-page h1, .idvp-page h2, .idvp-page h3 { font-family: inherit; }
.idvp-page [class*="idvps-"] { box-sizing: border-box; }
.idvp-page .idvp-hero { padding: 80px 0 55px; }
.idvp-page .idvps-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    align-items: center;
    gap: 48px;
}
.idvp-page .idvps-hero-copy h1 {
    font-size: clamp(36px, 4vw, 56px);
    max-width: 19ch;
    line-height: 1.1;
    font-weight: 600;
    letter-spacing: -.045em;
}
.idvp-page .idvps-hero-copy > p {
    font-size: 15px;
    line-height: 1.85;
}
.idvp-page .idvps-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; margin: 28px 0 0; }
.idvp-page .idvps-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 14px 22px;
    border-radius: 35px;
    border: 1px solid #dedbe8;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
    transition: transform .2s, box-shadow .2s;
}
.idvp-page .idvps-button:hover { transform: translateY(-3px); box-shadow: 0 8px 24px #171a2e15; }
.idvp-page .idvps-button-dark { background: #242130; color: #fff; border-color: #242130; }
.idvp-page .idvps-text-link { font-size: 12px; font-weight: 600; }
.idvp-page .idvps-text-link:hover { color: #7657ba; }
.idvp-page .idvps-trust { display: flex; flex-wrap: wrap; gap: 15px 22px; margin-top: 24px; color: #716b7e; font-size: 10px; }
.idvp-page .idvps-trust span::before { content: '✓'; color: #7b5cff; margin-right: 7px; }
.idvp-page .idvps-composition {
    height: 450px;
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    background: radial-gradient(ellipse at 90% 5%, #6d527f, transparent 65%), #242130;
    color: #fff;
    isolation: isolate;
}
.idvp-page .idvps-art-caption, .idvp-page .idvps-art-foot {
    position: absolute;
    left: 24px;
    top: 22px;
    font-size: 8px;
    letter-spacing: .16em;
    color: #d3c4e0;
}
.idvp-page .idvps-art-foot { top: auto; bottom: 20px; }
.idvp-page .idvps-orbit {
    position: absolute;
    width: 400px;
    height: 400px;
    right: -130px;
    top: -150px;
    border: 1px solid #ffffff28;
    border-radius: 50%;
    box-shadow: 0 0 0 45px #ffffff05, 0 0 0 90px #ffffff04;
}
.idvp-page .idvps-board {
    position: absolute;
    top: 76px;
    left: 8%;
    width: 84%;
    padding: 25px;
    color: #272230;
    background: #fbf9ff;
    border: 1px solid #fff;
    border-radius: 13px;
    box-shadow: 10px 24px 50px #0003;
    transform: rotate(-4deg);
    animation: idvps-float 9s ease-in-out infinite alternate;
}
.idvp-page .idvps-board-top { display: flex; justify-content: space-between; font-size: 7px; letter-spacing: .11em; color: #807286; }
.idvp-page .idvps-board strong { display: block; font-size: 43px; font-weight: 500; line-height: 1.05; letter-spacing: -.055em; margin: 22px 0; }
.idvp-page .idvps-board-line { display: flex; gap: 8px; align-items: center; border-top: 1px solid #e4dfeb; padding: 11px 0; font-size: 10px; }
.idvp-page .idvps-board-line span { font-size: 8px; color: #906ab5; }
.idvp-page .idvps-board-line b { margin-left: auto; font-size: 13px; }
.idvp-page .idvps-art-tag { position: absolute; right: 12px; bottom: 43px; transform: rotate(4deg); background: #dfe9ad; color: #384126; padding: 11px 17px; border-radius: 7px; font-size: 10px; box-shadow: 0 6px 20px #0002; }
@keyframes idvps-float {
    from { transform: translateY(0) rotate(-4deg); }
    to { transform: translateY(-9px) rotate(-2deg); }
}
.idvp-page .idvps-objectives { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding-top: 28px; padding-bottom: 45px; }
.idvp-page .idvps-objectives article { padding: 24px 28px; border-block: 1px solid #e6e2ec; }
.idvp-page .idvps-objectives article + article { border-left: 1px solid #e6e2ec; }
.idvp-page .idvps-objectives article:first-child { padding-left: 0; }
.idvp-page .idvps-objectives article:last-child { padding-right: 0; }
.idvp-page .idvps-objectives article > span, .idvp-page .idvps-overline { font-size: 9px; letter-spacing: .12em; text-transform: uppercase; color: #81629e; }
.idvp-page .idvps-objectives h2 { font-size: 20px; line-height: 1.3; margin: 13px 0 10px; font-weight: 600; }
.idvp-page .idvps-objectives p { color: #716c7a; font-size: 13px; line-height: 1.8; }
.idvp-page .idvps-feature { padding-top: 12px; padding-bottom: 30px; }
.idvp-page .idvps-feature-inner { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; align-items: center; gap: 25px; background: #f1edf7; border: 1px solid #e3d9ed; padding: 30px; border-radius: 16px; }
.idvp-page .idvps-feature-symbol { font-size: 43px; color: #7c5998; }
.idvp-page .idvps-feature h2 { font-size: 25px; line-height: 1.2; font-weight: 500; margin: 8px 0 10px; }
.idvp-page .idvps-feature p { font-size: 13px; color: #74697f; }
.idvp-page .idvps-feature .idvps-button { background: white; }
.idvp-page .idvps-catalogue-intro { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 50px; padding-top: 40px; scroll-margin-top: 110px; }
.idvp-page .idvps-catalogue-intro h2 { font-size: 38px; line-height: 1.12; letter-spacing: -.045em; font-weight: 500; margin: 14px 0 0; }
.idvp-page .idvps-catalogue-intro p { font-size: 14px; color: #746e7e; max-width: 460px; }
.idvp-page .idvps-approach { display: grid; grid-template-columns: 1fr 1.2fr; gap: 70px; padding-top: 55px; padding-bottom: 65px; }
.idvp-page .idvps-approach-heading h2 { font-size: 46px; line-height: 1.08; font-weight: 500; letter-spacing: -.05em; margin: 20px 0; }
.idvp-page .idvps-approach-heading em { color: #8b70a5; font-style: normal; }
.idvp-page .idvps-principles article { display: flex; gap: 22px; border-top: 1px solid #e6e2ec; padding: 24px 0; }
.idvp-page .idvps-principles article > span { font-size: 11px; color: #9275a9; padding-top: 3px; }
.idvp-page .idvps-principles h3 { font-size: 19px; font-weight: 500; margin-bottom: 9px; }
.idvp-page .idvps-principles p { font-size: 13px; color: #746e7e; line-height: 1.8; }
.idvp-page .idvps-contact { padding-bottom: 80px; }
.idvp-page .idvps-contact-inner { display: flex; align-items: center; justify-content: space-between; gap: 35px; background: #242130; color: white; border-radius: 22px; padding: 48px; }
.idvp-page .idvps-contact .idvps-overline { color: #c0aad2; }
.idvp-page .idvps-contact h2 { font-size: 40px; line-height: 1.1; letter-spacing: -.04em; font-weight: 500; margin: 17px 0; }
.idvp-page .idvps-contact p { font-size: 13px; color: #bdb4c8; max-width: 460px; }
.idvp-page .idvps-button-light { color: #2b2435; background: #e7ddb5; border-color: #e7ddb5; flex-shrink: 0; }
@media (max-width: 900px) {
    .idvp-page .idvps-hero-grid { grid-template-columns: 1fr; }
    .idvp-page .idvps-hero-copy h1 { max-width: 24ch; }
    .idvp-page .idvps-composition { max-width: 560px; width: 100%; }
    .idvp-page .idvps-feature-inner { grid-template-columns: 45px minmax(0, 1fr); }
    .idvp-page .idvps-feature .idvps-button { grid-column: 2; justify-self: start; }
    .idvp-page .idvps-approach { gap: 35px; }
    .idvp-page .idvps-contact-inner { padding: 35px; flex-wrap: wrap; }
}
@media (max-width: 600px) {
    .idvp-page .idvp-hero { padding-top: 45px; }
    .idvp-page .idvps-composition { height: 405px; }
    .idvp-page .idvps-board { padding: 20px; }
    .idvp-page .idvps-board strong { font-size: 35px; }
    .idvp-page .idvps-board-line { font-size: 8px; }
    .idvp-page .idvps-art-caption { font-size: 7px; }
    .idvp-page .idvps-objectives, .idvp-page .idvps-catalogue-intro, .idvp-page .idvps-approach { grid-template-columns: 1fr; }
    .idvp-page .idvps-objectives article, .idvp-page .idvps-objectives article:first-child, .idvp-page .idvps-objectives article:last-child { padding: 22px 0; border-top: 0; }
    .idvp-page .idvps-objectives article + article { border-left: 0; }
    .idvp-page .idvps-feature-inner { padding: 24px; grid-template-columns: 1fr; gap: 14px; }
    .idvp-page .idvps-feature-symbol { display: none; }
    .idvp-page .idvps-feature .idvps-button { grid-column: 1; }
    .idvp-page .idvps-catalogue-intro { gap: 20px; }
    .idvp-page .idvps-catalogue-intro h2 { font-size: 33px; }
    .idvp-page .idvps-approach-heading h2 { font-size: 38px; }
    .idvp-page .idvps-contact-inner { padding: 28px; }
    .idvp-page .idvps-contact h2 { font-size: 32px; }
}
@media (prefers-reduced-motion: reduce) {
    .idvp-page .idvps-board { animation: none; }
}
