@font-face{font-family:"Eger";src:local("Eger Regular"),local("Eger-Regular"),url("../fonts/eger-regular.otf") format("opentype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Eger";src:local("Eger Italic"),local("Eger-Italic"),url("../fonts/eger-italic.otf") format("opentype");font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:"Stack Sans Text";src:local("Stack Sans Headline ExtraLight"),local("StackSansHeadline-ExtraLight"),url("../fonts/StackSansHeadline-ExtraLight.ttf") format("truetype");font-style:normal;font-weight:200 700;font-display:swap}

:root{--lime:#ddff70;--dark:#1c1c1c;--cream:#f9f7ef;--lavender:#d8d1ff;--ink:#1c1c1c;--white:#fff}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--dark)}
body{font-family:"Stack Sans Text",Arial,sans-serif;color:var(--ink);background:#fff;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}
.faq-answer a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
main,section,footer{position:relative;width:100%}
img{display:block;max-width:none}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid #6957ff;outline-offset:4px}
p,h1,h2,h3,ul{margin:0;padding:0}
.mobile-copy{display:none}
.display{font-family:"Eger",Impact,sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.005em;line-height:.86}
.display--light{color:var(--cream)}
.kicker{position:absolute;z-index:3;font-family:"Eger",Impact,sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.01em;line-height:1;white-space:nowrap;padding:9px 10px 5px;transform:rotate(-4deg);transform-origin:center;background:var(--lime);color:var(--ink)}
.kicker--dark{background:var(--dark);color:var(--lime)}
.kicker--lavender{background:var(--lavender);color:var(--ink);transform:rotate(-2deg)}
.button{display:flex;align-items:center;justify-content:center;border-radius:132px;text-transform:uppercase;white-space:nowrap;font-weight:500;line-height:1;border:2px solid var(--dark)}
.button--dark{background:var(--dark);color:var(--lime)}
.button--outline{background:transparent;color:var(--dark)}
.button--lime{background:var(--lime);color:var(--dark);border-color:var(--lime)}

/* =========================================================
   1440 ARTBOARD — source: Adobe XD artboard 1440 × 3785.52
   ========================================================= */
.hero{height:810px;background:var(--lime);overflow:hidden}
.brand{position:absolute;left:99.4px;top:54.6px;width:173px;height:auto;z-index:4}.brand img{width:100%;height:auto}
.site-nav{position:absolute;left:919px;top:65.49px;width:421px;height:38px;z-index:5;display:flex;align-items:center;justify-content:flex-end;gap:30px}
.site-nav__link{font-size:14px;font-weight:600;text-transform:uppercase;line-height:18px}
.button--header{width:262.49px;height:38px;font-size:14px;border:0}
.hero__title{position:absolute;left:100px;top:191px;width:645px;font-size:135px;line-height:110px}
.hero__visual{position:absolute;left:706px;top:99px;width:694px;height:694px}.hero__visual img{width:694px;height:694px}
.hero__lead{position:absolute;left:100px;top:429px;width:621px;height:66px;font-size:24px;line-height:28px;font-weight:700}
.hero__copy{position:absolute;left:100px;top:494px;width:621px;height:87px;font-size:20px;line-height:26px;font-weight:300}
.hero__actions{position:absolute;inset:0;pointer-events:none}.hero__actions .button{position:absolute;height:49px;font-size:18px;pointer-events:auto}
.hero__primary{left:100px;top:596px;width:296px;border:0}.hero__secondary{left:416px;top:596px;width:224px}
.trust-list{list-style:none;position:absolute;inset:0}.trust-list li{position:absolute;display:flex;align-items:center;font-size:16px;line-height:18px;font-weight:300}.trust-list li:nth-child(1){left:100px;top:680px}.trust-list li:nth-child(2){left:233.5px;top:680px}.trust-list li:nth-child(3){left:401.3px;top:680px}.trust-list li img{object-fit:contain;margin-right:8px}.trust-list li:nth-child(1) img{width:25.15px;height:25.08px}.trust-list li:nth-child(2) img{width:30px;height:29.58px}.trust-list li:nth-child(3) img{width:23.5px;height:27.4px;padding:0;border:0}

.drift{height:647px;background:var(--dark);color:var(--cream);overflow:hidden}
.drift__kicker{left:100px;top:78px;font-size:35px;padding:8px 10px 4px}
.drift__title{position:absolute;left:100px;top:136.56px;width:645px;font-size:105px;line-height:90px}
.drift-cards{position:absolute;inset:0}.drift-card{position:absolute;width:286px;height:231px;background:#fff;color:var(--ink);border-radius:47px;text-align:center;overflow:hidden}.drift-card:nth-child(1){left:736px;top:76px}.drift-card:nth-child(2){left:1054px;top:76px}.drift-card:nth-child(3){left:736px;top:339px;height:232px}.drift-card:nth-child(4){left:1054px;top:339px;height:232px}
.drift-card h3{position:absolute;left:11px;top:19px;width:264px;font-family:"Eger";font-size:35px;line-height:39px;font-weight:400;text-transform:uppercase;letter-spacing:.005em}
.drift-card__art{position:absolute;left:27px;top:64px;width:232px;height:auto}.drift-card:nth-child(2) .drift-card__art{left:34px;top:68px;width:218px}.drift-card:nth-child(3) .drift-card__art{left:26px;top:66px;width:233px}
.drift-card p{position:absolute;left:-11px;bottom:16px;width:308px;font-size:12px;line-height:15px;font-weight:300;text-align:center}
.drift-card__layout-pair{position:absolute;left:47px;top:67px;display:flex;gap:39px}.drift-card__layout-pair img{width:82.56px;height:70.2px}.drift-card__verdict{position:absolute;left:74px;top:143px;width:138px;display:flex;justify-content:space-between}.drift-card__verdict img{width:28.25px;height:28.25px}
.drift-signals{list-style:none;position:absolute;left:100px;top:336.6px;width:597px;height:80px;display:grid;grid-template-columns:139px 139px 164px 155px}.drift-signals li{position:relative;padding-left:0;border-right:1.5px solid var(--lime)}.drift-signals li:last-child{border:0}.drift-signals img{position:absolute;top:0;left:0;width:auto;height:42.75px;object-fit:contain}.drift-signals li:nth-child(2) img{height:39px}.drift-signals li:nth-child(4) img{height:43.31px}.drift-signals span{position:absolute;left:0;top:48.5px;font-size:16px;line-height:20px;font-weight:300}
.drift__copy{position:absolute;left:100px;top:450.06px;width:597px;font-size:18px;line-height:24px;font-weight:300}.drift__copy strong{font-weight:700}

.audit{height:585px;background:var(--cream);overflow:hidden}
.audit__kicker{left:100px;top:39px;font-size:36px;padding:8px 10px 5px;transform:rotate(3deg)}
.audit__title{position:absolute;left:100px;top:98.34px;width:645px;font-size:105px;line-height:90px}
.audit__copy{position:absolute;left:100px;top:288.27px;width:494px;font-size:18px;line-height:24px;font-weight:400}
.audit__visual{position:absolute;left:590px;top:65px;width:850px;height:500px}.audit__visual-desktop{display:block;width:738.886px;height:auto;margin-left:50px}.audit__visual-mobile{display:none}
.check-grid{list-style:none;position:absolute;left:100px;top:441.5px;width:488px;height:90px;display:grid;grid-template-columns:213px 275px;grid-template-rows:33px 33px 33px;font-size:16px;line-height:22px;font-weight:700}.check-grid li{position:relative;padding-left:29px}.check-grid li::before{content:"";position:absolute;left:0;top:0;width:22px;height:22px;background:url("../assets/icon-check-lavender.svg") center/contain no-repeat}.check-grid li:nth-child(1){grid-column:1;grid-row:1}.check-grid li:nth-child(2){grid-column:2;grid-row:1}.check-grid li:nth-child(3){grid-column:1;grid-row:2}.check-grid li:nth-child(4){grid-column:2;grid-row:2}.check-grid li:nth-child(5){grid-column:1;grid-row:3}.check-grid li:nth-child(6){grid-column:2;grid-row:3}

.process{height:697px;background:#fff;overflow:hidden}
.process__kicker{left:635px;top:53px;font-size:36px;padding:8px 10px 5px;transform:rotate(-3deg)}
.process__title{position:absolute;left:254px;top:112.07px;width:932px;text-align:center;font-size:105px;line-height:90px;white-space:nowrap}
.process-cards{position:absolute;inset:0}.process-card{position:absolute;top:214px;width:286px;height:395px;background:var(--dark);color:var(--cream);border-radius:47px;overflow:hidden}.process-card:nth-child(1){left:100px}.process-card:nth-child(2){left:418px}.process-card:nth-child(3){left:736px}.process-card:nth-child(4){left:1054px}
.process-card__num{position:absolute;left:24px;top:25px;font-family:"Eger";font-size:100px;line-height:87px;color:var(--lime);letter-spacing:.005em}.process-card:nth-child(n+2) .process-card__num{font-size:101px;line-height:88px}
.process-card__icon{position:absolute;object-fit:contain}.process-card:nth-child(1) .process-card__icon{left:149px;top:85px;width:75.66px}.process-card:nth-child(2) .process-card__icon{left:146px;top:67.8px;width:97.14px}.process-card:nth-child(3) .process-card__icon{left:185.8px;top:85.4px;width:70.44px}.process-card:nth-child(4) .process-card__icon{left:159px;top:85.4px;width:76.73px}
.process-card h3{position:absolute;left:24px;top:123px;width:238px;font-family:"Eger";font-weight:400;text-transform:uppercase;font-size:45px;line-height:54px;letter-spacing:.005em}.process-card p{position:absolute;left:24px;top:168px;width:238px;font-size:16px;line-height:22px;font-weight:300}

.founder{height:411px;background:var(--lavender);overflow:visible;z-index:2}.founder__lavender{display:none}
.founder__kicker{left:100px;top:-18px;font-size:36px;padding:8px 10px 5px;transform:rotate(-4deg)}
.founder__title{position:absolute;left:100px;top:42.42px;width:597px;font-size:105px;line-height:90px}
.founder__copy{position:absolute;left:100px;top:231px;width:474px;font-size:18px;line-height:24px;font-weight:700}.founder__copy strong{font-weight:700}
.founder__photo{position:absolute;left:586px;top:-96px;width:400px;height:508px;overflow:hidden;border-radius:47px 0 0 47px}.founder__photo img{width:400px;height:508px}
.cta-card{position:absolute;left:939px;top:0;width:390px;height:467px;background:var(--dark);color:var(--cream);border-radius:0 0 47px 47px;z-index:3;overflow:hidden}.cta-card__kicker{left:28px;top:37px;font-size:29px;padding:7px 9px 4px;transform:rotate(-2deg)}
.cta-card__title{position:absolute;left:30px;top:86.7px;width:307px;font-size:70px;line-height:60px}.cta-card__icon{position:absolute;left:240px;top:63px;width:85.37px;height:75.28px}.cta-card>p{position:absolute;left:30px;top:219px;width:330px;font-size:16px;line-height:20px;font-weight:400}.cta-card__button{position:absolute;left:30px;top:316px;width:262.49px;height:38px;font-size:14px;border:0}.cta-card small{position:absolute;left:30px;top:379px;width:330px;font-size:12px;line-height:16px;font-weight:300;color:var(--cream)}

.pricing-faq{height:386.425px;background:var(--cream);overflow:hidden}
.pricing__kicker{left:100px;top:37px;font-size:27px;padding:7px 9px 4px}
.pricing__title{position:absolute;left:100px;top:82.51px;width:700px;font-size:60px;line-height:70px}
.pricing__tiers{position:absolute;left:100px;top:143.5px;width:680px;height:190px;display:flex}.pricing-tier{position:relative;width:231px;height:190px}.pricing-tier:nth-child(2),.pricing-tier:nth-child(3){border-left:2px solid var(--lavender);padding-left:22px}.pricing-tier img{position:absolute;left:0;top:0;width:43px;height:43px}.pricing-tier h3{position:absolute;left:0;top:53px;width:182px;font-family:"Eger";font-weight:400;text-transform:uppercase;font-size:35px;line-height:42px;letter-spacing:.005em}.pricing-tier__label,.pricing-tier__price{position:absolute;left:0;font-size:14px;line-height:20px}.pricing-tier__label{font-weight:300}.pricing-tier__price{font-weight:700}.pricing-tier .pricing-tier__label:nth-of-type(1){top:88px}.pricing-tier .pricing-tier__price:nth-of-type(2){top:106px;font-size:16px;line-height:22px}.pricing-tier .pricing-tier__label:nth-of-type(3){top:137px}.pricing-tier .pricing-tier__price:nth-of-type(4){top:155px;font-size:16px;line-height:22px}
.faq{position:absolute;left:842px;top:82.5px;width:493.5px;height:240px}.faq__title{font-size:60px;line-height:70px;width:493px}.faq__list{position:absolute;left:0;top:74px;width:493.5px}.faq-row{height:54px;border-bottom:1px solid var(--ink);display:flex;align-items:center;justify-content:space-between;font-size:16px;line-height:22px;font-weight:500}.faq-row span:last-child{font-size:20px}

.site-footer{height:248.097px;background:var(--dark);color:var(--cream);overflow:hidden}.site-footer__logo{position:absolute;left:628.5px;top:45.5px;width:183px;height:60.91px}.site-footer__links{position:absolute;left:529.5px;top:122.5px;width:381px;display:flex;justify-content:center;gap:18px;color:var(--lime);font-size:14px;line-height:28px;text-transform:uppercase;font-weight:300}.site-footer p{position:absolute;left:238px;top:171.6px;width:965px;text-align:center;font-size:12px;line-height:16px;font-weight:300}

/* =========================================================
   1920 ARTBOARD — exact wide-screen values from XD
   ========================================================= */
@media (min-width:99999px){
  .hero{height:1080px}.brand{left:145.9px;top:64.3px;width:230.5px}.site-nav{left:1204px;top:78px;width:568px;height:52px;gap:38px}.site-nav__link{font-size:18px}.button--header{width:368.5px;height:52px;font-size:18px}
  .hero__title{left:148px;top:255px;width:860px;font-size:165px;line-height:138px}.hero__visual{left:942px;top:132px;width:924px;height:924px}.hero__visual img{width:924px;height:924px}.hero__lead{left:148px;top:558px;width:828px;height:87px;font-size:32px;line-height:40px}.hero__copy{left:148px;top:645px;width:828px;height:116px;font-size:28px;line-height:36px}.hero__primary{left:148px;top:781px;width:376px;height:57px;font-size:22px}.hero__secondary{left:544px;top:781px;width:278px;height:57px;font-size:22px}.trust-list li{font-size:22px;line-height:24px}.trust-list li:nth-child(1){left:148px;top:888px}.trust-list li:nth-child(2){left:326px;top:888px}.trust-list li:nth-child(3){left:549.7px;top:888px}.trust-list li:nth-child(1) img{width:33.5px;height:33.4px}.trust-list li:nth-child(2) img{width:40px;height:39.4px}.trust-list li:nth-child(3) img{width:31.3px;height:36.6px}

  .drift{height:862px}.drift__kicker{left:148px;top:60px;font-size:44px}.drift__title{left:148px;top:139.08px;width:860px;font-size:135px;line-height:118px}.drift-card{width:382px;height:309px}.drift-card:nth-child(1){left:976px;top:106px}.drift-card:nth-child(2){left:1390px;top:106px}.drift-card:nth-child(3){left:976px;top:447px;height:309px}.drift-card:nth-child(4){left:1390px;top:447px;height:309px}.drift-card h3{left:16px;top:26px;width:350px;font-size:44px;line-height:50px}.drift-card__art{left:36px;top:84px;width:310px}.drift-card:nth-child(2) .drift-card__art{left:46px;top:90px;width:290px}.drift-card:nth-child(3) .drift-card__art{left:35px;top:88px;width:311px}.drift-card p{left:-15px;bottom:21px;width:412px;font-size:16px;line-height:20px}.drift-card__layout-pair{left:63px;top:92px;gap:52px}.drift-card__layout-pair img{width:110px;height:auto}.drift-card__verdict{left:99px;top:191px;width:184px}.drift-card__verdict img{width:37.7px;height:37.7px}.drift-signals{left:148px;top:414px;width:796px;height:110px;grid-template-columns:211px 185px 218px 182px}.drift-signals img{height:57px}.drift-signals li:nth-child(2) img{height:52px}.drift-signals li:nth-child(4) img{height:57.7px}.drift-signals span{top:65px;font-size:22px;line-height:28px}.drift__copy{left:148px;top:565px;width:796px;font-size:22px;line-height:28px}

  .audit{height:782px}.audit__kicker{left:148px;top:80px;font-size:45px}.audit__title{left:148px;top:158.08px;width:860px;font-size:135px;line-height:118px}.audit__copy{left:148px;top:412px;width:658px;font-size:22px;line-height:28px}.audit__visual{left:787px;top:87.6px;width:985px;height:650px}.audit__visual-desktop{width:985px;margin:0}.check-grid{left:148px;top:570px;width:650px;height:120px;grid-template-columns:284px 366px;grid-template-rows:44px 44px 44px;font-size:20px;line-height:28px}.check-grid li{padding-left:38px}.check-grid li::before{width:29.4px;height:29.4px;font-size:16px}

  .process{height:888px}.process__kicker{left:845px;top:68px;font-size:45px}.process__title{left:339px;top:148.08px;width:1242px;font-size:135px;line-height:118px}.process-card{top:283px;width:382px;height:483px}.process-card:nth-child(1){left:148px}.process-card:nth-child(2){left:562px}.process-card:nth-child(3){left:976px}.process-card:nth-child(4){left:1390px}.process-card__num{left:32px;top:34px;font-size:126px;line-height:110px}.process-card:nth-child(n+2) .process-card__num{font-size:126px;line-height:110px}.process-card__icon{transform:scale(1.333);transform-origin:top left}.process-card:nth-child(1) .process-card__icon{left:187px;top:115px}.process-card:nth-child(2) .process-card__icon{left:180px;top:91px}.process-card:nth-child(3) .process-card__icon{left:230px;top:115px}.process-card:nth-child(4) .process-card__icon{left:198px;top:115px}.process-card h3{left:32px;top:164px;width:317px;font-size:55px;line-height:66px}.process-card p{left:32px;top:225px;width:317px;font-size:20px;line-height:28px}

  .founder{height:525px}.founder__kicker{left:148px;top:-25px;font-size:45px}.founder__title{left:148px;top:56.54px;width:796px;font-size:135px;line-height:118px}.founder__copy{left:148px;top:310px;width:632px;font-size:22px;line-height:28px}.founder__photo{left:788px;top:-113px;width:502px;height:638px}.founder__photo img{width:502px;height:638px}.cta-card{left:1252px;top:0;width:520px;height:622px}.cta-card__kicker{left:30px;top:40px;font-size:38px}.cta-card__title{left:40px;top:111px;width:410px;font-size:92px;line-height:78px}.cta-card__icon{left:320px;top:84px;width:113.8px;height:100.4px}.cta-card>p{left:40px;top:292px;width:440px;font-size:22px;line-height:28px}.cta-card__button{left:40px;top:420px;width:368.5px;height:52px;font-size:18px}.cta-card small{left:40px;top:504px;width:440px;font-size:14px;line-height:20px}

  .pricing-faq{height:544px}.pricing__kicker{left:148px;top:78px;font-size:34px}.pricing__title{left:148px;top:134.78px;width:934px;font-size:70px;line-height:84px}.pricing__tiers{left:148px;top:216px;width:900px;height:260px}.pricing-tier{width:304px;height:237px}.pricing-tier:nth-child(2),.pricing-tier:nth-child(3){padding-left:30px}.pricing-tier img{width:57px;height:57px}.pricing-tier h3{top:72px;width:244px;font-size:44px;line-height:52px}.pricing-tier__label,.pricing-tier__price{font-size:18px;line-height:25px}.pricing-tier .pricing-tier__label:nth-of-type(1){top:119px}.pricing-tier .pricing-tier__price:nth-of-type(2){top:141px;font-size:20px;line-height:28px}.pricing-tier .pricing-tier__label:nth-of-type(3){top:183px}.pricing-tier .pricing-tier__price:nth-of-type(4){top:205px;font-size:20px;line-height:28px}.faq{left:1114px;top:134.8px;width:658px;height:330px}.faq__title{font-size:70px;line-height:84px;width:658px}.faq__list{top:96px;width:658px}.faq-row{height:72px;font-size:20px;line-height:28px}

  .site-footer{height:353.46px}.site-footer__logo{left:838px;top:70px;width:244px;height:81.21px}.site-footer__links{left:704px;top:171px;width:512px;font-size:18px;line-height:32px}.site-footer p{left:318px;top:229px;width:1284px;font-size:15px;line-height:20px}
}

/* =========================================================
   390 ARTBOARD — source: Adobe XD artboard 390 × 5326.35
   ========================================================= */
@media (max-width:600px){
  .desktop-copy{display:none!important}.mobile-copy{display:inline}.display{letter-spacing:.005em}.kicker{letter-spacing:.01em}
  .hero{height:1036px}.brand{left:33.8px;top:39px;width:133px}.site-nav{display:none}.hero__title{left:35px;top:114.21px;width:320px;font-size:90px;line-height:75px}.hero__visual{left:10px;top:294px;width:358px;height:358px}.hero__visual img{width:358px;height:358px}.hero__lead{left:35px;top:636.21px;width:320px;height:auto;font-size:18px;line-height:23px}.hero__copy{left:35px;top:715.21px;width:320px;height:auto;font-size:16px;line-height:21px}.hero__actions .button{height:38px;font-size:14px}.hero__primary{left:84px;top:840.21px;width:222px}.hero__secondary{left:112px;top:893.21px;width:166px}.trust-list li{font-size:12px;line-height:14px}.trust-list li:nth-child(1){left:24.2px;top:971.2px}.trust-list li:nth-child(2){left:128.2px;top:971.2px}.trust-list li:nth-child(3){left:258.5px;top:971.2px}.trust-list li:nth-child(1) img{width:25.15px;height:25.08px}.trust-list li:nth-child(2) img{width:30px;height:29.58px}.trust-list li:nth-child(3) img{width:23.5px;height:27.4px}

  .drift{height:1047px}.drift__kicker{left:35px;top:33px;font-size:35px}.drift__title{left:36.9px;top:92.71px;width:318.1px;font-size:75px;line-height:65px}.drift-card{width:286px;height:231px}.drift-card:nth-child(1){left:52px;top:308.15px}.drift-card:nth-child(2){left:358px;top:308.15px}.drift-card:nth-child(3){left:664px;top:308.15px}.drift-card:nth-child(4){left:982px;top:308.15px}.drift-card h3{top:19px;font-size:35px;line-height:39px}.drift-card__art{top:64px}.drift-card p{bottom:16px;font-size:12px;line-height:15px}.drift-signals{left:35px;top:583.7px;width:320px;height:166px;display:grid;grid-template-columns:158px 162px;grid-template-rows:109px 109px}.drift-signals li{border:0}.drift-signals li:nth-child(1),.drift-signals li:nth-child(3){border-right:1.5px solid var(--lime)}.drift-signals li:nth-child(3),.drift-signals li:nth-child(4){transform:translateY(0)}.drift-signals img{height:42.75px}.drift-signals li:nth-child(1) img{left:0}.drift-signals li:nth-child(2) img{left:0}.drift-signals li:nth-child(3) img{left:0}.drift-signals li:nth-child(4) img{left:0}.drift-signals span{top:48.5px;font-size:16px;line-height:20px}.drift__copy{left:35px;top:812.76px;width:320px;font-size:16px;line-height:21px}

  .audit{height:926px}.audit__kicker{left:35px;top:33px;font-size:36px}.audit__title{left:36.9px;top:92.34px;width:318.1px;font-size:75px;line-height:65px}.audit__visual{left:15.4px;top:240.2px;width:359.264px;height:264.144px}.audit__visual-desktop{display:none}.audit__visual-mobile{display:block;width:359.264px;height:264.144px}.audit__copy{left:35px;top:525px;width:320px;font-size:16px;line-height:21px}.check-grid{left:35px;top:683.9px;width:320px;height:200px;display:block;font-size:16px;line-height:22px}.check-grid li{height:33px;padding-left:29px}.check-grid li::before{width:22px;height:22px}

  .process{height:759px}.process__kicker{left:110px;top:34px;font-size:36px}.process__title{left:84px;top:92px;width:222px;font-size:75px;line-height:65px;text-align:center;white-space:normal}.process-card{top:307px;width:286px;height:395px}.process-card:nth-child(1){left:52px}.process-card:nth-child(2){left:358px}.process-card:nth-child(3){left:664px}.process-card:nth-child(4){left:970px}.process-card__num{left:24px;top:25px;font-size:100px;line-height:87px}.process-card:nth-child(n+2) .process-card__num{font-size:101px;line-height:88px}.process-card h3{left:24px;top:123px;width:238px;font-size:45px;line-height:54px}.process-card p{left:24px;top:168px;width:238px;font-size:16px;line-height:22px}.process-card:nth-child(1) .process-card__icon{left:149px;top:85px}.process-card:nth-child(2) .process-card__icon{left:146px;top:67.8px}.process-card:nth-child(3) .process-card__icon{left:185.8px;top:85.4px}.process-card:nth-child(4) .process-card__icon{left:159px;top:85.4px}

  .founder{height:784px;background:linear-gradient(to bottom,var(--lavender) 0 334px,var(--dark) 334px 784px);overflow:hidden}.founder__kicker{left:35px;top:-25px;font-size:27px}.founder__title{left:35px;top:22.42px;width:320px;font-size:55px;line-height:45px}.founder__copy{left:35px;top:122px;width:236px;font-size:14px;line-height:19px}.founder__photo{left:206px;top:64px;width:213px;height:270px;border-radius:47px 0 0 0}.founder__photo img{width:213px;height:270px}.cta-card{left:0;top:334px;width:390px;height:450px;border-radius:0}.cta-card__kicker{left:35px;top:35px;font-size:29px}.cta-card__title{left:34.6px;top:86px;width:307px;font-size:55px;line-height:45px}.cta-card__icon{left:251.6px;top:96.4px;width:85.37px;height:75.28px}.cta-card>p{left:34.6px;top:191.3px;width:330px;font-size:16px;line-height:21px}.cta-card__button{left:34.6px;top:290.3px;width:262.49px;height:38px;font-size:14px}.cta-card small{left:34.6px;top:364.3px;width:330px;font-size:10px;line-height:14px}

  .pricing-faq{height:563.68px}.pricing__kicker{left:35px;top:25.7px;font-size:22px}.pricing__title{left:35px;top:62.5px;width:320px;font-size:40px;line-height:39px}.pricing__tiers{left:35px;top:112.5px;width:622px;height:178px;display:flex}.pricing-tier{width:207px;height:178px}.pricing-tier:nth-child(2),.pricing-tier:nth-child(3){padding-left:25px;border-left:1.5px solid var(--lavender)}.pricing-tier img{width:43px;height:43px}.pricing-tier h3{top:53px;width:182px;font-size:30px;line-height:36px}.pricing-tier__label,.pricing-tier__price{font-size:12px;line-height:20px}.pricing-tier .pricing-tier__label:nth-of-type(1){top:84px}.pricing-tier .pricing-tier__price:nth-of-type(2){top:100px;font-size:14px;line-height:22px}.pricing-tier .pricing-tier__label:nth-of-type(3){top:133px}.pricing-tier .pricing-tier__price:nth-of-type(4){top:149px;font-size:14px;line-height:22px}.faq{left:35px;top:325.25px;width:320px;height:200px}.faq__title{font-size:40px;line-height:45px;width:320px}.faq__list{top:45px;width:320px}.faq-row{height:40px;font-size:12px;line-height:22px}.faq-row span:last-child{font-size:16px}

  .site-footer{height:220.67px}.site-footer__logo{left:131.7px;top:40px;width:126.5px;height:42.1px}.site-footer__links{left:35px;top:91px;width:320px;font-size:12px;line-height:28px;gap:10px}.site-footer p{left:35px;top:136.7px;width:320px;font-size:9px;line-height:13px}
}

/* =========================================================
   V4 — exact spacing pass from the latest Adobe XD file
   No animations/interactions added.
   ========================================================= */

/* Shared fixes requested during review. */
.button>span[aria-hidden="true"]{display:inline-block;margin-left:10px}
.trust-list li:nth-child(3) img{padding:0;border:0}
.site-footer__links{left:50%;width:max-content;max-width:calc(100% - 40px);transform:translateX(-50%);white-space:nowrap}

/*
   XD content-aware labels.
   Each label below uses the actual rectangle size / rotation / position
   from the corresponding XD group instead of a generic padding recipe.
*/
.kicker{
  padding:0;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  transform-origin:0 0;
}

/* Founder copy uses the two ranged styles defined in XD. */
.founder__copy{font-weight:400;z-index:2}
.founder__copy strong{font-weight:700}
.founder__photo{z-index:1}

/* Keep the logo verdict artwork aligned with the other verdict rows. */
.drift-card:nth-child(3) .drift-card__art{top:77px}

/* ---------------------------------------------------------
   1440 artboard / regular desktop
   --------------------------------------------------------- */
@media (min-width:601px){
  /* XD has a 1px white gap between founder and pricing on the 1440 artboard. */
  .founder{margin-bottom:1px}

  /* Exact XD label rectangles. */
  .drift__kicker{left:98.202px;top:84.817px;width:110px;height:47px;font-size:35px;transform:rotate(-4deg)}
  .audit__kicker{left:100.613px;top:39.016px;width:172px;height:48px;font-size:36px;transform:rotate(3deg)}
  .process__kicker{left:633.795px;top:62.262px;width:168px;height:48px;font-size:36px;transform:rotate(-3deg)}
  .founder__kicker{left:97.477px;top:-8.282px;width:142px;height:48px;font-size:36px;transform:rotate(-4deg)}
  .pricing__kicker{left:97.995px;top:41.253px;width:112px;height:37px;font-size:27px;transform:rotate(-2deg)}
  .cta-card__kicker{left:28.432px;top:47.848px;width:220px;height:39px;font-size:29px;transform:rotate(-3deg)}

  /* Charte signal row: exact divider positions and post-divider breathing room. */
  .drift-signals{left:100.06px;top:336.56px;width:597px;height:80px;display:grid;grid-template-columns:143.10px 139px 164px 150.90px}
  .drift-signals li{position:relative;border:0;padding:0}
  .drift-signals li:nth-child(n+2) img,.drift-signals li:nth-child(n+2) span{left:14.9px}
  .drift-signals li:nth-child(2) img{top:2.23px}
  .drift-signals li:nth-child(-n+3)::after{content:"";position:absolute;right:0;top:10.71px;width:1.5px;height:69.34px;background:var(--lime)}

  /* Process mascots: revert to the true XD coordinates. */
  .process-card:nth-child(1) .process-card__icon{left:149px;top:85px}
  .process-card:nth-child(2) .process-card__icon{left:146px;top:67.8px}
  .process-card:nth-child(3) .process-card__icon{left:185.8px;top:85.4px}
  .process-card:nth-child(4) .process-card__icon{left:159px;top:85.4px}

  /* Suivi: rebuild columns from the actual XD divider coordinates. */
  .pricing-faq{height:406.425px} /* +20px requested: 70px after the final FAQ rule */
  .pricing__tiers{left:0;top:143.49px;width:780px;height:190px;display:block}
  .pricing-tier{position:absolute;top:0;width:205px;height:178px;padding:0!important;border:0!important}
  .pricing-tier:nth-child(1){left:100.22px}
  .pricing-tier:nth-child(2){left:331.23px}
  .pricing-tier:nth-child(3){left:559.23px}
  .pricing-tier:nth-child(2)::before,.pricing-tier:nth-child(3)::before{content:"";position:absolute;left:-22.5px;top:0;width:2px;height:177.75px;background:var(--lavender)}
  .pricing-tier img{left:0;top:0;width:43px;height:43px}
  .pricing-tier:nth-child(3) img{left:-.54px}
  .pricing-tier:nth-child(1) h3{top:53.25px}
  .pricing-tier:nth-child(2) h3,.pricing-tier:nth-child(3) h3{top:54px}
  .pricing-tier:nth-child(1) .pricing-tier__label:nth-of-type(1){top:88.50px}
  .pricing-tier:nth-child(1) .pricing-tier__price:nth-of-type(2){top:107.25px}
  .pricing-tier:nth-child(1) .pricing-tier__label:nth-of-type(3){top:137.26px}
  .pricing-tier:nth-child(1) .pricing-tier__price:nth-of-type(4){top:156px}
  .pricing-tier:nth-child(2) .pricing-tier__label:nth-of-type(1),.pricing-tier:nth-child(3) .pricing-tier__label:nth-of-type(1){top:89.25px}
  .pricing-tier:nth-child(2) .pricing-tier__price:nth-of-type(2),.pricing-tier:nth-child(3) .pricing-tier__price:nth-of-type(2){top:108px}
  .pricing-tier:nth-child(2) .pricing-tier__label:nth-of-type(3),.pricing-tier:nth-child(3) .pricing-tier__label:nth-of-type(3){top:138.01px}
  .pricing-tier:nth-child(2) .pricing-tier__price:nth-of-type(4),.pricing-tier:nth-child(3) .pricing-tier__price:nth-of-type(4){top:156.76px}

  /* FAQ: text and divider rhythm measured directly from XD. */
  .faq{left:842px;top:82.51px;width:493.5px;height:323.5px}
  .faq__list{left:0;top:0;width:493.5px;height:254px}
  .faq-row{position:absolute;left:0;width:493.5px;height:36.69px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--ink);font-size:16px;line-height:22px}
  .faq-row:nth-child(1){top:58.79px}
  .faq-row:nth-child(2){top:108.93px}
  .faq-row:nth-child(3){top:162.87px}
  .faq-row:nth-child(4){top:216.81px}
}

/* ---------------------------------------------------------
   1920 artboard / wide desktop
   --------------------------------------------------------- */
@media (min-width:99999px){
  .drift__kicker{left:145.881px;top:70.388px;width:150px;height:66px;font-size:49px;transform:rotate(-4deg)}
  .audit__kicker{left:147.887px;top:77.998px;width:234px;height:66px;font-size:49px;transform:rotate(3deg)}
  .process__kicker{left:844.973px;top:83.96px;width:226px;height:66px;font-size:49px;transform:rotate(-4deg)}
  .founder__kicker{left:144.921px;top:-11.752px;width:190px;height:67px;font-size:49px;transform:rotate(-4deg)}
  .pricing__kicker{left:148.137px;top:82.673px;width:148px;height:47px;font-size:37px;transform:rotate(-2deg)}
  .cta-card__kicker{left:29.941px;top:57.565px;width:364px;height:58px;font-size:49px;transform:rotate(-3deg)}

  .drift-card:nth-child(3) .drift-card__art{top:103px}
  .drift-signals{left:148px;top:414px;width:796px;height:110px;display:grid;grid-template-columns:190.81px 185.19px 218.19px 201.81px}
  .drift-signals li{position:relative;border:0;padding:0}
  .drift-signals li:nth-child(2) img,.drift-signals li:nth-child(2) span{left:20.19px}
  .drift-signals li:nth-child(3) img,.drift-signals li:nth-child(3) span{left:20px}
  .drift-signals li:nth-child(4) img,.drift-signals li:nth-child(4) span{left:19.81px}
  .drift-signals li:nth-child(2) img{top:2.96px}
  .drift-signals li:nth-child(-n+3)::after{content:"";position:absolute;right:0;top:14.27px;width:1.5px;height:92.46px;background:var(--lime)}

  /* Original 1920 icon coordinates from XD. */
  .process-card:nth-child(1) .process-card__icon{left:187px;top:115px}
  .process-card:nth-child(2) .process-card__icon{left:180px;top:91px}
  .process-card:nth-child(3) .process-card__icon{left:230px;top:115px}
  .process-card:nth-child(4) .process-card__icon{left:198px;top:115px}

  .pricing__tiers{left:0;top:216.09px;width:1050px;height:260px;display:block}
  .pricing-tier{position:absolute;top:0;width:250px;height:237px;padding:0!important;border:0!important}
  .pricing-tier:nth-child(1){left:148px}
  .pricing-tier:nth-child(2){left:456px}
  .pricing-tier:nth-child(3){left:760px}
  .pricing-tier:nth-child(2)::before,.pricing-tier:nth-child(3)::before{content:"";position:absolute;left:-30px;top:0;width:2px;height:237px;background:var(--lavender)}
  .pricing-tier img{left:0;top:0;width:57px;height:57px}
  .pricing-tier:nth-child(3) img{left:-.72px}
  .pricing-tier:nth-child(1) h3{top:71px}
  .pricing-tier:nth-child(2) h3,.pricing-tier:nth-child(3) h3{top:72px}
  .pricing-tier .pricing-tier__label:nth-of-type(1){top:118px}
  .pricing-tier .pricing-tier__price:nth-of-type(2){top:143px}
  .pricing-tier .pricing-tier__label:nth-of-type(3){top:183px}
  .pricing-tier .pricing-tier__price:nth-of-type(4){top:208px}

  .faq{left:1114px;top:134.781px;width:658px;height:409.2px}
  .faq__list{left:0;top:0;width:658px;height:338px}
  .faq-row{position:absolute;left:0;width:658px;height:48.92px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--ink);line-height:28px}
  .faq-row:nth-child(1){top:78.39px}
  .faq-row:nth-child(2){top:145.24px}
  .faq-row:nth-child(3){top:217.16px}
  .faq-row:nth-child(4){top:289.08px}
}

/* ---------------------------------------------------------
   390 artboard / mobile
   --------------------------------------------------------- */
@media (max-width:600px){
  /* Exact label rectangles from the mobile XD artboard. */
  .drift__kicker{left:35px;top:40.965px;width:110px;height:47px;font-size:35px;transform:rotate(-4deg)}
  .audit__kicker{left:37.512px;top:33.016px;width:172px;height:48px;font-size:36px;transform:rotate(3deg)}
  .process__kicker{left:109.859px;top:42.192px;width:168px;height:48px;font-size:36px;transform:rotate(-3deg)}
  .founder__kicker{left:32.509px;top:-17.958px;width:104px;height:36px;font-size:27px;transform:rotate(-4deg)}
  .pricing__kicker{left:34.964px;top:28.87px;width:90px;height:30px;font-size:22px;transform:rotate(-2deg)}
  .cta-card__kicker{left:30.048px;top:45.022px;width:214px;height:37px;font-size:29px;transform:rotate(-3deg)}

  /* Charte signals: use the actual two independent mobile rows from XD. */
  .drift-signals{left:0;top:0;width:390px;height:1047px;display:block}
  .drift-signals li{position:absolute;border:0;padding:0;width:155px;height:80px}
  .drift-signals li:nth-child(1){left:35px;top:583.71px}
  .drift-signals li:nth-child(2){left:193px;top:583.71px}
  .drift-signals li:nth-child(3){left:35px;top:693.39px}
  .drift-signals li:nth-child(4){left:199px;top:693.39px}
  .drift-signals li img,.drift-signals li span{left:0}
  .drift-signals li:nth-child(2) img{left:.56px;top:2.22px}
  .drift-signals li:nth-child(3) img{left:.58px;top:.01px}
  .drift-signals li:nth-child(4) img{left:-.77px;top:.01px}
  .drift-signals li:nth-child(1)::after{content:"";position:absolute;left:143.11px;top:10.71px;width:1.5px;height:69.34px;background:var(--lime)}
  .drift-signals li:nth-child(3)::after{content:"";position:absolute;left:148.65px;top:10.72px;width:1.5px;height:69.34px;background:var(--lime)}

  /* Mobile process mascots: exact XD positions; bottoms now line up with their titles. */
  .process-card:nth-child(1) .process-card__icon{left:149px;top:85px}
  .process-card:nth-child(2) .process-card__icon{left:146px;top:67.8px}
  .process-card:nth-child(3) .process-card__icon{left:185.8px;top:85.4px}
  .process-card:nth-child(4) .process-card__icon{left:159px;top:85.4px}

  /* Founder bridge + text flow. */
  .founder{overflow:visible;z-index:4}
  .founder__copy{width:236px;z-index:2;font-weight:400}
  .founder__photo{z-index:1}

  /* Latest XD file is 5326px high: pricing section ends at y=5105.68. */
  .pricing-faq{height:553.68px}
  .pricing__tiers{left:0;top:112.49px;width:660px;height:178px;display:block}
  .pricing-tier{position:absolute;top:0;width:182px;height:162.25px;padding:0!important;border:0!important}
  .pricing-tier:nth-child(1){left:35px}
  .pricing-tier:nth-child(2){left:242px}
  .pricing-tier:nth-child(3){left:449px}
  .pricing-tier:nth-child(2)::before,.pricing-tier:nth-child(3)::before{content:"";position:absolute;left:-25px;top:0;width:1.5px;height:162.25px;background:var(--lavender)}
  .pricing-tier img{left:0;top:0;width:43px;height:43px}
  .pricing-tier:nth-child(2) img{left:2.27px}
  .pricing-tier:nth-child(3) img{left:-.54px}
  .pricing-tier h3{top:53.25px;width:182px}
  .pricing-tier .pricing-tier__label:nth-of-type(1){top:83.75px}
  .pricing-tier .pricing-tier__price:nth-of-type(2){top:99.50px}
  .pricing-tier .pricing-tier__label:nth-of-type(3){top:127.51px}
  .pricing-tier .pricing-tier__price:nth-of-type(4){top:144.26px}

  .faq{left:35px;top:315.25px;width:320px;height:238.43px}
  .faq__list{left:0;top:0;width:320px;height:193px}
  .faq-row{position:absolute;left:0;width:320px;height:28px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--ink);font-size:12px;line-height:22px}
  .faq-row:nth-child(1){top:45px}
  .faq-row:nth-child(2){top:85px}
  .faq-row:nth-child(3){top:125px}
  .faq-row:nth-child(4){top:165px}

  .site-footer__links{max-width:320px;gap:8px}
}

/* sensible interpolation between supplied artboards */
@media (min-width:601px) and (max-width:1399px){body{min-width:1024px}}


/* =========================================================
   V5 — optical label centering + micro-alignment corrections
   Requested review pass. No new image assets.
   ========================================================= */

/*
   Eger's font metrics leave more visual air below the glyphs than above.
   Keep each XD label's horizontal footprint/anchor, but tighten the lower
   edge and nudge the glyph very slightly down for optical centering.
*/
.kicker{overflow:visible;text-align:center}
.kicker__text{
  display:block;
  width:100%;
  text-align:center;
  transform:translateY(1.5px);
  transform-origin:center;
}

/* Regular-size labels: tighter lower margin. */
.drift__kicker,
.audit__kicker,
.process__kicker,
.founder__kicker{padding:0 10px}

/* Smaller CTA / SUIVI labels: deliberately tighter than the large labels. */
.pricing__kicker,
.cta-card__kicker{padding:0 8px}
.pricing__kicker .kicker__text,
.cta-card__kicker .kicker__text{transform:translateY(1px)}

@media (min-width:601px){
  /* Preserve the left/right/top placement; only tighten the bottom edge. */
  .drift__kicker{height:43px}
  .audit__kicker{height:44px}
  .process__kicker{height:44px}
  .founder__kicker{height:44px}
  .pricing__kicker{height:33px}
  .cta-card__kicker{height:35px}

  /* Process mascots: align all four artwork bottoms to the same optical line. */
  .process-card:nth-child(1) .process-card__icon{top:85.757px}
  .process-card:nth-child(2) .process-card__icon{top:68.221px}
  .process-card:nth-child(3) .process-card__icon{top:85.583px}
  .process-card:nth-child(4) .process-card__icon{top:85.500px}

  /* A few more pixels between the FAQ heading and question 1. */
  .pricing-faq{height:411.425px}
  .faq-row:nth-child(1){top:63.79px}
  .faq-row:nth-child(2){top:113.93px}
  .faq-row:nth-child(3){top:167.87px}
  .faq-row:nth-child(4){top:221.81px}
}

@media (min-width:99999px){
  .drift__kicker{height:60px}
  .audit__kicker{height:60px}
  .process__kicker{height:60px}
  .founder__kicker{height:61px}
  .pricing__kicker{height:42px}
  .cta-card__kicker{height:52px}

  .process-card:nth-child(1) .process-card__icon{top:115.20px}
  .process-card:nth-child(2) .process-card__icon{top:91.83px}
  .process-card:nth-child(3) .process-card__icon{top:114.98px}
  .process-card:nth-child(4) .process-card__icon{top:114.86px}

  .pricing-faq{height:551px}
  .faq-row:nth-child(1){top:85.39px}
  .faq-row:nth-child(2){top:152.24px}
  .faq-row:nth-child(3){top:224.16px}
  .faq-row:nth-child(4){top:296.08px}
}

@media (max-width:600px){
  .drift__kicker{height:43px}
  .audit__kicker{height:44px}
  .process__kicker{height:44px}
  .founder__kicker{height:33px}
  .pricing__kicker{height:27px}
  .cta-card__kicker{height:33px}

  /* Same optical baseline as desktop for the carousel cards. */
  .process-card:nth-child(1) .process-card__icon{top:85.757px}
  .process-card:nth-child(2) .process-card__icon{top:68.221px}
  .process-card:nth-child(3) .process-card__icon{top:85.583px}
  .process-card:nth-child(4) .process-card__icon{top:85.500px}

  /* Remove the inherited full-height mobile dividers; keep only the short XD dividers. */
  .drift-signals li:nth-child(1),
  .drift-signals li:nth-child(3){border-right:0!important}
}

/* =========================================================
   V6 — extra breathing room below the SUIVI heading
   ========================================================= */
@media (min-width:601px){
  .pricing__tiers{top:153.49px}
}

@media (min-width:99999px){
  .pricing__tiers{top:229.09px}
}

@media (max-width:600px){
  /* Keep the original XD mobile spacing between SUIVI and the pricing cards. */
  .pricing__tiers{top:112.49px}
}


/* =========================================================
   V7 — requested text-wrap and desktop-only fine tuning
   ========================================================= */
@media (min-width:601px){
  /* Fine print below the founder CTA: desktop-only 10/14 typography. */
  .cta-card small{font-size:10px;line-height:14px}
}


/* =========================================================
   V8 — fluid reduction below the 1440 desktop artboard
   Responsive geometry is settled before motion/animation work.
   ========================================================= */
:root{--stacks-page-scale:1}

/* Remove the old fixed minimum width that caused cropping on narrower desktop windows. */
@media (min-width:601px) and (max-width:1399px){body{min-width:0}}

/*
   Continuous desktop scaling: the validated 1440px composition is the source
   for every viewport above 600px. It stays 1:1 at 1440px, grows progressively
   up to 1920px (and beyond if needed), and shrinks progressively below 1440px.
   This removes the former jump between the 1440 and wide-screen layouts.
*/
@media (min-width:601px){
  main,.site-footer{
    width:1440px;
    max-width:none;
    zoom:var(--stacks-page-scale);
  }
}

/* =========================================================
   V9 — fluid scaling for the dedicated 390px mobile artboard
   ========================================================= */
:root{--stacks-mobile-scale:1}

/*
   The mobile composition is authored at exactly 390px, like the XD artboard.
   From 600px downwards, keep that composition intact and scale it to fill the
   viewport: it grows proportionally between 390px and 600px and shrinks
   proportionally below 390px. The 600px breakpoint itself is therefore fluid
   too, without changing any of the validated mobile internal spacing.
*/
@media (max-width:600px){
  main,.site-footer{
    width:390px;
    max-width:none;
    zoom:var(--stacks-mobile-scale);
  }
}


/* =========================================================
   V10 — continuous desktop scaling from 1440px through 1920px
   ========================================================= */

/* =========================================================
   V11 — staggered title opacity reveal
   Large display titles start at 80% opacity and resolve to 100%
   character by character from left to right when entering the viewport.
   ========================================================= */
.display.is-title-reveal-ready .title-reveal__char{
  opacity:.3;
  transition-property:opacity;
  transition-duration:520ms;
  transition-timing-function:cubic-bezier(.22,1,.36,1);
  transition-delay:calc(var(--title-char-index) * 20ms);
}

.display.is-title-reveal-ready.is-title-revealed .title-reveal__char{
  opacity:1;
}

@media (prefers-reduced-motion:reduce){
  .display.is-title-reveal-ready .title-reveal__char{
    opacity:1;
    transition:none;
  }
}


/* =========================================================
   V12 — stronger title reveal + Lottie-like hero micro-motion
   Lightweight SVG/CSS motion; no external animation library.
   ========================================================= */

/* Stronger left-to-right letter reveal. */
.display.is-title-reveal-ready .title-reveal__char{opacity:.3}
.display.is-title-reveal-ready.is-title-revealed .title-reveal__char{opacity:1}

/* Hero: soft entrance + subtle continuous breathing. */
.hero__visual{
  transform-origin:50% 52%;
  animation:heroVisualIntro 900ms cubic-bezier(.22,1,.36,1) 120ms both;
}
.hero__visual-art{
  position:relative;
  z-index:1;
  transform-origin:50% 52%;
  will-change:transform;
  animation:heroVisualFloat 6.2s ease-in-out 1.05s infinite;
}

/* Hand-drawn motion accents, scaled in the same 924×924 coordinate system. */
.hero-motion{
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none;
  color:var(--ink);
}
.hero-motion__path{
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:.42;
  stroke-dasharray:1;
  stroke-dashoffset:1;
  transform-box:fill-box;
  transform-origin:center;
  animation:heroArrowDraw 4.8s cubic-bezier(.22,1,.36,1) infinite;
}
.hero-motion__path--1{animation-delay:.65s}
.hero-motion__path--2{animation-delay:2.15s}
.hero-motion__path--3{animation-delay:3.35s}

@keyframes heroVisualIntro{
  from{opacity:0;transform:translate3d(0,12px,0) scale(.975) rotate(.35deg)}
  to{opacity:1;transform:translate3d(0,0,0) scale(1) rotate(0deg)}
}
@keyframes heroVisualFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  50%{transform:translate3d(0,-4px,0) rotate(-.18deg)}
}
@keyframes heroArrowDraw{
  0%,10%{stroke-dashoffset:1;opacity:0;transform:scale(.9)}
  28%,58%{stroke-dashoffset:0;opacity:.42;transform:scale(1)}
  78%,100%{stroke-dashoffset:0;opacity:0;transform:scale(1.035)}
}

@media (max-width:600px){
  .hero__visual-art{animation-name:heroVisualFloatMobile}
  .hero-motion__path{stroke-width:2.6}
}
@keyframes heroVisualFloatMobile{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  50%{transform:translate3d(0,-2.5px,0) rotate(-.12deg)}
}

@media (prefers-reduced-motion:reduce){
  .hero__visual,.hero__visual-art,.hero-motion__path{animation:none!important}
  .hero-motion__path{stroke-dashoffset:0;opacity:.2;transform:none}
}

/* =========================================================
   V13 — CTA hover proposal
   Modern directional wipe on desktop only. Hero keeps the
   subtle intro/float from V12; hand-drawn arrow overlay removed.
   ========================================================= */

/* Remove the V12 decorative arrow layer entirely if an older cached HTML remains. */
.hero-motion{display:none!important}

/* CTA internals. */
.button{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:transform .32s cubic-bezier(.22,1,.36,1),color .32s ease,border-color .32s ease;
}
.button::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:-2px;
  border-radius:inherit;
  background:var(--button-hover-fill, var(--cream));
  transform:translate3d(-102%,0,0);
  transition:transform .5s cubic-bezier(.22,1,.36,1);
  pointer-events:none;
}
.button__label,.button__arrow{
  position:relative;
  z-index:1;
  display:inline-block;
  transition:transform .38s cubic-bezier(.22,1,.36,1);
}
.button__arrow{margin-left:10px}
/* Avoid the old generic arrow spacing applying twice. */
.button>.button__arrow[aria-hidden="true"]{margin-left:10px}

.button--dark{--button-hover-fill:var(--cream);--button-hover-color:var(--dark)}
.button--outline{--button-hover-fill:var(--dark);--button-hover-color:var(--lime)}
.button--lime{--button-hover-fill:var(--cream);--button-hover-color:var(--dark)}

/* Real hover only: no sticky/touch hover on the mobile composition. */
@media (min-width:601px) and (hover:hover) and (pointer:fine){
  .button:hover{
    color:var(--button-hover-color);
    transform:translateY(-2px);
  }
  .button:hover::before{transform:translate3d(0,0,0)}
  .button:hover .button__label{transform:translateX(-2px)}
  .button:hover .button__arrow{transform:translateX(5px)}
  .button:active{transform:translateY(0) scale(.985)}
}

@media (max-width:600px){
  .button,.button::before,.button__label,.button__arrow{transition:none!important}
  .button::before{display:none}
}

@media (prefers-reduced-motion:reduce){
  .button,.button::before,.button__label,.button__arrow{transition:none!important}
  .button:hover{transform:none!important}
  .button:hover .button__label,.button:hover .button__arrow{transform:none!important}
}

/* =========================================================
   V14 — CTA hover coverage, progressive link underlines,
   and SUIVI label spacing refinement.
   ========================================================= */

/* Ensure the two Hero CTAs receive the same desktop hover treatment
   as the header/contact CTAs, even inside the absolute hero action layer. */
.hero__actions .button{
  z-index:3;
  cursor:pointer;
}

/* Progressive underline for lightweight navigation/legal links.
   Uses currentColor so each link keeps its own existing green tone. */
.site-nav__link,
.site-footer__links a{
  position:relative;
  text-decoration:none;
}
.site-nav__link::after,
.site-footer__links a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-2px;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .38s cubic-bezier(.22,1,.36,1);
  pointer-events:none;
}

@media (min-width:601px) and (hover:hover) and (pointer:fine){
  /* Explicit Hero coverage for both CTA buttons. */
  .hero__actions .button:hover{
    color:var(--button-hover-color);
    transform:translateY(-2px);
  }
  .hero__actions .button:hover::before{transform:translate3d(0,0,0)}
  .hero__actions .button:hover .button__label{transform:translateX(-2px)}
  .hero__actions .button:active{transform:translateY(0) scale(.985)}

  .site-nav__link:hover::after,
  .site-footer__links a:hover::after{
    transform:scaleX(1);
  }
}

/* SUIVI label: closer to the title without touching it. */
@media (min-width:601px){
  .pricing__kicker{top:44.253px}
}
@media (max-width:600px){
  .pricing__kicker{top:30.37px}
}

@media (prefers-reduced-motion:reduce){
  .site-nav__link::after,
  .site-footer__links a::after{transition:none}
}

/* =========================================================
   V15 — SUIVI label refinement + CHARTE icon construction
   + mobile drift-card carousel
   ========================================================= */

/* The small SUIVI label sits a little closer to the heading on desktop,
   without overlapping it. Mobile keeps the validated V14 placement. */
@media (min-width:601px){
  .pricing__kicker{top:50.253px}
}

/* CHARTE — inline SVG icons prepared by JS for a light construction reveal. */
.drift-signals .signal-icon-inline{
  position:absolute;
  top:0;
  left:0;
  display:block;
  overflow:visible;
  color:var(--lime);
}
.drift-signals li:nth-child(1) .signal-icon-inline{width:39.777px;height:42.75px}
.drift-signals li:nth-child(2) .signal-icon-inline{width:41.37px;height:39px}
.drift-signals li:nth-child(3) .signal-icon-inline{width:42.729px;height:42.75px}
.drift-signals li:nth-child(4) .signal-icon-inline{width:38.548px;height:43.309px}

/* Construction pass: contour draws first, then the original filled icon settles in. */
.drift-signals.is-signal-build-ready .signal-icon-inline .signal-build-path{
  fill:var(--lime);
  fill-opacity:0;
  stroke:var(--lime);
  stroke-width:.72;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  stroke-dasharray:var(--signal-path-length, 1);
  stroke-dashoffset:var(--signal-path-length, 1);
  opacity:0;
}
.drift-signals.is-signal-build-ready.is-signal-build-active .signal-icon-inline .signal-build-path{
  animation:signalPathBuild 920ms cubic-bezier(.22,1,.36,1) forwards;
  animation-delay:calc(var(--signal-icon-index, 0) * 145ms + var(--signal-path-index, 0) * 22ms);
}
@keyframes signalPathBuild{
  0%{stroke-dashoffset:var(--signal-path-length,1);fill-opacity:0;opacity:0}
  12%{opacity:1}
  68%{stroke-dashoffset:0;fill-opacity:0;opacity:1}
  88%{stroke-dashoffset:0;fill-opacity:1;stroke-opacity:1;opacity:1}
  100%{stroke-dashoffset:0;fill-opacity:1;stroke-opacity:0;opacity:1}
}

/* Preserve the tiny XD offsets already validated for each signal. */
@media (min-width:601px){
  .drift-signals li:nth-child(n+2) .signal-icon-inline{left:14.9px}
  .drift-signals li:nth-child(2) .signal-icon-inline{top:2.23px}
}

/* Carousel UI only belongs to the mobile composition. */
.drift-carousel-dots{display:none}

@media (max-width:600px){
  /* Turn the four white cards into a real, touch-friendly horizontal slider
     while preserving their 286×231 XD card geometry. */
  .drift-cards{
    position:absolute;
    left:0;
    top:308.15px;
    width:390px;
    height:232px;
    display:flex;
    gap:20px;
    padding:0 52px;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-left:52px;
    scrollbar-width:none;
    -ms-overflow-style:none;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x;
    cursor:grab;
  }
  .drift-cards::-webkit-scrollbar{display:none}
  .drift-cards.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
  .drift-card,
  .drift-card:nth-child(1),
  .drift-card:nth-child(2),
  .drift-card:nth-child(3),
  .drift-card:nth-child(4){
    position:relative;
    left:auto;
    top:auto;
    flex:0 0 286px;
    width:286px;
    height:231px;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .drift-card:nth-child(4){height:231px}

  .drift-carousel-dots{
    position:absolute;
    z-index:5;
    left:0;
    top:553px;
    width:390px;
    height:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    pointer-events:auto;
  }
  .drift-carousel-dot{
    width:6px;
    height:6px;
    padding:0;
    border:0;
    border-radius:99px;
    background:var(--lime);
    opacity:.28;
    cursor:pointer;
    transition:width .28s cubic-bezier(.22,1,.36,1),opacity .28s ease;
  }
  .drift-carousel-dot.is-active{width:18px;opacity:1}

  /* Inline-icon positions mirror the already validated mobile SVG image offsets. */
  .drift-signals li:nth-child(1) .signal-icon-inline{left:0;top:0}
  .drift-signals li:nth-child(2) .signal-icon-inline{left:.56px;top:2.22px}
  .drift-signals li:nth-child(3) .signal-icon-inline{left:.58px;top:.01px}
  .drift-signals li:nth-child(4) .signal-icon-inline{left:-.77px;top:.01px}
}

@media (prefers-reduced-motion:reduce){
  .drift-signals.is-signal-build-ready .signal-icon-inline .signal-build-path{
    animation:none!important;
    stroke-dashoffset:0!important;
    stroke-opacity:0!important;
    fill-opacity:1!important;
    opacity:1!important;
  }
  .drift-carousel-dot{transition:none!important}
}

/* =========================================================
   V16 — softer CHARTE icon motion, mobile carousel spacing,
   horizontal containment + loading/performance cleanup
   ========================================================= */

/* Prevent fractional zoom / wide absolute children from creating a page-level
   horizontal scroll. The carousel itself remains the only horizontal scroller. */
html,body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
@supports not (overflow:clip){
  html,body{overflow-x:hidden}
}
main,.site-footer{overflow-x:clip}

/* Audit picture: one responsive resource instead of loading desktop + mobile. */
.audit__picture{display:block;width:100%;height:100%}
.audit__visual-art{display:block;width:738.886px;height:auto;margin-left:50px}
@media (max-width:600px){
  .audit__visual-art{width:359.264px;height:264.144px;margin-left:0}
}

/* CHARTE — replace the line-drawing construction with a soft editorial "snap".
   Each pictogram arrives independently, slightly out of phase, then settles. */
.drift-signals .signal-icon-animated{
  transform-box:fill-box;
  transform-origin:50% 65%;
  will-change:transform,opacity,filter;
}
.drift-signals.is-signal-pop-ready .signal-icon-animated{
  opacity:0;
  filter:blur(2.5px);
  transform:translate3d(0,9px,0) scale(.72) rotate(var(--signal-start-rotation,-4deg));
}
.drift-signals.is-signal-pop-ready li:nth-child(2) .signal-icon-animated{--signal-start-rotation:3deg}
.drift-signals.is-signal-pop-ready li:nth-child(3) .signal-icon-animated{--signal-start-rotation:-2deg}
.drift-signals.is-signal-pop-ready li:nth-child(4) .signal-icon-animated{--signal-start-rotation:4deg}
.drift-signals.is-signal-pop-ready.is-signal-pop-active .signal-icon-animated{
  animation:signalSoftSnap 720ms cubic-bezier(.16,1,.3,1) forwards;
  animation-delay:calc(var(--signal-icon-index,0) * 125ms);
}
@keyframes signalSoftSnap{
  0%{opacity:0;filter:blur(2.5px);transform:translate3d(0,9px,0) scale(.72) rotate(var(--signal-start-rotation,-4deg))}
  54%{opacity:1;filter:blur(0);transform:translate3d(0,-1.5px,0) scale(1.07) rotate(0deg)}
  76%{opacity:1;filter:blur(0);transform:translate3d(0,.5px,0) scale(.985) rotate(0deg)}
  100%{opacity:1;filter:blur(0);transform:translate3d(0,0,0) scale(1) rotate(0deg)}
}

/* Remove the V15 path-build animation completely. */
.drift-signals .signal-build-path{animation:none!important}

@media (max-width:600px){
  /* +10px breathing room after carousel indicators; preserve the validated
     spacing between the two signal rows and the copy below. */
  .drift-signals li:nth-child(1){top:593.71px}
  .drift-signals li:nth-child(2){top:593.71px}
  .drift-signals li:nth-child(3){top:703.39px}
  .drift-signals li:nth-child(4){top:703.39px}
  .drift__copy{top:822.76px}

  /* Contain inertial / snap scrolling inside the carousel viewport. */
  .drift-cards{
    max-width:390px;
    contain:layout paint;
    overscroll-behavior-inline:contain;
  }
}

@media (prefers-reduced-motion:reduce){
  .drift-signals.is-signal-pop-ready .signal-icon-animated{
    animation:none!important;
    opacity:1!important;
    filter:none!important;
    transform:none!important;
  }
}

/* =========================================================
   V17 — wider staggering + audit section motion + desktop
   carousel wheel/drag support
   ========================================================= */

/* Give the four CHARTE pictograms more breathing room between arrivals. */
.drift-signals.is-signal-pop-ready.is-signal-pop-active .signal-icon-animated{
  animation-delay:calc(var(--signal-icon-index,0) * 220ms);
}

/* The two paired headings in the last two sections should not resolve at once. */
.display.is-title-reveal-ready .title-reveal__char{
  transition-delay:calc(var(--title-reveal-delay, 0ms) + var(--title-char-index) * 20ms);
}
.cta-card__title{--title-reveal-delay:320ms}
.faq__title{--title-reveal-delay:320ms}

/* SOUS L'ŒIL — same restrained visual language as the Hero, triggered on view. */
.audit__visual{
  transform-origin:51% 52%;
  will-change:transform,opacity;
}
.audit__visual-art{
  transform-origin:51% 52%;
  will-change:transform;
}
.audit.is-audit-motion-ready .audit__visual{
  opacity:0;
  transform:translate3d(0,12px,0) scale(.978) rotate(.25deg);
}
.audit.is-audit-motion-ready.is-audit-motion-active .audit__visual{
  animation:auditVisualIntro 900ms cubic-bezier(.22,1,.36,1) 80ms both;
}
.audit.is-audit-motion-ready.is-audit-motion-active .audit__visual-art{
  animation:auditVisualFloat 6.8s ease-in-out 1s infinite;
}
@keyframes auditVisualIntro{
  from{opacity:0;transform:translate3d(0,12px,0) scale(.978) rotate(.25deg)}
  to{opacity:1;transform:translate3d(0,0,0) scale(1) rotate(0deg)}
}
@keyframes auditVisualFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  50%{transform:translate3d(0,-3.5px,0) rotate(.14deg)}
}

/* Checks: the dot lands first, then its label follows. Each item is staggered. */
.check-grid.is-check-reveal-ready li::before,
.check-grid.is-check-reveal-ready li>span{
  will-change:transform,opacity;
}
.check-grid.is-check-reveal-ready li::before{
  opacity:0;
  transform:translate3d(-5px,1px,0) scale(.55) rotate(-16deg);
  transition:
    opacity 360ms ease,
    transform 560ms cubic-bezier(.16,1,.3,1);
  transition-delay:calc(var(--check-index,0) * 125ms);
}
.check-grid.is-check-reveal-ready li>span{
  display:block;
  opacity:0;
  transform:translate3d(-7px,0,0);
  transition:
    opacity 440ms ease,
    transform 580ms cubic-bezier(.22,1,.36,1);
  transition-delay:calc(var(--check-index,0) * 125ms + 90ms);
}
.check-grid.is-check-reveal-ready.is-check-reveal-active li::before{
  opacity:1;
  transform:translate3d(0,0,0) scale(1) rotate(0deg);
}
.check-grid.is-check-reveal-ready.is-check-reveal-active li>span{
  opacity:1;
  transform:translate3d(0,0,0);
}

/* Desktop testing of the mobile carousel: explicit grabbing state. */
@media (max-width:600px) and (hover:hover) and (pointer:fine){
  .drift-cards{cursor:grab}
  .drift-cards.is-dragging{cursor:grabbing}
}

@media (max-width:600px){
  /* Keep the +10px separation validated in V16. */
  .drift-carousel-dots{margin-bottom:10px}
}

@media (prefers-reduced-motion:reduce){
  .audit.is-audit-motion-ready .audit__visual,
  .audit.is-audit-motion-ready.is-audit-motion-active .audit__visual,
  .audit.is-audit-motion-ready.is-audit-motion-active .audit__visual-art{
    animation:none!important;
    opacity:1!important;
    transform:none!important;
  }
  .check-grid.is-check-reveal-ready li::before,
  .check-grid.is-check-reveal-ready li>span{
    transition:none!important;
    opacity:1!important;
    transform:none!important;
  }
}

@media (max-width:600px){
  /* Prevent native image dragging from stealing desktop mouse gestures. */
  .drift-cards .drift-card,
  .drift-cards .drift-card *{
    -webkit-user-drag:none;
    user-select:none;
  }
}

/* =========================================================
   V18 — repeatable viewport motion + stronger audit layering
   ========================================================= */

/* Hero entrance is now replayable whenever the Hero comes back into view. */
.hero.is-hero-motion-ready .hero__visual{
  animation:none;
  opacity:0;
  transform:translate3d(0,14px,0) scale(.972) rotate(.3deg);
}
.hero.is-hero-motion-ready .hero__visual-art{animation:none}
.hero.is-hero-motion-ready.is-hero-motion-active .hero__visual{
  animation:heroVisualIntro 900ms cubic-bezier(.22,1,.36,1) 100ms both;
}
.hero.is-hero-motion-ready.is-hero-motion-active .hero__visual-art{
  animation:heroVisualFloat 6.2s ease-in-out 1.05s infinite;
}
@media (max-width:600px){
  .hero.is-hero-motion-ready.is-hero-motion-active .hero__visual-art{
    animation-name:heroVisualFloatMobile;
  }
}

/* SOUS L'ŒIL — slightly more assertive entrance while staying editorial. */
.audit.is-audit-motion-ready .audit__visual{
  opacity:0;
  transform:translate3d(0,18px,0) scale(.962) rotate(.42deg);
}
.audit.is-audit-motion-ready.is-audit-motion-active .audit__visual{
  animation:auditVisualIntroV18 980ms cubic-bezier(.22,1,.36,1) 70ms both;
}
.audit.is-audit-motion-ready.is-audit-motion-active .audit__visual-art{
  animation:auditVisualFloatV18 6.2s ease-in-out 1.05s infinite;
}
@keyframes auditVisualIntroV18{
  from{opacity:0;transform:translate3d(0,18px,0) scale(.962) rotate(.42deg)}
  72%{opacity:1;transform:translate3d(0,-2px,0) scale(1.006) rotate(-.08deg)}
  to{opacity:1;transform:translate3d(0,0,0) scale(1) rotate(0deg)}
}
@keyframes auditVisualFloatV18{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  50%{transform:translate3d(0,-5px,0) rotate(.18deg)}
}

/* A little more separation between each proof/check. */
.check-grid.is-check-reveal-ready li::before{
  transition-delay:calc(var(--check-index,0) * 185ms);
}
.check-grid.is-check-reveal-ready li>span{
  transition-delay:calc(var(--check-index,0) * 185ms + 105ms);
}

/* Reset/replay states are intentionally invisible only once the element has
   fully left the viewport; JS re-arms each animation for the next visit. */

@media (prefers-reduced-motion:reduce){
  .hero.is-hero-motion-ready .hero__visual,
  .hero.is-hero-motion-ready.is-hero-motion-active .hero__visual,
  .hero.is-hero-motion-ready.is-hero-motion-active .hero__visual-art,
  .audit.is-audit-motion-ready .audit__visual,
  .audit.is-audit-motion-ready.is-audit-motion-active .audit__visual,
  .audit.is-audit-motion-ready.is-audit-motion-active .audit__visual-art{
    animation:none!important;
    opacity:1!important;
    transform:none!important;
  }
}

/* Re-arm title characters instantly while off-screen; apply the stagger only
   on the entrance direction so every revisit reads left-to-right again. */
.display.is-title-reveal-ready .title-reveal__char{transition-delay:0ms}
.display.is-title-reveal-ready.is-title-revealed .title-reveal__char{
  transition-delay:calc(var(--title-reveal-delay, 0ms) + var(--title-char-index) * 20ms);
}

/* =========================================================
   V19 — PROCESS / "Vous envoyez" card motion and mobile slider
   ========================================================= */

/* Keep the card contents as one composited layer so the card can hover/tilt
   independently from its small entrance motion. */
.process-card__inner{
  position:absolute;
  inset:0;
  color:inherit;
  transform-origin:50% 55%;
  will-change:transform;
}
.process-card{
  --process-card-index:0;
  --process-card-tilt:-1.2deg;
  transform-origin:50% 55%;
  will-change:transform,opacity,background-color,color;
  transition:
    transform 520ms cubic-bezier(.16,1,.3,1),
    background-color 360ms ease,
    color 360ms ease;
}
.process-card:nth-child(2){--process-card-index:1;--process-card-tilt:1.25deg}
.process-card:nth-child(3){--process-card-index:2;--process-card-tilt:-1deg}
.process-card:nth-child(4){--process-card-index:3;--process-card-tilt:1.1deg}
.process-card__num{
  transition:color 360ms ease;
}
.process-card__icon-svg .process-card__mascot-lime{
  transition:fill 360ms ease;
}

/* Desktop: the four cards enter one after another, with a restrained lift.
   The replay observer re-arms them whenever the section fully leaves view. */
@media (min-width:601px){
  .process-cards.is-process-reveal-ready .process-card{
    opacity:0;
    transition:
      opacity 480ms ease,
      transform 520ms cubic-bezier(.16,1,.3,1),
      background-color 360ms ease,
      color 360ms ease;
    transition-delay:0ms;
  }
  .process-cards.is-process-reveal-ready .process-card__inner{
    transform:translate3d(0,14px,0) scale(.985);
    transition:transform 650ms cubic-bezier(.16,1,.3,1);
  }
  .process-cards.is-process-reveal-ready.is-process-reveal-active .process-card{
    opacity:1;
    transition-delay:calc(var(--process-card-index) * 145ms),0ms,0ms,0ms;
  }
  .process-cards.is-process-reveal-ready.is-process-reveal-active .process-card__inner{
    transform:translate3d(0,0,0) scale(1);
    transition-delay:calc(var(--process-card-index) * 145ms);
  }
}

/* Desktop hover: subtle editorial tilt/scale, then the palette flips.
   Only pointer devices get the effect; touch/mobile stays gesture-safe. */
@media (min-width:601px) and (hover:hover) and (pointer:fine){
  .process-cards.is-process-reveal-active .process-card:hover{
    z-index:5;
    background:var(--lime);
    color:var(--dark);
    transform:rotate(var(--process-card-tilt)) scale(1.028);
    transition-delay:0ms;
  }
  .process-cards.is-process-reveal-active .process-card:hover .process-card__num{
    color:var(--cream);
  }
  .process-cards.is-process-reveal-active .process-card:hover .process-card__mascot-lime{
    fill:var(--cream);
  }
}

/* Mobile: the whole carousel enters as one object. Cards themselves are not
   staggered. The centered card alone receives the green active treatment. */
@media (max-width:600px){
  .process-cards{
    position:absolute;
    left:0;
    top:307px;
    inset:auto;
    width:390px;
    height:405px;
    display:flex;
    gap:20px;
    padding:0 52px 10px;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:52px;
    scrollbar-width:none;
    -ms-overflow-style:none;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x;
    contain:layout paint;
  }
  .process-cards::-webkit-scrollbar{display:none}
  .process-cards.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}

  .process-card,
  .process-card:nth-child(1),
  .process-card:nth-child(2),
  .process-card:nth-child(3),
  .process-card:nth-child(4){
    position:relative;
    left:auto;
    top:auto;
    flex:0 0 286px;
    width:286px;
    height:395px;
    scroll-snap-align:center;
    scroll-snap-stop:always;
    opacity:1;
    transform:scale(1);
    transition:
      transform 460ms cubic-bezier(.16,1,.3,1),
      background-color 420ms cubic-bezier(.22,1,.36,1),
      color 360ms ease;
  }
  .process-card__inner{
    transform:none!important;
    transition:none!important;
  }

  .process-cards.is-process-reveal-ready{
    opacity:0;
    transform:translate3d(0,15px,0) scale(.985);
    transition:
      opacity 520ms ease,
      transform 720ms cubic-bezier(.16,1,.3,1);
  }
  .process-cards.is-process-reveal-ready.is-process-reveal-active{
    opacity:1;
    transform:translate3d(0,0,0) scale(1);
  }

  .process-card.is-mobile-center-active{
    background:var(--lime);
    color:var(--dark);
    transform:scale(1.015);
  }
  .process-card.is-mobile-center-active .process-card__num{
    color:var(--cream);
  }
  .process-card.is-mobile-center-active .process-card__mascot-lime{
    fill:var(--cream);
  }

}

/* Explicit desktop-testing cursor for the mobile composition. */
@media (max-width:600px) and (hover:hover) and (pointer:fine){
  .process-cards{cursor:grab}
  .process-cards.is-dragging{cursor:grabbing}
}

@media (prefers-reduced-motion:reduce){
  .process-cards.is-process-reveal-ready,
  .process-cards.is-process-reveal-ready .process-card,
  .process-cards.is-process-reveal-ready .process-card__inner{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}


/* =========================================================
   V20 — PROCESS mobile repair, indicators, mascot alignment,
   black active numbers + audit clipping fix support
   ========================================================= */

/* On green cards, numbers use the same site black as the rest of the content. */
@media (min-width:601px) and (hover:hover) and (pointer:fine){
  .process-cards.is-process-reveal-active .process-card:hover .process-card__num{
    color:var(--dark);
  }
}

/* Tiny optical correction: mascot artwork sits on the same visible baseline
   as the Eger card titles on desktop and mobile. */
.process-card:nth-child(1) .process-card__icon{top:87.757px}
.process-card:nth-child(2) .process-card__icon{top:70.221px}
.process-card:nth-child(3) .process-card__icon{top:87.583px}
.process-card:nth-child(4) .process-card__icon{top:87.500px}

/* The process dots belong only to the dedicated mobile carousel. */
.process-carousel-dots{display:none}

@media (max-width:600px){
  /* V19 used `inset:auto` after top/left, which reset those coordinates and
     pulled the carousel back over the section label/title. Restore the exact
     V18 card row: first card x=52 / row y=307. */
  .process-cards{
    inset:unset;
    left:0;
    right:auto;
    top:301px;
    bottom:auto;
    width:390px;
    height:411px;
    padding:6px 52px 10px;
    overflow-x:auto;
    overflow-y:hidden;
  }

  .process-card.is-mobile-center-active .process-card__num{
    color:var(--dark);
  }

  .process-carousel-dots{
    position:absolute;
    z-index:6;
    left:0;
    top:716px;
    width:390px;
    height:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    pointer-events:auto;
  }
  .process-carousel-dot{
    width:6px;
    height:6px;
    padding:0;
    border:0;
    border-radius:99px;
    background:var(--dark);
    opacity:.22;
    cursor:pointer;
    transition:width .28s cubic-bezier(.22,1,.36,1),opacity .28s ease;
  }
  .process-carousel-dot.is-active{width:18px;opacity:1}
}

@media (prefers-reduced-motion:reduce){
  .process-carousel-dot{transition:none!important}
}

/* =========================================================
   V21 — mobile label optical padding + process spacing tune
   ========================================================= */

/* Desktop: give the process heading a little more air by lifting its label. */
@media (min-width:601px){
  .process__kicker{top:58.5px}
}

/* Mobile labels: keep the validated left/right/top anchors and typography,
   but trim only the background below the glyphs. This matches the tighter
   optical padding already validated on desktop. Small CTA/SUIVI labels stay
   deliberately tighter than the larger editorial labels. */
@media (max-width:600px){
  .drift__kicker{height:40px}
  .audit__kicker{height:41px}
  .process__kicker{height:41px}
  .founder__kicker{height:30px}

  .pricing__kicker{height:25px}
  .cta-card__kicker{height:30px}

  /* A few more pixels of breathing room after the process carousel/dots
     before the following section begins. */
  .process{height:765px}
}

/* =========================================================
   V22 — accessible expanding FAQ, SUIVI icon motion,
   label optical centering + mobile Hero spacing
   ========================================================= */

/* Labels: use the box itself as the centering system instead of relying on
   XD text-box metrics. Eger still needs a tiny optical baseline correction. */
.kicker{
  display:flex;
  align-items:center;
  justify-content:center;
}
.kicker__text{
  display:block;
  width:100%;
  text-align:center;
}
@media (min-width:601px){
  /* 1–2px less visual space below the glyphs. */
  .kicker__text{transform:translateY(2.5px)}
  .pricing__kicker .kicker__text,
  .cta-card__kicker .kicker__text{transform:translateY(2px)}
}
@media (max-width:600px){
  /* Center mobile labels independently from the desktop XD text metrics. */
  .kicker__text{transform:translateY(1.5px)}
  .pricing__kicker .kicker__text,
  .cta-card__kicker .kicker__text{transform:translateY(1.25px)}

  /* Requested: move the Hero illustration 10px further down. */
  .hero__visual{top:304px}
}

/* SUIVI — same soft staggered pictogram entrance as the CHARTE signals. */
.pricing__tiers .pricing-icon-animated{
  transform-origin:50% 65%;
  will-change:transform,opacity,filter;
}
.pricing__tiers.is-pricing-icon-pop-ready .pricing-icon-animated{
  opacity:0;
  filter:blur(2.5px);
  transform:translate3d(0,9px,0) scale(.72) rotate(var(--pricing-icon-start-rotation,-4deg));
}
.pricing__tiers.is-pricing-icon-pop-ready .pricing-tier:nth-child(2) .pricing-icon-animated{--pricing-icon-start-rotation:3deg}
.pricing__tiers.is-pricing-icon-pop-ready .pricing-tier:nth-child(3) .pricing-icon-animated{--pricing-icon-start-rotation:-2deg}
.pricing__tiers.is-pricing-icon-pop-ready.is-pricing-icon-pop-active .pricing-icon-animated{
  animation:pricingIconSoftSnap 720ms cubic-bezier(.16,1,.3,1) forwards;
  animation-delay:calc(var(--pricing-icon-index,0) * 220ms);
}
@keyframes pricingIconSoftSnap{
  0%{opacity:0;filter:blur(2.5px);transform:translate3d(0,9px,0) scale(.72) rotate(var(--pricing-icon-start-rotation,-4deg))}
  54%{opacity:1;filter:blur(0);transform:translate3d(0,-1.5px,0) scale(1.07) rotate(0deg)}
  76%{opacity:1;filter:blur(0);transform:translate3d(0,.5px,0) scale(.985) rotate(0deg)}
  100%{opacity:1;filter:blur(0);transform:translate3d(0,0,0) scale(1) rotate(0deg)}
}

/* FAQ: the closed state keeps the validated XD rhythm. Opening one answer
   adds exactly its height to the section so the footer and everything below
   move naturally instead of being overlaid. */
.pricing-faq{
  --faq-extra:0px;
  height:calc(411.425px + var(--faq-extra));
  transition:height 520ms cubic-bezier(.16,1,.3,1);
}
.faq{height:auto}
.faq__list{
  position:absolute;
  left:0;
  top:63.79px;
  width:493.5px;
  height:auto;
}
.faq-item{
  position:relative;
  width:100%;
  margin:0 0 16px;
  border-bottom:1px solid var(--ink);
}
.faq-item:last-child{margin-bottom:0}
.faq-toggle{
  appearance:none;
  -webkit-appearance:none;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  width:100%;
  min-height:36.69px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--ink);
  font:500 16px/22px "Stack Sans Text",Arial,sans-serif;
  text-align:left;
  cursor:pointer;
}
.faq-toggle__question{display:block;max-width:440px}
.faq-toggle__arrow{
  flex:0 0 auto;
  display:inline-block;
  font-size:20px;
  line-height:22px;
  transform-origin:50% 50%;
  transition:transform 360ms cubic-bezier(.16,1,.3,1);
}
.faq-toggle[aria-expanded="true"] .faq-toggle__arrow{transform:rotate(90deg)}
.faq-answer{
  max-height:0;
  overflow:hidden;
  opacity:0;
  transition:max-height 520ms cubic-bezier(.16,1,.3,1),opacity 260ms ease;
}
.faq-item.is-open .faq-answer{opacity:1}
.faq-answer__inner{padding:7px 42px 18px 0}
.faq-answer p{
  margin:0;
  max-width:445px;
  font-size:14px;
  line-height:20px;
  font-weight:300;
}

/* Neutralize the historical absolute FAQ rows. */
.faq-row{position:static!important;left:auto!important;top:auto!important}

@media (max-width:600px){
  .pricing-faq{
    height:calc(553.68px + var(--faq-extra));
  }
  .faq{height:auto}
  .faq__list{
    left:0;
    top:45px;
    width:320px;
    height:auto;
  }
  .faq-item{margin-bottom:12px}
  .faq-toggle{
    min-height:28px;
    gap:12px;
    font-size:12px;
    line-height:18px;
  }
  .faq-toggle__question{max-width:285px}
  .faq-toggle__arrow{font-size:16px;line-height:18px}
  .faq-answer__inner{padding:5px 25px 14px 0}
  .faq-answer p{max-width:294px;font-size:11px;line-height:15px}
}

@media (prefers-reduced-motion:reduce){
  .pricing-faq,.faq-answer,.faq-toggle__arrow{transition:none!important}
  .pricing__tiers.is-pricing-icon-pop-ready .pricing-icon-animated{
    animation:none!important;
    opacity:1!important;
    filter:none!important;
    transform:none!important;
  }
}


/* =========================================================
   V23 — mobile founder label correction, mobile FAQ type,
   mobile pricing carousel + slide indicators
   ========================================================= */

/* Pricing indicators are mobile-only. */
.pricing-carousel-dots{display:none}

@media (max-width:600px){
  /* “Derrière STACKS”: use the same optical centering logic as the other
     labels, but let this shorter mobile label size itself to its text instead
     of forcing the too-tight XD width. */
  .founder__kicker{
    width:max-content;
    min-width:104px;
    height:32px;
    padding:0 8px;
    align-items:center;
    justify-content:center;
  }
  .founder__kicker .kicker__text{
    width:auto;
    transform:translateY(1.5px);
  }

  /* FAQ answer copy requested for mobile. */
  .faq-answer p{
    max-width:294px;
    font-size:14px;
    line-height:19px;
  }

  /* SUIVI pricing area becomes a real horizontal carousel without changing
     its vertical anchor. The original XD x positions are reproduced by the
     35px leading inset + 182px card + 25px gap rhythm. */
  .pricing__tiers{
    left:0;
    top:112.49px;
    width:390px;
    height:178px;
    display:flex;
    gap:25px;
    padding:0 173px 0 35px;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-padding-left:35px;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    touch-action:pan-x pan-y;
    cursor:grab;
  }
  .pricing__tiers::-webkit-scrollbar{display:none}
  .pricing__tiers.is-dragging{cursor:grabbing;scroll-snap-type:none}

  .pricing-tier{
    position:relative;
    left:auto!important;
    top:0!important;
    flex:0 0 182px;
    width:182px;
    height:162.25px;
    padding:0!important;
    border:0!important;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .pricing-tier:nth-child(2)::before,
  .pricing-tier:nth-child(3)::before{
    content:"";
    position:absolute;
    left:-25px;
    top:0;
    width:1.5px;
    height:162.25px;
    background:var(--lavender);
  }

  .pricing-carousel-dots{
    position:absolute;
    z-index:7;
    left:0;
    top:308.5px;
    width:390px;
    height:7px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    pointer-events:auto;
  }
  .pricing-carousel-dot{
    width:6px;
    height:6px;
    padding:0;
    border:0;
    border-radius:99px;
    background:var(--dark);
    opacity:.22;
    cursor:pointer;
    transition:width .28s cubic-bezier(.22,1,.36,1),opacity .28s ease;
  }
  .pricing-carousel-dot.is-active{width:18px;opacity:1}

  /* Keep the FAQ where it was: the dots finish ~10px above it. */
  .faq{top:325.25px}
}

@media (prefers-reduced-motion:reduce){
  .pricing-carousel-dot{transition:none!important}
}


/* =========================================================
   V24 — mobile label optical balance, FAQ micro-tuning,
   pricing dot spacing + restrained 1920 breathing room
   ========================================================= */

@media (max-width:600px){
  /* Mobile labels: equalize the visible padding around Eger instead of
     inheriting the desktop optical offset. Let the content determine height. */
  .drift__kicker,
  .audit__kicker,
  .process__kicker,
  .founder__kicker,
  .pricing__kicker,
  .cta-card__kicker{
    width:max-content;
    min-width:0;
    height:auto;
    padding:5px 8px 4px;
    align-items:center;
    justify-content:center;
  }
  .drift__kicker .kicker__text,
  .audit__kicker .kicker__text,
  .process__kicker .kicker__text,
  .founder__kicker .kicker__text,
  .pricing__kicker .kicker__text,
  .cta-card__kicker .kicker__text{
    width:auto;
    transform:translateY(.75px);
  }
  /* Smaller CTA / SUIVI tags keep the tighter rhythm requested earlier. */
  .pricing__kicker,
  .cta-card__kicker{padding:4px 7px 3px}
  .pricing__kicker .kicker__text,
  .cta-card__kicker .kicker__text{transform:translateY(.5px)}

  /* FAQ answers — mobile only. */
  .faq-answer p{font-size:12px;line-height:19px}

  /* Keep the fourth FAQ arrow vertically centered against its two-line label. */
  .faq-item:nth-child(4) .faq-toggle{align-items:center}

  /* Bring pricing indicators 7px closer to cards, then leave 20px after them. */
  .pricing-carousel-dots{top:301.5px}
  .faq{top:328.5px}
  .pricing-faq{height:calc(556.93px + var(--faq-extra))}
}

@media (min-width:601px){
  main,.site-footer{margin-left:auto;margin-right:auto}
}

/* =========================================================
   V25 — mobile label parity, FAQ spacing, full-bleed wide backgrounds
   ========================================================= */

/* Mobile: use the exact same fixed-box / optical-centering principle as the
   validated 1440 labels. Keep the mobile anchors and type sizes, but do not
   let the box shrink to its text width. */
@media (max-width:600px){
  .drift__kicker{
    width:110px;height:43px;padding:0 10px;
  }
  .audit__kicker{
    width:172px;height:44px;padding:0 10px;
  }
  .process__kicker{
    width:168px;height:44px;padding:0 10px;
  }
  .founder__kicker{
    width:104px;min-width:104px;height:33px;padding:0 10px;
  }
  .pricing__kicker{
    width:90px;height:27px;padding:0 8px;
  }
  .cta-card__kicker{
    width:214px;height:33px;padding:0 8px;
  }

  .drift__kicker .kicker__text,
  .audit__kicker .kicker__text,
  .process__kicker .kicker__text{
    width:100%;
    transform:translateY(2.5px);
  }
  .founder__kicker .kicker__text{
    width:100%;
    transform:translateY(2px);
  }
  .pricing__kicker .kicker__text{
    width:100%;
    transform:translateY(1.6px);
  }
  .cta-card__kicker .kicker__text{
    width:100%;
    transform:translateY(2px);
  }

  /* +10px between the pricing slide indicators and QUESTIONS. */
  .faq{top:338.5px}

  /* Give the two-line final question the same visible bottom breathing room
     before its rule as the one-line questions, while keeping its arrow centered
     against the two text lines rather than the padded button box. */
  .faq-item:nth-child(4) .faq-toggle{
    min-height:46px;
    padding-bottom:10px;
    align-items:flex-start;
  }
  .faq-item:nth-child(4) .faq-toggle__arrow{margin-top:9px}

  /* Closed state: final FAQ rule -> footer = 50px. Dynamic FAQ expansion still
     adds --faq-extra on top of this base height. */
  .pricing-faq{height:calc(599.5px + var(--faq-extra))}
}

/* 1920 breathing room must remain visually full-bleed. The layout itself is
   slightly reduced, but each section extends its own background through the
   side gutter so no white rails appear. */
@media (min-width:1441px){
  main{overflow-x:visible}
  main > section{
    box-sizing:content-box;
    border-left:var(--stacks-desktop-gutter-layout,0px) solid transparent;
    border-right:var(--stacks-desktop-gutter-layout,0px) solid transparent;
    margin-left:calc(-1 * var(--stacks-desktop-gutter-layout,0px));
  }
  main > .hero{border-color:var(--lime)}
  main > .drift{border-color:var(--dark)}
  main > .audit{border-color:var(--cream)}
  main > .process{border-color:#fff}
  main > .founder{border-color:var(--lavender)}
  main > .pricing-faq{border-color:var(--cream)}

  .site-footer{
    box-sizing:content-box;
    border-left:var(--stacks-desktop-gutter-layout,0px) solid var(--dark);
    border-right:var(--stacks-desktop-gutter-layout,0px) solid var(--dark);
  }
}

/* =========================================================
   V26 — mobile label / FAQ optical correction + CHARTE drag
   ========================================================= */
@media (max-width:600px){
  /* DERRIÈRE STACKS needs a little more horizontal breathing room than the
     strict XD rectangle gives Eger at 27px. Keep the validated anchor/height. */
  .founder__kicker{
    width:126px;
    min-width:126px;
    padding:0 10px;
  }
  .founder__kicker .kicker__text{
    width:100%;
    text-align:center;
    transform:translateY(2px);
  }

  /* Fourth FAQ question: balance the two lines inside the same rhythm as the
     other rows, with a tighter line-height and true vertical centering. */
  .faq-item:nth-child(4) .faq-toggle{
    min-height:44px;
    padding:5px 0 8px;
    align-items:center;
  }
  .faq-item:nth-child(4) .faq-toggle__question{
    line-height:15px;
    text-wrap:balance;
  }
  .faq-item:nth-child(4) .faq-toggle__arrow{
    margin-top:0;
    align-self:center;
  }

  /* Ensure desktop mouse-drag tests cannot be hijacked by nested SVG/images. */
  .drift-cards .drift-card img,
  .drift-cards .drift-card svg,
  .drift-cards .drift-card picture{
    pointer-events:none;
  }
}

/* =========================================================
   V27 — fifth FAQ item (AI Act)
   Preserve the validated bottom breathing room after adding one closed row.
   ========================================================= */
@media (min-width:601px){
  .pricing-faq{height:calc(464.115px + var(--faq-extra))}
}
@media (max-width:600px){
  .pricing-faq{height:calc(639.5px + var(--faq-extra))}
}


/* =========================================================
   V29 — requested editorial line breaks + mobile optical fixes
   + roomier wide-desktop composition
   ========================================================= */

@media (min-width:601px){
  /* Keep the original header CTA's visual side padding with the shorter label. */
  .button--header{
    width:auto;
    padding-left:28px;
    padding-right:28px;
  }
}

@media (max-width:600px){
  /* DERRIÈRE STACKS: reduce the horizontal air while keeping true centering. */
  .founder__kicker{
    width:114px;
    min-width:114px;
    padding-left:6px;
    padding-right:6px;
  }

  /* Let the founder paragraph follow the left edge of Florian's cut-out more cleanly. */
  .founder__copy{
    width:184px;
  }

  /* FAQ #4: equal top / bottom breathing room around the two-line label. */
  .faq-item:nth-child(4) .faq-toggle{
    min-height:40px;
    padding:5px 0;
    align-items:center;
  }
  .faq-item:nth-child(4) .faq-toggle__question{
    line-height:15px;
    max-width:270px;
  }
  .faq-item:nth-child(4) .faq-toggle__arrow{
    margin-top:0;
    align-self:center;
  }
}


/* =========================================================
   V30 — mobile FAQ #4 rhythm + founder copy contour
   ========================================================= */
@media (max-width:600px){
  /* FAQ #4: same top and bottom breathing as FAQ #3.
     The two-line label gets only the extra height needed by its second line. */
  .faq-item:nth-child(4) .faq-toggle{
    min-height:40px;
    padding:0;
    align-items:flex-start;
  }
  .faq-item:nth-child(4) .faq-toggle__question{
    max-width:270px;
    line-height:15px;
  }
  .faq-item:nth-child(4) .faq-toggle__arrow{
    margin-top:6px;
    align-self:flex-start;
  }

  /* DERRIÈRE STACKS: manual line lengths progressively narrow as Florian's
     silhouette gets wider, instead of forcing the whole paragraph into one
     narrow rectangle. */
  .founder__copy{
    width:280px;
  }
}

/* =========================================================
   V31 — mobile founder copy shaped around Florian
   Exact line/chunk structure supplied in review.
   ========================================================= */
@media (max-width:600px){
  .founder__copy{
    width:320px;
  }
  .founder__copy .founder-mobile-contour{
    display:block;
    width:320px;
  }
  .founder-contour-line{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    width:100%;
    min-height:19px;
    white-space:nowrap;
  }
  .founder-contour-line--single{
    display:block;
  }
  .founder-contour-line--right{
    justify-content:flex-end;
  }
}

/* =========================================================
   V35 — mobile founder photo optical shift
   ========================================================= */
@media (max-width:600px){
  .founder__photo{
    left:216px;
  }
}

/* =========================================================
   V36 — mobile menu from latest XD + scroll-direction header
   ========================================================= */
.mobile-rdv-button{display:none}

@media (max-width:600px){
  /* Latest XD mobile header: FAQ / CONTACT / calendar CTA. */
  .site-nav{
    display:flex;
    left:auto;
    right:35px;
    top:48px;
    width:auto;
    height:37px;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    z-index:7;
  }
  .site-nav__link{
    display:inline-flex;
    align-items:center;
    height:37px;
    font-size:8px;
    line-height:10px;
    font-weight:600;
  }
  .site-nav .button--header{display:none!important}
  .mobile-rdv-button{
    display:block;
    flex:0 0 37px;
    width:37px;
    height:37px;
  }
  .mobile-rdv-button img{width:37px;height:37px;display:block}
}

/* The original header remains part of the hero. This second header only
   appears after the user has left the top of the page and scrolls upward. */
.scroll-header{
  position:fixed;
  left:0;
  top:0;
  width:100%;
  height:92px;
  z-index:1000;
  background:rgba(221,255,112,.97);
  transform:translateY(-105%);
  transition:transform 280ms cubic-bezier(.22,1,.36,1);
  pointer-events:none;
  border-bottom:1px solid rgba(28,28,28,.08);
}
.scroll-header.is-visible{transform:translateY(0);pointer-events:auto}
.scroll-header .brand{
  position:absolute;
  left:calc(100px + max(0px, (100vw - 1440px) * .16));
  top:20px;
  width:150px;
  height:auto;
}
.scroll-header .site-nav{
  position:absolute;
  left:auto;
  right:calc(100px + max(0px, (100vw - 1440px) * .16));
  top:27px;
  width:auto;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:30px;
}
.scroll-header .site-nav__link{font-size:14px;line-height:18px}
.scroll-header .button--header{width:auto;min-width:246px;padding:0 24px;height:38px}
.scroll-header .mobile-rdv-button{display:none}

@media (max-width:600px){
  .scroll-header{height:76px}
  .scroll-header .brand{left:35px;top:20px;width:112px}
  .scroll-header .site-nav{
    right:35px;
    top:20px;
    height:37px;
    gap:10px;
  }
  .scroll-header .site-nav__link{font-size:8px;line-height:10px;height:37px}
  .scroll-header .button--header{display:none!important}
  .scroll-header .mobile-rdv-button{display:block;width:37px;height:37px;flex:0 0 37px}
  .scroll-header .mobile-rdv-button img{width:37px;height:37px}
}

@media (prefers-reduced-motion:reduce){
  .scroll-header{transition:none}
}


/* V55 — rapport CTA + transparent founder portrait */
@media (min-width:601px){
  .hero__secondary{width:auto;padding-left:28px;padding-right:28px}
}
@media (max-width:600px){
  .hero__secondary{width:auto;padding-left:20px;padding-right:20px}
}
.founder__photo img{background:transparent}
