{"title":"Anglais en formule Pay-As-You-Go ! | Cours d’anglais flexibles en ligne","description":"\u003cstyle\u003e\n .rc-adults-wrap{\n   max-width:1080px;\n   margin:0 auto;\n   padding:18px 18px 40px;\n   color:#1f2937;\n   line-height:1.74;\n }\n\n .rc-adults-hero{\n   position:relative;\n   overflow:hidden;\n   border-radius:30px;\n   padding:34px 26px 30px;\n   background:\n     radial-gradient(circle at top left, rgba(147,197,253,.42) 0%, rgba(147,197,253,0) 30%),\n     radial-gradient(circle at bottom right, rgba(196,181,253,.30) 0%, rgba(196,181,253,0) 28%),\n     linear-gradient(135deg, #f8fbff 0%, #eef6ff 52%, #f8f7ff 100%);\n   border:1px solid rgba(0,0,0,.06);\n   box-shadow:0 18px 40px rgba(0,0,0,.06);\n   margin-bottom:22px;\n }\n\n .rc-adults-hero-grid{\n   display:grid;\n   grid-template-columns:1.35fr .95fr;\n   gap:24px;\n   align-items:center;\n }\n\n .rc-adults-hero h1{\n   margin:0 0 12px;\n   font-size:clamp(2rem, 4vw, 3.2rem);\n   line-height:1.08;\n   letter-spacing:-.02em;\n }\n\n .rc-adults-sub{\n   font-size:1.08rem;\n   color:#4b5563;\n   max-width:730px;\n   margin:0 0 18px;\n }\n\n .rc-adults-highlight{\n   display:inline-block;\n   padding:14px 18px;\n   border-radius:18px;\n   background:linear-gradient(135deg, #ffffff 0%, #f7fbff 100%);\n   border:1px solid rgba(29,78,216,.10);\n   box-shadow:0 10px 24px rgba(29,78,216,.08);\n   font-weight:700;\n   color:#1e3a8a;\n   margin-bottom:16px;\n }\n\n .rc-adults-buttons{\n   display:flex;\n   flex-wrap:wrap;\n   gap:12px;\n   margin-top:10px;\n }\n\n .rc-adults-btn{\n   display:inline-block;\n   padding:12px 18px;\n   border-radius:999px;\n   text-decoration:none;\n   font-weight:800;\n   border:1px solid rgba(0,0,0,.08);\n   box-shadow:0 8px 18px rgba(0,0,0,.06);\n   transition:transform .15s ease, opacity .15s ease, box-shadow .15s ease;\n }\n\n .rc-adults-btn:hover{\n   transform:translateY(-1px);\n   opacity:.96;\n   box-shadow:0 12px 24px rgba(0,0,0,.08);\n }\n\n .rc-adults-btn-primary{\n   background:linear-gradient(145deg,#4fc8c4 0%,#2ca7b1 58%,#1f7d95 100%);\n   color:#fff !important;\n   border-color:rgba(16, 94, 105, .18);\n   box-shadow:0 10px 22px rgba(29, 120, 133, .18);\n }\n\n .rc-adults-btn-secondary{\n   background:linear-gradient(145deg,#ffffff 0%,#f2fcfc 100%);\n   color:#1f2937 !important;\n   border:1px solid rgba(80, 170, 180, .18);\n   box-shadow:0 10px 22px rgba(29, 120, 133, .08);\n }\n\n .rc-adults-bubbles{\n   position:relative;\n   min-height:355px;\n }\n\n .rc-adults-bubble{\n   position:absolute;\n   border-radius:24px;\n   padding:16px 18px;\n   box-shadow:0 18px 34px rgba(0,0,0,.08);\n   border:1px solid rgba(0,0,0,.05);\n   animation-timing-function:ease-in-out;\n   animation-iteration-count:infinite;\n   will-change:transform;\n }\n\n .rc-adults-bubble:before{\n   content:\"\";\n   position:absolute;\n   inset:0;\n   border-radius:24px;\n   box-shadow:inset 0 1px 0 rgba(255,255,255,.6);\n   pointer-events:none;\n }\n\n .rc-adults-bubble-a{\n   top:10px;\n   right:18px;\n   width:230px;\n   background:linear-gradient(145deg, #dbeafe 0%, #eff6ff 100%);\n   animation-name:rcAdultsFloatA;\n   animation-duration:8.8s;\n }\n\n .rc-adults-bubble-b{\n   top:120px;\n   left:8px;\n   width:210px;\n   background:linear-gradient(145deg, #fde68a 0%, #fff7cc 100%);\n   animation-name:rcAdultsFloatB;\n   animation-duration:9.5s;\n   animation-delay:.65s;\n }\n\n .rc-adults-bubble-c{\n   bottom:16px;\n   right:10px;\n   width:250px;\n   background:linear-gradient(145deg, #ddd6fe 0%, #f5f3ff 100%);\n   animation-name:rcAdultsFloatC;\n   animation-duration:8.9s;\n   animation-delay:1.1s;\n }\n\n .rc-adults-bubble-title{\n   font-weight:800;\n   margin:0 0 6px;\n   font-size:1rem;\n }\n\n .rc-adults-bubble p{\n   margin:0;\n   font-size:.98rem;\n }\n\n @keyframes rcAdultsFloatA{\n   0%{transform:translate3d(0,0,0) rotate(-1deg);}\n   50%{transform:translate3d(4px,-8px,0) rotate(1deg);}\n   100%{transform:translate3d(0,0,0) rotate(-1deg);}\n }\n\n @keyframes rcAdultsFloatB{\n   0%{transform:translate3d(0,0,0) rotate(1deg);}\n   50%{transform:translate3d(-5px,-7px,0) rotate(-1deg);}\n   100%{transform:translate3d(0,0,0) rotate(1deg);}\n }\n\n @keyframes rcAdultsFloatC{\n   0%{transform:translate3d(0,0,0) rotate(-.5deg);}\n   50%{transform:translate3d(3px,-9px,0) rotate(.8deg);}\n   100%{transform:translate3d(0,0,0) rotate(-.5deg);}\n }\n\n .rc-adults-grid{\n   display:grid;\n   grid-template-columns:repeat(3, minmax(0, 1fr));\n   gap:16px;\n   margin:0 0 24px;\n }\n\n .rc-adults-card{\n   background:linear-gradient(180deg, #ffffff 0%, #f4fcfc 100%);\n   border:1px solid rgba(80, 170, 180, .14);\n   border-radius:24px;\n   padding:20px 18px;\n   box-shadow:0 12px 28px rgba(29, 120, 133, .06);\n }\n\n .rc-adults-card h3{\n   margin:0 0 10px;\n   font-size:1.08rem;\n   line-height:1.3;\n }\n\n .rc-adults-card p{\n   margin:0;\n }\n\n .rc-adults-section{\n   margin-bottom:24px;\n }\n\n .rc-adults-section h2{\n   margin:0 0 12px;\n   font-size:1.5rem;\n   line-height:1.2;\n }\n\n .rc-adults-softbox{\n   background:linear-gradient(145deg, #ffffff 0%, #f5fcfc 100%);\n   border:1px solid rgba(80, 170, 180, .14);\n   border-radius:24px;\n   padding:20px 18px;\n   box-shadow:0 12px 28px rgba(29, 120, 133, .06);\n }\n\n .rc-adults-softbox p{\n   margin:0 0 12px;\n }\n\n .rc-adults-list{\n   margin:0;\n   padding-left:1.2rem;\n }\n\n .rc-adults-list li{\n   margin-bottom:10px;\n }\n\n .rc-adults-proof{\n   margin-top:12px;\n   padding:16px 18px;\n   border-radius:20px;\n   background:linear-gradient(145deg, #eefdfd 0%, #f5fffe 100%);\n   border:1px solid rgba(80, 170, 180, .16);\n   box-shadow:0 10px 24px rgba(29, 120, 133, .07);\n }\n\n .rc-adults-proof strong{\n   color:#0f5f66;\n }\n\n .rc-payg-shell{\n   background:linear-gradient(145deg, #ffffff 0%, #f3fbfb 100%);\n   border:1px solid rgba(80, 170, 180, .16);\n   border-radius:24px;\n   padding:20px 18px;\n   box-shadow:0 12px 28px rgba(29, 120, 133, .06);\n }\n\n .rc-payg-head{\n   display:flex;\n   align-items:flex-start;\n   justify-content:space-between;\n   gap:14px;\n   margin-bottom:2px;\n }\n\n .rc-payg-head h2{\n   margin:0 0 12px;\n }\n\n .rc-payg-head-ship{\n   flex:0 0 auto;\n   display:flex;\n   align-items:flex-start;\n   justify-content:center;\n   min-width:54px;\n   padding-top:2px;\n }\n\n .rc-payg-head-ship img{\n   display:block;\n   width:54px;\n   height:auto;\n   max-height:54px;\n   object-fit:contain;\n   filter:drop-shadow(0 4px 10px rgba(31,127,150,.16));\n }\n\n .rc-payg-topline{\n   margin:0 0 8px;\n   color:#4b5563;\n }\n\n .rc-payg-timezone{\n   display:inline-block;\n   margin:0 0 16px;\n   padding:8px 12px;\n   border-radius:999px;\n   background:linear-gradient(145deg,#f3ffff 0%,#e7fbfb 100%);\n   border:1px solid rgba(78, 170, 176, .22);\n   color:#116466;\n   font-weight:700;\n   font-size:.95rem;\n }\n\n .rc-payg-grid{\n   display:grid;\n   grid-template-columns:repeat(2, minmax(0, 1fr));\n   gap:14px;\n }\n\n .rc-payg-day{\n   border-radius:20px;\n   padding:16px;\n   background:linear-gradient(180deg, #ffffff 0%, #f7fefe 100%);\n   border:1px solid rgba(80, 170, 180, .12);\n   box-shadow:0 10px 22px rgba(29, 120, 133, .04);\n }\n\n .rc-payg-day h3{\n   margin:0 0 10px;\n   font-size:1.05rem;\n   color:#111827;\n }\n\n .rc-payg-slots{\n   margin:0;\n   padding-left:1.1rem;\n }\n\n .rc-payg-slots li{\n   margin-bottom:8px;\n }\n\n .rc-payg-note{\n   margin-top:14px;\n   color:#6b7280;\n   font-size:.96rem;\n }\n\n .rc-payg-empty,\n .rc-payg-loading,\n .rc-payg-error{\n   padding:14px 16px;\n   border-radius:18px;\n   background:linear-gradient(145deg,#ffffff 0%,#f5fdfd 100%);\n   border:1px solid rgba(80, 170, 180, .12);\n }\n\n .rc-payg-error{\n   background:#fff7f7;\n   border-color:rgba(185,28,28,.12);\n   color:#991b1b;\n }\n\n @media (max-width:920px){\n   .rc-adults-hero-grid{grid-template-columns:1fr;}\n   .rc-adults-bubbles{min-height:310px;}\n   .rc-adults-grid{grid-template-columns:1fr;}\n   .rc-payg-grid{grid-template-columns:1fr;}\n }\n\n @media (max-width:640px){\n   .rc-adults-hero{padding:26px 18px 24px;}\n   .rc-adults-bubbles{min-height:340px;}\n   .rc-adults-bubble-a,\n   .rc-adults-bubble-b,\n   .rc-adults-bubble-c{\n     position:relative;\n     top:auto;\n     left:auto;\n     right:auto;\n     bottom:auto;\n     width:auto;\n     margin-bottom:14px;\n   }\n\n   .rc-payg-head{\n     gap:10px;\n   }\n\n   .rc-payg-head-ship img{\n     width:48px;\n     max-height:48px;\n   }\n }\n\u003c\/style\u003e\n\n\u003cdiv class=\"rc-adults-wrap\"\u003e\n \u003csection class=\"rc-adults-hero\"\u003e\n   \u003cdiv class=\"rc-adults-hero-grid\"\u003e\n     \u003cdiv\u003e\n       \u003ch1\u003e\u003cstrong\u003eAnglais général \u003cem\u003ePay-As-You-Go !\u003c\/em\u003e pour adultes (16+)\u003c\/strong\u003e\u003c\/h1\u003e\n       \u003cp class=\"rc-adults-sub\"\u003eConversation réelle, conseils clairs et un modèle Pay-As-You-Go unique pour les adultes qui veulent de la flexibilité sans piège d’abonnement.\u003c\/p\u003e\n       \u003cdiv class=\"rc-adults-highlight\"\u003ePas de contrat à long terme. Pas de pression liée à un forfait gonflé. Payez simplement pour le temps d’anglais que vous souhaitez réellement utiliser.\u003c\/div\u003e\n       \u003cdiv class=\"rc-adults-buttons\"\u003e\n         \u003ca href=\"\/fr-th\/appointment\" class=\"rc-adults-btn rc-adults-btn-primary\"\u003ePrendre rendez-vous\u003c\/a\u003e\n       \u003c\/div\u003e\n     \u003c\/div\u003e\n\n     \u003cdiv class=\"rc-adults-bubbles\"\u003e\n       \u003cdiv class=\"rc-adults-bubble rc-adults-bubble-a\"\u003e\n         \u003cdiv class=\"rc-adults-bubble-title\"\u003eCommunication réelle\u003c\/div\u003e\n         \u003cp\u003eÉcoute, expression orale, vocabulaire et confiance construits d’une manière utile dans la vie réelle.\u003c\/p\u003e\n       \u003c\/div\u003e\n       \u003cdiv class=\"rc-adults-bubble rc-adults-bubble-b\"\u003e\n         \u003cdiv class=\"rc-adults-bubble-title\"\u003eFlexible par conception\u003c\/div\u003e\n         \u003cp\u003eSi votre vie est chargée ou imprévisible, ce modèle facilite l’intégration de l’anglais dans votre routine.\u003c\/p\u003e\n       \u003c\/div\u003e\n       \u003cdiv class=\"rc-adults-bubble rc-adults-bubble-c\"\u003e\n         \u003cdiv class=\"rc-adults-bubble-title\"\u003ePlus que du tutorat aléatoire\u003c\/div\u003e\n         \u003cp\u003eVous apprenez avec un vrai professeur, pas en devinant à travers une énorme plateforme pleine de profils.\u003c\/p\u003e\n       \u003c\/div\u003e\n     \u003c\/div\u003e\n   \u003c\/div\u003e\n \u003c\/section\u003e\n\n \u003csection class=\"rc-adults-grid\"\u003e\n   \u003cdiv class=\"rc-adults-card\"\u003e\n     \u003ch3\u003eCours en ligne en direct avec Ross Cline\u003c\/h3\u003e\n     \u003cp\u003eGuidé par un enseignant expérimenté avec un style pratique et encourageant, façonné par plus de 20 ans dans le domaine de l’ESL.\u003c\/p\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rc-adults-card\"\u003e\n     \u003ch3\u003eGroupes petits et conviviaux\u003c\/h3\u003e\n     \u003cp\u003eAssez de structure pour progresser, assez de détente pour vous aider à parler et à vraiment apprécier le processus d’apprentissage.\u003c\/p\u003e\n   \u003c\/div\u003e\n   \u003cdiv class=\"rc-adults-card\"\u003e\n     \u003ch3\u003ePayer uniquement pour le temps utilisé\u003c\/h3\u003e\n     \u003cp\u003eUn système simple Pay-As-You-Go conçu pour les adultes qui veulent plus de liberté et moins de gaspillage.\u003c\/p\u003e\n   \u003c\/div\u003e\n \u003c\/section\u003e\n\n \u003csection class=\"rc-adults-section\"\u003e\n   \u003cdiv class=\"rc-adults-softbox\"\u003e\n     \u003ch2\u003eCe que ce programme représente vraiment\u003c\/h2\u003e\n     \u003cp\u003eCe programme s’adresse aux adultes qui veulent un anglais vivant, utile et qui donne envie de revenir. Il est conçu autour de la communication réelle, pas seulement d’exercices de manuel ou de tutorat générique. Que votre objectif soit le travail, les voyages, la confiance, la fluidité ou simplement de débloquer votre anglais, l’accent est mis sur la parole, l’écoute, la compréhension et un vrai élan.\u003c\/p\u003e\n     \u003cp\u003eSi vous en avez assez des systèmes rigides, des engagements de type abonnement ou des plateformes impersonnelles où vous ne savez pas vraiment quel type de professeur vous aurez, voici l’alternative.\u003c\/p\u003e\n   \u003c\/div\u003e\n \u003c\/section\u003e\n\n \u003csection class=\"rc-adults-section\"\u003e\n   \u003cdiv class=\"rc-adults-softbox\"\u003e\n     \u003ch2\u003eComment commencer\u003c\/h2\u003e\n     \u003cul class=\"rc-adults-list\"\u003e\n       \u003cli\u003ePrendre rendez-vous pour que nous puissions discuter de vos objectifs et du meilleur choix pour votre niveau.\u003c\/li\u003e\n       \u003cli\u003eRemplir le formulaire d’inscription lorsque vous êtes prêt.\u003c\/li\u003e\n       \u003cli\u003ePasser le test de niveau d’anglais gratuit pour que nous puissions vous guider correctement.\u003c\/li\u003e\n       \u003cli\u003eRecevoir votre Document de Temps avec les détails de votre cours, les informations de connexion et les prochaines étapes.\u003c\/li\u003e\n     \u003c\/ul\u003e\n     \u003cdiv class=\"rc-adults-proof\"\u003e\n       \u003cstrong\u003eLes options actuelles sont affichées directement sur cette page.\u003c\/strong\u003e Les horaires de cours disponibles ci-dessous peuvent s’afficher automatiquement dans le fuseau horaire local du visiteur.\n     \u003c\/div\u003e\n   \u003c\/div\u003e\n \u003c\/section\u003e\n\n \u003csection class=\"rc-adults-section\"\u003e\n   \u003cdiv class=\"rc-payg-shell\"\u003e\n     \u003cdiv class=\"rc-payg-head\"\u003e\n       \u003ch2\u003eHoraires de cours disponibles\u003c\/h2\u003e\n       \u003cdiv class=\"rc-payg-head-ship\" aria-hidden=\"true\"\u003e\n         \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0567\/6148\/3312\/files\/sail-1.gif?v=1692956642\" alt=\"\"\u003e\n       \u003c\/div\u003e\n     \u003c\/div\u003e\n     \u003cp class=\"rc-payg-topline\"\u003eVoici les horaires actuels des cours d’anglais général Pay-As-You-Go.\u003c\/p\u003e\n     \u003cdiv id=\"rc-payg-timezone\" class=\"rc-payg-timezone\"\u003eVérification de votre fuseau horaire…\u003c\/div\u003e\n     \u003cdiv id=\"rc-payg-output\" class=\"rc-payg-loading\"\u003eChargement des horaires disponibles…\u003c\/div\u003e\n     \u003cp class=\"rc-payg-note\"\u003eTous les horaires sont affichés automatiquement dans le fuseau horaire local du spectateur.\u003c\/p\u003e\n   \u003c\/div\u003e\n \u003c\/section\u003e\n\n \u003csection class=\"rc-adults-section\"\u003e\n   \u003cdiv class=\"rc-adults-softbox\"\u003e\n     \u003ch2\u003eÀ propos de Ross\u003c\/h2\u003e\n     \u003cp\u003eRoss Cline travaille dans le domaine de l’ESL depuis plus de 20 ans, enseignant à Toronto, en Allemagne et à Taïwan. Il a fondé sa société de langues en 2009 et a enseigné à des milliers d’étudiants en classe et en ligne. Son style d’enseignement est amical, patient et axé sur l’aide à l’utilisation réelle de l’anglais dans la vie quotidienne.\u003c\/p\u003e\n     \u003cp\u003eSi vous êtes prêt à prendre un véritable élan en anglais avec un professeur de confiance, la prochaine étape est simple.\u003c\/p\u003e\n   \u003c\/div\u003e\n \u003c\/section\u003e\n\n \u003csection class=\"rc-adults-section\"\u003e\n   \u003cdiv class=\"rc-adults-buttons\"\u003e\n     \u003ca href=\"\/fr-th\/appointment\" class=\"rc-adults-btn rc-adults-btn-primary\"\u003ePrendre rendez-vous\u003c\/a\u003e\n     \u003ca href=\"\/fr-th\/pages\/english-level-test\" class=\"rc-adults-btn rc-adults-btn-secondary\"\u003ePasser le test de niveau\u003c\/a\u003e\n     \u003ca href=\"\/fr-th\/pages\/contact\" class=\"rc-adults-btn rc-adults-btn-secondary\"\u003eContacter Ross\u003c\/a\u003e\n   \u003c\/div\u003e\n \u003c\/section\u003e\n\u003c\/div\u003e\n\n\u003cp\u003e \u003c\/p\u003e\n\u003cscript\u003e\n(function() {\n var RC_PAYG_CONFIG = {\n   jsonUrl: 'https:\/\/script.google.com\/macros\/s\/AKfycbyWDjNwMVjT11Rg2iKkPDQB0w6Wc54xsiA_PwREweoccZ_LbIeVmapI_ocq_9N6XkkQIw\/exec',\n   strings: {\n     timezonePrefix: 'Fuseau horaire :',\n     loading: 'Chargement des horaires disponibles…',\n     empty: 'Aucun horaire de cours n’est disponible pour le moment. Veuillez revenir bientôt.',\n     error: 'Nous n’avons pas pu charger le planning des cours pour le moment.',\n     localTimeSuffix: 'heure locale',\n     dayLabelFallback: 'Horaires disponibles'\n   }\n };\n\n var timezoneEl = document.getElementById('rc-payg-timezone');\n var outputEl = document.getElementById('rc-payg-output');\n\n if (!timezoneEl || !outputEl) return;\n\n var viewerTimeZone = '';\n try {\n   viewerTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone || '';\n } catch (e) {\n   viewerTimeZone = '';\n }\n\n timezoneEl.textContent = RC_PAYG_CONFIG.strings.timezonePrefix + ' ' + (viewerTimeZone || 'Heure locale');\n outputEl.className = 'rc-payg-loading';\n outputEl.textContent = RC_PAYG_CONFIG.strings.loading;\n\n function escapeHtml(str) {\n   return String(str).replace(\/[\u0026\u003c\u003e\"']\/g, function(match) {\n     return ({\n       '\u0026':'\u0026amp;',\n       '\u003c':'\u0026lt;',\n       '\u003e':'\u0026gt;',\n       '\"':'\u0026quot;',\n       \"'\":'\u0026#39;'\n     })[match];\n   });\n }\n\n function weekdayIndexFromDate(date) {\n   var weekday = new Intl.DateTimeFormat('en-US', {\n     weekday: 'short',\n     timeZone: viewerTimeZone || undefined\n   }).format(date);\n\n   var map = { Sun:0, Mon:1, Tue:2, Wed:3, Thu:4, Fri:5, Sat:6 };\n   return map[weekday] != null ? map[weekday] : date.getDay();\n }\n\n function weekdayNameFromDate(date) {\n   return new Intl.DateTimeFormat(undefined, {\n     weekday: 'long',\n     timeZone: viewerTimeZone || undefined\n   }).format(date);\n }\n\n function timeLabelFromDate(date) {\n   return new Intl.DateTimeFormat(undefined, {\n     hour: 'numeric',\n     minute: '2-digit',\n     timeZone: viewerTimeZone || undefined\n   }).format(date);\n }\n\n function minuteValueFromDate(date) {\n   var parts = new Intl.DateTimeFormat('en-GB', {\n     hour: '2-digit',\n     minute: '2-digit',\n     hourCycle: 'h23',\n     timeZone: viewerTimeZone || undefined\n   }).formatToParts(date);\n\n   var hour = 0;\n   var minute = 0;\n\n   for (var i = 0; i \u003c parts.length; i++) {\n     if (parts[i].type === 'hour') hour = parseInt(parts[i].value, 10) || 0;\n     if (parts[i].type === 'minute') minute = parseInt(parts[i].value, 10) || 0;\n   }\n\n   return (hour * 60) + minute;\n }\n\n function groupByWeekday(slots) {\n   var groups = {};\n   var ordered = [];\n\n   for (var i = 0; i \u003c slots.length; i++) {\n     var date = new Date(slots[i].iso);\n     if (isNaN(date.getTime())) continue;\n\n     var weekdayIndex = weekdayIndexFromDate(date);\n     var weekdayName = weekdayNameFromDate(date);\n     var timeLabel = timeLabelFromDate(date);\n     var uniqueKey = weekdayIndex + '|' + timeLabel;\n\n     if (!groups[weekdayIndex]) {\n       groups[weekdayIndex] = {\n         weekdayIndex: weekdayIndex,\n         weekdayName: weekdayName,\n         items: []\n       };\n       ordered.push(groups[weekdayIndex]);\n     }\n\n     var exists = false;\n     for (var j = 0; j \u003c groups[weekdayIndex].items.length; j++) {\n       if (groups[weekdayIndex].items[j].uniqueKey === uniqueKey) {\n         exists = true;\n         break;\n       }\n     }\n\n     if (!exists) {\n       groups[weekdayIndex].items.push({\n         uniqueKey: uniqueKey,\n         timeLabel: timeLabel,\n         minuteValue: minuteValueFromDate(date)\n       });\n     }\n   }\n\n   ordered.sort(function(a, b) {\n     return a.weekdayIndex - b.weekdayIndex;\n   });\n\n   for (var k = 0; k \u003c ordered.length; k++) {\n     ordered[k].items.sort(function(a, b) {\n       return a.minuteValue - b.minuteValue;\n     });\n   }\n\n   return ordered;\n }\n\n function renderSchedule(slots) {\n   if (!slots || !slots.length) {\n     outputEl.className = 'rc-payg-empty';\n     outputEl.textContent = RC_PAYG_CONFIG.strings.empty;\n     return;\n   }\n\n   var groups = groupByWeekday(slots);\n   var html = '\u003cdiv class=\"rc-payg-grid\"\u003e';\n\n   for (var i = 0; i \u003c groups.length; i++) {\n     html += '\u003cdiv class=\"rc-payg-day\"\u003e';\n     html += '\u003ch3\u003e' + escapeHtml(groups[i].weekdayName || RC_PAYG_CONFIG.strings.dayLabelFallback) + '\u003c\/h3\u003e';\n     html += '\u003cul class=\"rc-payg-slots\"\u003e';\n\n     for (var j = 0; j \u003c groups[i].items.length; j++) {\n       html += '\u003cli\u003e' + escapeHtml(groups[i].items[j].timeLabel) + ' \u003cspan style=\"color:#6b7280;\"\u003e(' + escapeHtml(RC_PAYG_CONFIG.strings.localTimeSuffix) + ')\u003c\/span\u003e\u003c\/li\u003e';\n     }\n\n     html += '\u003c\/ul\u003e';\n     html += '\u003c\/div\u003e';\n   }\n\n   html += '\u003c\/div\u003e';\n   outputEl.className = '';\n   outputEl.innerHTML = html;\n }\n\n function renderError(message) {\n   outputEl.className = 'rc-payg-error';\n   outputEl.textContent = message || RC_PAYG_CONFIG.strings.error;\n }\n\n window.rcPaygScheduleCallback = function(data) {\n   try {\n     if (!data || !data.ok || !data.slots) {\n       throw new Error(data \u0026\u0026 data.error ? data.error : RC_PAYG_CONFIG.strings.error);\n     }\n     renderSchedule(data.slots);\n   } catch (err) {\n     renderError(err \u0026\u0026 err.message ? err.message : RC_PAYG_CONFIG.strings.error);\n   }\n };\n\n function loadSchedule() {\n   var url = RC_PAYG_CONFIG.jsonUrl\n     + '?callback=rcPaygScheduleCallback\u0026_rcv='\n     + Date.now();\n\n   var script = document.createElement('script');\n   script.src = url;\n   script.async = true;\n   script.onerror = function() {\n     renderError('Échec du chargement');\n   };\n   document.head.appendChild(script);\n }\n\n loadSchedule();\n})();\n\u003c\/script\u003e","products":[{"product_id":"onehour","title":"Cours Pay-As-You-Go d’1 heure","description":"\u003cstyle\u003e\n  .rc-ge-product{\n    max-width: 760px;\n    margin: 0 auto;\n    padding: 24px 20px 22px;\n    border-radius: 26px;\n    background: linear-gradient(145deg, #ffffff 0%, #f5fcfc 100%);\n    border: 1px solid rgba(80,170,180,.16);\n    box-shadow: 0 14px 30px rgba(29,120,133,.08);\n    color: #1f2937;\n    line-height: 1.7;\n  }\n\n  .rc-ge-product *,\n  .rc-ge-product h2,\n  .rc-ge-product h3,\n  .rc-ge-product p,\n  .rc-ge-product li,\n  .rc-ge-product a,\n  .rc-ge-product span,\n  .rc-ge-product div,\n  .rc-ge-product strong{\n    font-family: inherit !important;\n  }\n\n  .rc-ge-product-hero{\n    text-align: center;\n    margin-bottom: 18px;\n  }\n\n  .rc-ge-product-hero h2{\n    margin: 0 0 10px;\n    font-size: clamp(1.7rem, 3.2vw, 2.3rem);\n    line-height: 1.15;\n    color: #111827;\n    letter-spacing: -.02em;\n  }\n\n  .rc-ge-product-sub{\n    max-width: 620px;\n    margin: 0 auto 12px;\n    font-size: 1.03rem;\n    color: #4b5563;\n  }\n\n  .rc-ge-product-highlight{\n    display: inline-block;\n    padding: 12px 16px;\n    border-radius: 18px;\n    background: linear-gradient(135deg, #f3ffff 0%, #eafcfc 100%);\n    border: 1px solid rgba(78,170,176,.20);\n    box-shadow: 0 10px 22px rgba(29,120,133,.08);\n    font-weight: 700;\n    color: #116466;\n  }\n\n  .rc-ge-product-bubbles{\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 10px;\n    margin: 16px 0 20px;\n  }\n\n  .rc-ge-product-bubble{\n    display: inline-flex;\n    align-items: center;\n    padding: 10px 14px;\n    border-radius: 999px;\n    border: 1px solid rgba(0,0,0,.06);\n    box-shadow: 0 6px 14px rgba(0,0,0,.05);\n    font-weight: 700;\n    font-size: .95rem;\n    color: #1f2937;\n  }\n\n  .rc-ge-product-bubble:nth-child(1){ background: #eafcfc; }\n  .rc-ge-product-bubble:nth-child(2){ background: #eefdf2; }\n  .rc-ge-product-bubble:nth-child(3){ background: #fff4df; }\n  .rc-ge-product-bubble:nth-child(4){ background: #eef6ff; }\n\n  .rc-ge-product-copy{\n    margin-bottom: 18px;\n  }\n\n  .rc-ge-product-copy p{\n    margin: 0 0 12px;\n  }\n\n  .rc-ge-product-copy ul{\n    margin: 0;\n    padding-left: 1.2rem;\n  }\n\n  .rc-ge-product-copy li{\n    margin-bottom: 8px;\n  }\n\n  .rc-ge-times-shell{\n    margin: 18px 0 18px;\n    padding: 18px 16px;\n    border-radius: 22px;\n    background: linear-gradient(145deg, #ffffff 0%, #f3fbfb 100%);\n    border: 1px solid rgba(80,170,180,.16);\n    box-shadow: 0 12px 24px rgba(29,120,133,.06);\n  }\n\n  .rc-ge-times-head{\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    gap: 12px;\n    margin-bottom: 4px;\n  }\n\n  .rc-ge-times-head h3{\n    margin: 0 0 8px;\n    font-size: 1.18rem;\n    line-height: 1.2;\n    color: #111827;\n  }\n\n  .rc-ge-times-ship{\n    flex: 0 0 auto;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    min-width: 52px;\n  }\n\n  .rc-ge-times-ship img{\n    display: block;\n    width: 52px;\n    height: auto;\n    max-height: 52px;\n    object-fit: contain;\n    filter: drop-shadow(0 4px 10px rgba(31,127,150,.16));\n  }\n\n  .rc-ge-times-topline{\n    margin: 0 0 8px;\n    color: #4b5563;\n    font-size: .98rem;\n  }\n\n  .rc-ge-timezone{\n    display: inline-block;\n    margin: 0 0 14px;\n    padding: 8px 12px;\n    border-radius: 999px;\n    background: linear-gradient(145deg,#f3ffff 0%,#e7fbfb 100%);\n    border: 1px solid rgba(78,170,176,.22);\n    color: #116466;\n    font-weight: 700;\n    font-size: .93rem;\n  }\n\n  .rc-ge-times-grid{\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 12px;\n  }\n\n  .rc-ge-day{\n    border-radius: 18px;\n    padding: 14px;\n    background: linear-gradient(180deg, #ffffff 0%, #f8fefe 100%);\n    border: 1px solid rgba(80,170,180,.12);\n    box-shadow: 0 8px 18px rgba(29,120,133,.04);\n  }\n\n  .rc-ge-day h4{\n    margin: 0 0 8px;\n    font-size: 1rem;\n    color: #111827;\n  }\n\n  .rc-ge-slots{\n    margin: 0;\n    padding-left: 1rem;\n  }\n\n  .rc-ge-slots li{\n    margin-bottom: 6px;\n  }\n\n  .rc-ge-times-loading,\n  .rc-ge-times-empty,\n  .rc-ge-times-error{\n    padding: 14px 16px;\n    border-radius: 18px;\n    background: linear-gradient(145deg,#ffffff 0%,#f5fdfd 100%);\n    border: 1px solid rgba(80,170,180,.12);\n  }\n\n  .rc-ge-times-error{\n    background: #fff7f7;\n    border-color: rgba(185,28,28,.12);\n    color: #991b1b;\n  }\n\n  .rc-ge-note{\n    margin-top: 12px;\n    color: #6b7280;\n    font-size: .95rem;\n  }\n\n  .rc-ge-product-buttons{\n    display: flex;\n    flex-wrap: wrap;\n    gap: 12px;\n    margin-top: 18px;\n  }\n\n  .rc-ge-btn{\n    display: inline-block;\n    padding: 12px 18px;\n    border-radius: 999px;\n    text-decoration: none;\n    font-weight: 800;\n    border: 1px solid rgba(0,0,0,.08);\n    box-shadow: 0 8px 18px rgba(0,0,0,.06);\n    transition: transform .15s ease, opacity .15s ease, box-shadow .15s ease;\n  }\n\n  .rc-ge-btn:hover{\n    transform: translateY(-1px);\n    opacity: .96;\n    box-shadow: 0 12px 24px rgba(0,0,0,.08);\n  }\n\n  .rc-ge-btn-primary{\n    background: linear-gradient(145deg,#4fc8c4 0%,#2ca7b1 58%,#1f7d95 100%);\n    color: #fff !important;\n    border-color: rgba(16,94,105,.18);\n    box-shadow: 0 10px 22px rgba(29,120,133,.18);\n  }\n\n  .rc-ge-btn-secondary{\n    background: linear-gradient(145deg,#ffffff 0%,#f2fcfc 100%);\n    color: #1f2937 !important;\n    border: 1px solid rgba(80,170,180,.18);\n    box-shadow: 0 10px 22px rgba(29,120,133,.08);\n  }\n\n  @media (max-width: 700px){\n    .rc-ge-times-grid{\n      grid-template-columns: 1fr;\n    }\n  }\n\n  @media (max-width: 640px){\n    .rc-ge-product{\n      padding: 20px 16px 20px;\n      border-radius: 22px;\n    }\n\n    .rc-ge-product-buttons{\n      flex-direction: column;\n    }\n\n    .rc-ge-btn{\n      width: 100%;\n      text-align: center;\n      box-sizing: border-box;\n    }\n\n    .rc-ge-times-head{\n      gap: 10px;\n    }\n\n    .rc-ge-times-ship img{\n      width: 46px;\n      max-height: 46px;\n    }\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"rc-ge-product\"\u003e\n  \u003cdiv class=\"rc-ge-product-hero\"\u003e\n    \u003ch2\u003eAnglais général d’1 heure\u003c\/h2\u003e\n    \u003cp class=\"rc-ge-product-sub\"\u003eUne façon simple et sans pression d’essayer un cours, de venir quand cela vous convient, ou de commencer à améliorer votre anglais avec Ross Cline.\u003c\/p\u003e\n    \u003cdiv class=\"rc-ge-product-highlight\"\u003ePremière étape : prenez rendez-vous avec Ross, puis nous trouverons ensemble la meilleure formule.\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rc-ge-product-bubbles\"\u003e\n    \u003cspan class=\"rc-ge-product-bubble\"\u003eEssayez une fois\u003c\/span\u003e\n    \u003cspan class=\"rc-ge-product-bubble\"\u003eFlexible\u003c\/span\u003e\n    \u003cspan class=\"rc-ge-product-bubble\"\u003e1 heure en ligne\u003c\/span\u003e\n    \u003cspan class=\"rc-ge-product-bubble\"\u003eVrai professeur\u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rc-ge-product-copy\"\u003e\n    \u003cp\u003eCette option est idéale pour les étudiants débutants, les apprenants occasionnels ou les adultes occupés qui souhaitent garder l’anglais dans leur vie sans s’engager immédiatement sur le long terme.\u003c\/p\u003e\n    \u003cul\u003e\n      \u003cli\u003e\n\u003cstrong\u003eIdéal pour :\u003c\/strong\u003e essayer un cours, revenir quand cela vous convient, ou commencer\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eDurée du cours :\u003c\/strong\u003e 1 heure en ligne\u003c\/li\u003e\n      \u003cli\u003e\n\u003cstrong\u003eApproche :\u003c\/strong\u003e vraie conversation, conseils clairs et anglais pratique\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rc-ge-times-shell\"\u003e\n    \u003cdiv class=\"rc-ge-times-head\"\u003e\n      \u003ch3\u003eHoraires de cours disponibles actuellement\u003c\/h3\u003e\n      \u003cdiv class=\"rc-ge-times-ship\" aria-hidden=\"true\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0567\/6148\/3312\/files\/sail-1.gif?v=1692956642\" alt=\"\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cp class=\"rc-ge-times-topline\"\u003eVoici les horaires actuels d’Anglais général dans votre fuseau horaire local.\u003c\/p\u003e\n    \u003cdiv id=\"rc-ge-timezone\" class=\"rc-ge-timezone\"\u003eVérification de votre fuseau horaire…\u003c\/div\u003e\n    \u003cdiv id=\"rc-ge-output\" class=\"rc-ge-times-loading\"\u003eChargement des horaires disponibles…\u003c\/div\u003e\n    \u003cp class=\"rc-ge-note\"\u003eUne fois que vous aurez pris rendez-vous, Ross pourra vous aider à choisir la meilleure option et l’horaire de cours.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"rc-ge-product-buttons\"\u003e\n    \u003ca class=\"rc-ge-btn rc-ge-btn-primary\" href=\"\/fr-th\/appointment\"\u003ePrendre rendez-vous\u003c\/a\u003e\n    \u003ca class=\"rc-ge-btn rc-ge-btn-secondary\" href=\"\/fr-th\/register\"\u003eS’inscrire\u003c\/a\u003e\n    \u003ca class=\"rc-ge-btn rc-ge-btn-secondary\" href=\"\/fr-th\/policy\"\u003ePolitique\u003c\/a\u003e\n    \u003ca class=\"rc-ge-btn rc-ge-btn-secondary\" href=\"\/fr-th\/pages\/time-document\"\u003eDocument horaire\u003c\/a\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function() {\n  var RC_GE_CONFIG = {\n    jsonUrl: 'https:\/\/script.google.com\/macros\/s\/AKfycbyWDjNwMVjT11Rg2iKkPDQB0w6Wc54xsiA_PwREweoccZ_LbIeVmapI_ocq_9N6XkkQIw\/exec',\n    strings: {\n      timezonePrefix: 'Fuseau horaire :',\n      loading: 'Chargement des horaires disponibles…',\n      empty: 'Aucun horaire de cours n’est disponible pour le moment. Veuillez revenir bientôt.',\n      error: 'Nous n’avons pas pu charger le planning des cours pour le moment.',\n      localTimeSuffix: 'heure locale',\n      dayLabelFallback: 'Horaires disponibles'\n    }\n  };\n\n  var timezoneEl = document.getElementById('rc-ge-timezone');\n  var outputEl = document.getElementById('rc-ge-output');\n\n  if (!timezoneEl || !outputEl) return;\n\n  var viewerTimeZone = '';\n  try {\n    viewerTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone || '';\n  } catch (e) {\n    viewerTimeZone = '';\n  }\n\n  timezoneEl.textContent = RC_GE_CONFIG.strings.timezonePrefix + ' ' + (viewerTimeZone || 'Heure locale');\n  outputEl.className = 'rc-ge-times-loading';\n  outputEl.textContent = RC_GE_CONFIG.strings.loading;\n\n  function escapeHtml(str) {\n    return String(str).replace(\/[\u0026\u003c\u003e\"']\/g, function(match) {\n      return ({\n        '\u0026':'\u0026amp;',\n        '\u003c':'\u0026lt;',\n        '\u003e':'\u0026gt;',\n        '\"':'\u0026quot;',\n        \"'\":'\u0026#39;'\n      })[match];\n    });\n  }\n\n  function weekdayIndexFromDate(date) {\n    var weekday = new Intl.DateTimeFormat('en-US', {\n      weekday: 'short',\n      timeZone: viewerTimeZone || undefined\n    }).format(date);\n\n    var map = { Sun:0, Mon:1, Tue:2, Wed:3, Thu:4, Fri:5, Sat:6 };\n    return map[weekday] != null ? map[weekday] : date.getDay();\n  }\n\n  function weekdayNameFromDate(date) {\n    return new Intl.DateTimeFormat(undefined, {\n      weekday: 'long',\n      timeZone: viewerTimeZone || undefined\n    }).format(date);\n  }\n\n  function timeLabelFromDate(date) {\n    return new Intl.DateTimeFormat(undefined, {\n      hour: 'numeric',\n      minute: '2-digit',\n      timeZone: viewerTimeZone || undefined\n    }).format(date);\n  }\n\n  function minuteValueFromDate(date) {\n    var parts = new Intl.DateTimeFormat('en-GB', {\n      hour: '2-digit',\n      minute: '2-digit',\n      hourCycle: 'h23',\n      timeZone: viewerTimeZone || undefined\n    }).formatToParts(date);\n\n    var hour = 0;\n    var minute = 0;\n\n    for (var i = 0; i \u003c parts.length; i++) {\n      if (parts[i].type === 'hour') hour = parseInt(parts[i].value, 10) || 0;\n      if (parts[i].type === 'minute') minute = parseInt(parts[i].value, 10) || 0;\n    }\n\n    return (hour * 60) + minute;\n  }\n\n  function groupByWeekday(slots) {\n    var groups = {};\n    var ordered = [];\n\n    for (var i = 0; i \u003c slots.length; i++) {\n      var date = new Date(slots[i].iso);\n      if (isNaN(date.getTime())) continue;\n\n      var weekdayIndex = weekdayIndexFromDate(date);\n      var weekdayName = weekdayNameFromDate(date);\n      var timeLabel = timeLabelFromDate(date);\n      var uniqueKey = weekdayIndex + '|' + timeLabel;\n\n      if (!groups[weekdayIndex]) {\n        groups[weekdayIndex] = {\n          weekdayIndex: weekdayIndex,\n          weekdayName: weekdayName,\n          items: []\n        };\n        ordered.push(groups[weekdayIndex]);\n      }\n\n      var exists = false;\n      for (var j = 0; j \u003c groups[weekdayIndex].items.length; j++) {\n        if (groups[weekdayIndex].items[j].uniqueKey === uniqueKey) {\n          exists = true;\n          break;\n        }\n      }\n\n      if (!exists) {\n        groups[weekdayIndex].items.push({\n          uniqueKey: uniqueKey,\n          timeLabel: timeLabel,\n          minuteValue: minuteValueFromDate(date)\n        });\n      }\n    }\n\n    ordered.sort(function(a, b) {\n      return a.weekdayIndex - b.weekdayIndex;\n    });\n\n    for (var k = 0; k \u003c ordered.length; k++) {\n      ordered[k].items.sort(function(a, b) {\n        return a.minuteValue - b.minuteValue;\n      });\n    }\n\n    return ordered;\n  }\n\n  function renderSchedule(slots) {\n    if (!slots || !slots.length) {\n      outputEl.className = 'rc-ge-times-empty';\n      outputEl.textContent = RC_GE_CONFIG.strings.empty;\n      return;\n    }\n\n    var groups = groupByWeekday(slots);\n    var html = '\u003cdiv class=\"rc-ge-times-grid\"\u003e';\n\n    for (var i = 0; i \u003c groups.length; i++) {\n      html += '\u003cdiv class=\"rc-ge-day\"\u003e';\n      html += '\u003ch4\u003e' + escapeHtml(groups[i].weekdayName || RC_GE_CONFIG.strings.dayLabelFallback) + '\u003c\/h4\u003e';\n      html += '\u003cul class=\"rc-ge-slots\"\u003e';\n\n      for (var j = 0; j \u003c groups[i].items.length; j++) {\n        html += '\u003cli\u003e' + escapeHtml(groups[i].items[j].timeLabel) + ' \u003cspan style=\"color:#6b7280;\"\u003e(' + escapeHtml(RC_GE_CONFIG.strings.localTimeSuffix) + ')\u003c\/span\u003e\u003c\/li\u003e';\n      }\n\n      html += '\u003c\/ul\u003e';\n      html += '\u003c\/div\u003e';\n    }\n\n    html += '\u003c\/div\u003e';\n    outputEl.className = '';\n    outputEl.innerHTML = html;\n  }\n\n  function renderError(message) {\n    outputEl.className = 'rc-ge-times-error';\n    outputEl.textContent = message || RC_GE_CONFIG.strings.error;\n  }\n\n  window.rcGeScheduleCallback = function(data) {\n    try {\n      if (!data || !data.ok || !data.slots) {\n        throw new Error(data \u0026\u0026 data.error ? data.error : RC_GE_CONFIG.strings.error);\n      }\n      renderSchedule(data.slots);\n    } catch (err) {\n      renderError(err \u0026\u0026 err.message ? err.message : RC_GE_CONFIG.strings.error);\n    }\n  };\n\n  function loadSchedule() {\n    var url = RC_GE_CONFIG.jsonUrl\n      + '?callback=rcGeScheduleCallback\u0026_rcv='\n      + Date.now();\n\n    var script = document.createElement('script');\n    script.src = url;\n    script.async = true;\n    script.onerror = function() {\n      renderError('Échec du chargement');\n    };\n    document.head.appendChild(script);\n  }\n\n  loadSchedule();\n})();\n\u003c\/script\u003e","brand":"rosscline.com","offers":[{"title":"ชื่อเริ่มต้น","offer_id":40388041506864,"sku":"","price":13.81,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0567\/6148\/3312\/files\/ross-cline-pay-as-you-go-one-class-square.jpg?v=1778589935"},{"product_id":"pay-as-you-go-subscription","title":"Abonnement Pay-As-You-Go","description":"\u003cstyle\u003e\n  .rc-ge-product{\n    max-width: 760px;\n    margin: 0 auto;\n    padding: 24px 20px 22px;\n    border-radius: 26px;\n    background: linear-gradient(145deg, #ffffff 0%, #f5fcfc 100%);\n    border: 1px solid rgba(80,170,180,.16);\n    box-shadow: 0 14px 30px rgba(29,120,133,.08);\n    color: #1f2937;\n    line-height: 1.7;\n  }\n\n  .rc-ge-product *,\n  .rc-ge-product h2,\n  .rc-ge-product h3,\n  .rc-ge-product p,\n  .rc-ge-product li,\n  .rc-ge-product a,\n  .rc-ge-product span,\n  .rc-ge-product div,\n  .rc-ge-product strong{\n    font-family: inherit !important;\n  }\n\n  .rc-ge-product-hero{\n    text-align: center;\n    margin-bottom: 18px;\n  }\n\n  .rc-ge-product-hero h2{\n    margin: 0 0 10px;\n    font-size: clamp(1.7rem, 3.2vw, 2.3rem);\n    line-height: 1.15;\n    color: #111827;\n    letter-spacing: -.02em;\n  }\n\n  .rc-ge-product-sub{\n    max-width: 620px;\n    margin: 0 auto 12px;\n    font-size: 1.03rem;\n    color: #4b5563;\n  }\n\n  .rc-ge-product-highlight{\n    display: inline-block;\n    padding: 12px 16px;\n    border-radius: 18px;\n    background: linear-gradient(135deg, #f3ffff 0%, #eafcfc 100%);\n    border: 1px solid rgba(78,170,176,.20);\n    box-shadow: 0 10px 22px rgba(29,120,133,.08);\n    font-weight: 700;\n    color: #116466;\n  }\n\n  .rc-ge-product-bubbles{\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 10px;\n    margin: 16px 0 20px;\n  }\n\n  .rc-ge-product-bubble{\n    display: inline-flex;\n    align-items: center;\n    padding: 10px 14px;\n    border-radius: 999px;\n    border: 1px solid rgba(0,0,0,.06);\n    box-shadow: 0 6px 14px rgba(0,0,0,.05);\n    font-weight: 700;\n    font-size: .95rem;\n    color: #1f2937;\n  }\n\n  .rc-ge-product-bubble:nth-child(1){ background: #eafcfc; }\n  .rc-ge-product-bubble:nth-child(2){ background: #eefdf2; }\n  .rc-ge-product-bubble:nth-child(3){ background: #fff4df; }\n  .rc-ge-product-bubble:nth-child(4){ background: #eef6ff; }\n\n  .rc-ge-product-copy{\n    margin-bottom: 18px;\n  }\n\n  .rc-ge-product-copy p{\n    margin: 0 0 12px;\n  }\n\n  .rc-ge-product-copy ul{\n    margin: 0;\n    padding-left: 1.2rem;\n  }\n\n  .rc-ge-product-copy li{\n    margin-bottom: 8px;\n  }\n\n  .rc-ge-times-shell{\n    margin: 18px 0 18px;\n    padding: 18px 16px;\n    border-radius: 22px;\n    background: linear-gradient(145deg, #ffffff 0%, #f3fbfb 100%);\n    border: 1px solid rgba(80,170,180,.16);\n    box-shadow: 0 12px 24px rgba(29,120,133,.06);\n  }\n\n  .rc-ge-times-head{\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    gap: 12px;\n    margin-bottom: 4px;\n  }\n\n  .rc-ge-times-head h3{\n    margin: 0 0 8px;\n    font-size: 1.18rem;\n    line-height: 1.2;\n    color: #111827;\n  }\n\n  .rc-ge-times-ship{\n    flex: 0 0 auto;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    min-width: 52px;\n  }\n\n  .rc-ge-times-ship img{\n    display: block;\n    width: 52px;\n    height: auto;\n    max-height: 52px;\n    object-fit: contain;\n    filter: drop-shadow(0 4px 10px rgba(31,127,150,.16));\n  }\n\n  .rc-ge-times-topline{\n    margin: 0 0 8px;\n    color: #4b5563;\n    font-size: .98rem;\n  }\n\n  .rc-ge-timezone{\n    display: inline-block;\n    margin: 0 0 14px;\n    padding: 8px 12px;\n    border-radius: 999px;\n    background: linear-gradient(145deg,#f3ffff 0%,#e7fbfb 100%);\n    border: 1px solid rgba(78,170,176,.22);\n    color: #116466;\n    font-weight: 700;\n    font-size: .93rem;\n  }\n\n  .rc-ge-times-grid{\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 12px;\n  }\n\n  .rc-ge-day{\n    border-radius: 18px;\n    padding: 14px;\n    background: linear-gradient(180deg, #ffffff 0%, #f8fefe 100%);\n    border: 1px solid rgba(80,170,180,.12);\n    box-shadow: 0 8px 18px rgba(29,120,133,.04);\n  }\n\n  .rc-ge-day h4{\n    margin: 0 0 8px;\n    font-size: 1rem;\n    color: #111827;\n  }\n\n  .rc-ge-slots{\n    margin: 0;\n    padding-left: 1rem;\n  }\n\n  .rc-ge-slots li{\n    margin-bottom: 6px;\n  }\n\n  .rc-ge-times-loading,\n  .rc-ge-times-empty,\n  .rc-ge-times-error{\n    padding: 14px 16px;\n    border-radius: 18px;\n    background: linear-gradient(145deg,#ffffff 0%,#f5fdfd 100%);\n    border: 1px solid rgba(80,170,180,.12);\n  }\n\n  .rc-ge-times-error{\n    background: #fff7f7;\n    border-color: rgba(185,28,28,.12);\n    color: #991b1b;\n  }\n\n  .rc-ge-note{\n    margin-top: 12px;\n    color: #6b7280;\n    font-size: .95rem;\n  }\n\n  .rc-ge-product-buttons{\n    display: flex;\n    flex-wrap: wrap;\n    gap: 12px;\n    margin-top: 18px;\n  }\n\n  .rc-ge-btn{\n    display: inline-block;\n    padding: 12px 18px;\n    border-radius: 999px;\n    text-decoration: none;\n    font-weight: 800;\n    border: 1px solid rgba(0,0,0,.08);\n    box-shadow: 0 8px 18px rgba(0,0,0,.06);\n    transition: transform .15s ease, opacity .15s ease, box-shadow .15s ease;\n  }\n\n  .rc-ge-btn:hover{\n    transform: translateY(-1px);\n    opacity: .96;\n    box-shadow: 0 12px 24px rgba(0,0,0,.08);\n  }\n\n  .rc-ge-btn-primary{\n    background: linear-gradient(145deg,#4fc8c4 0%,#2ca7b1 58%,#1f7d95 100%);\n    color: #fff !important;\n    border-color: rgba(16,94,105,.18);\n    box-shadow: 0 10px 22px rgba(29,120,133,.18);\n  }\n\n  .rc-ge-btn-secondary{\n    background: linear-gradient(145deg,#ffffff 0%,#f2fcfc 100%);\n    color: #1f2937 !important;\n    border: 1px solid rgba(80,170,180,.18);\n    box-shadow: 0 10px 22px rgba(29,120,133,.08);\n  }\n\n  @media (max-width: 700px){\n    .rc-ge-times-grid{\n      grid-template-columns: 1fr;\n    }\n  }\n\n  @media (max-width: 640px){\n    .rc-ge-product{\n      padding: 20px 16px 20px;\n      border-radius: 22px;\n    }\n\n    .rc-ge-product-buttons{\n      flex-direction: column;\n    }\n\n    .rc-ge-btn{\n      width: 100%;\n      text-align: center;\n      box-sizing: border-box;\n    }\n\n    .rc-ge-times-head{\n      gap: 10px;\n    }\n\n    .rc-ge-times-ship img{\n      width: 46px;\n      max-height: 46px;\n    }\n  }\n\u003c\/style\u003e\n\u003cdiv class=\"rc-ge-product\"\u003e\n\u003cdiv class=\"rc-ge-product-hero\"\u003e\n\u003ch2\u003eAbonnement mensuel Pay-As-You-Go\u003c\/h2\u003e\n\u003cp class=\"rc-ge-product-sub\"\u003eUne manière plus simple de poursuivre votre cours d'anglais hebdomadaire chaque mois sans la contrainte de payer semaine par semaine.\u003c\/p\u003e\n\u003cdiv class=\"rc-ge-product-highlight\"\u003eUn paiement chaque mois pour votre temps de cours hebdomadaire. Besoin d'ajuster votre horaire régulier parfois ? Il suffit d'en informer Ross.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rc-ge-product-bubbles\"\u003e\n\u003cspan class=\"rc-ge-product-bubble\"\u003ePaiement mensuel\u003c\/span\u003e \u003cspan class=\"rc-ge-product-bubble\"\u003eTemps de cours hebdomadaire\u003c\/span\u003e \u003cspan class=\"rc-ge-product-bubble\"\u003eModifications flexibles\u003c\/span\u003e \u003cspan class=\"rc-ge-product-bubble\"\u003eVrai professeur\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rc-ge-product-copy\"\u003e\n\u003cp\u003eCette option s'adresse aux étudiants qui souhaitent la simplicité de payer une fois par mois au lieu de gérer le paiement semaine par semaine. La plupart des étudiants choisissent un horaire régulier chaque semaine et s'y tiennent, mais si vous devez changer votre horaire hebdomadaire de temps en temps, cela ne pose généralement pas de problème. Il suffit d'en informer Ross et votre Document de Temps pourra être mis à jour en conséquence.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eIdéal pour :\u003c\/strong\u003e les étudiants qui veulent un paiement mensuel simple pour des cours d'anglais hebdomadaires réguliers\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eHoraire :\u003c\/strong\u003e généralement un créneau de cours par semaine\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFlexibilité :\u003c\/strong\u003e les changements d'horaire sont généralement possibles en cas de besoin — il suffit de prévenir à l'avance\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePolitique :\u003c\/strong\u003e la politique habituelle d'annulation de plus de 5 heures s'applique toujours\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rc-ge-times-shell\"\u003e\n\u003cdiv class=\"rc-ge-times-head\"\u003e\n\u003ch3\u003eHoraires de cours disponibles actuellement\u003c\/h3\u003e\n\u003cdiv class=\"rc-ge-times-ship\" aria-hidden=\"true\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0567\/6148\/3312\/files\/sail-1.gif?v=1692956642\" alt=\"\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp class=\"rc-ge-times-topline\"\u003eVoici les horaires actuels de General English dans votre fuseau horaire local.\u003c\/p\u003e\n\u003cdiv id=\"rc-ge-timezone\" class=\"rc-ge-timezone\"\u003eVérification de votre fuseau horaire…\u003c\/div\u003e\n\u003cdiv id=\"rc-ge-output\" class=\"rc-ge-times-loading\"\u003eChargement des horaires disponibles…\u003c\/div\u003e\n\u003cp class=\"rc-ge-note\"\u003eLa plupart des étudiants choisissent un horaire hebdomadaire régulier, mais de petits ajustements peuvent généralement être arrangés. Il suffit d'en informer Ross.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"rc-ge-product-buttons\"\u003e\n\u003ca class=\"rc-ge-btn rc-ge-btn-primary\" href=\"\/fr-th\/appointment\"\u003ePrendre un rendez-vous\u003c\/a\u003e \u003ca class=\"rc-ge-btn rc-ge-btn-secondary\" href=\"\/fr-th\/register\"\u003eS'inscrire\u003c\/a\u003e \u003ca class=\"rc-ge-btn rc-ge-btn-secondary\" href=\"\/fr-th\/policy\"\u003ePolitique\u003c\/a\u003e \u003ca class=\"rc-ge-btn rc-ge-btn-secondary\" href=\"\/fr-th\/pages\/time-document\"\u003eDocument de temps\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"rosscline.com","offers":[{"title":"Titre par défaut","offer_id":42906910785584,"sku":null,"price":49.0,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0567\/6148\/3312\/files\/ross-cline-pay-as-you-go-four-classes-subscription-offer-square_b2e38195-6693-47aa-99e2-df63aa298e77.jpg?v=1778590988"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0567\/6148\/3312\/collections\/english-pay-as-you-go-243791.jpg?v=1691658081","url":"https:\/\/rosscline.com\/fr-th\/collections\/classique-payer-au-fur-et-a-mesure.oembed","provider":"rosscline.com","version":"1.0","type":"link"}