{"id":5740,"date":"2026-01-31T19:02:57","date_gmt":"2026-01-31T17:02:57","guid":{"rendered":"https:\/\/www.estudiodefrances.com\/?p=5740"},"modified":"2026-01-31T19:34:53","modified_gmt":"2026-01-31T17:34:53","slug":"les-pronoms-sujets-etre-avoir-et-sappeler-au-present","status":"publish","type":"post","link":"https:\/\/www.estudiodefrances.com\/?p=5740","title":{"rendered":"Les pronoms sujets, \u00eatre, avoir et s&rsquo;appeler au pr\u00e9sent"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Illustration du Cours &#8211; Les Bases du Fran\u00e7ais<\/title>\n    <style>\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        body {\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n            padding: 40px 20px;\n            min-height: 100vh;\n        }\n\n        .infographic {\n            max-width: 1200px;\n            margin: 0 auto;\n            background: white;\n            border-radius: 30px;\n            padding: 60px;\n            box-shadow: 0 30px 80px rgba(0,0,0,0.3);\n        }\n\n        .header {\n            text-align: center;\n            margin-bottom: 60px;\n            position: relative;\n        }\n\n        .header h1 {\n            font-size: 3.5rem;\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n            -webkit-background-clip: text;\n            -webkit-text-fill-color: transparent;\n            background-clip: text;\n            margin-bottom: 15px;\n            font-weight: 800;\n        }\n\n        .header .subtitle {\n            font-size: 1.4rem;\n            color: #666;\n            font-weight: 300;\n        }\n\n        .flag-decoration {\n            display: flex;\n            justify-content: center;\n            gap: 5px;\n            margin: 30px 0;\n        }\n\n        .flag-stripe {\n            width: 80px;\n            height: 15px;\n            border-radius: 3px;\n        }\n\n        .blue { background: #0055A4; }\n        .white { background: #FFFFFF; border: 2px solid #ddd; }\n        .red { background: #EF4135; }\n\n        \/* Section des Pronoms *\/\n        .section {\n            margin: 50px 0;\n        }\n\n        .section-title {\n            font-size: 2.2rem;\n            color: #2d3748;\n            margin-bottom: 30px;\n            padding-bottom: 15px;\n            border-bottom: 4px solid #667eea;\n            display: flex;\n            align-items: center;\n            gap: 15px;\n        }\n\n        .icon {\n            font-size: 2.5rem;\n        }\n\n        \/* Grille des Pronoms *\/\n        .pronoun-grid {\n            display: grid;\n            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n            gap: 25px;\n            margin: 30px 0;\n        }\n\n        .pronoun-card {\n            background: linear-gradient(135deg, #f6f8fb 0%, #e9ecef 100%);\n            border-radius: 20px;\n            padding: 30px;\n            text-align: center;\n            border: 3px solid transparent;\n            transition: all 0.3s ease;\n            position: relative;\n            overflow: hidden;\n        }\n\n        .pronoun-card::before {\n            content: '';\n            position: absolute;\n            top: 0;\n            left: 0;\n            right: 0;\n            height: 5px;\n            background: linear-gradient(90deg, #667eea, #764ba2);\n        }\n\n        .pronoun-card:hover {\n            transform: translateY(-10px);\n            box-shadow: 0 15px 40px rgba(102, 126, 234, 0.3);\n            border-color: #667eea;\n        }\n\n        .pronoun-french {\n            font-size: 2.5rem;\n            font-weight: 800;\n            color: #2d3748;\n            margin-bottom: 10px;\n        }\n\n        .pronoun-english {\n            font-size: 1.3rem;\n            color: #667eea;\n            font-weight: 600;\n            margin-bottom: 15px;\n        }\n\n        .pronoun-note {\n            font-size: 0.95rem;\n            color: #666;\n            line-height: 1.5;\n        }\n\n        \/* Section des Verbes *\/\n        .verb-comparison {\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            gap: 40px;\n            margin: 40px 0;\n        }\n\n        .verb-box {\n            background: white;\n            border-radius: 20px;\n            padding: 35px;\n            box-shadow: 0 10px 30px rgba(0,0,0,0.1);\n            border: 3px solid #e9ecef;\n        }\n\n        .verb-box.etre {\n            border-color: #667eea;\n            background: linear-gradient(135deg, #f6f8fb 0%, #e8eef7 100%);\n        }\n\n        .verb-box.avoir {\n            border-color: #f093fb;\n            background: linear-gradient(135deg, #fef6fb 0%, #f9e8f7 100%);\n        }\n\n        .verb-title {\n            font-size: 2rem;\n            font-weight: 800;\n            text-align: center;\n            margin-bottom: 25px;\n            padding: 15px;\n            border-radius: 12px;\n        }\n\n        .verb-box.etre .verb-title {\n            background: #667eea;\n            color: white;\n        }\n\n        .verb-box.avoir .verb-title {\n            background: #f093fb;\n            color: white;\n        }\n\n        .conjugation-row {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            padding: 15px;\n            margin: 10px 0;\n            background: white;\n            border-radius: 12px;\n            border-left: 4px solid transparent;\n            transition: all 0.2s ease;\n        }\n\n        .verb-box.etre .conjugation-row {\n            border-left-color: #667eea;\n        }\n\n        .verb-box.avoir .conjugation-row {\n            border-left-color: #f093fb;\n        }\n\n        .conjugation-row:hover {\n            transform: translateX(5px);\n            box-shadow: 0 5px 15px rgba(0,0,0,0.1);\n        }\n\n        .pronoun-col {\n            font-weight: 700;\n            color: #2d3748;\n            font-size: 1.1rem;\n        }\n\n        .verb-col {\n            font-weight: 700;\n            font-size: 1.3rem;\n        }\n\n        .verb-box.etre .verb-col {\n            color: #667eea;\n        }\n\n        .verb-box.avoir .verb-col {\n            color: #f093fb;\n        }\n\n        \/* Section S'appeler *\/\n        .sappeler-visual {\n            background: linear-gradient(135deg, #ffeaa7 0%, #fdcb6e 100%);\n            border-radius: 25px;\n            padding: 40px;\n            margin: 30px 0;\n            box-shadow: 0 15px 40px rgba(253, 203, 110, 0.3);\n        }\n\n        .dialogue-bubbles {\n            display: flex;\n            flex-direction: column;\n            gap: 20px;\n        }\n\n        .bubble {\n            background: white;\n            padding: 25px;\n            border-radius: 20px;\n            position: relative;\n            max-width: 70%;\n            box-shadow: 0 5px 20px rgba(0,0,0,0.1);\n        }\n\n        .bubble.left {\n            align-self: flex-start;\n            border-bottom-left-radius: 5px;\n        }\n\n        .bubble.right {\n            align-self: flex-end;\n            background: #667eea;\n            color: white;\n            border-bottom-right-radius: 5px;\n        }\n\n        .bubble-text {\n            font-size: 1.2rem;\n            font-weight: 600;\n            margin-bottom: 8px;\n        }\n\n        .bubble-translation {\n            font-size: 0.95rem;\n            opacity: 0.8;\n            font-style: italic;\n        }\n\n        .avatar {\n            font-size: 2.5rem;\n            margin-bottom: 10px;\n        }\n\n        \/* Conseil Box *\/\n        .tip-banner {\n            background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);\n            border-radius: 20px;\n            padding: 30px;\n            margin: 40px 0;\n            border-left: 8px solid #667eea;\n            box-shadow: 0 10px 30px rgba(0,0,0,0.1);\n        }\n\n        .tip-banner .icon {\n            float: left;\n            margin-right: 20px;\n            font-size: 3rem;\n        }\n\n        .tip-banner h3 {\n            font-size: 1.8rem;\n            color: #2d3748;\n            margin-bottom: 15px;\n        }\n\n        .tip-banner p {\n            font-size: 1.1rem;\n            color: #4a5568;\n            line-height: 1.8;\n        }\n\n        \/* Visual Examples *\/\n        .example-showcase {\n            display: grid;\n            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n            gap: 25px;\n            margin: 30px 0;\n        }\n\n        .example-card {\n            background: white;\n            border-radius: 15px;\n            padding: 25px;\n            box-shadow: 0 8px 25px rgba(0,0,0,0.08);\n            border: 2px solid #e9ecef;\n            transition: all 0.3s ease;\n        }\n\n        .example-card:hover {\n            transform: translateY(-5px);\n            box-shadow: 0 15px 40px rgba(0,0,0,0.15);\n        }\n\n        .example-french {\n            font-size: 1.3rem;\n            font-weight: 700;\n            color: #2d3748;\n            margin-bottom: 10px;\n        }\n\n        .example-english {\n            font-size: 1rem;\n            color: #718096;\n            font-style: italic;\n        }\n\n        .example-type {\n            display: inline-block;\n            padding: 5px 15px;\n            border-radius: 20px;\n            font-size: 0.85rem;\n            font-weight: 600;\n            margin-top: 15px;\n            background: #667eea;\n            color: white;\n        }\n\n        \/* Age Warning Box *\/\n        .warning-box {\n            background: linear-gradient(135deg, #ffeaa7 0%, #fab1a0 100%);\n            border-radius: 20px;\n            padding: 30px;\n            margin: 30px 0;\n            border: 3px solid #e17055;\n            display: flex;\n            align-items: center;\n            gap: 25px;\n        }\n\n        .warning-icon {\n            font-size: 4rem;\n        }\n\n        .warning-content h3 {\n            font-size: 1.8rem;\n            color: #2d3748;\n            margin-bottom: 10px;\n        }\n\n        .warning-content p {\n            font-size: 1.1rem;\n            color: #4a5568;\n            line-height: 1.6;\n        }\n\n        .comparison {\n            display: flex;\n            gap: 20px;\n            margin-top: 15px;\n        }\n\n        .comparison-item {\n            flex: 1;\n            padding: 15px;\n            border-radius: 12px;\n            text-align: center;\n            font-weight: 700;\n        }\n\n        .correct {\n            background: #d4edda;\n            color: #155724;\n        }\n\n        .incorrect {\n            background: #f8d7da;\n            color: #721c24;\n        }\n\n        \/* Footer *\/\n        .footer {\n            text-align: center;\n            margin-top: 60px;\n            padding-top: 30px;\n            border-top: 3px solid #e9ecef;\n            color: #718096;\n            font-size: 1.1rem;\n        }\n\n        @media (max-width: 768px) {\n            .infographic {\n                padding: 30px 20px;\n            }\n\n            .header h1 {\n                font-size: 2rem;\n            }\n\n            .verb-comparison {\n                grid-template-columns: 1fr;\n            }\n\n            .bubble {\n                max-width: 85%;\n            }\n\n            .warning-box {\n                flex-direction: column;\n                text-align: center;\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"infographic\">\n        <!-- Header -->\n        <div class=\"header\">\n            <h1>&#x1f1eb;&#x1f1f7; Les Bases du Fran\u00e7ais<\/h1>\n            <p class=\"subtitle\">L&rsquo;Identit\u00e9 et la Grammaire Essentielle<\/p>\n            <div class=\"flag-decoration\">\n                <div class=\"flag-stripe blue\"><\/div>\n                <div class=\"flag-stripe white\"><\/div>\n                <div class=\"flag-stripe red\"><\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Section 1: Pronoms Sujets -->\n        <div class=\"section\">\n            <h2 class=\"section-title\">\n                <span class=\"icon\">&#x1f465;<\/span>\n                Les Pronoms Sujets\n            <\/h2>\n\n            <div class=\"pronoun-grid\">\n                <div class=\"pronoun-card\">\n                    <div class=\"pronoun-french\">Je \/ J&rsquo;<\/div>\n                    <div class=\"pronoun-english\">I<\/div>\n                    <div class=\"pronoun-note\">Devient <strong>J&rsquo;<\/strong> devant une voyelle<br>Ex: J&rsquo;habite, J&rsquo;aime<\/div>\n                <\/div>\n\n                <div class=\"pronoun-card\">\n                    <div class=\"pronoun-french\">Tu<\/div>\n                    <div class=\"pronoun-english\">You (singular)<\/div>\n                    <div class=\"pronoun-note\">Informel<br>Amis, famille, enfants<\/div>\n                <\/div>\n\n                <div class=\"pronoun-card\">\n                    <div class=\"pronoun-french\">Il \/ Elle<\/div>\n                    <div class=\"pronoun-english\">He \/ She<\/div>\n                    <div class=\"pronoun-note\"><strong>Il<\/strong> = masculin<br><strong>Elle<\/strong> = f\u00e9minin<\/div>\n                <\/div>\n\n                <div class=\"pronoun-card\">\n                    <div class=\"pronoun-french\">Nous<\/div>\n                    <div class=\"pronoun-english\">We<\/div>\n                    <div class=\"pronoun-note\">Groupe incluant soi-m\u00eame<\/div>\n                <\/div>\n\n                <div class=\"pronoun-card\">\n                    <div class=\"pronoun-french\">Vous<\/div>\n                    <div class=\"pronoun-english\">You (plural\/formal)<\/div>\n                    <div class=\"pronoun-note\">Politesse OU<br>plusieurs personnes<\/div>\n                <\/div>\n\n                <div class=\"pronoun-card\">\n                    <div class=\"pronoun-french\">Ils \/ Elles<\/div>\n                    <div class=\"pronoun-english\">They<\/div>\n                    <div class=\"pronoun-note\"><strong>Ils<\/strong> = masculin\/mixte<br><strong>Elles<\/strong> = f\u00e9minin uniquement<\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Section 2: \u00catre vs Avoir -->\n        <div class=\"section\">\n            <h2 class=\"section-title\">\n                <span class=\"icon\">&#x26a1;<\/span>\n                Les Verbes Essentiels : \u00catre &#038; Avoir\n            <\/h2>\n\n            <!-- Warning about Age -->\n            <div class=\"warning-box\">\n                <div class=\"warning-icon\">&#x26a0;&#xfe0f;<\/div>\n                <div class=\"warning-content\">\n                    <h3>Attention : L&rsquo;\u00c2ge en Fran\u00e7ais !<\/h3>\n                    <p>En fran\u00e7ais, on utilise <strong>AVOIR<\/strong> pour l&rsquo;\u00e2ge (\u2260 anglais \u00ab\u00a0to be\u00a0\u00bb)<\/p>\n                    <div class=\"comparison\">\n                        <div class=\"comparison-item correct\">\n                            \u2713 J&rsquo;ai 18 ans\n                        <\/div>\n                        <div class=\"comparison-item incorrect\">\n                            \u2717 Je suis 18 ans\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"verb-comparison\">\n                <!-- \u00caTRE -->\n                <div class=\"verb-box etre\">\n                    <div class=\"verb-title\">\u00caTRE (to be)<\/div>\n                    \n                    <div class=\"conjugation-row\">\n                        <span class=\"pronoun-col\">Je<\/span>\n                        <span class=\"verb-col\">suis<\/span>\n                    <\/div>\n                    \n                    <div class=\"conjugation-row\">\n                        <span class=\"pronoun-col\">Tu<\/span>\n                        <span class=\"verb-col\">es<\/span>\n                    <\/div>\n                    \n                    <div class=\"conjugation-row\">\n                        <span class=\"pronoun-col\">Il \/ Elle<\/span>\n                        <span class=\"verb-col\">est<\/span>\n                    <\/div>\n                    \n                    <div class=\"conjugation-row\">\n                        <span class=\"pronoun-col\">Nous<\/span>\n                        <span class=\"verb-col\">sommes<\/span>\n                    <\/div>\n                    \n                    <div class=\"conjugation-row\">\n                        <span class=\"pronoun-col\">Vous<\/span>\n                        <span class=\"verb-col\">\u00eates<\/span>\n                    <\/div>\n                    \n                    <div class=\"conjugation-row\">\n                        <span class=\"pronoun-col\">Ils \/ Elles<\/span>\n                        <span class=\"verb-col\">sont<\/span>\n                    <\/div>\n                <\/div>\n\n                <!-- AVOIR -->\n                <div class=\"verb-box avoir\">\n                    <div class=\"verb-title\">AVOIR (to have)<\/div>\n                    \n                    <div class=\"conjugation-row\">\n                        <span class=\"pronoun-col\">Je \/ J&rsquo;<\/span>\n                        <span class=\"verb-col\">ai<\/span>\n                    <\/div>\n                    \n                    <div class=\"conjugation-row\">\n                        <span class=\"pronoun-col\">Tu<\/span>\n                        <span class=\"verb-col\">as<\/span>\n                    <\/div>\n                    \n                    <div class=\"conjugation-row\">\n                        <span class=\"pronoun-col\">Il \/ Elle<\/span>\n                        <span class=\"verb-col\">a<\/span>\n                    <\/div>\n                    \n                    <div class=\"conjugation-row\">\n                        <span class=\"pronoun-col\">Nous<\/span>\n                        <span class=\"verb-col\">avons<\/span>\n                    <\/div>\n                    \n                    <div class=\"conjugation-row\">\n                        <span class=\"pronoun-col\">Vous<\/span>\n                        <span class=\"verb-col\">avez<\/span>\n                    <\/div>\n                    \n                    <div class=\"conjugation-row\">\n                        <span class=\"pronoun-col\">Ils \/ Elles<\/span>\n                        <span class=\"verb-col\">ont<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Examples -->\n            <div class=\"example-showcase\">\n                <div class=\"example-card\">\n                    <div class=\"example-french\">Je suis \u00e9tudiant.<\/div>\n                    <div class=\"example-english\">I am a student.<\/div>\n                    <span class=\"example-type\">\u00c9tat \/ Profession<\/span>\n                <\/div>\n\n                <div class=\"example-card\">\n                    <div class=\"example-french\">J&rsquo;ai un fr\u00e8re.<\/div>\n                    <div class=\"example-english\">I have a brother.<\/div>\n                    <span class=\"example-type\">Possession<\/span>\n                <\/div>\n\n                <div class=\"example-card\">\n                    <div class=\"example-french\">Nous sommes fran\u00e7ais.<\/div>\n                    <div class=\"example-english\">We are French.<\/div>\n                    <span class=\"example-type\">Nationalit\u00e9<\/span>\n                <\/div>\n\n                <div class=\"example-card\">\n                    <div class=\"example-french\">Vous avez quel \u00e2ge ?<\/div>\n                    <div class=\"example-english\">How old are you?<\/div>\n                    <span class=\"example-type\">\u00c2ge<\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Section 3: S'appeler -->\n        <div class=\"section\">\n            <h2 class=\"section-title\">\n                <span class=\"icon\">&#x1f464;<\/span>\n                Se Pr\u00e9senter : S&rsquo;appeler\n            <\/h2>\n\n            <div class=\"sappeler-visual\">\n                <div class=\"dialogue-bubbles\">\n                    <div class=\"bubble left\">\n                        <div class=\"avatar\">&#x1f468;<\/div>\n                        <div class=\"bubble-text\">Comment tu t&rsquo;appelles ?<\/div>\n                        <div class=\"bubble-translation\">What&rsquo;s your name?<\/div>\n                    <\/div>\n\n                    <div class=\"bubble right\">\n                        <div class=\"avatar\">&#x1f469;<\/div>\n                        <div class=\"bubble-text\">Je m&rsquo;appelle Marie !<\/div>\n                        <div class=\"bubble-translation\">My name is Marie!<\/div>\n                    <\/div>\n\n                    <div class=\"bubble left\">\n                        <div class=\"avatar\">&#x1f468;<\/div>\n                        <div class=\"bubble-text\">Enchant\u00e9 ! Moi, je m&rsquo;appelle Thomas.<\/div>\n                        <div class=\"bubble-translation\">Nice to meet you! My name is Thomas.<\/div>\n                    <\/div>\n\n                    <div class=\"bubble right\">\n                        <div class=\"avatar\">&#x1f469;<\/div>\n                        <div class=\"bubble-text\">Comment elle s&rsquo;appelle, ton amie ?<\/div>\n                        <div class=\"bubble-translation\">What&rsquo;s your friend&rsquo;s name?<\/div>\n                    <\/div>\n\n                    <div class=\"bubble left\">\n                        <div class=\"avatar\">&#x1f468;<\/div>\n                        <div class=\"bubble-text\">Elle s&rsquo;appelle Sophie.<\/div>\n                        <div class=\"bubble-translation\">Her name is Sophie.<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"tip-banner\">\n                <span class=\"icon\">&#x1f4a1;<\/span>\n                <div>\n                    <h3>Astuce Importante<\/h3>\n                    <p>Le verbe <strong>s&rsquo;appeler<\/strong> est un verbe <strong>pronominal<\/strong>. Il n\u00e9cessite toujours un pronom r\u00e9fl\u00e9chi qui change selon la personne : <strong>me, te, se, nous, vous, se<\/strong>. N&rsquo;oubliez pas l&rsquo;apostrophe devant une voyelle ! (m&rsquo;, t&rsquo;, s&rsquo;)<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Section 4: R\u00e9capitulatif Visuel -->\n        <div class=\"section\">\n            <h2 class=\"section-title\">\n                <span class=\"icon\">&#x1f3af;<\/span>\n                Pr\u00e9sentation Compl\u00e8te\n            <\/h2>\n\n            <div class=\"example-showcase\">\n                <div class=\"example-card\" style=\"grid-column: span 2; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white;\">\n                    <div class=\"example-french\" style=\"color: white; font-size: 1.5rem;\">\n                        Je m&rsquo;appelle Pierre, je suis fran\u00e7ais, j&rsquo;ai 18 ans et je suis \u00e9tudiant.\n                    <\/div>\n                    <div class=\"example-english\" style=\"color: rgba(255,255,255,0.9);\">\n                        My name is Pierre, I am French, I am 18 years old and I am a student.\n                    <\/div>\n                    <div style=\"margin-top: 20px; padding: 20px; background: rgba(255,255,255,0.2); border-radius: 12px;\">\n                        <strong>Structure :<\/strong><br>\n                        S&rsquo;appeler (nom) + \u00catre (nationalit\u00e9) + Avoir (\u00e2ge) + \u00catre (profession)\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Footer -->\n        <div class=\"footer\">\n            <p>&#x1f393; Continuez \u00e0 pratiquer ces bases essentielles pour ma\u00eetriser le fran\u00e7ais !<\/p>\n            <p style=\"margin-top: 10px; font-size: 0.9rem;\">&#x1f4aa; La pratique r\u00e9guli\u00e8re est la cl\u00e9 du succ\u00e8s<\/p>\n        <\/div>\n    <\/div>\n<\/body>\n<\/html>\n\n\n\n<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Exercices Fran\u00e7ais &#8211; Niveau D\u00e9butant<\/title>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=EB+Garamond:wght@400;600;700&#038;family=Inter:wght@400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n    <style>\n        :root {\n            --noir: #0f172a;\n            --gris-fonce: #334155;\n            --gris: #64748b;\n            --gris-clair: #e2e8f0;\n            --gris-ultra-clair: #f1f5f9;\n            --blanc: #ffffff;\n            --bleu: #3b82f6;\n            --bleu-fonce: #1e40af;\n            --vert: #10b981;\n            --vert-clair: #d1fae5;\n            --rouge: #ef4444;\n            --rouge-clair: #fee2e2;\n            --orange: #f59e0b;\n            --orange-clair: #fef3c7;\n            --indigo: #6366f1;\n        }\n\n        .french-exercises-wrapper * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        .french-exercises-wrapper {\n            font-family: 'Inter', sans-serif;\n            background: transparent;\n            color: var(--noir);\n            line-height: 1.6;\n        }\n\n        .french-exercises-wrapper .top-bar {\n            background: var(--blanc);\n            border: 1px solid var(--gris-clair);\n            border-radius: 12px;\n            padding: 20px;\n            margin-bottom: 30px;\n            box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n        }\n\n        .french-exercises-wrapper .top-bar-content {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            flex-wrap: wrap;\n            gap: 20px;\n        }\n\n        .french-exercises-wrapper .progress-info {\n            display: flex;\n            align-items: center;\n            gap: 30px;\n        }\n\n        .french-exercises-wrapper .progress-section {\n            display: flex;\n            align-items: center;\n            gap: 12px;\n        }\n\n        .french-exercises-wrapper .progress-label {\n            font-size: 0.875rem;\n            color: var(--gris);\n            font-weight: 500;\n        }\n\n        .french-exercises-wrapper .progress-bar-mini {\n            width: 180px;\n            height: 8px;\n            background: var(--gris-clair);\n            border-radius: 10px;\n            overflow: hidden;\n        }\n\n        .french-exercises-wrapper .progress-fill-mini {\n            height: 100%;\n            background: linear-gradient(90deg, var(--bleu), var(--indigo));\n            width: 0%;\n            transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);\n            border-radius: 10px;\n        }\n\n        .french-exercises-wrapper .progress-percentage {\n            font-size: 0.875rem;\n            font-weight: 700;\n            color: var(--bleu);\n            min-width: 45px;\n        }\n\n        .french-exercises-wrapper .timer-display {\n            font-size: 0.875rem;\n            font-weight: 600;\n            color: var(--gris-fonce);\n            background: var(--gris-ultra-clair);\n            padding: 8px 16px;\n            border-radius: 8px;\n        }\n\n        .french-exercises-wrapper .stats-display {\n            display: flex;\n            gap: 20px;\n        }\n\n        .french-exercises-wrapper .stat-item {\n            text-align: center;\n        }\n\n        .french-exercises-wrapper .stat-value {\n            font-size: 1.25rem;\n            font-weight: 700;\n            color: var(--noir);\n        }\n\n        .french-exercises-wrapper .stat-label {\n            font-size: 0.75rem;\n            color: var(--gris);\n            text-transform: uppercase;\n            letter-spacing: 0.5px;\n            margin-top: 2px;\n        }\n\n        .french-exercises-wrapper .container {\n            padding: 0 0 60px;\n        }\n\n        .french-exercises-wrapper .exercise-card {\n            background: var(--blanc);\n            border-radius: 16px;\n            padding: 45px;\n            margin-bottom: 30px;\n            box-shadow: 0 1px 3px rgba(0,0,0,0.08);\n            border: 1px solid var(--gris-clair);\n            transition: all 0.3s ease;\n        }\n\n        .french-exercises-wrapper .exercise-card:hover {\n            box-shadow: 0 4px 12px rgba(0,0,0,0.1);\n        }\n\n        .french-exercises-wrapper .exercise-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: flex-start;\n            margin-bottom: 35px;\n            padding-bottom: 25px;\n            border-bottom: 2px solid var(--gris-ultra-clair);\n        }\n\n        .french-exercises-wrapper .exercise-info {\n            flex: 1;\n        }\n\n        .french-exercises-wrapper .exercise-number {\n            display: inline-block;\n            font-size: 0.75rem;\n            font-weight: 700;\n            color: var(--bleu);\n            background: rgba(59, 130, 246, 0.1);\n            padding: 6px 14px;\n            border-radius: 6px;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n            margin-bottom: 12px;\n        }\n\n        .french-exercises-wrapper .exercise-title {\n            font-family: 'EB Garamond', serif;\n            font-size: 2rem;\n            font-weight: 700;\n            color: var(--noir);\n            margin-bottom: 12px;\n            line-height: 1.2;\n        }\n\n        .french-exercises-wrapper .exercise-description {\n            font-size: 1rem;\n            color: var(--gris);\n            line-height: 1.7;\n            max-width: 700px;\n        }\n\n        .french-exercises-wrapper .exercise-status {\n            display: flex;\n            flex-direction: column;\n            align-items: flex-end;\n            gap: 8px;\n        }\n\n        .french-exercises-wrapper .status-badge {\n            font-size: 0.75rem;\n            font-weight: 600;\n            padding: 6px 14px;\n            border-radius: 20px;\n            text-transform: uppercase;\n            letter-spacing: 0.5px;\n        }\n\n        .french-exercises-wrapper .status-badge.pending {\n            background: var(--gris-ultra-clair);\n            color: var(--gris);\n        }\n\n        .french-exercises-wrapper .status-badge.in-progress {\n            background: var(--orange-clair);\n            color: #92400e;\n        }\n\n        .french-exercises-wrapper .status-badge.completed {\n            background: var(--vert-clair);\n            color: #065f46;\n        }\n\n        .french-exercises-wrapper .question-grid {\n            display: grid;\n            gap: 20px;\n        }\n\n        .french-exercises-wrapper .question-item {\n            background: var(--gris-ultra-clair);\n            border-radius: 12px;\n            padding: 25px;\n            transition: all 0.3s ease;\n            border: 2px solid transparent;\n        }\n\n        .french-exercises-wrapper .question-item:hover {\n            background: #f8fafc;\n        }\n\n        .french-exercises-wrapper .question-item.answered {\n            border-color: var(--gris-clair);\n        }\n\n        .french-exercises-wrapper .question-item.correct {\n            background: var(--vert-clair);\n            border-color: var(--vert);\n        }\n\n        .french-exercises-wrapper .question-item.incorrect {\n            background: var(--rouge-clair);\n            border-color: var(--rouge);\n        }\n\n        .french-exercises-wrapper .question-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: 18px;\n        }\n\n        .french-exercises-wrapper .question-label {\n            font-size: 0.875rem;\n            font-weight: 600;\n            color: var(--gris-fonce);\n        }\n\n        .french-exercises-wrapper .question-status {\n            font-size: 0.75rem;\n            font-weight: 600;\n            padding: 4px 10px;\n            border-radius: 12px;\n            display: none;\n        }\n\n        .french-exercises-wrapper .question-item.correct .question-status {\n            display: block;\n            background: var(--vert);\n            color: var(--blanc);\n        }\n\n        .french-exercises-wrapper .question-item.incorrect .question-status {\n            display: block;\n            background: var(--rouge);\n            color: var(--blanc);\n        }\n\n        .french-exercises-wrapper .question-item.correct .question-status::before {\n            content: '\u2713 ';\n        }\n\n        .french-exercises-wrapper .question-item.incorrect .question-status::before {\n            content: '\u2717 ';\n        }\n\n        .french-exercises-wrapper .question-content {\n            font-size: 1.1rem;\n            color: var(--noir);\n            line-height: 2;\n            margin-bottom: 15px;\n        }\n\n        .french-exercises-wrapper .question-content strong {\n            font-weight: 600;\n        }\n\n        .french-exercises-wrapper input[type=\"text\"] {\n            font-family: 'Inter', sans-serif;\n            font-size: 1rem;\n            padding: 12px 16px;\n            border: 2px solid var(--gris-clair);\n            border-radius: 8px;\n            background: var(--blanc);\n            color: var(--noir);\n            transition: all 0.2s ease;\n            min-width: 180px;\n        }\n\n        .french-exercises-wrapper input[type=\"text\"]:focus {\n            outline: none;\n            border-color: var(--bleu);\n            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n        }\n\n        .french-exercises-wrapper input[type=\"text\"].correct {\n            border-color: var(--vert);\n            background: rgba(16, 185, 129, 0.05);\n        }\n\n        .french-exercises-wrapper input[type=\"text\"].incorrect {\n            border-color: var(--rouge);\n            background: rgba(239, 68, 68, 0.05);\n        }\n\n        .french-exercises-wrapper input[type=\"text\"]::placeholder {\n            color: var(--gris);\n            opacity: 0.6;\n        }\n\n        .french-exercises-wrapper .inline-input {\n            display: inline-block;\n            margin: 0 6px;\n        }\n\n        .french-exercises-wrapper .correction-info {\n            margin-top: 12px;\n            padding: 12px 16px;\n            background: rgba(59, 130, 246, 0.08);\n            border-left: 3px solid var(--bleu);\n            border-radius: 6px;\n            font-size: 0.9rem;\n            color: var(--gris-fonce);\n            display: none;\n        }\n\n        .french-exercises-wrapper .correction-info.show {\n            display: block;\n            animation: slideIn 0.3s ease;\n        }\n\n        @keyframes slideIn {\n            from {\n                opacity: 0;\n                transform: translateY(-5px);\n            }\n            to {\n                opacity: 1;\n                transform: translateY(0);\n            }\n        }\n\n        .french-exercises-wrapper .correction-info strong {\n            color: var(--bleu-fonce);\n        }\n\n        .french-exercises-wrapper .hint-box {\n            background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n            border: 2px solid var(--orange);\n            border-radius: 12px;\n            padding: 20px 24px;\n            margin-top: 25px;\n            display: none;\n        }\n\n        .french-exercises-wrapper .hint-box.show {\n            display: block;\n            animation: fadeIn 0.4s ease;\n        }\n\n        @keyframes fadeIn {\n            from { opacity: 0; }\n            to { opacity: 1; }\n        }\n\n        .french-exercises-wrapper .hint-title {\n            font-weight: 700;\n            color: var(--gris-fonce);\n            margin-bottom: 10px;\n            font-size: 0.95rem;\n        }\n\n        .french-exercises-wrapper .hint-content {\n            color: var(--gris-fonce);\n            line-height: 1.7;\n            font-size: 0.95rem;\n        }\n\n        .french-exercises-wrapper .hint-content strong {\n            color: #92400e;\n        }\n\n        .french-exercises-wrapper .action-buttons {\n            display: flex;\n            gap: 12px;\n            margin-top: 30px;\n            flex-wrap: wrap;\n        }\n\n        .french-exercises-wrapper .btn {\n            padding: 13px 28px;\n            border: none;\n            border-radius: 10px;\n            font-family: 'Inter', sans-serif;\n            font-weight: 600;\n            font-size: 0.95rem;\n            cursor: pointer;\n            transition: all 0.2s ease;\n            display: inline-flex;\n            align-items: center;\n            gap: 8px;\n        }\n\n        .french-exercises-wrapper .btn:active {\n            transform: translateY(1px);\n        }\n\n        .french-exercises-wrapper .btn-primary {\n            background: var(--bleu);\n            color: var(--blanc);\n        }\n\n        .french-exercises-wrapper .btn-primary:hover {\n            background: var(--bleu-fonce);\n            box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);\n        }\n\n        .french-exercises-wrapper .btn-secondary {\n            background: var(--blanc);\n            color: var(--gris-fonce);\n            border: 2px solid var(--gris-clair);\n        }\n\n        .french-exercises-wrapper .btn-secondary:hover {\n            background: var(--gris-ultra-clair);\n            border-color: var(--gris);\n        }\n\n        .french-exercises-wrapper .btn-hint {\n            background: var(--orange);\n            color: var(--blanc);\n        }\n\n        .french-exercises-wrapper .btn-hint:hover {\n            background: #d97706;\n        }\n\n        .french-exercises-wrapper .btn:disabled {\n            opacity: 0.5;\n            cursor: not-allowed;\n        }\n\n        .french-exercises-wrapper .feedback-panel {\n            margin-top: 25px;\n            padding: 20px 24px;\n            border-radius: 12px;\n            font-size: 0.95rem;\n            font-weight: 500;\n            display: none;\n            border-left: 4px solid;\n        }\n\n        .french-exercises-wrapper .feedback-panel.show {\n            display: block;\n            animation: slideIn 0.3s ease;\n        }\n\n        .french-exercises-wrapper .feedback-panel.success {\n            background: var(--vert-clair);\n            border-color: var(--vert);\n            color: #065f46;\n        }\n\n        .french-exercises-wrapper .feedback-panel.partial {\n            background: var(--orange-clair);\n            border-color: var(--orange);\n            color: #92400e;\n        }\n\n        .french-exercises-wrapper .feedback-panel.error {\n            background: var(--rouge-clair);\n            border-color: var(--rouge);\n            color: #991b1b;\n        }\n\n        .french-exercises-wrapper .score-summary {\n            background: var(--blanc);\n            border: 2px solid var(--gris-clair);\n            border-radius: 12px;\n            padding: 25px;\n            margin-top: 25px;\n            display: none;\n        }\n\n        .french-exercises-wrapper .score-summary.show {\n            display: grid;\n            grid-template-columns: auto 1fr auto;\n            align-items: center;\n            gap: 20px;\n            animation: scaleIn 0.4s ease;\n        }\n\n        @keyframes scaleIn {\n            from {\n                opacity: 0;\n                transform: scale(0.95);\n            }\n            to {\n                opacity: 1;\n                transform: scale(1);\n            }\n        }\n\n        .french-exercises-wrapper .score-icon {\n            font-size: 2.5rem;\n        }\n\n        .french-exercises-wrapper .score-details h4 {\n            font-size: 0.875rem;\n            color: var(--gris);\n            margin-bottom: 6px;\n            text-transform: uppercase;\n            letter-spacing: 0.5px;\n        }\n\n        .french-exercises-wrapper .score-details .score-text {\n            font-size: 1.1rem;\n            color: var(--gris-fonce);\n            font-weight: 600;\n        }\n\n        .french-exercises-wrapper .score-badge {\n            font-size: 2rem;\n            font-weight: 700;\n            color: var(--bleu);\n        }\n\n        .french-exercises-wrapper .dialogue-container {\n            background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n            border: 2px solid var(--gris-clair);\n            border-radius: 12px;\n            padding: 30px;\n            margin: 20px 0;\n        }\n\n        .french-exercises-wrapper .dialogue-line {\n            padding: 14px 0;\n            font-size: 1.05rem;\n            line-height: 2;\n            color: var(--noir);\n        }\n\n        .french-exercises-wrapper .dialogue-line strong {\n            color: var(--bleu);\n            font-weight: 600;\n        }\n\n        .french-exercises-wrapper .completion-modal {\n            position: fixed;\n            top: 0;\n            left: 0;\n            right: 0;\n            bottom: 0;\n            background: rgba(0, 0, 0, 0.7);\n            display: none;\n            align-items: center;\n            justify-content: center;\n            z-index: 999999;\n            padding: 20px;\n        }\n\n        .french-exercises-wrapper .completion-modal.show {\n            display: flex;\n            animation: fadeIn 0.3s ease;\n        }\n\n        .french-exercises-wrapper .completion-content {\n            background: var(--blanc);\n            border-radius: 20px;\n            padding: 50px;\n            max-width: 600px;\n            width: 100%;\n            text-align: center;\n            animation: scaleIn 0.4s ease;\n        }\n\n        .french-exercises-wrapper .completion-icon {\n            font-size: 5rem;\n            margin-bottom: 20px;\n        }\n\n        .french-exercises-wrapper .completion-title {\n            font-family: 'EB Garamond', serif;\n            font-size: 2.5rem;\n            font-weight: 700;\n            color: var(--noir);\n            margin-bottom: 15px;\n        }\n\n        .french-exercises-wrapper .completion-message {\n            font-size: 1.1rem;\n            color: var(--gris);\n            margin-bottom: 35px;\n            line-height: 1.7;\n        }\n\n        .french-exercises-wrapper .final-stats {\n            display: grid;\n            grid-template-columns: repeat(3, 1fr);\n            gap: 20px;\n            margin-bottom: 35px;\n        }\n\n        .french-exercises-wrapper .final-stat {\n            background: var(--gris-ultra-clair);\n            padding: 20px;\n            border-radius: 12px;\n        }\n\n        .french-exercises-wrapper .final-stat-value {\n            font-size: 2rem;\n            font-weight: 700;\n            color: var(--bleu);\n            margin-bottom: 5px;\n        }\n\n        .french-exercises-wrapper .final-stat-label {\n            font-size: 0.875rem;\n            color: var(--gris);\n            text-transform: uppercase;\n            letter-spacing: 0.5px;\n        }\n\n        .french-exercises-wrapper .close-modal-btn {\n            background: var(--bleu);\n            color: var(--blanc);\n            border: none;\n            padding: 15px 40px;\n            border-radius: 10px;\n            font-size: 1rem;\n            font-weight: 600;\n            cursor: pointer;\n            transition: all 0.2s ease;\n        }\n\n        .french-exercises-wrapper .close-modal-btn:hover {\n            background: var(--bleu-fonce);\n            transform: translateY(-2px);\n            box-shadow: 0 8px 16px rgba(59, 130, 246, 0.3);\n        }\n\n        .french-exercises-wrapper .quick-nav {\n            background: var(--blanc);\n            border-radius: 12px;\n            padding: 20px;\n            margin-bottom: 30px;\n            border: 1px solid var(--gris-clair);\n        }\n\n        .french-exercises-wrapper .quick-nav-title {\n            font-size: 0.875rem;\n            font-weight: 600;\n            color: var(--gris);\n            margin-bottom: 15px;\n            text-transform: uppercase;\n            letter-spacing: 0.5px;\n        }\n\n        .french-exercises-wrapper .quick-nav-links {\n            display: flex;\n            gap: 10px;\n            flex-wrap: wrap;\n        }\n\n        .french-exercises-wrapper .nav-link {\n            padding: 8px 16px;\n            background: var(--gris-ultra-clair);\n            color: var(--gris-fonce);\n            border-radius: 8px;\n            text-decoration: none;\n            font-size: 0.9rem;\n            font-weight: 500;\n            transition: all 0.2s ease;\n        }\n\n        .french-exercises-wrapper .nav-link:hover {\n            background: var(--bleu);\n            color: var(--blanc);\n        }\n\n        @media (max-width: 768px) {\n            .french-exercises-wrapper .top-bar-content {\n                flex-direction: column;\n                align-items: stretch;\n            }\n\n            .french-exercises-wrapper .progress-info {\n                flex-direction: column;\n                gap: 15px;\n            }\n\n            .french-exercises-wrapper .stats-display {\n                justify-content: space-around;\n            }\n\n            .french-exercises-wrapper .exercise-card {\n                padding: 25px 20px;\n            }\n\n            .french-exercises-wrapper .exercise-header {\n                flex-direction: column;\n            }\n\n            .french-exercises-wrapper .exercise-status {\n                align-items: flex-start;\n                margin-top: 15px;\n            }\n\n            .french-exercises-wrapper .exercise-title {\n                font-size: 1.5rem;\n            }\n\n            .french-exercises-wrapper .inline-input {\n                display: block;\n                width: 100%;\n                margin: 10px 0;\n            }\n\n            .french-exercises-wrapper .action-buttons {\n                flex-direction: column;\n            }\n\n            .french-exercises-wrapper .btn {\n                width: 100%;\n                justify-content: center;\n            }\n\n            .french-exercises-wrapper .score-summary.show {\n                grid-template-columns: 1fr;\n                text-align: center;\n            }\n\n            .french-exercises-wrapper .final-stats {\n                grid-template-columns: 1fr;\n            }\n\n            .french-exercises-wrapper .completion-content {\n                padding: 35px 25px;\n            }\n\n            .french-exercises-wrapper .completion-title {\n                font-size: 1.8rem;\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n\n<div class=\"french-exercises-wrapper\">\n    <!-- Top Progress Bar -->\n    <div class=\"top-bar\">\n        <div class=\"top-bar-content\">\n            <div class=\"progress-info\">\n                <div class=\"progress-section\">\n                    <span class=\"progress-label\">Progression<\/span>\n                    <div class=\"progress-bar-mini\">\n                        <div class=\"progress-fill-mini\" id=\"globalProgress\"><\/div>\n                    <\/div>\n                    <span class=\"progress-percentage\" id=\"progressPercent\">0%<\/span>\n                <\/div>\n                <div class=\"timer-display\" id=\"timerDisplay\">00:00<\/div>\n            <\/div>\n            <div class=\"stats-display\">\n                <div class=\"stat-item\">\n                    <div class=\"stat-value\" id=\"correctCount\">0<\/div>\n                    <div class=\"stat-label\">Correctes<\/div>\n                <\/div>\n                <div class=\"stat-item\">\n                    <div class=\"stat-value\" id=\"totalAttempts\">0<\/div>\n                    <div class=\"stat-label\">Tentatives<\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"container\">\n\n        <!-- Quick Navigation -->\n        <div class=\"quick-nav\">\n            <div class=\"quick-nav-title\">Navigation rapide<\/div>\n            <div class=\"quick-nav-links\">\n                <a href=\"#ex1\" class=\"nav-link\">Exercice 1 : Pronoms<\/a>\n                <a href=\"#ex2\" class=\"nav-link\">Exercice 2 : Avoir\/\u00catre<\/a>\n                <a href=\"#ex3\" class=\"nav-link\">Exercice 3 : Dialogue<\/a>\n            <\/div>\n        <\/div>\n\n        <!-- Exercice 1 -->\n        <div class=\"exercise-card\" id=\"ex1\">\n            <div class=\"exercise-header\">\n                <div class=\"exercise-info\">\n                    <span class=\"exercise-number\">Exercice 1<\/span>\n                    <h2 class=\"exercise-title\">Les Pronoms Sujets<\/h2>\n                    <p class=\"exercise-description\">Remplacez les groupes de personnes par le pronom sujet appropri\u00e9. Attention au genre et au nombre des personnes mentionn\u00e9es.<\/p>\n                <\/div>\n                <div class=\"exercise-status\">\n                    <span class=\"status-badge pending\" id=\"status-ex1\">Non commenc\u00e9<\/span>\n                <\/div>\n            <\/div>\n\n            <div class=\"question-grid\">\n                <div class=\"question-item\" id=\"q1-1-item\">\n                    <div class=\"question-header\">\n                        <span class=\"question-label\">Question 1<\/span>\n                        <span class=\"question-status\">Correct<\/span>\n                    <\/div>\n                    <div class=\"question-content\">\n                        Marc et Paul \u2192 <input type=\"text\" id=\"q1-1\" class=\"inline-input\" placeholder=\"pronom\"> sont fran\u00e7ais.\n                    <\/div>\n                    <div class=\"correction-info\" id=\"q1-1-correction\"><\/div>\n                <\/div>\n\n                <div class=\"question-item\" id=\"q1-2-item\">\n                    <div class=\"question-header\">\n                        <span class=\"question-label\">Question 2<\/span>\n                        <span class=\"question-status\">Correct<\/span>\n                    <\/div>\n                    <div class=\"question-content\">\n                        Marie et moi \u2192 <input type=\"text\" id=\"q1-2\" class=\"inline-input\" placeholder=\"pronom\"> avons 18 ans.\n                    <\/div>\n                    <div class=\"correction-info\" id=\"q1-2-correction\"><\/div>\n                <\/div>\n\n                <div class=\"question-item\" id=\"q1-3-item\">\n                    <div class=\"question-header\">\n                        <span class=\"question-label\">Question 3<\/span>\n                        <span class=\"question-status\">Correct<\/span>\n                    <\/div>\n                    <div class=\"question-content\">\n                        Sophie et Lucie \u2192 <input type=\"text\" id=\"q1-3\" class=\"inline-input\" placeholder=\"pronom\"> s&rsquo;appellent Sophie et Lucie.\n                    <\/div>\n                    <div class=\"correction-info\" id=\"q1-3-correction\"><\/div>\n                <\/div>\n\n                <div class=\"question-item\" id=\"q1-4-item\">\n                    <div class=\"question-header\">\n                        <span class=\"question-label\">Question 4<\/span>\n                        <span class=\"question-status\">Correct<\/span>\n                    <\/div>\n                    <div class=\"question-content\">\n                        Toi et Marc \u2192 <input type=\"text\" id=\"q1-4\" class=\"inline-input\" placeholder=\"pronom\"> \u00eates \u00e9tudiants.\n                    <\/div>\n                    <div class=\"correction-info\" id=\"q1-4-correction\"><\/div>\n                <\/div>\n\n                <div class=\"question-item\" id=\"q1-5-item\">\n                    <div class=\"question-header\">\n                        <span class=\"question-label\">Question 5<\/span>\n                        <span class=\"question-status\">Correct<\/span>\n                    <\/div>\n                    <div class=\"question-content\">\n                        Paul, Luc et Marc \u2192 <input type=\"text\" id=\"q1-5\" class=\"inline-input\" placeholder=\"pronom\"> sont dans la classe.\n                    <\/div>\n                    <div class=\"correction-info\" id=\"q1-5-correction\"><\/div>\n                <\/div>\n\n                <div class=\"question-item\" id=\"q1-6-item\">\n                    <div class=\"question-header\">\n                        <span class=\"question-label\">Question 6<\/span>\n                        <span class=\"question-status\">Correct<\/span>\n                    <\/div>\n                    <div class=\"question-content\">\n                        Marie, Sophie et Claire \u2192 <input type=\"text\" id=\"q1-6\" class=\"inline-input\" placeholder=\"pronom\"> parlent fran\u00e7ais.\n                    <\/div>\n                    <div class=\"correction-info\" id=\"q1-6-correction\"><\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"hint-box\" id=\"hint-ex1\">\n                <div class=\"hint-title\">Astuce pour les pronoms<\/div>\n                <div class=\"hint-content\">\n                    <strong>Ils<\/strong> = groupe masculin ou mixte \u2022 <strong>Elles<\/strong> = groupe enti\u00e8rement f\u00e9minin \u2022 <strong>Nous<\/strong> = inclut \u00ab\u00a0moi\u00a0\u00bb \u2022 <strong>Vous<\/strong> = inclut \u00ab\u00a0toi\u00a0\u00bb avec d&rsquo;autres personnes\n                <\/div>\n            <\/div>\n\n            <div class=\"action-buttons\">\n                <button class=\"btn btn-primary\" onclick=\"checkExercise1()\">V\u00e9rifier mes r\u00e9ponses<\/button>\n                <button class=\"btn btn-hint\" onclick=\"toggleHint('hint-ex1')\">Afficher l&rsquo;indice<\/button>\n                <button class=\"btn btn-secondary\" onclick=\"resetExercise1()\">R\u00e9initialiser<\/button>\n            <\/div>\n\n            <div class=\"feedback-panel\" id=\"feedback-ex1\"><\/div>\n            \n            <div class=\"score-summary\" id=\"score-ex1\">\n                <div class=\"score-icon\">&#x1f3af;<\/div>\n                <div class=\"score-details\">\n                    <h4>R\u00e9sultat<\/h4>\n                    <div class=\"score-text\" id=\"score-ex1-text\">0 sur 6 r\u00e9ponses correctes<\/div>\n                <\/div>\n                <div class=\"score-badge\" id=\"score-ex1-badge\">0%<\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Exercice 2 -->\n        <div class=\"exercise-card\" id=\"ex2\">\n            <div class=\"exercise-header\">\n                <div class=\"exercise-info\">\n                    <span class=\"exercise-number\">Exercice 2<\/span>\n                    <h2 class=\"exercise-title\">Avoir ou \u00catre ?<\/h2>\n                    <p class=\"exercise-description\">Choisissez la forme correcte du verbe <strong>Avoir<\/strong> ou <strong>\u00catre<\/strong>. N&rsquo;oubliez pas : pour l&rsquo;\u00e2ge, on utilise \u00ab\u00a0avoir\u00a0\u00bb en fran\u00e7ais.<\/p>\n                <\/div>\n                <div class=\"exercise-status\">\n                    <span class=\"status-badge pending\" id=\"status-ex2\">Non commenc\u00e9<\/span>\n                <\/div>\n            <\/div>\n\n            <div class=\"question-grid\">\n                <div class=\"question-item\" id=\"q2-1-item\">\n                    <div class=\"question-header\">\n                        <span class=\"question-label\">Question 1<\/span>\n                        <span class=\"question-status\">Correct<\/span>\n                    <\/div>\n                    <div class=\"question-content\">\n                        Vous <input type=\"text\" id=\"q2-1\" class=\"inline-input\" placeholder=\"verbe\"> quel \u00e2ge ? \u2014 J&rsquo;<input type=\"text\" id=\"q2-2\" class=\"inline-input\" placeholder=\"verbe\"> 20 ans.\n                    <\/div>\n                    <div class=\"correction-info\" id=\"q2-1-correction\"><\/div>\n                <\/div>\n\n                <div class=\"question-item\" id=\"q2-2-item\">\n                    <div class=\"question-header\">\n                        <span class=\"question-label\">Question 2<\/span>\n                        <span class=\"question-status\">Correct<\/span>\n                    <\/div>\n                    <div class=\"question-content\">\n                        Ils <input type=\"text\" id=\"q2-3\" class=\"inline-input\" placeholder=\"verbe\"> anglais, mais ils <input type=\"text\" id=\"q2-4\" class=\"inline-input\" placeholder=\"verbe\"> un passeport fran\u00e7ais.\n                    <\/div>\n                    <div class=\"correction-info\" id=\"q2-2-correction\"><\/div>\n                <\/div>\n\n                <div class=\"question-item\" id=\"q2-3-item\">\n                    <div class=\"question-header\">\n                        <span class=\"question-label\">Question 3<\/span>\n                        <span class=\"question-status\">Correct<\/span>\n                    <\/div>\n                    <div class=\"question-content\">\n                        Nous <input type=\"text\" id=\"q2-5\" class=\"inline-input\" placeholder=\"verbe\"> d&rsquo;accord avec vous.\n                    <\/div>\n                    <div class=\"correction-info\" id=\"q2-3-correction\"><\/div>\n                <\/div>\n\n                <div class=\"question-item\" id=\"q2-4-item\">\n                    <div class=\"question-header\">\n                        <span class=\"question-label\">Question 4<\/span>\n                        <span class=\"question-status\">Correct<\/span>\n                    <\/div>\n                    <div class=\"question-content\">\n                        Elle <input type=\"text\" id=\"q2-6\" class=\"inline-input\" placeholder=\"verbe\"> fran\u00e7aise et elle <input type=\"text\" id=\"q2-7\" class=\"inline-input\" placeholder=\"verbe\"> 25 ans.\n                    <\/div>\n                    <div class=\"correction-info\" id=\"q2-4-correction\"><\/div>\n                <\/div>\n\n                <div class=\"question-item\" id=\"q2-5-item\">\n                    <div class=\"question-header\">\n                        <span class=\"question-label\">Question 5<\/span>\n                        <span class=\"question-status\">Correct<\/span>\n                    <\/div>\n                    <div class=\"question-content\">\n                        Tu <input type=\"text\" id=\"q2-8\" class=\"inline-input\" placeholder=\"verbe\"> \u00e9tudiant ? \u2014 Oui, je<input type=\"text\" id=\"q2-9\" class=\"inline-input\" placeholder=\"verbe\"> \u00e9tudiant.\n                    <\/div>\n                    <div class=\"correction-info\" id=\"q2-5-correction\"><\/div>\n                <\/div>\n\n                <div class=\"question-item\" id=\"q2-6-item\">\n                    <div class=\"question-header\">\n                        <span class=\"question-label\">Question 6<\/span>\n                        <span class=\"question-status\">Correct<\/span>\n                    <\/div>\n                    <div class=\"question-content\">\n                        Vous <input type=\"text\" id=\"q2-10\" class=\"inline-input\" placeholder=\"verbe\"> un fr\u00e8re ? \u2014 Non, mais j&rsquo;<input type=\"text\" id=\"q2-11\" class=\"inline-input\" placeholder=\"verbe\"> une s\u0153ur.\n                    <\/div>\n                    <div class=\"correction-info\" id=\"q2-6-correction\"><\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"hint-box\" id=\"hint-ex2\">\n                <div class=\"hint-title\">R\u00e8gles d&rsquo;utilisation<\/div>\n                <div class=\"hint-content\">\n                    <strong>\u00caTRE<\/strong> : nationalit\u00e9, profession, \u00e9tat, caract\u00e9ristique<br>\n                    <strong>AVOIR<\/strong> : \u00e2ge, possession, expressions (avoir faim, avoir raison, etc.)\n                <\/div>\n            <\/div>\n\n            <div class=\"action-buttons\">\n                <button class=\"btn btn-primary\" onclick=\"checkExercise2()\">V\u00e9rifier mes r\u00e9ponses<\/button>\n                <button class=\"btn btn-hint\" onclick=\"toggleHint('hint-ex2')\">Afficher l&rsquo;indice<\/button>\n                <button class=\"btn btn-secondary\" onclick=\"resetExercise2()\">R\u00e9initialiser<\/button>\n            <\/div>\n\n            <div class=\"feedback-panel\" id=\"feedback-ex2\"><\/div>\n            \n            <div class=\"score-summary\" id=\"score-ex2\">\n                <div class=\"score-icon\">&#x1f3af;<\/div>\n                <div class=\"score-details\">\n                    <h4>R\u00e9sultat<\/h4>\n                    <div class=\"score-text\" id=\"score-ex2-text\">0 sur 11 r\u00e9ponses correctes<\/div>\n                <\/div>\n                <div class=\"score-badge\" id=\"score-ex2-badge\">0%<\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Exercice 3 -->\n        <div class=\"exercise-card\" id=\"ex3\">\n            <div class=\"exercise-header\">\n                <div class=\"exercise-info\">\n                    <span class=\"exercise-number\">Exercice 3<\/span>\n                    <h2 class=\"exercise-title\">Dialogue \u00e0 compl\u00e9ter<\/h2>\n                    <p class=\"exercise-description\">Compl\u00e9tez ce dialogue naturel en utilisant les verbes <strong>\u00eatre<\/strong>, <strong>avoir<\/strong> et <strong>s&rsquo;appeler<\/strong> aux formes appropri\u00e9es.<\/p>\n                <\/div>\n                <div class=\"exercise-status\">\n                    <span class=\"status-badge pending\" id=\"status-ex3\">Non commenc\u00e9<\/span>\n                <\/div>\n            <\/div>\n\n            <div class=\"dialogue-container\">\n                <div class=\"dialogue-line\">\n                    <strong>\u2014<\/strong> Bonjour ! Comment vous <input type=\"text\" id=\"q3-1\" class=\"inline-input\" placeholder=\"verbe\"> ?\n                <\/div>\n                <div class=\"dialogue-line\">\n                    <strong>\u2014<\/strong> Je <input type=\"text\" id=\"q3-2\" class=\"inline-input\" placeholder=\"verbe\"> Sophie. Et vous ?\n                <\/div>\n                <div class=\"dialogue-line\">\n                    <strong>\u2014<\/strong> Moi, je <input type=\"text\" id=\"q3-3\" class=\"inline-input\" placeholder=\"verbe\"> Marco. Vous <input type=\"text\" id=\"q3-4\" class=\"inline-input\" placeholder=\"verbe\"> fran\u00e7aise ?\n                <\/div>\n                <div class=\"dialogue-line\">\n                    <strong>\u2014<\/strong> Oui, je <input type=\"text\" id=\"q3-5\" class=\"inline-input\" placeholder=\"verbe\"> fran\u00e7aise. Et vous, vous <input type=\"text\" id=\"q3-6\" class=\"inline-input\" placeholder=\"verbe\"> italien ?\n                <\/div>\n                <div class=\"dialogue-line\">\n                    <strong>\u2014<\/strong> Oui, j&rsquo;<input type=\"text\" id=\"q3-7\" class=\"inline-input\" placeholder=\"verbe\"> 25 ans et je <input type=\"text\" id=\"q3-8\" class=\"inline-input\" placeholder=\"verbe\"> professeur.\n                <\/div>\n                <div class=\"dialogue-line\">\n                    <strong>\u2014<\/strong> Enchant\u00e9e ! Moi, j&rsquo;<input type=\"text\" id=\"q3-9\" class=\"inline-input\" placeholder=\"verbe\"> 22 ans et je <input type=\"text\" id=\"q3-10\" class=\"inline-input\" placeholder=\"verbe\"> \u00e9tudiante.\n                <\/div>\n            <\/div>\n\n            <div class=\"hint-box\" id=\"hint-ex3\">\n                <div class=\"hint-title\">Conjugaison de s&rsquo;appeler<\/div>\n                <div class=\"hint-content\">\n                    N&rsquo;oubliez pas les pronoms r\u00e9fl\u00e9chis : <strong>je m&rsquo;appelle<\/strong>, <strong>tu t&rsquo;appelles<\/strong>, <strong>il\/elle s&rsquo;appelle<\/strong>, <strong>vous vous appelez<\/strong>\n                <\/div>\n            <\/div>\n\n            <div class=\"action-buttons\">\n                <button class=\"btn btn-primary\" onclick=\"checkExercise3()\">V\u00e9rifier mes r\u00e9ponses<\/button>\n                <button class=\"btn btn-hint\" onclick=\"toggleHint('hint-ex3')\">Afficher l&rsquo;indice<\/button>\n                <button class=\"btn btn-secondary\" onclick=\"resetExercise3()\">R\u00e9initialiser<\/button>\n            <\/div>\n\n            <div class=\"feedback-panel\" id=\"feedback-ex3\"><\/div>\n            \n            <div class=\"score-summary\" id=\"score-ex3\">\n                <div class=\"score-icon\">&#x1f3af;<\/div>\n                <div class=\"score-details\">\n                    <h4>R\u00e9sultat<\/h4>\n                    <div class=\"score-text\" id=\"score-ex3-text\">0 sur 10 r\u00e9ponses correctes<\/div>\n                <\/div>\n                <div class=\"score-badge\" id=\"score-ex3-badge\">0%<\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n\n    <!-- Completion Modal -->\n    <div class=\"completion-modal\" id=\"completionModal\">\n        <div class=\"completion-content\">\n            <div class=\"completion-icon\">&#x1f389;<\/div>\n            <h2 class=\"completion-title\">Bravo !<\/h2>\n            <p class=\"completion-message\">Vous avez termin\u00e9 tous les exercices avec succ\u00e8s. Vous ma\u00eetrisez maintenant les bases essentielles de la grammaire fran\u00e7aise !<\/p>\n            \n            <div class=\"final-stats\">\n                <div class=\"final-stat\">\n                    <div class=\"final-stat-value\" id=\"finalScore\">0%<\/div>\n                    <div class=\"final-stat-label\">Score Total<\/div>\n                <\/div>\n                <div class=\"final-stat\">\n                    <div class=\"final-stat-value\" id=\"finalCorrect\">0\/27<\/div>\n                    <div class=\"final-stat-label\">R\u00e9ponses Correctes<\/div>\n                <\/div>\n                <div class=\"final-stat\">\n                    <div class=\"final-stat-value\" id=\"finalTime\">00:00<\/div>\n                    <div class=\"final-stat-label\">Temps Total<\/div>\n                <\/div>\n            <\/div>\n\n            <button class=\"close-modal-btn\" onclick=\"closeCompletionModal()\">Continuer<\/button>\n        <\/div>\n    <\/div>\n<\/div>\n\n    <script>\n        \/\/ Global state\n        let startTime = Date.now();\n        let timerInterval;\n        let globalStats = {\n            totalCorrect: 0,\n            totalAttempts: 0,\n            exercisesCompleted: 0\n        };\n\n        \/\/ Timer\n        function updateTimer() {\n            const elapsed = Math.floor((Date.now() - startTime) \/ 1000);\n            const minutes = Math.floor(elapsed \/ 60);\n            const seconds = elapsed % 60;\n            const timeStr = `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;\n            document.getElementById('timerDisplay').textContent = timeStr;\n            return timeStr;\n        }\n\n        timerInterval = setInterval(updateTimer, 1000);\n\n        \/\/ Update global progress\n        function updateGlobalProgress() {\n            const progress = (globalStats.exercisesCompleted \/ 3) * 100;\n            document.getElementById('globalProgress').style.width = progress + '%';\n            document.getElementById('progressPercent').textContent = Math.round(progress) + '%';\n            document.getElementById('correctCount').textContent = globalStats.totalCorrect;\n            document.getElementById('totalAttempts').textContent = globalStats.totalAttempts;\n        }\n\n        \/\/ Utility functions\n        function normalize(str) {\n            return str.toLowerCase().trim().replace(\/'\/g, \"'\").replace(\/\\s+\/g, ' ');\n        }\n\n        function toggleHint(hintId) {\n            const hint = document.getElementById(hintId);\n            hint.classList.toggle('show');\n        }\n\n        function updateExerciseStatus(exerciseNum, status) {\n            const statusEl = document.getElementById(`status-ex${exerciseNum}`);\n            statusEl.className = `status-badge ${status}`;\n            const statusText = {\n                'pending': 'Non commenc\u00e9',\n                'in-progress': 'En cours',\n                'completed': 'Termin\u00e9'\n            };\n            statusEl.textContent = statusText[status];\n        }\n\n        \/\/ Track input changes\n        document.querySelectorAll('input[type=\"text\"]').forEach(input => {\n            input.addEventListener('input', function() {\n                const exerciseNum = this.id.split('-')[0].replace('q', '');\n                if (this.value.trim()) {\n                    updateExerciseStatus(exerciseNum, 'in-progress');\n                }\n            });\n        });\n\n        \/\/ Exercise 1: Pronouns\n        function checkExercise1() {\n            globalStats.totalAttempts++;\n            const answers = {\n                'q1-1': {correct: 'ils', explanation: 'Marc et Paul = deux hommes = ILS'},\n                'q1-2': {correct: 'nous', explanation: 'Marie et moi = inclut \"moi\" = NOUS'},\n                'q1-3': {correct: 'elles', explanation: 'Sophie et Lucie = deux femmes = ELLES'},\n                'q1-4': {correct: 'vous', explanation: 'Toi et Marc = inclut \"toi\" = VOUS'},\n                'q1-5': {correct: 'ils', explanation: 'Paul, Luc et Marc = trois hommes = ILS'},\n                'q1-6': {correct: 'elles', explanation: 'Marie, Sophie et Claire = trois femmes = ELLES'}\n            };\n\n            let correct = 0;\n            const total = Object.keys(answers).length;\n\n            for (let id in answers) {\n                const input = document.getElementById(id);\n                const item = document.getElementById(id + '-item');\n                const correction = document.getElementById(id + '-correction');\n                const userAnswer = normalize(input.value);\n                const correctAnswer = answers[id].correct;\n\n                if (userAnswer === correctAnswer) {\n                    input.classList.remove('incorrect');\n                    input.classList.add('correct');\n                    item.classList.remove('incorrect');\n                    item.classList.add('correct');\n                    correction.classList.remove('show');\n                    correct++;\n                } else {\n                    input.classList.remove('correct');\n                    input.classList.add('incorrect');\n                    item.classList.remove('correct');\n                    item.classList.add('incorrect');\n                    correction.innerHTML = `<strong>R\u00e9ponse attendue :<\/strong> ${correctAnswer} \u2014 ${answers[id].explanation}`;\n                    correction.classList.add('show');\n                }\n            }\n\n            \/\/ Update score display\n            const percentage = Math.round((correct \/ total) * 100);\n            document.getElementById('score-ex1-text').textContent = `${correct} sur ${total} r\u00e9ponses correctes`;\n            document.getElementById('score-ex1-badge').textContent = percentage + '%';\n            document.getElementById('score-ex1').classList.add('show');\n\n            \/\/ Update feedback\n            const feedback = document.getElementById('feedback-ex1');\n            if (percentage === 100) {\n                feedback.className = 'feedback-panel success show';\n                feedback.textContent = '\u2713 Parfait ! Vous ma\u00eetrisez parfaitement les pronoms sujets.';\n                updateExerciseStatus(1, 'completed');\n                if (globalStats.exercisesCompleted < 1) {\n                    globalStats.exercisesCompleted = 1;\n                    globalStats.totalCorrect += correct;\n                }\n            } else if (percentage >= 70) {\n                feedback.className = 'feedback-panel partial show';\n                feedback.textContent = `Bon travail ! ${correct} sur ${total} r\u00e9ponses correctes. Consultez les corrections ci-dessus.`;\n            } else {\n                feedback.className = 'feedback-panel error show';\n                feedback.textContent = `${correct} sur ${total} r\u00e9ponses correctes. Consultez l'indice et les corrections pour progresser.`;\n            }\n\n            updateGlobalProgress();\n            checkCompletion();\n        }\n\n        function resetExercise1() {\n            const ids = ['q1-1', 'q1-2', 'q1-3', 'q1-4', 'q1-5', 'q1-6'];\n            ids.forEach(id => {\n                const input = document.getElementById(id);\n                const item = document.getElementById(id + '-item');\n                const correction = document.getElementById(id + '-correction');\n                input.value = '';\n                input.classList.remove('correct', 'incorrect');\n                item.classList.remove('correct', 'incorrect');\n                correction.classList.remove('show');\n            });\n            document.getElementById('feedback-ex1').classList.remove('show');\n            document.getElementById('score-ex1').classList.remove('show');\n            document.getElementById('hint-ex1').classList.remove('show');\n            updateExerciseStatus(1, 'pending');\n        }\n\n        \/\/ Exercise 2: Avoir\/\u00catre\n        function checkExercise2() {\n            globalStats.totalAttempts++;\n            const answers = {\n                'q2-1': {correct: 'avez', exp: '\u00e2ge \u2192 AVOIR'},\n                'q2-2': {correct: 'ai', exp: '\u00e2ge \u2192 AVOIR'},\n                'q2-3': {correct: 'sont', exp: 'nationalit\u00e9 \u2192 \u00caTRE'},\n                'q2-4': {correct: 'ont', exp: 'possession \u2192 AVOIR'},\n                'q2-5': {correct: 'sommes', exp: '\u00e9tat \u2192 \u00caTRE'},\n                'q2-6': {correct: 'est', exp: 'nationalit\u00e9 \u2192 \u00caTRE'},\n                'q2-7': {correct: 'a', exp: '\u00e2ge \u2192 AVOIR'},\n                'q2-8': {correct: 'es', exp: 'profession \u2192 \u00caTRE'},\n                'q2-9': {correct: 'suis', exp: 'profession \u2192 \u00caTRE'},\n                'q2-10': {correct: 'avez', exp: 'possession \u2192 AVOIR'},\n                'q2-11': {correct: 'ai', exp: 'possession \u2192 AVOIR'}\n            };\n\n            let correct = 0;\n            const total = Object.keys(answers).length;\n\n            for (let id in answers) {\n                const input = document.getElementById(id);\n                const userAnswer = normalize(input.value);\n\n                if (userAnswer === answers[id].correct) {\n                    input.classList.remove('incorrect');\n                    input.classList.add('correct');\n                    correct++;\n                } else {\n                    input.classList.remove('correct');\n                    input.classList.add('incorrect');\n                }\n            }\n\n            \/\/ Update question items\n            const questionGroups = [\n                {item: 'q2-1-item', inputs: ['q2-1', 'q2-2'], correction: 'q2-1-correction', text: 'avez \/ ai'},\n                {item: 'q2-2-item', inputs: ['q2-3', 'q2-4'], correction: 'q2-2-correction', text: 'sont \/ ont'},\n                {item: 'q2-3-item', inputs: ['q2-5'], correction: 'q2-3-correction', text: 'sommes'},\n                {item: 'q2-4-item', inputs: ['q2-6', 'q2-7'], correction: 'q2-4-correction', text: 'est \/ a'},\n                {item: 'q2-5-item', inputs: ['q2-8', 'q2-9'], correction: 'q2-5-correction', text: 'es \/ suis'},\n                {item: 'q2-6-item', inputs: ['q2-10', 'q2-11'], correction: 'q2-6-correction', text: 'avez \/ ai'}\n            ];\n\n            questionGroups.forEach(group => {\n                const item = document.getElementById(group.item);\n                const correction = document.getElementById(group.correction);\n                const allCorrect = group.inputs.every(id => \n                    document.getElementById(id).classList.contains('correct')\n                );\n\n                if (allCorrect) {\n                    item.classList.add('correct');\n                    item.classList.remove('incorrect');\n                    correction.classList.remove('show');\n                } else {\n                    item.classList.add('incorrect');\n                    item.classList.remove('correct');\n                    correction.innerHTML = `<strong>R\u00e9ponses attendues :<\/strong> ${group.text}`;\n                    correction.classList.add('show');\n                }\n            });\n\n            \/\/ Update score\n            const percentage = Math.round((correct \/ total) * 100);\n            document.getElementById('score-ex2-text').textContent = `${correct} sur ${total} r\u00e9ponses correctes`;\n            document.getElementById('score-ex2-badge').textContent = percentage + '%';\n            document.getElementById('score-ex2').classList.add('show');\n\n            \/\/ Update feedback\n            const feedback = document.getElementById('feedback-ex2');\n            if (percentage === 100) {\n                feedback.className = 'feedback-panel success show';\n                feedback.textContent = '\u2713 Excellent ! Vous distinguez parfaitement \u00eatre et avoir.';\n                updateExerciseStatus(2, 'completed');\n                if (globalStats.exercisesCompleted < 2) {\n                    globalStats.exercisesCompleted = 2;\n                    globalStats.totalCorrect += correct;\n                }\n            } else if (percentage >= 70) {\n                feedback.className = 'feedback-panel partial show';\n                feedback.textContent = `Bon r\u00e9sultat ! ${correct} sur ${total} correctes. Revoyez les corrections.`;\n            } else {\n                feedback.className = 'feedback-panel error show';\n                feedback.textContent = `${correct} sur ${total} correctes. Rappelez-vous : l'\u00e2ge utilise AVOIR.`;\n            }\n\n            updateGlobalProgress();\n            checkCompletion();\n        }\n\n        function resetExercise2() {\n            const ids = ['q2-1', 'q2-2', 'q2-3', 'q2-4', 'q2-5', 'q2-6', 'q2-7', 'q2-8', 'q2-9', 'q2-10', 'q2-11'];\n            ids.forEach(id => {\n                const input = document.getElementById(id);\n                input.value = '';\n                input.classList.remove('correct', 'incorrect');\n            });\n\n            const items = ['q2-1-item', 'q2-2-item', 'q2-3-item', 'q2-4-item', 'q2-5-item', 'q2-6-item'];\n            items.forEach(id => {\n                const item = document.getElementById(id);\n                const correction = document.getElementById(id.replace('-item', '-correction'));\n                item.classList.remove('correct', 'incorrect');\n                correction.classList.remove('show');\n            });\n\n            document.getElementById('feedback-ex2').classList.remove('show');\n            document.getElementById('score-ex2').classList.remove('show');\n            document.getElementById('hint-ex2').classList.remove('show');\n            updateExerciseStatus(2, 'pending');\n        }\n\n        \/\/ Exercise 3: Dialogue\n        function checkExercise3() {\n            globalStats.totalAttempts++;\n            const answers = {\n                'q3-1': 'vous appelez',\n                'q3-2': \"m'appelle\",\n                'q3-3': \"m'appelle\",\n                'q3-4': '\u00eates',\n                'q3-5': 'suis',\n                'q3-6': '\u00eates',\n                'q3-7': 'ai',\n                'q3-8': 'suis',\n                'q3-9': 'ai',\n                'q3-10': 'suis'\n            };\n\n            let correct = 0;\n            const total = Object.keys(answers).length;\n\n            for (let id in answers) {\n                const input = document.getElementById(id);\n                const userAnswer = normalize(input.value);\n\n                if (userAnswer === answers[id]) {\n                    input.classList.remove('incorrect');\n                    input.classList.add('correct');\n                    correct++;\n                } else {\n                    input.classList.remove('correct');\n                    input.classList.add('incorrect');\n                }\n            }\n\n            \/\/ Update score\n            const percentage = Math.round((correct \/ total) * 100);\n            document.getElementById('score-ex3-text').textContent = `${correct} sur ${total} r\u00e9ponses correctes`;\n            document.getElementById('score-ex3-badge').textContent = percentage + '%';\n            document.getElementById('score-ex3').classList.add('show');\n\n            \/\/ Update feedback\n            const feedback = document.getElementById('feedback-ex3');\n            if (percentage === 100) {\n                feedback.className = 'feedback-panel success show';\n                feedback.textContent = '\u2713 Parfait ! Vous pouvez maintenant tenir une conversation de pr\u00e9sentation.';\n                updateExerciseStatus(3, 'completed');\n                if (globalStats.exercisesCompleted < 3) {\n                    globalStats.exercisesCompleted = 3;\n                    globalStats.totalCorrect += correct;\n                }\n            } else if (percentage >= 70) {\n                feedback.className = 'feedback-panel partial show';\n                feedback.textContent = `Bien jou\u00e9 ! ${correct} sur ${total} correctes. Presque parfait !`;\n            } else {\n                feedback.className = 'feedback-panel error show';\n                feedback.textContent = `${correct} sur ${total} correctes. Attention aux pronoms r\u00e9fl\u00e9chis avec s'appeler.`;\n            }\n\n            updateGlobalProgress();\n            checkCompletion();\n        }\n\n        function resetExercise3() {\n            const ids = ['q3-1', 'q3-2', 'q3-3', 'q3-4', 'q3-5', 'q3-6', 'q3-7', 'q3-8', 'q3-9', 'q3-10'];\n            ids.forEach(id => {\n                const input = document.getElementById(id);\n                input.value = '';\n                input.classList.remove('correct', 'incorrect');\n            });\n            document.getElementById('feedback-ex3').classList.remove('show');\n            document.getElementById('score-ex3').classList.remove('show');\n            document.getElementById('hint-ex3').classList.remove('show');\n            updateExerciseStatus(3, 'pending');\n        }\n\n        \/\/ Check completion\n        function checkCompletion() {\n            if (globalStats.exercisesCompleted === 3) {\n                clearInterval(timerInterval);\n                const timeStr = updateTimer();\n                const totalQuestions = 27;\n                const percentage = Math.round((globalStats.totalCorrect \/ totalQuestions) * 100);\n\n                document.getElementById('finalScore').textContent = percentage + '%';\n                document.getElementById('finalCorrect').textContent = `${globalStats.totalCorrect}\/${totalQuestions}`;\n                document.getElementById('finalTime').textContent = timeStr;\n\n                setTimeout(() => {\n                    document.getElementById('completionModal').classList.add('show');\n                }, 500);\n            }\n        }\n\n        function closeCompletionModal() {\n            document.getElementById('completionModal').classList.remove('show');\n        }\n\n        \/\/ Initialize\n        updateGlobalProgress();\n    <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Illustration du Cours &#8211; Les Bases du Fran\u00e7ais &#x1f1eb;&#x1f1f7; Les Bases du Fran\u00e7ais L&rsquo;Identit\u00e9 et la Grammaire Essentielle &#x1f465; Les Pronoms Sujets Je \/ J&rsquo; &hellip; <\/p>\n","protected":false},"author":1,"featured_media":5741,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"cybocfi_hide_featured_image":"yes","footnotes":""},"categories":[14],"tags":[96],"class_list":["post-5740","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gram","tag-niveau-a1"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Les pronoms sujets, \u00eatre, avoir et s&#039;appeler au pr\u00e9sent - MOddou FLE<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.estudiodefrances.com\/?p=5740\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Les pronoms sujets, \u00eatre, avoir et s&#039;appeler au pr\u00e9sent - MOddou FLE\" \/>\n<meta property=\"og:description\" content=\"Illustration du Cours &#8211; Les Bases du Fran\u00e7ais &#x1f1eb;&#x1f1f7; Les Bases du Fran\u00e7ais L&rsquo;Identit\u00e9 et la Grammaire Essentielle &#x1f465; Les Pronoms Sujets Je \/ J&rsquo; &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.estudiodefrances.com\/?p=5740\" \/>\n<meta property=\"og:site_name\" content=\"MOddou FLE\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/moddouFLE\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-31T17:02:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-31T17:34:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/cours-grammaire-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1214\" \/>\n\t<meta property=\"og:image:height\" content=\"1402\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"moddou\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@moddou\" \/>\n<meta name=\"twitter:site\" content=\"@moddou\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"moddou\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5740#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5740\"},\"author\":{\"name\":\"moddou\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#\\\/schema\\\/person\\\/88f4b73addd8170d9837c20fc1127e7c\"},\"headline\":\"Les pronoms sujets, \u00eatre, avoir et s&rsquo;appeler au pr\u00e9sent\",\"datePublished\":\"2026-01-31T17:02:57+00:00\",\"dateModified\":\"2026-01-31T17:34:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5740\"},\"wordCount\":740,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5740#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.estudiodefrances.com\\\/wp-content\\\/uploads\\\/cours-grammaire-1.jpg\",\"keywords\":[\"Niveau A1\"],\"articleSection\":[\"grammaire\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5740#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5740\",\"url\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5740\",\"name\":\"Les pronoms sujets, \u00eatre, avoir et s'appeler au pr\u00e9sent - MOddou FLE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5740#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5740#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.estudiodefrances.com\\\/wp-content\\\/uploads\\\/cours-grammaire-1.jpg\",\"datePublished\":\"2026-01-31T17:02:57+00:00\",\"dateModified\":\"2026-01-31T17:34:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5740#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5740\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5740#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.estudiodefrances.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Les pronoms sujets, \u00eatre, avoir et s&rsquo;appeler au pr\u00e9sent\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#website\",\"url\":\"https:\\\/\\\/www.estudiodefrances.com\\\/\",\"name\":\"MOddou FLE\",\"description\":\"Exercices et jeux pour apprendre le fran\u00e7ais\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#organization\",\"name\":\"MOddou FLE\",\"url\":\"https:\\\/\\\/www.estudiodefrances.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.estudiodefrances.com\\\/wp-content\\\/uploads\\\/cropped-Capture-de\u0301cran-2013-09-04-a\u0300-00.08.43-1.png\",\"contentUrl\":\"https:\\\/\\\/www.estudiodefrances.com\\\/wp-content\\\/uploads\\\/cropped-Capture-de\u0301cran-2013-09-04-a\u0300-00.08.43-1.png\",\"width\":68,\"height\":79,\"caption\":\"MOddou FLE\"},\"image\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/moddouFLE\\\/\",\"https:\\\/\\\/x.com\\\/moddou\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#\\\/schema\\\/person\\\/88f4b73addd8170d9837c20fc1127e7c\",\"name\":\"moddou\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4a3fcfa351701fcac2c15731162f30826ff6dc6290b4ca18e8e3f3b419e885c4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4a3fcfa351701fcac2c15731162f30826ff6dc6290b4ca18e8e3f3b419e885c4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4a3fcfa351701fcac2c15731162f30826ff6dc6290b4ca18e8e3f3b419e885c4?s=96&d=mm&r=g\",\"caption\":\"moddou\"},\"sameAs\":[\"http:\\\/\\\/www.estudiodefrances.com\"],\"url\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Les pronoms sujets, \u00eatre, avoir et s'appeler au pr\u00e9sent - MOddou FLE","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.estudiodefrances.com\/?p=5740","og_locale":"fr_FR","og_type":"article","og_title":"Les pronoms sujets, \u00eatre, avoir et s'appeler au pr\u00e9sent - MOddou FLE","og_description":"Illustration du Cours &#8211; Les Bases du Fran\u00e7ais &#x1f1eb;&#x1f1f7; Les Bases du Fran\u00e7ais L&rsquo;Identit\u00e9 et la Grammaire Essentielle &#x1f465; Les Pronoms Sujets Je \/ J&rsquo; &hellip;","og_url":"https:\/\/www.estudiodefrances.com\/?p=5740","og_site_name":"MOddou FLE","article_publisher":"https:\/\/www.facebook.com\/moddouFLE\/","article_published_time":"2026-01-31T17:02:57+00:00","article_modified_time":"2026-01-31T17:34:53+00:00","og_image":[{"width":1214,"height":1402,"url":"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/cours-grammaire-1.jpg","type":"image\/jpeg"}],"author":"moddou","twitter_card":"summary_large_image","twitter_creator":"@moddou","twitter_site":"@moddou","twitter_misc":{"\u00c9crit par":"moddou","Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.estudiodefrances.com\/?p=5740#article","isPartOf":{"@id":"https:\/\/www.estudiodefrances.com\/?p=5740"},"author":{"name":"moddou","@id":"https:\/\/www.estudiodefrances.com\/#\/schema\/person\/88f4b73addd8170d9837c20fc1127e7c"},"headline":"Les pronoms sujets, \u00eatre, avoir et s&rsquo;appeler au pr\u00e9sent","datePublished":"2026-01-31T17:02:57+00:00","dateModified":"2026-01-31T17:34:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.estudiodefrances.com\/?p=5740"},"wordCount":740,"commentCount":0,"publisher":{"@id":"https:\/\/www.estudiodefrances.com\/#organization"},"image":{"@id":"https:\/\/www.estudiodefrances.com\/?p=5740#primaryimage"},"thumbnailUrl":"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/cours-grammaire-1.jpg","keywords":["Niveau A1"],"articleSection":["grammaire"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.estudiodefrances.com\/?p=5740#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.estudiodefrances.com\/?p=5740","url":"https:\/\/www.estudiodefrances.com\/?p=5740","name":"Les pronoms sujets, \u00eatre, avoir et s'appeler au pr\u00e9sent - MOddou FLE","isPartOf":{"@id":"https:\/\/www.estudiodefrances.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.estudiodefrances.com\/?p=5740#primaryimage"},"image":{"@id":"https:\/\/www.estudiodefrances.com\/?p=5740#primaryimage"},"thumbnailUrl":"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/cours-grammaire-1.jpg","datePublished":"2026-01-31T17:02:57+00:00","dateModified":"2026-01-31T17:34:53+00:00","breadcrumb":{"@id":"https:\/\/www.estudiodefrances.com\/?p=5740#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.estudiodefrances.com\/?p=5740"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.estudiodefrances.com\/?p=5740#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.estudiodefrances.com\/"},{"@type":"ListItem","position":2,"name":"Les pronoms sujets, \u00eatre, avoir et s&rsquo;appeler au pr\u00e9sent"}]},{"@type":"WebSite","@id":"https:\/\/www.estudiodefrances.com\/#website","url":"https:\/\/www.estudiodefrances.com\/","name":"MOddou FLE","description":"Exercices et jeux pour apprendre le fran\u00e7ais","publisher":{"@id":"https:\/\/www.estudiodefrances.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.estudiodefrances.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.estudiodefrances.com\/#organization","name":"MOddou FLE","url":"https:\/\/www.estudiodefrances.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.estudiodefrances.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/cropped-Capture-de\u0301cran-2013-09-04-a\u0300-00.08.43-1.png","contentUrl":"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/cropped-Capture-de\u0301cran-2013-09-04-a\u0300-00.08.43-1.png","width":68,"height":79,"caption":"MOddou FLE"},"image":{"@id":"https:\/\/www.estudiodefrances.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/moddouFLE\/","https:\/\/x.com\/moddou"]},{"@type":"Person","@id":"https:\/\/www.estudiodefrances.com\/#\/schema\/person\/88f4b73addd8170d9837c20fc1127e7c","name":"moddou","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/4a3fcfa351701fcac2c15731162f30826ff6dc6290b4ca18e8e3f3b419e885c4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4a3fcfa351701fcac2c15731162f30826ff6dc6290b4ca18e8e3f3b419e885c4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4a3fcfa351701fcac2c15731162f30826ff6dc6290b4ca18e8e3f3b419e885c4?s=96&d=mm&r=g","caption":"moddou"},"sameAs":["http:\/\/www.estudiodefrances.com"],"url":"https:\/\/www.estudiodefrances.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/posts\/5740","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5740"}],"version-history":[{"count":7,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/posts\/5740\/revisions"}],"predecessor-version":[{"id":5749,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/posts\/5740\/revisions\/5749"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/media\/5741"}],"wp:attachment":[{"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}