{"id":4538,"date":"2026-09-28T23:59:05","date_gmt":"2026-09-28T23:59:05","guid":{"rendered":"https:\/\/jiris.ca\/?page_id=4538"},"modified":"2026-09-30T22:51:54","modified_gmt":"2026-09-30T22:51:54","slug":"outil3-quand-quelque-chose-me-freine","status":"publish","type":"page","link":"https:\/\/jiris.ca\/en\/outil3-quand-quelque-chose-me-freine\/","title":{"rendered":"Outil3 &#8211; Quand quelque chose me freine"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4538\" class=\"elementor elementor-4538\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-275f3974 e-flex e-con-boxed e-con e-parent\" data-id=\"275f3974\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-4e7047c3 e-con-full e-flex e-con e-child\" data-id=\"4e7047c3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-30349d6a elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"30349d6a\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;_animation_delay&quot;:200}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Quand quelque chose me freine<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-35b37e3e e-flex e-con-boxed e-con e-parent\" data-id=\"35b37e3e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57e98c04 elementor-widget elementor-widget-html\" data-id=\"57e98c04\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- D\u00e9but de l'outil JIRIS - Outil 3 -->\n<div class=\"jiris-app-wrapper\">\n  <style>\n    \/* =========================================================\n       JIRIS \u2014 OUTIL 3 : QUAND QUELQUE CHOSE ME FREINE\n       Styles isol\u00e9s au composant\n       ========================================================= *\/\n\n    .jiris-app-wrapper {\n      --cream: #FAF6F0;\n      --cream-dark: #F0EAE0;\n      --terracotta: #C86B4A;\n      --terracotta-soft: #E8A88C;\n      --terracotta-light: #F5D5C4;\n      --sage: #8FA98B;\n      --sage-dark: #6F8E6B;\n      --sage-light: #D5E3D2;\n      --ink: #2B2522;\n      --ink-soft: #5C5450;\n      --ink-muted: #8A817A;\n      --white: #FFFFFF;\n\n      --shadow-sm: 0 2px 8px rgba(43, 37, 34, 0.04);\n      --shadow-md: 0 8px 24px rgba(43, 37, 34, 0.08);\n      --shadow-lg: 0 16px 40px rgba(43, 37, 34, 0.12);\n\n      font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;\n      background-color: var(--cream);\n      color: var(--ink);\n      line-height: 1.6;\n      padding: 2rem 1rem;\n      border-radius: 16px;\n      margin: 2rem 0;\n    }\n\n    .jiris-app-wrapper * {\n      box-sizing: border-box;\n    }\n\n    .jiris-app-wrapper h1,\n    .jiris-app-wrapper h2,\n    .jiris-app-wrapper h3,\n    .jiris-app-wrapper p {\n      margin: 0;\n      padding: 0;\n    }\n\n    .jiris-app-wrapper :focus-visible {\n      outline: 3px solid var(--terracotta);\n      outline-offset: 3px;\n    }\n\n    .jiris-app-wrapper button,\n    .jiris-app-wrapper textarea,\n    .jiris-app-wrapper input {\n      font: inherit;\n    }\n\n    .jiris-app-wrapper .jiris-container {\n      max-width: 860px;\n      margin: 0 auto;\n    }\n\n    \/* =========================================================\n       HEADER\n       ========================================================= *\/\n\n    .jiris-app-wrapper .jiris-header {\n      text-align: center;\n      margin-bottom: 2rem;\n      padding: 0 1rem;\n    }\n\n    .jiris-app-wrapper .breadcrumb {\n      display: inline-flex;\n      align-items: center;\n      gap: 0.5rem;\n      font-size: 0.875rem;\n      color: var(--ink-muted);\n      margin-bottom: 1.5rem;\n      text-transform: uppercase;\n      letter-spacing: 0.08em;\n    }\n\n    .jiris-app-wrapper .breadcrumb .dot {\n      width: 4px;\n      height: 4px;\n      background: var(--terracotta);\n      border-radius: 50%;\n    }\n\n    .jiris-app-wrapper .jiris-header h1 {\n      font-family: 'Fraunces', Georgia, serif;\n      font-size: clamp(2rem, 5vw, 3rem);\n      font-weight: 500;\n      line-height: 1.15;\n      color: var(--ink);\n      margin-bottom: 1rem;\n      letter-spacing: -0.02em;\n    }\n\n    .jiris-app-wrapper .jiris-header .subtitle {\n      font-size: 1.125rem;\n      color: var(--ink-soft);\n      max-width: 650px;\n      margin: 0 auto 1.5rem;\n      font-weight: 400;\n    }\n\n    .jiris-app-wrapper .jiris-header .intro {\n      font-size: 1rem;\n      color: var(--ink-soft);\n      background: var(--white);\n      padding: 1.5rem 2rem;\n      border-radius: 20px;\n      border-left: 3px solid var(--terracotta);\n      text-align: left;\n      box-shadow: var(--shadow-sm);\n    }\n\n    \/* =========================================================\n       CONFIDENTIALIT\u00c9 \u2014 MENTION INFORMATIVE EN AMONT\n       ========================================================= *\/\n\n    .jiris-app-wrapper .storage-status {\n      display: flex;\n      align-items: flex-start;\n      gap: 0.85rem;\n      background: rgba(255, 255, 255, 0.72);\n      border: 1px solid var(--cream-dark);\n      border-radius: 14px;\n      padding: 0.9rem 1.1rem;\n      margin: 0 auto 2rem;\n      max-width: 760px;\n      color: var(--ink-soft);\n      font-size: 0.85rem;\n      text-align: left;\n    }\n\n    .jiris-app-wrapper .storage-status-icon {\n      flex-shrink: 0;\n      font-size: 1rem;\n      line-height: 1.5;\n    }\n\n    .jiris-app-wrapper .storage-status strong {\n      color: var(--ink);\n      font-weight: 600;\n    }\n\n    .jiris-app-wrapper .storage-status p {\n      margin: 0;\n    }\n\n    \/* =========================================================\n       ORIENTATION\n       ========================================================= *\/\n\n    .jiris-app-wrapper .orientation {\n      background: linear-gradient(\n        135deg,\n        var(--sage-light) 0%,\n        var(--white) 100%\n      );\n      border-radius: 20px;\n      padding: 1.4rem 1.6rem;\n      margin-bottom: 2rem;\n      color: var(--ink);\n    }\n\n    .jiris-app-wrapper .orientation h2 {\n      font-family: 'Fraunces', Georgia, serif;\n      font-size: 1.1rem;\n      font-weight: 500;\n      margin-bottom: 0.45rem;\n    }\n\n    .jiris-app-wrapper .orientation p {\n      font-size: 0.95rem;\n      color: var(--ink-soft);\n    }\n\n    .jiris-app-wrapper .orientation strong {\n      color: var(--ink);\n    }\n\n    \/* =========================================================\n       STEPS\n       ========================================================= *\/\n\n    .jiris-app-wrapper .steps {\n      display: flex;\n      flex-direction: column;\n      gap: 1.5rem;\n      margin-bottom: 2.5rem;\n    }\n\n    .jiris-app-wrapper .step {\n      background: var(--white);\n      border-radius: 24px;\n      padding: 2rem;\n      box-shadow: var(--shadow-sm);\n      transition:\n        box-shadow 0.3s ease,\n        transform 0.3s ease;\n      position: relative;\n      overflow: hidden;\n    }\n\n    .jiris-app-wrapper .step:hover {\n      box-shadow: var(--shadow-md);\n      transform: translateY(-2px);\n    }\n\n    .jiris-app-wrapper .step::before {\n      content: '';\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 4px;\n      height: 100%;\n      background: linear-gradient(\n        to bottom,\n        var(--terracotta),\n        var(--terracotta-soft)\n      );\n    }\n\n    .jiris-app-wrapper .step-header {\n      display: flex;\n      align-items: flex-start;\n      gap: 1rem;\n      margin-bottom: 1rem;\n    }\n\n    .jiris-app-wrapper .step-number {\n      flex-shrink: 0;\n      width: 44px;\n      height: 44px;\n      background: var(--terracotta-light);\n      color: var(--terracotta);\n      border-radius: 12px;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      font-family: 'Fraunces', Georgia, serif;\n      font-weight: 600;\n      font-size: 1.25rem;\n    }\n\n    .jiris-app-wrapper .step-title-block {\n      flex: 1;\n    }\n\n    .jiris-app-wrapper .step-title {\n      font-family: 'Fraunces', Georgia, serif;\n      font-size: 1.375rem;\n      font-weight: 500;\n      color: var(--ink);\n      margin-bottom: 0.25rem;\n      letter-spacing: -0.01em;\n    }\n\n    .jiris-app-wrapper .step-objective {\n      font-size: 0.875rem;\n      color: var(--ink-muted);\n      font-style: italic;\n    }\n\n    .jiris-app-wrapper .step-description {\n      color: var(--ink-soft);\n      margin-bottom: 1.25rem;\n      font-size: 0.975rem;\n    }\n\n    \/* =========================================================\n       EXEMPLES & CHAMPS\n       ========================================================= *\/\n\n    .jiris-app-wrapper .example {\n      background: var(--cream);\n      border-radius: 14px;\n      padding: 1rem 1.25rem;\n      margin-bottom: 1.25rem;\n      font-size: 0.9rem;\n      color: var(--ink-soft);\n      border-left: 2px solid var(--terracotta-soft);\n    }\n\n    .jiris-app-wrapper .example strong {\n      display: block;\n      font-size: 0.72rem;\n      text-transform: uppercase;\n      letter-spacing: 0.08em;\n      color: var(--terracotta);\n      font-weight: 600;\n      margin-bottom: 0.3rem;\n    }\n\n    .jiris-app-wrapper .input-wrapper {\n      position: relative;\n    }\n\n    .jiris-app-wrapper .input-wrapper + .input-wrapper {\n      margin-top: 1rem;\n    }\n\n    .jiris-app-wrapper .input-wrapper label {\n      display: block;\n      font-size: 0.875rem;\n      color: var(--ink);\n      font-weight: 500;\n      margin-bottom: 0.5rem;\n    }\n\n    .jiris-app-wrapper .input-wrapper textarea,\n    .jiris-app-wrapper .input-wrapper input[type=\"text\"] {\n      display: block;\n      width: 100%;\n      padding: 1rem 1.25rem;\n      border: 1.5px solid var(--cream-dark);\n      border-radius: 14px;\n      background: var(--cream);\n      font-family: inherit;\n      font-size: 1rem;\n      color: var(--ink);\n      transition:\n        border-color 0.2s ease,\n        background 0.2s ease,\n        box-shadow 0.2s ease;\n      line-height: 1.5;\n    }\n\n    .jiris-app-wrapper .input-wrapper textarea {\n      min-height: 100px;\n      resize: vertical;\n      overflow-y: hidden;\n    }\n\n    .jiris-app-wrapper .input-wrapper input[type=\"text\"] {\n      min-height: 56px;\n    }\n\n    .jiris-app-wrapper .input-wrapper textarea:focus,\n    .jiris-app-wrapper .input-wrapper input[type=\"text\"]:focus {\n      outline: none;\n      border-color: var(--terracotta);\n      background: var(--white);\n      box-shadow: 0 0 0 4px rgba(200, 107, 74, 0.1);\n    }\n\n    .jiris-app-wrapper .input-wrapper textarea::placeholder,\n    .jiris-app-wrapper .input-wrapper input[type=\"text\"]::placeholder {\n      color: var(--ink-muted);\n      font-style: italic;\n    }\n\n    \/* =========================================================\n       VALUE PILLS \u2014 align\u00e9es sur Outil 2\n       ========================================================= *\/\n\n    .jiris-app-wrapper .values-hint {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 0.5rem;\n      margin-bottom: 1rem;\n    }\n\n    .jiris-app-wrapper .value-pill {\n      appearance: none;\n      border: 1px solid var(--cream-dark);\n      padding: 0.45rem 0.9rem;\n      background: var(--cream);\n      border-radius: 100px;\n      font-family: inherit;\n      font-size: 0.8rem;\n      color: var(--ink-soft);\n      cursor: pointer;\n      transition: all 0.2s ease;\n    }\n\n    .jiris-app-wrapper .value-pill:hover {\n      background: var(--terracotta-light);\n      border-color: var(--terracotta-soft);\n      color: var(--terracotta);\n    }\n\n    .jiris-app-wrapper .value-pill.active {\n      background: var(--terracotta);\n      border-color: var(--terracotta);\n      color: var(--white);\n    }\n\n    \/* =========================================================\n       CARDS GRID\n       ========================================================= *\/\n\n    .jiris-app-wrapper .cards-grid {\n      display: grid;\n      grid-template-columns: repeat(2, 1fr);\n      gap: 1rem;\n      margin-top: 0.75rem;\n    }\n\n    .jiris-app-wrapper .card-item {\n      background: var(--cream);\n      border-radius: 18px;\n      padding: 1.25rem;\n      border: 1.5px solid var(--cream-dark);\n      transition:\n        border-color 0.2s ease,\n        background 0.2s ease;\n    }\n\n    .jiris-app-wrapper .card-item:hover {\n      border-color: var(--terracotta-soft);\n      background: var(--white);\n    }\n\n    .jiris-app-wrapper .card-item-title {\n      font-family: 'Fraunces', Georgia, serif;\n      font-size: 1rem;\n      font-weight: 500;\n      color: var(--ink);\n      margin-bottom: 0.35rem;\n      display: flex;\n      align-items: center;\n      gap: 0.4rem;\n    }\n\n    .jiris-app-wrapper .card-item p {\n      font-size: 0.85rem;\n      color: var(--ink-soft);\n      margin-bottom: 0.75rem;\n    }\n\n    \/* =========================================================\n       ACTION STEP\n       ========================================================= *\/\n\n    .jiris-app-wrapper .action-step {\n      background: linear-gradient(\n        135deg,\n        var(--terracotta-light) 0%,\n        var(--white) 100%\n      );\n    }\n\n    .jiris-app-wrapper .action-step .step-number {\n      background: var(--terracotta);\n      color: var(--white);\n    }\n\n    .jiris-app-wrapper .action-step .input-wrapper textarea,\n    .jiris-app-wrapper .action-step .input-wrapper input[type=\"text\"] {\n      background: rgba(255, 255, 255, 0.9);\n    }\n\n    \/* =========================================================\n       TIP\n       ========================================================= *\/\n\n    .jiris-app-wrapper .jiris-tip {\n      background: linear-gradient(\n        135deg,\n        var(--terracotta-light) 0%,\n        var(--cream) 100%\n      );\n      border-radius: 24px;\n      padding: 2rem;\n      margin-bottom: 1.5rem;\n      position: relative;\n      overflow: hidden;\n    }\n\n    .jiris-app-wrapper .jiris-tip::after {\n      content: '\u2726';\n      position: absolute;\n      top: -10px;\n      right: -10px;\n      font-size: 8rem;\n      color: var(--terracotta-soft);\n      opacity: 0.15;\n      pointer-events: none;\n    }\n\n    .jiris-app-wrapper .tip-header {\n      display: flex;\n      align-items: center;\n      gap: 0.75rem;\n      margin-bottom: 0.75rem;\n    }\n\n    .jiris-app-wrapper .tip-icon {\n      font-size: 1.5rem;\n    }\n\n    .jiris-app-wrapper .tip-title {\n      font-family: 'Fraunces', Georgia, serif;\n      font-size: 1.125rem;\n      font-weight: 500;\n      color: var(--ink);\n    }\n\n    .jiris-app-wrapper .tip-content {\n      color: var(--ink-soft);\n      font-size: 0.975rem;\n      position: relative;\n      z-index: 1;\n    }\n\n    \/* =========================================================\n       PRIVACY BOX \u2014 align\u00e9e sur Outil 2\n       ========================================================= *\/\n\n    .jiris-app-wrapper .privacy-box {\n      background: var(--white);\n      border: 1px solid var(--cream-dark);\n      border-radius: 16px;\n      padding: 1rem 1.25rem;\n      margin-bottom: 1.5rem;\n      text-align: left;\n    }\n\n    .jiris-app-wrapper .privacy-label {\n      display: flex;\n      align-items: flex-start;\n      gap: 0.75rem;\n      cursor: pointer;\n      color: var(--ink-soft);\n      font-size: 0.875rem;\n      line-height: 1.5;\n    }\n\n    .jiris-app-wrapper .privacy-label input[type=\"checkbox\"] {\n      flex-shrink: 0;\n      width: 18px;\n      height: 18px;\n      margin-top: 0.15rem;\n      accent-color: var(--terracotta);\n      cursor: pointer;\n    }\n\n    .jiris-app-wrapper .privacy-label input[type=\"checkbox\"]:disabled {\n      cursor: default;\n    }\n\n    .jiris-app-wrapper .privacy-label strong {\n      color: var(--ink);\n      font-weight: 600;\n    }\n\n    .jiris-app-wrapper .privacy-note {\n      margin: 0.65rem 0 0 2rem;\n      font-size: 0.78rem;\n      color: var(--ink-muted);\n    }\n\n    \/* =========================================================\n       ACTIONS\n       ========================================================= *\/\n\n    .jiris-app-wrapper .actions {\n      display: flex;\n      gap: 1rem;\n      flex-wrap: wrap;\n      justify-content: center;\n      margin-top: 2rem;\n    }\n\n    .jiris-app-wrapper .btn {\n      padding: 1rem 2rem;\n      border-radius: 14px;\n      font-family: inherit;\n      font-size: 1rem;\n      font-weight: 500;\n      cursor: pointer;\n      transition: all 0.2s ease;\n      border: 1.5px solid transparent;\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      gap: 0.5rem;\n    }\n\n    .jiris-app-wrapper .btn:disabled {\n      opacity: 0.65;\n      cursor: not-allowed;\n      pointer-events: none;\n    }\n\n    .jiris-app-wrapper .btn-primary {\n      background: var(--ink);\n      color: var(--cream);\n    }\n\n    .jiris-app-wrapper .btn-primary:hover {\n      background: var(--terracotta);\n      transform: translateY(-2px);\n      box-shadow: var(--shadow-md);\n    }\n\n    .jiris-app-wrapper .btn-secondary {\n      background: var(--white);\n      color: var(--ink);\n      border-color: var(--cream-dark);\n    }\n\n    .jiris-app-wrapper .btn-secondary:hover {\n      border-color: var(--terracotta);\n      color: var(--terracotta);\n    }\n\n    \/* =========================================================\n       TOAST\n       ========================================================= *\/\n\n    .jiris-app-wrapper .toast {\n      position: fixed;\n      bottom: 2rem;\n      left: 50%;\n      transform: translateX(-50%) translateY(100px);\n      background: var(--ink);\n      color: var(--cream);\n      padding: 1rem 1.5rem;\n      border-radius: 12px;\n      box-shadow: var(--shadow-lg);\n      opacity: 0;\n      pointer-events: none;\n      transition:\n        opacity 0.3s ease,\n        transform 0.3s ease;\n      z-index: 1000;\n      font-size: 0.95rem;\n      max-width: calc(100vw - 2rem);\n      text-align: center;\n    }\n\n    .jiris-app-wrapper .toast.show {\n      opacity: 1;\n      transform: translateX(-50%) translateY(0);\n    }\n\n    .jiris-app-wrapper .print-date {\n      display: none;\n    }\n\n    \/* =========================================================\n       RESPONSIVE\n       ========================================================= *\/\n\n    @media (max-width: 720px) {\n      .jiris-app-wrapper {\n        padding: 1.5rem 0.75rem;\n      }\n\n      .jiris-app-wrapper .jiris-header {\n        padding: 0 0.25rem;\n      }\n\n      .jiris-app-wrapper .step {\n        padding: 1.5rem;\n      }\n\n      .jiris-app-wrapper .jiris-header .intro {\n        padding: 1.25rem 1.35rem;\n      }\n\n      .jiris-app-wrapper .storage-status {\n        margin-bottom: 1.5rem;\n      }\n\n      .jiris-app-wrapper .cards-grid {\n        grid-template-columns: 1fr;\n      }\n\n      .jiris-app-wrapper .actions {\n        flex-direction: column;\n      }\n\n      .jiris-app-wrapper .btn {\n        width: 100%;\n      }\n    }\n\n    \/* =========================================================\n       IMPRESSION \u2014 align\u00e9e sur Outil 2\n       ========================================================= *\/\n\n    @media print {\n      @page {\n        margin: 1.2cm;\n        size: A4 portrait;\n      }\n\n      .jiris-app-wrapper * {\n        -webkit-print-color-adjust: exact !important;\n        print-color-adjust: exact !important;\n        box-shadow: none !important;\n        transform: none !important;\n        transition: none !important;\n      }\n\n      .jiris-app-wrapper {\n        background-color: var(--cream) !important;\n        padding: 0 !important;\n        margin: 0 !important;\n      }\n\n      .jiris-app-wrapper .steps {\n        display: block !important;\n      }\n\n      .jiris-app-wrapper .jiris-header,\n      .jiris-app-wrapper .orientation,\n      .jiris-app-wrapper .storage-status,\n      .jiris-app-wrapper .step,\n      .jiris-app-wrapper .jiris-tip {\n        page-break-inside: avoid !important;\n        break-inside: avoid !important;\n        display: block !important;\n        margin-bottom: 1.5rem !important;\n      }\n\n      \/*\n       * Les cartes de l'\u00e9tape 3 restent en deux colonnes\n       * \u00e0 l'impression, pour pr\u00e9server la comparaison visuelle.\n       * On utilise flex plut\u00f4t que grid, plus fiable selon\n       * les moteurs d'impression.\n       *\/\n      .jiris-app-wrapper .cards-grid {\n        display: flex !important;\n        flex-wrap: wrap !important;\n        gap: 1rem !important;\n      }\n\n      .jiris-app-wrapper .card-item {\n        flex: 1 1 45% !important;\n        break-inside: avoid !important;\n      }\n\n      .jiris-app-wrapper .jiris-tip::after {\n        display: none !important;\n      }\n\n      .jiris-app-wrapper .actions,\n      .jiris-app-wrapper .toast,\n      .jiris-app-wrapper .privacy-box,\n      .jiris-app-wrapper .storage-status,\n      .jiris-app-wrapper .values-hint {\n        display: none !important;\n      }\n\n      .jiris-app-wrapper .print-date {\n        display: block !important;\n        font-size: 0.8rem;\n        color: var(--ink-muted);\n        margin-bottom: 1rem;\n        text-align: center;\n      }\n\n      .jiris-app-wrapper .input-wrapper textarea,\n      .jiris-app-wrapper .input-wrapper input[type=\"text\"] {\n        background: #fff !important;\n        border: 1px solid #999 !important;\n        min-height: 60px !important;\n      }\n    }\n  <\/style>\n\n  <div class=\"jiris-container\">\n\n    <!-- =======================================================\n         HEADER\n         ======================================================= -->\n\n    <header class=\"jiris-header\">\n\n      <div class=\"breadcrumb\">\n        <span>JIRIS<\/span>\n        <span class=\"dot\"><\/span>\n        <span>Passer \u00e0 l'action<\/span>\n        <span class=\"dot\"><\/span>\n        <span>Outil 3<\/span>\n      <\/div>\n\n      <h1>Quand quelque chose me freine<\/h1>\n\n      <p class=\"subtitle\">\n        Un outil pour avancer lorsque le doute, la peur, la fatigue\n        ou une difficult\u00e9 concr\u00e8te rendent un geste plus difficile.\n      <\/p>\n\n      <div class=\"intro\">\n        Il arrive de savoir ce que l'on souhaite faire et m\u00eame d'avoir r\u00e9fl\u00e9chi\n        aux \u00e9tapes, sans parvenir \u00e0 poser le geste pr\u00e9vu.\n        <br><br>\n        Ce qui nous freine peut avoir plusieurs sources : une \u00e9motion, une\n        exp\u00e9rience pass\u00e9e, la peur d'une r\u00e9action, la fatigue, un manque\n        d'information, une difficult\u00e9 concr\u00e8te ou simplement l'importance\n        que nous accordons \u00e0 ce qui va se passer.\n        <br><br>\n        Cet outil ne cherche pas \u00e0 faire dispara\u00eetre ce qui vous freine.\n        Il vous invite plut\u00f4t \u00e0 explorer ce qui se passe et \u00e0 chercher\n        une mani\u00e8re d'avancer qui vous convient.\n      <\/div>\n\n    <\/header>\n\n    <div class=\"print-date\" id=\"jiris_printDate\" aria-hidden=\"true\"><\/div>\n\n    <!-- =======================================================\n         MENTION INFORMATIVE \u2014 EN AMONT\n         ======================================================= -->\n\n    <div class=\"storage-status\">\n      <div class=\"storage-status-icon\" aria-hidden=\"true\">\ud83d\udd12<\/div>\n\n      <div>\n        <p>\n          <strong>Vos r\u00e9ponses restent sur votre appareil.<\/strong>\n          Elles ne quittent jamais votre navigateur.\n        <\/p>\n      <\/div>\n    <\/div>\n\n    <!-- =======================================================\n         ORIENTATION\n         ======================================================= -->\n\n    <section class=\"orientation\" aria-labelledby=\"orientation-title\">\n\n      <h2 id=\"orientation-title\">\n        \ud83c\udf3f Un rep\u00e8re avant de commencer\n      <\/h2>\n\n      <p>\n        <strong>\n          Vous n'avez pas besoin d'attendre que tout soit parfaitement clair\n          pour envisager un prochain pas.\n        <\/strong>\n        Il est parfois possible d'agir alors que le doute, l'appr\u00e9hension\n        ou l'inconfort sont encore pr\u00e9sents. Et parfois, ralentir, demander\n        du soutien, modifier le geste pr\u00e9vu ou le reporter constitue aussi\n        une mani\u00e8re d'avancer.\n      <\/p>\n\n    <\/section>\n\n    <!-- =======================================================\n         STEPS\n         ======================================================= -->\n\n    <div class=\"steps\">\n\n      <!-- =====================================================\n           \u00c9TAPE 1\n           ===================================================== -->\n\n      <section class=\"step\">\n\n        <div class=\"step-header\">\n\n          <div class=\"step-number\">1<\/div>\n\n          <div class=\"step-title-block\">\n\n            <h2 class=\"step-title\">\n              Identifier le geste\n            <\/h2>\n\n            <p class=\"step-objective\">\n              Partir de ce que vous souhaitez r\u00e9ellement faire\n            <\/p>\n\n          <\/div>\n        <\/div>\n\n        <p class=\"step-description\">\n          Quelle action pr\u00e9cise avez-vous en t\u00eate, mais repoussez, \u00e9vitez\n          ou trouvez difficile \u00e0 commencer ?\n          Essayez de la d\u00e9crire simplement, sans chercher encore \u00e0 expliquer\n          pourquoi.\n        <\/p>\n\n        <div class=\"example\">\n\n          <strong>Exemple<\/strong>\n\n          \u00ab Je souhaite demander un rendez-vous, mais je n'arrive pas\n          \u00e0 envoyer le courriel. \u00bb\n\n        <\/div>\n\n        <div class=\"input-wrapper\">\n\n          <label for=\"jiris_step1\">\n            Le geste que je souhaite poser :\n          <\/label>\n\n          <textarea\n            id=\"jiris_step1\"\n            data-label=\"Le geste que je souhaite poser\"\n            placeholder=\"Ex. : envoyer le courriel, appeler l'organisme, demander de l'aide, commencer le formulaire\u2026\"\n          ><\/textarea>\n\n        <\/div>\n\n      <\/section>\n\n\n      <!-- =====================================================\n           \u00c9TAPE 2\n           ===================================================== -->\n\n      <section class=\"step\">\n\n        <div class=\"step-header\">\n\n          <div class=\"step-number\">2<\/div>\n\n          <div class=\"step-title-block\">\n\n            <h2 class=\"step-title\">\n              Explorer ce qui me freine\n            <\/h2>\n\n            <p class=\"step-objective\">\n              Mettre des mots sur ce qui rend le geste difficile\n            <\/p>\n\n          <\/div>\n        <\/div>\n\n        <p class=\"step-description\">\n          Lorsque vous pensez \u00e0 faire ce geste, qu'est-ce qui se passe ?\n          Il peut y avoir une \u00e9motion, une pens\u00e9e, une inqui\u00e9tude, une fatigue,\n          une exp\u00e9rience pass\u00e9e ou encore une difficult\u00e9 concr\u00e8te.\n        <\/p>\n\n        <p style=\"font-size:0.875rem; color:var(--ink-muted); margin-bottom:0.6rem;\">\n          Ces propositions sont simplement des pistes.\n          Vous pouvez en choisir une, plusieurs, aucune,\n          ou ajouter votre propre r\u00e9ponse.\n        <\/p>\n\n        <fieldset\n          style=\"border:0; padding:0; margin:0;\"\n        >\n\n          <legend\n            style=\"\n              font-size:0.875rem;\n              color:var(--ink);\n              font-weight:500;\n              margin-bottom:0.6rem;\n              padding:0;\n            \"\n          >\n            Ce qui pourrait intervenir :\n          <\/legend>\n\n          <div class=\"values-hint\">\n\n            <button type=\"button\" class=\"value-pill\" aria-pressed=\"false\">\n              peur de l'\u00e9chec\n            <\/button>\n\n            <button type=\"button\" class=\"value-pill\" aria-pressed=\"false\">\n              peur du jugement\n            <\/button>\n\n            <button type=\"button\" class=\"value-pill\" aria-pressed=\"false\">\n              peur d'une r\u00e9action\n            <\/button>\n\n            <button type=\"button\" class=\"value-pill\" aria-pressed=\"false\">\n              fatigue ou surcharge\n            <\/button>\n\n            <button type=\"button\" class=\"value-pill\" aria-pressed=\"false\">\n              doute\n            <\/button>\n\n            <button type=\"button\" class=\"value-pill\" aria-pressed=\"false\">\n              manque d'information\n            <\/button>\n\n            <button type=\"button\" class=\"value-pill\" aria-pressed=\"false\">\n              exp\u00e9rience pass\u00e9e\n            <\/button>\n\n            <button type=\"button\" class=\"value-pill\" aria-pressed=\"false\">\n              difficult\u00e9 concr\u00e8te\n            <\/button>\n\n            <button type=\"button\" class=\"value-pill\" aria-pressed=\"false\">\n              autre chose\n            <\/button>\n\n          <\/div>\n\n        <\/fieldset>\n\n        <div class=\"input-wrapper\">\n\n          <label for=\"jiris_step2\">\n            Ce qui me freine en ce moment :\n          <\/label>\n\n          <textarea\n            id=\"jiris_step2\"\n            data-label=\"Ce qui me freine en ce moment\"\n            placeholder=\"Ex. : j'ai peur de d\u00e9ranger, je ne sais pas quoi r\u00e9pondre si on me pose une question, je suis \u00e9puis\u00e9\u00b7e, je ne comprends pas la proc\u00e9dure\u2026\"\n          ><\/textarea>\n\n        <\/div>\n\n      <\/section>\n\n\n      <!-- =====================================================\n           \u00c9TAPE 3\n           ===================================================== -->\n\n      <section class=\"step\">\n\n        <div class=\"step-header\">\n\n          <div class=\"step-number\">3<\/div>\n\n          <div class=\"step-title-block\">\n\n            <h2 class=\"step-title\">\n              Rendre le geste plus accessible\n            <\/h2>\n\n            <p class=\"step-objective\">\n              Chercher ce qui pourrait faciliter concr\u00e8tement le prochain pas\n            <\/p>\n\n          <\/div>\n        <\/div>\n\n        <p class=\"step-description\">\n          Vous n'avez pas n\u00e9cessairement besoin d'\u00e9liminer ce qui vous freine.\n          Demandez-vous plut\u00f4t :\n          <strong>qu'est-ce qui pourrait rendre ce geste un peu plus facile,\n          plus clair ou plus s\u00e9curisant ?<\/strong>\n        <\/p>\n\n        <div class=\"cards-grid\">\n\n          <div class=\"card-item\">\n\n            <h3 class=\"card-item-title\">\n              \ud83e\udd1d Un soutien\n            <\/h3>\n\n            <p>\n              Une personne peut \u00eatre pr\u00e9sente, vous aider \u00e0 pr\u00e9parer le geste\n              ou simplement savoir que vous allez essayer.\n            <\/p>\n\n            <div class=\"input-wrapper\">\n              <input\n                type=\"text\"\n                id=\"jiris_supportHuman\"\n                aria-label=\"Un soutien \u2014 pr\u00e9ciser ce qui pourrait aider\"\n                data-label=\"Un soutien\"\n                placeholder=\"Ex. : demander \u00e0 quelqu'un d'\u00eatre disponible\"\n              >\n            <\/div>\n\n          <\/div>\n\n\n          <div class=\"card-item\">\n\n            <h3 class=\"card-item-title\">\n              \ud83d\udcdd Une pr\u00e9paration\n            <\/h3>\n\n            <p>\n              \u00c9crire quelques id\u00e9es, pr\u00e9parer une question,\n              faire un brouillon ou v\u00e9rifier une information.\n            <\/p>\n\n            <div class=\"input-wrapper\">\n              <input\n                type=\"text\"\n                id=\"jiris_supportPrep\"\n                aria-label=\"Une pr\u00e9paration \u2014 pr\u00e9ciser ce qui pourrait aider\"\n                data-label=\"Une pr\u00e9paration\"\n                placeholder=\"Ex. : \u00e9crire trois points \u00e0 aborder\"\n              >\n            <\/div>\n\n          <\/div>\n\n\n          <div class=\"card-item\">\n\n            <h3 class=\"card-item-title\">\n              \u23f1\ufe0f Un cadre limit\u00e9\n            <\/h3>\n\n            <p>\n              Pr\u00e9voir un temps court pour essayer, plut\u00f4t que de vous demander\n              de tout r\u00e9gler imm\u00e9diatement.\n            <\/p>\n\n            <div class=\"input-wrapper\">\n              <input\n                type=\"text\"\n                id=\"jiris_supportTime\"\n                aria-label=\"Un cadre limit\u00e9 \u2014 pr\u00e9ciser ce qui pourrait aider\"\n                data-label=\"Un cadre limit\u00e9\"\n                placeholder=\"Ex. : essayer pendant 10 minutes\"\n              >\n            <\/div>\n\n          <\/div>\n\n\n          <div class=\"card-item\">\n\n            <h3 class=\"card-item-title\">\n              \ud83e\udde9 Une adaptation\n            <\/h3>\n\n            <p>\n              Modifier la mani\u00e8re de faire : commencer autrement,\n              choisir un autre moment ou demander une autre forme de contact.\n            <\/p>\n\n            <div class=\"input-wrapper\">\n              <input\n                type=\"text\"\n                id=\"jiris_supportAdapt\"\n                aria-label=\"Une adaptation \u2014 pr\u00e9ciser ce qui pourrait aider\"\n                data-label=\"Une adaptation\"\n                placeholder=\"Ex. : envoyer un message plut\u00f4t que t\u00e9l\u00e9phoner\"\n              >\n            <\/div>\n\n          <\/div>\n\n\n          <div class=\"card-item\">\n\n            <h3 class=\"card-item-title\">\n              \ud83d\uded1 Revoir ou reporter\n            <\/h3>\n\n            <p>\n              Reconna\u00eetre qu'un autre moment, une autre mani\u00e8re de faire\n              ou une nouvelle information pourrait \u00eatre n\u00e9cessaire avant\n              d'aller plus loin.\n            <\/p>\n\n            <div class=\"input-wrapper\">\n              <input\n                type=\"text\"\n                id=\"jiris_supportReconsider\"\n                aria-label=\"Revoir ou reporter \u2014 pr\u00e9ciser ce qui pourrait aider\"\n                data-label=\"Revoir ou reporter\"\n                placeholder=\"Ex. : v\u00e9rifier une information avant de poursuivre\"\n              >\n            <\/div>\n\n          <\/div>\n\n        <\/div>\n\n      <\/section>\n\n\n      <!-- =====================================================\n           \u00c9TAPE 4\n           ===================================================== -->\n\n      <section class=\"step action-step\">\n\n        <div class=\"step-header\">\n\n          <div class=\"step-number\">4<\/div>\n\n          <div class=\"step-title-block\">\n\n            <h2 class=\"step-title\">\n              D\u00e9finir mon prochain pas\n            <\/h2>\n\n            <p class=\"step-objective\">\n              Passer d'une intention g\u00e9n\u00e9rale \u00e0 une tentative r\u00e9aliste\n            <\/p>\n\n          <\/div>\n        <\/div>\n\n        <p class=\"step-description\">\n          Vous pouvez maintenant d\u00e9finir ce que vous souhaitez essayer,\n          \u00e0 quel moment et de quelle mani\u00e8re.\n          Il ne s'agit pas de vous promettre que tout ira bien, mais de rendre\n          votre prochaine \u00e9tape suffisamment pr\u00e9cise pour pouvoir la reconna\u00eetre\n          lorsqu'elle aura eu lieu.\n        <\/p>\n\n        <div class=\"input-wrapper\">\n\n          <label for=\"jiris_actionWhen\">\n            Quand vais-je essayer ?\n          <\/label>\n\n          <input\n            type=\"text\"\n            id=\"jiris_actionWhen\"\n            data-label=\"Quand vais-je essayer\"\n            placeholder=\"Ex. : aujourd'hui vers 14 h \/ demain apr\u00e8s mon rendez-vous\u2026\"\n          >\n\n        <\/div>\n\n        <div class=\"input-wrapper\">\n\n          <label for=\"jiris_actionHow\">\n            Comment vais-je essayer ?\n          <\/label>\n\n          <textarea\n            id=\"jiris_actionHow\"\n            data-label=\"Comment vais-je essayer\"\n            placeholder=\"Ex. : je vais ouvrir le formulaire, remplir les deux premi\u00e8res sections et m'arr\u00eater l\u00e0 si j'en ai besoin.\"\n          ><\/textarea>\n\n        <\/div>\n\n        <div class=\"input-wrapper\">\n\n          <label for=\"jiris_actionIf\">\n            Si cela ne se passe pas comme pr\u00e9vu, je peux\u2026\n          <\/label>\n\n          <textarea\n            id=\"jiris_actionIf\"\n            data-label=\"Si cela ne se passe pas comme pr\u00e9vu\"\n            placeholder=\"Ex. : faire une pause, demander de l'aide, modifier ma fa\u00e7on de faire ou reprendre plus tard.\"\n          ><\/textarea>\n\n        <\/div>\n\n      <\/section>\n\n    <\/div>\n\n\n    <!-- =======================================================\n         RAPPEL\n         ======================================================= -->\n\n    <section class=\"jiris-tip\">\n\n      <div class=\"tip-header\">\n\n        <span class=\"tip-icon\" aria-hidden=\"true\">\ud83c\udf31<\/span>\n\n        <h2 class=\"tip-title\">\n          Un petit pas n'est pas une promesse de r\u00e9ussite\n        <\/h2>\n\n      <\/div>\n\n      <div class=\"tip-content\">\n        Essayer ne garantit pas le r\u00e9sultat souhait\u00e9.\n        Mais une tentative peut vous donner une information nouvelle :\n        sur la situation, sur ce qui vous aide, sur ce qui vous freine\n        ou sur ce que vous souhaitez faire ensuite.\n        <br><br>\n        <strong>\n          Vous n'avez pas \u00e0 tout r\u00e9soudre aujourd'hui. Vous pouvez chercher\n          le prochain pas qui a du sens pour vous \u2014 y compris ralentir,\n          modifier votre approche ou attendre avant de d\u00e9cider.\n        <\/strong>\n      <\/div>\n\n    <\/section>\n\n\n    <!-- =======================================================\n         CONFIDENTIALIT\u00c9 \u2014 CHOIX DE CONSERVATION\n         ======================================================= -->\n\n    <div class=\"privacy-box\">\n\n      <label\n        class=\"privacy-label\"\n        for=\"jiris_action_rememberResponses\"\n      >\n\n        <input\n          type=\"checkbox\"\n          id=\"jiris_action_rememberResponses\"\n          aria-describedby=\"jiris_action_privacyExplanation\"\n        >\n\n        <span>\n          <strong>\n            Conserver mes r\u00e9ponses sur cet appareil\n          <\/strong>\n          <br>\n          Par d\u00e9faut, vos r\u00e9ponses ne sont pas m\u00e9moris\u00e9es :\n          elles disparaissent si vous rechargez la page.\n          En cochant cette case, elles seront conserv\u00e9es dans le stockage\n          local de votre navigateur et vous pourrez les retrouver \u00e0 votre\n          prochaine visite.\n        <\/span>\n\n      <\/label>\n\n      <p\n        class=\"privacy-note\"\n        id=\"jiris_action_privacyExplanation\"\n      >\n        \u26a0\ufe0f Sur un appareil partag\u00e9, \u00e9vitez d'activer cette option\n        ou effacez vos r\u00e9ponses avant de partir.\n      <\/p>\n\n    <\/div>\n\n\n    <!-- =======================================================\n         ACTIONS\n         ======================================================= -->\n\n    <div class=\"actions\">\n\n      <button\n        type=\"button\"\n        class=\"btn btn-primary\"\n        id=\"jiris_copy\"\n      >\n        \ud83d\udccb Copier mon plan\n      <\/button>\n\n      <button\n        type=\"button\"\n        class=\"btn btn-secondary\"\n        id=\"jiris_print\"\n      >\n        \ud83d\udda8\ufe0f Imprimer mon plan\n      <\/button>\n\n      <button\n        type=\"button\"\n        class=\"btn btn-secondary\"\n        id=\"jiris_clear\"\n      >\n        \u2728 Effacer mes r\u00e9ponses\n      <\/button>\n\n    <\/div>\n\n  <\/div>\n\n\n  <!-- TOAST -->\n\n  <div\n    class=\"toast\"\n    id=\"jiris_toast\"\n    role=\"status\"\n    aria-live=\"polite\"\n  ><\/div>\n\n\n  <!-- =========================================================\n       JAVASCRIPT\n       ========================================================= -->\n\n  <script>\n  (function () {\n    'use strict';\n\n    var wrapper = document.querySelector('.jiris-app-wrapper');\n    if (!wrapper) return;\n\n    \/* =======================================================\n       \u00c9L\u00c9MENTS\n       ======================================================= *\/\n\n    var inputs = wrapper.querySelectorAll(\n      'textarea, input[type=\"text\"]'\n    );\n\n    var valuePills = wrapper.querySelectorAll(\n      '.value-pill'\n    );\n\n    var toast = wrapper.querySelector('#jiris_toast');\n\n    var copyButton = wrapper.querySelector('#jiris_copy');\n\n    var printButton = wrapper.querySelector('#jiris_print');\n\n    var clearButton = wrapper.querySelector('#jiris_clear');\n\n    var printDate = wrapper.querySelector('#jiris_printDate');\n\n    var rememberResponses =\n      wrapper.querySelector('#jiris_action_rememberResponses');\n\n    var privacyExplanation =\n      wrapper.querySelector('#jiris_action_privacyExplanation');\n\n    var originalCopyText = copyButton.innerHTML;\n\n\n    \/*\n     * Deux cl\u00e9s distinctes, comme dans l'Outil 2 :\n     *\n     *  - PREF_KEY : m\u00e9morise uniquement le choix explicite\n     *    de l'utilisateur. La cl\u00e9 est supprim\u00e9e lorsque\n     *    la case est d\u00e9coch\u00e9e, pour que le d\u00e9faut\n     *    \u00ab rien n'est m\u00e9moris\u00e9 \u00bb reste litt\u00e9ralement vrai.\n     *\n     *  - KEY : pr\u00e9fixe des r\u00e9ponses elles-m\u00eames.\n     *    Aucune cl\u00e9 sous ce pr\u00e9fixe n'existe tant que\n     *    l'utilisateur n'a pas activ\u00e9 la conservation.\n     *\/\n\n    var PREF_KEY = 'jiris_action_v3_preference';\n\n    var KEY = 'jiris_action_v3_';\n\n\n    \/* =======================================================\n       STOCKAGE \u2014 DISPONIBILIT\u00c9 (test r\u00e9el)\n       ======================================================= *\/\n\n    function storageAvailable() {\n      try {\n        var testKey = '__jiris_storage_test__';\n\n        localStorage.setItem(testKey, '1');\n        var verified = localStorage.getItem(testKey) === '1';\n        localStorage.removeItem(testKey);\n\n        return verified;\n\n      } catch (e) {\n        return false;\n      }\n    }\n\n    var canUseStorage = storageAvailable();\n\n\n    \/* =======================================================\n       STOCKAGE \u2014 R\u00c9PONSES (pr\u00e9fixe KEY)\n       ======================================================= *\/\n\n    function store(action, id, value) {\n\n      if (!canUseStorage) {\n        return action === 'get' ? null : false;\n      }\n\n      try {\n\n        if (action === 'get') {\n          return localStorage.getItem(KEY + id);\n        }\n\n        if (action === 'set') {\n          localStorage.setItem(KEY + id, value);\n          return localStorage.getItem(KEY + id) === String(value);\n        }\n\n        if (action === 'remove') {\n          localStorage.removeItem(KEY + id);\n          return localStorage.getItem(KEY + id) === null;\n        }\n\n      } catch (e) {\n        return false;\n      }\n\n      return false;\n    }\n\n\n    \/* =======================================================\n       STOCKAGE \u2014 PR\u00c9F\u00c9RENCE (cl\u00e9 PREF_KEY s\u00e9par\u00e9e)\n       ======================================================= *\/\n\n    function getPreference() {\n\n      if (!canUseStorage) return null;\n\n      try {\n        return localStorage.getItem(PREF_KEY);\n      } catch (e) {\n        return null;\n      }\n    }\n\n\n    function setPreference(value) {\n\n      if (!canUseStorage) return false;\n\n      try {\n\n        if (value === null) {\n\n          localStorage.removeItem(PREF_KEY);\n\n          return localStorage.getItem(PREF_KEY) === null;\n        }\n\n        localStorage.setItem(PREF_KEY, String(value));\n\n        return localStorage.getItem(PREF_KEY) === String(value);\n\n      } catch (e) {\n        return false;\n      }\n    }\n\n\n    function isRemembering() {\n      return rememberResponses &&\n        rememberResponses.checked === true;\n    }\n\n\n    \/* =======================================================\n       TOAST\n       ======================================================= *\/\n\n    var toastTimer = null;\n\n    function showToast(message) {\n\n      toast.textContent = message;\n\n      toast.classList.add('show');\n\n      clearTimeout(toastTimer);\n\n      toastTimer = setTimeout(function () {\n        toast.classList.remove('show');\n      }, 2500);\n    }\n\n\n    \/* =======================================================\n       REDIMENSIONNEMENT AUTOMATIQUE (peut r\u00e9tr\u00e9cir)\n       ======================================================= *\/\n\n    function autoResize(field) {\n\n      if (\n        field &&\n        field.tagName &&\n        field.tagName.toLowerCase() === 'textarea'\n      ) {\n\n        field.style.height = 'auto';\n\n        field.style.height =\n          Math.max(field.scrollHeight, 100) + 'px';\n      }\n    }\n\n\n    \/* =======================================================\n       \u00c9TAT DE DISPONIBILIT\u00c9 DU STOCKAGE\n       ======================================================= *\/\n\n    function updateStorageAvailabilityUI() {\n\n      if (canUseStorage) return;\n\n      rememberResponses.disabled = true;\n      rememberResponses.checked = false;\n\n      if (privacyExplanation) {\n        privacyExplanation.textContent =\n          'La m\u00e9morisation locale n\u2019est pas disponible sur cet appareil. ' +\n          'Vos r\u00e9ponses ne pourront pas \u00eatre conserv\u00e9es apr\u00e8s votre visite.';\n      }\n    }\n\n\n    \/* =======================================================\n       SAUVEGARDE DES R\u00c9PONSES\n       ======================================================= *\/\n\n    function saveCurrentResponses() {\n\n      if (!isRemembering()) {\n        return;\n      }\n\n      inputs.forEach(function (field) {\n\n        store(\n          'set',\n          field.id,\n          field.value\n        );\n\n      });\n\n\n      valuePills.forEach(function (pill) {\n\n        var pillKey =\n          'pill_' + pill.textContent.trim();\n\n        store(\n          'set',\n          pillKey,\n          pill.classList.contains('active')\n            ? 'true'\n            : 'false'\n        );\n\n      });\n\n    }\n\n\n    \/* =======================================================\n       CHARGEMENT INITIAL\n       ======================================================= *\/\n\n    function loadSavedResponses() {\n\n      var savedPreference = getPreference();\n\n      if (savedPreference === 'true') {\n        rememberResponses.checked = true;\n      } else {\n        rememberResponses.checked = false;\n      }\n\n\n      if (!isRemembering()) {\n        updateStorageAvailabilityUI();\n        return;\n      }\n\n\n      inputs.forEach(function (field) {\n\n        var savedValue =\n          store('get', field.id);\n\n        if (savedValue !== null) {\n          field.value = savedValue;\n        }\n\n        autoResize(field);\n\n      });\n\n\n      valuePills.forEach(function (pill) {\n\n        var pillKey =\n          'pill_' + pill.textContent.trim();\n\n        var isSaved =\n          store('get', pillKey);\n\n        if (isSaved === 'true') {\n\n          pill.classList.add('active');\n\n          pill.setAttribute(\n            'aria-pressed',\n            'true'\n          );\n\n        }\n\n      });\n\n      updateStorageAvailabilityUI();\n    }\n\n\n    \/* =======================================================\n       GESTION DU CHOIX DE CONSERVATION\n       ======================================================= *\/\n\n    rememberResponses.addEventListener(\n      'change',\n      function () {\n\n        if (!canUseStorage) {\n          rememberResponses.checked = false;\n          updateStorageAvailabilityUI();\n          showToast(\n            'La m\u00e9morisation locale n\u2019est pas disponible dans ce navigateur.'\n          );\n          return;\n        }\n\n        if (rememberResponses.checked) {\n\n          var preferenceSaved =\n            setPreference('true');\n\n          if (!preferenceSaved) {\n\n            rememberResponses.checked = false;\n            canUseStorage = false;\n            updateStorageAvailabilityUI();\n            showToast(\n              'La m\u00e9morisation locale n\u2019a pas pu \u00eatre activ\u00e9e sur cet appareil.'\n            );\n            return;\n          }\n\n          saveCurrentResponses();\n\n          showToast(\n            '\u2713 La m\u00e9morisation locale est activ\u00e9e.'\n          );\n\n        } else {\n\n          \/*\n           * On supprime la cl\u00e9 de pr\u00e9f\u00e9rence au lieu\n           * d'\u00e9crire 'false'. Le d\u00e9faut \u00ab rien n'est m\u00e9moris\u00e9 \u00bb\n           * redevient litt\u00e9ralement vrai dans le localStorage.\n           *\/\n\n          setPreference(null);\n\n          clearStoredAnswersOnly();\n\n          showToast(\n            '\u2713 Vos r\u00e9ponses ne seront plus m\u00e9moris\u00e9es.'\n          );\n        }\n      }\n    );\n\n\n    \/* =======================================================\n       CHARGEMENT INITIAL (suite)\n       ======================================================= *\/\n\n    loadSavedResponses();\n\n\n    \/* =======================================================\n       CHAMPS TEXTES\n       ======================================================= *\/\n\n    inputs.forEach(function (field) {\n\n      autoResize(field);\n\n      field.addEventListener(\n        'input',\n        function () {\n\n          autoResize(field);\n\n          if (isRemembering()) {\n\n            store(\n              'set',\n              field.id,\n              field.value\n            );\n          }\n\n        }\n      );\n\n    });\n\n\n    \/* =======================================================\n       VALEURS \u2014 PILULES IND\u00c9PENDANTES\n       ======================================================= *\/\n\n    valuePills.forEach(function (pill) {\n\n      pill.addEventListener(\n        'click',\n        function () {\n\n          var isActive =\n            pill.classList.toggle('active');\n\n          pill.setAttribute(\n            'aria-pressed',\n            isActive\n              ? 'true'\n              : 'false'\n          );\n\n\n          if (isRemembering()) {\n\n            store(\n              'set',\n              'pill_' + pill.textContent.trim(),\n              isActive\n                ? 'true'\n                : 'false'\n            );\n          }\n\n        }\n      );\n\n    });\n\n\n    \/* =======================================================\n       DATE D'IMPRESSION\n       ======================================================= *\/\n\n    function updatePrintDate() {\n\n      var now = new Date();\n\n      var formattedDate =\n        now.toLocaleDateString(\n          'fr-CA',\n          {\n            year: 'numeric',\n            month: 'long',\n            day: 'numeric'\n          }\n        );\n\n      printDate.textContent =\n        'Plan pr\u00e9par\u00e9 le ' +\n        formattedDate;\n    }\n\n\n    window.addEventListener(\n      'beforeprint',\n      updatePrintDate\n    );\n\n\n    \/* =======================================================\n       EFFACER LES DONN\u00c9ES STOCK\u00c9ES (r\u00e9ponses uniquement)\n       ======================================================= *\/\n\n    function clearStoredAnswersOnly() {\n\n      inputs.forEach(function (field) {\n\n        store(\n          'remove',\n          field.id\n        );\n\n      });\n\n\n      valuePills.forEach(function (pill) {\n\n        store(\n          'remove',\n          'pill_' +\n          pill.textContent.trim()\n        );\n\n      });\n\n    }\n\n\n    \/* =======================================================\n       V\u00c9RIFIER SI AU MOINS UNE R\u00c9PONSE EXISTE\n       ======================================================= *\/\n\n    function hasAnyResponse() {\n\n      var hasField = false;\n\n      inputs.forEach(function (field) {\n        if (field.value.trim() !== '') {\n          hasField = true;\n        }\n      });\n\n      if (hasField) return true;\n\n      return wrapper.querySelector('.value-pill.active') !== null;\n    }\n\n\n    \/* =======================================================\n       CONSTRUIRE LE TEXTE \u00c0 COPIER\n       ======================================================= *\/\n\n    function getValue(id) {\n      var element = wrapper.querySelector('#' + id);\n      return element ? element.value.trim() : '';\n    }\n\n\n    function hasValue(value) {\n      return typeof value === 'string' && value.trim() !== '';\n    }\n\n\n    function buildPlanText() {\n\n      var lines = [];\n\n      lines.push('JIRIS \u2014 PASSER \u00c0 L\\'ACTION');\n      lines.push('Quand quelque chose me freine');\n      lines.push('');\n\n      \/* SECTION 1 *\/\n\n      var step1 = getValue('jiris_step1');\n\n      if (hasValue(step1)) {\n        lines.push('1. IDENTIFIER LE GESTE');\n        lines.push('');\n        lines.push('Le geste que je souhaite poser :');\n        lines.push(step1);\n        lines.push('');\n      }\n\n      \/* SECTION 2 *\/\n\n      var step2 = getValue('jiris_step2');\n\n      var selectedPills = Array.from(\n        wrapper.querySelectorAll('.value-pill.active')\n      ).map(function (pill) {\n        return pill.textContent.trim();\n      });\n\n      if (selectedPills.length || hasValue(step2)) {\n\n        lines.push('2. EXPLORER CE QUI ME FREINE');\n        lines.push('');\n\n        if (selectedPills.length) {\n\n          lines.push('Ce qui pourrait intervenir :');\n\n          selectedPills.forEach(function (item) {\n            lines.push('\u2022 ' + item);\n          });\n\n          lines.push('');\n        }\n\n        if (hasValue(step2)) {\n          lines.push('Ce qui me freine en ce moment :');\n          lines.push(step2);\n          lines.push('');\n        }\n      }\n\n      \/* SECTION 3 *\/\n\n      var cards = [\n        {\n          label: '\ud83e\udd1d Un soutien',\n          value: getValue('jiris_supportHuman')\n        },\n        {\n          label: '\ud83d\udcdd Une pr\u00e9paration',\n          value: getValue('jiris_supportPrep')\n        },\n        {\n          label: '\u23f1\ufe0f Un cadre limit\u00e9',\n          value: getValue('jiris_supportTime')\n        },\n        {\n          label: '\ud83e\udde9 Une adaptation',\n          value: getValue('jiris_supportAdapt')\n        },\n        {\n          label: '\ud83d\uded1 Revoir ou reporter',\n          value: getValue('jiris_supportReconsider')\n        }\n      ];\n\n      var validCards = cards.filter(function (card) {\n        return hasValue(card.value);\n      });\n\n      if (validCards.length) {\n\n        lines.push('3. RENDRE LE GESTE PLUS ACCESSIBLE');\n        lines.push('');\n\n        validCards.forEach(function (card) {\n          lines.push(card.label + ' :');\n          lines.push(card.value);\n          lines.push('');\n        });\n      }\n\n      \/* SECTION 4 *\/\n\n      var when = getValue('jiris_actionWhen');\n      var how = getValue('jiris_actionHow');\n      var ifWrong = getValue('jiris_actionIf');\n\n      if (hasValue(when) || hasValue(how) || hasValue(ifWrong)) {\n\n        lines.push('4. D\u00c9FINIR MON PROCHAIN PAS');\n        lines.push('');\n\n        if (hasValue(when)) {\n          lines.push('Quand vais-je essayer ?');\n          lines.push(when);\n          lines.push('');\n        }\n\n        if (hasValue(how)) {\n          lines.push('Comment vais-je essayer ?');\n          lines.push(how);\n          lines.push('');\n        }\n\n        if (hasValue(ifWrong)) {\n          lines.push('Si cela ne se passe pas comme pr\u00e9vu, je peux\u2026');\n          lines.push(ifWrong);\n          lines.push('');\n        }\n      }\n\n      if (lines.length === 3) {\n        lines.push('Aucune r\u00e9ponse n\\'a encore \u00e9t\u00e9 renseign\u00e9e.');\n        lines.push('');\n      }\n\n      lines.push('\u00c0 GARDER EN T\u00caTE');\n      lines.push('');\n      lines.push('Un petit pas n\\'est pas une promesse de r\u00e9ussite.');\n      lines.push('');\n      lines.push(\n        'Une tentative peut donner une information nouvelle sur la situation, ' +\n        'sur ce qui aide, sur ce qui freine ou sur ce qui peut \u00eatre fait ensuite.'\n      );\n      lines.push('');\n      lines.push('JIRIS \u2014 \u00c9couter \u2022 Comprendre \u2022 Inclure.');\n\n      return lines.join('\\n');\n    }\n\n\n    \/* =======================================================\n       COPIE DE SECOURS\n       ======================================================= *\/\n\n    function fallbackCopy(text) {\n\n      var temporary =\n        document.createElement('textarea');\n\n      temporary.value = text;\n\n      temporary.setAttribute(\n        'readonly',\n        ''\n      );\n\n      temporary.style.position =\n        'fixed';\n\n      temporary.style.opacity =\n        '0';\n\n      document.body.appendChild(\n        temporary\n      );\n\n      temporary.select();\n\n      try {\n\n        document.execCommand('copy');\n\n        return true;\n\n      } catch (e) {\n\n        return false;\n\n      } finally {\n\n        document.body.removeChild(\n          temporary\n        );\n\n      }\n    }\n\n\n    \/* =======================================================\n       FEEDBACK COPIE\n       ======================================================= *\/\n\n    function showCopySuccess() {\n\n      copyButton.textContent = '\u2713 Copi\u00e9 !';\n      copyButton.disabled = true;\n\n      showToast('\u2713 Votre plan a \u00e9t\u00e9 copi\u00e9.');\n\n      setTimeout(\n        function () {\n          copyButton.innerHTML = originalCopyText;\n          copyButton.disabled = false;\n        },\n        2000\n      );\n    }\n\n\n    \/* =======================================================\n       COPIER\n       ======================================================= *\/\n\n    copyButton.addEventListener(\n      'click',\n      function () {\n\n        if (!hasAnyResponse()) {\n\n          showToast(\n            'Remplissez au moins un champ avant de copier votre plan.'\n          );\n\n          return;\n        }\n\n\n        var text = buildPlanText();\n\n\n        function success() {\n          showCopySuccess();\n        }\n\n\n        function failure() {\n\n          if (fallbackCopy(text)) {\n\n            success();\n\n          } else {\n\n            showToast(\n              'La copie a \u00e9chou\u00e9. Vous pouvez utiliser \u00ab Imprimer \u00bb.'\n            );\n\n          }\n\n        }\n\n\n        if (\n          navigator.clipboard &&\n          navigator.clipboard.writeText\n        ) {\n\n          navigator.clipboard\n            .writeText(text)\n            .then(success)\n            .catch(failure);\n\n        } else {\n\n          failure();\n\n        }\n\n      }\n    );\n\n\n    \/* =======================================================\n       IMPRESSION\n       ======================================================= *\/\n\n    printButton.addEventListener(\n      'click',\n      function () {\n\n        updatePrintDate();\n\n        window.print();\n\n      }\n    );\n\n\n    \/* =======================================================\n       EFFACER\n       ======================================================= *\/\n\n    clearButton.addEventListener(\n      'click',\n      function () {\n\n        if (\n          !window.confirm(\n            'Effacer toutes vos r\u00e9ponses de cet appareil ?'\n          )\n        ) {\n\n          return;\n\n        }\n\n\n        inputs.forEach(\n          function (field) {\n\n            field.value = '';\n\n            autoResize(field);\n\n          }\n        );\n\n\n        valuePills.forEach(\n          function (pill) {\n\n            pill.classList.remove(\n              'active'\n            );\n\n            pill.setAttribute(\n              'aria-pressed',\n              'false'\n            );\n\n          }\n        );\n\n\n        clearStoredAnswersOnly();\n\n\n        showToast(\n          '\u2713 Vos r\u00e9ponses ont \u00e9t\u00e9 effac\u00e9es.'\n        );\n\n      }\n    );\n\n  })();\n  <\/script>\n\n<\/div>\n<!-- Fin de l'outil JIRIS - Outil 3 -->\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Quand quelque chose me freine JIRIS Passer \u00e0 l&rsquo;action Outil 3 Quand quelque chose me freine Un outil pour avancer lorsque le doute, la peur, la fatigue ou une difficult\u00e9 concr\u00e8te rendent un geste plus difficile. Il arrive de savoir ce que l&rsquo;on souhaite faire et m\u00eame d&rsquo;avoir r\u00e9fl\u00e9chi aux \u00e9tapes, sans parvenir \u00e0 poser [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"iawp_total_views":0,"footnotes":""},"class_list":["post-4538","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/jiris.ca\/en\/wp-json\/wp\/v2\/pages\/4538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jiris.ca\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jiris.ca\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jiris.ca\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jiris.ca\/en\/wp-json\/wp\/v2\/comments?post=4538"}],"version-history":[{"count":24,"href":"https:\/\/jiris.ca\/en\/wp-json\/wp\/v2\/pages\/4538\/revisions"}],"predecessor-version":[{"id":4686,"href":"https:\/\/jiris.ca\/en\/wp-json\/wp\/v2\/pages\/4538\/revisions\/4686"}],"wp:attachment":[{"href":"https:\/\/jiris.ca\/en\/wp-json\/wp\/v2\/media?parent=4538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}