{"id":2149,"date":"2026-06-07T23:20:37","date_gmt":"2026-06-07T23:20:37","guid":{"rendered":"http:\/\/www.rachid.site\/?page_id=2149"},"modified":"2026-10-05T22:03:05","modified_gmt":"2026-10-05T22:03:05","slug":"a-propos","status":"publish","type":"page","link":"https:\/\/www.rachid.site\/ar\/a-propos\/","title":{"rendered":"\u0645\u0646 \u0646\u062d\u0646"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2149\" class=\"elementor elementor-2149\" data-elementor-post-type=\"page\">\n\t\t\t\t<main class=\"elementor-element elementor-element-m1a1n01 e-con-full e-flex e-con e-parent\" data-id=\"m1a1n01\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-a5412fb e-flex e-con-boxed e-con e-child\" data-id=\"a5412fb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-6606642 e-con-full e-flex e-con e-child\" data-id=\"6606642\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-9b32cc5 e-con-full e-flex e-con e-child\" data-id=\"9b32cc5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7cfe233 elementor-widget elementor-widget-heading\" data-id=\"7cfe233\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">\u00c0 propos de RachidWeb<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a178b01 elementor-widget elementor-widget-text-editor\" data-id=\"a178b01\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>D\u00e9couvrez mon parcours et ma fa\u00e7on de travailler<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5097a2f e-con-full e-flex e-con e-child\" data-id=\"5097a2f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-ad7402e e-con-full e-flex e-con e-child\" data-id=\"ad7402e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0abff39 elementor-widget elementor-widget-heading\" data-id=\"0abff39\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Qui suis-je ?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-001d83a elementor-widget elementor-widget-text-editor\" data-id=\"001d83a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Je suis Rachid, designer et d\u00e9veloppeur web ind\u00e9pendant.<\/p><p>J&rsquo;aide les entrepreneurs et les petites entreprises \u00e0 pr\u00e9senter leur activit\u00e9 en ligne gr\u00e2ce \u00e0 des sites vitrines, des boutiques WooCommerce et des landing pages clairs et faciles \u00e0 utiliser.<\/p><p>Je travaille directement avec vous pour comprendre vos besoins et cr\u00e9er un site adapt\u00e9 \u00e0 votre projet, avec une attention particuli\u00e8re au design, \u00e0 la navigation et \u00e0 l&rsquo;affichage sur mobile.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ab14bef e-con-full e-flex e-con e-child\" data-id=\"ab14bef\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-044732a elementor-widget elementor-widget-image\" data-id=\"044732a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"400\" src=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2025\/12\/Untitled-design-2-1024x512.png\" class=\"attachment-large size-large wp-image-24\" alt=\"Rachid, fondateur de RachidWeb\" srcset=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2025\/12\/Untitled-design-2-1024x512.png.webp 1024w, http:\/\/www.rachid.site\/wp-content\/uploads\/2025\/12\/Untitled-design-2-300x150.png.webp 300w, http:\/\/www.rachid.site\/wp-content\/uploads\/2025\/12\/Untitled-design-2-768x384.png 768w, http:\/\/www.rachid.site\/wp-content\/uploads\/2025\/12\/Untitled-design-2-1536x768.png 1536w, http:\/\/www.rachid.site\/wp-content\/uploads\/2025\/12\/Untitled-design-2.png 1800w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e4f5a6b e-flex e-con-boxed e-con e-child\" data-id=\"e4f5a6b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a1b2c3d elementor-widget elementor-widget-html\" data-id=\"a1b2c3d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"rw-skills-section\">\n\t<div class=\"rw-skills-text\">\n\t\t<h2>Mes comp\u00e9tences<\/h2>\n\t\t<p>Je con\u00e7ois des interfaces claires et des sites web adapt\u00e9s \u00e0 votre activit\u00e9 : sites vitrines, landing pages et boutiques en ligne.<\/p>\n\t\t<p>De la maquette \u00e0 la mise en ligne, je veille \u00e0 la coh\u00e9rence du design, \u00e0 la simplicit\u00e9 de navigation et au bon affichage sur tous les \u00e9crans.<\/p>\n\t<\/div>\n\t<div class=\"rw-skills-logos\">\n\t\t<picture class=\"rw-skills-pic\">\n\t\t\t<source type=\"image\/webp\" srcset=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-logo-figma.webp\">\n\t\t\t<img loading=\"lazy\" class=\"rw-skills-logo rw-skills-logo--figma\" src=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-logo-figma.png\" alt=\"Figma\" width=\"100\" height=\"100\" loading=\"lazy\" decoding=\"async\">\n\t\t<\/picture>\n\t\t<picture class=\"rw-skills-pic\">\n\t\t\t<source type=\"image\/webp\" srcset=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-logo-wordpress.webp\">\n\t\t\t<img loading=\"lazy\" class=\"rw-skills-logo rw-skills-logo--wp\" src=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-logo-wordpress.png\" alt=\"WordPress\" width=\"100\" height=\"100\" loading=\"lazy\" decoding=\"async\">\n\t\t<\/picture>\n\t<\/div>\n<\/div>\n\n<style>\n.rw-skills-section{\n\tdisplay:flex;\n\tflex-direction:row;\n\talign-items:center;\n\tjustify-content:space-between;\n\tgap:48px;\n\tmax-width:1200px;\n\tmargin:0 auto;\n\tpadding:70px 100px;\n\tbox-sizing:border-box;\n}\n.rw-skills-text{flex:1 1 0; min-width:0; max-width:560px;}\n.rw-skills-text h2{\n\tfont-family:\"Inter\",sans-serif;\n\tfont-weight:800;\n\tfont-size:38px;\n\tline-height:1.1;\n\tletter-spacing:-0.5px;\n\tcolor:#0B7BB0;\n\tmargin:0 0 18px;\n}\n.rw-skills-text p{\n\tfont-family:\"Inter\",sans-serif;\n\tfont-weight:400;\n\tfont-size:17px;\n\tline-height:1.6;\n\tcolor:#425B6B;\n\tmargin:0 0 14px;\n}\n.rw-skills-text p:last-child{margin-bottom:0;}\n\n.rw-skills-logos{\n\tflex:0 0 36%;\n\tdisplay:flex;\n\tflex-direction:row;\n\talign-items:center;\n\tjustify-content:center;\n\tgap:56px;\n}\n.rw-skills-pic{display:block; flex:0 0 auto; line-height:0;}\n.rw-skills-logo{\n\twidth:100px;\n\theight:100px;\n\tobject-fit:contain;\n\tdisplay:block;\n\ttransition:opacity .6s ease, transform .6s ease;\n}\n.rw-skills-logo.is-visible{opacity:1; transform:translateY(0);}\n.rw-skills-logo--wp.is-visible{transition-delay:.18s;}\n.rw-skills-section.rw-anim-ready .rw-skills-logo:not(.is-visible){opacity:0; transform:translateY(16px);}\n\n@media (prefers-reduced-motion: no-preference){\n\t.rw-skills-logo.is-visible{animation:rw-skills-float 3.6s ease-in-out .7s 1;}\n\t.rw-skills-logo--wp.is-visible{animation-duration:4.2s; animation-delay:.9s;}\n\t.rw-skills-logo:hover{transform:scale(1.06);}\n}\n@keyframes rw-skills-float{\n\t0%,100%{transform:translateY(0);}\n\t50%{transform:translateY(-7px);}\n}\n@media (prefers-reduced-motion: reduce){\n\t.rw-skills-logo{opacity:1; transform:none; transition:none; animation:none;}\n\t.rw-skills-section.rw-anim-ready .rw-skills-logo:not(.is-visible){opacity:1; transform:none;}\n}\n\n@media (max-width:1024px){\n\t.rw-skills-section{padding:60px 48px; gap:32px;}\n\t.rw-skills-logos{flex-basis:32%; gap:36px;}\n\t.rw-skills-logo{width:88px; height:88px;}\n}\n@media (max-width:767px){\n\t.rw-skills-section{flex-direction:column; align-items:flex-start; padding:40px 17px; gap:28px;}\n\t.rw-skills-text{max-width:100%; flex:0 0 auto;}\n\t.rw-skills-text h2{font-size:24px;}\n\t.rw-skills-logos{flex:0 0 auto; align-self:flex-start; justify-content:flex-start; gap:32px;}\n\t.rw-skills-logo{width:72px; height:72px;}\n}\n@media (max-width:360px){\n\t.rw-skills-logo{width:64px; height:64px;}\n\t.rw-skills-logos{gap:24px;}\n}\n<\/style>\n\n<script>\n(function(){\n\tvar sec = document.querySelector('.rw-skills-section');\n\tif(!sec) return;\n\tvar logos = sec.querySelectorAll('.rw-skills-logo');\n\tif(!logos.length) return;\n\tvar reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\tif(reduce || !('IntersectionObserver' in window)) return;\n\tsec.classList.add('rw-anim-ready');\n\tvar io = new IntersectionObserver(function(entries){\n\t\tentries.forEach(function(entry){\n\t\t\tif(entry.isIntersecting){\n\t\t\t\tentry.target.classList.add('is-visible');\n\t\t\t\tio.unobserve(entry.target);\n\t\t\t}\n\t\t});\n\t}, {threshold:0.3});\n\tlogos.forEach(function(el){ io.observe(el); });\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b3d8e1a e-flex e-con-boxed e-con e-child\" data-id=\"b3d8e1a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f7a9c2e elementor-widget elementor-widget-html\" data-id=\"f7a9c2e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"rw-certs-section\">\n\t<div class=\"rw-certs-text\">\n\t\t<h2>Mes formations et certifications<\/h2>\n\t\t<p>D\u00e9couvrez les formations et certifications qui enrichissent ma pratique du design et de la cr\u00e9ation web.<\/p>\n\t<\/div>\n\n\t<div class=\"rw-certs-carousel\" id=\"rw-certs-carousel\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Certifications\" tabindex=\"0\">\n\t\t<button class=\"rw-certs-arrow rw-certs-arrow--prev\" type=\"button\" aria-label=\"Certification pr\u00e9c\u00e9dente\">\n\t\t\t<svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><polyline points=\"15 18 9 12 15 6\"><\/polyline><\/svg>\n\t\t<\/button>\n\t\t<div class=\"rw-certs-viewport\" id=\"rw-certs-viewport\">\n\t\t\t<div class=\"rw-certs-track\" id=\"rw-certs-track\">\n\t\t\t\t<div class=\"rw-certs-slide\" data-index=\"0\">\n\t\t\t\t\t<img width=\"1024\" height=\"791\" src=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-coursera-wordpress-2023-1024x791.jpg\"\n\t\t\t\t\t\tsrcset=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-coursera-wordpress-2023-300x232.jpg 300w, http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-coursera-wordpress-2023-768x593.jpg 768w, http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-coursera-wordpress-2023-1024x791.jpg 1024w, http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-coursera-wordpress-2023-1536x1187.jpg 1536w\"\n\t\t\t\t\t\tsizes=\"auto, (max-width: 767px) 92vw, 600px\"\n\t\t\t\t\t\talt=\"Certificat Coursera : Build a Full Website using WordPress, obtenu par Rachid Igui en septembre 2023\"\n\t\t\t\t\t\tloading=\"lazy\" decoding=\"async\" data-full=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-coursera-wordpress-2023.jpg\">\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"rw-certs-slide\" data-index=\"1\">\n\t\t\t\t\t<img width=\"1024\" height=\"791\" src=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-udacity-frontend-completion-2021-1024x791.jpg\"\n\t\t\t\t\t\tsrcset=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-udacity-frontend-completion-2021-300x232.jpg 300w, http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-udacity-frontend-completion-2021-768x593.jpg 768w, http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-udacity-frontend-completion-2021-1024x791.jpg 1024w, http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-udacity-frontend-completion-2021-1536x1187.jpg 1536w\"\n\t\t\t\t\t\tsizes=\"auto, (max-width: 767px) 92vw, 600px\"\n\t\t\t\t\t\talt=\"Certificat de r\u00e9ussite Udacity : Front End Development Track, 1 Million Arab Coders Initiative, avril 2021\"\n\t\t\t\t\t\tloading=\"lazy\" decoding=\"async\" data-full=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-udacity-frontend-completion-2021.jpg\">\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"rw-certs-slide\" data-index=\"2\">\n\t\t\t\t\t<img loading=\"lazy\" width=\"1024\" height=\"791\" src=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-udacity-frontend-participation-2021-1024x791.jpg\"\n\t\t\t\t\t\tsrcset=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-udacity-frontend-participation-2021-300x232.jpg 300w, http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-udacity-frontend-participation-2021-768x593.jpg 768w, http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-udacity-frontend-participation-2021-1024x791.jpg 1024w, http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-udacity-frontend-participation-2021-1536x1187.jpg 1536w\"\n\t\t\t\t\t\tsizes=\"auto, (max-width: 767px) 92vw, 600px\"\n\t\t\t\t\t\talt=\"Certificat de participation Udacity : Front End Development Track, 1 Million Arab Coders Initiative, f\u00e9vrier 2021\"\n\t\t\t\t\t\tloading=\"lazy\" decoding=\"async\" data-full=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-udacity-frontend-participation-2021.jpg\">\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"rw-certs-slide\" data-index=\"3\">\n\t\t\t\t\t<img loading=\"lazy\" width=\"1024\" height=\"724\" src=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-google-digital-marketing-2021-1024x724.jpg\"\n\t\t\t\t\t\tsrcset=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-google-digital-marketing-2021-300x212.jpg 300w, http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-google-digital-marketing-2021-768x543.jpg 768w, http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-google-digital-marketing-2021-1024x724.jpg 1024w, http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-google-digital-marketing-2021-1536x1086.jpg 1536w\"\n\t\t\t\t\t\tsizes=\"auto, (max-width: 767px) 92vw, 600px\"\n\t\t\t\t\t\talt=\"Certificat Google : Fondamentaux du marketing digital (IAB Europe \/ The Open University), mars 2021\"\n\t\t\t\t\t\tloading=\"lazy\" decoding=\"async\" data-full=\"http:\/\/www.rachid.site\/wp-content\/uploads\/2026\/10\/rachidweb-cert-google-digital-marketing-2021.jpg\">\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<button class=\"rw-certs-arrow rw-certs-arrow--next\" type=\"button\" aria-label=\"Certification suivante\">\n\t\t\t<svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><polyline points=\"9 18 15 12 9 6\"><\/polyline><\/svg>\n\t\t<\/button>\n\t<\/div>\n\n\t<div class=\"rw-certs-dots\" id=\"rw-certs-dots\" role=\"tablist\" aria-label=\"Aller \u00e0 une certification\">\n\t\t<button class=\"rw-certs-dot\" type=\"button\" data-index=\"0\" role=\"tab\" aria-label=\"Certification 1 sur 4\"><\/button>\n\t\t<button class=\"rw-certs-dot\" type=\"button\" data-index=\"1\" role=\"tab\" aria-label=\"Certification 2 sur 4\"><\/button>\n\t\t<button class=\"rw-certs-dot\" type=\"button\" data-index=\"2\" role=\"tab\" aria-label=\"Certification 3 sur 4\"><\/button>\n\t\t<button class=\"rw-certs-dot\" type=\"button\" data-index=\"3\" role=\"tab\" aria-label=\"Certification 4 sur 4\"><\/button>\n\t<\/div>\n<\/div>\n\n<div class=\"rw-certs-lightbox\" id=\"rw-certs-lightbox\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Certification en grand\" aria-hidden=\"true\">\n\t<button class=\"rw-certs-lightbox-close\" id=\"rw-certs-lightbox-close\" type=\"button\" aria-label=\"Fermer l\u2019aper\u00e7u\">\n\t\t<svg viewBox=\"0 0 24 24\" width=\"26\" height=\"26\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line><\/svg>\n\t<\/button>\n\t<img decoding=\"async\" class=\"rw-certs-lightbox-img\" id=\"rw-certs-lightbox-img\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" alt=\"\">\n<\/div>\n\n<style>\n.rw-certs-section{\n\tmax-width:1200px;\n\tmargin:0 auto;\n\tpadding:70px 100px 0;\n\tbox-sizing:border-box;\n}\n.rw-certs-text{max-width:620px; margin-bottom:40px;}\n.rw-certs-text h2{\n\tfont-family:\"Inter\",sans-serif;\n\tfont-weight:800;\n\tfont-size:38px;\n\tline-height:1.1;\n\tletter-spacing:-0.5px;\n\tcolor:#0B7BB0;\n\tmargin:0 0 18px;\n}\n.rw-certs-text p{\n\tfont-family:\"Inter\",sans-serif;\n\tfont-weight:400;\n\tfont-size:17px;\n\tline-height:1.6;\n\tcolor:#425B6B;\n\tmargin:0;\n}\n\n.rw-certs-carousel{display:flex; align-items:center; gap:14px; outline:none;}\n.rw-certs-carousel:focus-visible{outline:3px solid #0B7BB0; outline-offset:6px; border-radius:12px;}\n.rw-certs-viewport{flex:1 1 auto; min-width:0; overflow:hidden; position:relative;}\n.rw-certs-track{display:flex; align-items:center; transition:transform .5s cubic-bezier(.4,0,.2,1); will-change:transform;}\n.rw-certs-slide{\n\tflex:0 0 68%;\n\tbox-sizing:border-box;\n\tpadding:14px;\n\tdisplay:flex;\n\talign-items:center;\n\tjustify-content:center;\n\tcursor:pointer;\n\ttransform:scale(.82);\n\topacity:.45;\n\ttransition:transform .5s cubic-bezier(.4,0,.2,1), opacity .5s cubic-bezier(.4,0,.2,1);\n}\n.rw-certs-slide.is-active{transform:scale(1); opacity:1; cursor:zoom-in;}\n.rw-certs-slide:focus-visible{outline:3px solid #0B7BB0; outline-offset:-3px; border-radius:12px;}\n.rw-certs-slide img{\n\twidth:100%;\n\theight:auto;\n\tmax-height:380px;\n\tobject-fit:contain;\n\tbackground:#fff;\n\tborder-radius:10px;\n\tbox-shadow:0 14px 34px rgba(20,10,40,.16);\n\tdisplay:block;\n}\n\n.rw-certs-arrow{\n\tposition:relative;\n\tflex:0 0 auto;\n\twidth:44px;\n\theight:44px;\n\tborder-radius:50%;\n\tborder:1px solid rgba(66,91,107,.3);\n\tbackground:#fff;\n\tcolor:#425B6B;\n\tdisplay:flex;\n\talign-items:center;\n\tjustify-content:center;\n\tcursor:pointer;\n\ttransition:background .2s ease, color .2s ease, transform .15s ease, opacity .2s ease;\n\tpadding:0;\n}\n.rw-certs-arrow:hover:not(:disabled){background:#0B7BB0; color:#fff; border-color:#0B7BB0;}\n.rw-certs-arrow:active:not(:disabled){transform:scale(.93);}\n.rw-certs-arrow:focus-visible,\n.rw-certs-dot:focus-visible,\n.rw-certs-lightbox-close:focus-visible{outline:3px solid #0B7BB0; outline-offset:3px;}\n.rw-certs-arrow:disabled{opacity:.4; cursor:default; border-style:dashed; background:#fff; color:#425B6B;}\n\n.rw-certs-dots{display:flex; justify-content:center; align-items:center; gap:2px; margin-top:14px;}\n.rw-certs-dot{\n\tbox-sizing:border-box;\n\twidth:28px;\n\theight:28px;\n\tpadding:9px;\n\tborder:none;\n\tborder-radius:50%;\n\tbackground:rgba(66,91,107,.35);\n\tbackground-clip:content-box;\n\tcursor:pointer;\n\ttransition:background .2s ease, transform .2s ease;\n}\n.rw-certs-dot.is-active{background:#0B7BB0; background-clip:content-box; transform:scale(1.25);}\n\n.rw-certs-lightbox{\n\tposition:fixed;\n\tinset:0;\n\tbackground:rgba(7,31,51,.9);\n\tdisplay:flex;\n\talign-items:center;\n\tjustify-content:center;\n\tpadding:40px;\n\tbox-sizing:border-box;\n\tz-index:99999;\n\topacity:0;\n\tvisibility:hidden;\n\ttransition:opacity .25s ease;\n}\n.rw-certs-lightbox.is-open{opacity:1; visibility:visible;}\n.rw-certs-lightbox-img{max-width:92vw; max-height:88vh; object-fit:contain; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5); background:#fff;}\n.rw-certs-lightbox-close{\n\tposition:absolute;\n\ttop:22px;\n\tright:22px;\n\twidth:46px;\n\theight:46px;\n\tborder-radius:50%;\n\tborder:none;\n\tbackground:rgba(255,255,255,.16);\n\tcolor:#fff;\n\tdisplay:flex;\n\talign-items:center;\n\tjustify-content:center;\n\tcursor:pointer;\n\ttransition:background .2s ease;\n}\n.rw-certs-lightbox-close:hover{background:rgba(255,255,255,.3);}\n.rw-certs-lightbox-close:focus-visible{outline-color:#fff;}\n\n\/* RTL (Arabic): mirror chevrons and swap the mobile arrow positions so 'previous' sits on the right. *\/\nhtml[dir=rtl] .rw-certs-arrow svg{transform:scaleX(-1);}\n\n@media (prefers-reduced-motion: reduce){\n\t.rw-certs-track, .rw-certs-slide, .rw-certs-lightbox{transition:none !important;}\n}\n\n@media (max-width:1024px){\n\t.rw-certs-section{padding:60px 48px 0;}\n}\n@media (max-width:767px){\n\t.rw-certs-section{padding:40px 17px 0;}\n\t.rw-certs-text h2{font-size:24px;}\n\t.rw-certs-text{margin-bottom:28px;}\n\t.rw-certs-carousel{display:block; position:relative; gap:0;}\n\t.rw-certs-arrow{position:absolute; top:calc(100% + 11px); width:36px; height:36px; z-index:2;} .rw-certs-arrow--prev{left:calc(50% - 118px);} .rw-certs-arrow--next{right:calc(50% - 118px);} .rw-certs-dots{margin-top:12px; min-height:44px;}\n\t.rw-certs-arrow::after{content:\"\"; position:absolute; inset:-4px;}\n\t.rw-certs-slide{flex:0 0 88%; padding:0 4px;}\n\t.rw-certs-slide img{max-height:340px; border-radius:8px;}\n\t.rw-certs-lightbox{padding:16px;}\n\t.rw-certs-lightbox-close{top:12px; right:12px; width:44px; height:44px;}\n}\n@media (max-width:767px){\n\thtml[dir=rtl] .rw-certs-arrow--prev{left:auto; right:calc(50% - 118px);}\n\thtml[dir=rtl] .rw-certs-arrow--next{right:auto; left:calc(50% - 118px);}\n}\n@media (max-width:360px){ .rw-certs-slide{flex:0 0 94%;}\n\t\n\t\n}\n<\/style>\n\n<script>\n(function(){\n\tvar root = document.getElementById('rw-certs-carousel');\n\tif(!root) return;\n\tvar viewport = document.getElementById('rw-certs-viewport');\n\tvar track = document.getElementById('rw-certs-track');\n\tvar slides = Array.prototype.slice.call(track.children);\n\tvar dots = Array.prototype.slice.call(document.querySelectorAll('#rw-certs-dots .rw-certs-dot'));\n\tvar prevBtn = root.querySelector('.rw-certs-arrow--prev');\n\tvar nextBtn = root.querySelector('.rw-certs-arrow--next');\n\tvar lightbox = document.getElementById('rw-certs-lightbox');\n\tvar lightboxImg = document.getElementById('rw-certs-lightbox-img');\n\tvar lightboxClose = document.getElementById('rw-certs-lightbox-close');\n\tvar active = 0, count = slides.length, opener = null;\n\tvar isRtl = (document.documentElement.getAttribute('dir') || '').toLowerCase() === 'rtl';\n\n\tslides.forEach(function(s,i){\n\t\ts.setAttribute('role','button');\n\t\ts.setAttribute('aria-label', (s.querySelector('img').alt || ('Certification ' + (i+1))));\n\t});\n\n\tfunction layout(){\n\t\tvar a = slides[active];\n\t\tvar offset = viewport.clientWidth\/2 - (a.offsetLeft + a.offsetWidth\/2);\n\t\ttrack.style.transform = 'translateX(' + offset + 'px)';\n\t}\n\tfunction render(){\n\t\tslides.forEach(function(s,i){\n\t\t\ts.classList.toggle('is-active', i===active);\n\t\t\ts.setAttribute('tabindex', i===active ? '0' : '-1');\n\t\t});\n\t\tdots.forEach(function(d,i){\n\t\t\td.classList.toggle('is-active', i===active);\n\t\t\td.setAttribute('aria-selected', i===active ? 'true':'false');\n\t\t\tif(i===active){ d.setAttribute('aria-current','true'); } else { d.removeAttribute('aria-current'); }\n\t\t});\n\t\tprevBtn.disabled = active === 0;\n\t\tnextBtn.disabled = active === count - 1;\n\t\tlayout();\n\t}\n\tfunction goTo(i){ active = Math.max(0, Math.min(count-1, i)); render(); }\n\n\tprevBtn.addEventListener('click', function(){ goTo(active-1); });\n\tnextBtn.addEventListener('click', function(){ goTo(active+1); });\n\tdots.forEach(function(d,i){ d.addEventListener('click', function(){ goTo(i); }); });\n\n\tfunction activate(i){ if(i === active){ openLightbox(i); } else { goTo(i); } }\n\tslides.forEach(function(s,i){\n\t\ts.addEventListener('click', function(){ activate(i); });\n\t\ts.addEventListener('keydown', function(e){\n\t\t\tif(e.key === 'Enter' || e.key === ' '){ e.preventDefault(); activate(i); }\n\t\t});\n\t});\n\n\troot.addEventListener('keydown', function(e){\n\t\tif(e.key === 'ArrowLeft'){ e.preventDefault(); goTo(isRtl ? active+1 : active-1); }\n\t\telse if(e.key === 'ArrowRight'){ e.preventDefault(); goTo(isRtl ? active-1 : active+1); }\n\t});\n\n\tvar touchStartX = null;\n\tviewport.addEventListener('touchstart', function(e){ touchStartX = e.touches[0].clientX; }, {passive:true});\n\tviewport.addEventListener('touchend', function(e){\n\t\tif(touchStartX === null) return;\n\t\tvar dx = e.changedTouches[0].clientX - touchStartX;\n\t\tif(Math.abs(dx) > 40){ ((dx < 0) !== isRtl) ? goTo(active+1) : goTo(active-1); }\n\t\ttouchStartX = null;\n\t}, {passive:true});\n\n\tfunction openLightbox(i){\n\t\tvar img = slides[i].querySelector('img');\n\t\topener = document.activeElement;\n\t\tlightboxImg.src = img.getAttribute('data-full') || img.currentSrc || img.src;\n\t\tlightboxImg.alt = img.alt;\n\t\tlightbox.classList.add('is-open');\n\t\tlightbox.setAttribute('aria-hidden','false');\n\t\tlightboxClose.focus();\n\t}\n\tfunction closeLightbox(){\n\t\tlightbox.classList.remove('is-open');\n\t\tlightbox.setAttribute('aria-hidden','true');\n\t\tif(opener && opener.focus){ opener.focus(); }\n\t}\n\tlightboxClose.addEventListener('click', closeLightbox);\n\tlightbox.addEventListener('click', function(e){ if(e.target === lightbox) closeLightbox(); });\n\tdocument.addEventListener('keydown', function(e){\n\t\tif(!lightbox.classList.contains('is-open')) return;\n\t\tif(e.key === 'Escape'){ closeLightbox(); }\n\t\telse if(e.key === 'Tab'){ e.preventDefault(); lightboxClose.focus(); }\n\t});\n\n\tvar resizeTimer;\n\twindow.addEventListener('resize', function(){ clearTimeout(resizeTimer); resizeTimer = setTimeout(layout, 120); });\n\trender();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-567e49e e-flex e-con-boxed e-con e-child\" data-id=\"567e49e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-661e042 e-con-full e-flex e-con e-child\" data-id=\"661e042\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7e1d01f elementor-widget elementor-widget-heading\" data-id=\"7e1d01f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Le succ\u00e8s se construit ensemble<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2465aa0 elementor-widget elementor-widget-text-editor\" data-id=\"2465aa0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Chaque projet commence par une \u00e9coute attentive de vos objectifs. Je vous accompagne de la conception \u00e0 la mise en ligne pour cr\u00e9er une pr\u00e9sence web claire, professionnelle et adapt\u00e9e \u00e0 votre activit\u00e9.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<section class=\"elementor-element elementor-element-d4c1a10 e-flex e-con-boxed e-con e-child\" data-id=\"d4c1a10\" data-element_type=\"container\" data-e-type=\"container\" id=\"rw-cta-projet\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-d4c1a11 e-con-full e-flex e-con e-child\" data-id=\"d4c1a11\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d4c1a13 elementor-widget elementor-widget-heading\" data-id=\"d4c1a13\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">UN PROJET EN T\u00caTE ?<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d4c1a14 elementor-widget elementor-widget-heading\" data-id=\"d4c1a14\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Cr\u00e9ons quelque chose de beau, ensemble.<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d4c1a17 e-con-full e-flex e-con e-child\" data-id=\"d4c1a17\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d4c1a12 e-con-full e-flex e-con e-child\" data-id=\"d4c1a12\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d4c1a15 elementor-widget elementor-widget-text-editor\" data-id=\"d4c1a15\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Vous avez une id\u00e9e, une activit\u00e9 ou un projet \u00e0 d\u00e9velopper ? \u00c9changeons sur vos objectifs et transformons-les en une exp\u00e9rience web claire, \u00e9l\u00e9gante et adapt\u00e9e \u00e0 vos clients.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d4c1a16 elementor-align-left elementor-widget__width-auto elementor-widget elementor-widget-button\" data-id=\"d4c1a16\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"http:\/\/www.rachid.site\/#form\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Parlons de votre projet<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-d4c1b00 e-con-full e-flex e-con e-child\" data-id=\"d4c1b00\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d4c1b01 elementor-widget elementor-widget-html\" data-id=\"d4c1b01\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n.elementor-2149{--rw-x:56px;--rw-dir:1;}\nhtml[dir=rtl] .elementor-2149{--rw-dir:-1;}\n@media (max-width:767px){.elementor-2149{--rw-x:28px;}}\n.elementor-element-m1a1n01{overflow-x:clip;}\nhtml.rw-anim .elementor-2149 .rw-rv-h{opacity:0;transform:scale(.88);filter:blur(5px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1),filter .7s cubic-bezier(.16,1,.3,1);transition-delay:var(--rw-d,0s);}\nhtml.rw-anim .elementor-2149 .rw-rv-t{opacity:0;transform:translate3d(calc(var(--rw-x) * var(--rw-dir)),0,0);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transition-delay:var(--rw-d,0s);}\nhtml.rw-anim .elementor-2149 .rw-rv-h.rw-in,html.rw-anim .elementor-2149 .rw-rv-t.rw-in{opacity:1;transform:none;filter:none;}\n@media (prefers-reduced-motion:reduce){html.rw-anim .elementor-2149 .rw-rv-h,html.rw-anim .elementor-2149 .rw-rv-t{opacity:1 !important;transform:none !important;filter:none !important;transition:none !important;}}\n.elementor-2149 .elementor-widget-button .elementor-button{position:relative;}\n.elementor-2149 .elementor-widget-button .elementor-button::after{content:'\\2192';position:absolute;right:11px;top:50%;font-size:15px;line-height:1;opacity:0;transform:translate(-8px,-50%);transition:opacity .25s ease,transform .25s ease;pointer-events:none;}\nhtml[dir=rtl] .elementor-2149 .elementor-widget-button .elementor-button::after{content:'\\2190';right:auto;left:11px;transform:translate(8px,-50%);}\n.elementor-2149 .elementor-widget-button .elementor-button .elementor-button-content-wrapper{transition:transform .25s ease;}\n.elementor-2149 .elementor-widget-button .elementor-button:hover::after,.elementor-2149 .elementor-widget-button .elementor-button:focus-visible::after,.elementor-2149 .elementor-widget-button .elementor-button:active::after{opacity:1;transform:translate(0,-50%);}\n.elementor-2149 .elementor-widget-button .elementor-button:hover .elementor-button-content-wrapper,.elementor-2149 .elementor-widget-button .elementor-button:focus-visible .elementor-button-content-wrapper,.elementor-2149 .elementor-widget-button .elementor-button:active .elementor-button-content-wrapper{transform:translateX(calc(-6px * var(--rw-dir)));}\n@media (prefers-reduced-motion:reduce){.elementor-2149 .elementor-widget-button .elementor-button::after,.elementor-2149 .elementor-widget-button .elementor-button .elementor-button-content-wrapper{transition:none;}}\n<\/style>\n<script>\n(function(){\nif(window.rwRevealInit)return;window.rwRevealInit=1;\nvar root=document.querySelector('.elementor-element-m1a1n01');\nif(!root||document.body.classList.contains('elementor-editor-active')||!('IntersectionObserver' in window))return;\nif(window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches)return;\nvar items=root.querySelectorAll('.elementor-widget-heading,.rw-skills-text h2,.rw-certs-text h2,.elementor-widget-text-editor,.elementor-widget-button,.rw-skills-text p,.rw-certs-text p');\nvar groups=[];\nArray.prototype.forEach.call(items,function(el){\nif(el.closest('.elementor-element-7cfe233,.elementor-element-a178b01'))return;\nvar isH=el.matches('.elementor-widget-heading,h2');\nvar g=el.closest('.rw-skills-text,.rw-certs-text')||el.parentElement;\nvar grp=null;for(var i=0;i<groups.length;i++){if(groups[i].node===g){grp=groups[i];break;}}\nif(!grp){grp={node:g,list:[],n:0};groups.push(grp);}\nvar delay=isH?0:(grp.n+1)*0.08;\nif(!isH)grp.n++;\nel.classList.add(isH?'rw-rv-h':'rw-rv-t');\nel.style.setProperty('--rw-d',delay+'s');\ngrp.list.push(el);\n});\nif(!groups.length)return;\nvar pending=groups.slice();var ticking=false;\nfunction check(){ticking=false;var vh=window.innerHeight||document.documentElement.clientHeight;pending=pending.filter(function(g){var r=g.node.getBoundingClientRect();if(r.top<vh*0.9){g.list.forEach(function(el){el.classList.add('rw-in');});return false;}return true;});if(!pending.length){window.removeEventListener('scroll',onS);window.removeEventListener('resize',onS);}}\nfunction onS(){if(!ticking){ticking=true;window.requestAnimationFrame(check);}}\ndocument.documentElement.classList.add('rw-anim');\nwindow.addEventListener('scroll',onS,{passive:true});window.addEventListener('resize',onS);\nwindow.requestAnimationFrame(check);\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/main>\n\t\t<div class=\"elementor-element elementor-element-78ad01c e-flex e-con-boxed e-con e-parent\" data-id=\"78ad01c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2ba8b80 elementor-widget elementor-widget-html\" data-id=\"2ba8b80\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n\/* =========================================\r\n   RACHID AI CHAT\r\n   ========================================= *\/\r\n\r\n#rachid-ai-chat {\r\n    --chat-blue: #45bdf2;\r\n    --chat-blue-dark: #1d9ed6;\r\n    --chat-dark: #090b10;\r\n    --chat-panel: #11151c;\r\n    --chat-border: rgba(255,255,255,.10);\r\n    --chat-text: #ffffff;\r\n    --chat-muted: #aeb7c2;\r\n\r\n    position: fixed;\r\n    right: 28px;\r\n    bottom: 28px;\r\n    z-index: 999999;\r\n    font-family: Arial, Helvetica, sans-serif;\r\n}\r\n\r\n\/* =========================================\r\n   FLOATING BUTTON\r\n   ========================================= *\/\r\n\r\n#rachid-ai-button {\r\n    width: 64px;\r\n    height: 64px;\r\n    border: none;\r\n    border-radius: 50%;\r\n    background: var(--chat-blue);\r\n    cursor: pointer;\r\n\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n\r\n    box-shadow:\r\n        0 8px 25px rgba(0,0,0,.35),\r\n        0 0 0 0 rgba(69,189,242,.40);\r\n\r\n    transition:\r\n        transform .25s ease,\r\n        box-shadow .25s ease,\r\n        background .25s ease;\r\n}\r\n\r\n#rachid-ai-button:hover {\r\n    transform: translateY(-4px) scale(1.04);\r\n    background: var(--chat-blue-dark);\r\n\r\n    box-shadow:\r\n        0 12px 30px rgba(0,0,0,.40),\r\n        0 0 0 8px rgba(69,189,242,.10);\r\n}\r\n\r\n\/* chat icon *\/\r\n#rachid-ai-button svg {\r\n    width: 29px;\r\n    height: 29px;\r\n    fill: none;\r\n    stroke: #fff;\r\n    stroke-width: 2;\r\n    stroke-linecap: round;\r\n    stroke-linejoin: round;\r\n}\r\n\r\n\/* pulse *\/\r\n#rachid-ai-button::after {\r\n    content: \"\";\r\n    position: absolute;\r\n    width: 64px;\r\n    height: 64px;\r\n    border-radius: 50%;\r\n    border: 2px solid rgba(69,189,242,.30);\r\n    animation: rachidPulse 2.4s infinite;\r\n    pointer-events: none;\r\n}\r\n\r\n@keyframes rachidPulse {\r\n    0% {\r\n        transform: scale(1);\r\n        opacity: .8;\r\n    }\r\n    70% {\r\n        transform: scale(1.35);\r\n        opacity: 0;\r\n    }\r\n    100% {\r\n        transform: scale(1.35);\r\n        opacity: 0;\r\n    }\r\n}\r\n\r\n\/* =========================================\r\n   CHAT WINDOW\r\n   ========================================= *\/\r\n\r\n#rachid-ai-window {\r\n    position: absolute;\r\n    right: 0;\r\n    bottom: 82px;\r\n\r\n    width: 370px;\r\n    max-width: calc(100vw - 30px);\r\n    height: 560px;\r\n    max-height: calc(100vh - 120px);\r\n\r\n    background:\r\n        linear-gradient(\r\n            180deg,\r\n            rgba(18,22,30,.98),\r\n            rgba(8,11,16,.98)\r\n        );\r\n\r\n    border: 1px solid var(--chat-border);\r\n    border-radius: 22px;\r\n\r\n    box-shadow:\r\n        0 25px 70px rgba(0,0,0,.50),\r\n        0 0 35px rgba(69,189,242,.08);\r\n\r\n    overflow: hidden;\r\n\r\n    display: flex;\r\n    flex-direction: column;\r\n\r\n    opacity: 0;\r\n    transform: translateY(16px) scale(.97);\r\n    visibility: hidden;\r\n\r\n    transition:\r\n        opacity .25s ease,\r\n        transform .25s ease,\r\n        visibility .25s;\r\n}\r\n\r\n#rachid-ai-window.active {\r\n    opacity: 1;\r\n    transform: translateY(0) scale(1);\r\n    visibility: visible;\r\n}\r\n\r\n\/* =========================================\r\n   HEADER\r\n   ========================================= *\/\r\n\r\n.rachid-chat-header {\r\n    padding: 18px 18px 16px;\r\n\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: space-between;\r\n\r\n    border-bottom: 1px solid rgba(255,255,255,.08);\r\n\r\n    background:\r\n        linear-gradient(\r\n            135deg,\r\n            rgba(69,189,242,.08),\r\n            rgba(255,255,255,.02)\r\n        );\r\n}\r\n\r\n.rachid-chat-brand {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 12px;\r\n}\r\n\r\n.rachid-ai-avatar {\r\n    width: 42px;\r\n    height: 42px;\r\n    border-radius: 13px;\r\n\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n\r\n    background: var(--chat-blue);\r\n\r\n    box-shadow: 0 5px 20px rgba(69,189,242,.25);\r\n}\r\n\r\n.rachid-ai-avatar svg {\r\n    width: 23px;\r\n    height: 23px;\r\n    stroke: #fff;\r\n    fill: none;\r\n    stroke-width: 2;\r\n}\r\n\r\n.rachid-chat-title {\r\n    color: #fff;\r\n    font-size: 15px;\r\n    font-weight: 700;\r\n    margin: 0;\r\n}\r\n\r\n.rachid-chat-status {\r\n    color: #69d8a4;\r\n    font-size: 11px;\r\n    margin-top: 3px;\r\n\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 5px;\r\n}\r\n\r\n.rachid-chat-status::before {\r\n    content: \"\";\r\n    width: 7px;\r\n    height: 7px;\r\n    border-radius: 50%;\r\n    background: #69d8a4;\r\n}\r\n\r\n\/* close *\/\r\n#rachid-ai-close {\r\n    width: 34px;\r\n    height: 34px;\r\n    border: 0;\r\n    background: rgba(255,255,255,.06);\r\n    border-radius: 10px;\r\n\r\n    color: #fff;\r\n    cursor: pointer;\r\n    font-size: 20px;\r\n\r\n    transition: .2s ease;\r\n}\r\n\r\n#rachid-ai-close:hover {\r\n    background: rgba(255,255,255,.12);\r\n}\r\n\r\n\/* =========================================\r\n   MESSAGES\r\n   ========================================= *\/\r\n\r\n#rachid-ai-messages {\r\n    flex: 1;\r\n    overflow-y: auto;\r\n    padding: 20px 16px;\r\n\r\n    scrollbar-width: thin;\r\n    scrollbar-color: rgba(255,255,255,.15) transparent;\r\n}\r\n\r\n.rachid-message {\r\n    margin-bottom: 14px;\r\n    display: flex;\r\n}\r\n\r\n.rachid-message.ai {\r\n    justify-content: flex-start;\r\n}\r\n\r\n.rachid-message.user {\r\n    justify-content: flex-end;\r\n}\r\n\r\n.rachid-bubble {\r\n    max-width: 84%;\r\n    padding: 12px 14px;\r\n\r\n    border-radius: 16px;\r\n\r\n    font-size: 13.5px;\r\n    line-height: 1.55;\r\n}\r\n\r\n.rachid-message.ai .rachid-bubble {\r\n    background: rgba(255,255,255,.06);\r\n    border: 1px solid rgba(255,255,255,.06);\r\n    color: #f1f4f7;\r\n    border-bottom-left-radius: 5px;\r\n}\r\n\r\n.rachid-message.user .rachid-bubble {\r\n    background: var(--chat-blue);\r\n    color: #061018;\r\n    font-weight: 500;\r\n    border-bottom-right-radius: 5px;\r\n}\r\n\r\n\/* =========================================\r\n   QUICK ACTIONS\r\n   ========================================= *\/\r\n\r\n.rachid-quick-actions {\r\n    padding: 0 16px 12px;\r\n\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 8px;\r\n}\r\n\r\n.rachid-quick-btn {\r\n    width: 100%;\r\n    padding: 11px 13px;\r\n\r\n    background: rgba(69,189,242,.07);\r\n    border: 1px solid rgba(69,189,242,.20);\r\n\r\n    color: #dff6ff;\r\n\r\n    border-radius: 12px;\r\n    cursor: pointer;\r\n\r\n    font-size: 12.5px;\r\n    font-weight: 500;\r\n\r\n    text-align: left;\r\n\r\n    transition: .2s ease;\r\n}\r\n\r\n.rachid-quick-btn:hover {\r\n    background: rgba(69,189,242,.15);\r\n    border-color: rgba(69,189,242,.40);\r\n    transform: translateX(2px);\r\n}\r\n\r\n\/* =========================================\r\n   INPUT\r\n   ========================================= *\/\r\n\r\n.rachid-input-area {\r\n    padding: 12px;\r\n    border-top: 1px solid rgba(255,255,255,.07);\r\n\r\n    background: rgba(0,0,0,.18);\r\n}\r\n\r\n.rachid-input-wrapper {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n\r\n    background: rgba(255,255,255,.055);\r\n    border: 1px solid rgba(255,255,255,.09);\r\n\r\n    border-radius: 14px;\r\n    padding: 6px 7px 6px 13px;\r\n}\r\n\r\n#rachid-ai-input {\r\n    flex: 1;\r\n\r\n    min-width: 0;\r\n\r\n    background: transparent !important;\r\n    border: none !important;\r\n    outline: none !important;\r\n\r\n    color: #fff !important;\r\n\r\n    font-size: 13px;\r\n    box-shadow: none !important;\r\n}\r\n\r\n#rachid-ai-input::placeholder {\r\n    color: #8d98a5;\r\n}\r\n\r\n#rachid-ai-send {\r\n    width: 38px;\r\n    height: 38px;\r\n\r\n    border: none;\r\n    border-radius: 11px;\r\n\r\n    background: var(--chat-blue);\r\n    color: #fff;\r\n\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n\r\n    cursor: pointer;\r\n\r\n    transition: .2s ease;\r\n}\r\n\r\n#rachid-ai-send:hover {\r\n    background: var(--chat-blue-dark);\r\n    transform: scale(1.04);\r\n}\r\n\r\n#rachid-ai-send svg {\r\n    width: 17px;\r\n    height: 17px;\r\n    stroke: #fff;\r\n    fill: none;\r\n    stroke-width: 2.3;\r\n}\r\n\r\n\/* =========================================\r\n   MOBILE\r\n   ========================================= *\/\r\n\r\n@media (max-width: 600px) {\r\n\r\n    #rachid-ai-chat {\r\n        right: 16px;\r\n        bottom: 16px;\r\n    }\r\n\r\n    #rachid-ai-button {\r\n        width: 58px;\r\n        height: 58px;\r\n    }\r\n\r\n    #rachid-ai-button::after {\r\n        width: 58px;\r\n        height: 58px;\r\n    }\r\n\r\n    #rachid-ai-window {\r\n        position: fixed;\r\n\r\n        left: 12px;\r\n        right: 12px;\r\n        bottom: 84px;\r\n\r\n        width: auto;\r\n        max-width: none;\r\n\r\n        height: min(620px, calc(100vh - 105px));\r\n\r\n        border-radius: 20px;\r\n    }\r\n}\r\n<\/style>\r\n\r\n\r\n<div id=\"rachid-ai-chat\">\r\n\r\n    <!-- FLOATING BUTTON -->\r\n    <button id=\"rachid-ai-button\" aria-label=\"Ouvrir Rachid AI\">\r\n        <svg viewBox=\"0 0 24 24\">\r\n            <path d=\"M20 11.5a7.5 7.5 0 0 1-7.5 7.5H7l-4 3v-6.5A7.5 7.5 0 0 1 11 4h1.5A7.5 7.5 0 0 1 20 11.5Z\"\/>\r\n            <path d=\"M8 11h.01\"\/>\r\n            <path d=\"M12 11h.01\"\/>\r\n            <path d=\"M16 11h.01\"\/>\r\n        <\/svg>\r\n    <\/button>\r\n\r\n\r\n    <!-- CHAT WINDOW -->\r\n    <div id=\"rachid-ai-window\">\r\n\r\n        <!-- HEADER -->\r\n        <div class=\"rachid-chat-header\">\r\n\r\n            <div class=\"rachid-chat-brand\">\r\n\r\n                <div class=\"rachid-ai-avatar\">\r\n                    <svg viewBox=\"0 0 24 24\">\r\n                        <path d=\"M12 3v3\"\/>\r\n                        <path d=\"M8 6h8\"\/>\r\n                        <rect x=\"5\" y=\"7\" width=\"14\" height=\"11\" rx=\"3\"\/>\r\n                        <path d=\"M8 21h8\"\/>\r\n                        <path d=\"M8 12h.01\"\/>\r\n                        <path d=\"M12 12h.01\"\/>\r\n                        <path d=\"M16 12h.01\"\/>\r\n                    <\/svg>\r\n                <\/div>\r\n\r\n                <div>\r\n                    <div class=\"rachid-chat-title\">\r\n                        Rachid AI\r\n                    <\/div>\r\n\r\n                    <div class=\"rachid-chat-status\">\r\n                        Assistant en ligne\r\n                    <\/div>\r\n                <\/div>\r\n\r\n            <\/div>\r\n\r\n            <button id=\"rachid-ai-close\" aria-label=\"Fermer\">\r\n                \u00d7\r\n            <\/button>\r\n\r\n        <\/div>\r\n\r\n\r\n        <!-- MESSAGES -->\r\n        <div id=\"rachid-ai-messages\">\r\n\r\n            <div class=\"rachid-message ai\">\r\n                <div class=\"rachid-bubble\">\r\n                    \ud83d\udc4b Bonjour ! Je suis l\u2019assistant de Rachid.<br><br>\r\n                    Je peux vous aider \u00e0 trouver la solution adapt\u00e9e \u00e0 votre projet digital.\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"rachid-message ai\">\r\n                <div class=\"rachid-bubble\">\r\n                    Que souhaitez-vous faire aujourd\u2019hui ?\r\n                <\/div>\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n\r\n        <!-- QUICK ACTIONS -->\r\n        <div class=\"rachid-quick-actions\">\r\n\r\n            <button class=\"rachid-quick-btn\">\r\n                \ud83d\udda5\ufe0f Cr\u00e9er un site web\r\n            <\/button>\r\n\r\n            <button class=\"rachid-quick-btn\">\r\n                \ud83d\uded2 Cr\u00e9er une boutique en ligne\r\n            <\/button>\r\n\r\n            <button class=\"rachid-quick-btn\">\r\n                \ud83d\udcb0 Conna\u00eetre les tarifs\r\n            <\/button>\r\n\r\n            <button class=\"rachid-quick-btn\">\r\n                \ud83d\udcac Parler directement avec Rachid\r\n            <\/button>\r\n\r\n        <\/div>\r\n\r\n\r\n        <!-- INPUT -->\r\n        <div class=\"rachid-input-area\">\r\n\r\n            <div class=\"rachid-input-wrapper\">\r\n\r\n                <input\r\n                    id=\"rachid-ai-input\"\r\n                    type=\"text\"\r\n                    placeholder=\"\u00c9crivez votre message...\"\r\n                    autocomplete=\"off\"\r\n                >\r\n\r\n                <button id=\"rachid-ai-send\" aria-label=\"Envoyer\">\r\n\r\n                    <svg viewBox=\"0 0 24 24\">\r\n                        <path d=\"M22 2 11 13\"\/>\r\n                        <path d=\"m22 2-7 20-4-9-9-4Z\"\/>\r\n                    <\/svg>\r\n\r\n                <\/button>\r\n\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n    <\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n    const button = document.getElementById(\"rachid-ai-button\");\r\n    const windowChat = document.getElementById(\"rachid-ai-window\");\r\n    const close = document.getElementById(\"rachid-ai-close\");\r\n\r\n    const input = document.getElementById(\"rachid-ai-input\");\r\n    const send = document.getElementById(\"rachid-ai-send\");\r\n    const messages = document.getElementById(\"rachid-ai-messages\");\r\n\r\n    \/* OPEN *\/\r\n    button.addEventListener(\"click\", function () {\r\n        windowChat.classList.add(\"active\");\r\n\r\n        setTimeout(() => {\r\n            input.focus();\r\n        }, 250);\r\n    });\r\n\r\n    \/* CLOSE *\/\r\n    close.addEventListener(\"click\", function () {\r\n        windowChat.classList.remove(\"active\");\r\n    });\r\n\r\n\r\n    \/* ADD MESSAGE *\/\r\n    function addMessage(text, type) {\r\n\r\n        const message = document.createElement(\"div\");\r\n        message.className = \"rachid-message \" + type;\r\n\r\n        const bubble = document.createElement(\"div\");\r\n        bubble.className = \"rachid-bubble\";\r\n\r\n        bubble.textContent = text;\r\n\r\n        message.appendChild(bubble);\r\n        messages.appendChild(message);\r\n\r\n        messages.scrollTop = messages.scrollHeight;\r\n    }\r\n\r\n\r\n    \/* SEND MESSAGE *\/\r\n    function sendMessage() {\r\n\r\n        const text = input.value.trim();\r\n\r\n        if (!text) return;\r\n\r\n        addMessage(text, \"user\");\r\n\r\n        input.value = \"\";\r\n\r\n        \/* TEMPORARY RESPONSE\r\n           \u0633\u064a\u062a\u0645 \u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0647\u0630\u0627 \u0628\u0640 n8n \u0644\u0627\u062d\u0642\u064b\u0627\r\n        *\/\r\n\r\n        setTimeout(() => {\r\n\r\n            addMessage(\r\n                \"Merci pour votre message. Je serai bient\u00f4t connect\u00e9 \u00e0 l'assistant IA.\",\r\n                \"ai\"\r\n            );\r\n\r\n        }, 700);\r\n    }\r\n\r\n\r\n    send.addEventListener(\"click\", sendMessage);\r\n\r\n    input.addEventListener(\"keydown\", function (event) {\r\n\r\n        if (event.key === \"Enter\") {\r\n            sendMessage();\r\n        }\r\n\r\n    });\r\n\r\n\r\n    \/* QUICK BUTTONS *\/\r\n    document.querySelectorAll(\".rachid-quick-btn\").forEach(function (btn) {\r\n\r\n        btn.addEventListener(\"click\", function () {\r\n\r\n            const text = this.textContent.trim();\r\n\r\n            addMessage(text, \"user\");\r\n\r\n            setTimeout(() => {\r\n\r\n                addMessage(\r\n                    \"Tr\u00e8s bien \ud83d\udc4d Dites-moi quelques d\u00e9tails sur votre projet et je vous guiderai.\",\r\n                    \"ai\"\r\n                );\r\n\r\n            }, 500);\r\n\r\n        });\r\n\r\n    });\r\n\r\n});\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u00c0 propos de RachidWeb D\u00e9couvrez mon parcours et ma fa\u00e7on de travailler Qui suis-je ? Je suis Rachid, designer et d\u00e9veloppeur web ind\u00e9pendant. J&rsquo;aide les entrepreneurs et les petites entreprises \u00e0 pr\u00e9senter leur activit\u00e9 en ligne gr\u00e2ce \u00e0 des sites vitrines, des boutiques WooCommerce et des landing pages clairs et faciles \u00e0 utiliser. Je travaille [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-2149","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.rachid.site\/ar\/wp-json\/wp\/v2\/pages\/2149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rachid.site\/ar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.rachid.site\/ar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.rachid.site\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rachid.site\/ar\/wp-json\/wp\/v2\/comments?post=2149"}],"version-history":[{"count":284,"href":"https:\/\/www.rachid.site\/ar\/wp-json\/wp\/v2\/pages\/2149\/revisions"}],"predecessor-version":[{"id":4064,"href":"https:\/\/www.rachid.site\/ar\/wp-json\/wp\/v2\/pages\/2149\/revisions\/4064"}],"wp:attachment":[{"href":"https:\/\/www.rachid.site\/ar\/wp-json\/wp\/v2\/media?parent=2149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}