var/cache/dev/twig/53/53f6a6248bee9e9c2b12d5129ecf484c.php line 49

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\Markup;
  8. use Twig\Sandbox\SecurityError;
  9. use Twig\Sandbox\SecurityNotAllowedTagError;
  10. use Twig\Sandbox\SecurityNotAllowedFilterError;
  11. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  12. use Twig\Source;
  13. use Twig\Template;
  14. use Twig\TemplateWrapper;
  15. /* application/whileresume/website/candidates/homepage.html.twig */
  16. class __TwigTemplate_3021bd991837ee306d1f78dd01b7ec9e extends Template
  17. {
  18.     private Source $source;
  19.     /**
  20.      * @var array<string, Template>
  21.      */
  22.     private array $macros = [];
  23.     public function __construct(Environment $env)
  24.     {
  25.         parent::__construct($env);
  26.         $this->source $this->getSourceContext();
  27.         $this->blocks = [
  28.             'title' => [$this'block_title'],
  29.             'description' => [$this'block_description'],
  30.             'robots' => [$this'block_robots'],
  31.             'canonical' => [$this'block_canonical'],
  32.             'css' => [$this'block_css'],
  33.             'body' => [$this'block_body'],
  34.             'footer_js' => [$this'block_footer_js'],
  35.         ];
  36.     }
  37.     protected function doGetParent(array $context): bool|string|Template|TemplateWrapper
  38.     {
  39.         // line 1
  40.         return "application/whileresume/website/candidates/layout-social.html.twig";
  41.     }
  42.     protected function doDisplay(array $context, array $blocks = []): iterable
  43.     {
  44.         $macros $this->macros;
  45.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  46.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""application/whileresume/website/candidates/homepage.html.twig"));
  47.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  48.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""application/whileresume/website/candidates/homepage.html.twig"));
  49.         // line 6
  50.         $context["isFR"] = (CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'6$this->source); })()), "request", [], "any"falsefalsefalse6), "locale", [], "any"falsefalsefalse6) == "fr");
  51.         // line 7
  52.         $context["t"] = ["hero_eyebrow" => (((($tmp =         // line 8
  53. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'8$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Plateforme d’emploi nouvelle génération") : ("A new-generation job platform")), "hero_title_1" => (((($tmp =         // line 9
  54. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'9$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Faites parler") : ("Let your")), "hero_title_2" => (((($tmp =         // line 10
  55. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'10$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("votre CV.") : ("CV speak.")), "hero_title_3" => (((($tmp =         // line 11
  56. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'11$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("On s’occupe du reste.") : ("We handle the rest.")), "hero_lede" => (((($tmp =         // line 12
  57. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'12$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Whileresume met en relation les talents avec les entreprises qui recrutent — sans candidature à rallonge, sans CV à refaire 10 fois. Likez, matchez, échangez.") : ("Whileresume connects talent with hiring companies — no endless applications, no CVs rewritten ten times. Like, match, chat.")), "hero_search_placeholder" => (((($tmp =         // line 13
  58. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'13$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Un poste, une ville, une entreprise…") : ("A job, a city, a company…")), "hero_search_button" => (((($tmp =         // line 14
  59. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'14$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Rechercher") : ("Search")), "hero_byline_jobs" => (((($tmp =         // line 15
  60. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'15$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("offres en ligne") : ("jobs online")), "hero_byline_apps" => (((($tmp =         // line 16
  61. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'16$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("iOS · Android · Web") : ("iOS · Android · Web")), "hero_byline_free" => (((($tmp =         // line 17
  62. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'17$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("gratuit pour les candidats") : ("free for candidates")), "search_loading" => (((($tmp =         // line 18
  63. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'18$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Recherche…") : ("Searching…")), "search_no_results" => (((($tmp =         // line 19
  64. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'19$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Aucune offre ne correspond à votre recherche") : ("No job matches your search")), "search_no_results_hint" => (((($tmp =         // line 20
  65. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'20$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Essayez avec d’autres mots-clés") : ("Try other keywords")), "search_results_count" => (((($tmp =         // line 21
  66. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'21$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("offres trouvées") : ("jobs found")), "search_view_all" => (((($tmp =         // line 22
  67. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'22$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Voir toutes les offres") : ("See all jobs")), "search_view_offer" => (((($tmp =         // line 23
  68. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'23$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Voir l’offre") : ("View job")), "search_clear" => (((($tmp =         // line 24
  69. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'24$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Effacer") : ("Clear")), "paths_eyebrow" => (((($tmp =         // line 26
  70. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'26$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Trois manières d’entrer") : ("Three ways in")), "paths_title" => (((($tmp =         // line 27
  71. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'27$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Choisissez votre point de départ") : ("Choose your starting point")), "paths_lede" => (((($tmp =         // line 28
  72. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'28$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Que vous arriviez avec un CV bien rangé ou simplement avec l’envie de bouger, il existe une porte qui vous correspond.") : ("Whether you arrive with a polished CV or just the urge to move on, there’s a door for you.")), "path1_label" => (((($tmp =         // line 29
  73. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'29$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("J’ai déjà un CV") : ("I have a CV")), "path1_title" => (((($tmp =         // line 30
  74. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'30$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Envoyez. On lit. On améliore.") : ("Send. Read. Refine.")), "path1_desc" => (((($tmp =         // line 31
  75. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'31$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Vous déposez votre CV, on en extrait les compétences, on identifie ce qui peut être renforcé, et on régénère deux versions propres dans la langue et le thème de votre choix.") : ("You upload your CV, we extract your skills, identify what can be strengthened, and regenerate two clean versions in the language and theme of your choice.")), "path1_cta" => (((($tmp =         // line 32
  76. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'32$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Déposer mon CV") : ("Upload my CV")), "path2_label" => (((($tmp =         // line 33
  77. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'33$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Je pars de zéro") : ("Starting fresh")), "path2_title" => (((($tmp =         // line 34
  78. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'34$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Quelques étapes. Un beau CV.") : ("A few steps. A clean CV.")), "path2_desc" => (((($tmp =         // line 35
  79. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'35$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Pas de CV ? On vous accompagne dans un tunnel guidé. À la fin, vous repartez avec un document construit, lisible, prêt à être envoyé — ou à laisser parler pour vous, ici.") : ("No CV? We guide you through. At the end, you walk out with a structured, readable document, ready to send — or to let it speak for you, here.")), "path2_cta" => (((($tmp =         // line 36
  80. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'36$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Construire mon CV") : ("Build my CV")), "path3_label" => (((($tmp =         // line 37
  81. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'37$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Je veux d’abord regarder") : ("Browse first")), "path3_title" => (((($tmp =         // line 38
  82. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'38$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Liker, c’est déjà commencer.") : ("Liking is already starting.")), "path3_desc" => (((($tmp =         // line 39
  83. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'39$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Parcourez les offres et les entreprises. Likez celles qui vous parlent. On en déduit vos goûts, on vous propose mieux, et les recruteurs intéressés peuvent vous trouver.") : ("Browse jobs and companies. Like the ones that speak to you. We learn your taste, suggest better ones, and interested recruiters find you.")), "path3_cta" => (((($tmp =         // line 40
  84. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'40$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Voir les offres") : ("See jobs")), "how_eyebrow" => (((($tmp =         // line 42
  85. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'42$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Comment ça marche") : ("How it works")), "how_title" => (((($tmp =         // line 43
  86. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'43$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Quatre temps, un mouvement.") : ("Four moves, one motion.")), "how_lede" => (((($tmp =         // line 44
  87. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'44$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("On a réduit le parcours à l’essentiel. Pas de remplissage, pas de vous demander deux fois la même chose.") : ("We pared the journey down to the essentials. No filler, no asking the same thing twice.")), "step1_title" => (((($tmp =         // line 45
  88. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'45$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Vous racontez") : ("You tell")), "step1_desc" => (((($tmp =         // line 46
  89. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'46$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("CV uploadé ou tunnel guidé. On collecte ce qu’il faut savoir : compétences, parcours, envies, langues.") : ("CV uploaded or guided tunnel. We collect what matters: skills, experience, wishes, languages.")), "step2_title" => (((($tmp =         // line 47
  90. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'47$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("On analyse") : ("We analyze")), "step2_desc" => (((($tmp =         // line 48
  91. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'48$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Notre intelligence relit votre profil. Forces, axes d’amélioration : vous recevez un retour clair.") : ("Our intelligence re-reads your profile. Strengths, areas to improve: you get a clear report.")), "step3_title" => (((($tmp =         // line 49
  92. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'49$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("On génère") : ("We generate")), "step3_desc" => (((($tmp =         // line 50
  93. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'50$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Votre CV est généré dans deux thèmes, plusieurs couleurs, plusieurs langues. Téléchargeable à tout moment.") : ("Your CV is generated in two themes, multiple colors, multiple languages. Downloadable any time.")), "step4_title" => (((($tmp =         // line 51
  94. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'51$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("On vous expose") : ("We expose you")), "step4_desc" => (((($tmp =         // line 52
  95. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'52$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Votre profil devient visible des recruteurs qui cherchent exactement votre type de talent.") : ("Your profile becomes visible to recruiters looking for exactly your type of talent.")), "apps_eyebrow" => (((($tmp =         // line 54
  96. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'54$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Disponible partout") : ("Available everywhere")), "apps_title" => (((($tmp =         // line 55
  97. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'55$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Trois plateformes, une seule expérience") : ("Three platforms, one experience")), "apps_lede" => (((($tmp =         // line 56
  98. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'56$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Vos préférences vous suivent. Likez une offre dans le métro, envoyez votre CV depuis votre canapé.") : ("Your preferences follow you. Like an offer on the subway, send your CV from the couch.")), "apps_ios" => "iOS""apps_android" => "Android""apps_web" => (((($tmp =         // line 59
  99. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'59$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Web") : ("Web")), "apps_ios_desc" => (((($tmp =         // line 60
  100. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'60$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Téléchargez sur l’App Store") : ("Download on the App Store")), "apps_android_desc" => (((($tmp =         // line 61
  101. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'61$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Téléchargez sur Google Play") : ("Get it on Google Play")), "apps_web_desc" => (((($tmp =         // line 62
  102. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'62$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Connectez-vous depuis le navigateur") : ("Log in from your browser")), "match_eyebrow" => (((($tmp =         // line 64
  103. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'64$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Le match ne se force pas") : ("A match cannot be forced")), "match_title" => (((($tmp =         // line 65
  104. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'65$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Likez. Matchez. Échangez.") : ("Like. Match. Chat.")), "match_lede" => (((($tmp =         // line 66
  105. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'66$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Vous likez ce qui vous plaît, on apprend, et les entreprises intéressées passent la première.") : ("You like what catches your eye, we learn, and interested companies make the first move.")), "match_b1_title" => (((($tmp =         // line 67
  106. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'67$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Likez ce qui vous parle") : ("Like what speaks to you")), "match_b1_desc" => (((($tmp =         // line 68
  107. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'68$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Offres, entreprises, recruteurs. On retient tout pour mieux vous connaître.") : ("Jobs, companies, recruiters. We remember everything to know you better.")), "match_b2_title" => (((($tmp =         // line 69
  108. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'69$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Recommandations sur mesure") : ("Tailored recommendations")), "match_b2_desc" => (((($tmp =         // line 70
  109. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'70$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Plus vous likez, plus on vous propose des offres alignées avec votre profil.") : ("The more you like, the more we suggest offers aligned with your profile.")), "match_b3_title" => (((($tmp =         // line 71
  110. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'71$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Les recruteurs viennent à vous") : ("Recruiters come to you")), "match_b3_desc" => (((($tmp =         // line 72
  111. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'72$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Quand votre profil match, c’est l’entreprise qui passe la première.") : ("When your profile matches, the company makes the first move.")), "match_b4_title" => (((($tmp =         // line 73
  112. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'73$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Offres externes incluses") : ("External offers included")), "match_b4_desc" => (((($tmp =         // line 74
  113. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'74$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("On indexe aussi des offres externes pour maximiser vos chances. Lien direct vers le site de l’employeur.") : ("We also index external offers to maximize your chances. Direct link to the employer’s site.")), "keywords_title" => (((($tmp =         // line 76
  114. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'76$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Cherchez par domaine") : ("Search by field")), "keywords_lede" => (((($tmp =         // line 77
  115. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'77$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Une porte d’entrée par métier") : ("One door per craft")), "popular_title" => (((($tmp =         // line 78
  116. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'78$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Offres populaires") : ("Popular jobs")), "popular_lede" => (((($tmp =         // line 79
  117. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'79$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Une sélection d’offres ouvertes en ce moment, par catégorie") : ("A selection of currently open positions, by category")), "btn_more" => (((($tmp =         // line 80
  118. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'80$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Tout voir") : ("See all")), "articles_title" => (((($tmp =         // line 82
  119. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'82$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Conseils, ressources & guides") : ("Advice, resources & guides")), "articles_lede" => (((($tmp =         // line 83
  120. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'83$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Pour rebondir, négocier, postuler mieux.") : ("To bounce back, negotiate and apply better.")), "articles_view_all" => (((($tmp =         // line 84
  121. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'84$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Voir tous les articles") : ("See all articles")), "read_article" => (((($tmp =         // line 85
  122. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'85$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Lire") : ("Read")), "final_title" => (((($tmp =         // line 87
  123. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'87$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Prêt à propulser votre carrière ?") : ("Ready to take your career further?")), "final_subtitle" => (((($tmp =         // line 88
  124. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'88$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Rejoignez celles et ceux qui ont déjà tourné la page.") : ("Join those who have already turned the page.")), "final_candidate" => (((($tmp =         // line 89
  125. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'89$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Je suis candidat·e") : ("I’m a candidate")), "final_recruiter" => (((($tmp =         // line 90
  126. (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'90$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Je recrute") : ("I’m hiring"))];
  127.         // line 1
  128.         $this->parent $this->load("application/whileresume/website/candidates/layout-social.html.twig"1);
  129.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  130.         
  131.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  132.         
  133.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  134.     }
  135.     // line 93
  136.     /**
  137.      * @return iterable<null|scalar|\Stringable>
  138.      */
  139.     public function block_title(array $context, array $blocks = []): iterable
  140.     {
  141.         $macros $this->macros;
  142.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  143.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  144.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  145.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  146.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["page"]) || array_key_exists("page"$context) ? $context["page"] : (function () { throw new RuntimeError('Variable "page" does not exist.'93$this->source); })()), "shortTitle", [], "any"falsefalsefalse93), "html"nulltrue);
  147.         
  148.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  149.         
  150.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  151.         yield from [];
  152.     }
  153.     // line 94
  154.     /**
  155.      * @return iterable<null|scalar|\Stringable>
  156.      */
  157.     public function block_description(array $context, array $blocks = []): iterable
  158.     {
  159.         $macros $this->macros;
  160.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  161.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""description"));
  162.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  163.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""description"));
  164.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["page"]) || array_key_exists("page"$context) ? $context["page"] : (function () { throw new RuntimeError('Variable "page" does not exist.'94$this->source); })()), "shortDescription", [], "any"falsefalsefalse94), "html"nulltrue);
  165.         
  166.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  167.         
  168.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  169.         yield from [];
  170.     }
  171.     // line 95
  172.     /**
  173.      * @return iterable<null|scalar|\Stringable>
  174.      */
  175.     public function block_robots(array $context, array $blocks = []): iterable
  176.     {
  177.         $macros $this->macros;
  178.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  179.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""robots"));
  180.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  181.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""robots"));
  182.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["page"]) || array_key_exists("page"$context) ? $context["page"] : (function () { throw new RuntimeError('Variable "page" does not exist.'95$this->source); })()), "robots", [], "any"falsefalsefalse95), "html"nulltrue);
  183.         
  184.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  185.         
  186.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  187.         yield from [];
  188.     }
  189.     // line 96
  190.     /**
  191.      * @return iterable<null|scalar|\Stringable>
  192.      */
  193.     public function block_canonical(array $context, array $blocks = []): iterable
  194.     {
  195.         $macros $this->macros;
  196.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  197.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""canonical"));
  198.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  199.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""canonical"));
  200.         yield from $this->load("/vitrine/lexend/components/languages/canonical_classic.html.twig"96)->unwrap()->yield($context);
  201.         
  202.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  203.         
  204.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  205.         yield from [];
  206.     }
  207.     // line 98
  208.     /**
  209.      * @return iterable<null|scalar|\Stringable>
  210.      */
  211.     public function block_css(array $context, array $blocks = []): iterable
  212.     {
  213.         $macros $this->macros;
  214.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  215.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""css"));
  216.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  217.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""css"));
  218.         // line 99
  219.         yield "    ";
  220.         yield from $this->yieldParentBlock("css"$context$blocks);
  221.         yield "
  222.     <style>
  223.         /* ═══════════════════════════════════════════════════════════════════
  224.            VARIABLES
  225.         ═══════════════════════════════════════════════════════════════════ */
  226.         :root{
  227.             --wr-bg:#FBFCFE;
  228.             --wr-card:#FFFFFF;
  229.             --wr-violet:#8A63C0;
  230.             --wr-violet-2:#A98AD3;
  231.             --wr-violet-soft:#F2EDFA;
  232.             --wr-violet-softer:#F8F4FD;
  233.             --wr-violet-dark:#6B47A6;
  234.             --wr-ink:#1E1B2E;
  235.             --wr-ink-2:#374151;
  236.             --wr-muted:#6B7280;
  237.             --wr-muted-2:#9CA3AF;
  238.             --wr-line:#EEF1F7;
  239.             --wr-line-2:#E5E9F0;
  240.             --wr-shadow:0 1px 2px rgba(30,27,46,.04),0 4px 16px rgba(30,27,46,.04);
  241.             --wr-shadow-hover:0 4px 8px rgba(138,99,192,.08),0 12px 32px rgba(138,99,192,.1);
  242.         }
  243.         /* ═══════════════════════════════════════════════════════════════════
  244.            PLEINE LARGEUR — On retire la réservation d'espace de la sidebar droite
  245.            ═══════════════════════════════════════════════════════════════════ */
  246.         body .main-content.right-chat-active{padding-right:0!important}
  247.         body .main-content{padding-right:0!important}
  248.         body .right-chat{display:none!important}
  249.         body .middle-sidebar-bottom .middle-sidebar-left{padding-right:0!important;max-width:none!important;width:100%!important}
  250.         body .middle-sidebar-bottom{max-width:none!important}
  251.         .wr{margin:-15px -15px 0;background:var(--wr-bg);color:var(--wr-ink);font-family:inherit;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
  252.         @media(max-width:991px){.wr{margin:0 -15px}}
  253.         .wr *{box-sizing:border-box}
  254.         .wr a{color:inherit;text-decoration:none}
  255.         /* ═══════════════════════════════════════════════════════════════════
  256.            SECTIONS GENERIC — Fond UNIFIÉ partout (pas d'alternance)
  257.            ═══════════════════════════════════════════════════════════════════ */
  258.         .wr-section{padding:80px 32px;background:var(--wr-bg);position:relative}
  259.         .wr-section--tight{padding:48px 32px}
  260.         @media(max-width:768px){.wr-section{padding:56px 20px}.wr-section--tight{padding:36px 20px}}
  261.         /* Filet décoratif au lieu d'un changement de couleur */
  262.         .wr-section + .wr-section::before{
  263.             content:\"\";
  264.             position:absolute;top:0;left:50%;transform:translateX(-50%);
  265.             width:80px;height:1px;
  266.             background:linear-gradient(90deg,transparent,var(--wr-line-2),transparent);
  267.         }
  268.         .wr-container{max-width:1200px;margin:0 auto;position:relative}
  269.         /* ═══ Eyebrow ═══ */
  270.         .wr-eyebrow{
  271.             display:inline-flex;align-items:center;gap:8px;
  272.             padding:6px 14px;border-radius:100px;
  273.             background:var(--wr-violet-soft);
  274.             color:var(--wr-violet-dark);
  275.             font-size:11.5px;font-weight:600;
  276.             text-transform:uppercase;letter-spacing:.12em;
  277.             margin-bottom:22px;
  278.         }
  279.         .wr-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--wr-violet);animation:wrPulse 2.4s ease-in-out infinite}
  280.         @keyframes wrPulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}
  281.         /* ═══ Titres — THIN + LARGE ═══ */
  282.         .wr-title{
  283.             font-family:inherit;
  284.             font-weight:500;
  285.             font-size:36px;line-height:1.1;letter-spacing:-0.03em;
  286.             color:var(--wr-ink);
  287.             margin:0 auto 16px;
  288.             max-width:920px;
  289.         }
  290.         @media(min-width:768px){.wr-title{font-size:48px}}
  291.         @media(min-width:1024px){.wr-title{font-size:58px}}
  292.         .wr-title--sm{font-size:30px}
  293.         @media(min-width:768px){.wr-title--sm{font-size:38px}}
  294.         .wr-title em{font-style:normal;font-weight:600;color:var(--wr-violet)}
  295.         .wr-lede{
  296.             font-size:17px;line-height:1.55;font-weight:400;
  297.             color:var(--wr-ink-2);
  298.             margin:0 auto;max-width:680px;
  299.         }
  300.         .wr-section-head{text-align:center;margin-bottom:56px}
  301.         /* ═══════════════════════════════════════════════════════════════════
  302.            HERO — Plein texte, fond uni, animation discrète
  303.            ═══════════════════════════════════════════════════════════════════ */
  304.         .hero{
  305.             position:relative;
  306.             background:var(--wr-bg);
  307.             padding:100px 32px 80px;
  308.             overflow:hidden;
  309.         }
  310.         @media(max-width:768px){.hero{padding:60px 20px 60px}}
  311.         /* Décor : 2 blobs très flous violet pâle, plus discrets */
  312.         .hero::before{
  313.             content:\"\";position:absolute;
  314.             top:-260px;right:-180px;width:560px;height:560px;
  315.             background:radial-gradient(circle,rgba(138,99,192,.14) 0%,transparent 65%);
  316.             pointer-events:none;filter:blur(50px);
  317.         }
  318.         .hero::after{
  319.             content:\"\";position:absolute;
  320.             bottom:-200px;left:-180px;width:480px;height:480px;
  321.             background:radial-gradient(circle,rgba(138,99,192,.09) 0%,transparent 65%);
  322.             pointer-events:none;filter:blur(50px);
  323.         }
  324.         .hero-dots{
  325.             position:absolute;inset:0;
  326.             background-image:radial-gradient(circle,rgba(138,99,192,.07) 1px,transparent 1px);
  327.             background-size:32px 32px;
  328.             mask-image:radial-gradient(ellipse 60% 45% at 50% 45%,black,transparent 80%);
  329.             -webkit-mask-image:radial-gradient(ellipse 60% 45% at 50% 45%,black,transparent 80%);
  330.             pointer-events:none;
  331.         }
  332.         .hero-inner{position:relative;z-index:2;max-width:1100px;margin:0 auto;text-align:center}
  333.         .hero-badge{
  334.             display:inline-flex;align-items:center;gap:8px;
  335.             padding:7px 14px;border-radius:100px;
  336.             background:var(--wr-card);
  337.             border:1px solid var(--wr-line-2);
  338.             color:var(--wr-violet-dark);
  339.             font-size:12px;font-weight:500;
  340.             margin-bottom:28px;
  341.             box-shadow:var(--wr-shadow);
  342.             opacity:0;transform:translateY(8px);
  343.             animation:wrFadeUp .8s ease forwards;
  344.         }
  345.         .hero-badge-dot{width:6px;height:6px;border-radius:50%;background:#10B981;box-shadow:0 0 0 0 rgba(16,185,129,.4);animation:wrPulse2 2s ease infinite}
  346.         @keyframes wrPulse2{0%{box-shadow:0 0 0 0 rgba(16,185,129,.4)}70%{box-shadow:0 0 0 8px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
  347.         @keyframes wrFadeUp{to{opacity:1;transform:translateY(0)}}
  348.         /* ═══ Titre hero — THIN large ═══ */
  349.         .hero-title{
  350.             font-weight:400;
  351.             font-size:44px;line-height:1.04;letter-spacing:-0.04em;
  352.             color:var(--wr-ink);
  353.             margin:0 auto 24px;
  354.             max-width:1000px;
  355.         }
  356.         @media(min-width:768px){.hero-title{font-size:68px;letter-spacing:-0.045em}}
  357.         @media(min-width:1100px){.hero-title{font-size:88px}}
  358.         .hero-title-line{display:block;opacity:0;transform:translateY(12px);animation:wrFadeUp .9s cubic-bezier(.2,.7,.2,1) forwards}
  359.         .hero-title-line:nth-child(1){animation-delay:.1s}
  360.         .hero-title-line:nth-child(2){animation-delay:.25s}
  361.         .hero-title-line:nth-child(3){animation-delay:.4s}
  362.         .hero-title-accent{
  363.             color:var(--wr-violet);
  364.             font-weight:500;
  365.             position:relative;display:inline-block;
  366.         }
  367.         .hero-title-accent::after{
  368.             content:\"\";
  369.             position:absolute;left:0;right:0;bottom:.04em;
  370.             height:.1em;
  371.             background:var(--wr-violet);
  372.             opacity:.22;
  373.             transform-origin:left center;
  374.             transform:scaleX(0);
  375.             animation:wrUnderline 1.1s cubic-bezier(.6,0,.4,1) 1s forwards;
  376.             border-radius:2px;
  377.         }
  378.         @keyframes wrUnderline{to{transform:scaleX(1)}}
  379.         .hero-lede{
  380.             font-size:17px;line-height:1.55;color:var(--wr-ink-2);font-weight:400;
  381.             margin:0 auto 36px;max-width:620px;
  382.             opacity:0;animation:wrFadeUp .9s ease 1.1s forwards;
  383.         }
  384.         @media(min-width:768px){.hero-lede{font-size:18px}}
  385.         /* ═══════════════════════════════════════════════════════════════════
  386.            HERO — RECHERCHE INLINE (avec résultats AJAX)
  387.            ═══════════════════════════════════════════════════════════════════ */
  388.         .hero-search-wrap{
  389.             max-width:680px;margin:0 auto 28px;
  390.             opacity:0;animation:wrFadeUp .9s ease 1.3s forwards;
  391.         }
  392.         .hero-search{
  393.             display:flex;align-items:center;
  394.             background:var(--wr-card);
  395.             border:1px solid var(--wr-line-2);
  396.             border-radius:16px;
  397.             padding:6px;
  398.             box-shadow:0 2px 6px rgba(30,27,46,.04),0 16px 40px rgba(138,99,192,.08);
  399.             transition:transform .2s,box-shadow .2s,border-color .2s,border-radius .25s;
  400.             position:relative;z-index:5;
  401.         }
  402.         .hero-search:focus-within,
  403.         .hero-search.has-results{
  404.             border-color:var(--wr-violet-2);
  405.             box-shadow:0 4px 10px rgba(30,27,46,.05),0 20px 50px rgba(138,99,192,.16);
  406.         }
  407.         .hero-search.has-results{
  408.             border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:var(--wr-line);
  409.         }
  410.         .hero-search-icon{
  411.             display:flex;align-items:center;justify-content:center;
  412.             width:42px;height:42px;flex-shrink:0;color:var(--wr-muted-2);
  413.         }
  414.         .hero-search-icon svg{width:18px;height:18px}
  415.         .hero-search-input{
  416.             flex:1;border:0;outline:0;background:transparent;
  417.             font-size:15px;font-family:inherit;color:var(--wr-ink);
  418.             padding:0 6px;height:42px;min-width:0;
  419.         }
  420.         .hero-search-input::placeholder{color:var(--wr-muted-2)}
  421.         .hero-search-clear{
  422.             display:none;align-items:center;justify-content:center;
  423.             width:32px;height:32px;flex-shrink:0;color:var(--wr-muted-2);
  424.             border:0;background:transparent;cursor:pointer;border-radius:8px;
  425.             transition:background .15s,color .15s;
  426.         }
  427.         .hero-search-clear:hover{background:var(--wr-violet-soft);color:var(--wr-violet)}
  428.         .hero-search-clear svg{width:14px;height:14px}
  429.         .hero-search-clear.is-visible{display:inline-flex}
  430.         .hero-search-btn{
  431.             background:var(--wr-violet);color:#fff;
  432.             border:0;padding:0 22px;border-radius:11px;
  433.             font-size:14px;font-weight:600;font-family:inherit;
  434.             cursor:pointer;flex-shrink:0;height:42px;
  435.             display:inline-flex;align-items:center;gap:6px;
  436.             transition:background .15s,transform .15s,box-shadow .15s;
  437.             box-shadow:0 4px 12px rgba(138,99,192,.3);
  438.         }
  439.         .hero-search-btn:hover{background:var(--wr-violet-dark);transform:translateY(-1px);box-shadow:0 6px 18px rgba(138,99,192,.4)}
  440.         .hero-search-btn svg{width:13px;height:13px}
  441.         @media(max-width:540px){.hero-search-btn span{display:none}.hero-search-btn{padding:0 14px}}
  442.         /* Résultats inline */
  443.         .hero-search-results{
  444.             background:var(--wr-card);
  445.             border:1px solid var(--wr-line);
  446.             border-top:0;
  447.             border-radius:0 0 16px 16px;
  448.             max-height:0;
  449.             overflow:hidden;
  450.             transition:max-height .35s ease,padding .25s ease;
  451.             text-align:left;
  452.             box-shadow:0 16px 40px rgba(138,99,192,.1);
  453.             padding:0 14px;
  454.         }
  455.         .hero-search-results.is-visible{max-height:560px;overflow-y:auto;padding:8px 14px 12px}
  456.         .hero-search-results::-webkit-scrollbar{width:6px}
  457.         .hero-search-results::-webkit-scrollbar-thumb{background:var(--wr-line-2);border-radius:6px}
  458.         .hero-search-meta{
  459.             display:flex;align-items:center;justify-content:space-between;gap:10px;
  460.             padding:10px 4px;
  461.             font-size:11.5px;color:var(--wr-muted);
  462.             text-transform:uppercase;letter-spacing:.08em;font-weight:600;
  463.         }
  464.         .hero-search-meta strong{color:var(--wr-violet);font-weight:700;font-size:13px}
  465.         .hero-search-meta a{color:var(--wr-violet);font-weight:700;display:inline-flex;align-items:center;gap:4px}
  466.         .hero-search-meta a svg{width:11px;height:11px}
  467.         .hero-search-result{
  468.             display:flex;align-items:center;gap:12px;
  469.             padding:10px 8px;border-radius:11px;
  470.             text-decoration:none;color:inherit;
  471.             transition:background .15s;
  472.         }
  473.         .hero-search-result:hover{background:var(--wr-violet-softer);text-decoration:none;color:inherit}
  474.         .hero-search-result-logo{
  475.             width:38px;height:38px;border-radius:10px;flex-shrink:0;
  476.             background:var(--wr-violet-soft);color:var(--wr-violet);
  477.             display:flex;align-items:center;justify-content:center;
  478.             font-weight:700;font-size:13px;overflow:hidden;
  479.         }
  480.         .hero-search-result-logo img{width:100%;height:100%;object-fit:cover}
  481.         .hero-search-result-info{flex:1;min-width:0}
  482.         .hero-search-result-title{
  483.             font-weight:600;font-size:13.5px;color:var(--wr-ink);
  484.             margin:0 0 2px;line-height:1.3;
  485.             white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  486.         }
  487.         .hero-search-result-meta{
  488.             font-size:11.5px;color:var(--wr-muted);margin:0;
  489.             white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  490.         }
  491.         .hero-search-result-cta{
  492.             font-size:11px;font-weight:600;color:var(--wr-violet);
  493.             text-transform:uppercase;letter-spacing:.06em;
  494.             display:inline-flex;align-items:center;gap:4px;flex-shrink:0;
  495.             opacity:0;transition:opacity .15s,transform .15s;transform:translateX(-4px);
  496.         }
  497.         .hero-search-result:hover .hero-search-result-cta{opacity:1;transform:translateX(0)}
  498.         .hero-search-result-cta svg{width:11px;height:11px}
  499.         .hero-search-empty{
  500.             text-align:center;padding:36px 20px;color:var(--wr-muted);
  501.         }
  502.         .hero-search-empty-icon{
  503.             width:48px;height:48px;border-radius:14px;
  504.             background:var(--wr-violet-soft);color:var(--wr-violet);
  505.             display:inline-flex;align-items:center;justify-content:center;
  506.             margin-bottom:14px;
  507.         }
  508.         .hero-search-empty-icon svg{width:22px;height:22px}
  509.         .hero-search-empty-title{font-weight:600;font-size:14px;color:var(--wr-ink);margin:0 0 4px}
  510.         .hero-search-empty-hint{font-size:13px;margin:0;color:var(--wr-muted)}
  511.         .hero-search-loading{
  512.             text-align:center;padding:30px 20px;color:var(--wr-muted);font-size:13px;
  513.             display:flex;align-items:center;justify-content:center;gap:10px;
  514.         }
  515.         .hero-search-spinner{
  516.             width:16px;height:16px;border-radius:50%;
  517.             border:2px solid var(--wr-violet-soft);border-top-color:var(--wr-violet);
  518.             animation:wrSpin .7s linear infinite;
  519.         }
  520.         @keyframes wrSpin{to{transform:rotate(360deg)}}
  521.         /* Byline */
  522.         .hero-byline{
  523.             display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;
  524.             font-size:13px;color:var(--wr-muted);
  525.             opacity:0;animation:wrFadeUp .9s ease 1.5s forwards;
  526.         }
  527.         .hero-byline strong{color:var(--wr-violet);font-weight:700;font-size:15px;margin-right:3px}
  528.         .hero-byline-sep{color:var(--wr-line-2)}
  529.         .hero-byline svg{width:14px;height:14px;color:#10B981;flex-shrink:0}
  530.         .hero-byline span{display:inline-flex;align-items:center;gap:6px}
  531.         @media(max-width:540px){.hero-byline{gap:10px;font-size:12px}.hero-byline-sep{display:none}}
  532.         /* ═══════════════════════════════════════════════════════════════════
  533.            SECTION : 3 PARCOURS
  534.            ═══════════════════════════════════════════════════════════════════ */
  535.         .paths-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  536.         @media(max-width:991px){.paths-grid{grid-template-columns:1fr;gap:14px}}
  537.         .path-card{
  538.             position:relative;
  539.             background:var(--wr-card);
  540.             border:1px solid var(--wr-line);
  541.             border-radius:20px;padding:28px;
  542.             display:flex;flex-direction:column;
  543.             transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  544.             box-shadow:var(--wr-shadow);
  545.         }
  546.         .path-card:hover{transform:translateY(-4px);box-shadow:var(--wr-shadow-hover);border-color:var(--wr-violet-2)}
  547.         .path-card-illu{
  548.             width:64px;height:64px;border-radius:16px;
  549.             background:var(--wr-violet-soft);color:var(--wr-violet);
  550.             display:flex;align-items:center;justify-content:center;
  551.             margin-bottom:22px;
  552.         }
  553.         .path-card-illu svg{width:30px;height:30px}
  554.         .path-card-label{
  555.             display:inline-block;
  556.             font-size:11px;font-weight:600;
  557.             color:var(--wr-violet-dark);text-transform:uppercase;letter-spacing:.1em;
  558.             margin-bottom:10px;align-self:flex-start;
  559.         }
  560.         .path-card-title{
  561.             font-weight:500;font-size:22px;line-height:1.25;letter-spacing:-0.015em;
  562.             color:var(--wr-ink);margin:0 0 10px;
  563.         }
  564.         .path-card-desc{
  565.             font-size:14px;line-height:1.6;color:var(--wr-muted);
  566.             margin:0 0 22px;flex:1;
  567.         }
  568.         .path-card-cta{
  569.             display:inline-flex;align-items:center;justify-content:center;gap:6px;
  570.             background:var(--wr-violet);color:#fff;
  571.             padding:12px 18px;border-radius:11px;
  572.             font-size:13px;font-weight:600;
  573.             align-self:stretch;
  574.             transition:background .15s,transform .15s,box-shadow .15s;
  575.             box-shadow:0 2px 8px rgba(138,99,192,.2);
  576.         }
  577.         .path-card-cta:hover{background:var(--wr-violet-dark);color:#fff;text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 12px rgba(138,99,192,.3)}
  578.         .path-card-cta svg{width:13px;height:13px;transition:transform .15s}
  579.         .path-card-cta:hover svg{transform:translateX(3px)}
  580.         /* ═══════════════════════════════════════════════════════════════════
  581.            MÉTHODE
  582.            ═══════════════════════════════════════════════════════════════════ */
  583.         .method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  584.         @media(max-width:991px){.method-grid{grid-template-columns:repeat(2,1fr)}}
  585.         @media(max-width:540px){.method-grid{grid-template-columns:1fr}}
  586.         .method-step{
  587.             background:var(--wr-card);
  588.             border:1px solid var(--wr-line);
  589.             border-radius:18px;padding:24px;
  590.             transition:transform .2s,box-shadow .2s,border-color .2s;
  591.         }
  592.         .method-step:hover{transform:translateY(-3px);box-shadow:var(--wr-shadow-hover);border-color:var(--wr-violet-soft)}
  593.         .method-num{
  594.             display:inline-flex;align-items:center;justify-content:center;
  595.             width:36px;height:36px;border-radius:10px;
  596.             background:var(--wr-violet-soft);color:var(--wr-violet);
  597.             font-weight:700;font-size:14px;margin-bottom:16px;
  598.         }
  599.         .method-title{
  600.             font-weight:500;font-size:17px;line-height:1.25;letter-spacing:-0.005em;
  601.             color:var(--wr-ink);margin:0 0 6px;
  602.         }
  603.         .method-desc{font-size:13px;line-height:1.55;color:var(--wr-muted);margin:0}
  604.         /* ═══════════════════════════════════════════════════════════════════
  605.            MATCH
  606.            ═══════════════════════════════════════════════════════════════════ */
  607.         .match-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
  608.         @media(max-width:991px){.match-grid{grid-template-columns:1fr;gap:40px}}
  609.         .match-text .wr-title{margin-left:0;text-align:left}
  610.         .match-text .wr-lede{margin-left:0;text-align:left}
  611.         .match-text .wr-eyebrow{margin-bottom:20px}
  612.         .match-features{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px}
  613.         @media(max-width:540px){.match-features{grid-template-columns:1fr}}
  614.         .match-feature{
  615.             background:var(--wr-card);border:1px solid var(--wr-line);
  616.             border-radius:14px;padding:18px;
  617.             transition:transform .15s,border-color .15s,box-shadow .15s;
  618.         }
  619.         .match-feature:hover{transform:translateY(-2px);border-color:var(--wr-violet-soft);box-shadow:var(--wr-shadow)}
  620.         .match-feature-icon{
  621.             width:34px;height:34px;border-radius:10px;
  622.             background:var(--wr-violet-soft);color:var(--wr-violet);
  623.             display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px;
  624.         }
  625.         .match-feature-icon svg{width:16px;height:16px}
  626.         .match-feature-title{font-weight:600;font-size:14px;line-height:1.3;color:var(--wr-ink);margin:0 0 5px}
  627.         .match-feature-desc{font-size:12.5px;line-height:1.5;color:var(--wr-muted);margin:0}
  628.         .match-visual{position:relative;display:flex;justify-content:center;align-items:center;padding:40px 0}
  629.         .match-stack{position:relative;width:100%;max-width:340px;height:340px}
  630.         .match-stack-card{
  631.             position:absolute;
  632.             background:var(--wr-card);border:1px solid var(--wr-line);
  633.             border-radius:16px;padding:14px;
  634.             display:flex;align-items:center;gap:12px;
  635.             box-shadow:var(--wr-shadow);width:100%;
  636.             transition:transform .3s ease;
  637.         }
  638.         .match-stack-card:nth-child(1){top:0;transform:rotate(-6deg) translateX(-10px);z-index:1;animation:wrFloat 6s ease-in-out infinite}
  639.         .match-stack-card:nth-child(2){top:78px;left:14px;transform:rotate(2deg);z-index:3;box-shadow:0 16px 40px rgba(138,99,192,.18);animation:wrFloat 6s ease-in-out -2s infinite}
  640.         .match-stack-card:nth-child(3){top:156px;transform:rotate(-3deg) translateX(8px);z-index:2;animation:wrFloat 6s ease-in-out -4s infinite}
  641.         .match-stack-card:nth-child(4){top:234px;left:20px;transform:rotate(4deg);z-index:1;animation:wrFloat 6s ease-in-out -1s infinite}
  642.         @keyframes wrFloat{0%,100%{transform:translateY(0) rotate(var(--r,0))}50%{transform:translateY(-6px) rotate(var(--r,0))}}
  643.         .match-stack-logo{
  644.             width:38px;height:38px;border-radius:10px;
  645.             background:var(--wr-violet-soft);color:var(--wr-violet);
  646.             display:flex;align-items:center;justify-content:center;
  647.             font-weight:700;font-size:14px;flex-shrink:0;
  648.         }
  649.         .match-stack-info{flex:1;min-width:0}
  650.         .match-stack-title{font-weight:600;font-size:13px;color:var(--wr-ink);margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
  651.         .match-stack-meta{font-size:11px;color:var(--wr-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  652.         .match-stack-heart{width:28px;height:28px;border-radius:50%;background:#FEE2E2;color:#EF4444;display:flex;align-items:center;justify-content:center;flex-shrink:0}
  653.         .match-stack-heart svg{width:13px;height:13px;fill:currentColor}
  654.         /* ═══════════════════════════════════════════════════════════════════
  655.            APPS
  656.            ═══════════════════════════════════════════════════════════════════ */
  657.         .apps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  658.         @media(max-width:768px){.apps-grid{grid-template-columns:1fr}}
  659.         .app-card{
  660.             background:var(--wr-card);border:1px solid var(--wr-line);
  661.             border-radius:18px;padding:24px;
  662.             display:flex;flex-direction:column;align-items:flex-start;
  663.             transition:transform .2s,border-color .2s,box-shadow .2s;
  664.         }
  665.         .app-card:hover{transform:translateY(-3px);border-color:var(--wr-violet-2);box-shadow:var(--wr-shadow-hover);color:inherit;text-decoration:none}
  666.         .app-card-icon{
  667.             width:48px;height:48px;border-radius:14px;
  668.             background:var(--wr-violet-soft);color:var(--wr-violet);
  669.             display:inline-flex;align-items:center;justify-content:center;
  670.             margin-bottom:18px;
  671.         }
  672.         .app-card-icon svg{width:22px;height:22px}
  673.         .app-card-name{font-weight:500;font-size:18px;letter-spacing:-0.01em;color:var(--wr-ink);margin:0 0 6px}
  674.         .app-card-desc{font-size:13px;line-height:1.5;color:var(--wr-muted);margin:0 0 16px;flex:1}
  675.         .app-card-cta{font-size:12px;font-weight:600;color:var(--wr-violet);text-transform:uppercase;letter-spacing:.1em;display:inline-flex;align-items:center;gap:6px}
  676.         .app-card-cta svg{width:11px;height:11px;transition:transform .15s}
  677.         .app-card:hover .app-card-cta svg{transform:translateX(3px)}
  678.         /* ═══════════════════════════════════════════════════════════════════
  679.            KEYWORDS
  680.            ═══════════════════════════════════════════════════════════════════ */
  681.         .keywords-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:920px;margin:0 auto}
  682.         .keyword-pill{
  683.             display:inline-flex;align-items:center;gap:8px;
  684.             padding:9px 16px;border-radius:100px;
  685.             background:var(--wr-card);border:1px solid var(--wr-line-2);
  686.             color:var(--wr-ink-2);
  687.             font-size:13.5px;font-weight:500;
  688.             transition:transform .15s,border-color .15s,background .15s,color .15s,box-shadow .15s;
  689.         }
  690.         .keyword-pill:hover{transform:translateY(-2px);border-color:var(--wr-violet);background:var(--wr-violet-soft);color:var(--wr-violet-dark);text-decoration:none;box-shadow:0 4px 10px rgba(138,99,192,.12)}
  691.         .keyword-pill-icon{font-size:14px;line-height:1}
  692.         /* ═══════════════════════════════════════════════════════════════════
  693.            OFFRES POPULAIRES
  694.            ═══════════════════════════════════════════════════════════════════ */
  695.         .listings-block{margin-bottom:32px}
  696.         .listings-block:last-child{margin-bottom:0}
  697.         .listings-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}
  698.         .listings-block-title{
  699.             display:inline-flex;align-items:center;gap:10px;
  700.             font-weight:500;font-size:18px;letter-spacing:-0.005em;
  701.             color:var(--wr-ink);margin:0;
  702.         }
  703.         .listings-block-icon{font-size:20px;line-height:1}
  704.         .listings-block-link{
  705.             display:inline-flex;align-items:center;gap:4px;
  706.             padding:6px 12px;border-radius:100px;
  707.             font-size:12px;font-weight:600;
  708.             color:var(--wr-violet);
  709.             text-transform:uppercase;letter-spacing:.06em;
  710.             border:1px solid var(--wr-violet-soft);
  711.             background:var(--wr-card);
  712.             transition:background .15s,border-color .15s,transform .15s;
  713.         }
  714.         .listings-block-link:hover{background:var(--wr-violet-soft);border-color:var(--wr-violet);text-decoration:none;color:var(--wr-violet-dark);transform:translateX(2px)}
  715.         .listings-block-link svg{width:11px;height:11px}
  716.         .listings-jobs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  717.         @media(max-width:768px){.listings-jobs{grid-template-columns:1fr}}
  718.         .listing-job{
  719.             display:flex;align-items:center;gap:14px;
  720.             background:var(--wr-card);border:1px solid var(--wr-line);
  721.             border-radius:14px;padding:12px;
  722.             transition:transform .15s,border-color .15s,box-shadow .15s;
  723.         }
  724.         .listing-job:hover{transform:translateY(-2px);border-color:var(--wr-violet-soft);box-shadow:var(--wr-shadow);color:inherit;text-decoration:none}
  725.         .listing-job-logo{
  726.             width:42px;height:42px;border-radius:11px;flex-shrink:0;
  727.             background:var(--wr-violet-soft);color:var(--wr-violet);
  728.             display:flex;align-items:center;justify-content:center;
  729.             font-weight:700;font-size:14px;overflow:hidden;
  730.         }
  731.         .listing-job-logo img{width:100%;height:100%;object-fit:cover}
  732.         .listing-job-info{flex:1;min-width:0}
  733.         .listing-job-title{font-weight:600;font-size:13.5px;color:var(--wr-ink);margin:0 0 2px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  734.         .listing-job-meta{font-size:11.5px;color:var(--wr-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  735.         .listing-job-arrow{flex-shrink:0;color:var(--wr-muted-2);transition:color .15s,transform .15s}
  736.         .listing-job-arrow svg{width:14px;height:14px}
  737.         .listing-job:hover .listing-job-arrow{color:var(--wr-violet);transform:translateX(2px)}
  738.         /* ═══════════════════════════════════════════════════════════════════
  739.            ARTICLES
  740.            ═══════════════════════════════════════════════════════════════════ */
  741.         .articles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  742.         @media(max-width:991px){.articles-grid{grid-template-columns:repeat(2,1fr)}}
  743.         @media(max-width:640px){.articles-grid{grid-template-columns:1fr}}
  744.         .wr-article{
  745.             background:var(--wr-card);border:1px solid var(--wr-line);
  746.             border-radius:18px;overflow:hidden;
  747.             display:flex;flex-direction:column;
  748.             transition:transform .2s,box-shadow .2s,border-color .2s;
  749.         }
  750.         .wr-article:hover{transform:translateY(-3px);box-shadow:var(--wr-shadow-hover);border-color:var(--wr-violet-2);color:inherit;text-decoration:none}
  751.         .wr-article-img{aspect-ratio:16/10;background:var(--wr-violet-soft);overflow:hidden;flex-shrink:0}
  752.         .wr-article-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
  753.         .wr-article:hover .wr-article-img img{transform:scale(1.04)}
  754.         .wr-article-body{padding:18px;flex:1;display:flex;flex-direction:column}
  755.         .wr-article-meta{font-size:11px;font-weight:600;color:var(--wr-violet-dark);text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px}
  756.         .wr-article-title{font-weight:500;font-size:16px;line-height:1.35;letter-spacing:-0.005em;color:var(--wr-ink);margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  757.         .wr-article-excerpt{font-size:13px;line-height:1.5;color:var(--wr-muted);margin:0 0 14px;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  758.         .wr-article-link{font-size:12px;font-weight:600;color:var(--wr-violet);text-transform:uppercase;letter-spacing:.06em;display:inline-flex;align-items:center;gap:4px}
  759.         .wr-article-link svg{width:11px;height:11px;transition:transform .15s}
  760.         .wr-article:hover .wr-article-link svg{transform:translateX(3px)}
  761.         .articles-cta{text-align:center;margin-top:36px}
  762.         .articles-cta a{
  763.             display:inline-flex;align-items:center;gap:8px;
  764.             padding:12px 22px;border-radius:11px;
  765.             background:var(--wr-card);border:1px solid var(--wr-line-2);
  766.             color:var(--wr-violet);
  767.             font-size:13px;font-weight:600;
  768.             transition:background .15s,transform .15s,border-color .15s;
  769.         }
  770.         .articles-cta a:hover{background:var(--wr-violet-soft);border-color:var(--wr-violet);transform:translateY(-2px);text-decoration:none;color:var(--wr-violet-dark)}
  771.         .articles-cta svg{width:12px;height:12px}
  772.         /* ═══════════════════════════════════════════════════════════════════
  773.            CTA FINAL
  774.            ═══════════════════════════════════════════════════════════════════ */
  775.         .final-card{
  776.             position:relative;
  777.             background:linear-gradient(135deg,var(--wr-violet) 0%,var(--wr-violet-dark) 100%);
  778.             border-radius:28px;
  779.             padding:64px 32px;text-align:center;
  780.             color:#fff;overflow:hidden;
  781.             box-shadow:0 20px 60px -12px rgba(138,99,192,.4);
  782.         }
  783.         @media(max-width:768px){.final-card{padding:48px 24px;border-radius:22px}}
  784.         .final-card::before{content:\"\";position:absolute;top:-100px;right:-100px;width:300px;height:300px;background:radial-gradient(circle,rgba(255,255,255,.18) 0%,transparent 65%);pointer-events:none}
  785.         .final-card::after{content:\"\";position:absolute;bottom:-120px;left:-100px;width:280px;height:280px;background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 65%);pointer-events:none}
  786.         .final-title{font-weight:500;font-size:32px;line-height:1.1;letter-spacing:-0.025em;color:#fff;margin:0 0 14px;position:relative;z-index:2}
  787.         @media(min-width:768px){.final-title{font-size:44px}}
  788.         .final-subtitle{font-size:16px;line-height:1.55;color:rgba(255,255,255,.88);margin:0 auto 32px;max-width:520px;position:relative;z-index:2}
  789.         .final-buttons{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;position:relative;z-index:2}
  790.         .final-btn{
  791.             display:inline-flex;align-items:center;gap:8px;
  792.             padding:14px 24px;border-radius:12px;
  793.             font-size:14px;font-weight:600;
  794.             transition:transform .15s,background .15s,box-shadow .15s;
  795.         }
  796.         .final-btn--primary{background:#fff;color:var(--wr-violet-dark)}
  797.         .final-btn--primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.15);color:var(--wr-violet-dark);text-decoration:none}
  798.         .final-btn--ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  799.         .final-btn--ghost:hover{background:rgba(255,255,255,.2);transform:translateY(-2px);color:#fff;text-decoration:none}
  800.         .final-btn svg{width:14px;height:14px;transition:transform .15s}
  801.         .final-btn:hover svg{transform:translateX(3px)}
  802.     </style>
  803. ";
  804.         
  805.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  806.         
  807.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  808.         yield from [];
  809.     }
  810.     // line 724
  811.     /**
  812.      * @return iterable<null|scalar|\Stringable>
  813.      */
  814.     public function block_body(array $context, array $blocks = []): iterable
  815.     {
  816.         $macros $this->macros;
  817.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  818.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  819.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  820.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  821.         // line 725
  822.         yield "    <div class=\"wr\">
  823.         ";
  824.         // line 728
  825.         yield "        <section class=\"hero\">
  826.             <span class=\"hero-dots\"></span>
  827.             <div class=\"hero-inner\">
  828.             <span class=\"hero-badge\">
  829.                 <span class=\"hero-badge-dot\"></span>
  830.                 ";
  831.         // line 734
  832.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'734$this->source); })()), "hero_eyebrow", [], "any"falsefalsefalse734), "html"nulltrue);
  833.         yield "
  834.             </span>
  835.                 <h1 class=\"hero-title\">
  836.                     <span class=\"hero-title-line\">";
  837.         // line 738
  838.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'738$this->source); })()), "hero_title_1", [], "any"falsefalsefalse738), "html"nulltrue);
  839.         yield "</span>
  840.                     <span class=\"hero-title-line\"><span class=\"hero-title-accent\">";
  841.         // line 739
  842.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'739$this->source); })()), "hero_title_2", [], "any"falsefalsefalse739), "html"nulltrue);
  843.         yield "</span></span>
  844.                     <span class=\"hero-title-line\">";
  845.         // line 740
  846.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'740$this->source); })()), "hero_title_3", [], "any"falsefalsefalse740), "html"nulltrue);
  847.         yield "</span>
  848.                 </h1>
  849.                 <p class=\"hero-lede\">";
  850.         // line 743
  851.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'743$this->source); })()), "hero_lede", [], "any"falsefalsefalse743), "html"nulltrue);
  852.         yield "</p>
  853.                 ";
  854.         // line 746
  855.         yield "                <div class=\"hero-search-wrap\">
  856.                     <form class=\"hero-search\" id=\"wrHeroSearch\" autocomplete=\"off\"
  857.                           data-search-url=\"";
  858.         // line 748
  859.         if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'748$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  860.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_api_jobs_search", ["_locale" => "fr"]);
  861.         } else {
  862.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("api_jobs_search");
  863.         }
  864.         yield "\"
  865.                           data-jobs-list-url=\"";
  866.         // line 749
  867.         if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'749$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  868.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_whileresume_jobs_list", ["_locale" => "fr"]);
  869.         } else {
  870.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("whileresume_jobs_list");
  871.         }
  872.         yield "\">
  873.                     <span class=\"hero-search-icon\">
  874.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  875.                             <circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/>
  876.                         </svg>
  877.                     </span>
  878.                         <input type=\"text\" name=\"q\" id=\"wrHeroSearchInput\" class=\"hero-search-input\" placeholder=\"";
  879.         // line 755
  880.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'755$this->source); })()), "hero_search_placeholder", [], "any"falsefalsefalse755), "html"nulltrue);
  881.         yield "\" />
  882.                         <button type=\"button\" class=\"hero-search-clear\" id=\"wrHeroSearchClear\" aria-label=\"";
  883.         // line 756
  884.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'756$this->source); })()), "search_clear", [], "any"falsefalsefalse756), "html"nulltrue);
  885.         yield "\">
  886.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  887.                                 <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/>
  888.                             </svg>
  889.                         </button>
  890.                         <button type=\"submit\" class=\"hero-search-btn\">
  891.                             <span>";
  892.         // line 762
  893.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'762$this->source); })()), "hero_search_button", [], "any"falsefalsefalse762), "html"nulltrue);
  894.         yield "</span>
  895.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  896.                                 <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/>
  897.                             </svg>
  898.                         </button>
  899.                     </form>
  900.                     ";
  901.         // line 770
  902.         yield "                    <div class=\"hero-search-results\" id=\"wrHeroSearchResults\" aria-live=\"polite\"></div>
  903.                 </div>
  904.                 <div class=\"hero-byline\">
  905.                     <span><strong>";
  906.         // line 774
  907.         yield (((array_key_exists("totalJobs"$context) &&  !(null === $context["totalJobs"]))) ? ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["totalJobs"], "html"nulltrue)) : ("—"));
  908.         yield "</strong> ";
  909.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'774$this->source); })()), "hero_byline_jobs", [], "any"falsefalsefalse774), "html"nulltrue);
  910.         yield "</span>
  911.                     <span class=\"hero-byline-sep\">·</span>
  912.                     <span>";
  913.         // line 776
  914.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'776$this->source); })()), "hero_byline_apps", [], "any"falsefalsefalse776), "html"nulltrue);
  915.         yield "</span>
  916.                     <span class=\"hero-byline-sep\">·</span>
  917.                     <span>
  918.                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>
  919.                     ";
  920.         // line 780
  921.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'780$this->source); })()), "hero_byline_free", [], "any"falsefalsefalse780), "html"nulltrue);
  922.         yield "
  923.                 </span>
  924.                 </div>
  925.             </div>
  926.         </section>
  927.         ";
  928.         // line 787
  929.         yield "        <section class=\"wr-section\">
  930.             <div class=\"wr-container\">
  931.                 <div class=\"wr-section-head\">
  932.                     <span class=\"wr-eyebrow\">";
  933.         // line 790
  934.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'790$this->source); })()), "paths_eyebrow", [], "any"falsefalsefalse790), "html"nulltrue);
  935.         yield "</span>
  936.                     <h2 class=\"wr-title\">";
  937.         // line 791
  938.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'791$this->source); })()), "paths_title", [], "any"falsefalsefalse791), "html"nulltrue);
  939.         yield "</h2>
  940.                     <p class=\"wr-lede\">";
  941.         // line 792
  942.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'792$this->source); })()), "paths_lede", [], "any"falsefalsefalse792), "html"nulltrue);
  943.         yield "</p>
  944.                 </div>
  945.                 <div class=\"paths-grid\">
  946.                     <article class=\"path-card\">
  947.                         <div class=\"path-card-illu\">
  948.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  949.                                 <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/><polyline points=\"14 2 14 8 20 8\"/>
  950.                                 <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  951.                             </svg>
  952.                         </div>
  953.                         <span class=\"path-card-label\">";
  954.         // line 803
  955.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'803$this->source); })()), "path1_label", [], "any"falsefalsefalse803), "html"nulltrue);
  956.         yield "</span>
  957.                         <h3 class=\"path-card-title\">";
  958.         // line 804
  959.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'804$this->source); })()), "path1_title", [], "any"falsefalsefalse804), "html"nulltrue);
  960.         yield "</h3>
  961.                         <p class=\"path-card-desc\">";
  962.         // line 805
  963.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'805$this->source); })()), "path1_desc", [], "any"falsefalsefalse805), "html"nulltrue);
  964.         yield "</p>
  965.                         <a href=\"";
  966.         // line 806
  967.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath(("whileresume_resume_" CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'806$this->source); })()), "request", [], "any"falsefalsefalse806), "locale", [], "any"falsefalsefalse806)));
  968.         yield "\" class=\"path-card-cta\">
  969.                             ";
  970.         // line 807
  971.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'807$this->source); })()), "path1_cta", [], "any"falsefalsefalse807), "html"nulltrue);
  972.         yield "
  973.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  974.                         </a>
  975.                     </article>
  976.                     <article class=\"path-card\">
  977.                         <div class=\"path-card-illu\">
  978.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  979.                                 <path d=\"M9 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2h-4\"/>
  980.                                 <polyline points=\"9 7 12 4 15 7\"/><line x1=\"12\" y1=\"4\" x2=\"12\" y2=\"14\"/>
  981.                             </svg>
  982.                         </div>
  983.                         <span class=\"path-card-label\">";
  984.         // line 819
  985.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'819$this->source); })()), "path2_label", [], "any"falsefalsefalse819), "html"nulltrue);
  986.         yield "</span>
  987.                         <h3 class=\"path-card-title\">";
  988.         // line 820
  989.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'820$this->source); })()), "path2_title", [], "any"falsefalsefalse820), "html"nulltrue);
  990.         yield "</h3>
  991.                         <p class=\"path-card-desc\">";
  992.         // line 821
  993.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'821$this->source); })()), "path2_desc", [], "any"falsefalsefalse821), "html"nulltrue);
  994.         yield "</p>
  995.                         <a href=\"";
  996.         // line 822
  997.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath(("whileresume_resume_" CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'822$this->source); })()), "request", [], "any"falsefalsefalse822), "locale", [], "any"falsefalsefalse822)));
  998.         yield "\" class=\"path-card-cta\">
  999.                             ";
  1000.         // line 823
  1001.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'823$this->source); })()), "path2_cta", [], "any"falsefalsefalse823), "html"nulltrue);
  1002.         yield "
  1003.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  1004.                         </a>
  1005.                     </article>
  1006.                     <article class=\"path-card\">
  1007.                         <div class=\"path-card-illu\">
  1008.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1009.                                 <rect x=\"2\" y=\"6\" width=\"20\" height=\"14\" rx=\"2\"/>
  1010.                                 <path d=\"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2\"/>
  1011.                                 <line x1=\"2\" y1=\"13\" x2=\"22\" y2=\"13\"/>
  1012.                             </svg>
  1013.                         </div>
  1014.                         <span class=\"path-card-label\">";
  1015.         // line 836
  1016.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'836$this->source); })()), "path3_label", [], "any"falsefalsefalse836), "html"nulltrue);
  1017.         yield "</span>
  1018.                         <h3 class=\"path-card-title\">";
  1019.         // line 837
  1020.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'837$this->source); })()), "path3_title", [], "any"falsefalsefalse837), "html"nulltrue);
  1021.         yield "</h3>
  1022.                         <p class=\"path-card-desc\">";
  1023.         // line 838
  1024.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'838$this->source); })()), "path3_desc", [], "any"falsefalsefalse838), "html"nulltrue);
  1025.         yield "</p>
  1026.                         <a href=\"";
  1027.         // line 839
  1028.         if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'839$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1029.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_whileresume_jobs_list", ["_locale" => "fr"]);
  1030.         } else {
  1031.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("whileresume_jobs_list");
  1032.         }
  1033.         yield "\" class=\"path-card-cta\">
  1034.                             ";
  1035.         // line 840
  1036.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'840$this->source); })()), "path3_cta", [], "any"falsefalsefalse840), "html"nulltrue);
  1037.         yield "
  1038.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  1039.                         </a>
  1040.                     </article>
  1041.                 </div>
  1042.             </div>
  1043.         </section>
  1044.         ";
  1045.         // line 849
  1046.         yield "        <section class=\"wr-section\">
  1047.             <div class=\"wr-container\">
  1048.                 <div class=\"wr-section-head\">
  1049.                     <span class=\"wr-eyebrow\">";
  1050.         // line 852
  1051.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'852$this->source); })()), "how_eyebrow", [], "any"falsefalsefalse852), "html"nulltrue);
  1052.         yield "</span>
  1053.                     <h2 class=\"wr-title\">";
  1054.         // line 853
  1055.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'853$this->source); })()), "how_title", [], "any"falsefalsefalse853), "html"nulltrue);
  1056.         yield "</h2>
  1057.                     <p class=\"wr-lede\">";
  1058.         // line 854
  1059.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'854$this->source); })()), "how_lede", [], "any"falsefalsefalse854), "html"nulltrue);
  1060.         yield "</p>
  1061.                 </div>
  1062.                 <div class=\"method-grid\">
  1063.                     <div class=\"method-step\">
  1064.                         <div class=\"method-num\">01</div>
  1065.                         <h3 class=\"method-title\">";
  1066.         // line 860
  1067.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'860$this->source); })()), "step1_title", [], "any"falsefalsefalse860), "html"nulltrue);
  1068.         yield "</h3>
  1069.                         <p class=\"method-desc\">";
  1070.         // line 861
  1071.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'861$this->source); })()), "step1_desc", [], "any"falsefalsefalse861), "html"nulltrue);
  1072.         yield "</p>
  1073.                     </div>
  1074.                     <div class=\"method-step\">
  1075.                         <div class=\"method-num\">02</div>
  1076.                         <h3 class=\"method-title\">";
  1077.         // line 865
  1078.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'865$this->source); })()), "step2_title", [], "any"falsefalsefalse865), "html"nulltrue);
  1079.         yield "</h3>
  1080.                         <p class=\"method-desc\">";
  1081.         // line 866
  1082.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'866$this->source); })()), "step2_desc", [], "any"falsefalsefalse866), "html"nulltrue);
  1083.         yield "</p>
  1084.                     </div>
  1085.                     <div class=\"method-step\">
  1086.                         <div class=\"method-num\">03</div>
  1087.                         <h3 class=\"method-title\">";
  1088.         // line 870
  1089.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'870$this->source); })()), "step3_title", [], "any"falsefalsefalse870), "html"nulltrue);
  1090.         yield "</h3>
  1091.                         <p class=\"method-desc\">";
  1092.         // line 871
  1093.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'871$this->source); })()), "step3_desc", [], "any"falsefalsefalse871), "html"nulltrue);
  1094.         yield "</p>
  1095.                     </div>
  1096.                     <div class=\"method-step\">
  1097.                         <div class=\"method-num\">04</div>
  1098.                         <h3 class=\"method-title\">";
  1099.         // line 875
  1100.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'875$this->source); })()), "step4_title", [], "any"falsefalsefalse875), "html"nulltrue);
  1101.         yield "</h3>
  1102.                         <p class=\"method-desc\">";
  1103.         // line 876
  1104.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'876$this->source); })()), "step4_desc", [], "any"falsefalsefalse876), "html"nulltrue);
  1105.         yield "</p>
  1106.                     </div>
  1107.                 </div>
  1108.             </div>
  1109.         </section>
  1110.         ";
  1111.         // line 883
  1112.         yield "        <section class=\"wr-section\">
  1113.             <div class=\"wr-container\">
  1114.                 <div class=\"match-grid\">
  1115.                     <div class=\"match-text\">
  1116.                         <span class=\"wr-eyebrow\">";
  1117.         // line 887
  1118.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'887$this->source); })()), "match_eyebrow", [], "any"falsefalsefalse887), "html"nulltrue);
  1119.         yield "</span>
  1120.                         <h2 class=\"wr-title wr-title--sm\">";
  1121.         // line 888
  1122.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'888$this->source); })()), "match_title", [], "any"falsefalsefalse888), "html"nulltrue);
  1123.         yield "</h2>
  1124.                         <p class=\"wr-lede\">";
  1125.         // line 889
  1126.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'889$this->source); })()), "match_lede", [], "any"falsefalsefalse889), "html"nulltrue);
  1127.         yield "</p>
  1128.                         <div class=\"match-features\">
  1129.                             <div class=\"match-feature\">
  1130.                                 <div class=\"match-feature-icon\">
  1131.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></svg>
  1132.                                 </div>
  1133.                                 <h4 class=\"match-feature-title\">";
  1134.         // line 896
  1135.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'896$this->source); })()), "match_b1_title", [], "any"falsefalsefalse896), "html"nulltrue);
  1136.         yield "</h4>
  1137.                                 <p class=\"match-feature-desc\">";
  1138.         // line 897
  1139.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'897$this->source); })()), "match_b1_desc", [], "any"falsefalsefalse897), "html"nulltrue);
  1140.         yield "</p>
  1141.                             </div>
  1142.                             <div class=\"match-feature\">
  1143.                                 <div class=\"match-feature-icon\">
  1144.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><circle cx=\"12\" cy=\"12\" r=\"6\"/><circle cx=\"12\" cy=\"12\" r=\"2\"/></svg>
  1145.                                 </div>
  1146.                                 <h4 class=\"match-feature-title\">";
  1147.         // line 903
  1148.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'903$this->source); })()), "match_b2_title", [], "any"falsefalsefalse903), "html"nulltrue);
  1149.         yield "</h4>
  1150.                                 <p class=\"match-feature-desc\">";
  1151.         // line 904
  1152.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'904$this->source); })()), "match_b2_desc", [], "any"falsefalsefalse904), "html"nulltrue);
  1153.         yield "</p>
  1154.                             </div>
  1155.                             <div class=\"match-feature\">
  1156.                                 <div class=\"match-feature-icon\">
  1157.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/></svg>
  1158.                                 </div>
  1159.                                 <h4 class=\"match-feature-title\">";
  1160.         // line 910
  1161.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'910$this->source); })()), "match_b3_title", [], "any"falsefalsefalse910), "html"nulltrue);
  1162.         yield "</h4>
  1163.                                 <p class=\"match-feature-desc\">";
  1164.         // line 911
  1165.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'911$this->source); })()), "match_b3_desc", [], "any"falsefalsefalse911), "html"nulltrue);
  1166.         yield "</p>
  1167.                             </div>
  1168.                             <div class=\"match-feature\">
  1169.                                 <div class=\"match-feature-icon\">
  1170.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"/><polyline points=\"15 3 21 3 21 9\"/><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"/></svg>
  1171.                                 </div>
  1172.                                 <h4 class=\"match-feature-title\">";
  1173.         // line 917
  1174.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'917$this->source); })()), "match_b4_title", [], "any"falsefalsefalse917), "html"nulltrue);
  1175.         yield "</h4>
  1176.                                 <p class=\"match-feature-desc\">";
  1177.         // line 918
  1178.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'918$this->source); })()), "match_b4_desc", [], "any"falsefalsefalse918), "html"nulltrue);
  1179.         yield "</p>
  1180.                             </div>
  1181.                         </div>
  1182.                     </div>
  1183.                     <div class=\"match-visual\">
  1184.                         <div class=\"match-stack\">
  1185.                             <div class=\"match-stack-card\">
  1186.                                 <div class=\"match-stack-logo\">A</div>
  1187.                                 <div class=\"match-stack-info\">
  1188.                                     <p class=\"match-stack-title\">Lead Designer</p>
  1189.                                     <p class=\"match-stack-meta\">Acme · Remote</p>
  1190.                                 </div>
  1191.                                 <div class=\"match-stack-heart\"><svg viewBox=\"0 0 24 24\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></svg></div>
  1192.                             </div>
  1193.                             <div class=\"match-stack-card\">
  1194.                                 <div class=\"match-stack-logo\">N</div>
  1195.                                 <div class=\"match-stack-info\">
  1196.                                     <p class=\"match-stack-title\">Frontend Engineer</p>
  1197.                                     <p class=\"match-stack-meta\">Notion · Paris</p>
  1198.                                 </div>
  1199.                                 <div class=\"match-stack-heart\"><svg viewBox=\"0 0 24 24\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></svg></div>
  1200.                             </div>
  1201.                             <div class=\"match-stack-card\">
  1202.                                 <div class=\"match-stack-logo\">L</div>
  1203.                                 <div class=\"match-stack-info\">
  1204.                                     <p class=\"match-stack-title\">Product Manager</p>
  1205.                                     <p class=\"match-stack-meta\">Linear · ";
  1206.         // line 945
  1207.         yield (((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'945$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Hybride") : ("Hybrid"));
  1208.         yield "</p>
  1209.                                 </div>
  1210.                                 <div class=\"match-stack-heart\"><svg viewBox=\"0 0 24 24\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></svg></div>
  1211.                             </div>
  1212.                             <div class=\"match-stack-card\">
  1213.                                 <div class=\"match-stack-logo\">F</div>
  1214.                                 <div class=\"match-stack-info\">
  1215.                                     <p class=\"match-stack-title\">Data Analyst</p>
  1216.                                     <p class=\"match-stack-meta\">Figma · Lyon</p>
  1217.                                 </div>
  1218.                                 <div class=\"match-stack-heart\"><svg viewBox=\"0 0 24 24\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></svg></div>
  1219.                             </div>
  1220.                         </div>
  1221.                     </div>
  1222.                 </div>
  1223.             </div>
  1224.         </section>
  1225.         ";
  1226.         // line 964
  1227.         yield "        <section class=\"wr-section\">
  1228.             <div class=\"wr-container\">
  1229.                 <div class=\"wr-section-head\">
  1230.                     <span class=\"wr-eyebrow\">";
  1231.         // line 967
  1232.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'967$this->source); })()), "apps_eyebrow", [], "any"falsefalsefalse967), "html"nulltrue);
  1233.         yield "</span>
  1234.                     <h2 class=\"wr-title wr-title--sm\">";
  1235.         // line 968
  1236.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'968$this->source); })()), "apps_title", [], "any"falsefalsefalse968), "html"nulltrue);
  1237.         yield "</h2>
  1238.                     <p class=\"wr-lede\">";
  1239.         // line 969
  1240.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'969$this->source); })()), "apps_lede", [], "any"falsefalsefalse969), "html"nulltrue);
  1241.         yield "</p>
  1242.                 </div>
  1243.                 <div class=\"apps-grid\">
  1244.                     <a href=\"#\" class=\"app-card\">
  1245.                     <span class=\"app-card-icon\">
  1246.                         <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.05 20.28c-.98.95-2.05.8-3.08.35-1.09-.46-2.09-.48-3.24 0-1.44.62-2.2.44-3.06-.35C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z\"/></svg>
  1247.                     </span>
  1248.                         <h3 class=\"app-card-name\">";
  1249.         // line 977
  1250.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'977$this->source); })()), "apps_ios", [], "any"falsefalsefalse977), "html"nulltrue);
  1251.         yield "</h3>
  1252.                         <p class=\"app-card-desc\">";
  1253.         // line 978
  1254.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'978$this->source); })()), "apps_ios_desc", [], "any"falsefalsefalse978), "html"nulltrue);
  1255.         yield "</p>
  1256.                         <span class=\"app-card-cta\">App Store
  1257.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  1258.                     </span>
  1259.                     </a>
  1260.                     <a href=\"#\" class=\"app-card\">
  1261.                     <span class=\"app-card-icon\">
  1262.                         <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.523 15.34c-.583 0-1.06-.477-1.06-1.06 0-.582.477-1.06 1.06-1.06.583 0 1.06.478 1.06 1.06 0 .583-.477 1.06-1.06 1.06m-11.046 0c-.583 0-1.06-.477-1.06-1.06 0-.582.477-1.06 1.06-1.06.583 0 1.06.478 1.06 1.06 0 .583-.477 1.06-1.06 1.06m11.427-6.176l2.114-3.66a.439.439 0 0 0-.16-.6.439.439 0 0 0-.6.16l-2.142 3.71a13.07 13.07 0 0 0-5.116-1.034c-1.823 0-3.55.376-5.116 1.034l-2.14-3.71a.439.439 0 1 0-.76.44l2.113 3.66C2.486 10.78.659 13.658.5 17h23c-.16-3.342-1.987-6.22-5.595-7.836\"/></svg>
  1263.                     </span>
  1264.                         <h3 class=\"app-card-name\">";
  1265.         // line 987
  1266.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'987$this->source); })()), "apps_android", [], "any"falsefalsefalse987), "html"nulltrue);
  1267.         yield "</h3>
  1268.                         <p class=\"app-card-desc\">";
  1269.         // line 988
  1270.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'988$this->source); })()), "apps_android_desc", [], "any"falsefalsefalse988), "html"nulltrue);
  1271.         yield "</p>
  1272.                         <span class=\"app-card-cta\">Google Play
  1273.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  1274.                     </span>
  1275.                     </a>
  1276.                     <a href=\"";
  1277.         // line 993
  1278.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath(("whileresume_resume_" CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'993$this->source); })()), "request", [], "any"falsefalsefalse993), "locale", [], "any"falsefalsefalse993)));
  1279.         yield "\" class=\"app-card\">
  1280.                     <span class=\"app-card-icon\">
  1281.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"/></svg>
  1282.                     </span>
  1283.                         <h3 class=\"app-card-name\">";
  1284.         // line 997
  1285.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'997$this->source); })()), "apps_web", [], "any"falsefalsefalse997), "html"nulltrue);
  1286.         yield "</h3>
  1287.                         <p class=\"app-card-desc\">";
  1288.         // line 998
  1289.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'998$this->source); })()), "apps_web_desc", [], "any"falsefalsefalse998), "html"nulltrue);
  1290.         yield "</p>
  1291.                         <span class=\"app-card-cta\">whileresume.com
  1292.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  1293.                     </span>
  1294.                     </a>
  1295.                 </div>
  1296.             </div>
  1297.         </section>
  1298.         ";
  1299.         // line 1008
  1300.         yield "        ";
  1301.         if ((array_key_exists("popularKeywords"$context) && (Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["popularKeywords"]) || array_key_exists("popularKeywords"$context) ? $context["popularKeywords"] : (function () { throw new RuntimeError('Variable "popularKeywords" does not exist.'1008$this->source); })())) > 0))) {
  1302.             // line 1009
  1303.             yield "            <section class=\"wr-section wr-section--tight\">
  1304.                 <div class=\"wr-container\">
  1305.                     <div class=\"wr-section-head\">
  1306.                         <h2 class=\"wr-title wr-title--sm\">";
  1307.             // line 1012
  1308.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1012$this->source); })()), "keywords_title", [], "any"falsefalsefalse1012), "html"nulltrue);
  1309.             yield "</h2>
  1310.                         <p class=\"wr-lede\">";
  1311.             // line 1013
  1312.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1013$this->source); })()), "keywords_lede", [], "any"falsefalsefalse1013), "html"nulltrue);
  1313.             yield "</p>
  1314.                     </div>
  1315.                     <div class=\"keywords-list\">
  1316.                         ";
  1317.             // line 1017
  1318.             $context['_parent'] = $context;
  1319.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["popularKeywords"]) || array_key_exists("popularKeywords"$context) ? $context["popularKeywords"] : (function () { throw new RuntimeError('Variable "popularKeywords" does not exist.'1017$this->source); })()));
  1320.             foreach ($context['_seq'] as $context["_key"] => $context["kw"]) {
  1321.                 // line 1018
  1322.                 yield "                            <a href=\"";
  1323.                 if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1018$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1324.                     yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_whileresume_jobs_list", ["_locale" => "fr"]);
  1325.                 } else {
  1326.                     yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("whileresume_jobs_list");
  1327.                 }
  1328.                 yield "?q=";
  1329.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::urlencode(CoreExtension::getAttribute($this->env$this->source$context["kw"], "keyword", [], "any"falsefalsefalse1018)), "html"nulltrue);
  1330.                 yield "\" class=\"keyword-pill\">
  1331.                                 ";
  1332.                 // line 1019
  1333.                 if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["kw"], "icon", [], "any"falsefalsefalse1019)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1334.                     yield "<span class=\"keyword-pill-icon\">";
  1335.                     yield CoreExtension::getAttribute($this->env$this->source$context["kw"], "icon", [], "any"falsefalsefalse1019);
  1336.                     yield "</span>";
  1337.                 }
  1338.                 // line 1020
  1339.                 yield "                                <span>";
  1340.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["kw"], "label", [], "any"falsefalsefalse1020), "html"nulltrue);
  1341.                 yield "</span>
  1342.                             </a>
  1343.                         ";
  1344.             }
  1345.             $_parent $context['_parent'];
  1346.             unset($context['_seq'], $context['_key'], $context['kw'], $context['_parent']);
  1347.             $context array_intersect_key($context$_parent) + $_parent;
  1348.             // line 1023
  1349.             yield "                    </div>
  1350.                 </div>
  1351.             </section>
  1352.         ";
  1353.         }
  1354.         // line 1027
  1355.         yield "
  1356.         ";
  1357.         // line 1029
  1358.         yield "        ";
  1359.         if ((array_key_exists("popularJobs"$context) && (Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["popularJobs"]) || array_key_exists("popularJobs"$context) ? $context["popularJobs"] : (function () { throw new RuntimeError('Variable "popularJobs" does not exist.'1029$this->source); })())) > 0))) {
  1360.             // line 1030
  1361.             yield "            <section class=\"wr-section\">
  1362.                 <div class=\"wr-container\">
  1363.                     <div class=\"wr-section-head\">
  1364.                         <h2 class=\"wr-title wr-title--sm\">";
  1365.             // line 1033
  1366.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1033$this->source); })()), "popular_title", [], "any"falsefalsefalse1033), "html"nulltrue);
  1367.             yield "</h2>
  1368.                         <p class=\"wr-lede\">";
  1369.             // line 1034
  1370.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1034$this->source); })()), "popular_lede", [], "any"falsefalsefalse1034), "html"nulltrue);
  1371.             yield "</p>
  1372.                     </div>
  1373.                     ";
  1374.             // line 1037
  1375.             $context['_parent'] = $context;
  1376.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["popularJobs"]) || array_key_exists("popularJobs"$context) ? $context["popularJobs"] : (function () { throw new RuntimeError('Variable "popularJobs" does not exist.'1037$this->source); })()));
  1377.             foreach ($context['_seq'] as $context["_key"] => $context["block"]) {
  1378.                 // line 1038
  1379.                 yield "                        ";
  1380.                 if ((Twig\Extension\CoreExtension::length($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["block"], "jobs", [], "any"falsefalsefalse1038)) > 0)) {
  1381.                     // line 1039
  1382.                     yield "                            <div class=\"listings-block\">
  1383.                                 <div class=\"listings-block-head\">
  1384.                                     <h3 class=\"listings-block-title\">
  1385.                                         ";
  1386.                     // line 1042
  1387.                     if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["block"], "icon", [], "any"falsefalsefalse1042)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1388.                         yield "<span class=\"listings-block-icon\">";
  1389.                         yield CoreExtension::getAttribute($this->env$this->source$context["block"], "icon", [], "any"falsefalsefalse1042);
  1390.                         yield "</span>";
  1391.                     }
  1392.                     // line 1043
  1393.                     yield "                                        ";
  1394.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["block"], "label", [], "any"falsefalsefalse1043), "html"nulltrue);
  1395.                     yield "
  1396.                                     </h3>
  1397.                                     <a href=\"";
  1398.                     // line 1045
  1399.                     if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1045$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1400.                         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_whileresume_jobs_list", ["_locale" => "fr"]);
  1401.                     } else {
  1402.                         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("whileresume_jobs_list");
  1403.                     }
  1404.                     yield "?q=";
  1405.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::urlencode(CoreExtension::getAttribute($this->env$this->source$context["block"], "label", [], "any"falsefalsefalse1045)), "html"nulltrue);
  1406.                     yield "\" class=\"listings-block-link\">
  1407.                                         ";
  1408.                     // line 1046
  1409.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1046$this->source); })()), "btn_more", [], "any"falsefalsefalse1046), "html"nulltrue);
  1410.                     yield "
  1411.                                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"/></svg>
  1412.                                     </a>
  1413.                                 </div>
  1414.                                 <div class=\"listings-jobs\">
  1415.                                     ";
  1416.                     // line 1052
  1417.                     $context['_parent'] = $context;
  1418.                     $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::slice($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["block"], "jobs", [], "any"falsefalsefalse1052), 04));
  1419.                     foreach ($context['_seq'] as $context["_key"] => $context["j"]) {
  1420.                         // line 1053
  1421.                         yield "                                        <a href=\"";
  1422.                         if ((CoreExtension::getAttribute($this->env$this->source$context["j"], "locale", [], "any"falsefalsefalse1053) == "fr")) {
  1423.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_cvs_application_job_show", ["_locale" => CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1053$this->source); })()), "request", [], "any"falsefalsefalse1053), "locale", [], "any"falsefalsefalse1053), "slug" => CoreExtension::getAttribute($this->env$this->source$context["j"], "slug", [], "any"falsefalsefalse1053)]), "html"nulltrue);
  1424.                         } else {
  1425.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("cvs_application_job_show", ["slug" => CoreExtension::getAttribute($this->env$this->source$context["j"], "slug", [], "any"falsefalsefalse1053)]), "html"nulltrue);
  1426.                         }
  1427.                         yield "\" class=\"listing-job\">
  1428.                                             <div class=\"listing-job-logo\">
  1429.                                                 ";
  1430.                         // line 1055
  1431.                         if ((CoreExtension::getAttribute($this->env$this->source$context["j"], "image", [], "any"falsefalsefalse1055) && CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["j"], "image", [], "any"falsefalsefalse1055), "name", [], "any"falsefalsefalse1055))) {
  1432.                             // line 1056
  1433.                             yield "                                                    <img src=\"";
  1434.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Vich\UploaderBundle\Twig\Extension\UploaderExtension']->asset($context["j"], "imageFile"), "html"nulltrue);
  1435.                             yield "\" alt=\"\">
  1436.                                                 ";
  1437.                         } else {
  1438.                             // line 1058
  1439.                             yield "                                                    ";
  1440.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::upper($this->env->getCharset(), Twig\Extension\CoreExtension::slice($this->env->getCharset(), ((CoreExtension::getAttribute($this->env$this->source$context["j"], "companyName", [], "any"truetruefalse1058)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env$this->source$context["j"], "companyName", [], "any"falsefalsefalse1058), "?")) : ("?")), 01)), "html"nulltrue);
  1441.                             yield "
  1442.                                                 ";
  1443.                         }
  1444.                         // line 1060
  1445.                         yield "                                            </div>
  1446.                                             <div class=\"listing-job-info\">
  1447.                                                 <h4 class=\"listing-job-title\">";
  1448.                         // line 1062
  1449.                         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["j"], "jobTitle", [], "any"falsefalsefalse1062), "html"nulltrue);
  1450.                         yield "</h4>
  1451.                                                 <p class=\"listing-job-meta\">
  1452.                                                     ";
  1453.                         // line 1064
  1454.                         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["j"], "companyName", [], "any"falsefalsefalse1064), "html"nulltrue);
  1455.                         if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["j"], "city", [], "any"falsefalsefalse1064)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1456.                             yield " · ";
  1457.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["j"], "city", [], "any"falsefalsefalse1064), "html"nulltrue);
  1458.                         }
  1459.                         if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["j"], "employmentType", [], "any"falsefalsefalse1064)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1460.                             yield " · ";
  1461.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["j"], "employmentType", [], "any"falsefalsefalse1064), "html"nulltrue);
  1462.                         }
  1463.                         // line 1065
  1464.                         yield "                                                </p>
  1465.                                             </div>
  1466.                                             <span class=\"listing-job-arrow\">
  1467.                                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"/></svg>
  1468.                                         </span>
  1469.                                         </a>
  1470.                                     ";
  1471.                     }
  1472.                     $_parent $context['_parent'];
  1473.                     unset($context['_seq'], $context['_key'], $context['j'], $context['_parent']);
  1474.                     $context array_intersect_key($context$_parent) + $_parent;
  1475.                     // line 1072
  1476.                     yield "                                </div>
  1477.                             </div>
  1478.                         ";
  1479.                 }
  1480.                 // line 1075
  1481.                 yield "                    ";
  1482.             }
  1483.             $_parent $context['_parent'];
  1484.             unset($context['_seq'], $context['_key'], $context['block'], $context['_parent']);
  1485.             $context array_intersect_key($context$_parent) + $_parent;
  1486.             // line 1076
  1487.             yield "                </div>
  1488.             </section>
  1489.         ";
  1490.         }
  1491.         // line 1079
  1492.         yield "
  1493.         ";
  1494.         // line 1081
  1495.         yield "        ";
  1496.         if ((array_key_exists("articles"$context) && (Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["articles"]) || array_key_exists("articles"$context) ? $context["articles"] : (function () { throw new RuntimeError('Variable "articles" does not exist.'1081$this->source); })())) > 0))) {
  1497.             // line 1082
  1498.             yield "            <section class=\"wr-section\">
  1499.                 <div class=\"wr-container\">
  1500.                     <div class=\"wr-section-head\">
  1501.                         <h2 class=\"wr-title wr-title--sm\">";
  1502.             // line 1085
  1503.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1085$this->source); })()), "articles_title", [], "any"falsefalsefalse1085), "html"nulltrue);
  1504.             yield "</h2>
  1505.                         <p class=\"wr-lede\">";
  1506.             // line 1086
  1507.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1086$this->source); })()), "articles_lede", [], "any"falsefalsefalse1086), "html"nulltrue);
  1508.             yield "</p>
  1509.                     </div>
  1510.                     <div class=\"articles-grid\">
  1511.                         ";
  1512.             // line 1090
  1513.             $context['_parent'] = $context;
  1514.             $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::slice($this->env->getCharset(), (isset($context["articles"]) || array_key_exists("articles"$context) ? $context["articles"] : (function () { throw new RuntimeError('Variable "articles" does not exist.'1090$this->source); })()), 06));
  1515.             foreach ($context['_seq'] as $context["_key"] => $context["a"]) {
  1516.                 // line 1091
  1517.                 yield "                            ";
  1518.                 $context["prefix"] = "";
  1519.                 // line 1092
  1520.                 yield "                            ";
  1521.                 $context["urlA"] = $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("cvs_website_article", ["slug" => CoreExtension::getAttribute($this->env$this->source$context["a"], "slug", [], "any"falsefalsefalse1092)]);
  1522.                 // line 1093
  1523.                 yield "                            ";
  1524.                 if ((CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1093$this->source); })()), "request", [], "any"falsefalsefalse1093), "locale", [], "any"falsefalsefalse1093) != (isset($context["default_locale"]) || array_key_exists("default_locale"$context) ? $context["default_locale"] : (function () { throw new RuntimeError('Variable "default_locale" does not exist.'1093$this->source); })()))) {
  1525.                     // line 1094
  1526.                     yield "                                ";
  1527.                     $context["urlA"] = $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_cvs_website_article", ["_locale" => CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1094$this->source); })()), "request", [], "any"falsefalsefalse1094), "locale", [], "any"falsefalsefalse1094), "slug" => CoreExtension::getAttribute($this->env$this->source$context["a"], "slug", [], "any"falsefalsefalse1094)]);
  1528.                     // line 1095
  1529.                     yield "                                ";
  1530.                     $context["prefix"] = ("/" CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1095$this->source); })()), "request", [], "any"falsefalsefalse1095), "locale", [], "any"falsefalsefalse1095));
  1531.                     // line 1096
  1532.                     yield "                            ";
  1533.                 }
  1534.                 // line 1097
  1535.                 yield "                            ";
  1536.                 if ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug3", [], "any"falsefalsefalse1097))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1537.                     // line 1098
  1538.                     yield "                                ";
  1539.                     $context["urlA"] = (((((((isset($context["prefix"]) || array_key_exists("prefix"$context) ? $context["prefix"] : (function () { throw new RuntimeError('Variable "prefix" does not exist.'1098$this->source); })()) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug", [], "any"falsefalsefalse1098)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug2", [], "any"falsefalsefalse1098)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug3", [], "any"falsefalsefalse1098));
  1540.                     // line 1099
  1541.                     yield "                            ";
  1542.                 } elseif ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug2", [], "any"falsefalsefalse1099))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1543.                     // line 1100
  1544.                     yield "                                ";
  1545.                     $context["urlA"] = (((((isset($context["prefix"]) || array_key_exists("prefix"$context) ? $context["prefix"] : (function () { throw new RuntimeError('Variable "prefix" does not exist.'1100$this->source); })()) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug", [], "any"falsefalsefalse1100)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug2", [], "any"falsefalsefalse1100));
  1546.                     // line 1101
  1547.                     yield "                            ";
  1548.                 } elseif ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug", [], "any"falsefalsefalse1101))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1549.                     // line 1102
  1550.                     yield "                                ";
  1551.                     $context["urlA"] = (((isset($context["prefix"]) || array_key_exists("prefix"$context) ? $context["prefix"] : (function () { throw new RuntimeError('Variable "prefix" does not exist.'1102$this->source); })()) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug", [], "any"falsefalsefalse1102));
  1552.                     // line 1103
  1553.                     yield "                            ";
  1554.                 }
  1555.                 // line 1104
  1556.                 yield "
  1557.                             <a href=\"";
  1558.                 // line 1105
  1559.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["urlA"]) || array_key_exists("urlA"$context) ? $context["urlA"] : (function () { throw new RuntimeError('Variable "urlA" does not exist.'1105$this->source); })()), "html"nulltrue);
  1560.                 yield "\" class=\"wr-article\">
  1561.                                 <div class=\"wr-article-img\">
  1562.                                     ";
  1563.                 // line 1107
  1564.                 if ((($tmp =  !(null === CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["a"], "image", [], "any"falsefalsefalse1107), "name", [], "any"falsefalsefalse1107))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1565.                     // line 1108
  1566.                     yield "                                        <img src=\"";
  1567.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Vich\UploaderBundle\Twig\Extension\UploaderExtension']->asset($context["a"], "imageFile"), "html"nulltrue);
  1568.                     yield "\" alt=\"";
  1569.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["a"], "title", [], "any"falsefalsefalse1108), "html"nulltrue);
  1570.                     yield "\">
  1571.                                     ";
  1572.                 }
  1573.                 // line 1110
  1574.                 yield "                                </div>
  1575.                                 <div class=\"wr-article-body\">
  1576.                                     <p class=\"wr-article-meta\">
  1577.                                         ";
  1578.                 // line 1113
  1579.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatDate(CoreExtension::getAttribute($this->env$this->source$context["a"], "publishedAt", [], "any"falsefalsefalse1113), (((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1113$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("d M Y") : ("M d, Y"))), "html"nulltrue);
  1580.                 if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["a"], "author", [], "any"falsefalsefalse1113)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1581.                     yield " · ";
  1582.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["a"], "author", [], "any"falsefalsefalse1113), "html"nulltrue);
  1583.                 }
  1584.                 // line 1114
  1585.                 yield "                                    </p>
  1586.                                     <h3 class=\"wr-article-title\">";
  1587.                 // line 1115
  1588.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["a"], "title", [], "any"falsefalsefalse1115), "html"nulltrue);
  1589.                 yield "</h3>
  1590.                                     ";
  1591.                 // line 1116
  1592.                 if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["a"], "subtitle", [], "any"falsefalsefalse1116)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1593.                     yield "<p class=\"wr-article-excerpt\">";
  1594.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["a"], "subtitle", [], "any"falsefalsefalse1116), "html"nulltrue);
  1595.                     yield "</p>";
  1596.                 }
  1597.                 // line 1117
  1598.                 yield "                                    <span class=\"wr-article-link\">
  1599.                                     ";
  1600.                 // line 1118
  1601.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1118$this->source); })()), "read_article", [], "any"falsefalsefalse1118), "html"nulltrue);
  1602.                 yield "
  1603.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  1604.                                 </span>
  1605.                                 </div>
  1606.                             </a>
  1607.                         ";
  1608.             }
  1609.             $_parent $context['_parent'];
  1610.             unset($context['_seq'], $context['_key'], $context['a'], $context['_parent']);
  1611.             $context array_intersect_key($context$_parent) + $_parent;
  1612.             // line 1124
  1613.             yield "                    </div>
  1614.                     <div class=\"articles-cta\">
  1615.                         <a href=\"";
  1616.             // line 1127
  1617.             if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1127$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1618.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_cvs_website_articles", ["_locale" => "fr"]);
  1619.             } else {
  1620.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("cvs_website_articles");
  1621.             }
  1622.             yield "\">
  1623.                             ";
  1624.             // line 1128
  1625.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1128$this->source); })()), "articles_view_all", [], "any"falsefalsefalse1128), "html"nulltrue);
  1626.             yield "
  1627.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  1628.                         </a>
  1629.                     </div>
  1630.                 </div>
  1631.             </section>
  1632.         ";
  1633.         }
  1634.         // line 1135
  1635.         yield "
  1636.         ";
  1637.         // line 1137
  1638.         yield "        <section class=\"wr-section\">
  1639.             <div class=\"wr-container\">
  1640.                 <div class=\"final-card\">
  1641.                     <h2 class=\"final-title\">";
  1642.         // line 1140
  1643.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1140$this->source); })()), "final_title", [], "any"falsefalsefalse1140), "html"nulltrue);
  1644.         yield "</h2>
  1645.                     <p class=\"final-subtitle\">";
  1646.         // line 1141
  1647.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1141$this->source); })()), "final_subtitle", [], "any"falsefalsefalse1141), "html"nulltrue);
  1648.         yield "</p>
  1649.                     <div class=\"final-buttons\">
  1650.                         <a href=\"";
  1651.         // line 1143
  1652.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath(("whileresume_resume_" CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1143$this->source); })()), "request", [], "any"falsefalsefalse1143), "locale", [], "any"falsefalsefalse1143)));
  1653.         yield "\" class=\"final-btn final-btn--primary\">
  1654.                             ";
  1655.         // line 1144
  1656.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1144$this->source); })()), "final_candidate", [], "any"falsefalsefalse1144), "html"nulltrue);
  1657.         yield "
  1658.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  1659.                         </a>
  1660.                         <a href=\"";
  1661.         // line 1147
  1662.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath(("whileresume_business_" CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1147$this->source); })()), "request", [], "any"falsefalsefalse1147), "locale", [], "any"falsefalsefalse1147)));
  1663.         yield "\" class=\"final-btn final-btn--ghost\">
  1664.                             ";
  1665.         // line 1148
  1666.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1148$this->source); })()), "final_recruiter", [], "any"falsefalsefalse1148), "html"nulltrue);
  1667.         yield "
  1668.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  1669.                         </a>
  1670.                     </div>
  1671.                 </div>
  1672.             </div>
  1673.         </section>
  1674.     </div>
  1675. ";
  1676.         
  1677.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1678.         
  1679.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1680.         yield from [];
  1681.     }
  1682.     // line 1159
  1683.     /**
  1684.      * @return iterable<null|scalar|\Stringable>
  1685.      */
  1686.     public function block_footer_js(array $context, array $blocks = []): iterable
  1687.     {
  1688.         $macros $this->macros;
  1689.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1690.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""footer_js"));
  1691.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1692.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""footer_js"));
  1693.         // line 1160
  1694.         yield "    ";
  1695.         yield from $this->yieldParentBlock("footer_js"$context$blocks);
  1696.         yield "
  1697.     <script>
  1698.         (function(){
  1699.             var form     = document.getElementById('wrHeroSearch');
  1700.             var input    = document.getElementById('wrHeroSearchInput');
  1701.             var clearBtn = document.getElementById('wrHeroSearchClear');
  1702.             var results  = document.getElementById('wrHeroSearchResults');
  1703.             if (!form || !input || !results) return;
  1704.             var searchUrl   = form.dataset.searchUrl;
  1705.             var jobsListUrl = form.dataset.jobsListUrl;
  1706.             var debounceTimer = null;
  1707.             var currentRequest = null;
  1708.             var lastQuery = '';
  1709.             var T = {
  1710.                 loading:  '";
  1711.         // line 1176
  1712.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1176$this->source); })()), "search_loading", [], "any"falsefalsefalse1176), "js"), "html"nulltrue);
  1713.         yield "',
  1714.                 empty:    '";
  1715.         // line 1177
  1716.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1177$this->source); })()), "search_no_results", [], "any"falsefalsefalse1177), "js"), "html"nulltrue);
  1717.         yield "',
  1718.                 emptyHint:'";
  1719.         // line 1178
  1720.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1178$this->source); })()), "search_no_results_hint", [], "any"falsefalsefalse1178), "js"), "html"nulltrue);
  1721.         yield "',
  1722.                 count:    '";
  1723.         // line 1179
  1724.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1179$this->source); })()), "search_results_count", [], "any"falsefalsefalse1179), "js"), "html"nulltrue);
  1725.         yield "',
  1726.                 viewAll:  '";
  1727.         // line 1180
  1728.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1180$this->source); })()), "search_view_all", [], "any"falsefalsefalse1180), "js"), "html"nulltrue);
  1729.         yield "',
  1730.                 view:     '";
  1731.         // line 1181
  1732.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'1181$this->source); })()), "search_view_offer", [], "any"falsefalsefalse1181), "js"), "html"nulltrue);
  1733.         yield "'
  1734.             };
  1735.             function escHtml(s){
  1736.                 if (s == null) return '';
  1737.                 return String(s).replace(/[&<>\"']/g, function(c){
  1738.                     return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c];
  1739.                 });
  1740.             }
  1741.             function showResults(){
  1742.                 results.classList.add('is-visible');
  1743.                 form.classList.add('has-results');
  1744.             }
  1745.             function hideResults(){
  1746.                 results.classList.remove('is-visible');
  1747.                 form.classList.remove('has-results');
  1748.             }
  1749.             function setLoading(){
  1750.                 results.innerHTML =
  1751.                     '<div class=\"hero-search-loading\">' +
  1752.                     '<span class=\"hero-search-spinner\"></span>' +
  1753.                     '<span>' + escHtml(T.loading) + '</span>' +
  1754.                     '</div>';
  1755.                 showResults();
  1756.             }
  1757.             function renderResults(payload, query){
  1758.                 var jobs  = (payload && payload.jobs)  || [];
  1759.                 var total = (payload && typeof payload.total === 'number') ? payload.total : jobs.length;
  1760.                 if (!jobs.length){
  1761.                     results.innerHTML =
  1762.                         '<div class=\"hero-search-empty\">' +
  1763.                         '<div class=\"hero-search-empty-icon\">' +
  1764.                         '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +
  1765.                         '<circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/>' +
  1766.                         '</svg>' +
  1767.                         '</div>' +
  1768.                         '<p class=\"hero-search-empty-title\">' + escHtml(T.empty) + '</p>' +
  1769.                         '<p class=\"hero-search-empty-hint\">' + escHtml(T.emptyHint) + '</p>' +
  1770.                         '</div>';
  1771.                     showResults();
  1772.                     return;
  1773.                 }
  1774.                 var html =
  1775.                     '<div class=\"hero-search-meta\">' +
  1776.                     '<span><strong>' + total + '</strong> ' + escHtml(T.count) + '</span>' +
  1777.                     '<a href=\"' + jobsListUrl + '?q=' + encodeURIComponent(query) + '\">' +
  1778.                     escHtml(T.viewAll) +
  1779.                     '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +
  1780.                     '<line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/>' +
  1781.                     '</svg>' +
  1782.                     '</a>' +
  1783.                     '</div>';
  1784.                 jobs.slice(0, 6).forEach(function(j){
  1785.                     var title   = j.jobTitle || j.title || '';
  1786.                     var company = j.companyName || j.company || '';
  1787.                     var city    = j.city || '';
  1788.                     var et      = j.employmentType || '';
  1789.                     var slug    = j.slug || '';
  1790.                     var img     = j.image || j.imageUrl || '';
  1791.                     var url     = j.url || (jobsListUrl + '?q=' + encodeURIComponent(query));
  1792.                     var initial = (company || title || '?').charAt(0).toUpperCase();
  1793.                     var meta = [company, city, et].filter(function(x){ return x; }).join(' · ');
  1794.                     html +=
  1795.                         '<a href=\"' + escHtml(url) + '\" class=\"hero-search-result\">' +
  1796.                         '<div class=\"hero-search-result-logo\">' +
  1797.                         (img
  1798.                             ? '<img src=\"' + escHtml(img) + '\" alt=\"\">'
  1799.                             : escHtml(initial)) +
  1800.                         '</div>' +
  1801.                         '<div class=\"hero-search-result-info\">' +
  1802.                         '<p class=\"hero-search-result-title\">' + escHtml(title) + '</p>' +
  1803.                         '<p class=\"hero-search-result-meta\">' + escHtml(meta) + '</p>' +
  1804.                         '</div>' +
  1805.                         '<span class=\"hero-search-result-cta\">' +
  1806.                         escHtml(T.view) +
  1807.                         '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +
  1808.                         '<line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/>' +
  1809.                         '</svg>' +
  1810.                         '</span>' +
  1811.                         '</a>';
  1812.                 });
  1813.                 results.innerHTML = html;
  1814.                 showResults();
  1815.             }
  1816.             function doSearch(query){
  1817.                 if (currentRequest && currentRequest.abort) {
  1818.                     try { currentRequest.abort(); } catch(e){}
  1819.                 }
  1820.                 setLoading();
  1821.                 var url = searchUrl + (searchUrl.indexOf('?') > -1 ? '&' : '?') + 'q=' + encodeURIComponent(query);
  1822.                 var ctrl = (typeof AbortController !== 'undefined') ? new AbortController() : null;
  1823.                 currentRequest = ctrl;
  1824.                 fetch(url, { headers: { 'Accept': 'application/json' }, signal: ctrl ? ctrl.signal : undefined })
  1825.                     .then(function(r){ return r.ok ? r.json() : Promise.reject(r.status); })
  1826.                     .then(function(data){ renderResults(data, query); })
  1827.                     .catch(function(err){
  1828.                         if (err && err.name === 'AbortError') return;
  1829.                         results.innerHTML =
  1830.                             '<div class=\"hero-search-empty\">' +
  1831.                             '<p class=\"hero-search-empty-title\">' + escHtml(T.empty) + '</p>' +
  1832.                             '<p class=\"hero-search-empty-hint\">' + escHtml(T.emptyHint) + '</p>' +
  1833.                             '</div>';
  1834.                         showResults();
  1835.                     });
  1836.             }
  1837.             // Input live (debounce 280ms)
  1838.             input.addEventListener('input', function(){
  1839.                 var q = input.value.trim();
  1840.                 clearBtn.classList.toggle('is-visible', q.length > 0);
  1841.                 if (debounceTimer) clearTimeout(debounceTimer);
  1842.                 if (q.length < 2){
  1843.                     hideResults();
  1844.                     lastQuery = '';
  1845.                     return;
  1846.                 }
  1847.                 if (q === lastQuery) return;
  1848.                 debounceTimer = setTimeout(function(){
  1849.                     lastQuery = q;
  1850.                     doSearch(q);
  1851.                 }, 280);
  1852.             });
  1853.             // Submit → page de résultats complète
  1854.             form.addEventListener('submit', function(e){
  1855.                 var q = input.value.trim();
  1856.                 if (!q) { e.preventDefault(); return; }
  1857.                 window.location.href = jobsListUrl + '?q=' + encodeURIComponent(q);
  1858.                 e.preventDefault();
  1859.             });
  1860.             // Clear
  1861.             clearBtn.addEventListener('click', function(){
  1862.                 input.value = '';
  1863.                 clearBtn.classList.remove('is-visible');
  1864.                 hideResults();
  1865.                 lastQuery = '';
  1866.                 input.focus();
  1867.             });
  1868.             // Escape ferme
  1869.             input.addEventListener('keydown', function(e){
  1870.                 if (e.key === 'Escape'){
  1871.                     hideResults();
  1872.                     input.blur();
  1873.                 }
  1874.             });
  1875.             // Clic en dehors ferme (mais pas si on clique dedans)
  1876.             document.addEventListener('click', function(e){
  1877.                 if (!form.contains(e.target) && !results.contains(e.target)){
  1878.                     hideResults();
  1879.                 }
  1880.             });
  1881.             // Refocus input → ré-affiche les derniers résultats si on en avait
  1882.             input.addEventListener('focus', function(){
  1883.                 if (input.value.trim().length >= 2 && results.innerHTML.trim()) showResults();
  1884.             });
  1885.         })();
  1886.     </script>
  1887. ";
  1888.         
  1889.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1890.         
  1891.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1892.         yield from [];
  1893.     }
  1894.     /**
  1895.      * @codeCoverageIgnore
  1896.      */
  1897.     public function getTemplateName(): string
  1898.     {
  1899.         return "application/whileresume/website/candidates/homepage.html.twig";
  1900.     }
  1901.     /**
  1902.      * @codeCoverageIgnore
  1903.      */
  1904.     public function isTraitable(): bool
  1905.     {
  1906.         return false;
  1907.     }
  1908.     /**
  1909.      * @codeCoverageIgnore
  1910.      */
  1911.     public function getDebugInfo(): array
  1912.     {
  1913.         return array (  1844 => 1181,  1840 => 1180,  1836 => 1179,  1832 => 1178,  1828 => 1177,  1824 => 1176,  1804 => 1160,  1791 => 1159,  1770 => 1148,  1766 => 1147,  1760 => 1144,  1756 => 1143,  1751 => 1141,  1747 => 1140,  1742 => 1137,  1739 => 1135,  1729 => 1128,  1721 => 1127,  1716 => 1124,  1704 => 1118,  1701 => 1117,  1695 => 1116,  1691 => 1115,  1688 => 1114,  1682 => 1113,  1677 => 1110,  1669 => 1108,  1667 => 1107,  1662 => 1105,  1659 => 1104,  1656 => 1103,  1653 => 1102,  1650 => 1101,  1647 => 1100,  1644 => 1099,  1641 => 1098,  1638 => 1097,  1635 => 1096,  1632 => 1095,  1629 => 1094,  1626 => 1093,  1623 => 1092,  1620 => 1091,  1616 => 1090,  1609 => 1086,  1605 => 1085,  1600 => 1082,  1597 => 1081,  1594 => 1079,  1589 => 1076,  1583 => 1075,  1578 => 1072,  1566 => 1065,  1556 => 1064,  1551 => 1062,  1547 => 1060,  1541 => 1058,  1535 => 1056,  1533 => 1055,  1523 => 1053,  1519 => 1052,  1510 => 1046,  1500 => 1045,  1494 => 1043,  1488 => 1042,  1483 => 1039,  1480 => 1038,  1476 => 1037,  1470 => 1034,  1466 => 1033,  1461 => 1030,  1458 => 1029,  1455 => 1027,  1449 => 1023,  1439 => 1020,  1433 => 1019,  1422 => 1018,  1418 => 1017,  1411 => 1013,  1407 => 1012,  1402 => 1009,  1399 => 1008,  1387 => 998,  1383 => 997,  1376 => 993,  1368 => 988,  1364 => 987,  1352 => 978,  1348 => 977,  1337 => 969,  1333 => 968,  1329 => 967,  1324 => 964,  1303 => 945,  1273 => 918,  1269 => 917,  1260 => 911,  1256 => 910,  1247 => 904,  1243 => 903,  1234 => 897,  1230 => 896,  1220 => 889,  1216 => 888,  1212 => 887,  1206 => 883,  1197 => 876,  1193 => 875,  1186 => 871,  1182 => 870,  1175 => 866,  1171 => 865,  1164 => 861,  1160 => 860,  1151 => 854,  1147 => 853,  1143 => 852,  1138 => 849,  1127 => 840,  1119 => 839,  1115 => 838,  1111 => 837,  1107 => 836,  1091 => 823,  1087 => 822,  1083 => 821,  1079 => 820,  1075 => 819,  1060 => 807,  1056 => 806,  1052 => 805,  1048 => 804,  1044 => 803,  1030 => 792,  1026 => 791,  1022 => 790,  1017 => 787,  1008 => 780,  1001 => 776,  994 => 774,  988 => 770,  978 => 762,  969 => 756,  965 => 755,  952 => 749,  944 => 748,  940 => 746,  935 => 743,  929 => 740,  925 => 739,  921 => 738,  914 => 734,  906 => 728,  902 => 725,  889 => 724,  253 => 99,  240 => 98,  217 => 96,  194 => 95,  171 => 94,  148 => 93,  137 => 1,  135 => 90,  134 => 89,  133 => 88,  132 => 87,  131 => 85,  130 => 84,  129 => 83,  128 => 82,  127 => 80,  126 => 79,  125 => 78,  124 => 77,  123 => 76,  122 => 74,  121 => 73,  120 => 72,  119 => 71,  118 => 70,  117 => 69,  116 => 68,  115 => 67,  114 => 66,  113 => 65,  112 => 64,  111 => 62,  110 => 61,  109 => 60,  108 => 59,  107 => 56,  106 => 55,  105 => 54,  104 => 52,  103 => 51,  102 => 50,  101 => 49,  100 => 48,  99 => 47,  98 => 46,  97 => 45,  96 => 44,  95 => 43,  94 => 42,  93 => 40,  92 => 39,  91 => 38,  90 => 37,  89 => 36,  88 => 35,  87 => 34,  86 => 33,  85 => 32,  84 => 31,  83 => 30,  82 => 29,  81 => 28,  80 => 27,  79 => 26,  78 => 24,  77 => 23,  76 => 22,  75 => 21,  74 => 20,  73 => 19,  72 => 18,  71 => 17,  70 => 16,  69 => 15,  68 => 14,  67 => 13,  66 => 12,  65 => 11,  64 => 10,  63 => 9,  62 => 8,  61 => 7,  59 => 6,  46 => 1,);
  1914.     }
  1915.     public function getSourceContext(): Source
  1916.     {
  1917.         return new Source("{% extends 'application/whileresume/website/candidates/layout-social.html.twig' %}
  1918. {# ═══════════════════════════════════════════════════════════════════
  1919.    STRINGS bilingues
  1920. ═══════════════════════════════════════════════════════════════════ #}
  1921. {% set isFR = app.request.locale == 'fr' %}
  1922. {% set t = {
  1923.     hero_eyebrow:        isFR ? 'Plateforme d’emploi nouvelle génération' : 'A new-generation job platform',
  1924.     hero_title_1:        isFR ? 'Faites parler' : 'Let your',
  1925.     hero_title_2:        isFR ? 'votre CV.' : 'CV speak.',
  1926.     hero_title_3:        isFR ? 'On s’occupe du reste.' : 'We handle the rest.',
  1927.     hero_lede:           isFR ? 'Whileresume met en relation les talents avec les entreprises qui recrutent — sans candidature à rallonge, sans CV à refaire 10 fois. Likez, matchez, échangez.' : 'Whileresume connects talent with hiring companies — no endless applications, no CVs rewritten ten times. Like, match, chat.',
  1928.     hero_search_placeholder: isFR ? 'Un poste, une ville, une entreprise…' : 'A job, a city, a company…',
  1929.     hero_search_button:  isFR ? 'Rechercher' : 'Search',
  1930.     hero_byline_jobs:    isFR ? 'offres en ligne' : 'jobs online',
  1931.     hero_byline_apps:    isFR ? 'iOS · Android · Web' : 'iOS · Android · Web',
  1932.     hero_byline_free:    isFR ? 'gratuit pour les candidats' : 'free for candidates',
  1933.     search_loading:      isFR ? 'Recherche…' : 'Searching…',
  1934.     search_no_results:   isFR ? 'Aucune offre ne correspond à votre recherche' : 'No job matches your search',
  1935.     search_no_results_hint: isFR ? 'Essayez avec d’autres mots-clés' : 'Try other keywords',
  1936.     search_results_count: isFR ? 'offres trouvées' : 'jobs found',
  1937.     search_view_all:     isFR ? 'Voir toutes les offres' : 'See all jobs',
  1938.     search_view_offer:   isFR ? 'Voir l’offre' : 'View job',
  1939.     search_clear:        isFR ? 'Effacer' : 'Clear',
  1940.     paths_eyebrow:       isFR ? 'Trois manières d’entrer' : 'Three ways in',
  1941.     paths_title:         isFR ? 'Choisissez votre point de départ' : 'Choose your starting point',
  1942.     paths_lede:          isFR ? 'Que vous arriviez avec un CV bien rangé ou simplement avec l’envie de bouger, il existe une porte qui vous correspond.' : 'Whether you arrive with a polished CV or just the urge to move on, there’s a door for you.',
  1943.     path1_label:         isFR ? 'J’ai déjà un CV' : 'I have a CV',
  1944.     path1_title:         isFR ? 'Envoyez. On lit. On améliore.' : 'Send. Read. Refine.',
  1945.     path1_desc:          isFR ? 'Vous déposez votre CV, on en extrait les compétences, on identifie ce qui peut être renforcé, et on régénère deux versions propres dans la langue et le thème de votre choix.' : 'You upload your CV, we extract your skills, identify what can be strengthened, and regenerate two clean versions in the language and theme of your choice.',
  1946.     path1_cta:           isFR ? 'Déposer mon CV' : 'Upload my CV',
  1947.     path2_label:         isFR ? 'Je pars de zéro' : 'Starting fresh',
  1948.     path2_title:         isFR ? 'Quelques étapes. Un beau CV.' : 'A few steps. A clean CV.',
  1949.     path2_desc:          isFR ? 'Pas de CV ? On vous accompagne dans un tunnel guidé. À la fin, vous repartez avec un document construit, lisible, prêt à être envoyé — ou à laisser parler pour vous, ici.' : 'No CV? We guide you through. At the end, you walk out with a structured, readable document, ready to send — or to let it speak for you, here.',
  1950.     path2_cta:           isFR ? 'Construire mon CV' : 'Build my CV',
  1951.     path3_label:         isFR ? 'Je veux d’abord regarder' : 'Browse first',
  1952.     path3_title:         isFR ? 'Liker, c’est déjà commencer.' : 'Liking is already starting.',
  1953.     path3_desc:          isFR ? 'Parcourez les offres et les entreprises. Likez celles qui vous parlent. On en déduit vos goûts, on vous propose mieux, et les recruteurs intéressés peuvent vous trouver.' : 'Browse jobs and companies. Like the ones that speak to you. We learn your taste, suggest better ones, and interested recruiters find you.',
  1954.     path3_cta:           isFR ? 'Voir les offres' : 'See jobs',
  1955.     how_eyebrow:         isFR ? 'Comment ça marche' : 'How it works',
  1956.     how_title:           isFR ? 'Quatre temps, un mouvement.' : 'Four moves, one motion.',
  1957.     how_lede:            isFR ? 'On a réduit le parcours à l’essentiel. Pas de remplissage, pas de vous demander deux fois la même chose.' : 'We pared the journey down to the essentials. No filler, no asking the same thing twice.',
  1958.     step1_title:         isFR ? 'Vous racontez' : 'You tell',
  1959.     step1_desc:          isFR ? 'CV uploadé ou tunnel guidé. On collecte ce qu’il faut savoir : compétences, parcours, envies, langues.' : 'CV uploaded or guided tunnel. We collect what matters: skills, experience, wishes, languages.',
  1960.     step2_title:         isFR ? 'On analyse' : 'We analyze',
  1961.     step2_desc:          isFR ? 'Notre intelligence relit votre profil. Forces, axes d’amélioration : vous recevez un retour clair.' : 'Our intelligence re-reads your profile. Strengths, areas to improve: you get a clear report.',
  1962.     step3_title:         isFR ? 'On génère' : 'We generate',
  1963.     step3_desc:          isFR ? 'Votre CV est généré dans deux thèmes, plusieurs couleurs, plusieurs langues. Téléchargeable à tout moment.' : 'Your CV is generated in two themes, multiple colors, multiple languages. Downloadable any time.',
  1964.     step4_title:         isFR ? 'On vous expose' : 'We expose you',
  1965.     step4_desc:          isFR ? 'Votre profil devient visible des recruteurs qui cherchent exactement votre type de talent.' : 'Your profile becomes visible to recruiters looking for exactly your type of talent.',
  1966.     apps_eyebrow:        isFR ? 'Disponible partout' : 'Available everywhere',
  1967.     apps_title:          isFR ? 'Trois plateformes, une seule expérience' : 'Three platforms, one experience',
  1968.     apps_lede:           isFR ? 'Vos préférences vous suivent. Likez une offre dans le métro, envoyez votre CV depuis votre canapé.' : 'Your preferences follow you. Like an offer on the subway, send your CV from the couch.',
  1969.     apps_ios:            'iOS',
  1970.     apps_android:        'Android',
  1971.     apps_web:            isFR ? 'Web' : 'Web',
  1972.     apps_ios_desc:       isFR ? 'Téléchargez sur l’App Store' : 'Download on the App Store',
  1973.     apps_android_desc:   isFR ? 'Téléchargez sur Google Play' : 'Get it on Google Play',
  1974.     apps_web_desc:       isFR ? 'Connectez-vous depuis le navigateur' : 'Log in from your browser',
  1975.     match_eyebrow:       isFR ? 'Le match ne se force pas' : 'A match cannot be forced',
  1976.     match_title:         isFR ? 'Likez. Matchez. Échangez.' : 'Like. Match. Chat.',
  1977.     match_lede:          isFR ? 'Vous likez ce qui vous plaît, on apprend, et les entreprises intéressées passent la première.' : 'You like what catches your eye, we learn, and interested companies make the first move.',
  1978.     match_b1_title:      isFR ? 'Likez ce qui vous parle' : 'Like what speaks to you',
  1979.     match_b1_desc:       isFR ? 'Offres, entreprises, recruteurs. On retient tout pour mieux vous connaître.' : 'Jobs, companies, recruiters. We remember everything to know you better.',
  1980.     match_b2_title:      isFR ? 'Recommandations sur mesure' : 'Tailored recommendations',
  1981.     match_b2_desc:       isFR ? 'Plus vous likez, plus on vous propose des offres alignées avec votre profil.' : 'The more you like, the more we suggest offers aligned with your profile.',
  1982.     match_b3_title:      isFR ? 'Les recruteurs viennent à vous' : 'Recruiters come to you',
  1983.     match_b3_desc:       isFR ? 'Quand votre profil match, c’est l’entreprise qui passe la première.' : 'When your profile matches, the company makes the first move.',
  1984.     match_b4_title:      isFR ? 'Offres externes incluses' : 'External offers included',
  1985.     match_b4_desc:       isFR ? 'On indexe aussi des offres externes pour maximiser vos chances. Lien direct vers le site de l’employeur.' : 'We also index external offers to maximize your chances. Direct link to the employer’s site.',
  1986.     keywords_title:      isFR ? 'Cherchez par domaine' : 'Search by field',
  1987.     keywords_lede:       isFR ? 'Une porte d’entrée par métier' : 'One door per craft',
  1988.     popular_title:       isFR ? 'Offres populaires' : 'Popular jobs',
  1989.     popular_lede:        isFR ? 'Une sélection d’offres ouvertes en ce moment, par catégorie' : 'A selection of currently open positions, by category',
  1990.     btn_more:            isFR ? 'Tout voir' : 'See all',
  1991.     articles_title:      isFR ? 'Conseils, ressources & guides' : 'Advice, resources & guides',
  1992.     articles_lede:       isFR ? 'Pour rebondir, négocier, postuler mieux.' : 'To bounce back, negotiate and apply better.',
  1993.     articles_view_all:   isFR ? 'Voir tous les articles' : 'See all articles',
  1994.     read_article:        isFR ? 'Lire' : 'Read',
  1995.     final_title:         isFR ? 'Prêt à propulser votre carrière ?' : 'Ready to take your career further?',
  1996.     final_subtitle:      isFR ? 'Rejoignez celles et ceux qui ont déjà tourné la page.' : 'Join those who have already turned the page.',
  1997.     final_candidate:     isFR ? 'Je suis candidat·e' : 'I’m a candidate',
  1998.     final_recruiter:     isFR ? 'Je recrute' : 'I’m hiring'
  1999. } %}
  2000. {% block title %}{{ page.shortTitle }}{% endblock %}
  2001. {% block description %}{{ page.shortDescription }}{% endblock %}
  2002. {% block robots %}{{ page.robots }}{% endblock %}
  2003. {% block canonical %}{% include \"/vitrine/lexend/components/languages/canonical_classic.html.twig\" %}{% endblock %}
  2004. {% block css %}
  2005.     {{ parent() }}
  2006.     <style>
  2007.         /* ═══════════════════════════════════════════════════════════════════
  2008.            VARIABLES
  2009.         ═══════════════════════════════════════════════════════════════════ */
  2010.         :root{
  2011.             --wr-bg:#FBFCFE;
  2012.             --wr-card:#FFFFFF;
  2013.             --wr-violet:#8A63C0;
  2014.             --wr-violet-2:#A98AD3;
  2015.             --wr-violet-soft:#F2EDFA;
  2016.             --wr-violet-softer:#F8F4FD;
  2017.             --wr-violet-dark:#6B47A6;
  2018.             --wr-ink:#1E1B2E;
  2019.             --wr-ink-2:#374151;
  2020.             --wr-muted:#6B7280;
  2021.             --wr-muted-2:#9CA3AF;
  2022.             --wr-line:#EEF1F7;
  2023.             --wr-line-2:#E5E9F0;
  2024.             --wr-shadow:0 1px 2px rgba(30,27,46,.04),0 4px 16px rgba(30,27,46,.04);
  2025.             --wr-shadow-hover:0 4px 8px rgba(138,99,192,.08),0 12px 32px rgba(138,99,192,.1);
  2026.         }
  2027.         /* ═══════════════════════════════════════════════════════════════════
  2028.            PLEINE LARGEUR — On retire la réservation d'espace de la sidebar droite
  2029.            ═══════════════════════════════════════════════════════════════════ */
  2030.         body .main-content.right-chat-active{padding-right:0!important}
  2031.         body .main-content{padding-right:0!important}
  2032.         body .right-chat{display:none!important}
  2033.         body .middle-sidebar-bottom .middle-sidebar-left{padding-right:0!important;max-width:none!important;width:100%!important}
  2034.         body .middle-sidebar-bottom{max-width:none!important}
  2035.         .wr{margin:-15px -15px 0;background:var(--wr-bg);color:var(--wr-ink);font-family:inherit;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
  2036.         @media(max-width:991px){.wr{margin:0 -15px}}
  2037.         .wr *{box-sizing:border-box}
  2038.         .wr a{color:inherit;text-decoration:none}
  2039.         /* ═══════════════════════════════════════════════════════════════════
  2040.            SECTIONS GENERIC — Fond UNIFIÉ partout (pas d'alternance)
  2041.            ═══════════════════════════════════════════════════════════════════ */
  2042.         .wr-section{padding:80px 32px;background:var(--wr-bg);position:relative}
  2043.         .wr-section--tight{padding:48px 32px}
  2044.         @media(max-width:768px){.wr-section{padding:56px 20px}.wr-section--tight{padding:36px 20px}}
  2045.         /* Filet décoratif au lieu d'un changement de couleur */
  2046.         .wr-section + .wr-section::before{
  2047.             content:\"\";
  2048.             position:absolute;top:0;left:50%;transform:translateX(-50%);
  2049.             width:80px;height:1px;
  2050.             background:linear-gradient(90deg,transparent,var(--wr-line-2),transparent);
  2051.         }
  2052.         .wr-container{max-width:1200px;margin:0 auto;position:relative}
  2053.         /* ═══ Eyebrow ═══ */
  2054.         .wr-eyebrow{
  2055.             display:inline-flex;align-items:center;gap:8px;
  2056.             padding:6px 14px;border-radius:100px;
  2057.             background:var(--wr-violet-soft);
  2058.             color:var(--wr-violet-dark);
  2059.             font-size:11.5px;font-weight:600;
  2060.             text-transform:uppercase;letter-spacing:.12em;
  2061.             margin-bottom:22px;
  2062.         }
  2063.         .wr-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--wr-violet);animation:wrPulse 2.4s ease-in-out infinite}
  2064.         @keyframes wrPulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}
  2065.         /* ═══ Titres — THIN + LARGE ═══ */
  2066.         .wr-title{
  2067.             font-family:inherit;
  2068.             font-weight:500;
  2069.             font-size:36px;line-height:1.1;letter-spacing:-0.03em;
  2070.             color:var(--wr-ink);
  2071.             margin:0 auto 16px;
  2072.             max-width:920px;
  2073.         }
  2074.         @media(min-width:768px){.wr-title{font-size:48px}}
  2075.         @media(min-width:1024px){.wr-title{font-size:58px}}
  2076.         .wr-title--sm{font-size:30px}
  2077.         @media(min-width:768px){.wr-title--sm{font-size:38px}}
  2078.         .wr-title em{font-style:normal;font-weight:600;color:var(--wr-violet)}
  2079.         .wr-lede{
  2080.             font-size:17px;line-height:1.55;font-weight:400;
  2081.             color:var(--wr-ink-2);
  2082.             margin:0 auto;max-width:680px;
  2083.         }
  2084.         .wr-section-head{text-align:center;margin-bottom:56px}
  2085.         /* ═══════════════════════════════════════════════════════════════════
  2086.            HERO — Plein texte, fond uni, animation discrète
  2087.            ═══════════════════════════════════════════════════════════════════ */
  2088.         .hero{
  2089.             position:relative;
  2090.             background:var(--wr-bg);
  2091.             padding:100px 32px 80px;
  2092.             overflow:hidden;
  2093.         }
  2094.         @media(max-width:768px){.hero{padding:60px 20px 60px}}
  2095.         /* Décor : 2 blobs très flous violet pâle, plus discrets */
  2096.         .hero::before{
  2097.             content:\"\";position:absolute;
  2098.             top:-260px;right:-180px;width:560px;height:560px;
  2099.             background:radial-gradient(circle,rgba(138,99,192,.14) 0%,transparent 65%);
  2100.             pointer-events:none;filter:blur(50px);
  2101.         }
  2102.         .hero::after{
  2103.             content:\"\";position:absolute;
  2104.             bottom:-200px;left:-180px;width:480px;height:480px;
  2105.             background:radial-gradient(circle,rgba(138,99,192,.09) 0%,transparent 65%);
  2106.             pointer-events:none;filter:blur(50px);
  2107.         }
  2108.         .hero-dots{
  2109.             position:absolute;inset:0;
  2110.             background-image:radial-gradient(circle,rgba(138,99,192,.07) 1px,transparent 1px);
  2111.             background-size:32px 32px;
  2112.             mask-image:radial-gradient(ellipse 60% 45% at 50% 45%,black,transparent 80%);
  2113.             -webkit-mask-image:radial-gradient(ellipse 60% 45% at 50% 45%,black,transparent 80%);
  2114.             pointer-events:none;
  2115.         }
  2116.         .hero-inner{position:relative;z-index:2;max-width:1100px;margin:0 auto;text-align:center}
  2117.         .hero-badge{
  2118.             display:inline-flex;align-items:center;gap:8px;
  2119.             padding:7px 14px;border-radius:100px;
  2120.             background:var(--wr-card);
  2121.             border:1px solid var(--wr-line-2);
  2122.             color:var(--wr-violet-dark);
  2123.             font-size:12px;font-weight:500;
  2124.             margin-bottom:28px;
  2125.             box-shadow:var(--wr-shadow);
  2126.             opacity:0;transform:translateY(8px);
  2127.             animation:wrFadeUp .8s ease forwards;
  2128.         }
  2129.         .hero-badge-dot{width:6px;height:6px;border-radius:50%;background:#10B981;box-shadow:0 0 0 0 rgba(16,185,129,.4);animation:wrPulse2 2s ease infinite}
  2130.         @keyframes wrPulse2{0%{box-shadow:0 0 0 0 rgba(16,185,129,.4)}70%{box-shadow:0 0 0 8px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
  2131.         @keyframes wrFadeUp{to{opacity:1;transform:translateY(0)}}
  2132.         /* ═══ Titre hero — THIN large ═══ */
  2133.         .hero-title{
  2134.             font-weight:400;
  2135.             font-size:44px;line-height:1.04;letter-spacing:-0.04em;
  2136.             color:var(--wr-ink);
  2137.             margin:0 auto 24px;
  2138.             max-width:1000px;
  2139.         }
  2140.         @media(min-width:768px){.hero-title{font-size:68px;letter-spacing:-0.045em}}
  2141.         @media(min-width:1100px){.hero-title{font-size:88px}}
  2142.         .hero-title-line{display:block;opacity:0;transform:translateY(12px);animation:wrFadeUp .9s cubic-bezier(.2,.7,.2,1) forwards}
  2143.         .hero-title-line:nth-child(1){animation-delay:.1s}
  2144.         .hero-title-line:nth-child(2){animation-delay:.25s}
  2145.         .hero-title-line:nth-child(3){animation-delay:.4s}
  2146.         .hero-title-accent{
  2147.             color:var(--wr-violet);
  2148.             font-weight:500;
  2149.             position:relative;display:inline-block;
  2150.         }
  2151.         .hero-title-accent::after{
  2152.             content:\"\";
  2153.             position:absolute;left:0;right:0;bottom:.04em;
  2154.             height:.1em;
  2155.             background:var(--wr-violet);
  2156.             opacity:.22;
  2157.             transform-origin:left center;
  2158.             transform:scaleX(0);
  2159.             animation:wrUnderline 1.1s cubic-bezier(.6,0,.4,1) 1s forwards;
  2160.             border-radius:2px;
  2161.         }
  2162.         @keyframes wrUnderline{to{transform:scaleX(1)}}
  2163.         .hero-lede{
  2164.             font-size:17px;line-height:1.55;color:var(--wr-ink-2);font-weight:400;
  2165.             margin:0 auto 36px;max-width:620px;
  2166.             opacity:0;animation:wrFadeUp .9s ease 1.1s forwards;
  2167.         }
  2168.         @media(min-width:768px){.hero-lede{font-size:18px}}
  2169.         /* ═══════════════════════════════════════════════════════════════════
  2170.            HERO — RECHERCHE INLINE (avec résultats AJAX)
  2171.            ═══════════════════════════════════════════════════════════════════ */
  2172.         .hero-search-wrap{
  2173.             max-width:680px;margin:0 auto 28px;
  2174.             opacity:0;animation:wrFadeUp .9s ease 1.3s forwards;
  2175.         }
  2176.         .hero-search{
  2177.             display:flex;align-items:center;
  2178.             background:var(--wr-card);
  2179.             border:1px solid var(--wr-line-2);
  2180.             border-radius:16px;
  2181.             padding:6px;
  2182.             box-shadow:0 2px 6px rgba(30,27,46,.04),0 16px 40px rgba(138,99,192,.08);
  2183.             transition:transform .2s,box-shadow .2s,border-color .2s,border-radius .25s;
  2184.             position:relative;z-index:5;
  2185.         }
  2186.         .hero-search:focus-within,
  2187.         .hero-search.has-results{
  2188.             border-color:var(--wr-violet-2);
  2189.             box-shadow:0 4px 10px rgba(30,27,46,.05),0 20px 50px rgba(138,99,192,.16);
  2190.         }
  2191.         .hero-search.has-results{
  2192.             border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:var(--wr-line);
  2193.         }
  2194.         .hero-search-icon{
  2195.             display:flex;align-items:center;justify-content:center;
  2196.             width:42px;height:42px;flex-shrink:0;color:var(--wr-muted-2);
  2197.         }
  2198.         .hero-search-icon svg{width:18px;height:18px}
  2199.         .hero-search-input{
  2200.             flex:1;border:0;outline:0;background:transparent;
  2201.             font-size:15px;font-family:inherit;color:var(--wr-ink);
  2202.             padding:0 6px;height:42px;min-width:0;
  2203.         }
  2204.         .hero-search-input::placeholder{color:var(--wr-muted-2)}
  2205.         .hero-search-clear{
  2206.             display:none;align-items:center;justify-content:center;
  2207.             width:32px;height:32px;flex-shrink:0;color:var(--wr-muted-2);
  2208.             border:0;background:transparent;cursor:pointer;border-radius:8px;
  2209.             transition:background .15s,color .15s;
  2210.         }
  2211.         .hero-search-clear:hover{background:var(--wr-violet-soft);color:var(--wr-violet)}
  2212.         .hero-search-clear svg{width:14px;height:14px}
  2213.         .hero-search-clear.is-visible{display:inline-flex}
  2214.         .hero-search-btn{
  2215.             background:var(--wr-violet);color:#fff;
  2216.             border:0;padding:0 22px;border-radius:11px;
  2217.             font-size:14px;font-weight:600;font-family:inherit;
  2218.             cursor:pointer;flex-shrink:0;height:42px;
  2219.             display:inline-flex;align-items:center;gap:6px;
  2220.             transition:background .15s,transform .15s,box-shadow .15s;
  2221.             box-shadow:0 4px 12px rgba(138,99,192,.3);
  2222.         }
  2223.         .hero-search-btn:hover{background:var(--wr-violet-dark);transform:translateY(-1px);box-shadow:0 6px 18px rgba(138,99,192,.4)}
  2224.         .hero-search-btn svg{width:13px;height:13px}
  2225.         @media(max-width:540px){.hero-search-btn span{display:none}.hero-search-btn{padding:0 14px}}
  2226.         /* Résultats inline */
  2227.         .hero-search-results{
  2228.             background:var(--wr-card);
  2229.             border:1px solid var(--wr-line);
  2230.             border-top:0;
  2231.             border-radius:0 0 16px 16px;
  2232.             max-height:0;
  2233.             overflow:hidden;
  2234.             transition:max-height .35s ease,padding .25s ease;
  2235.             text-align:left;
  2236.             box-shadow:0 16px 40px rgba(138,99,192,.1);
  2237.             padding:0 14px;
  2238.         }
  2239.         .hero-search-results.is-visible{max-height:560px;overflow-y:auto;padding:8px 14px 12px}
  2240.         .hero-search-results::-webkit-scrollbar{width:6px}
  2241.         .hero-search-results::-webkit-scrollbar-thumb{background:var(--wr-line-2);border-radius:6px}
  2242.         .hero-search-meta{
  2243.             display:flex;align-items:center;justify-content:space-between;gap:10px;
  2244.             padding:10px 4px;
  2245.             font-size:11.5px;color:var(--wr-muted);
  2246.             text-transform:uppercase;letter-spacing:.08em;font-weight:600;
  2247.         }
  2248.         .hero-search-meta strong{color:var(--wr-violet);font-weight:700;font-size:13px}
  2249.         .hero-search-meta a{color:var(--wr-violet);font-weight:700;display:inline-flex;align-items:center;gap:4px}
  2250.         .hero-search-meta a svg{width:11px;height:11px}
  2251.         .hero-search-result{
  2252.             display:flex;align-items:center;gap:12px;
  2253.             padding:10px 8px;border-radius:11px;
  2254.             text-decoration:none;color:inherit;
  2255.             transition:background .15s;
  2256.         }
  2257.         .hero-search-result:hover{background:var(--wr-violet-softer);text-decoration:none;color:inherit}
  2258.         .hero-search-result-logo{
  2259.             width:38px;height:38px;border-radius:10px;flex-shrink:0;
  2260.             background:var(--wr-violet-soft);color:var(--wr-violet);
  2261.             display:flex;align-items:center;justify-content:center;
  2262.             font-weight:700;font-size:13px;overflow:hidden;
  2263.         }
  2264.         .hero-search-result-logo img{width:100%;height:100%;object-fit:cover}
  2265.         .hero-search-result-info{flex:1;min-width:0}
  2266.         .hero-search-result-title{
  2267.             font-weight:600;font-size:13.5px;color:var(--wr-ink);
  2268.             margin:0 0 2px;line-height:1.3;
  2269.             white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  2270.         }
  2271.         .hero-search-result-meta{
  2272.             font-size:11.5px;color:var(--wr-muted);margin:0;
  2273.             white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  2274.         }
  2275.         .hero-search-result-cta{
  2276.             font-size:11px;font-weight:600;color:var(--wr-violet);
  2277.             text-transform:uppercase;letter-spacing:.06em;
  2278.             display:inline-flex;align-items:center;gap:4px;flex-shrink:0;
  2279.             opacity:0;transition:opacity .15s,transform .15s;transform:translateX(-4px);
  2280.         }
  2281.         .hero-search-result:hover .hero-search-result-cta{opacity:1;transform:translateX(0)}
  2282.         .hero-search-result-cta svg{width:11px;height:11px}
  2283.         .hero-search-empty{
  2284.             text-align:center;padding:36px 20px;color:var(--wr-muted);
  2285.         }
  2286.         .hero-search-empty-icon{
  2287.             width:48px;height:48px;border-radius:14px;
  2288.             background:var(--wr-violet-soft);color:var(--wr-violet);
  2289.             display:inline-flex;align-items:center;justify-content:center;
  2290.             margin-bottom:14px;
  2291.         }
  2292.         .hero-search-empty-icon svg{width:22px;height:22px}
  2293.         .hero-search-empty-title{font-weight:600;font-size:14px;color:var(--wr-ink);margin:0 0 4px}
  2294.         .hero-search-empty-hint{font-size:13px;margin:0;color:var(--wr-muted)}
  2295.         .hero-search-loading{
  2296.             text-align:center;padding:30px 20px;color:var(--wr-muted);font-size:13px;
  2297.             display:flex;align-items:center;justify-content:center;gap:10px;
  2298.         }
  2299.         .hero-search-spinner{
  2300.             width:16px;height:16px;border-radius:50%;
  2301.             border:2px solid var(--wr-violet-soft);border-top-color:var(--wr-violet);
  2302.             animation:wrSpin .7s linear infinite;
  2303.         }
  2304.         @keyframes wrSpin{to{transform:rotate(360deg)}}
  2305.         /* Byline */
  2306.         .hero-byline{
  2307.             display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;
  2308.             font-size:13px;color:var(--wr-muted);
  2309.             opacity:0;animation:wrFadeUp .9s ease 1.5s forwards;
  2310.         }
  2311.         .hero-byline strong{color:var(--wr-violet);font-weight:700;font-size:15px;margin-right:3px}
  2312.         .hero-byline-sep{color:var(--wr-line-2)}
  2313.         .hero-byline svg{width:14px;height:14px;color:#10B981;flex-shrink:0}
  2314.         .hero-byline span{display:inline-flex;align-items:center;gap:6px}
  2315.         @media(max-width:540px){.hero-byline{gap:10px;font-size:12px}.hero-byline-sep{display:none}}
  2316.         /* ═══════════════════════════════════════════════════════════════════
  2317.            SECTION : 3 PARCOURS
  2318.            ═══════════════════════════════════════════════════════════════════ */
  2319.         .paths-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  2320.         @media(max-width:991px){.paths-grid{grid-template-columns:1fr;gap:14px}}
  2321.         .path-card{
  2322.             position:relative;
  2323.             background:var(--wr-card);
  2324.             border:1px solid var(--wr-line);
  2325.             border-radius:20px;padding:28px;
  2326.             display:flex;flex-direction:column;
  2327.             transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  2328.             box-shadow:var(--wr-shadow);
  2329.         }
  2330.         .path-card:hover{transform:translateY(-4px);box-shadow:var(--wr-shadow-hover);border-color:var(--wr-violet-2)}
  2331.         .path-card-illu{
  2332.             width:64px;height:64px;border-radius:16px;
  2333.             background:var(--wr-violet-soft);color:var(--wr-violet);
  2334.             display:flex;align-items:center;justify-content:center;
  2335.             margin-bottom:22px;
  2336.         }
  2337.         .path-card-illu svg{width:30px;height:30px}
  2338.         .path-card-label{
  2339.             display:inline-block;
  2340.             font-size:11px;font-weight:600;
  2341.             color:var(--wr-violet-dark);text-transform:uppercase;letter-spacing:.1em;
  2342.             margin-bottom:10px;align-self:flex-start;
  2343.         }
  2344.         .path-card-title{
  2345.             font-weight:500;font-size:22px;line-height:1.25;letter-spacing:-0.015em;
  2346.             color:var(--wr-ink);margin:0 0 10px;
  2347.         }
  2348.         .path-card-desc{
  2349.             font-size:14px;line-height:1.6;color:var(--wr-muted);
  2350.             margin:0 0 22px;flex:1;
  2351.         }
  2352.         .path-card-cta{
  2353.             display:inline-flex;align-items:center;justify-content:center;gap:6px;
  2354.             background:var(--wr-violet);color:#fff;
  2355.             padding:12px 18px;border-radius:11px;
  2356.             font-size:13px;font-weight:600;
  2357.             align-self:stretch;
  2358.             transition:background .15s,transform .15s,box-shadow .15s;
  2359.             box-shadow:0 2px 8px rgba(138,99,192,.2);
  2360.         }
  2361.         .path-card-cta:hover{background:var(--wr-violet-dark);color:#fff;text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 12px rgba(138,99,192,.3)}
  2362.         .path-card-cta svg{width:13px;height:13px;transition:transform .15s}
  2363.         .path-card-cta:hover svg{transform:translateX(3px)}
  2364.         /* ═══════════════════════════════════════════════════════════════════
  2365.            MÉTHODE
  2366.            ═══════════════════════════════════════════════════════════════════ */
  2367.         .method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  2368.         @media(max-width:991px){.method-grid{grid-template-columns:repeat(2,1fr)}}
  2369.         @media(max-width:540px){.method-grid{grid-template-columns:1fr}}
  2370.         .method-step{
  2371.             background:var(--wr-card);
  2372.             border:1px solid var(--wr-line);
  2373.             border-radius:18px;padding:24px;
  2374.             transition:transform .2s,box-shadow .2s,border-color .2s;
  2375.         }
  2376.         .method-step:hover{transform:translateY(-3px);box-shadow:var(--wr-shadow-hover);border-color:var(--wr-violet-soft)}
  2377.         .method-num{
  2378.             display:inline-flex;align-items:center;justify-content:center;
  2379.             width:36px;height:36px;border-radius:10px;
  2380.             background:var(--wr-violet-soft);color:var(--wr-violet);
  2381.             font-weight:700;font-size:14px;margin-bottom:16px;
  2382.         }
  2383.         .method-title{
  2384.             font-weight:500;font-size:17px;line-height:1.25;letter-spacing:-0.005em;
  2385.             color:var(--wr-ink);margin:0 0 6px;
  2386.         }
  2387.         .method-desc{font-size:13px;line-height:1.55;color:var(--wr-muted);margin:0}
  2388.         /* ═══════════════════════════════════════════════════════════════════
  2389.            MATCH
  2390.            ═══════════════════════════════════════════════════════════════════ */
  2391.         .match-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
  2392.         @media(max-width:991px){.match-grid{grid-template-columns:1fr;gap:40px}}
  2393.         .match-text .wr-title{margin-left:0;text-align:left}
  2394.         .match-text .wr-lede{margin-left:0;text-align:left}
  2395.         .match-text .wr-eyebrow{margin-bottom:20px}
  2396.         .match-features{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px}
  2397.         @media(max-width:540px){.match-features{grid-template-columns:1fr}}
  2398.         .match-feature{
  2399.             background:var(--wr-card);border:1px solid var(--wr-line);
  2400.             border-radius:14px;padding:18px;
  2401.             transition:transform .15s,border-color .15s,box-shadow .15s;
  2402.         }
  2403.         .match-feature:hover{transform:translateY(-2px);border-color:var(--wr-violet-soft);box-shadow:var(--wr-shadow)}
  2404.         .match-feature-icon{
  2405.             width:34px;height:34px;border-radius:10px;
  2406.             background:var(--wr-violet-soft);color:var(--wr-violet);
  2407.             display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px;
  2408.         }
  2409.         .match-feature-icon svg{width:16px;height:16px}
  2410.         .match-feature-title{font-weight:600;font-size:14px;line-height:1.3;color:var(--wr-ink);margin:0 0 5px}
  2411.         .match-feature-desc{font-size:12.5px;line-height:1.5;color:var(--wr-muted);margin:0}
  2412.         .match-visual{position:relative;display:flex;justify-content:center;align-items:center;padding:40px 0}
  2413.         .match-stack{position:relative;width:100%;max-width:340px;height:340px}
  2414.         .match-stack-card{
  2415.             position:absolute;
  2416.             background:var(--wr-card);border:1px solid var(--wr-line);
  2417.             border-radius:16px;padding:14px;
  2418.             display:flex;align-items:center;gap:12px;
  2419.             box-shadow:var(--wr-shadow);width:100%;
  2420.             transition:transform .3s ease;
  2421.         }
  2422.         .match-stack-card:nth-child(1){top:0;transform:rotate(-6deg) translateX(-10px);z-index:1;animation:wrFloat 6s ease-in-out infinite}
  2423.         .match-stack-card:nth-child(2){top:78px;left:14px;transform:rotate(2deg);z-index:3;box-shadow:0 16px 40px rgba(138,99,192,.18);animation:wrFloat 6s ease-in-out -2s infinite}
  2424.         .match-stack-card:nth-child(3){top:156px;transform:rotate(-3deg) translateX(8px);z-index:2;animation:wrFloat 6s ease-in-out -4s infinite}
  2425.         .match-stack-card:nth-child(4){top:234px;left:20px;transform:rotate(4deg);z-index:1;animation:wrFloat 6s ease-in-out -1s infinite}
  2426.         @keyframes wrFloat{0%,100%{transform:translateY(0) rotate(var(--r,0))}50%{transform:translateY(-6px) rotate(var(--r,0))}}
  2427.         .match-stack-logo{
  2428.             width:38px;height:38px;border-radius:10px;
  2429.             background:var(--wr-violet-soft);color:var(--wr-violet);
  2430.             display:flex;align-items:center;justify-content:center;
  2431.             font-weight:700;font-size:14px;flex-shrink:0;
  2432.         }
  2433.         .match-stack-info{flex:1;min-width:0}
  2434.         .match-stack-title{font-weight:600;font-size:13px;color:var(--wr-ink);margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
  2435.         .match-stack-meta{font-size:11px;color:var(--wr-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  2436.         .match-stack-heart{width:28px;height:28px;border-radius:50%;background:#FEE2E2;color:#EF4444;display:flex;align-items:center;justify-content:center;flex-shrink:0}
  2437.         .match-stack-heart svg{width:13px;height:13px;fill:currentColor}
  2438.         /* ═══════════════════════════════════════════════════════════════════
  2439.            APPS
  2440.            ═══════════════════════════════════════════════════════════════════ */
  2441.         .apps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  2442.         @media(max-width:768px){.apps-grid{grid-template-columns:1fr}}
  2443.         .app-card{
  2444.             background:var(--wr-card);border:1px solid var(--wr-line);
  2445.             border-radius:18px;padding:24px;
  2446.             display:flex;flex-direction:column;align-items:flex-start;
  2447.             transition:transform .2s,border-color .2s,box-shadow .2s;
  2448.         }
  2449.         .app-card:hover{transform:translateY(-3px);border-color:var(--wr-violet-2);box-shadow:var(--wr-shadow-hover);color:inherit;text-decoration:none}
  2450.         .app-card-icon{
  2451.             width:48px;height:48px;border-radius:14px;
  2452.             background:var(--wr-violet-soft);color:var(--wr-violet);
  2453.             display:inline-flex;align-items:center;justify-content:center;
  2454.             margin-bottom:18px;
  2455.         }
  2456.         .app-card-icon svg{width:22px;height:22px}
  2457.         .app-card-name{font-weight:500;font-size:18px;letter-spacing:-0.01em;color:var(--wr-ink);margin:0 0 6px}
  2458.         .app-card-desc{font-size:13px;line-height:1.5;color:var(--wr-muted);margin:0 0 16px;flex:1}
  2459.         .app-card-cta{font-size:12px;font-weight:600;color:var(--wr-violet);text-transform:uppercase;letter-spacing:.1em;display:inline-flex;align-items:center;gap:6px}
  2460.         .app-card-cta svg{width:11px;height:11px;transition:transform .15s}
  2461.         .app-card:hover .app-card-cta svg{transform:translateX(3px)}
  2462.         /* ═══════════════════════════════════════════════════════════════════
  2463.            KEYWORDS
  2464.            ═══════════════════════════════════════════════════════════════════ */
  2465.         .keywords-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:920px;margin:0 auto}
  2466.         .keyword-pill{
  2467.             display:inline-flex;align-items:center;gap:8px;
  2468.             padding:9px 16px;border-radius:100px;
  2469.             background:var(--wr-card);border:1px solid var(--wr-line-2);
  2470.             color:var(--wr-ink-2);
  2471.             font-size:13.5px;font-weight:500;
  2472.             transition:transform .15s,border-color .15s,background .15s,color .15s,box-shadow .15s;
  2473.         }
  2474.         .keyword-pill:hover{transform:translateY(-2px);border-color:var(--wr-violet);background:var(--wr-violet-soft);color:var(--wr-violet-dark);text-decoration:none;box-shadow:0 4px 10px rgba(138,99,192,.12)}
  2475.         .keyword-pill-icon{font-size:14px;line-height:1}
  2476.         /* ═══════════════════════════════════════════════════════════════════
  2477.            OFFRES POPULAIRES
  2478.            ═══════════════════════════════════════════════════════════════════ */
  2479.         .listings-block{margin-bottom:32px}
  2480.         .listings-block:last-child{margin-bottom:0}
  2481.         .listings-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}
  2482.         .listings-block-title{
  2483.             display:inline-flex;align-items:center;gap:10px;
  2484.             font-weight:500;font-size:18px;letter-spacing:-0.005em;
  2485.             color:var(--wr-ink);margin:0;
  2486.         }
  2487.         .listings-block-icon{font-size:20px;line-height:1}
  2488.         .listings-block-link{
  2489.             display:inline-flex;align-items:center;gap:4px;
  2490.             padding:6px 12px;border-radius:100px;
  2491.             font-size:12px;font-weight:600;
  2492.             color:var(--wr-violet);
  2493.             text-transform:uppercase;letter-spacing:.06em;
  2494.             border:1px solid var(--wr-violet-soft);
  2495.             background:var(--wr-card);
  2496.             transition:background .15s,border-color .15s,transform .15s;
  2497.         }
  2498.         .listings-block-link:hover{background:var(--wr-violet-soft);border-color:var(--wr-violet);text-decoration:none;color:var(--wr-violet-dark);transform:translateX(2px)}
  2499.         .listings-block-link svg{width:11px;height:11px}
  2500.         .listings-jobs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  2501.         @media(max-width:768px){.listings-jobs{grid-template-columns:1fr}}
  2502.         .listing-job{
  2503.             display:flex;align-items:center;gap:14px;
  2504.             background:var(--wr-card);border:1px solid var(--wr-line);
  2505.             border-radius:14px;padding:12px;
  2506.             transition:transform .15s,border-color .15s,box-shadow .15s;
  2507.         }
  2508.         .listing-job:hover{transform:translateY(-2px);border-color:var(--wr-violet-soft);box-shadow:var(--wr-shadow);color:inherit;text-decoration:none}
  2509.         .listing-job-logo{
  2510.             width:42px;height:42px;border-radius:11px;flex-shrink:0;
  2511.             background:var(--wr-violet-soft);color:var(--wr-violet);
  2512.             display:flex;align-items:center;justify-content:center;
  2513.             font-weight:700;font-size:14px;overflow:hidden;
  2514.         }
  2515.         .listing-job-logo img{width:100%;height:100%;object-fit:cover}
  2516.         .listing-job-info{flex:1;min-width:0}
  2517.         .listing-job-title{font-weight:600;font-size:13.5px;color:var(--wr-ink);margin:0 0 2px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  2518.         .listing-job-meta{font-size:11.5px;color:var(--wr-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  2519.         .listing-job-arrow{flex-shrink:0;color:var(--wr-muted-2);transition:color .15s,transform .15s}
  2520.         .listing-job-arrow svg{width:14px;height:14px}
  2521.         .listing-job:hover .listing-job-arrow{color:var(--wr-violet);transform:translateX(2px)}
  2522.         /* ═══════════════════════════════════════════════════════════════════
  2523.            ARTICLES
  2524.            ═══════════════════════════════════════════════════════════════════ */
  2525.         .articles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  2526.         @media(max-width:991px){.articles-grid{grid-template-columns:repeat(2,1fr)}}
  2527.         @media(max-width:640px){.articles-grid{grid-template-columns:1fr}}
  2528.         .wr-article{
  2529.             background:var(--wr-card);border:1px solid var(--wr-line);
  2530.             border-radius:18px;overflow:hidden;
  2531.             display:flex;flex-direction:column;
  2532.             transition:transform .2s,box-shadow .2s,border-color .2s;
  2533.         }
  2534.         .wr-article:hover{transform:translateY(-3px);box-shadow:var(--wr-shadow-hover);border-color:var(--wr-violet-2);color:inherit;text-decoration:none}
  2535.         .wr-article-img{aspect-ratio:16/10;background:var(--wr-violet-soft);overflow:hidden;flex-shrink:0}
  2536.         .wr-article-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
  2537.         .wr-article:hover .wr-article-img img{transform:scale(1.04)}
  2538.         .wr-article-body{padding:18px;flex:1;display:flex;flex-direction:column}
  2539.         .wr-article-meta{font-size:11px;font-weight:600;color:var(--wr-violet-dark);text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px}
  2540.         .wr-article-title{font-weight:500;font-size:16px;line-height:1.35;letter-spacing:-0.005em;color:var(--wr-ink);margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  2541.         .wr-article-excerpt{font-size:13px;line-height:1.5;color:var(--wr-muted);margin:0 0 14px;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  2542.         .wr-article-link{font-size:12px;font-weight:600;color:var(--wr-violet);text-transform:uppercase;letter-spacing:.06em;display:inline-flex;align-items:center;gap:4px}
  2543.         .wr-article-link svg{width:11px;height:11px;transition:transform .15s}
  2544.         .wr-article:hover .wr-article-link svg{transform:translateX(3px)}
  2545.         .articles-cta{text-align:center;margin-top:36px}
  2546.         .articles-cta a{
  2547.             display:inline-flex;align-items:center;gap:8px;
  2548.             padding:12px 22px;border-radius:11px;
  2549.             background:var(--wr-card);border:1px solid var(--wr-line-2);
  2550.             color:var(--wr-violet);
  2551.             font-size:13px;font-weight:600;
  2552.             transition:background .15s,transform .15s,border-color .15s;
  2553.         }
  2554.         .articles-cta a:hover{background:var(--wr-violet-soft);border-color:var(--wr-violet);transform:translateY(-2px);text-decoration:none;color:var(--wr-violet-dark)}
  2555.         .articles-cta svg{width:12px;height:12px}
  2556.         /* ═══════════════════════════════════════════════════════════════════
  2557.            CTA FINAL
  2558.            ═══════════════════════════════════════════════════════════════════ */
  2559.         .final-card{
  2560.             position:relative;
  2561.             background:linear-gradient(135deg,var(--wr-violet) 0%,var(--wr-violet-dark) 100%);
  2562.             border-radius:28px;
  2563.             padding:64px 32px;text-align:center;
  2564.             color:#fff;overflow:hidden;
  2565.             box-shadow:0 20px 60px -12px rgba(138,99,192,.4);
  2566.         }
  2567.         @media(max-width:768px){.final-card{padding:48px 24px;border-radius:22px}}
  2568.         .final-card::before{content:\"\";position:absolute;top:-100px;right:-100px;width:300px;height:300px;background:radial-gradient(circle,rgba(255,255,255,.18) 0%,transparent 65%);pointer-events:none}
  2569.         .final-card::after{content:\"\";position:absolute;bottom:-120px;left:-100px;width:280px;height:280px;background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 65%);pointer-events:none}
  2570.         .final-title{font-weight:500;font-size:32px;line-height:1.1;letter-spacing:-0.025em;color:#fff;margin:0 0 14px;position:relative;z-index:2}
  2571.         @media(min-width:768px){.final-title{font-size:44px}}
  2572.         .final-subtitle{font-size:16px;line-height:1.55;color:rgba(255,255,255,.88);margin:0 auto 32px;max-width:520px;position:relative;z-index:2}
  2573.         .final-buttons{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;position:relative;z-index:2}
  2574.         .final-btn{
  2575.             display:inline-flex;align-items:center;gap:8px;
  2576.             padding:14px 24px;border-radius:12px;
  2577.             font-size:14px;font-weight:600;
  2578.             transition:transform .15s,background .15s,box-shadow .15s;
  2579.         }
  2580.         .final-btn--primary{background:#fff;color:var(--wr-violet-dark)}
  2581.         .final-btn--primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.15);color:var(--wr-violet-dark);text-decoration:none}
  2582.         .final-btn--ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  2583.         .final-btn--ghost:hover{background:rgba(255,255,255,.2);transform:translateY(-2px);color:#fff;text-decoration:none}
  2584.         .final-btn svg{width:14px;height:14px;transition:transform .15s}
  2585.         .final-btn:hover svg{transform:translateX(3px)}
  2586.     </style>
  2587. {% endblock css %}
  2588. {% block body %}
  2589.     <div class=\"wr\">
  2590.         {# ═══════════════ HERO ═══════════════ #}
  2591.         <section class=\"hero\">
  2592.             <span class=\"hero-dots\"></span>
  2593.             <div class=\"hero-inner\">
  2594.             <span class=\"hero-badge\">
  2595.                 <span class=\"hero-badge-dot\"></span>
  2596.                 {{ t.hero_eyebrow }}
  2597.             </span>
  2598.                 <h1 class=\"hero-title\">
  2599.                     <span class=\"hero-title-line\">{{ t.hero_title_1 }}</span>
  2600.                     <span class=\"hero-title-line\"><span class=\"hero-title-accent\">{{ t.hero_title_2 }}</span></span>
  2601.                     <span class=\"hero-title-line\">{{ t.hero_title_3 }}</span>
  2602.                 </h1>
  2603.                 <p class=\"hero-lede\">{{ t.hero_lede }}</p>
  2604.                 {# Recherche inline AJAX #}
  2605.                 <div class=\"hero-search-wrap\">
  2606.                     <form class=\"hero-search\" id=\"wrHeroSearch\" autocomplete=\"off\"
  2607.                           data-search-url=\"{% if isFR %}{{ path('locale_api_jobs_search',{'_locale':'fr'}) }}{% else %}{{ path('api_jobs_search') }}{% endif %}\"
  2608.                           data-jobs-list-url=\"{% if isFR %}{{ path('locale_whileresume_jobs_list',{'_locale':'fr'}) }}{% else %}{{ path('whileresume_jobs_list') }}{% endif %}\">
  2609.                     <span class=\"hero-search-icon\">
  2610.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2611.                             <circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/>
  2612.                         </svg>
  2613.                     </span>
  2614.                         <input type=\"text\" name=\"q\" id=\"wrHeroSearchInput\" class=\"hero-search-input\" placeholder=\"{{ t.hero_search_placeholder }}\" />
  2615.                         <button type=\"button\" class=\"hero-search-clear\" id=\"wrHeroSearchClear\" aria-label=\"{{ t.search_clear }}\">
  2616.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2617.                                 <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/>
  2618.                             </svg>
  2619.                         </button>
  2620.                         <button type=\"submit\" class=\"hero-search-btn\">
  2621.                             <span>{{ t.hero_search_button }}</span>
  2622.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2623.                                 <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/>
  2624.                             </svg>
  2625.                         </button>
  2626.                     </form>
  2627.                     {# Container des résultats inline #}
  2628.                     <div class=\"hero-search-results\" id=\"wrHeroSearchResults\" aria-live=\"polite\"></div>
  2629.                 </div>
  2630.                 <div class=\"hero-byline\">
  2631.                     <span><strong>{{ totalJobs ?? '—' }}</strong> {{ t.hero_byline_jobs }}</span>
  2632.                     <span class=\"hero-byline-sep\">·</span>
  2633.                     <span>{{ t.hero_byline_apps }}</span>
  2634.                     <span class=\"hero-byline-sep\">·</span>
  2635.                     <span>
  2636.                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>
  2637.                     {{ t.hero_byline_free }}
  2638.                 </span>
  2639.                 </div>
  2640.             </div>
  2641.         </section>
  2642.         {# ═══════════════ 3 PARCOURS ═══════════════ #}
  2643.         <section class=\"wr-section\">
  2644.             <div class=\"wr-container\">
  2645.                 <div class=\"wr-section-head\">
  2646.                     <span class=\"wr-eyebrow\">{{ t.paths_eyebrow }}</span>
  2647.                     <h2 class=\"wr-title\">{{ t.paths_title }}</h2>
  2648.                     <p class=\"wr-lede\">{{ t.paths_lede }}</p>
  2649.                 </div>
  2650.                 <div class=\"paths-grid\">
  2651.                     <article class=\"path-card\">
  2652.                         <div class=\"path-card-illu\">
  2653.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2654.                                 <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"/><polyline points=\"14 2 14 8 20 8\"/>
  2655.                                 <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"/>
  2656.                             </svg>
  2657.                         </div>
  2658.                         <span class=\"path-card-label\">{{ t.path1_label }}</span>
  2659.                         <h3 class=\"path-card-title\">{{ t.path1_title }}</h3>
  2660.                         <p class=\"path-card-desc\">{{ t.path1_desc }}</p>
  2661.                         <a href=\"{{ path('whileresume_resume_' ~ app.request.locale) }}\" class=\"path-card-cta\">
  2662.                             {{ t.path1_cta }}
  2663.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  2664.                         </a>
  2665.                     </article>
  2666.                     <article class=\"path-card\">
  2667.                         <div class=\"path-card-illu\">
  2668.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2669.                                 <path d=\"M9 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2h-4\"/>
  2670.                                 <polyline points=\"9 7 12 4 15 7\"/><line x1=\"12\" y1=\"4\" x2=\"12\" y2=\"14\"/>
  2671.                             </svg>
  2672.                         </div>
  2673.                         <span class=\"path-card-label\">{{ t.path2_label }}</span>
  2674.                         <h3 class=\"path-card-title\">{{ t.path2_title }}</h3>
  2675.                         <p class=\"path-card-desc\">{{ t.path2_desc }}</p>
  2676.                         <a href=\"{{ path('whileresume_resume_' ~ app.request.locale) }}\" class=\"path-card-cta\">
  2677.                             {{ t.path2_cta }}
  2678.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  2679.                         </a>
  2680.                     </article>
  2681.                     <article class=\"path-card\">
  2682.                         <div class=\"path-card-illu\">
  2683.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2684.                                 <rect x=\"2\" y=\"6\" width=\"20\" height=\"14\" rx=\"2\"/>
  2685.                                 <path d=\"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2\"/>
  2686.                                 <line x1=\"2\" y1=\"13\" x2=\"22\" y2=\"13\"/>
  2687.                             </svg>
  2688.                         </div>
  2689.                         <span class=\"path-card-label\">{{ t.path3_label }}</span>
  2690.                         <h3 class=\"path-card-title\">{{ t.path3_title }}</h3>
  2691.                         <p class=\"path-card-desc\">{{ t.path3_desc }}</p>
  2692.                         <a href=\"{% if isFR %}{{ path('locale_whileresume_jobs_list',{'_locale':'fr'}) }}{% else %}{{ path('whileresume_jobs_list') }}{% endif %}\" class=\"path-card-cta\">
  2693.                             {{ t.path3_cta }}
  2694.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  2695.                         </a>
  2696.                     </article>
  2697.                 </div>
  2698.             </div>
  2699.         </section>
  2700.         {# ═══════════════ MÉTHODE ═══════════════ #}
  2701.         <section class=\"wr-section\">
  2702.             <div class=\"wr-container\">
  2703.                 <div class=\"wr-section-head\">
  2704.                     <span class=\"wr-eyebrow\">{{ t.how_eyebrow }}</span>
  2705.                     <h2 class=\"wr-title\">{{ t.how_title }}</h2>
  2706.                     <p class=\"wr-lede\">{{ t.how_lede }}</p>
  2707.                 </div>
  2708.                 <div class=\"method-grid\">
  2709.                     <div class=\"method-step\">
  2710.                         <div class=\"method-num\">01</div>
  2711.                         <h3 class=\"method-title\">{{ t.step1_title }}</h3>
  2712.                         <p class=\"method-desc\">{{ t.step1_desc }}</p>
  2713.                     </div>
  2714.                     <div class=\"method-step\">
  2715.                         <div class=\"method-num\">02</div>
  2716.                         <h3 class=\"method-title\">{{ t.step2_title }}</h3>
  2717.                         <p class=\"method-desc\">{{ t.step2_desc }}</p>
  2718.                     </div>
  2719.                     <div class=\"method-step\">
  2720.                         <div class=\"method-num\">03</div>
  2721.                         <h3 class=\"method-title\">{{ t.step3_title }}</h3>
  2722.                         <p class=\"method-desc\">{{ t.step3_desc }}</p>
  2723.                     </div>
  2724.                     <div class=\"method-step\">
  2725.                         <div class=\"method-num\">04</div>
  2726.                         <h3 class=\"method-title\">{{ t.step4_title }}</h3>
  2727.                         <p class=\"method-desc\">{{ t.step4_desc }}</p>
  2728.                     </div>
  2729.                 </div>
  2730.             </div>
  2731.         </section>
  2732.         {# ═══════════════ MATCH ═══════════════ #}
  2733.         <section class=\"wr-section\">
  2734.             <div class=\"wr-container\">
  2735.                 <div class=\"match-grid\">
  2736.                     <div class=\"match-text\">
  2737.                         <span class=\"wr-eyebrow\">{{ t.match_eyebrow }}</span>
  2738.                         <h2 class=\"wr-title wr-title--sm\">{{ t.match_title }}</h2>
  2739.                         <p class=\"wr-lede\">{{ t.match_lede }}</p>
  2740.                         <div class=\"match-features\">
  2741.                             <div class=\"match-feature\">
  2742.                                 <div class=\"match-feature-icon\">
  2743.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></svg>
  2744.                                 </div>
  2745.                                 <h4 class=\"match-feature-title\">{{ t.match_b1_title }}</h4>
  2746.                                 <p class=\"match-feature-desc\">{{ t.match_b1_desc }}</p>
  2747.                             </div>
  2748.                             <div class=\"match-feature\">
  2749.                                 <div class=\"match-feature-icon\">
  2750.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><circle cx=\"12\" cy=\"12\" r=\"6\"/><circle cx=\"12\" cy=\"12\" r=\"2\"/></svg>
  2751.                                 </div>
  2752.                                 <h4 class=\"match-feature-title\">{{ t.match_b2_title }}</h4>
  2753.                                 <p class=\"match-feature-desc\">{{ t.match_b2_desc }}</p>
  2754.                             </div>
  2755.                             <div class=\"match-feature\">
  2756.                                 <div class=\"match-feature-icon\">
  2757.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"/></svg>
  2758.                                 </div>
  2759.                                 <h4 class=\"match-feature-title\">{{ t.match_b3_title }}</h4>
  2760.                                 <p class=\"match-feature-desc\">{{ t.match_b3_desc }}</p>
  2761.                             </div>
  2762.                             <div class=\"match-feature\">
  2763.                                 <div class=\"match-feature-icon\">
  2764.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"/><polyline points=\"15 3 21 3 21 9\"/><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"/></svg>
  2765.                                 </div>
  2766.                                 <h4 class=\"match-feature-title\">{{ t.match_b4_title }}</h4>
  2767.                                 <p class=\"match-feature-desc\">{{ t.match_b4_desc }}</p>
  2768.                             </div>
  2769.                         </div>
  2770.                     </div>
  2771.                     <div class=\"match-visual\">
  2772.                         <div class=\"match-stack\">
  2773.                             <div class=\"match-stack-card\">
  2774.                                 <div class=\"match-stack-logo\">A</div>
  2775.                                 <div class=\"match-stack-info\">
  2776.                                     <p class=\"match-stack-title\">Lead Designer</p>
  2777.                                     <p class=\"match-stack-meta\">Acme · Remote</p>
  2778.                                 </div>
  2779.                                 <div class=\"match-stack-heart\"><svg viewBox=\"0 0 24 24\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></svg></div>
  2780.                             </div>
  2781.                             <div class=\"match-stack-card\">
  2782.                                 <div class=\"match-stack-logo\">N</div>
  2783.                                 <div class=\"match-stack-info\">
  2784.                                     <p class=\"match-stack-title\">Frontend Engineer</p>
  2785.                                     <p class=\"match-stack-meta\">Notion · Paris</p>
  2786.                                 </div>
  2787.                                 <div class=\"match-stack-heart\"><svg viewBox=\"0 0 24 24\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></svg></div>
  2788.                             </div>
  2789.                             <div class=\"match-stack-card\">
  2790.                                 <div class=\"match-stack-logo\">L</div>
  2791.                                 <div class=\"match-stack-info\">
  2792.                                     <p class=\"match-stack-title\">Product Manager</p>
  2793.                                     <p class=\"match-stack-meta\">Linear · {{ isFR ? 'Hybride' : 'Hybrid' }}</p>
  2794.                                 </div>
  2795.                                 <div class=\"match-stack-heart\"><svg viewBox=\"0 0 24 24\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></svg></div>
  2796.                             </div>
  2797.                             <div class=\"match-stack-card\">
  2798.                                 <div class=\"match-stack-logo\">F</div>
  2799.                                 <div class=\"match-stack-info\">
  2800.                                     <p class=\"match-stack-title\">Data Analyst</p>
  2801.                                     <p class=\"match-stack-meta\">Figma · Lyon</p>
  2802.                                 </div>
  2803.                                 <div class=\"match-stack-heart\"><svg viewBox=\"0 0 24 24\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></svg></div>
  2804.                             </div>
  2805.                         </div>
  2806.                     </div>
  2807.                 </div>
  2808.             </div>
  2809.         </section>
  2810.         {# ═══════════════ APPS ═══════════════ #}
  2811.         <section class=\"wr-section\">
  2812.             <div class=\"wr-container\">
  2813.                 <div class=\"wr-section-head\">
  2814.                     <span class=\"wr-eyebrow\">{{ t.apps_eyebrow }}</span>
  2815.                     <h2 class=\"wr-title wr-title--sm\">{{ t.apps_title }}</h2>
  2816.                     <p class=\"wr-lede\">{{ t.apps_lede }}</p>
  2817.                 </div>
  2818.                 <div class=\"apps-grid\">
  2819.                     <a href=\"#\" class=\"app-card\">
  2820.                     <span class=\"app-card-icon\">
  2821.                         <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.05 20.28c-.98.95-2.05.8-3.08.35-1.09-.46-2.09-.48-3.24 0-1.44.62-2.2.44-3.06-.35C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z\"/></svg>
  2822.                     </span>
  2823.                         <h3 class=\"app-card-name\">{{ t.apps_ios }}</h3>
  2824.                         <p class=\"app-card-desc\">{{ t.apps_ios_desc }}</p>
  2825.                         <span class=\"app-card-cta\">App Store
  2826.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  2827.                     </span>
  2828.                     </a>
  2829.                     <a href=\"#\" class=\"app-card\">
  2830.                     <span class=\"app-card-icon\">
  2831.                         <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.523 15.34c-.583 0-1.06-.477-1.06-1.06 0-.582.477-1.06 1.06-1.06.583 0 1.06.478 1.06 1.06 0 .583-.477 1.06-1.06 1.06m-11.046 0c-.583 0-1.06-.477-1.06-1.06 0-.582.477-1.06 1.06-1.06.583 0 1.06.478 1.06 1.06 0 .583-.477 1.06-1.06 1.06m11.427-6.176l2.114-3.66a.439.439 0 0 0-.16-.6.439.439 0 0 0-.6.16l-2.142 3.71a13.07 13.07 0 0 0-5.116-1.034c-1.823 0-3.55.376-5.116 1.034l-2.14-3.71a.439.439 0 1 0-.76.44l2.113 3.66C2.486 10.78.659 13.658.5 17h23c-.16-3.342-1.987-6.22-5.595-7.836\"/></svg>
  2832.                     </span>
  2833.                         <h3 class=\"app-card-name\">{{ t.apps_android }}</h3>
  2834.                         <p class=\"app-card-desc\">{{ t.apps_android_desc }}</p>
  2835.                         <span class=\"app-card-cta\">Google Play
  2836.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  2837.                     </span>
  2838.                     </a>
  2839.                     <a href=\"{{ path('whileresume_resume_' ~ app.request.locale) }}\" class=\"app-card\">
  2840.                     <span class=\"app-card-icon\">
  2841.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"/></svg>
  2842.                     </span>
  2843.                         <h3 class=\"app-card-name\">{{ t.apps_web }}</h3>
  2844.                         <p class=\"app-card-desc\">{{ t.apps_web_desc }}</p>
  2845.                         <span class=\"app-card-cta\">whileresume.com
  2846.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  2847.                     </span>
  2848.                     </a>
  2849.                 </div>
  2850.             </div>
  2851.         </section>
  2852.         {# ═══════════════ KEYWORDS ═══════════════ #}
  2853.         {% if popularKeywords is defined and popularKeywords|length > 0 %}
  2854.             <section class=\"wr-section wr-section--tight\">
  2855.                 <div class=\"wr-container\">
  2856.                     <div class=\"wr-section-head\">
  2857.                         <h2 class=\"wr-title wr-title--sm\">{{ t.keywords_title }}</h2>
  2858.                         <p class=\"wr-lede\">{{ t.keywords_lede }}</p>
  2859.                     </div>
  2860.                     <div class=\"keywords-list\">
  2861.                         {% for kw in popularKeywords %}
  2862.                             <a href=\"{% if isFR %}{{ path('locale_whileresume_jobs_list',{'_locale':'fr'}) }}{% else %}{{ path('whileresume_jobs_list') }}{% endif %}?q={{ kw.keyword|url_encode }}\" class=\"keyword-pill\">
  2863.                                 {% if kw.icon %}<span class=\"keyword-pill-icon\">{{ kw.icon|raw }}</span>{% endif %}
  2864.                                 <span>{{ kw.label }}</span>
  2865.                             </a>
  2866.                         {% endfor %}
  2867.                     </div>
  2868.                 </div>
  2869.             </section>
  2870.         {% endif %}
  2871.         {# ═══════════════ OFFRES POPULAIRES ═══════════════ #}
  2872.         {% if popularJobs is defined and popularJobs|length > 0 %}
  2873.             <section class=\"wr-section\">
  2874.                 <div class=\"wr-container\">
  2875.                     <div class=\"wr-section-head\">
  2876.                         <h2 class=\"wr-title wr-title--sm\">{{ t.popular_title }}</h2>
  2877.                         <p class=\"wr-lede\">{{ t.popular_lede }}</p>
  2878.                     </div>
  2879.                     {% for block in popularJobs %}
  2880.                         {% if block.jobs|length > 0 %}
  2881.                             <div class=\"listings-block\">
  2882.                                 <div class=\"listings-block-head\">
  2883.                                     <h3 class=\"listings-block-title\">
  2884.                                         {% if block.icon %}<span class=\"listings-block-icon\">{{ block.icon|raw }}</span>{% endif %}
  2885.                                         {{ block.label }}
  2886.                                     </h3>
  2887.                                     <a href=\"{% if isFR %}{{ path('locale_whileresume_jobs_list',{'_locale':'fr'}) }}{% else %}{{ path('whileresume_jobs_list') }}{% endif %}?q={{ block.label|url_encode }}\" class=\"listings-block-link\">
  2888.                                         {{ t.btn_more }}
  2889.                                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"/></svg>
  2890.                                     </a>
  2891.                                 </div>
  2892.                                 <div class=\"listings-jobs\">
  2893.                                     {% for j in block.jobs|slice(0, 4) %}
  2894.                                         <a href=\"{% if j.locale == 'fr' %}{{ path('locale_cvs_application_job_show',{'_locale':app.request.locale,'slug':j.slug}) }}{% else %}{{ path('cvs_application_job_show',{'slug':j.slug}) }}{% endif %}\" class=\"listing-job\">
  2895.                                             <div class=\"listing-job-logo\">
  2896.                                                 {% if j.image and j.image.name %}
  2897.                                                     <img src=\"{{ vich_uploader_asset(j, 'imageFile') }}\" alt=\"\">
  2898.                                                 {% else %}
  2899.                                                     {{ j.companyName|default('?')|slice(0,1)|upper }}
  2900.                                                 {% endif %}
  2901.                                             </div>
  2902.                                             <div class=\"listing-job-info\">
  2903.                                                 <h4 class=\"listing-job-title\">{{ j.jobTitle }}</h4>
  2904.                                                 <p class=\"listing-job-meta\">
  2905.                                                     {{ j.companyName }}{% if j.city %} · {{ j.city }}{% endif %}{% if j.employmentType %} · {{ j.employmentType }}{% endif %}
  2906.                                                 </p>
  2907.                                             </div>
  2908.                                             <span class=\"listing-job-arrow\">
  2909.                                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"/></svg>
  2910.                                         </span>
  2911.                                         </a>
  2912.                                     {% endfor %}
  2913.                                 </div>
  2914.                             </div>
  2915.                         {% endif %}
  2916.                     {% endfor %}
  2917.                 </div>
  2918.             </section>
  2919.         {% endif %}
  2920.         {# ═══════════════ ARTICLES ═══════════════ #}
  2921.         {% if articles is defined and articles|length > 0 %}
  2922.             <section class=\"wr-section\">
  2923.                 <div class=\"wr-container\">
  2924.                     <div class=\"wr-section-head\">
  2925.                         <h2 class=\"wr-title wr-title--sm\">{{ t.articles_title }}</h2>
  2926.                         <p class=\"wr-lede\">{{ t.articles_lede }}</p>
  2927.                     </div>
  2928.                     <div class=\"articles-grid\">
  2929.                         {% for a in articles|slice(0,6) %}
  2930.                             {% set prefix = \"\" %}
  2931.                             {% set urlA = path('cvs_website_article',{'slug': a.slug}) %}
  2932.                             {% if app.request.locale != default_locale %}
  2933.                                 {% set urlA = path('locale_cvs_website_article',{'_locale':app.request.locale,'slug': a.slug}) %}
  2934.                                 {% set prefix = \"/\" ~ app.request.locale %}
  2935.                             {% endif %}
  2936.                             {% if a.pageslug3 is not empty %}
  2937.                                 {% set urlA = prefix ~ '/' ~ a.pageslug ~ '/' ~ a.pageslug2 ~ '/' ~ a.pageslug3 %}
  2938.                             {% elseif a.pageslug2 is not empty %}
  2939.                                 {% set urlA = prefix ~ '/' ~ a.pageslug ~ '/' ~ a.pageslug2 %}
  2940.                             {% elseif a.pageslug is not empty %}
  2941.                                 {% set urlA = prefix ~ '/' ~ a.pageslug %}
  2942.                             {% endif %}
  2943.                             <a href=\"{{ urlA }}\" class=\"wr-article\">
  2944.                                 <div class=\"wr-article-img\">
  2945.                                     {% if a.image.name is not null %}
  2946.                                         <img src=\"{{ vich_uploader_asset(a, 'imageFile') }}\" alt=\"{{ a.title }}\">
  2947.                                     {% endif %}
  2948.                                 </div>
  2949.                                 <div class=\"wr-article-body\">
  2950.                                     <p class=\"wr-article-meta\">
  2951.                                         {{ a.publishedAt|date(isFR ? 'd M Y' : 'M d, Y') }}{% if a.author %} · {{ a.author }}{% endif %}
  2952.                                     </p>
  2953.                                     <h3 class=\"wr-article-title\">{{ a.title }}</h3>
  2954.                                     {% if a.subtitle %}<p class=\"wr-article-excerpt\">{{ a.subtitle }}</p>{% endif %}
  2955.                                     <span class=\"wr-article-link\">
  2956.                                     {{ t.read_article }}
  2957.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  2958.                                 </span>
  2959.                                 </div>
  2960.                             </a>
  2961.                         {% endfor %}
  2962.                     </div>
  2963.                     <div class=\"articles-cta\">
  2964.                         <a href=\"{% if isFR %}{{ path('locale_cvs_website_articles',{'_locale':'fr'}) }}{% else %}{{ path('cvs_website_articles') }}{% endif %}\">
  2965.                             {{ t.articles_view_all }}
  2966.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  2967.                         </a>
  2968.                     </div>
  2969.                 </div>
  2970.             </section>
  2971.         {% endif %}
  2972.         {# ═══════════════ CTA FINAL ═══════════════ #}
  2973.         <section class=\"wr-section\">
  2974.             <div class=\"wr-container\">
  2975.                 <div class=\"final-card\">
  2976.                     <h2 class=\"final-title\">{{ t.final_title }}</h2>
  2977.                     <p class=\"final-subtitle\">{{ t.final_subtitle }}</p>
  2978.                     <div class=\"final-buttons\">
  2979.                         <a href=\"{{ path('whileresume_resume_' ~ app.request.locale) }}\" class=\"final-btn final-btn--primary\">
  2980.                             {{ t.final_candidate }}
  2981.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  2982.                         </a>
  2983.                         <a href=\"{{ path('whileresume_business_' ~ app.request.locale) }}\" class=\"final-btn final-btn--ghost\">
  2984.                             {{ t.final_recruiter }}
  2985.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/></svg>
  2986.                         </a>
  2987.                     </div>
  2988.                 </div>
  2989.             </div>
  2990.         </section>
  2991.     </div>
  2992. {% endblock body %}
  2993. {% block footer_js %}
  2994.     {{ parent() }}
  2995.     <script>
  2996.         (function(){
  2997.             var form     = document.getElementById('wrHeroSearch');
  2998.             var input    = document.getElementById('wrHeroSearchInput');
  2999.             var clearBtn = document.getElementById('wrHeroSearchClear');
  3000.             var results  = document.getElementById('wrHeroSearchResults');
  3001.             if (!form || !input || !results) return;
  3002.             var searchUrl   = form.dataset.searchUrl;
  3003.             var jobsListUrl = form.dataset.jobsListUrl;
  3004.             var debounceTimer = null;
  3005.             var currentRequest = null;
  3006.             var lastQuery = '';
  3007.             var T = {
  3008.                 loading:  '{{ t.search_loading|escape('js') }}',
  3009.                 empty:    '{{ t.search_no_results|escape('js') }}',
  3010.                 emptyHint:'{{ t.search_no_results_hint|escape('js') }}',
  3011.                 count:    '{{ t.search_results_count|escape('js') }}',
  3012.                 viewAll:  '{{ t.search_view_all|escape('js') }}',
  3013.                 view:     '{{ t.search_view_offer|escape('js') }}'
  3014.             };
  3015.             function escHtml(s){
  3016.                 if (s == null) return '';
  3017.                 return String(s).replace(/[&<>\"']/g, function(c){
  3018.                     return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c];
  3019.                 });
  3020.             }
  3021.             function showResults(){
  3022.                 results.classList.add('is-visible');
  3023.                 form.classList.add('has-results');
  3024.             }
  3025.             function hideResults(){
  3026.                 results.classList.remove('is-visible');
  3027.                 form.classList.remove('has-results');
  3028.             }
  3029.             function setLoading(){
  3030.                 results.innerHTML =
  3031.                     '<div class=\"hero-search-loading\">' +
  3032.                     '<span class=\"hero-search-spinner\"></span>' +
  3033.                     '<span>' + escHtml(T.loading) + '</span>' +
  3034.                     '</div>';
  3035.                 showResults();
  3036.             }
  3037.             function renderResults(payload, query){
  3038.                 var jobs  = (payload && payload.jobs)  || [];
  3039.                 var total = (payload && typeof payload.total === 'number') ? payload.total : jobs.length;
  3040.                 if (!jobs.length){
  3041.                     results.innerHTML =
  3042.                         '<div class=\"hero-search-empty\">' +
  3043.                         '<div class=\"hero-search-empty-icon\">' +
  3044.                         '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +
  3045.                         '<circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/>' +
  3046.                         '</svg>' +
  3047.                         '</div>' +
  3048.                         '<p class=\"hero-search-empty-title\">' + escHtml(T.empty) + '</p>' +
  3049.                         '<p class=\"hero-search-empty-hint\">' + escHtml(T.emptyHint) + '</p>' +
  3050.                         '</div>';
  3051.                     showResults();
  3052.                     return;
  3053.                 }
  3054.                 var html =
  3055.                     '<div class=\"hero-search-meta\">' +
  3056.                     '<span><strong>' + total + '</strong> ' + escHtml(T.count) + '</span>' +
  3057.                     '<a href=\"' + jobsListUrl + '?q=' + encodeURIComponent(query) + '\">' +
  3058.                     escHtml(T.viewAll) +
  3059.                     '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +
  3060.                     '<line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/>' +
  3061.                     '</svg>' +
  3062.                     '</a>' +
  3063.                     '</div>';
  3064.                 jobs.slice(0, 6).forEach(function(j){
  3065.                     var title   = j.jobTitle || j.title || '';
  3066.                     var company = j.companyName || j.company || '';
  3067.                     var city    = j.city || '';
  3068.                     var et      = j.employmentType || '';
  3069.                     var slug    = j.slug || '';
  3070.                     var img     = j.image || j.imageUrl || '';
  3071.                     var url     = j.url || (jobsListUrl + '?q=' + encodeURIComponent(query));
  3072.                     var initial = (company || title || '?').charAt(0).toUpperCase();
  3073.                     var meta = [company, city, et].filter(function(x){ return x; }).join(' · ');
  3074.                     html +=
  3075.                         '<a href=\"' + escHtml(url) + '\" class=\"hero-search-result\">' +
  3076.                         '<div class=\"hero-search-result-logo\">' +
  3077.                         (img
  3078.                             ? '<img src=\"' + escHtml(img) + '\" alt=\"\">'
  3079.                             : escHtml(initial)) +
  3080.                         '</div>' +
  3081.                         '<div class=\"hero-search-result-info\">' +
  3082.                         '<p class=\"hero-search-result-title\">' + escHtml(title) + '</p>' +
  3083.                         '<p class=\"hero-search-result-meta\">' + escHtml(meta) + '</p>' +
  3084.                         '</div>' +
  3085.                         '<span class=\"hero-search-result-cta\">' +
  3086.                         escHtml(T.view) +
  3087.                         '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +
  3088.                         '<line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/>' +
  3089.                         '</svg>' +
  3090.                         '</span>' +
  3091.                         '</a>';
  3092.                 });
  3093.                 results.innerHTML = html;
  3094.                 showResults();
  3095.             }
  3096.             function doSearch(query){
  3097.                 if (currentRequest && currentRequest.abort) {
  3098.                     try { currentRequest.abort(); } catch(e){}
  3099.                 }
  3100.                 setLoading();
  3101.                 var url = searchUrl + (searchUrl.indexOf('?') > -1 ? '&' : '?') + 'q=' + encodeURIComponent(query);
  3102.                 var ctrl = (typeof AbortController !== 'undefined') ? new AbortController() : null;
  3103.                 currentRequest = ctrl;
  3104.                 fetch(url, { headers: { 'Accept': 'application/json' }, signal: ctrl ? ctrl.signal : undefined })
  3105.                     .then(function(r){ return r.ok ? r.json() : Promise.reject(r.status); })
  3106.                     .then(function(data){ renderResults(data, query); })
  3107.                     .catch(function(err){
  3108.                         if (err && err.name === 'AbortError') return;
  3109.                         results.innerHTML =
  3110.                             '<div class=\"hero-search-empty\">' +
  3111.                             '<p class=\"hero-search-empty-title\">' + escHtml(T.empty) + '</p>' +
  3112.                             '<p class=\"hero-search-empty-hint\">' + escHtml(T.emptyHint) + '</p>' +
  3113.                             '</div>';
  3114.                         showResults();
  3115.                     });
  3116.             }
  3117.             // Input live (debounce 280ms)
  3118.             input.addEventListener('input', function(){
  3119.                 var q = input.value.trim();
  3120.                 clearBtn.classList.toggle('is-visible', q.length > 0);
  3121.                 if (debounceTimer) clearTimeout(debounceTimer);
  3122.                 if (q.length < 2){
  3123.                     hideResults();
  3124.                     lastQuery = '';
  3125.                     return;
  3126.                 }
  3127.                 if (q === lastQuery) return;
  3128.                 debounceTimer = setTimeout(function(){
  3129.                     lastQuery = q;
  3130.                     doSearch(q);
  3131.                 }, 280);
  3132.             });
  3133.             // Submit → page de résultats complète
  3134.             form.addEventListener('submit', function(e){
  3135.                 var q = input.value.trim();
  3136.                 if (!q) { e.preventDefault(); return; }
  3137.                 window.location.href = jobsListUrl + '?q=' + encodeURIComponent(q);
  3138.                 e.preventDefault();
  3139.             });
  3140.             // Clear
  3141.             clearBtn.addEventListener('click', function(){
  3142.                 input.value = '';
  3143.                 clearBtn.classList.remove('is-visible');
  3144.                 hideResults();
  3145.                 lastQuery = '';
  3146.                 input.focus();
  3147.             });
  3148.             // Escape ferme
  3149.             input.addEventListener('keydown', function(e){
  3150.                 if (e.key === 'Escape'){
  3151.                     hideResults();
  3152.                     input.blur();
  3153.                 }
  3154.             });
  3155.             // Clic en dehors ferme (mais pas si on clique dedans)
  3156.             document.addEventListener('click', function(e){
  3157.                 if (!form.contains(e.target) && !results.contains(e.target)){
  3158.                     hideResults();
  3159.                 }
  3160.             });
  3161.             // Refocus input → ré-affiche les derniers résultats si on en avait
  3162.             input.addEventListener('focus', function(){
  3163.                 if (input.value.trim().length >= 2 && results.innerHTML.trim()) showResults();
  3164.             });
  3165.         })();
  3166.     </script>
  3167. {% endblock footer_js %}
  3168. ""application/whileresume/website/candidates/homepage.html.twig""/var/www/vhosts/mirtillostudio.fr/b1.mirtillostudio.fr/version-1/templates/application/whileresume/website/candidates/homepage.html.twig");
  3169.     }
  3170. }