/* =====================================================================
   Publiweb Group — maquette « Le SMS marketing qui rapproche »
   Design de référence : 1440 px (contenu mesuré au 1/836e = ×1,7225)
   ===================================================================== */

/* ---------- Police auto-hébergée (Rubik, subset latin) ---------- */
@font-face{
  font-family:'Rubik';font-style:normal;font-weight:400 800;font-display:swap;
  src:url(assets/fonts/Rubik-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --navy:#0a0e3a;          /* titres */
  --navy-soft:#1b2150;
  --blue:#3d63fc;          /* bleu de marque */
  --blue-strong:#2f52f0;
  --blue-soft:#eef2ff;
  --body:#7d87a3;          /* texte secondaire */
  --body-strong:#5b6684;
  --line:#e8ecf7;
  --white:#fff;

  --stage:1250px;          /* grand conteneur (cartes, FAQ) */
  --stage-nav:1164px;      /* conteneur de l’en-tête */
  --r-card:22px;
  --shadow-card:0 18px 40px -24px rgba(23,37,84,.28), 0 2px 6px rgba(23,37,84,.04);
  --font:'Rubik','Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--font);color:var(--navy);background:#fff;
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

.stage{width:100%;max-width:var(--stage);margin:0 auto}
@media (max-width:1330px){.stage{padding:0 40px}}
.ic{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ic--28{width:28px;height:28px;stroke-width:1.9}
.tx-blue{color:var(--blue)}
.hl em{font-style:normal;color:var(--blue)}

/* ============================ BOUTONS ============================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-weight:700;font-size:16px;line-height:1;letter-spacing:-.01em;
  padding:15px 24px;border-radius:999px;white-space:nowrap;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease;
}
.btn .ic{width:17px;height:17px;stroke-width:2.2}
.btn--primary{background:var(--blue);color:#fff;box-shadow:0 10px 24px -10px rgba(61,99,252,.75)}
.btn--primary:hover{background:var(--blue-strong);transform:translateY(-1px)}
.btn--ghost{background:#fff;color:var(--blue);box-shadow:inset 0 0 0 1.5px #d4ddfb}
.btn--ghost:hover{box-shadow:inset 0 0 0 1.5px var(--blue);transform:translateY(-1px)}
.btn--white{background:#fff;color:var(--blue-strong);box-shadow:0 12px 30px -12px rgba(6,10,40,.55)}
.btn--lg{padding:21px 30px;font-size:17px}
.btn--sm{padding:12px 20px;font-size:15px}

/* ============================ EN-TÊTE ============================ */
.site-header{position:absolute;inset:0 0 auto;z-index:20;padding:26px 0}
.nav__in{
  max-width:var(--stage-nav);margin:0 auto;padding:0 40px;
  display:flex;align-items:center;gap:28px;min-height:55px;
}
.logo{display:inline-flex;align-items:center;gap:12px;flex:none}
.logo__mark{width:43px;height:43px;flex:none}
.logo__mark svg{width:100%;height:100%;display:block}
.logo__txt{font-size:26px;font-weight:800;letter-spacing:-.02em;display:flex;align-items:baseline;gap:5px}
.logo__txt b{font-weight:800;color:var(--navy)}
.logo__txt i{font-style:normal;font-weight:500;color:#9aa3ba}
.nav__links{display:flex;align-items:center;gap:34px;margin:0 auto}
.nav__links a{font-size:15px;font-weight:600;color:var(--navy-soft)}
.nav__links a:hover{color:var(--blue)}

/* ============================ HERO ============================ */
.hero{position:relative;padding:145px 0 66px;background:
  radial-gradient(120% 90% at 88% 6%, #eef3ff 0%, rgba(238,243,255,0) 62%),
  radial-gradient(90% 70% at 4% 22%, #fdf3fb 0%, rgba(253,243,251,0) 58%),
  linear-gradient(180deg,#f6f9ff 0%,#f4f8ff 46%,#f5f9fe 100%);
  overflow:hidden;
}
.hero .stage{position:relative}
.hero__copy{position:relative;z-index:2;padding-left:69px;max-width:680px}
.hero h1{
  font-size:65px;line-height:1.05;font-weight:800;letter-spacing:-.024em;
  margin-bottom:20px;max-width:620px;
}
.hero .lead{font-size:22px;font-weight:500;color:var(--body-strong);letter-spacing:-.01em;margin-top:29px}
.actions{display:flex;flex-wrap:wrap;gap:22px;margin-top:20px}
.trust{display:flex;flex-wrap:wrap;gap:64px;margin-top:70px;padding-left:0;position:relative;z-index:2}
.trust li{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center;color:var(--blue)}
.trust li b{font-size:15px;font-weight:700;color:var(--navy);grid-column:2}
.trust li span{font-size:14px;font-weight:500;color:var(--body);grid-column:2}
.hero__art{
  position:absolute;top:-140px;right:-95px;width:700px;height:auto;z-index:1;
  pointer-events:none;user-select:none;
}

/* ============================ SECTIONS ============================ */
.sec-head{text-align:center;max-width:780px;margin:0 auto 13px}
.sec-head h2,.sec-title{
  font-size:34px;line-height:1.22;font-weight:800;letter-spacing:-.024em;color:var(--navy);
}
.sec-head .sub{margin-top:9px}
.sub{font-size:17px;line-height:1.42;font-weight:500;color:var(--body);letter-spacing:-.005em}
h3{font-size:19px;font-weight:700;letter-spacing:-.012em;color:var(--navy)}

/* ---------- Solutions ---------- */
.solutions{padding:6px 0 10px;background:linear-gradient(180deg,#f5f9fe 0%,#ffffff 78%)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.scard{
  position:relative;background:#fff;border-radius:var(--r-card);padding:30px 30px 30px;
  display:flex;gap:24px;align-items:flex-start;
  box-shadow:var(--shadow-card);
}
.scard__side{flex:none;display:flex;flex-direction:column;gap:29px;align-items:flex-start}
.scard__ico{width:84px;height:84px}
.scard__body{align-self:start;padding-top:6px}
.scard__body p{margin-top:10px;font-size:15.5px;color:var(--body)}
.round-btn{
  flex:none;
  width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  color:var(--blue);background:#fff;box-shadow:inset 0 0 0 1.5px #dfe5f8;
  transition:transform .18s ease,box-shadow .18s ease;
}
.round-btn .ic{width:18px;height:18px}
.round-btn:hover{transform:translateX(2px);box-shadow:inset 0 0 0 1.5px var(--blue)}

/* ---------- Audience ---------- */
.audience{position:relative;padding:0;overflow:hidden;background:#fff}
.audience .stage{position:relative;max-width:1440px;padding:0;height:535px}
.audience__copy{position:absolute;left:129px;top:60px;width:420px}
.audience__copy h2{font-size:34px;line-height:1.18;font-weight:800;letter-spacing:-.024em}
.audience__copy .sub{margin-top:5px;max-width:420px;line-height:1.4}
.feats{margin-top:35px;display:grid;gap:34px}
.feats li{display:grid;grid-template-columns:56px 1fr;column-gap:16px;align-items:center}
.feat__ico{
  width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  color:var(--blue);background:#fff;box-shadow:0 12px 26px -14px rgba(23,37,84,.30),inset 0 0 0 1px #edf1fc;
}
.feat__ico .ic{width:24px;height:24px}
.feats li b{font-size:18px;font-weight:700;grid-column:2;align-self:end}
.feats li>span:last-child{font-size:15px;color:var(--body);grid-column:2;align-self:start}
.audience__art{position:absolute;left:611px;top:26px;width:828px;height:568px}
.audience__art img{width:100%;height:auto}
.ov{position:absolute;font-weight:700;color:#101a3d;letter-spacing:-.01em;white-space:nowrap}
.ov--t1{left:85px;top:56px;font-size:18px}
.ov--t2{left:351px;top:194px;font-size:18px}
.ov--sel{left:126px;top:var(--y);font-weight:600;font-size:15.5px;color:#26325c}
.ov--msg{left:369px;top:246px;font-weight:600;font-size:15.5px;line-height:1.6;color:#26325c}
.ov--count{left:344px;top:381px;font-weight:600;font-size:14px;color:#8a93ab}
.ov--send{
  left:394px;top:407px;width:322px;height:81px;display:flex;align-items:center;justify-content:center;
  gap:12px;color:#fff;font-size:24px;font-weight:700;letter-spacing:-.01em;
}
.ov--send .ic{width:26px;height:26px;stroke-width:2.2}
.wave{font-weight:400}

/* ---------- Insights ---------- */
.insights{position:relative;overflow:hidden;aspect-ratio:1672/480;display:flex;align-items:flex-start}
.insights__bg{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.insights .stage{position:relative;z-index:1;display:flex;justify-content:flex-start}
.insights__copy{width:560px;margin-left:640px;padding:62px 0 0}
.insights__copy h2{font-size:40px;line-height:1.1;font-weight:800;letter-spacing:-.024em;max-width:none}
.insights__copy .sub{margin-top:22px;font-size:18px;max-width:560px;line-height:1.55}
.insights__copy .btn{margin-top:34px}

/* ---------- Étapes ---------- */
.steps{padding:29px 0 21px;background:#fff}
.sec-title{text-align:center;margin-bottom:42px}
.steplist{display:grid;grid-template-columns:repeat(3,1fr);gap:0;position:relative;padding-left:33px}
.steplist::before{
  content:"";position:absolute;left:126px;right:225px;top:35px;height:1px;
  background:repeating-linear-gradient(90deg,#c9d6f6 0 9px,transparent 9px 18px);
}
.steplist li{display:grid;grid-template-columns:71px 1fr;grid-template-rows:auto auto auto;column-gap:29px;align-items:start;position:relative}
.step__n{grid-row:1/span 2}
.step__n{
  width:71px;height:71px;border-radius:50%;display:grid;place-items:center;
  font-size:24px;font-weight:700;color:var(--blue);background:#fff;
  box-shadow:inset 0 0 0 2px #d9e2fb;
}
.step__ico{color:var(--blue);width:45px;height:45px;stroke-width:1.8;grid-column:2;grid-row:1}
.steplist li b{font-size:19px;font-weight:700;grid-column:2;grid-row:2;margin-top:14px}
.steplist li>span:last-child{font-size:15.5px;line-height:1.72;color:var(--body);grid-column:2;grid-row:3;max-width:390px;margin-top:2px}

/* ---------- Tarifs ---------- */
.pricing{padding:16px 0 6px;background:#f7f9fe}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:stretch}
.pcard{
  position:relative;border-radius:var(--r-card);padding:24px 32px 20px;overflow:hidden;
  display:grid;grid-template-columns:84px 1fr;column-gap:26px;background:#fff;
  box-shadow:0 20px 44px -30px rgba(23,37,84,.35);
}
.pcard::after{
  content:"";position:absolute;inset:auto -10% -55% -10%;height:100%;
  border-radius:50% 50% 0 0 / 60% 60% 0 0;opacity:.72;z-index:0;
}
.pcard--pink{background:linear-gradient(150deg,#fff 42%,#fdf1fb 100%)}
.pcard--pink::after{background:linear-gradient(90deg,#f6d3f4,#e8c9f8 60%,#d9e6ff)}
.pcard--blue{background:linear-gradient(150deg,#fff 42%,#f2f7ff 100%)}
.pcard--blue::after{background:linear-gradient(90deg,#dbe7ff,#c8dcff 60%,#e6e9ff)}
.pcard__ico{width:84px;height:84px;position:relative;z-index:1}
.pcard__body{position:relative;z-index:1;padding-top:4px}
.pcard__body p{margin-top:8px;font-size:15px;color:var(--body)}
.checks{margin:12px 0 14px;display:grid;gap:7px}
.checks li{display:flex;align-items:center;gap:11px;font-size:15px;font-weight:500;color:var(--navy-soft)}
.checks .ic{width:18px;height:18px;color:var(--blue);stroke-width:2.4}
.pcard .btn{padding:13px 22px}

/* ---------- FAQ ---------- */
.faq{padding:17px 0 37px;background:#f8f9fd}
.faq .stage{display:grid;grid-template-columns:330px 1fr;column-gap:0;align-items:start}
.faq__bubbles{width:338px;margin-left:-9px;margin-top:-2px}
.faq__main{min-width:0}
.faq__head{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;margin-bottom:14px}
.faq__head h2{font-size:31px;line-height:1.22;font-weight:800;letter-spacing:-.024em}
.faq__head .sub{margin-top:10px}
.acc{display:grid;gap:6px}
.acc__item{background:#fff;border-radius:18px;box-shadow:0 14px 30px -24px rgba(23,37,84,.35)}
.acc__q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:13px 26px;font-size:17px;font-weight:600;text-align:left;color:var(--navy);
}
.acc__q .ic--plus{width:22px;height:22px;color:var(--blue);transition:transform .25s ease}
.acc__item.is-open .acc__q .ic--plus{transform:rotate(45deg)}
.acc__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}
.acc__a>p{overflow:hidden;padding:0 26px;font-size:15.5px;color:var(--body)}
.acc__item.is-open .acc__a{grid-template-rows:1fr}
.acc__item.is-open .acc__a>p{padding-bottom:22px}

/* ---------- CTA ---------- */
.cta{position:relative;overflow:hidden;color:#fff;aspect-ratio:1672/336;display:flex;align-items:center}
.cta__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cta .stage{position:relative;z-index:1}
.cta__copy{padding:0;max-width:640px;margin-left:69px}
.cta__rule{display:block;width:46px;height:4px;border-radius:2px;background:#7fb2ff;margin-bottom:26px}
.cta__copy h2{font-size:36px;line-height:1.18;font-weight:800;letter-spacing:-.024em;max-width:none}
.cta__copy p{margin-top:16px;font-size:17px;font-weight:500;color:#cfd8ff;max-width:420px}
.cta__copy .btn{margin-top:34px}

/* ---------- Pied de page ---------- */
.site-footer{background:#0c142c;color:#fff;padding:26px 0}
.site-footer .stage{display:flex;align-items:center;gap:30px}
.logo--footer .logo__txt b{color:#fff}
.logo--footer .logo__txt i{color:#8e97ad}
.footer__nav{display:flex;gap:38px;margin:0 auto}
.footer__meta{display:flex;gap:38px}
.footer__nav a,.footer__meta a{font-size:15px;font-weight:500;color:#c9cfdd}
.footer__nav a:hover,.footer__meta a:hover{color:#fff}

/* ============================ RESPONSIVE ============================ */
@media (max-width:1330px){
  .nav__links{left:0}
  .hero__art{width:600px;top:-70px;right:-40px}
  .audience__art{width:700px;left:auto;right:0;top:40px}
  .insights__copy{margin-left:auto;width:44%;padding-left:20px}
  .audience__copy{left:80px}
}
@media (max-width:1080px){
  .grid3{gap:16px}
  .scard,.pcard{grid-template-columns:72px 1fr;column-gap:18px;padding:22px 20px}
  .scard{flex-direction:column;gap:18px}
  .scard__side{flex-direction:row;align-items:center;gap:18px}
  .pcard__ico,.scard__ico{width:72px;height:72px}
  /* le bloc illustration repasse dans le flux */
  .audience .stage{height:auto;max-width:1250px;padding:0 24px}
  .audience__copy{position:static;width:auto;max-width:560px;top:auto}
  .audience__art{position:relative;left:auto;top:auto;width:100%;max-width:720px;height:auto;margin:28px auto 0}
  .ov{display:none}
  .insights{aspect-ratio:auto;display:block}
  .insights__bg{position:relative;height:auto}
  .insights .stage{position:static;display:block;max-width:1250px;padding:24px}
  .insights__copy{margin:0;width:auto;max-width:560px;padding:0}
  .faq .stage{grid-template-columns:1fr;padding:0 24px}
  .faq__bubbles{margin:0 0 14px;width:250px}
  .cta{aspect-ratio:auto;display:block}
  .cta__bg{position:absolute}
  .cta__copy{margin-left:0}
  .cta .stage{padding:56px 24px}
}
@media (max-width:860px){
  .stage,.nav__in{padding:0 22px}
  .site-header{padding:16px 0}
  .nav__in{justify-content:space-between;position:relative}
  .nav__links{
    position:absolute;top:64px;left:22px;right:22px;flex-direction:column;align-items:flex-start;gap:4px;
    background:#fff;border-radius:18px;padding:14px 18px;box-shadow:0 24px 50px -24px rgba(16,24,64,.45);
    display:none;z-index:30;
  }
  .nav__links.is-open{display:flex}
  .nav__links a{padding:8px 0;font-size:16px}
  .nav__burger{display:flex}
  .nav__in .btn--primary{padding:11px 16px;font-size:14px}
  .logo__txt{font-size:21px}
  .logo__mark{width:34px;height:34px}
  .hero{padding:112px 0 44px}
  .hero__copy{padding-left:0}
  .hero h1{font-size:36px}
  .hero .lead{font-size:17px;margin-top:18px}
  .hero__art{position:relative;top:0;right:0;width:100%;max-width:480px;margin:18px auto -10px}
  .actions{gap:12px;margin-top:22px}
  .btn--lg{padding:15px 20px;font-size:15px}
  .trust{gap:22px;margin-top:34px}
  .trust li{grid-template-columns:auto 1fr;column-gap:10px}
  .grid3,.grid2,.steplist{grid-template-columns:1fr}
  .steplist{padding-left:0;gap:34px}
  .steplist::before{display:none}
  .steplist li{grid-template-columns:56px 1fr;column-gap:18px}
  .step__n{width:56px;height:56px;font-size:19px}
  .step__ico{width:34px;height:34px}
  .sec-head h2,.sec-title,.audience__copy h2,.faq__head h2,.cta__copy h2,.insights__copy h2{font-size:27px}
  .sec-head{margin-bottom:22px}
  .solutions,.pricing,.faq,.steps{padding-left:0;padding-right:0}
  .audience .stage,.faq .stage{padding:0 22px}
  .audience__art{max-width:560px}
  .insights__copy{max-width:none;padding:0 22px}
  .insights .stage{align-items:flex-end}
  .insights__copy .sub{font-size:16px}
  .pcard{padding:22px 20px}
  .faq__head{flex-direction:column;gap:14px;align-items:flex-start}
  .faq__bubbles{width:200px;margin-left:0}
  .acc__q{padding:14px 18px;font-size:15.5px}
  .acc__a>p{padding:0 18px;font-size:14.5px}
  .cta .stage{padding:40px 22px}
  .cta__copy h2{max-width:420px}
  .cta__copy p{font-size:15px}
  .site-footer .stage{flex-direction:column;align-items:flex-start;gap:16px}
  .footer__nav,.footer__meta{margin:0;flex-wrap:wrap;gap:18px}
}

/* ---------- Menu mobile ---------- */
.nav__burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;border-radius:12px;background:#f1f4fd;align-items:center}
.nav__burger i{display:block;width:19px;height:2px;border-radius:2px;background:var(--navy)}
.nav__burger[aria-expanded="true"]{background:var(--blue)}
.nav__burger[aria-expanded="true"] i{background:#fff}
