/* =========================================================================
   HOME — Synthetic Swarm (page société)
   Reprend l'ADN de la page lead magnet (Inter, aurora, décor 3D, cartes).
   Scopé sous .home pour ne jamais impacter les pages lead magnet.
   ========================================================================= */

.home {
  /* Gaps are shared by adjacent sections, never added twice. */
  --home-section-gap-lg:108px;
  --home-section-gap-md:84px;
  --home-section-gap-sm:52px;
  --home-comparison-inset:14px;
  --home-trust-top:12px;
  --home-trust-bottom:26px;
  --home-signals-top:20px;
  --home-signals-bottom:24px;
  --home-close-tail:0px;
  --hs-ink:        #1a1a1a;
  --hs-ink-soft:   #43435e;
  --hs-muted:      #6a6a82;
  --hs-blue:       #0A66C2;
  --hs-blue-deep:  #0a5aa8;
  --hs-blue-tint:  rgba(10,102,194,.08);
  --hs-cream:      #fcfbf8;
  --hs-surface:    #ffffff;
  --hs-line:       rgba(26,26,46,.10);
  --hs-line-soft:  rgba(26,26,46,.06);
  --hs-danger:     #E0443A;
  --hs-green:      #1D9E75;
  --hs-radius:     22px;
  --hs-shadow:     0 18px 48px rgba(26,26,46,.08);
  --hs-shadow-sm:  0 10px 26px rgba(26,26,46,.055);
}
/* Intermediate and mobile rhythm; component dimensions remain independent. */
@media (min-width:701px) and (max-width:1099px) {
 .home { --home-section-gap-lg:88px; --home-section-gap-md:72px; --home-section-gap-sm:44px; --home-trust-top:12px; }
}
@media (max-width:800px) { .home { --home-comparison-inset:36px; } }
@media (max-width:700px) {
 .home { --home-section-gap-lg:84px; --home-section-gap-md:68px; --home-section-gap-sm:40px; --home-trust-top:68px; --home-trust-bottom:24px; --home-signals-top:18px; --home-signals-bottom:22px; --home-close-tail:24px; }
}

/* =========================================================================
   HERO — CTA + surcharges (le reste vient de css/styles.css + css/pages/home-demo.css)
   ========================================================================= */
/* titre : plus petit + plus tranchant que le défaut css/pages/home-demo.css */
.home .demo-wrapper .demo-hero__headline {
  font-size: 66px;
  line-height: 1;
  letter-spacing: -0.045em;
  max-width: 780px;
}
.home .demo-wrapper .demo-hero__headline .hl { color: var(--hs-blue); }
/* Two-line signature: the footer's lighter sans, expressive display serif. */
.home .demo-hero__headline .motion-headline-part { display:block; font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif; font-weight:600; color:#1a1a1a; }
.hero-word-highlight { font-family:"Cormorant Garamond",Georgia,serif; font-weight:700; font-style:italic; font-synthesis:none; letter-spacing:-.035em; }
.home .demo-hero__headline .hero-word-highlight { display:block; margin-top:2px; font-size:84px; line-height:1.03; }

/* A light sweep stays inside the blue lettering. */
@supports ((background-clip:text) or (-webkit-background-clip:text)) {
 .home .demo-hero__headline .hero-word-highlight {
  background-image:linear-gradient(110deg,var(--hs-blue) 42%,#85b4df 47%,#d9edff 50%,#85b4df 53%,var(--hs-blue) 58%);
  background-size:250% 100%;
  background-position:100% 0;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:hero-title-scan 6s 1.1s linear infinite;
  animation-play-state:paused;
 }
 .home .hero-scan-active .hero-word-highlight { animation-play-state:running; }
}
@keyframes hero-title-scan {
 0% { background-position:100% 0; }
 28%,100% { background-position:0% 0; }
}
@media(prefers-reduced-motion:reduce) {
 .home .demo-hero__headline .hero-word-highlight { animation:none; background:none; -webkit-text-fill-color:currentColor; }
}

/* A wide subtitle uses horizontal room; vertical spacing separates the message. */
.home .demo-wrapper .demo-hero__subtitle { max-width: 960px; text-wrap: balance; }

/* A compact announcement with the original news badge. */
.home .demo-wrapper .demo-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 16px;
  max-width: 100%;
  padding: 9px 18px 9px 14px;
  white-space: nowrap;
  text-align: left;
}
.home .hero-eyebrow-badge,
.home .hero-eyebrow-news { flex: 0 0 auto; }
.home .demo-wrapper .demo-hero__eyebrow .hero-eyebrow-news {
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0;
  text-transform: none;
  text-shadow: none;
  color: #fff;
}
.home .demo-wrapper .demo-hero__inner { max-width: 960px; }
.home .demo-wrapper .demo-hero__headline { margin-left: auto; margin-right: auto; }

/* Focused insurance homepage, retaining the existing aurora and typography. */
.home .home-focused-hero { padding-bottom: 56px; }
.home .home-actions { justify-content: center; }
.home .home-purchase-faq { max-width:720px; margin:0 auto; padding:0 24px var(--home-close-tail); }
.home-purchase-faq > h2 { text-align:center; margin:0 0 28px; }

/* Let section spacing, rather than viewport filler, separate hero and trust. */
.home .home-focused-hero { min-height: auto; }
.home .home-focused-hero .hero-decor { pointer-events: none; cursor: default; scale: 1; }
.home .home-focused-hero .hero-decor--rocket { width: clamp(84px,8vw,116px); right: 5%; bottom: 12%; opacity: .8; }
@media (min-width: 1001px) {
  .home .home-focused-hero {
    padding-top: clamp(24px,6svh,60px);
    padding-bottom: clamp(32px,6svh,56px);
  }
  .home .home-focused-hero .hero-decor--sparkles-lg { width: clamp(100px,9vw,130px); left: 5%; top: 16%; }
}
@media (max-width: 1000px) {
  .home .home-focused-hero .hero-decor--rocket { display: none; }
  .home .home-focused-hero .hero-decor--sparkles-lg { width: 58px; left: 4%; top: 4%; }
}

/* Conventional testimonials: a quiet grid, full quotes and clear attribution. */
.home .home-customer-proof { padding-block:calc(var(--home-section-gap-lg) / 2); scroll-margin-top:100px; }
.testimonial-heading { text-align:center; margin:0 auto 36px; }
.testimonial-heading h2 { max-width:760px; margin:0 auto; text-wrap:balance; }
.testimonial-eyebrow { margin:0 0 14px; color:#737373; font-size:11px; line-height:1.5; font-weight:500; letter-spacing:.09em; text-transform:uppercase; }
.testimonial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:stretch; }
.home .home-testimonial { display:flex; flex-direction:column; min-width:0; margin:0; padding:26px; border:1px solid #dedfdf; border-radius:12px; background:rgba(255,255,255,.28); text-align:left; }
.testimonial-quote-mark { display:block; height:30px; margin-bottom:12px; color:#88949e; font:48px/1 Georgia,serif; }
.home .home-testimonial blockquote { flex:1; margin:0; padding:0; border:0; }
.home .home-testimonial blockquote p { margin:0; color:#393d40; font-size:15px; font-weight:400; line-height:1.75; letter-spacing:-.012em; }
.testimonial-author { display:flex; align-items:center; gap:12px; margin-top:28px; padding:0; border:0; background:transparent; }
.testimonial-author img { display:block; flex:none; width:44px; height:44px; border-radius:50%; object-fit:cover; }
.home .testimonial-author h3 { margin:0 0 3px; color:#242424; font-size:13px; font-weight:600; line-height:1.4; letter-spacing:-.01em; }
.testimonial-author p { margin:0; color:#707477; font-size:11px; line-height:1.5; }
@media(max-width:1000px) and (min-width:701px) {
 .testimonial-grid { gap:14px; }
 .home .home-testimonial { padding:22px 20px; }
 .home .home-testimonial blockquote p { font-size:14px; }
 .testimonial-author { gap:9px; }
 .testimonial-author img { width:36px; height:36px; }
}
@media(max-width:700px) {
 .testimonial-heading { margin-bottom:28px; }
 .testimonial-grid { grid-template-columns:1fr; gap:14px; }
 .home .home-testimonial { padding:24px; }
 .home .home-testimonial blockquote p { font-size:15px; line-height:1.7; }
 .testimonial-quote-mark { margin-bottom:8px; }
 .testimonial-author { margin-top:22px; }
}

/* Continue the radar's quieter heading style through the rest of the home page. */
.home .testimonial-heading h2,
.home .pricing-section > h2,
.home .home-purchase-faq > h2,
.home .brand-close-copy h2 {
 font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;
 font-size:clamp(28px,3.1vw,40px);
 font-weight:600;
 line-height:1.15;
 letter-spacing:-.045em;
 color:#242424;
 text-wrap:balance;
}

/* Keep price and objections together without another conversion block. */
.home .pricing-section { padding-top:calc(var(--home-section-gap-lg) / 2); padding-bottom:var(--home-section-gap-sm); }

/* Wide desktop copy, with comfortable space between headline, copy and actions. */
@media (min-width: 1001px) {
  .home .home-focused-hero .hero-content { max-width: 1040px; }
  .home .demo-wrapper .demo-hero__inner { max-width: 1040px; }
  .home .demo-wrapper .demo-hero__headline { max-width: 1000px; margin-bottom: 24px; }
  .home .demo-wrapper .demo-hero__subtitle { line-height: 1.5; margin-bottom: 32px; }
  .home .home-actions { margin-top: 0; }
}
/* A quiet insurance-network label between the hero and radar demo. */
/* Adjacent section padding contributes to each visible chapter gap. */
.home-trust { max-width:1120px; margin-inline:auto; margin-bottom:calc(var(--home-section-gap-md) + 8px - var(--home-trust-bottom) - var(--home-comparison-inset)); padding:var(--home-trust-top) 32px var(--home-trust-bottom); }
.home-trust h2 { margin:0; text-align:center; color:#74716d; font-size:12px; font-weight:500; letter-spacing:.08em; line-height:1.5; }
.home-trust-heading { display:flex; justify-content:center; align-items:center; gap:12px; margin-bottom:48px; }
.home-trust-window { overflow:hidden; mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent); }
/* Explicit item widths keep WebKit intrinsic sizing aligned with the rendered loop. */
.home-trust-track { display:flex; width:max-content; animation:trust-drift 64s linear infinite; }
.home-trust-logos { display:flex; align-items:center; gap:48px; flex:none; width:max-content; list-style:none; margin:0; padding:0 48px 0 0; }
@media(hover:hover) { .home-trust-window:hover .home-trust-track { animation-play-state:paused; } }
@keyframes trust-drift { to { transform:translateX(-50%); } }
.home-trust-logo { display:flex; align-items:center; justify-content:center; flex:0 0 auto; width:128px; min-width:128px; height:42px; overflow:hidden; filter:grayscale(1); opacity:.63; transition:opacity 150ms ease; mix-blend-mode:multiply; }
.home-trust-logo:hover { opacity:.85; }
.home-trust-logo img { display:block; width:auto; height:36px; max-width:120px; object-fit:contain; }
.home-trust-logo--allianz img { flex:none; max-width:128px; width:100%; height:auto; }
.home-trust-logo--generali img,.home-trust-logo--swiss img { height:42px; }
.home-trust-logo--abeille img { width:112px; height:auto; }
@media(max-width:700px) {
 .home-trust { margin-bottom:calc(var(--home-section-gap-md) - var(--home-trust-bottom) - var(--home-comparison-inset)); padding-inline:22px; }
 .home-trust h2 { font-size:11px; }
 .home-trust-heading { margin-bottom:40px; gap:8px; }
 .home-trust-track { animation-duration:56s; }
 .home-trust-logos { gap:24px; padding-right:24px; }
 .home-trust-logo { width:120px; min-width:120px; }
 .home-trust-logo img { max-width:100%; }
 .home-trust-logo--allianz img { width:100%; height:auto; max-width:104px; }
}
@media(prefers-reduced-motion:reduce) {
 .home-trust-track { animation:none; width:auto; }
 .home-trust-window { mask-image:none; overflow:visible; }
 .home-trust-logos { width:100%; padding:0; flex-wrap:wrap; justify-content:center; gap:24px; }
 .home-trust-logos[aria-hidden] { display:none; }
 .home-trust-logo { transition:none; }
}

.home-trust-logo--france img { width:116px; height:auto; }

/* Signal discovery: one company record, a visible change, a reason to call. */
.home-signals { max-width:1120px; margin:0 auto calc(var(--home-section-gap-lg) / 2); padding:0 32px; scroll-margin-top:100px; }
.signals-composition { display:grid; grid-template-columns:.95fr 1.05fr; gap:56px; align-items:center; }
.home-signals-heading { margin:0 0 30px; }
.home-signals-eyebrow { margin:0 0 16px; color:#737373; font-size:11px; line-height:1.5; font-weight:500; letter-spacing:.09em; text-transform:uppercase; }
.home-signals h2 { max-width:440px; margin:0; color:#242424; font-size:clamp(28px,3.1vw,40px); line-height:1.15; letter-spacing:-.045em; font-weight:600; text-wrap:balance; }
.signals-intro { max-width:31ch; margin:18px 0 0; color:#777; font-size:14px; line-height:1.65; }
.signals-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; list-style:none; margin:0; padding:0; }
.signals-examples-note { margin:16px 0 0; color:#777; font-size:12px; line-height:1.6; }
.signals-controls li { min-width:0; }
.signals-controls button { display:flex; align-items:center; gap:9px; width:100%; min-height:54px; padding:10px 11px; border:1px solid transparent; border-radius:11px; background:transparent; text-align:left; color:#808080; font:500 11px/1.4 Inter,-apple-system,BlinkMacSystemFont,sans-serif; cursor:pointer; transition:color .25s,background .25s,border-color .25s,box-shadow .25s; }
.signals-controls button svg { flex:none; width:19px; height:19px; stroke:currentColor; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; }
.signals-controls button:hover { color:#333; background:#ffffff80; }
.signals-controls button[aria-pressed=true] { color:#242424; border-color:#e3e3e3; background:#fff; box-shadow:0 3px 9px #00000005; }
.signals-controls button:focus-visible { outline:2px solid #0a66c2; outline-offset:3px; }
.signals-scene { position:relative; padding:32px 10px 32px 0; perspective:1000px; }
.signals-dossier { position:relative; isolation:isolate; }
.signal-next { position:absolute; inset:0; z-index:2; width:100%; height:100%; padding:0; border:0; border-radius:18px; background:transparent; cursor:pointer; }
.signal-next:focus-visible { outline:2px solid #0a66c2; outline-offset:5px; }
.signals-dossier::before,.signals-dossier::after { content:''; position:absolute; inset:0; z-index:-1; border:1px solid #e4e6e7; border-radius:20px; background:#f9fafb; pointer-events:none; }
.signals-dossier::before { transform:translate(12px,-13px) rotate(3deg) scale(.96); }
.signals-dossier::after { transform:translate(-7px,-7px) rotate(-2deg) scale(.98); background:#fff; }
.signal-example { position:relative; min-height:410px; overflow:hidden; border:1px solid #e3e5e7; border-radius:18px; background:#fff; box-shadow:0 24px 60px -30px #172b4933,0 4px 12px #00000004; }
.signal-example[hidden] { display:none; }
.signal-company { display:flex; align-items:center; gap:12px; padding:26px 26px 0; }
.signal-company-icon { display:grid; place-items:center; flex:none; width:38px; height:38px; border-radius:12px; border:1px solid #ffffff40; background:linear-gradient(145deg,#3a3a3a,#242424); color:#f5f4f0; box-shadow:0 0 0 1px #22222218,0 3px 7px #00000016,inset 0 1px 0 #ffffff12; }
.signal-company-icon svg { width:19px; height:19px; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.signal-company strong { display:block; font-size:14px; line-height:1.4; letter-spacing:-.025em; font-weight:600; }
.signal-company > div > span { display:block; margin-top:4px; font-size:11px; color:#929292; }
.signal-record-icon { width:20px; height:20px; margin-left:auto; flex:none; stroke:#b6bdc2; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.signal-change { position:relative; min-height:184px; margin:25px 26px 0; padding:21px 23px 16px; border:1px solid #edf0ed; border-radius:12px; overflow:hidden; background:#fafbf9; }
.signal-field { position:relative; z-index:1; margin:0 0 19px; font-size:11px; color:#6d766f; }
.signal-values { position:relative; z-index:1; display:grid; grid-template-columns:1fr 28px 1fr; align-items:center; gap:20px; }
.signal-values > div > span { display:block; margin-bottom:9px; color:#8a908b; font-size:10px; }
.signal-values strong { display:block; font-size:48px; line-height:1; font-weight:500; letter-spacing:-.055em; font-variant-numeric:tabular-nums; }
.signal-before strong { color:#b6bbb7; }
.signal-after strong { color:#375f47; }
.signal-change--text .signal-values strong { font-size:clamp(20px,2.1vw,27px); letter-spacing:-.035em; line-height:1.2; }
.signal-change-arrow { width:24px; height:24px; margin-top:20px; stroke:#9ba79f; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.signal-unit { position:relative; z-index:1; min-height:15px; margin:10px 0 0; color:#8a908b; font-size:10px; }
.signal-context { padding:23px 26px 26px; }
.signal-context-heading { display:flex; align-items:center; gap:9px; color:#3d7453; }
.signal-context-heading svg { flex:none; width:21px; height:21px; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.signal-context h3 { margin:0; font-size:13px; font-weight:500; letter-spacing:-.015em; line-height:1.4; }
.signal-context > p { margin:10px 0 0; color:#777; font-size:12px; line-height:1.65; max-width:36ch; }
.signals-enhanced .signal-example { animation:signal-record-enter .45s cubic-bezier(.22,.8,.2,1) both; }
.signals-enhanced .signal-after { animation:signal-value-enter .55s .6s both; }
.signals-enhanced .signal-context { animation:signal-context-enter .5s 1.1s both; }
.signals-enhanced .signal-scan { position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 0%,#81dfad08 56%,#81dfad24 88%,#b8f4cfb0 96%,transparent 100%); animation:signal-scan-pass 1.35s cubic-bezier(.3,0,.2,1) both; }
.home-signals.is-offscreen * { animation-play-state:paused!important; }
.home-signals[data-signal-manual=true] .signal-example,.home-signals[data-signal-manual=true] .signal-after,.home-signals[data-signal-manual=true] .signal-context { animation:none; }
@keyframes signal-record-enter { from { opacity:0; transform:translateY(9px); } to { opacity:1; transform:none; } }
@keyframes signal-value-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes signal-context-enter { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
@keyframes signal-scan-pass { 0% { transform:translateY(-105%); opacity:0; } 12% { opacity:1; } 88% { opacity:1; } 100% { transform:translateY(105%); opacity:0; } }
@media(max-width:1000px) {
 .signals-composition { grid-template-columns:1fr 1.12fr; gap:28px; }
 .signals-controls { grid-template-columns:1fr; gap:2px; }
 .signals-controls button { min-height:39px; padding:8px 10px; font-size:12px; }
 .signal-company { padding:23px 20px 0; }
 .signal-change { margin:23px 20px 0; padding:18px; }
 .signal-values { gap:12px; }
 .signal-context { padding:21px 20px 24px; }
}
@media(max-width:700px) {
 .home-signals { padding-inline:20px; }
 .signals-composition { grid-template-columns:1fr; gap:30px; }
 .home-signals-heading { text-align:center; margin-bottom:24px; }
 .home-signals h2,.signals-intro { margin-inline:auto; }
 .signals-controls { grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; }
 .signals-controls button { min-height:46px; font-size:11px; }
 .signals-scene { max-width:450px; width:100%; margin:auto; padding:12px 8px 16px; }
 .signal-example { min-height:390px; }
 .signal-change--text .signal-values { grid-template-columns:minmax(0,1fr) 18px minmax(0,1.35fr); gap:10px; }
 .signal-change--text .signal-values strong { font-size:clamp(16px,4.8vw,24px); }
}
@media(prefers-reduced-motion:reduce) {
 .home-signals *, .home-signals *::before, .home-signals *::after { animation:none!important; transition:none!important; }
 .signal-scan { display:none; }
}

/* Mobile hero: one composition for narrow screens; desktop remains unchanged. */
@media (max-width:700px) {
 .home .demo-wrapper .home-focused-hero { min-height:0; padding:60px 20px 52px; }
 .home .demo-wrapper .demo-hero { padding:0; }
 .home .demo-wrapper .demo-hero__inner { max-width:380px; }
 .home .demo-wrapper .demo-hero__eyebrow { display:block; max-width:340px; margin:0 auto 36px; padding:0; border:0; border-radius:0; background:none; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; white-space:normal; text-align:center; line-height:1.65; }
 .home .demo-wrapper .demo-hero__eyebrow::before, .home .demo-wrapper .demo-hero__eyebrow::after { display:none; }
 .home .hero-eyebrow-badge { display:inline-block; padding:3px 5px; border-radius:5px; font-size:9px; line-height:1.2; vertical-align:baseline; }
 .home .demo-wrapper .demo-hero__eyebrow .hero-eyebrow-news { font-size:12px; color:#62666b; }

 .home .hero-eyebrow-news { display:block; margin-top:10px; }
 .home .demo-wrapper .demo-hero__headline { max-width:380px; margin:0 auto 32px; font-size:clamp(30px,10.5vw,46px); line-height:1.05; letter-spacing:-.055em; }
 .home .demo-hero__headline .hero-word-highlight { margin-top:10px; font-size:clamp(42px,13.3vw,56px); line-height:1.02; }
 .home .demo-wrapper .demo-hero__subtitle { max-width:340px; margin:0 auto 36px; font-size:16px; line-height:1.65; text-wrap:pretty; }
 .home .home-actions { flex-direction:column; align-items:center; gap:22px; margin:0; }
 .home .home-actions .btn-get-started { display:inline-flex; align-items:center; justify-content:center; width:fit-content; min-height:48px; padding:12px 28px; }
 .home .home-actions > .page-button--secondary { width:fit-content; gap:6px; padding:0; border:0; border-radius:0; background:none; box-shadow:none; color:#0a66c2; font-size:14px; font-weight:500; line-height:1.5; }
 .home .home-actions > .page-button--secondary::after { content:' →'; }
 .home .home-focused-hero .hero-decor--rocket { display:none; }
 .home .home-focused-hero .hero-decor--sparkles-lg { width:34px; left:3%; top:8px; opacity:.45; }
}
