* {
    margin: 0;
    padding: 0;
    box-sizing: border-box
}

:root {
    --purple: #4A148C;
    --purple-mid: #6A1B9A;
    --purple-light: #9C27B0;
    --purple-deep: #311B92;
    --lavender: #EDE7F6;
    --cream: #FAFAF8;
    --warm-white: #F5F3EE;
    --black: #0A0A0A;
    --text-main: #1A0E2E;
    --text-body: #4A3D6B;
    --text-muted: #8B7AAE;
    --p: var(--purple);
    --pd: var(--purple-deep);
    --pm: var(--purple-mid);
    --pl: var(--purple-light);
    --or: #FF7A33;
    --dark: var(--text-main);
    --warm: var(--warm-white)
}

html {
    scroll-behavior: smooth;
    overflow-x: hidden
}

body {
    font-family: 'Montserrat', sans-serif;
    background: var(--cream);
    color: var(--text-main);
    overflow-x: hidden
}

img {
    max-width: 100%
}

::-webkit-scrollbar {
    width:4px
}

::-webkit-scrollbar-track {
    background:var(--lavender)
}

::-webkit-scrollbar-thumb {
    background: var(--purple);
    border-radius: 4px
}

#hero {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 120px 60px 80px;
    gap: 60px;
    align-items: center;
    position: relative;
    overflow: hidden;
    background: linear-gradient(160deg, #0D0822 0%, #1A0E2E 40%, #2D1B4E 70%, #3D1580 100%)
}

.hero-glow {
    position: absolute;
    right: -220px;
    top: -140px;
    width: 620px;
    height: 620px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(156, 39, 176, .18), transparent 70%);
    pointer-events: none
}

.hero-grid {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(255, 255, 255, .03) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .03) 1px, transparent 1px);
    background-size: 48px 48px;
    pointer-events: none
}

.hero-left {
    position: relative;
    z-index: 1
}

.hero-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 10px;
    letter-spacing: .4em;
    font-weight: 700;
    color: var(--purple-light);
    text-transform: uppercase;
    margin-bottom: 28px
}

h1.hero-h1 {
    font-size: clamp(30px, 5vw, 66px);
    font-weight: 900;
    line-height: 1.08;
    letter-spacing: -.03em;
    color: #fff;
    margin-bottom: 24px
}

h1.hero-h1 em {
    font-style: normal;
    color: var(--or);
    text-shadow: 0 0 18px rgba(255, 122, 51, .45), 0 0 46px rgba(255, 122, 51, .2);
    animation: orGlow 4s ease-in-out infinite
}

@keyframes orGlow {
    0%, 100% { text-shadow: 0 0 18px rgba(255, 122, 51, .45), 0 0 46px rgba(255, 122, 51, .2) }
    50% { text-shadow: 0 0 26px rgba(255, 122, 51, .6), 0 0 60px rgba(255, 122, 51, .3) }
}

.hero-sub {
    font-size: clamp(13px, 1.6vw, 15px);
    font-weight: 300;
    line-height: 1.85;
    color: rgba(255, 255, 255, .58);
    margin-bottom: 44px;
    max-width: 440px
}

.hero-ctas {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-bottom: 56px;
    flex-wrap: wrap
}

.btn-primary {
    padding: 16px 36px;
    background: var(--purple);
    border: none;
    border-radius: 60px;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    color: #fff;
    text-transform: uppercase;
    cursor: pointer;
    transition: all .3s ease;
    box-shadow: 0 4px 20px rgba(74, 20, 140, .2)
}

.btn-primary:hover {
    background: var(--purple-mid);
    transform: translateY(-2px);
    box-shadow: 0 12px 36px rgba(74, 20, 140, .3)
}

.btn-outline {
    padding: 15px 32px;
    background: transparent;
    border: 1.5px solid rgba(255, 255, 255, .25);
    border-radius: 60px;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    color: rgba(255, 255, 255, .8);
    text-transform: uppercase;
    cursor: pointer;
    transition: all .3s ease;
    display: flex;
    align-items: center;
    gap: 8px
}

.btn-outline:hover {
    border-color: rgba(255, 122, 51, .5);
    background: rgba(255, 122, 51, .1);
    color: var(--or)
}

.btn-outline::after {
    content: '→';
    font-size: 14px
}

.hero-badges {
    display: flex;
    gap: 16px;
    flex-wrap: wrap
}

.badge {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 40px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .05em;
    color: rgba(255, 255, 255, .75)
}

.badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--or)
}

.hero-right {
    position: relative;
    z-index: 1;
    height: 580px
}

.hero-visual-wrap {
    width: 100%;
    height: 100%;
    border-radius: 28px;
    overflow: hidden;
    position: relative;
    background: var(--black);
    border: 1px solid rgba(255, 255, 255, .1);
    box-shadow: 0 30px 90px rgba(13, 8, 34, .55);
    animation: heroFloat 8s ease-in-out infinite
}

@keyframes heroFloat {
    0%, 100% { transform: translateY(0) }
    50% { transform: translateY(-14px) }
}

.hero-visual-halo {
    position: absolute;
    inset: -10%;
    border-radius: 40px;
    background: radial-gradient(circle, rgba(192, 132, 252, .3), rgba(255, 122, 51, .1) 45%, transparent 72%);
    filter: blur(20px);
    z-index: 0;
    pointer-events: none;
    animation: heroHaloPulse 5s ease-in-out infinite
}

.hero-visual-wrap { z-index: 1 }

.hero-orbit {
    position: absolute;
    inset: -34px;
    width: calc(100% + 68px);
    height: calc(100% + 68px);
    z-index: 0;
    pointer-events: none;
    overflow: visible
}

.hero-orbit-ring {
    fill: none;
    stroke: rgba(255, 255, 255, .1);
    stroke-width: .5;
    stroke-dasharray: 1.2 4.4;
    animation: heroOrbitSpin 60s linear infinite
}

.hero-orbit-arc {
    fill: none;
    stroke: var(--or);
    stroke-width: .9;
    stroke-linecap: round;
    stroke-dasharray: 62 236;
    opacity: .8;
    filter: drop-shadow(0 0 6px rgba(255, 122, 51, .55));
    transform-origin: 50px 50px;
    animation: heroOrbitSpin 9s linear infinite
}

@keyframes heroOrbitSpin {
    to { transform: rotate(360deg) }
}

@keyframes heroHaloPulse {
    0%, 100% { transform: scale(1); opacity: .75 }
    50% { transform: scale(1.05); opacity: 1 }
}

.hero-float-tag {
    position: absolute;
    bottom: 32px;
    right: 32px;
    background: rgba(255, 255, 255, .95);
    border: 1px solid rgba(74, 20, 140, .1);
    border-radius: 16px;
    padding: 14px 20px;
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 32px rgba(74, 20, 140, .1);
    animation: heroBadgeBob 5.5s ease-in-out infinite;
    animation-delay: .4s
}

.hero-float-tag .num {
    font-size: 22px;
    font-weight: 800;
    color:var(--purple)
}

.hero-float-tag .lab {
    font-size: 10px;
    letter-spacing: .15em;
    color: var(--text-muted);
    text-transform: uppercase;
    font-weight: 600
}

.hero-float-badge {
    position: absolute;
    top: 32px;
    left: 32px;
    background: var(--purple);
    border-radius: 12px;
    padding: 10px 16px;
    font-size: 10px;
    letter-spacing: .2em;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    box-shadow: 0 10px 26px -8px rgba(74, 20, 140, .7);
    animation: heroBadgeBob 6s ease-in-out infinite;
    animation-delay: .8s
}

.hero-float-live {
    position: absolute;
    bottom: 32px;
    left: 32px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(15, 8, 32, .55);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 40px;
    padding: 9px 16px;
    font-size: 10px;
    letter-spacing: .1em;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    animation: heroBadgeBob 6.5s ease-in-out infinite;
    animation-delay: 1.1s
}

.live-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--or);
    box-shadow: 0 0 0 0 rgba(255, 122, 51, .6);
    animation: livePulse 1.8s ease-out infinite
}

@keyframes livePulse {
    0% { box-shadow: 0 0 0 0 rgba(255, 122, 51, .55) }
    70% { box-shadow: 0 0 0 8px rgba(255, 122, 51, 0) }
    100% { box-shadow: 0 0 0 0 rgba(255, 122, 51, 0) }
}

@keyframes heroBadgeBob {
    0%, 100% { transform: translateY(0) }
    50% { transform: translateY(-8px) }
}

.section {
    padding:100px 60px
}

.section-alt {
    background: var(--warm-white)
}

.section-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 10px;
    letter-spacing: .4em;
    font-weight: 700;
    color: var(--purple-light);
    text-transform: uppercase;
    margin-bottom: 16px
}

.section-title {
    font-size: clamp(26px, 3.2vw, 46px);
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: var(--text-main)
}

.section-title em {
    font-style: normal;
    color: var(--or)
}

.section-sub {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.8;
    color: var(--text-body);
    max-width: 500px;
    margin-top: 14px
}

.centered {
    text-align:center
}

.centered .section-sub {
    margin: 14px auto 0
}

#espaces, .section-alt {
    background:var(--warm-white)
}

/* ---------- Section "Pourquoi créer du contenu" : texte + carte côte à côte ---------- */
.pb-pourquoi-grid{display:grid;grid-template-columns:0.85fr 1fr;gap:60px;align-items:center;}
.pb-pourquoi-text{text-align:left;}

/* ---------- Showcase "carte de crédibilité" (media kit, remplace le mockup téléphone) ---------- */
.pb-showcase{position:relative;max-width:460px;margin:0 auto;display:flex;align-items:center;justify-content:center;min-height:480px;}
.pb-showcase-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(900px 480px at 50% 20%,rgba(156,39,176,0.07),transparent 65%);}

.pb-card{position:relative;width:400px;max-width:90vw;border-radius:26px;background:linear-gradient(165deg,#fff,#faf8ff);border:1px solid rgba(74,20,140,0.1);box-shadow:0 50px 100px -30px rgba(74,20,140,0.35),0 14px 30px -10px rgba(74,20,140,0.18);opacity:0;transform:translateY(40px) scale(0.96);transition:opacity 0.8s cubic-bezier(0.22,1,0.36,1),transform 0.8s cubic-bezier(0.22,1,0.36,1);padding:30px 28px 26px;overflow:hidden;}
.pb-showcase.visible .pb-card{opacity:1;transform:translateY(0) scale(1);}
.pb-card-glow{position:absolute;top:-60px;right:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(255,122,51,0.18),transparent 70%);pointer-events:none;}

.pb-card-top{position:relative;display:flex;align-items:center;gap:14px;margin-bottom:20px;}
.pb-card-portrait{width:56px;height:56px;flex-shrink:0;border-radius:50%;background:linear-gradient(150deg,var(--purple-light),var(--purple),var(--or)) center/cover no-repeat;background-blend-mode:normal;border:2px solid #fff;box-shadow:0 8px 20px -6px rgba(74,20,140,0.5);}
.pb-card-id{flex:1;min-width:0;}
.pb-card-name{width:130px;max-width:100%;height:12px;border-radius:6px;background:linear-gradient(90deg,rgba(74,20,140,0.24),rgba(74,20,140,0.1));margin-bottom:8px;}
.pb-card-title{width:90px;max-width:80%;height:8px;border-radius:5px;background:rgba(74,20,140,0.12);}
.pb-card-mark{font-size:20px;color:var(--or);line-height:1;flex-shrink:0;}

.pb-card-quote{position:relative;font-size:13px;font-weight:500;font-style:italic;line-height:1.6;color:var(--text-body);padding:16px 18px 16px 20px;background:rgba(74,20,140,0.04);border-left:2px solid var(--or);border-radius:0 12px 12px 0;margin-bottom:22px;opacity:0;transform:translateY(10px);transition:opacity 0.6s ease,transform 0.6s ease;}
.pb-showcase.visible .pb-card-quote{opacity:1;transform:none;transition-delay:0.25s;}
.pb-quote-mark{color:var(--or);font-weight:800;font-style:normal;margin-right:2px;}

.pb-card-press{margin-bottom:22px;opacity:0;transform:translateY(10px);transition:opacity 0.6s ease,transform 0.6s ease;}
.pb-showcase.visible .pb-card-press{opacity:1;transform:none;transition-delay:0.4s;}
.pb-press-lbl{display:block;font-size:8.5px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;}
.pb-press-row{display:flex;gap:10px;}
.pb-press-logo{flex:1;height:20px;border-radius:5px;background:linear-gradient(90deg,rgba(74,20,140,0.1),rgba(74,20,140,0.05));}

.pb-card-stats{display:flex;justify-content:space-between;gap:6px;padding-top:18px;border-top:1px solid rgba(74,20,140,0.1);}
.pb-pstat{flex:1;text-align:center;opacity:0;transform:translateY(8px);transition:opacity 0.5s ease,transform 0.5s ease;}
.pb-showcase.visible .pb-pstat{opacity:1;transform:none;}
.pb-showcase.visible .pb-pstat:nth-child(1){transition-delay:0.55s;}
.pb-showcase.visible .pb-pstat:nth-child(2){transition-delay:0.65s;}
.pb-showcase.visible .pb-pstat:nth-child(3){transition-delay:0.75s;}
.pb-pstat b{display:block;font-size:16px;font-weight:800;color:var(--text-main);letter-spacing:-0.01em;}
.pb-pstat-mid b{color:var(--or);}
.pb-pstat span{display:block;font-size:8px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--text-muted);margin-top:4px;}

/* badges flottants autour de la carte, même logique que sites-web (.sw-float) */
.pb-float{position:absolute;z-index:5;display:flex;align-items:center;gap:10px;padding:11px 15px;background:rgba(255,255,255,0.94);backdrop-filter:blur(10px);border:1px solid rgba(74,20,140,0.12);border-radius:14px;box-shadow:0 18px 40px -16px rgba(74,20,140,0.45);opacity:0;}
.pb-showcase.visible .pb-float{animation:pbFloatIn 0.6s cubic-bezier(0.22,1,0.36,1) both,pbBob 5.5s ease-in-out infinite;}
.pb-float span{display:block;font-size:14px;font-weight:800;color:var(--text-main);line-height:1.1;}
.pb-float small{display:block;font-size:9.5px;font-weight:600;letter-spacing:0.03em;color:var(--text-muted);text-transform:uppercase;margin-top:2px;}
.pb-float svg{width:20px;height:20px;color:var(--or);flex-shrink:0;}
.pb-float-verified{top:2%;left:0%;animation-delay:1.1s,1.6s;}
.pb-float-star{top:46%;right:-2%;animation-delay:1.3s,1.8s;}
.pb-float-time{bottom:6%;left:4%;animation-delay:1.5s,2s;}
@keyframes pbFloatIn{from{opacity:0;transform:translateY(16px) scale(0.9);}to{opacity:1;transform:none;}}
@keyframes pbBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

@media(max-width:900px){
  .pb-pourquoi-grid{grid-template-columns:1fr;gap:40px;}
  .pb-pourquoi-grid>*{min-width:0;}
  .pb-pourquoi-text{text-align:center;}
  .pb-showcase{min-height:auto;padding:20px 0;flex-direction:column;}
  .pb-card{width:100%;max-width:400px;}
  .pb-float{position:static;margin:10px auto 0;width:100%;max-width:260px;opacity:1;animation:none!important;}
}
@media(max-width:600px){
  .pb-card{padding:24px 20px 22px;}
  .pb-card-quote{font-size:12px;padding:14px 14px 14px 16px;}
  .pb-pstat b{white-space:nowrap;}
}
@media(max-width:1024px){
  /* le compteur animé (span dans le <b>) ne doit pas reprendre le style de
     la petite étiquette sous le chiffre */
  .pb-pstat b span{display:inline;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:none;color:inherit;margin-top:0;}
}

/* ---------- Bandeau "inclus" (marquee) ---------- */
#pb-inclus{background:linear-gradient(160deg,#0D0822,#231242 60%,#3a1a6b);padding:44px 0;overflow:hidden;}
.pb-inclus-lbl{text-align:center;font-size:9px;letter-spacing:0.4em;font-weight:700;color:var(--or);text-transform:uppercase;margin-bottom:22px;}
.pb-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);}
.pb-marquee-track{display:flex;gap:14px;width:max-content;animation:pbMarquee 34s linear infinite;}
.pb-marquee:hover .pb-marquee-track{animation-play-state:paused;}
@keyframes pbMarquee{to{transform:translateX(-50%);}}
.pb-pill{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;padding:11px 22px;border-radius:40px;border:1px solid rgba(255,255,255,0.16);background:rgba(255,255,255,0.04);font-size:12px;font-weight:600;letter-spacing:0.02em;color:rgba(255,255,255,0.82);white-space:nowrap;}
.pb-pill::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--or);flex-shrink:0;}

/* ---------- Bandeau de chiffres sombre (avant tarifs) ---------- */
#pb-stats{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:72px 8vw;background:linear-gradient(160deg,#1A0E2E,#2D1B4E);overflow:hidden;text-align:center;}
.pb-stats-glow{position:absolute;top:-40%;left:50%;transform:translateX(-50%);width:700px;height:500px;background:radial-gradient(circle,rgba(255,122,51,0.14),transparent 70%);pointer-events:none;}
.pb-stat{position:relative;z-index:1;opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease;}
#pb-stats.visible .pb-stat{opacity:1;transform:none;}
#pb-stats.visible .pb-stat:nth-child(2){transition-delay:.1s;}
#pb-stats.visible .pb-stat:nth-child(3){transition-delay:.2s;}
#pb-stats.visible .pb-stat:nth-child(4){transition-delay:.3s;}
.pb-stat b{display:block;font-size:clamp(30px,3.6vw,48px);font-weight:900;letter-spacing:-.02em;color:#fff;margin-bottom:8px;}
.pb-stat>span{display:block;font-size:11.5px;font-weight:500;letter-spacing:.02em;color:rgba(255,255,255,.5);max-width:180px;margin:0 auto;line-height:1.5;}

@media(max-width:900px){
  #pb-stats{grid-template-columns:repeat(2,1fr);gap:36px 20px;padding:56px 6vw;}
}

.espaces-header {
    margin-bottom: 60px
}

.espaces-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px
}

.espace-card {
    border-radius: 24px;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(74, 20, 140, .08);
    box-shadow: 0 4px 30px rgba(74, 20, 140, .05);
    transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease;
    cursor: pointer;
    will-change: transform
}

.espace-card:hover {
    transform: translateY(-10px) scale(1.015) rotate(-0.4deg);
    box-shadow: 0 26px 64px -16px rgba(74, 20, 140, .3)
}

.espace-card:nth-child(2):hover {
    transform: translateY(-10px) scale(1.015) rotate(0.4deg)
}

.espace-visual {
    height: 220px;
    position: relative;
    overflow: hidden;
    background: #1A0E2E;
    display: flex;
    align-items: center;
    justify-content: center
}

.espace-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease
}

.espace-card:hover .espace-visual img {
    transform: scale(1.05)
}

.espace-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 50%, rgba(74, 20, 140, .08))
}

.espace-badge {
    position: absolute;
    top: 16px;
    left: 16px;
    background: #fff;
    border-radius: 40px;
    padding: 4px 14px;
    font-size: 9px;
    letter-spacing: .2em;
    font-weight: 700;
    color: var(--purple);
    text-transform: uppercase
}

.espace-body {
    padding:28px
}

.espace-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--text-main);
    margin-bottom: 10px
}

.espace-desc {
    font-size: 13px;
    font-weight: 300;
    line-height: 1.75;
    color: var(--text-body);
    margin-bottom: 24px
}

.espace-features {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 24px
}

.feature-pill {
    padding: 4px 12px;
    background: var(--lavender);
    border-radius: 40px;
    font-size: 10px;
    font-weight: 600;
    color: var(--purple);
    letter-spacing: .05em
}

.btn-card {
    width: 100%;
    padding: 13px;
    background: var(--lavender);
    border: none;
    border-radius: 60px;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--purple);
    text-transform: uppercase;
    cursor: pointer;
    transition: all .3s
}

.btn-card:hover {
    background: var(--purple);
    color: #fff
}

#tarifs {
    padding: 100px 60px
}

#contact {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg,#F8F6FC 0%, var(--lavender) 100%);
    padding:100px 60px
}

#contact::before {
    content: '';
    position: absolute;
    top: -30%;
    right: -10%;
    width: 640px;
    height: 640px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(156,39,176,.1), transparent 70%);
    pointer-events: none
}

.contact-header {
    position: relative;
    z-index: 1;
    margin-bottom: 60px
}

.contact-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 40px;
    align-items: start
}

.contact-info h3 {
    font-size: clamp(22px, 2.5vw, 36px);
    font-weight: 900;
    color: var(--text-main);
    margin-bottom: 16px;
    line-height: 1.15
}

.contact-info .desc {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.8;
    color: var(--text-body);
    margin-bottom: 36px
}

.ci-wrap {
    display: flex;
    flex-direction: column;
    border-top: 1px solid rgba(74, 20, 140, .14);
    margin-bottom: 32px
}

.ci {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 19px 0;
    border-bottom: 1px solid rgba(74, 20, 140, .14);
    transition: padding-left .3s
}

.ci:hover {
    padding-left: 6px
}

.ci-ic {
    color: var(--p);
    flex-shrink: 0
}

.ci-l {
    font-size: 9px;
    letter-spacing: .16em;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    margin-bottom: 4px
}

.ci-v {
    font-size: 14px;
    font-weight: 600;
    color: var(--dark)
}

.ci-socials {
    margin-bottom: 30px
}

.ci-soc-lbl {
    font-size: 9px;
    letter-spacing: .16em;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    margin-bottom: 14px
}

.ci-soc-row {
    display: flex;
    gap: 10px
}

/* Variante claire du bouton social partagé (.soc-ic est défini plus bas pour
   le footer sombre) — ce bloc contact est sur fond clair. */
.ci-soc-row .soc-ic {
    width: 40px;
    height: 40px;
    border-color: rgba(74, 20, 140, .16);
    color: var(--p)
}

.ci-soc-row .soc-ic svg {
    width: 16px;
    height: 16px
}

.ci-soc-row .soc-ic:hover {
    box-shadow: 0 10px 24px rgba(74, 20, 140, .22)
}

.ci-soc-row .soc-ic::after {
    background: var(--dark);
    color: #fff
}

.ci-soc-row .soc-ic::before {
    border-top-color: var(--dark)
}

.btn-contact {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 15px 32px;
    background: linear-gradient(135deg, var(--pd), var(--p), var(--pm));
    border: none;
    border-radius: 60px;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    color: #fff;
    text-transform: uppercase;
    cursor: pointer;
    transition: all .3s;
    box-shadow: 0 4px 24px rgba(74, 20, 140, .25)
}

.btn-contact:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 34px rgba(74, 20, 140, .35)
}

.cr {
    background: #fff;
    border-radius: 26px;
    padding: 44px;
    border: 1px solid rgba(74, 20, 140, .08);
    box-shadow: 0 24px 64px rgba(74, 20, 140, .12)
}

.cr-t {
    font-size: 19px;
    font-weight: 900;
    color: var(--dark);
    margin-bottom: 6px;
    letter-spacing: -0.01em
}

.cr-s {
    font-size: 12px;
    font-weight: 300;
    color: var(--text-muted);
    margin-bottom: 30px
}

.cr-slots {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-top: 1px solid rgba(74, 20, 140, .12);
    margin-bottom: 30px
}

.crs {
    padding: 16px 0;
    border-bottom: 1px solid rgba(74, 20, 140, .12)
}

.crs:nth-child(odd) {
    padding-right: 18px;
    border-right: 1px solid rgba(74, 20, 140, .12)
}

.crs:nth-child(even) {
    padding-left: 18px
}

.crs-d {
    font-size: 9px;
    letter-spacing: .1em;
    font-weight: 700;
    color: var(--dark);
    text-transform: uppercase
}

.crs-t {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--text-muted);
    margin-top: 4px
}

.btn-pl {
    width: 100%;
    padding: 17px;
    background: linear-gradient(135deg, var(--pd), var(--p), var(--pm));
    border: none;
    border-radius: 60px;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    color: #fff;
    text-transform: uppercase;
    cursor: pointer;
    transition: all .3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-shadow: 0 4px 24px rgba(74, 20, 140, .28)
}

.btn-pl:hover {
    box-shadow: 0 14px 40px rgba(74, 20, 140, .4);
    transform: translateY(-2px)
}

.btn-pl::after {
    content: '↗'
}

/* Footer premium — voir en fin de fichier pour le bloc harmonisé avec les
   autres pages (.ft, .ft-cta, .ft-brand, etc.) */

.fade-in {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s ease, transform .7s ease
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0)
}

.pricing-row {
    display: grid;
    grid-template-columns: 1fr 1.08fr 1fr;
    gap: 20px;
    align-items: stretch
}

.prc {
    border-radius: 28px;
    position: relative;
    transition: transform .4s cubic-bezier(.34, 1.2, .64, 1)
}

.prc:hover {
    transform: translateY(-10px) !important
}

.prc-inner {
    height: 100%;
    border-radius: 28px;
    padding: 36px 32px 32px;
    background: #fff;
    border: 1px solid rgba(74, 20, 140, .1);
    box-shadow: 0 4px 40px rgba(74, 20, 140, .06);
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    transition: box-shadow .4s
}

.prc:hover .prc-inner {
    box-shadow: 0 24px 60px rgba(74, 20, 140, .14)
}

.prc-inner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--pd), var(--pl), var(--or));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .4s
}

.prc:hover .prc-inner::before,
.prc-featured .prc-inner::before {
    transform: scaleX(1)
}

.prc-glow {
    position: absolute;
    top: -80px;
    right: -80px;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(156, 39, 176, .07), transparent 70%);
    pointer-events: none;
    transition: opacity .4s;
    opacity: 0
}

.prc:hover .prc-glow {
    opacity: 1
}

.prc-glow-featured {
    opacity: 1 !important;
    background: radial-gradient(circle, rgba(255, 255, 255, .15), transparent 70%)
}

.prc-featured .prc-inner {
    background: #fff;
    border: 1.5px solid rgba(74, 20, 140, .18);
    box-shadow: 0 8px 40px rgba(74, 20, 140, .1)
}

.prc-featured:hover .prc-inner {
    box-shadow: 0 28px 80px rgba(74, 20, 140, .18)
}

.prc-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px
}

.prc-num {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .2em;
    color: rgba(74, 20, 140, .2)
}

.prc-tag {
    font-size: 9px;
    letter-spacing: .22em;
    font-weight: 700;
    color: rgba(74, 20, 140, .5);
    text-transform: uppercase;
    background: var(--lavender);
    padding: 4px 12px;
    border-radius: 40px
}

.prc-price-wrap {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    margin-bottom: 4px
}

.prc-currency {
    font-size: 22px;
    font-weight: 700;
    color: var(--purple);
    margin-top: 10px;
    line-height: 1
}

.prc-amount {
    font-size: clamp(40px, 5vw, 72px);
    font-weight: 900;
    color: var(--text-main);
    line-height: 1;
    letter-spacing: -.04em
}

.prc-unit {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 400;
    margin-bottom: 16px;
    letter-spacing: .04em
}

.prc-desc {
    font-size: 13px;
    font-weight: 300;
    line-height: 1.75;
    color: var(--text-body);
    margin-bottom: 18px
}

.prc-divider {
    height: 1px;
    background: rgba(74, 20, 140, .08);
    margin-bottom: 18px
}

.prc-list {
    list-style: none;
    margin-bottom: 28px;
    display: flex;
    flex-direction: column;
    gap: 9px;
    flex: 1
}

.prc-list li {
    font-size: 12px;
    font-weight: 400;
    color: var(--text-body);
    display: flex;
    align-items: center;
    gap: 10px
}

.prc-list li::before {
    content: '';
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--purple-light);
    flex-shrink: 0
}

.prc-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 15px;
    background: var(--lavender);
    border: none;
    border-radius: 60px;
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--purple);
    text-transform: uppercase;
    cursor: pointer;
    transition: all .3s ease;
    margin-top: auto
}

.prc-btn svg {
    transition: transform .3s
}

.prc-btn:hover {
    background: var(--purple);
    color:#fff
}

.prc-btn:hover svg {
    transform: translateX(4px)
}

.prc-btn-featured {
    background: rgba(255, 255, 255, .15);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .25);
    backdrop-filter: blur(8px)
}


@media (max-width: 1024px) {
    .contact-grid {
        grid-template-columns: 1fr
    }

    /* le retour à la ligne forcé du titre laissait un mot seul sur
       tablette/mobile : on laisse le navigateur équilibrer les lignes */
    h1.hero-h1 br {
        display: none
    }
}

@media (max-width: 900px) {
    #hero {
        grid-template-columns: 1fr;
        padding: 100px 24px 60px;
        gap: 40px
    }

    .hero-right {
        height: 340px
    }

    .section, .section-alt, #tarifs, #contact {
        padding: 70px 24px
    }

    .ft {
        flex-direction: column;
        gap: 28px
    }

    .espaces-grid {
        grid-template-columns: 1fr
    }

    .pricing-row {
        grid-template-columns: 1fr
    }

    #pourquoi-contenu > div[style * ="grid-template-columns:repeat(3,1fr)"] {
        grid-template-columns: 1fr !important
    }
}

@media (max-width: 600px) {
    h1.hero-h1 {
        font-size: clamp(28px, 9vw, 44px)
    }

    .contact-header {
        margin-bottom: 32px
    }

    .hero-sub {
        max-width: 100%
    }

    .hero-ctas {
        flex-direction: column;
        width: 100%
    }

    .hero-ctas button {
        width: 100%
    }

    .hero-badges {
        gap: 8px
    }

    .badge {
        font-size: 10px;
        padding: 6px 12px
    }

    .section, .section-alt, #tarifs, #contact, footer {
        padding: 56px 18px
    }

    .contact-grid {
        gap: 24px
    }

    .cr, .prc-inner {
        padding: 28px 22px
    }

    .cr-slots {
        gap: 8px
    }

    .ft-nav {
        flex-wrap: wrap;
        gap: 24px 28px
    }

    .ft-btm {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px
    }

    .prc-amount {
        font-size: clamp(36px, 10vw, 56px)
    }
}

@media (max-width: 480px) {
    .espace-body {
        padding: 20px
    }

    .cr-slots {
        grid-template-columns: 1fr
    }

    /* une seule colonne : on retire le séparateur et le retrait prévus
       pour la grille à deux colonnes */
    .crs:nth-child(odd), .crs:nth-child(even) {
        padding: 14px 0;
        border-right: none
    }

    .ci-soc-row {
        gap: 8px
    }
}

@media(prefers-reduced-motion:reduce){
  .hero-visual-wrap,.hero-visual-halo,.hero-float-tag,.hero-float-badge,.hero-float-live,.live-dot,.hero-orbit-ring,.hero-orbit-arc{animation:none!important;}
  h1.hero-h1 em{animation:none!important;}
  .pb-marquee-track{animation:none;}
  .pb-float{animation:none!important;opacity:1!important;transform:none!important;}
  .pb-card,.pb-pstat,.pb-card-quote,.pb-card-press{opacity:1!important;transform:none!important;transition:none!important;}
  .espace-card{transition:box-shadow .3s ease;}
  .espace-card:hover,.espace-card:nth-child(2):hover{transform:none;}
  .pb-stat{opacity:1!important;transform:none!important;transition:none!important;}
}

/* ---------- Dialogue "morphing" (formats) ---------- */
.fmd-overlay{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px;}
.fmd-overlay.open{display:flex;}
.fmd-backdrop{position:absolute;inset:0;background:rgba(15,8,32,0.72);backdrop-filter:blur(6px);opacity:0;}
.fmd-box{position:relative;width:min(640px,92vw);max-height:86vh;overflow-y:auto;background:#fff;border-radius:24px;opacity:0;transform-origin:center center;box-shadow:0 30px 80px rgba(20,10,40,0.35);}
.fmd-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:rgba(74,20,140,0.06);border:none;color:var(--purple);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;transition:background 0.3s;}
.fmd-close:hover{background:rgba(74,20,140,0.14);}
.fmd-content{padding:44px 36px 36px;}
.fmd-badge{display:inline-block;background:var(--lavender);border-radius:40px;padding:5px 14px;font-size:9px;letter-spacing:0.2em;font-weight:700;color:var(--purple);text-transform:uppercase;margin-bottom:16px;}
.fmd-title{font-size:24px;font-weight:800;color:var(--text-main);margin-bottom:12px;letter-spacing:-0.01em;}
.fmd-desc{font-size:13.5px;font-weight:300;line-height:1.8;color:var(--text-body);margin-bottom:20px;}
.fmd-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px;}
.fmd-examples{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.fmd-ex{aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:var(--lavender);}
.fmd-ex img{width:100%;height:100%;object-fit:cover;display:block;}
.fmd-ex-ph{display:flex;align-items:center;justify-content:center;text-align:center;padding:10px;background:linear-gradient(150deg,#EDE7F6,#D8C8EE);font-size:9px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:rgba(74,20,140,0.4);}
@media(max-width:600px){
  .fmd-content{padding:40px 22px 28px;}
  .fmd-examples{grid-template-columns:1fr 1fr;}
}

/* ---------- Footer premium (harmonisé avec les autres pages) ---------- */
footer{position:relative;overflow:hidden;background:linear-gradient(180deg,#2D1B4E 0%,#1A0E2E 40%,#080414 100%);padding:0 8vw 32px;}
.ft-glow{position:absolute;top:-180px;right:-120px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(156,39,176,0.16),transparent 70%);pointer-events:none;}
.ft-cta{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:54px 0 42px;}
.ft-cta-lbl{font-size:9px;letter-spacing:0.32em;font-weight:700;color:var(--pl);text-transform:uppercase;margin-bottom:10px;}
.ft-cta-t{font-size:clamp(20px,2.5vw,30px);font-weight:900;color:#fff;letter-spacing:-0.015em;max-width:520px;}
.ft-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:16px 32px;background:linear-gradient(135deg,var(--pd),var(--p),var(--pm));border:none;border-radius:60px;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;letter-spacing:0.1em;color:#fff;text-transform:uppercase;cursor:pointer;transition:all 0.3s;white-space:nowrap;box-shadow:0 4px 24px rgba(74,20,140,0.4);}
.ft-cta-btn:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(74,20,140,0.5);}
.ft-div{position:relative;z-index:1;height:1px;background:linear-gradient(to right,rgba(255,255,255,0.13),rgba(255,255,255,0.02));}
.ft{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-start;padding:44px 0;}
.ft-brand{max-width:260px;}
.ft-logo-row{display:flex;align-items:center;gap:9px;margin-bottom:12px;text-decoration:none;}
.ft-logo-img{height:26px;width:auto;aspect-ratio:1232/1277;object-fit:contain;flex-shrink:0;}
.ft-lt{font-size:12px;font-weight:800;letter-spacing:0.2em;color:#fff;}
.ft-ls{font-size:11px;color:rgba(255,255,255,0.28);font-weight:300;line-height:1.6;margin-bottom:24px;}
.ft-nav{display:flex;gap:44px;}
.ft-col h5{font-size:8px;letter-spacing:0.3em;font-weight:700;color:rgba(156,39,176,0.65);text-transform:uppercase;margin-bottom:13px;}
.ft-col a{display:block;font-size:11px;font-weight:300;color:rgba(255,255,255,0.32);text-decoration:none;margin-bottom:7px;transition:color 0.3s;}
.ft-col a:hover{color:#fff;}
.ft-btm{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid rgba(255,255,255,0.06);}
.ft-cp{font-size:10px;color:rgba(255,255,255,0.18);}
.ft-top{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.03);color:rgba(255,255,255,0.55);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s;}
.ft-top:hover{background:rgba(255,255,255,0.1);color:#fff;transform:translateY(-3px);}
.ft-socs{display:flex;gap:9px;}
.soc-ic{position:relative;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,0.14);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,0.55);text-decoration:none;transition:transform 0.3s,border-color 0.3s,color 0.3s,background 0.3s,box-shadow 0.3s;}
.soc-ic svg{width:14px;height:14px;}
.soc-ic:hover{transform:translateY(-3px);border-color:transparent;color:#fff;box-shadow:0 8px 20px rgba(0,0,0,0.3);}
.soc-ic.soc-ig:hover{background:linear-gradient(135deg,#4f5bd5,#962fbf,#d62976,#fa7e1e,#feda75);}
.soc-ic.soc-tk:hover{background:#000;}
.soc-ic.soc-li:hover{background:#0A66C2;}
.soc-ic.soc-yt:hover{background:#FF0000;}
.soc-ic::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 10px);left:50%;background:#fff;color:var(--dark);font-size:10px;font-weight:600;letter-spacing:0.02em;padding:5px 10px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transform:translateX(-50%) translateY(4px);transition:opacity 0.25s,transform 0.25s;}
.soc-ic::before{content:'';position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#fff;opacity:0;transition:opacity 0.25s;}
.soc-ic:hover::after{opacity:1;transform:translateX(-50%) translateY(0);}
.soc-ic:hover::before{opacity:1;}
@media(max-width:600px){
  footer{padding:0 6vw 24px;}
  .ft-cta{flex-direction:column;align-items:flex-start;gap:20px;padding:40px 0 32px;}
  .ft-cta-btn{width:100%;justify-content:center;}
}

/* Petits mobiles : "En tournage" et "100% sur mesure" se chevauchaient */
@media(max-width:380px){
  .hero-float-live{left:16px;bottom:20px;}
  .hero-float-tag{right:16px;bottom:68px;}
}
