/* ==========================================================================
   Thirdslot — bande CTA commune (toutes les pages sauf l'accueil)
   Modèle : le CTA de la page About (maquette about_1, bande y 6440 → 7036).
   Mêmes cotes que .ab-cta ; la hauteur peut grandir si le texte est plus long.
   Animations activées par js/cta.js (.sc-anim, puis .is-in à l'écran).
   ========================================================================== */

.site-cta {
  position: relative; min-height: 596px; padding: 134px 24px 120px; text-align: center;
  background: #fbfafd url(/assets/about/bg-cta.webp) center top / cover no-repeat;
}
.site-cta-mark { display: block; width: 64px; height: 63px; margin: 0 auto; overflow: visible; }
.site-cta-mark path { transform-box: view-box; transform-origin: 960px 6605.5px; }
.site-cta h2 { margin-top: 31px; font-family: var(--font-head); font-weight: 500; font-size: 50px; line-height: 60px; color: #1a1a2e; }
.site-cta p { max-width: 500px; margin: 19px auto 0; font-size: 18px; line-height: 28px; color: #565656; }
.site-cta .btn { margin-top: 27px; min-width: 221px; gap: 12px; padding: 0 28px; }
/* la bande touche le footer, comme sur About */
main:has(> .site-cta:last-child) + .footer { border-top: 0; }

/* ---------- Animations ---------- */
@keyframes scRise { from { opacity: 0; transform: translateY(30px); filter: blur(6px); } to { opacity: 1; transform: none; filter: blur(0); } }
@keyframes scWord { from { transform: translateY(135%) rotate(4deg); } to { transform: none; } }
@keyframes scSeg1 { from { opacity: 0; transform: rotate(-140deg) scale(0.5); } to { opacity: 1; transform: none; } }
@keyframes scSeg2 { from { opacity: 0; transform: rotate(140deg) scale(0.5); } to { opacity: 1; transform: none; } }
@keyframes scLogoTurn { 0%, 70% { transform: rotate(0); } 100% { transform: rotate(360deg); } }
@keyframes scGlow { 0%, 100% { box-shadow: 0 10px 24px rgba(74, 70, 211, 0.32), 0 0 0 0 rgba(102, 99, 226, 0.35); } 50% { box-shadow: 0 14px 30px rgba(74, 70, 211, 0.42), 0 0 0 10px rgba(102, 99, 226, 0); } }

.site-cta h2 .w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.14em; margin-bottom: -0.14em; }
.site-cta h2 .w > span { display: inline-block; }
.sc-anim h2 .w > span { transform: translateY(135%); }
.sc-anim .site-cta-mark path, .sc-anim p, .sc-anim .btn { opacity: 0; }
.sc-anim.is-in h2 .w > span { animation: scWord 0.9s cubic-bezier(0.2, 0.75, 0.2, 1) calc(var(--i) * 0.045s) both; }
.sc-anim.is-in .site-cta-mark .s1 { animation: scSeg1 1s cubic-bezier(0.2, 0.7, 0.2, 1) 0.1s both; }
.sc-anim.is-in .site-cta-mark .s2 { animation: scSeg2 1s cubic-bezier(0.2, 0.7, 0.2, 1) 0.25s both; }
.sc-anim.is-in .site-cta-mark .s3 { animation: scSeg2 1s cubic-bezier(0.2, 0.7, 0.2, 1) 0.4s both; }
.sc-anim.is-in .site-cta-mark { animation: scLogoTurn 7s cubic-bezier(0.6, 0, 0.3, 1) 2s infinite; }
.sc-anim.is-in p { animation: scRise 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) 0.35s both; }
.sc-anim.is-in .btn { animation: scRise 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) 0.5s both, scGlow 2.6s ease-in-out 1.6s infinite; }

@media (max-width: 1099px) {
  .site-cta { min-height: 0; padding: 96px 20px 104px; }
  .site-cta h2 { font-size: clamp(30px, 5vw, 50px); line-height: 1.2; }
}

/* Recette n112 : bande d'inscription à la lettre (guides), avant la bande CTA */
.news-band { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; max-width: 1180px; margin: 72px auto 0; padding: 32px 40px; border-radius: 20px; background: #f4f3fc; border: 1px solid #e1e0f8; }
.news-band-t { flex: 1 1 340px; }
.news-band h2 { font-family: var(--font-head); font-weight: 500; font-size: 28px; line-height: 1.2; color: #1a1a2e; }
.news-band-t p { margin-top: 8px; font-size: 15.5px; line-height: 1.5; color: #4f4f4f; }
.news-band-f { flex: 1 1 360px; max-width: 460px; }
.news-band .newsletter { display: flex; gap: 8px; }
.news-band .newsletter input { flex: 1; min-width: 0; height: 50px; padding: 0 16px; border-radius: 12px; border: 1px solid #d9d8ee; background: #fff; font: inherit; font-size: 15px; color: #1a1a2e; }
.news-band .newsletter input:focus { outline: none; border-color: #4a46d3; box-shadow: 0 0 0 3px rgba(74, 70, 211, 0.15); }
.news-band .newsletter button { flex: none; height: 50px; padding: 0 22px; border-radius: 12px; background: #4a46d3; color: #fff; font: inherit; font-weight: 600; font-size: 15px; cursor: pointer; }
.news-band .newsletter button:hover { background: #3d39b8; }
.news-band .newsletter button:disabled { opacity: 0.6; cursor: default; }
.news-band .newsletter-msg { min-height: 20px; margin-top: 8px; font-size: 13.5px; color: #4a46d3; }
@media (max-width: 1240px) { .news-band { margin-left: 24px; margin-right: 24px; } }
@media (max-width: 600px) { .news-band { margin: 48px 16px 0; padding: 24px 20px; } .news-band h2 { font-size: 23px; } .news-band .newsletter { flex-direction: column; } }
