{"id":42,"date":"2026-04-03T19:20:32","date_gmt":"2026-04-03T19:20:32","guid":{"rendered":"https:\/\/ruyaibnsirine.com\/?page_id=42"},"modified":"2026-05-01T17:32:43","modified_gmt":"2026-05-01T17:32:43","slug":"interpreter-mon-reve","status":"publish","type":"page","link":"https:\/\/ruyaibnsirine.com\/en\/interpreter-mon-reve\/","title":{"rendered":"Acc\u00e8s \/ Inscription."},"content":{"rendered":"\n<section class=\"ruya-access-page\">\n  <div class=\"ruya-access-wrap\">\n\n    <div class=\"ruya-access-head\">\n      <div class=\"ruya-access-kicker\">Acc\u00e8s \/ Inscription<\/div>\n      <h1>Acc\u00e9der \u00e0 votre espace d\u2019interpr\u00e9tation<\/h1>\n      <p>Un acc\u00e8s simple, discret et rapide, o\u00f9 que vous viviez.<\/p>\n    <\/div>\n\n    <div class=\"ruya-access-card\">\n\n      <div class=\"ruya-step\">\n        <h2>1. Saisissez votre email<\/h2>\n        <p>Utilisez une adresse email valide pour recevoir votre acc\u00e8s et le suivi de votre abonnement.<\/p>\n        <input type=\"email\" id=\"ruya-email\" placeholder=\"Votre adresse email\" \/>\n        <div id=\"ruya-email-error\" class=\"ruya-email-error\">\n          Veuillez saisir une adresse email valide.\n        <\/div>\n      <\/div>\n\n      <div class=\"ruya-step\">\n        <h2>2. Choisissez votre formule<\/h2>\n\n        <div class=\"ruya-plans\">\n          <div class=\"ruya-plan ruya-plan-active\" data-plan=\"decouverte\">\n            <h3>D\u00e9couverte<\/h3>\n            <p>1 interpr\u00e9tation<\/p>\n            <strong>Offerte<\/strong>\n          <\/div>\n\n          <div class=\"ruya-plan\" data-plan=\"contribution\">\n            <h3>Contribution de soutien<\/h3>\n            <p>Jusqu\u2019\u00e0 20 interpr\u00e9tations sur 30 jours<\/p>\n            <strong>2 500 FCFA \/ 4 \u20ac<\/strong>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"ruya-step\">\n        <h2>3. Choisissez votre moyen de paiement<\/h2>\n        <p id=\"ruya-payment-text\">Aucun paiement n\u2019est requis pour la formule D\u00e9couverte.<\/p>\n      <\/div>\n\n      <div class=\"ruya-step ruya-final-step\">\n        <button type=\"button\" class=\"ruya-access-btn\" id=\"ruya-continue-btn\">Continuer<\/button>\n      <\/div>\n\n      <div class=\"ruya-step ruya-otp-step\" id=\"ruya-otp-step\" style=\"display:none;\">\n        <h2>4. V\u00e9rifiez votre adresse email<\/h2>\n        <p id=\"ruya-otp-info\">\n          Un code de v\u00e9rification vient d\u2019\u00eatre envoy\u00e9 \u00e0 votre adresse email.\n        <\/p>\n\n        <input\n          type=\"text\"\n          id=\"ruya-otp-code\"\n          class=\"ruya-otp-input\"\n          inputmode=\"numeric\"\n          autocomplete=\"one-time-code\"\n          placeholder=\"Saisissez le code re\u00e7u\"\n          maxlength=\"6\"\n        \/>\n\n        <div id=\"ruya-otp-error\" class=\"ruya-email-error\"><\/div>\n        <div id=\"ruya-otp-success\" class=\"ruya-otp-success\"><\/div>\n\n        <div class=\"ruya-otp-actions\">\n          <button type=\"button\" class=\"ruya-access-btn\" id=\"ruya-verify-btn\">Valider le code<\/button>\n          <button type=\"button\" class=\"ruya-otp-link-btn\" id=\"ruya-resend-btn\">Renvoyer le code<\/button>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n  .page-id-42 .entry-title,\n  .page-id-42 h1.entry-title,\n  .page-id-42 .main_title,\n  .page-id-42 .et_pb_title_container {\n    display: none !important;\n  }\n\n  .page-id-42 .container:first-child,\n  .page-id-42 #left-area,\n  .page-id-42 article.page,\n  .page-id-42 #main-content,\n  .page-id-42 .et_pb_post {\n    padding-top: 0 !important;\n    margin-top: 0 !important;\n  }\n\n  .ruya-access-page{\n    background: linear-gradient(180deg, #07152f 0%, #0b1f47 100%);\n    min-height: 100vh;\n    padding: 80px 20px;\n  }\n\n  .ruya-access-wrap{\n    max-width: 980px;\n    margin: 0 auto;\n  }\n\n  .ruya-access-head{\n    text-align: center;\n    margin-bottom: 34px;\n  }\n\n  .ruya-access-kicker{\n    color: #c8a85d;\n    font-family: Inter, sans-serif;\n    font-size: 16px;\n    font-weight: 700;\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    margin-bottom: 14px;\n  }\n\n  .ruya-access-head h1{\n    margin: 0 0 16px;\n    color: #c8a85d;\n    font-family: Inter, sans-serif;\n    font-size: 52px;\n    font-weight: 800;\n    line-height: 1.1;\n    letter-spacing: -0.02em;\n  }\n\n  .ruya-access-head p{\n    margin: 0;\n    color: #f3eee3;\n    font-family: Inter, sans-serif;\n    font-size: 22px;\n    line-height: 1.6;\n  }\n\n  .ruya-access-card{\n    background: rgba(8,20,50,0.78);\n    border: 1px solid rgba(201,162,72,0.22);\n    border-radius: 28px;\n    padding: 34px;\n    box-shadow: 0 20px 50px rgba(0,0,0,0.24);\n  }\n\n  .ruya-step{\n    margin-bottom: 30px;\n  }\n\n  .ruya-step h2{\n    margin: 0 0 12px;\n    color: #f5efe3;\n    font-family: Inter, sans-serif;\n    font-size: 24px;\n    font-weight: 700;\n    line-height: 1.4;\n  }\n\n  .ruya-step p{\n    margin: 0 0 16px;\n    color: #d9deea;\n    font-family: Inter, sans-serif;\n    font-size: 18px;\n    line-height: 1.7;\n  }\n\n  #ruya-email,\n  .ruya-otp-input{\n    width: 100%;\n    padding: 18px 20px;\n    border-radius: 16px;\n    border: 1px solid rgba(201,162,72,0.24);\n    background: rgba(255,255,255,0.08);\n    color: #f5efe3;\n    font-family: Inter, sans-serif;\n    font-size: 17px;\n    box-sizing: border-box;\n    outline: none;\n  }\n\n  #ruya-email::placeholder,\n  .ruya-otp-input::placeholder{\n    color: #cdd6e6;\n  }\n\n  #ruya-email:focus,\n  .ruya-otp-input:focus{\n    border-color: #c8a85d;\n    box-shadow: 0 0 0 3px rgba(200,168,93,0.12);\n  }\n\n  .ruya-email-error{\n    display: none;\n    margin-top: 10px;\n    color: #ffd7d7;\n    font-family: Inter, sans-serif;\n    font-size: 15px;\n    line-height: 1.5;\n  }\n\n  .ruya-otp-success{\n    display: none;\n    margin-top: 10px;\n    color: #d8efcf;\n    font-family: Inter, sans-serif;\n    font-size: 15px;\n    line-height: 1.5;\n  }\n\n  .ruya-plans{\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 20px;\n  }\n\n  .ruya-plan{\n    background: rgba(255,255,255,0.04);\n    border: 1px solid rgba(201,162,72,0.20);\n    border-radius: 20px;\n    padding: 28px;\n    cursor: pointer;\n    transition: all 0.2s ease;\n  }\n\n  .ruya-plan:hover{\n    border-color: #c8a85d;\n    transform: translateY(-2px);\n  }\n\n  .ruya-plan-active{\n    border-color: #c8a85d !important;\n    box-shadow: 0 0 0 2px rgba(200,168,93,0.10) inset;\n    background: rgba(255,255,255,0.06);\n  }\n\n  .ruya-plan h3{\n    margin: 0 0 14px;\n    color: #c8a85d;\n    font-family: Inter, sans-serif;\n    font-size: 24px;\n    font-weight: 700;\n    line-height: 1.2;\n  }\n\n  .ruya-plan p{\n    margin: 0 0 14px;\n    color: #d9deea;\n    font-family: Inter, sans-serif;\n    font-size: 17px;\n    line-height: 1.7;\n  }\n\n  .ruya-plan strong{\n    color: #f5efe3;\n    font-family: Inter, sans-serif;\n    font-size: 20px;\n    font-weight: 800;\n  }\n\n  .ruya-final-step{\n    text-align: center;\n    margin-bottom: 0;\n    padding-top: 6px;\n  }\n\n  .ruya-access-btn{\n    display: inline-block;\n    padding: 17px 34px;\n    background: #c8a85d;\n    color: #ffffff;\n    border: none;\n    border-radius: 999px;\n    font-family: Inter, sans-serif;\n    font-size: 18px;\n    font-weight: 700;\n    cursor: pointer;\n    box-shadow: none;\n  }\n\n  .ruya-access-btn:hover{\n    opacity: 0.95;\n  }\n\n  .ruya-access-btn[disabled]{\n    opacity: 0.72;\n    cursor: not-allowed;\n  }\n\n  .ruya-otp-step{\n    margin-top: 26px;\n    padding-top: 26px;\n    border-top: 1px solid rgba(201,162,72,0.18);\n  }\n\n  .ruya-otp-actions{\n    display: flex;\n    gap: 14px;\n    flex-wrap: wrap;\n    align-items: center;\n    margin-top: 18px;\n  }\n\n  .ruya-otp-link-btn{\n    background: transparent;\n    border: none;\n    color: #c8a85d;\n    font-family: Inter, sans-serif;\n    font-size: 16px;\n    font-weight: 700;\n    cursor: pointer;\n    padding: 0;\n  }\n\n  .ruya-otp-link-btn[disabled]{\n    opacity: 0.72;\n    cursor: not-allowed;\n  }\n\n  @media (max-width: 768px){\n    .ruya-access-page{\n      padding: 56px 16px;\n    }\n\n    .ruya-access-head h1{\n      font-size: 36px;\n    }\n\n    .ruya-access-head p{\n      font-size: 18px;\n    }\n\n    .ruya-access-card{\n      padding: 22px;\n      border-radius: 22px;\n    }\n\n    .ruya-step h2{\n      font-size: 21px;\n    }\n\n    .ruya-step p{\n      font-size: 16px;\n    }\n\n    .ruya-plans{\n      grid-template-columns: 1fr;\n    }\n\n    .ruya-plan{\n      padding: 22px;\n    }\n\n    .ruya-otp-actions{\n      flex-direction: column;\n      align-items: stretch;\n    }\n\n    .ruya-otp-link-btn{\n      text-align: center;\n    }\n  }\n<\/style>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function () {\n  const plans = document.querySelectorAll('.ruya-plan');\n  const paymentText = document.getElementById('ruya-payment-text');\n  const emailInput = document.getElementById('ruya-email');\n  const errorBox = document.getElementById('ruya-email-error');\n  const continueBtn = document.getElementById('ruya-continue-btn');\n\n  const otpStep = document.getElementById('ruya-otp-step');\n  const otpInput = document.getElementById('ruya-otp-code');\n  const otpError = document.getElementById('ruya-otp-error');\n  const otpSuccess = document.getElementById('ruya-otp-success');\n  const otpInfo = document.getElementById('ruya-otp-info');\n  const verifyBtn = document.getElementById('ruya-verify-btn');\n  const resendBtn = document.getElementById('ruya-resend-btn');\n\n  function getSelectedPlan() {\n    const activePlan = document.querySelector('.ruya-plan-active');\n    return activePlan ? activePlan.getAttribute('data-plan') : 'decouverte';\n  }\n\n  function validateEmail(email) {\n    return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email);\n  }\n\n  function resetOtpMessages() {\n    otpError.style.display = 'none';\n    otpError.textContent = '';\n    otpSuccess.style.display = 'none';\n    otpSuccess.textContent = '';\n  }\n\n  function setClientAccess(email, plan) {\n    sessionStorage.setItem('ruya_access_granted', '1');\n    sessionStorage.setItem('ruya_access_granted_at', Date.now().toString());\n    sessionStorage.setItem('ruya_user_email', email);\n    sessionStorage.setItem('ruya_selected_plan', plan);\n  }\n\n  function showOtpStep(email, plan) {\n    otpStep.style.display = 'block';\n    otpInfo.textContent = 'Un code de v\u00e9rification a \u00e9t\u00e9 envoy\u00e9 \u00e0 ' + email + '. Saisissez-le ci-dessous pour poursuivre.';\n    otpInput.value = '';\n    resetOtpMessages();\n    sessionStorage.setItem('ruya_user_email', email);\n    sessionStorage.setItem('ruya_selected_plan', plan);\n    otpStep.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    otpInput.focus();\n  }\n\n  async function sendOtp(email, plan) {\n    const formData = new FormData();\n    formData.append('action', 'ruya_send_otp');\n    formData.append('email', email);\n    formData.append('plan', plan);\n\n    const response = await fetch('\/wp-admin\/admin-ajax.php', {\n      method: 'POST',\n      body: formData,\n      credentials: 'same-origin'\n    });\n\n    return response.json();\n  }\n\n  async function checkAccess(email, plan) {\n    const formData = new FormData();\n    formData.append('action', 'ruya_access_check');\n    formData.append('email', email);\n    formData.append('plan', plan);\n\n    const response = await fetch('\/wp-admin\/admin-ajax.php', {\n      method: 'POST',\n      body: formData,\n      credentials: 'same-origin'\n    });\n\n    return response.json();\n  }\n\n  plans.forEach(plan => {\n    plan.addEventListener('click', function () {\n      plans.forEach(p => p.classList.remove('ruya-plan-active'));\n      this.classList.add('ruya-plan-active');\n\n      const selectedPlan = this.getAttribute('data-plan');\n\n      if (selectedPlan === 'contribution') {\n        paymentText.textContent = 'PayDunya, carte Visa, Mastercard, ou autre solution compatible selon votre pays.';\n      } else {\n        paymentText.textContent = 'Aucun paiement n\u2019est requis pour la formule D\u00e9couverte.';\n      }\n    });\n  });\n\n  continueBtn.addEventListener('click', async function () {\n    const email = emailInput.value.trim();\n    const selectedPlan = getSelectedPlan();\n\n    if (!validateEmail(email)) {\n      errorBox.textContent = 'Veuillez saisir une adresse email valide.';\n      errorBox.style.display = 'block';\n      emailInput.focus();\n      return;\n    }\n\n    errorBox.style.display = 'none';\n    resetOtpMessages();\n    continueBtn.disabled = true;\n    continueBtn.textContent = 'V\u00e9rification...';\n\n    try {\n      const accessResult = await checkAccess(email, selectedPlan);\n\n      if (!accessResult.success) {\n        errorBox.textContent = (accessResult.data && accessResult.data.message)\n          ? accessResult.data.message\n          : 'Impossible de v\u00e9rifier votre acc\u00e8s.';\n        errorBox.style.display = 'block';\n        continueBtn.disabled = false;\n        continueBtn.textContent = 'Continuer';\n        return;\n      }\n\n      const accessData = accessResult.data || {};\n\n      if (accessData.allowed && accessData.redirect) {\n        setClientAccess(email, accessData.plan || selectedPlan);\n        window.location.href = accessData.redirect;\n        return;\n      }\n\n     if (accessData.known_user === false) {\n  continueBtn.textContent = 'Envoi du code...';\n\n  const otpResult = await sendOtp(email, selectedPlan);\n\n  if (!otpResult.success) {\n    errorBox.textContent = (otpResult.data && otpResult.data.message)\n      ? otpResult.data.message\n      : 'Impossible d\u2019envoyer le code de v\u00e9rification.';\n    errorBox.style.display = 'block';\n    continueBtn.disabled = false;\n    continueBtn.textContent = 'Continuer';\n    return;\n  }\n\n  showOtpStep(email, selectedPlan);\n  otpSuccess.textContent = 'Code envoy\u00e9 avec succ\u00e8s. V\u00e9rifiez votre bo\u00eete email.';\n  otpSuccess.style.display = 'block';\n  continueBtn.disabled = false;\n  continueBtn.textContent = 'Continuer';\n  return;\n}\n\nif (selectedPlan === 'contribution' && accessData.requires_pay) {\n  sessionStorage.setItem('ruya_user_email', email);\n  sessionStorage.setItem('ruya_selected_plan', selectedPlan);\n  window.location.href = '\/paiement-soutien\/';\n  return;\n}\n\n      if (selectedPlan === 'decouverte' && accessData.known_user && !accessData.allowed) {\n        errorBox.textContent = accessData.message || 'La formule D\u00e9couverte n\u2019est plus disponible pour cette adresse.';\n        errorBox.style.display = 'block';\n        continueBtn.disabled = false;\n        continueBtn.textContent = 'Continuer';\n        return;\n      }\n\n      continueBtn.textContent = 'Envoi du code...';\n\n      const otpResult = await sendOtp(email, selectedPlan);\n\n      if (!otpResult.success) {\n        errorBox.textContent = (otpResult.data && otpResult.data.message)\n          ? otpResult.data.message\n          : 'Impossible d\u2019envoyer le code de v\u00e9rification.';\n        errorBox.style.display = 'block';\n        continueBtn.disabled = false;\n        continueBtn.textContent = 'Continuer';\n        return;\n      }\n\n      showOtpStep(email, selectedPlan);\n      otpSuccess.textContent = 'Code envoy\u00e9 avec succ\u00e8s. V\u00e9rifiez votre bo\u00eete email.';\n      otpSuccess.style.display = 'block';\n      continueBtn.disabled = false;\n      continueBtn.textContent = 'Continuer';\n\n    } catch (error) {\n      console.error('Erreur AJAX RUYA ACCESS \/ OTP :', error);\n      errorBox.textContent = 'Erreur technique lors du contr\u00f4le d\u2019acc\u00e8s.';\n      errorBox.style.display = 'block';\n      continueBtn.disabled = false;\n      continueBtn.textContent = 'Continuer';\n    }\n  });\n\n  verifyBtn.addEventListener('click', async function () {\n    const email = emailInput.value.trim();\n    const selectedPlan = getSelectedPlan();\n    const otpCode = otpInput.value.trim();\n\n    resetOtpMessages();\n\n    if (!validateEmail(email)) {\n      otpError.textContent = 'Adresse email invalide.';\n      otpError.style.display = 'block';\n      emailInput.focus();\n      return;\n    }\n\n    if (!otpCode) {\n      otpError.textContent = 'Veuillez saisir le code re\u00e7u.';\n      otpError.style.display = 'block';\n      otpInput.focus();\n      return;\n    }\n\n    verifyBtn.disabled = true;\n    verifyBtn.textContent = 'Validation...';\n\n    try {\n      const formData = new FormData();\n      formData.append('action', 'ruya_verify_otp');\n      formData.append('email', email);\n      formData.append('plan', selectedPlan);\n      formData.append('otp', otpCode);\n\n      const response = await fetch('\/wp-admin\/admin-ajax.php', {\n        method: 'POST',\n        body: formData,\n        credentials: 'same-origin'\n      });\n\n      const result = await response.json();\n\n      if (!result.success) {\n        otpError.textContent = (result.data && result.data.message)\n          ? result.data.message\n          : 'Validation OTP impossible.';\n        otpError.style.display = 'block';\n        verifyBtn.disabled = false;\n        verifyBtn.textContent = 'Valider le code';\n        return;\n      }\n\n      otpSuccess.textContent = 'Adresse v\u00e9rifi\u00e9e avec succ\u00e8s. Redirection en cours...';\n      otpSuccess.style.display = 'block';\n\n      setClientAccess(email, selectedPlan);\n\n      if (selectedPlan === 'contribution') {\n        window.location.href = '\/paiement-soutien\/';\n      } else {\n        window.location.href = 'https:\/\/ruyaibnsirine.com\/interpretation-des-reves\/';\n      }\n\n    } catch (error) {\n      console.error('Erreur AJAX RUYA OTP VERIFY :', error);\n      otpError.textContent = 'Erreur technique lors de la validation du code.';\n      otpError.style.display = 'block';\n      verifyBtn.disabled = false;\n      verifyBtn.textContent = 'Valider le code';\n    }\n  });\n\n  resendBtn.addEventListener('click', async function () {\n    const email = emailInput.value.trim();\n    const selectedPlan = getSelectedPlan();\n\n    resetOtpMessages();\n\n    if (!validateEmail(email)) {\n      otpError.textContent = 'Veuillez saisir une adresse email valide avant de renvoyer le code.';\n      otpError.style.display = 'block';\n      emailInput.focus();\n      return;\n    }\n\n    resendBtn.disabled = true;\n    resendBtn.textContent = 'Renvoi en cours...';\n\n    try {\n      const result = await sendOtp(email, selectedPlan);\n\n      if (!result.success) {\n        otpError.textContent = (result.data && result.data.message)\n          ? result.data.message\n          : 'Impossible de renvoyer le code.';\n        otpError.style.display = 'block';\n        resendBtn.disabled = false;\n        resendBtn.textContent = 'Renvoyer le code';\n        return;\n      }\n\n      otpSuccess.textContent = 'Un nouveau code a \u00e9t\u00e9 envoy\u00e9.';\n      otpSuccess.style.display = 'block';\n      resendBtn.disabled = false;\n      resendBtn.textContent = 'Renvoyer le code';\n\n    } catch (error) {\n      console.error('Erreur AJAX RUYA OTP RESEND :', error);\n      otpError.textContent = 'Erreur technique lors du renvoi du code.';\n      otpError.style.display = 'block';\n      resendBtn.disabled = false;\n      resendBtn.textContent = 'Renvoyer le code';\n    }\n  });\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Acc\u00e8s \/ Inscription Acc\u00e9der \u00e0 votre espace d\u2019interpr\u00e9tation Un acc\u00e8s simple, discret et rapide, o\u00f9 que vous viviez. 1. Saisissez votre email Utilisez une adresse email valide pour recevoir votre acc\u00e8s et le suivi de votre abonnement. Veuillez saisir une adresse email valide. 2. Choisissez votre formule D\u00e9couverte 1 interpr\u00e9tation Offerte Contribution de soutien Jusqu\u2019\u00e0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"<!-- wp:html -->\n<section class=\"ruya-access-page\">\n  <div class=\"ruya-access-wrap\">\n\n    <div class=\"ruya-access-head\">\n      <div class=\"ruya-access-kicker\">Acc\u00e8s \/ Inscription<\/div>\n      <h1>Acc\u00e9der \u00e0 votre espace d\u2019interpr\u00e9tation<\/h1>\n      <p>Un acc\u00e8s simple, discret et rapide, o\u00f9 que vous viviez.<\/p>\n    <\/div>\n\n    <div class=\"ruya-access-card\">\n\n      <div class=\"ruya-step\">\n        <h2>1. Saisissez votre email<\/h2>\n        <p>Utilisez une adresse email valide pour recevoir votre acc\u00e8s et le suivi de votre abonnement.<\/p>\n        <input type=\"email\" id=\"ruya-email\" placeholder=\"Votre adresse email\" \/>\n        <div id=\"ruya-email-error\" class=\"ruya-email-error\">\n          Veuillez saisir une adresse email valide.\n        <\/div>\n      <\/div>\n\n      <div class=\"ruya-step\">\n        <h2>2. Choisissez votre formule<\/h2>\n\n        <div class=\"ruya-plans\">\n          <div class=\"ruya-plan ruya-plan-active\" data-plan=\"decouverte\">\n            <h3>D\u00e9couverte<\/h3>\n            <p>1 interpr\u00e9tation<\/p>\n            <strong>Offerte<\/strong>\n          <\/div>\n\n          <div class=\"ruya-plan\" data-plan=\"soutien\">\n            <h3>Contribution de soutien<\/h3>\n            <p>Jusqu\u2019\u00e0 20 interpr\u00e9tations sur 30 jours<\/p>\n            <strong>2 500 FCFA \/ 4 \u20ac<\/strong>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"ruya-step\">\n        <h2>3. Choisissez votre moyen de paiement<\/h2>\n        <p id=\"ruya-payment-text\">\n          Aucun paiement n\u2019est requis pour la formule D\u00e9couverte.\n        <\/p>\n      <\/div>\n\n      <div class=\"ruya-step ruya-final-step\">\n        <button type=\"button\" class=\"ruya-access-btn\" onclick=\"ruyaGoToNextStep()\">Continuer<\/button>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n  .ruya-access-page{\n    background: linear-gradient(180deg, #07152f 0%, #0b1f47 100%);\n    min-height: 100vh;\n    padding: 80px 20px;\n  }\n\n  .ruya-access-wrap{\n    max-width: 980px;\n    margin: 0 auto;\n  }\n\n  .ruya-access-head{\n    text-align: center;\n    margin-bottom: 34px;\n  }\n\n  .ruya-access-kicker{\n    color: #c8a85d;\n    font-family: 'Inter', sans-serif;\n    font-size: 16px;\n    font-weight: 700;\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    margin-bottom: 14px;\n  }\n\n  .ruya-access-head h1{\n    margin: 0 0 16px;\n    color: #c8a85d;\n    font-family: 'Inter', sans-serif;\n    font-size: 52px;\n    font-weight: 800;\n    line-height: 1.1;\n    letter-spacing: -0.02em;\n  }\n\n  .ruya-access-head p{\n    margin: 0;\n    color: #f3eee3;\n    font-family: 'Inter', sans-serif;\n    font-size: 22px;\n    line-height: 1.6;\n  }\n\n  .ruya-access-card{\n    background: rgba(8,20,50,0.78);\n    border: 1px solid rgba(201,162,72,0.22);\n    border-radius: 28px;\n    padding: 34px;\n    box-shadow: 0 20px 50px rgba(0,0,0,0.24);\n  }\n\n  .ruya-step{\n    margin-bottom: 30px;\n  }\n\n  .ruya-step h2{\n    margin: 0 0 12px;\n    color: #f5efe3;\n    font-family: 'Inter', sans-serif;\n    font-size: 24px;\n    font-weight: 700;\n    line-height: 1.4;\n  }\n\n  .ruya-step p{\n    margin: 0 0 16px;\n    color: #d9deea;\n    font-family: 'Inter', sans-serif;\n    font-size: 18px;\n    line-height: 1.7;\n  }\n\n  #ruya-email{\n    width: 100%;\n    padding: 18px 20px;\n    border-radius: 16px;\n    border: 1px solid rgba(201,162,72,0.24);\n    background: rgba(255,255,255,0.08);\n    color: #f5efe3;\n    font-family: 'Inter', sans-serif;\n    font-size: 17px;\n    box-sizing: border-box;\n    outline: none;\n  }\n\n  #ruya-email::placeholder{\n    color: #cdd6e6;\n  }\n\n  #ruya-email:focus{\n    border-color: #c8a85d;\n    box-shadow: 0 0 0 3px rgba(200,168,93,0.12);\n  }\n\n  .ruya-email-error{\n    display: none;\n    margin-top: 10px;\n    color: #ffd7d7;\n    font-family: 'Inter', sans-serif;\n    font-size: 15px;\n  }\n\n  .ruya-plans{\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 20px;\n  }\n\n  .ruya-plan{\n    background: rgba(255,255,255,0.04);\n    border: 1px solid rgba(201,162,72,0.20);\n    border-radius: 20px;\n    padding: 28px;\n    cursor: pointer;\n    transition: all 0.2s ease;\n  }\n\n  .ruya-plan:hover{\n    border-color: #c8a85d;\n    transform: translateY(-2px);\n  }\n\n  .ruya-plan-active{\n    border-color: #c8a85d !important;\n    box-shadow: 0 0 0 2px rgba(200,168,93,0.10) inset;\n    background: rgba(255,255,255,0.06);\n  }\n\n  .ruya-plan h3{\n    margin: 0 0 14px;\n    color: #c8a85d;\n    font-family: 'Inter', sans-serif;\n    font-size: 24px;\n    font-weight: 700;\n    line-height: 1.2;\n  }\n\n  .ruya-plan p{\n    margin: 0 0 14px;\n    color: #d9deea;\n    font-family: 'Inter', sans-serif;\n    font-size: 17px;\n    line-height: 1.7;\n  }\n\n  .ruya-plan strong{\n    color: #f5efe3;\n    font-family: 'Inter', sans-serif;\n    font-size: 20px;\n    font-weight: 800;\n  }\n\n  .ruya-final-step{\n    text-align: center;\n    margin-bottom: 0;\n    padding-top: 6px;\n  }\n\n  .ruya-access-btn{\n    display: inline-block;\n    padding: 17px 34px;\n    background: #c8a85d;\n    color: #ffffff;\n    border: none;\n    border-radius: 999px;\n    font-family: 'Inter', sans-serif;\n    font-size: 18px;\n    font-weight: 700;\n    cursor: pointer;\n    box-shadow: none;\n  }\n\n  .ruya-access-btn:hover{\n    opacity: 0.95;\n  }\n\n  @media (max-width: 768px){\n    .ruya-access-page{\n      padding: 56px 16px;\n    }\n\n    .ruya-access-head h1{\n      font-size: 36px;\n    }\n\n    .ruya-access-head p{\n      font-size: 18px;\n    }\n\n    .ruya-access-card{\n      padding: 22px;\n      border-radius: 22px;\n    }\n\n    .ruya-step h2{\n      font-size: 21px;\n    }\n\n    .ruya-step p{\n      font-size: 16px;\n    }\n\n    .ruya-plans{\n      grid-template-columns: 1fr;\n    }\n\n    .ruya-plan{\n      padding: 22px;\n    }\n  }\n<\/style>\n\n<script>\n  (function () {\n    const plans = document.querySelectorAll('.ruya-plan');\n    const paymentText = document.getElementById('ruya-payment-text');\n\n    plans.forEach(plan => {\n      plan.addEventListener('click', function () {\n        plans.forEach(p => p.classList.remove('ruya-plan-active'));\n        this.classList.add('ruya-plan-active');\n\n        const selectedPlan = this.getAttribute('data-plan');\n\n        if (selectedPlan === 'soutien') {\n          paymentText.textContent = 'PayDunya, carte Visa, Mastercard, ou autre solution compatible selon votre pays.';\n        } else {\n          paymentText.textContent = 'Aucun paiement n\u2019est requis pour la formule D\u00e9couverte.';\n        }\n      });\n    });\n  })();\n\n  function ruyaGoToNextStep() {\n    const emailInput = document.getElementById('ruya-email');\n    const errorBox = document.getElementById('ruya-email-error');\n    const email = emailInput.value.trim();\n    const activePlan = document.querySelector('.ruya-plan-active');\n    const selectedPlan = activePlan ? activePlan.getAttribute('data-plan') : 'decouverte';\n\n    const emailValid = \/^[^s@]+@[^s@]+.[^s@]+$\/.test(email);\n\n    if (!emailValid) {\n      errorBox.style.display = 'block';\n      emailInput.focus();\n      return;\n    }\n\n    errorBox.style.display = 'none';\n\n    sessionStorage.setItem('ruya_user_email', email);\n    sessionStorage.setItem('ruya_selected_plan', selectedPlan);\n\n    if (selectedPlan === 'soutien') {\n      window.location.href = '\/paiement-soutien\/';\n    } else {\n      window.location.href = '\/interpretation-des-reves-ai\/';\n    }\n  }\n<\/script>\n<!-- \/wp:html -->","_et_gb_content_width":"1080","footnotes":""},"class_list":["post-42","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ruyaibnsirine.com\/en\/wp-json\/wp\/v2\/pages\/42","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ruyaibnsirine.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ruyaibnsirine.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ruyaibnsirine.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ruyaibnsirine.com\/en\/wp-json\/wp\/v2\/comments?post=42"}],"version-history":[{"count":40,"href":"https:\/\/ruyaibnsirine.com\/en\/wp-json\/wp\/v2\/pages\/42\/revisions"}],"predecessor-version":[{"id":372,"href":"https:\/\/ruyaibnsirine.com\/en\/wp-json\/wp\/v2\/pages\/42\/revisions\/372"}],"wp:attachment":[{"href":"https:\/\/ruyaibnsirine.com\/en\/wp-json\/wp\/v2\/media?parent=42"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}