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

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/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 3
  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.'3$this->source); })()), "request", [], "any"falsefalsefalse3), "locale", [], "any"falsefalsefalse3) == "fr");
  51.         // line 4
  52.         $context["_keys"] = ["hero_eyebrow""hero_title_pre""hero_title_accent""hero_title_post""hero_title_accent2""hero_title_2""hero_lede_pre""hero_lede_brand""hero_lede_mid""hero_lede_word""hero_lede_post""hero_cta_signup""hero_cta_login""hero_search_placeholder""hero_popular_label""hero_btn_ios""hero_btn_android""hero_default_title""hero_search_button""hero_byline_jobs""hero_byline_apps""hero_byline_free""hero_kbd_enter""search_loading""search_no_results""search_no_results_hint""search_results_count""search_view_all""search_view_offer""search_clear""how_eyebrow""how_title""how_lede""how1_title""how1_desc""how2_title""how2_desc""how3_title""how3_desc""feat1_label""feat1_title""feat1_p1""feat1_p2""feat1_quote""feat1_author""feat1_role""feat2_label""feat2_title""feat2_p1""feat2_p2""feat2_quote""feat2_author""feat2_role""feat3_label""feat3_title""feat3_p1""feat3_p2""feat3_quote""feat3_author""feat3_role""feat4_label""feat4_title""feat4_p1""feat4_p2""feat4_quote""feat4_author""feat4_role""signup_eyebrow""signup_title""signup_lede""signup_email_ph""signup_pass_ph""signup_pass2_ph""signup_terms_pre""signup_terms_link""signup_btn""signup_login_pre""signup_login_link""signup_perk1""signup_perk2""signup_perk3""apps_eyebrow""apps_title""apps_lede""apps_ios""apps_android""apps_web""apps_ios_desc""apps_android_desc""apps_web_desc""articles_title""articles_view_all""read_article""final_eyebrow""final_title""final_recruiter_label""final_recruiter_title""final_recruiter_desc""final_candidate_label""final_candidate_title""final_candidate_desc""final_candidate""final_recruiter"];
  53.         // line 27
  54.         $context["t"] = [];
  55.         // line 28
  56.         $context['_parent'] = $context;
  57.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["_keys"]) || array_key_exists("_keys"$context) ? $context["_keys"] : (function () { throw new RuntimeError('Variable "_keys" does not exist.'28$this->source); })()));
  58.         foreach ($context['_seq'] as $context["_key"] => $context["k"]) {
  59.             // line 29
  60.             $context["t"] = Twig\Extension\CoreExtension::merge((isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'29$this->source); })()), [ (string)$context["k"] => $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(("homepage." $context["k"]), [], "whr-public")]);
  61.         }
  62.         $_parent $context['_parent'];
  63.         unset($context['_seq'], $context['_key'], $context['k'], $context['_parent']);
  64.         $context array_intersect_key($context$_parent) + $_parent;
  65.         // line 1
  66.         $this->parent $this->load("application/whileresume/website/layout-social.html.twig"1);
  67.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  68.         
  69.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  70.         
  71.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  72.     }
  73.     // line 33
  74.     /**
  75.      * @return iterable<null|scalar|\Stringable>
  76.      */
  77.     public function block_title(array $context, array $blocks = []): iterable
  78.     {
  79.         $macros $this->macros;
  80.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  81.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  82.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  83.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  84.         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.'33$this->source); })()), "shortTitle", [], "any"falsefalsefalse33), "html"nulltrue);
  85.         
  86.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  87.         
  88.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  89.         yield from [];
  90.     }
  91.     // line 34
  92.     /**
  93.      * @return iterable<null|scalar|\Stringable>
  94.      */
  95.     public function block_description(array $context, array $blocks = []): iterable
  96.     {
  97.         $macros $this->macros;
  98.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  99.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""description"));
  100.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  101.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""description"));
  102.         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.'34$this->source); })()), "shortDescription", [], "any"falsefalsefalse34), "html"nulltrue);
  103.         
  104.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  105.         
  106.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  107.         yield from [];
  108.     }
  109.     // line 35
  110.     /**
  111.      * @return iterable<null|scalar|\Stringable>
  112.      */
  113.     public function block_robots(array $context, array $blocks = []): iterable
  114.     {
  115.         $macros $this->macros;
  116.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  117.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""robots"));
  118.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  119.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""robots"));
  120.         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.'35$this->source); })()), "robots", [], "any"falsefalsefalse35), "html"nulltrue);
  121.         
  122.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  123.         
  124.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  125.         yield from [];
  126.     }
  127.     // line 36
  128.     /**
  129.      * @return iterable<null|scalar|\Stringable>
  130.      */
  131.     public function block_canonical(array $context, array $blocks = []): iterable
  132.     {
  133.         $macros $this->macros;
  134.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  135.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""canonical"));
  136.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  137.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""canonical"));
  138.         yield from $this->load("/vitrine/lexend/components/languages/canonical_classic.html.twig"36)->unwrap()->yield($context);
  139.         
  140.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  141.         
  142.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  143.         yield from [];
  144.     }
  145.     // line 38
  146.     /**
  147.      * @return iterable<null|scalar|\Stringable>
  148.      */
  149.     public function block_css(array $context, array $blocks = []): iterable
  150.     {
  151.         $macros $this->macros;
  152.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  153.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""css"));
  154.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  155.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""css"));
  156.         // line 39
  157.         yield "    ";
  158.         yield from $this->yieldParentBlock("css"$context$blocks);
  159.         yield "
  160.     <style>
  161.         :root{
  162.             --wr-bg:#FBFCFE;
  163.             --wr-bg-2:#F4F6FB;
  164.             --wr-card:#FFFFFF;
  165.             --wr-violet:#8A63C1;
  166.             --wr-violet-2:#A98AD3;
  167.             --wr-violet-soft:#F2EDFA;
  168.             --wr-violet-softer:#F8F4FD;
  169.             --wr-violet-dark:#6B47A6;
  170.             --wr-ink:#1E1B2E;
  171.             --wr-ink-2:#374151;
  172.             --wr-muted:#6B7280;
  173.             --wr-muted-2:#9CA3AF;
  174.             --wr-line:#EEF1F7;
  175.             --wr-line-2:#E5E9F0;
  176.             --wr-shadow:0 1px 2px rgba(30,27,46,.04),0 4px 16px rgba(30,27,46,.04);
  177.             --wr-shadow-hover:0 4px 8px rgba(138,99,192,.08),0 12px 32px rgba(138,99,192,.1);
  178.             /* Accents colorés pour les logos d'offres (lettres) */
  179.             --wr-acc-yellow:#FEF3C7;  --wr-acc-yellow-fg:#B45309;
  180.             --wr-acc-green:#D1FAE5;   --wr-acc-green-fg:#047857;
  181.             --wr-acc-pink:#FCE7F3;    --wr-acc-pink-fg:#BE185D;
  182.             --wr-acc-blue:#DBEAFE;    --wr-acc-blue-fg:#1E40AF;
  183.             --wr-acc-orange:#FED7AA;  --wr-acc-orange-fg:#C2410C;
  184.             --wr-acc-violet:#EDE9FE;  --wr-acc-violet-fg:#6D28D9;
  185.             --wr-acc-cyan:#CFFAFE;    --wr-acc-cyan-fg:#0E7490;
  186.         }
  187.         /* ═══════════════════════════════════════════════════════════════════
  188.            PLEINE LARGEUR — On retire la réservation d'espace de la sidebar droite
  189.            ═══════════════════════════════════════════════════════════════════ */
  190.         body .main-content.right-chat-active{padding-right:0!important}
  191.         body .main-content{padding-right:0!important}
  192.         body .right-chat{display:none!important}
  193.         body .middle-sidebar-bottom .middle-sidebar-left{padding-right:0!important;max-width:none!important;width:100%!important}
  194.         body .middle-sidebar-bottom{max-width:none!important}
  195.         .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}
  196.         @media(max-width:991px){.wr{margin:0 -15px}}
  197.         .wr *{box-sizing:border-box}
  198.         .wr a{color:inherit;text-decoration:none}
  199.         /* ═══════════════════════════════════════════════════════════════════
  200.            SECTIONS GENERIC — Fond UNIFIÉ partout (pas d'alternance)
  201.            ═══════════════════════════════════════════════════════════════════ */
  202.         .wr-section{padding:80px 32px;background:var(--wr-bg);position:relative}
  203.         .wr-section--tight{padding:48px 32px}
  204.         @media(max-width:768px){.wr-section{padding:56px 20px}.wr-section--tight{padding:36px 20px}}
  205.         /* Filet décoratif au lieu d'un changement de couleur */
  206.         .wr-section + .wr-section::before{
  207.             content:\"\";
  208.             position:absolute;top:0;left:50%;transform:translateX(-50%);
  209.             width:80px;height:1px;
  210.             background:linear-gradient(90deg,transparent,var(--wr-line-2),transparent);
  211.         }
  212.         .wr-container{max-width:1200px;margin:0 auto;position:relative}
  213.         /* ═══ Eyebrow ═══ */
  214.         .wr-eyebrow{
  215.             display:inline-flex;align-items:center;gap:8px;
  216.             padding:6px 14px;border-radius:100px;
  217.             background:var(--wr-violet-soft);
  218.             color:var(--wr-violet-dark);
  219.             font-size:11.5px;font-weight:600;
  220.             text-transform:uppercase;letter-spacing:.12em;
  221.             margin-bottom:22px;
  222.         }
  223.         .wr-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--wr-violet);animation:wrPulse 2.4s ease-in-out infinite}
  224.         @keyframes wrPulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}
  225.         /* ═══ Titres ═══ */
  226.         .wr-title{
  227.             font-family:inherit;
  228.             font-weight:700;
  229.             font-size:28px;line-height:1.15;letter-spacing:-0.025em;
  230.             color:var(--wr-ink);
  231.             margin:0 auto 16px;
  232.             max-width:1200px;
  233.         }
  234.         @media(min-width:768px){.wr-title{font-size:34px}}
  235.         @media(min-width:1024px){.wr-title{font-size:40px}}
  236.         .wr-title--sm{font-size:24px}
  237.         @media(min-width:768px){.wr-title--sm{font-size:30px}}
  238.         .wr-title em{font-style:normal;font-weight:700;color:var(--wr-violet)}
  239.         .wr-lede{
  240.             font-size:17px;line-height:1.55;font-weight:400;
  241.             color:var(--wr-ink-2);
  242.             margin:0 auto;max-width:680px;
  243.         }
  244.         .wr-section-head{text-align:center;margin-bottom:56px}
  245.         /* ═══════════════════════════════════════════════════════════════════
  246.            HERO — Style soft, recherche dashboard, boutons pleins
  247.            ═══════════════════════════════════════════════════════════════════ */
  248.         @keyframes wrFadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
  249.         @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)}}
  250.         /* ═══ Reveal au scroll (Intersection Observer ajoute .is-revealed) ═══ */
  251.         .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
  252.         .reveal.is-revealed{opacity:1;transform:translateY(0)}
  253.         .reveal--left{transform:translateX(-32px) translateY(0)}
  254.         .reveal--left.is-revealed{transform:translateX(0)}
  255.         .reveal--right{transform:translateX(32px) translateY(0)}
  256.         .reveal--right.is-revealed{transform:translateX(0)}
  257.         .reveal--scale{transform:scale(.96);opacity:0}
  258.         .reveal--scale.is-revealed{transform:scale(1);opacity:1}
  259.         .reveal[data-reveal-delay=\"1\"]{transition-delay:.08s}
  260.         .reveal[data-reveal-delay=\"2\"]{transition-delay:.16s}
  261.         .reveal[data-reveal-delay=\"3\"]{transition-delay:.24s}
  262.         .reveal[data-reveal-delay=\"4\"]{transition-delay:.32s}
  263.         @media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important}}
  264.         .hero{
  265.             position:relative;
  266.             background:var(--wr-bg);
  267.             padding:24px 32px 0;
  268.             overflow:hidden;
  269.         }
  270.         @media(max-width:768px){.hero{padding:18px 18px 0}}
  271.         /* Décor : 2 blobs très flous violet pâle */
  272.         .hero::before{
  273.             content:\"\";position:absolute;
  274.             top:-260px;right:-180px;width:560px;height:560px;
  275.             background:radial-gradient(circle,rgba(138,99,192,.14) 0%,transparent 65%);
  276.             pointer-events:none;filter:blur(50px);
  277.         }
  278.         .hero::after{
  279.             content:\"\";position:absolute;
  280.             top:120px;left:-180px;width:480px;height:480px;
  281.             background:radial-gradient(circle,rgba(138,99,192,.09) 0%,transparent 65%);
  282.             pointer-events:none;filter:blur(50px);
  283.         }
  284.         .hero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;text-align:center}
  285.         /* ═══ Eyebrow ═══ */
  286.         .hero-badge{
  287.             display:inline-flex;align-items:center;gap:8px;
  288.             padding:7px 16px;border-radius:100px;
  289.             background:var(--wr-violet-soft);
  290.             color:var(--wr-violet-dark);
  291.             font-size:12px;font-weight:600;
  292.             text-transform:uppercase;letter-spacing:.1em;
  293.             margin-bottom:10px;
  294.             opacity:0;transform:translateY(8px);
  295.             animation:wrFadeUp .8s ease forwards;
  296.         }
  297.         .hero-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--wr-violet);animation:wrPulse2 2s ease infinite}
  298.         /* ═══ Titre — 57px desktop, plein largeur conteneur ═══ */
  299.         .hero-title{
  300.             font-weight:700;
  301.             font-size:24px;line-height:1.05;letter-spacing:-0.04em;
  302.             color:var(--wr-ink);
  303.             margin:0 auto 12px;
  304.             width:100%;max-width:1200px;
  305.             opacity:0;transform:translateY(12px);
  306.             animation:wrFadeUp .9s cubic-bezier(.2,.7,.2,1) .15s forwards;
  307.         }
  308.         @media(min-width:768px){.hero-title{font-size:40px;letter-spacing:-0.045em}}
  309.         @media(min-width:1100px){.hero-title{font-size:57px;letter-spacing:-0.045em}}
  310.         .hero-title-accent{
  311.             color:var(--wr-violet);
  312.         }
  313.         .hero-lede{
  314.             font-size:15px;line-height:1.5;color:var(--wr-ink-2);font-weight:400;
  315.             margin:0 auto 16px;max-width:680px;
  316.             opacity:0;animation:wrFadeUp .9s ease .4s forwards;
  317.         }
  318.         @media(min-width:768px){.hero-lede{font-size:17px}}
  319.         .hero-lede-accent{color:var(--wr-violet);font-weight:600}
  320.         /* ═══ Recherche — pleine largeur (alignée sur la liste 1200px) ═══ */
  321.         .hero-search-wrap{
  322.             max-width:1200px;margin:0 auto 12px;
  323.             opacity:0;animation:wrFadeUp .9s ease .55s forwards;
  324.             position:relative;z-index:5;
  325.         }
  326.         .hero-search{
  327.             background:var(--wr-card);
  328.             border-radius:14px;
  329.             box-shadow:0 0 20px 0 rgba(0,0,0,0.05),0 16px 40px rgba(138,99,192,.06);
  330.             padding:10px;
  331.             position:relative;
  332.         }
  333.         .hero-search-inner{
  334.             display:flex;align-items:center;gap:10px;
  335.             padding:10px 14px;border-radius:10px;
  336.             background:#F9FAFB;border:1px solid #E5E7EB;
  337.             transition:border-color .2s,background .2s;
  338.         }
  339.         .hero-search-inner:focus-within{
  340.             border-color:rgba(138,99,192,.4);
  341.             background:#fff;
  342.         }
  343.         .hero-search-icon{color:var(--wr-muted-2);display:flex;flex-shrink:0}
  344.         .hero-search-icon svg{width:16px;height:16px}
  345.         .hero-search-input{
  346.             flex:1;border:0;outline:0;background:transparent;
  347.             font-size:14.5px;font-family:inherit;color:var(--wr-ink);
  348.             padding:6px 0;min-width:0;
  349.         }
  350.         .hero-search-input::placeholder{color:var(--wr-muted-2)}
  351.         .hero-search-clear{
  352.             background:none;border:0;color:var(--wr-muted-2);cursor:pointer;
  353.             padding:4px;display:none;font-family:inherit;
  354.             border-radius:6px;transition:background .15s,color .15s;
  355.         }
  356.         .hero-search-clear:hover{background:var(--wr-violet-soft);color:var(--wr-violet)}
  357.         .hero-search-clear.is-visible{display:flex;align-items:center}
  358.         .hero-search-clear svg{width:14px;height:14px}
  359.         .hero-search-kbd{
  360.             display:none;align-items:center;
  361.             padding:3px 8px;background:#fff;border:1px solid #E5E7EB;border-radius:6px;
  362.             font-size:10.5px;font-weight:600;color:var(--wr-muted);
  363.             font-family:inherit;letter-spacing:.02em;white-space:nowrap;flex-shrink:0;
  364.         }
  365.         .hero-search-inner:focus-within .hero-search-kbd{display:inline-flex}
  366.         /* ═══ États de la liste de jobs (header, empty, loading) ═══ */
  367.         .hero-jobs-header{
  368.             display:flex;align-items:center;justify-content:space-between;gap:10px;
  369.             padding:14px 22px 10px;
  370.             border-bottom:1px solid var(--wr-line);
  371.             margin-bottom:4px;
  372.         }
  373.         @media(max-width:540px){.hero-jobs-header{padding:12px 16px 8px}}
  374.         .hero-jobs-count{
  375.             font-size:11.5px;color:var(--wr-muted);
  376.             text-transform:uppercase;letter-spacing:.08em;font-weight:600;
  377.         }
  378.         .hero-jobs-count strong{color:var(--wr-violet);font-weight:800;font-size:13px;margin-right:4px}
  379.         .hero-jobs-link{
  380.             font-size:11px;font-weight:700;
  381.             color:var(--wr-violet);
  382.             text-transform:uppercase;letter-spacing:.08em;
  383.             text-decoration:none;
  384.             display:inline-flex;align-items:center;gap:5px;
  385.             transition:color .15s,transform .15s;
  386.         }
  387.         .hero-jobs-link:hover{color:var(--wr-violet-dark);text-decoration:none;transform:translateX(2px)}
  388.         .hero-jobs-link svg{width:11px;height:11px}
  389.         .hero-jobs-empty{text-align:center;padding:48px 20px;color:var(--wr-muted)}
  390.         .hero-jobs-empty-icon{width:48px;height:48px;border-radius:14px;background:var(--wr-violet-soft);color:var(--wr-violet);display:inline-flex;align-items:center;justify-content:center;margin-bottom:14px}
  391.         .hero-jobs-empty-icon svg{width:22px;height:22px}
  392.         .hero-jobs-empty-title{font-weight:600;font-size:14px;color:var(--wr-ink);margin:0 0 4px}
  393.         .hero-jobs-empty-hint{font-size:13px;margin:0;color:var(--wr-muted)}
  394.         .hero-jobs-loading{text-align:center;padding:36px 20px;color:var(--wr-muted);font-size:13px;display:flex;align-items:center;justify-content:center;gap:10px}
  395.         .hero-jobs-spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--wr-violet-soft);border-top-color:var(--wr-violet);animation:wrSpin .7s linear infinite}
  396.         @keyframes wrSpin{to{transform:rotate(360deg)}}
  397.         /* ═══ Pills \"Populaire\" sous la recherche ═══ */
  398.         .hero-popular{
  399.             display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;
  400.             margin-bottom:18px;
  401.             opacity:0;animation:wrFadeUp .9s ease .7s forwards;
  402.         }
  403.         .hero-popular-label{
  404.             font-size:11px;font-weight:600;color:var(--wr-muted);
  405.             text-transform:uppercase;letter-spacing:.06em;
  406.             margin-right:4px;
  407.         }
  408.         .hero-popular-pill{
  409.             display:inline-flex;align-items:center;gap:5px;
  410.             padding:6px 12px;border-radius:100px;
  411.             background:var(--wr-violet-soft);
  412.             color:var(--wr-violet);
  413.             font-size:12.5px;font-weight:500;font-family:inherit;
  414.             text-decoration:none;cursor:pointer;
  415.             border:1px solid transparent;
  416.             transition:background .15s,border-color .15s,transform .15s,color .15s;
  417.         }
  418.         .hero-popular-pill:hover{
  419.             background:#EDE9FE;
  420.             border-color:rgba(138,99,192,.2);
  421.             transform:translateY(-1px);
  422.             color:var(--wr-violet);
  423.             text-decoration:none;
  424.         }
  425.         .hero-popular-pill.is-active{
  426.             background:var(--wr-violet);color:#fff;border-color:var(--wr-violet);
  427.         }
  428.         .hero-popular-pill.is-active:hover{background:var(--wr-violet-dark);color:#fff}
  429.         .hero-popular-pill-icon{font-size:13px;line-height:1}
  430.         /* ═══ CTA hero (boutons inscription + connexion pour anonymes) ═══ */
  431.         .hero-cta{
  432.             display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  433.             margin:24px 0 8px;
  434.             opacity:0;animation:wrFadeUp .9s ease 1.1s forwards;
  435.         }
  436.         .hero-cta-btn,
  437.         .hero-cta-btn:link,
  438.         .hero-cta-btn:visited,
  439.         .hero-cta-btn:hover,
  440.         .hero-cta-btn:focus,
  441.         .hero-cta-btn:active{
  442.             color:#fff !important;
  443.             text-decoration:none !important;
  444.         }
  445.         .hero-cta-btn{
  446.             display:inline-flex;align-items:center;gap:8px;
  447.             padding:11px 20px;border-radius:11px;
  448.             font-size:13.5px;font-weight:700;font-family:inherit;
  449.             line-height:1;
  450.             background:var(--wr-violet);border:1px solid var(--wr-violet);
  451.             box-shadow:0 4px 14px rgba(138,99,193,.32);
  452.             transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;
  453.         }
  454.         .hero-cta-btn:hover{
  455.             background:var(--wr-violet-dark);border-color:var(--wr-violet-dark);
  456.             transform:translateY(-2px);
  457.             box-shadow:0 6px 20px rgba(138,99,193,.4);
  458.         }
  459.         .hero-cta-btn svg{width:15px;height:15px;flex-shrink:0;stroke:#fff !important;color:#fff !important}
  460.         .hero-cta-btn span{color:#fff !important}
  461.         @media(max-width:540px){.hero-cta{flex-direction:column;align-items:stretch}.hero-cta-btn{justify-content:center}}
  462.         /* ═══ Boutons stores — VIOLET PLEIN BLANC ═══ */
  463.         .hero-stores{
  464.             display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  465.             margin-bottom:48px;
  466.             opacity:0;animation:wrFadeUp .9s ease .85s forwards;
  467.         }
  468.         .hero-store-btn{
  469.             display:inline-flex;align-items:center;gap:10px;
  470.             padding:13px 24px;border-radius:12px;
  471.             background:var(--wr-violet);
  472.             border:0;
  473.             color:#fff;
  474.             font-size:14px;font-weight:600;
  475.             text-decoration:none;
  476.             transition:background .15s,transform .15s,box-shadow .15s;
  477.             box-shadow:0 4px 12px rgba(138,99,192,.3);
  478.         }
  479.         .hero-store-btn:hover{
  480.             background:var(--wr-violet-dark);
  481.             color:#fff;
  482.             transform:translateY(-2px);
  483.             box-shadow:0 8px 22px rgba(138,99,192,.4);
  484.             text-decoration:none;
  485.         }
  486.         .hero-store-btn-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px}
  487.         .hero-store-btn-icon svg{width:18px;height:18px}
  488.         @media(max-width:540px){.hero-stores{flex-direction:column;align-items:stretch;gap:10px}.hero-store-btn{justify-content:center}}
  489.         /* ═══════════════════════════════════════════════════════════════════
  490.            LISTE PAR DÉFAUT SOUS LE HERO (offres récentes)
  491.            ═══════════════════════════════════════════════════════════════════ */
  492.         .hero-default-jobs{
  493.             position:relative;z-index:2;
  494.             max-width:1200px;margin:0 auto;
  495.             background:var(--wr-card);
  496.             border:1px solid var(--wr-line);
  497.             border-radius:18px;
  498.             padding:8px 0;
  499.             box-shadow:var(--wr-shadow);
  500.             opacity:0;animation:wrFadeUp .9s ease 1s forwards;
  501.             text-align:left;
  502.         }
  503.         .hero-default-job{
  504.             display:flex;align-items:center;gap:16px;
  505.             padding:14px 22px;
  506.             text-decoration:none;color:inherit;
  507.             border-bottom:1px solid var(--wr-line);
  508.             transition:background .15s;
  509.         }
  510.         .hero-default-job:last-child{border-bottom:0}
  511.         .hero-default-job:hover{background:var(--wr-violet-softer);text-decoration:none;color:inherit}
  512.         .hero-default-job-logo{
  513.             width:42px;height:42px;border-radius:11px;flex-shrink:0;
  514.             display:flex;align-items:center;justify-content:center;
  515.             font-weight:700;font-size:16px;overflow:hidden;
  516.         }
  517.         .hero-default-job-logo img{width:100%;height:100%;object-fit:cover}
  518.         /* 7 variantes de couleurs cyclées par index */
  519.         .hero-default-job:nth-child(7n+1) .hero-default-job-logo{background:var(--wr-acc-yellow);color:var(--wr-acc-yellow-fg)}
  520.         .hero-default-job:nth-child(7n+2) .hero-default-job-logo{background:var(--wr-acc-green);color:var(--wr-acc-green-fg)}
  521.         .hero-default-job:nth-child(7n+3) .hero-default-job-logo{background:var(--wr-acc-pink);color:var(--wr-acc-pink-fg)}
  522.         .hero-default-job:nth-child(7n+4) .hero-default-job-logo{background:var(--wr-acc-blue);color:var(--wr-acc-blue-fg)}
  523.         .hero-default-job:nth-child(7n+5) .hero-default-job-logo{background:var(--wr-acc-orange);color:var(--wr-acc-orange-fg)}
  524.         .hero-default-job:nth-child(7n+6) .hero-default-job-logo{background:var(--wr-acc-violet);color:var(--wr-acc-violet-fg)}
  525.         .hero-default-job:nth-child(7n+7) .hero-default-job-logo{background:var(--wr-acc-cyan);color:var(--wr-acc-cyan-fg)}
  526.         .hero-default-job-info{flex:1;min-width:0}
  527.         .hero-default-job-title{
  528.             font-weight:600;font-size:14.5px;color:var(--wr-ink);
  529.             margin:0 0 2px;line-height:1.3;
  530.             white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  531.         }
  532.         .hero-default-job-meta{
  533.             font-size:12.5px;color:var(--wr-muted);margin:0;
  534.             white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  535.             display:flex;align-items:center;gap:8px;
  536.         }
  537.         .hero-default-job-meta-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--wr-muted-2);flex-shrink:0}
  538.         .hero-default-job-arrow{flex-shrink:0;color:var(--wr-muted-2);transition:color .15s,transform .15s}
  539.         .hero-default-job-arrow svg{width:15px;height:15px}
  540.         .hero-default-job:hover .hero-default-job-arrow{color:var(--wr-violet);transform:translateX(3px)}
  541.         @media(max-width:768px){
  542.             .hero-default-jobs{margin:0 -18px;border-radius:14px}
  543.             .hero-default-job{padding:12px 16px;gap:12px}
  544.             .hero-default-job-logo{width:36px;height:36px;font-size:13px}
  545.             .hero-default-job-title{font-size:13.5px}
  546.             .hero-default-job-meta{font-size:11.5px;gap:6px;flex-wrap:wrap;white-space:normal}
  547.         }
  548.         /* ═══════════════════════════════════════════════════════════════════
  549.            SECTION : 3 PARCOURS
  550.            ═══════════════════════════════════════════════════════════════════ */
  551.         .paths-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  552.         @media(max-width:991px){.paths-grid{grid-template-columns:1fr;gap:14px}}
  553.         .path-card{
  554.             position:relative;
  555.             background:var(--wr-card);
  556.             border:1px solid var(--wr-line);
  557.             border-radius:20px;padding:28px;
  558.             display:flex;flex-direction:column;
  559.             transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  560.             box-shadow:var(--wr-shadow);
  561.         }
  562.         .path-card:hover{transform:translateY(-4px);box-shadow:var(--wr-shadow-hover);border-color:var(--wr-violet-2)}
  563.         .path-card-illu{
  564.             width:64px;height:64px;border-radius:16px;
  565.             background:var(--wr-violet-soft);color:var(--wr-violet);
  566.             display:flex;align-items:center;justify-content:center;
  567.             margin-bottom:22px;
  568.         }
  569.         .path-card-illu svg{width:30px;height:30px}
  570.         .path-card-label{
  571.             display:inline-block;
  572.             font-size:11px;font-weight:600;
  573.             color:var(--wr-violet-dark);text-transform:uppercase;letter-spacing:.1em;
  574.             margin-bottom:10px;align-self:flex-start;
  575.         }
  576.         .path-card-title{
  577.             font-weight:500;font-size:22px;line-height:1.25;letter-spacing:-0.015em;
  578.             color:var(--wr-ink);margin:0 0 10px;
  579.         }
  580.         .path-card-desc{
  581.             font-size:14px;line-height:1.6;color:var(--wr-muted);
  582.             margin:0 0 22px;flex:1;
  583.         }
  584.         .path-card-cta{
  585.             display:inline-flex;align-items:center;justify-content:center;gap:6px;
  586.             background:var(--wr-violet);color:#fff;
  587.             padding:12px 18px;border-radius:11px;
  588.             font-size:13px;font-weight:600;
  589.             align-self:stretch;
  590.             transition:background .15s,transform .15s,box-shadow .15s;
  591.             box-shadow:0 2px 8px rgba(138,99,192,.2);
  592.         }
  593.         .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)}
  594.         .path-card-cta svg{width:13px;height:13px;transition:transform .15s}
  595.         .path-card-cta:hover svg{transform:translateX(3px)}
  596.         /* ═══════════════════════════════════════════════════════════════════
  597.            COMMENT ÇA MARCHE — Card crème englobante avec 3 sous-cards
  598.            ═══════════════════════════════════════════════════════════════════ */
  599.         .how-card{
  600.             background:#F4ECE1;
  601.             border-radius:24px;
  602.             padding:32px 24px;
  603.             display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  604.             position:relative;
  605.         }
  606.         @media(max-width:991px){.how-card{grid-template-columns:1fr;gap:8px;padding:24px 16px}}
  607.         @media(min-width:992px){
  608.             /* Séparateurs verticaux entre les 3 cellules */
  609.             .how-card .how-step + .how-step{border-left:1px solid rgba(28,25,22,.08)}
  610.         }
  611.         .how-step{
  612.             display:flex;flex-direction:column;align-items:center;text-align:center;
  613.             padding:16px 20px;
  614.             gap:16px;
  615.         }
  616.         .how-step-illu{
  617.             width:100%;max-width:280px;aspect-ratio:1/1;
  618.             border-radius:16px;
  619.             background:rgba(255,255,255,.5);
  620.             display:flex;align-items:center;justify-content:center;
  621.             margin-bottom:4px;
  622.             overflow:hidden;
  623.         }
  624.         .how-step-illu img{width:100%;height:100%;object-fit:contain;display:block}
  625.         .how-step-illu svg{width:55%;height:55%;opacity:.85}
  626.         .how-step-title{
  627.             font-weight:700;font-size:18px;line-height:1.3;letter-spacing:-0.01em;
  628.             color:var(--wr-ink);margin:0;
  629.         }
  630.         @media(min-width:992px){.how-step-title{font-size:20px}}
  631.         .how-step-desc{
  632.             font-size:14px;line-height:1.55;color:var(--wr-ink-2);
  633.             margin:0;max-width:320px;
  634.         }
  635.         /* ═══════════════════════════════════════════════════════════════════
  636.            FEATURES 01-04 — Splits alternés image/texte avec témoignages
  637.            ═══════════════════════════════════════════════════════════════════ */
  638.         .feat-block{
  639.             display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;
  640.             margin-bottom:64px;
  641.         }
  642.         .feat-block:last-child{margin-bottom:0}
  643.         @media(max-width:991px){
  644.             .feat-block{grid-template-columns:1fr;gap:24px;margin-bottom:48px}
  645.         }
  646.         /* Alterner : 01 illu droite, 02 illu gauche, 03 illu droite, 04 illu gauche */
  647.         .feat-block:nth-child(odd) .feat-illu{order:2}
  648.         .feat-block:nth-child(odd) .feat-content{order:1}
  649.         .feat-block:nth-child(even) .feat-illu{order:1}
  650.         .feat-block:nth-child(even) .feat-content{order:2}
  651.         @media(max-width:991px){
  652.             .feat-block .feat-illu{order:1}
  653.             .feat-block .feat-content{order:2}
  654.         }
  655.         .feat-illu{
  656.             background:#F5EDE3;
  657.             border-radius:20px;
  658.             aspect-ratio:1/1;
  659.             display:flex;align-items:center;justify-content:center;
  660.             color:var(--wr-violet);
  661.             overflow:hidden;
  662.             position:relative;
  663.         }
  664.         .feat-illu img{width:100%;height:100%;object-fit:contain;display:block}
  665.         .feat-illu svg{width:50%;height:50%;opacity:.85}
  666.         .feat-content{display:flex;flex-direction:column;gap:18px}
  667.         .feat-label{
  668.             font-size:30px;font-weight:800;
  669.             color:var(--wr-ink);
  670.             letter-spacing:-0.02em;
  671.             margin:0;line-height:1;
  672.         }
  673.         .feat-title{
  674.             font-weight:700;font-size:24px;line-height:1.2;letter-spacing:-0.02em;
  675.             color:var(--wr-ink);margin:0;
  676.         }
  677.         @media(min-width:768px){.feat-title{font-size:28px}}
  678.         @media(min-width:1100px){.feat-title{font-size:30px}}
  679.         .feat-desc{
  680.             display:flex;flex-direction:column;gap:14px;
  681.         }
  682.         .feat-desc p{
  683.             font-size:15px;line-height:1.6;color:var(--wr-ink-2);
  684.             margin:0;opacity:.85;
  685.         }
  686.         @media(min-width:1100px){.feat-desc p{font-size:16px}}
  687.         .feat-desc strong{color:var(--wr-ink);font-weight:700;opacity:1}
  688.         .feat-quote{
  689.             background:var(--wr-card);
  690.             border:1px solid var(--wr-line);
  691.             border-radius:14px;
  692.             padding:18px 20px;
  693.             display:flex;flex-direction:column;gap:10px;
  694.             margin-top:8px;
  695.         }
  696.         .feat-quote-text{
  697.             font-size:14px;line-height:1.55;color:var(--wr-ink-2);
  698.             margin:0;font-style:italic;
  699.         }
  700.         .feat-quote-author{
  701.             display:flex;flex-direction:column;
  702.         }
  703.         .feat-quote-name{font-size:13px;font-weight:700;color:var(--wr-ink);margin:0}
  704.         .feat-quote-role{font-size:12px;color:var(--wr-muted);margin:0}
  705.         /* ═══════════════════════════════════════════════════════════════════
  706.            MATCH
  707.            ═══════════════════════════════════════════════════════════════════ */
  708.         .match-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
  709.         @media(max-width:991px){.match-grid{grid-template-columns:1fr;gap:40px}}
  710.         .match-text .wr-title{margin-left:0;text-align:left}
  711.         .match-text .wr-lede{margin-left:0;text-align:left}
  712.         .match-text .wr-eyebrow{margin-bottom:20px}
  713.         .match-features{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px}
  714.         @media(max-width:540px){.match-features{grid-template-columns:1fr}}
  715.         .match-feature{
  716.             background:var(--wr-card);border:1px solid var(--wr-line);
  717.             border-radius:14px;padding:18px;
  718.             transition:transform .15s,border-color .15s,box-shadow .15s;
  719.         }
  720.         .match-feature:hover{transform:translateY(-2px);border-color:var(--wr-violet-soft);box-shadow:var(--wr-shadow)}
  721.         .match-feature-icon{
  722.             width:34px;height:34px;border-radius:10px;
  723.             background:var(--wr-violet-soft);color:var(--wr-violet);
  724.             display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px;
  725.         }
  726.         .match-feature-icon svg{width:16px;height:16px}
  727.         .match-feature-title{font-weight:600;font-size:14px;line-height:1.3;color:var(--wr-ink);margin:0 0 5px}
  728.         .match-feature-desc{font-size:12.5px;line-height:1.5;color:var(--wr-muted);margin:0}
  729.         .match-visual{position:relative;display:flex;justify-content:center;align-items:center;padding:40px 0}
  730.         .match-stack{position:relative;width:100%;max-width:340px;height:340px}
  731.         .match-stack-card{
  732.             position:absolute;
  733.             background:var(--wr-card);border:1px solid var(--wr-line);
  734.             border-radius:16px;padding:14px;
  735.             display:flex;align-items:center;gap:12px;
  736.             box-shadow:var(--wr-shadow);width:100%;
  737.             transition:transform .3s ease,box-shadow .3s ease;
  738.             cursor:pointer;
  739.         }
  740.         .match-stack-card:hover{
  741.             transform:translateY(-4px) rotate(0deg)!important;
  742.             box-shadow:0 20px 50px rgba(138,99,192,.22)!important;
  743.             z-index:10!important;
  744.         }
  745.         .match-stack-card:nth-child(1){top:0;transform:rotate(-6deg) translateX(-10px);z-index:1;animation:wrFloat1 6s ease-in-out infinite}
  746.         .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:wrFloat2 6s ease-in-out -2s infinite}
  747.         .match-stack-card:nth-child(3){top:156px;transform:rotate(-3deg) translateX(8px);z-index:2;animation:wrFloat3 6s ease-in-out -4s infinite}
  748.         .match-stack-card:nth-child(4){top:234px;left:20px;transform:rotate(4deg);z-index:1;animation:wrFloat4 6s ease-in-out -1s infinite}
  749.         @keyframes wrFloat1{0%,100%{transform:rotate(-6deg) translate(-10px,0)}50%{transform:rotate(-6deg) translate(-10px,-8px)}}
  750.         @keyframes wrFloat2{0%,100%{transform:rotate(2deg) translate(0,0)}50%{transform:rotate(2deg) translate(0,-6px)}}
  751.         @keyframes wrFloat3{0%,100%{transform:rotate(-3deg) translate(8px,0)}50%{transform:rotate(-3deg) translate(8px,-7px)}}
  752.         @keyframes wrFloat4{0%,100%{transform:rotate(4deg) translate(0,0)}50%{transform:rotate(4deg) translate(0,-5px)}}
  753.         .match-stack-logo{
  754.             width:38px;height:38px;border-radius:10px;
  755.             background:var(--wr-violet-soft);color:var(--wr-violet);
  756.             display:flex;align-items:center;justify-content:center;
  757.             font-weight:700;font-size:14px;flex-shrink:0;
  758.         }
  759.         .match-stack-info{flex:1;min-width:0}
  760.         .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}
  761.         .match-stack-meta{font-size:11px;color:var(--wr-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  762.         .match-stack-heart{
  763.             width:28px;height:28px;border-radius:50%;
  764.             background:#FEE2E2;color:#EF4444;
  765.             display:flex;align-items:center;justify-content:center;flex-shrink:0;
  766.             animation:wrHeartbeat 1.6s ease-in-out infinite;
  767.         }
  768.         .match-stack-card:nth-child(1) .match-stack-heart{animation-delay:0s}
  769.         .match-stack-card:nth-child(2) .match-stack-heart{animation-delay:.4s}
  770.         .match-stack-card:nth-child(3) .match-stack-heart{animation-delay:.8s}
  771.         .match-stack-card:nth-child(4) .match-stack-heart{animation-delay:1.2s}
  772.         .match-stack-heart svg{width:13px;height:13px;fill:currentColor}
  773.         @keyframes wrHeartbeat{
  774.             0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(239,68,68,.4)}
  775.             10%{transform:scale(1.18);box-shadow:0 0 0 0 rgba(239,68,68,.4)}
  776.             20%{transform:scale(1)}
  777.             30%{transform:scale(1.12)}
  778.             40%{transform:scale(1);box-shadow:0 0 0 10px rgba(239,68,68,0)}
  779.             100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}
  780.         }
  781.         /* ═══════════════════════════════════════════════════════════════════
  782.            SIGNUP FORM (entre feat 02 et 03)
  783.            ═══════════════════════════════════════════════════════════════════ */
  784.         .signup-card{
  785.             position:relative;
  786.             max-width:980px;margin:64px auto;
  787.             background:linear-gradient(135deg, #FFFFFF 0%, #FAF7FF 100%);
  788.             border:1px solid var(--wr-line);
  789.             border-radius:32px;
  790.             padding:48px 40px;
  791.             box-shadow:0 4px 12px rgba(30,27,46,.04), 0 24px 64px rgba(138,99,192,.1);
  792.             overflow:hidden;
  793.         }
  794.         @media(max-width:768px){.signup-card{padding:32px 22px;border-radius:24px;margin:48px auto}}
  795.         /* Décor : 2 blobs violet pâle dans les coins */
  796.         .signup-card::before{
  797.             content:\"\";position:absolute;
  798.             top:-120px;right:-120px;width:340px;height:340px;
  799.             background:radial-gradient(circle,rgba(138,99,192,.12) 0%,transparent 65%);
  800.             pointer-events:none;filter:blur(40px);
  801.         }
  802.         .signup-card::after{
  803.             content:\"\";position:absolute;
  804.             bottom:-100px;left:-80px;width:280px;height:280px;
  805.             background:radial-gradient(circle,rgba(138,99,192,.08) 0%,transparent 65%);
  806.             pointer-events:none;filter:blur(40px);
  807.         }
  808.         .signup-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:center}
  809.         @media(max-width:880px){.signup-inner{grid-template-columns:1fr;gap:28px}}
  810.         .signup-text{display:flex;flex-direction:column;gap:14px}
  811.         .signup-eyebrow{
  812.             display:inline-flex;align-items:center;gap:8px;
  813.             padding:7px 14px;border-radius:100px;
  814.             background:var(--wr-violet-soft);color:var(--wr-violet-dark);
  815.             font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  816.             align-self:flex-start;
  817.         }
  818.         .signup-title{
  819.             font-weight:700;font-size:28px;line-height:1.15;letter-spacing:-0.02em;
  820.             color:var(--wr-ink);margin:0;
  821.         }
  822.         @media(min-width:768px){.signup-title{font-size:34px}}
  823.         .signup-lede{font-size:15px;line-height:1.55;color:var(--wr-ink-2);margin:0;opacity:.85}
  824.         .signup-perks{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
  825.         .signup-perk{
  826.             display:inline-flex;align-items:center;gap:6px;
  827.             padding:6px 12px;border-radius:100px;
  828.             background:var(--wr-card);border:1px solid var(--wr-line-2);
  829.             font-size:12px;font-weight:600;color:var(--wr-ink-2);
  830.         }
  831.         .signup-perk svg{width:13px;height:13px;color:#10B981;stroke-width:3;flex-shrink:0}
  832.         .signup-form{
  833.             background:var(--wr-card);
  834.             border:1px solid var(--wr-line);
  835.             border-radius:20px;
  836.             padding:24px;
  837.             display:flex;flex-direction:column;gap:12px;
  838.             box-shadow:0 1px 2px rgba(30,27,46,.03);
  839.         }
  840.         .signup-form-error{
  841.             background:#FEF2F2;border:1px solid #FECACA;
  842.             color:#991B1B;
  843.             border-radius:12px;
  844.             padding:10px 14px;
  845.             font-size:13px;line-height:1.45;
  846.             margin:0;
  847.         }
  848.         .signup-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  849.         @media(max-width:540px){.signup-row{grid-template-columns:1fr}}
  850.         .signup-field{display:flex;flex-direction:column;gap:0}
  851.         .signup-card .signup-form input[type=\"email\"],
  852.         .signup-card .signup-form input[type=\"password\"],
  853.         .signup-card .signup-form input[type=\"text\"]{
  854.             width:100%;
  855.             padding:13px 14px;
  856.             border:1px solid var(--wr-line-2);border-radius:11px;
  857.             background:#FAFBFD;
  858.             font-size:14px;font-family:inherit;color:var(--wr-ink);
  859.             outline:none;
  860.             transition:border-color .15s,background .15s,box-shadow .15s;
  861.             box-sizing:border-box;
  862.         }
  863.         .signup-card .signup-form input[type=\"email\"]:focus,
  864.         .signup-card .signup-form input[type=\"password\"]:focus,
  865.         .signup-card .signup-form input[type=\"text\"]:focus{
  866.             border-color:var(--wr-violet);background:#fff;
  867.             box-shadow:0 0 0 3px rgba(138,99,192,.12);
  868.         }
  869.         .signup-card .signup-form input::placeholder{color:var(--wr-muted-2)}
  870.         .signup-terms{
  871.             display:flex;align-items:flex-start;gap:10px;
  872.             font-size:12.5px;line-height:1.45;color:var(--wr-muted);
  873.             margin:4px 0 0;
  874.         }
  875.         .signup-card .signup-form input[type=\"checkbox\"]{
  876.             width:16px;height:16px;flex-shrink:0;margin-top:2px;accent-color:var(--wr-violet);cursor:pointer;
  877.         }
  878.         .signup-terms a{color:var(--wr-violet);font-weight:600;text-decoration:underline}
  879.         .signup-terms a:hover{color:var(--wr-violet-dark)}
  880.         .signup-recaptcha{margin:4px 0 0}
  881.         .signup-recaptcha > div{max-width:100%}
  882.         .signup-submit{
  883.             width:100%;
  884.             padding:14px 22px;border-radius:12px;
  885.             background:var(--wr-violet);color:#fff;border:0;
  886.             font-size:14.5px;font-weight:700;font-family:inherit;
  887.             cursor:pointer;
  888.             display:inline-flex;align-items:center;justify-content:center;gap:8px;
  889.             box-shadow:0 4px 14px rgba(138,99,192,.32);
  890.             transition:background .15s,transform .15s,box-shadow .15s;
  891.             margin-top:6px;
  892.         }
  893.         .signup-submit:hover{background:var(--wr-violet-dark);transform:translateY(-1px);box-shadow:0 6px 20px rgba(138,99,192,.4)}
  894.         .signup-submit svg{width:14px;height:14px;transition:transform .15s}
  895.         .signup-submit:hover svg{transform:translateX(3px)}
  896.         .signup-login{
  897.             text-align:center;font-size:13px;color:var(--wr-muted);margin:6px 0 0;
  898.         }
  899.         .signup-login a{color:var(--wr-violet);font-weight:600;text-decoration:none}
  900.         .signup-login a:hover{color:var(--wr-violet-dark);text-decoration:underline}
  901.         /* ═══════════════════════════════════════════════════════════════════
  902.            APPS
  903.            ═══════════════════════════════════════════════════════════════════ */
  904.         .apps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  905.         @media(max-width:768px){.apps-grid{grid-template-columns:1fr}}
  906.         .app-card{
  907.             background:var(--wr-card);border:1px solid var(--wr-line);
  908.             border-radius:18px;padding:24px;
  909.             display:flex;flex-direction:column;align-items:flex-start;
  910.             transition:transform .2s,border-color .2s,box-shadow .2s;
  911.         }
  912.         .app-card:hover{transform:translateY(-3px);border-color:var(--wr-violet-2);box-shadow:var(--wr-shadow-hover);color:inherit;text-decoration:none}
  913.         .app-card-icon{
  914.             width:48px;height:48px;border-radius:14px;
  915.             background:var(--wr-violet-soft);color:var(--wr-violet);
  916.             display:inline-flex;align-items:center;justify-content:center;
  917.             margin-bottom:18px;
  918.         }
  919.         .app-card-icon svg{width:22px;height:22px}
  920.         .app-card-name{font-weight:500;font-size:18px;letter-spacing:-0.01em;color:var(--wr-ink);margin:0 0 6px}
  921.         .app-card-desc{font-size:13px;line-height:1.5;color:var(--wr-muted);margin:0 0 16px;flex:1}
  922.         .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}
  923.         .app-card-cta svg{width:11px;height:11px;transition:transform .15s}
  924.         .app-card:hover .app-card-cta svg{transform:translateX(3px)}
  925.         /* ═══════════════════════════════════════════════════════════════════
  926.            KEYWORDS
  927.            ═══════════════════════════════════════════════════════════════════ */
  928.         .keywords-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:1200px;margin:0 auto}
  929.         .keyword-pill{
  930.             display:inline-flex;align-items:center;gap:8px;
  931.             padding:9px 16px;border-radius:100px;
  932.             background:var(--wr-card);border:1px solid var(--wr-line-2);
  933.             color:var(--wr-ink-2);
  934.             font-size:13.5px;font-weight:500;
  935.             transition:transform .15s,border-color .15s,background .15s,color .15s,box-shadow .15s;
  936.         }
  937.         .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)}
  938.         .keyword-pill-icon{font-size:14px;line-height:1}
  939.         /* ═══════════════════════════════════════════════════════════════════
  940.            OFFRES POPULAIRES
  941.            ═══════════════════════════════════════════════════════════════════ */
  942.         .listings-block{margin-bottom:32px}
  943.         .listings-block:last-child{margin-bottom:0}
  944.         .listings-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}
  945.         .listings-block-title{
  946.             display:inline-flex;align-items:center;gap:10px;
  947.             font-weight:500;font-size:18px;letter-spacing:-0.005em;
  948.             color:var(--wr-ink);margin:0;
  949.         }
  950.         .listings-block-icon{font-size:20px;line-height:1}
  951.         .listings-block-link{
  952.             display:inline-flex;align-items:center;gap:4px;
  953.             padding:6px 12px;border-radius:100px;
  954.             font-size:12px;font-weight:600;
  955.             color:var(--wr-violet);
  956.             text-transform:uppercase;letter-spacing:.06em;
  957.             border:1px solid var(--wr-violet-soft);
  958.             background:var(--wr-card);
  959.             transition:background .15s,border-color .15s,transform .15s;
  960.         }
  961.         .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)}
  962.         .listings-block-link svg{width:11px;height:11px}
  963.         .listings-jobs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  964.         @media(max-width:768px){.listings-jobs{grid-template-columns:1fr}}
  965.         .listing-job{
  966.             display:flex;align-items:center;gap:14px;
  967.             background:var(--wr-card);border:1px solid var(--wr-line);
  968.             border-radius:14px;padding:12px;
  969.             transition:transform .15s,border-color .15s,box-shadow .15s;
  970.         }
  971.         .listing-job:hover{transform:translateY(-2px);border-color:var(--wr-violet-soft);box-shadow:var(--wr-shadow);color:inherit;text-decoration:none}
  972.         .listing-job-logo{
  973.             width:42px;height:42px;border-radius:11px;flex-shrink:0;
  974.             background:var(--wr-violet-soft);color:var(--wr-violet);
  975.             display:flex;align-items:center;justify-content:center;
  976.             font-weight:700;font-size:14px;overflow:hidden;
  977.         }
  978.         .listing-job-logo img{width:100%;height:100%;object-fit:cover}
  979.         .listing-job-info{flex:1;min-width:0}
  980.         .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}
  981.         .listing-job-meta{font-size:11.5px;color:var(--wr-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  982.         .listing-job-arrow{flex-shrink:0;color:var(--wr-muted-2);transition:color .15s,transform .15s}
  983.         .listing-job-arrow svg{width:14px;height:14px}
  984.         .listing-job:hover .listing-job-arrow{color:var(--wr-violet);transform:translateX(2px)}
  985.         /* ═══════════════════════════════════════════════════════════════════
  986.            ARTICLES — Liste sans miniatures (style identique aux jobs-card)
  987.            ═══════════════════════════════════════════════════════════════════ */
  988.         .articles-list{display:flex;flex-direction:column;gap:10px;max-width:1200px;margin:0 auto}
  989.         .wr-article{
  990.             background:var(--wr-card);border-radius:14px;padding:14px;
  991.             box-shadow:0 0 16px 0 rgba(0,0,0,0.04);
  992.             display:flex;align-items:center;gap:14px;
  993.             text-decoration:none;color:inherit;
  994.             transition:transform .15s,box-shadow .2s;
  995.         }
  996.         .wr-article:hover{
  997.             transform:translateY(-1px);
  998.             box-shadow:0 4px 20px rgba(138,99,192,.1);
  999.             color:inherit;text-decoration:none;
  1000.         }
  1001.         .wr-article-logo{
  1002.             width:50px;height:50px;border-radius:12px;flex-shrink:0;
  1003.             background:linear-gradient(135deg,#EDE9FE,#DDD6FE);
  1004.             display:flex;align-items:center;justify-content:center;
  1005.             color:var(--wr-violet);overflow:hidden;
  1006.         }
  1007.         .wr-article-logo svg{width:24px;height:24px;opacity:.9}
  1008.         .wr-article-info{flex:1;min-width:0}
  1009.         .wr-article-title{
  1010.             font-size:14px;font-weight:700;color:var(--wr-ink);
  1011.             line-height:1.3;margin:0 0 4px;
  1012.             white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  1013.         }
  1014.         .wr-article-meta{
  1015.             font-size:12px;color:var(--wr-muted);
  1016.             white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  1017.             display:flex;align-items:center;gap:8px;margin:0;
  1018.         }
  1019.         .wr-article-meta-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:#D1D5DB;flex-shrink:0}
  1020.         .wr-article-badge{
  1021.             font-size:11px;font-weight:600;
  1022.             color:var(--wr-violet);background:var(--wr-violet-soft);
  1023.             padding:3px 9px;border-radius:100px;
  1024.             white-space:nowrap;flex-shrink:0;
  1025.             text-transform:uppercase;letter-spacing:.04em;
  1026.         }
  1027.         .wr-article-arrow{flex-shrink:0;color:var(--wr-muted-2);transition:color .15s,transform .15s}
  1028.         .wr-article:hover .wr-article-arrow{color:var(--wr-violet);transform:translateX(2px)}
  1029.         .wr-article-arrow svg{width:18px;height:18px}
  1030.         @media(max-width:540px){
  1031.             .wr-article{padding:12px;gap:10px}
  1032.             .wr-article-logo{width:42px;height:42px}
  1033.             .wr-article-logo svg{width:20px;height:20px}
  1034.             .wr-article-title{font-size:13px}
  1035.             .wr-article-meta{font-size:11px;gap:6px;flex-wrap:wrap;white-space:normal}
  1036.             .wr-article-badge{display:none}
  1037.         }
  1038.         .articles-cta{text-align:center;margin-top:36px}
  1039.         .articles-cta a{
  1040.             display:inline-flex;align-items:center;gap:8px;
  1041.             padding:12px 22px;border-radius:11px;
  1042.             background:var(--wr-violet);color:#fff;
  1043.             font-size:13px;font-weight:600;
  1044.             text-decoration:none;
  1045.             box-shadow:0 4px 12px rgba(138,99,192,.3);
  1046.             transition:background .15s,transform .15s,box-shadow .15s;
  1047.         }
  1048.         .articles-cta a:hover{background:var(--wr-violet-dark);transform:translateY(-2px);box-shadow:0 6px 18px rgba(138,99,192,.4);text-decoration:none;color:#fff}
  1049.         .articles-cta svg{width:12px;height:12px;transition:transform .15s}
  1050.         .articles-cta a:hover svg{transform:translateX(3px)}
  1051.         /* ═══════════════════════════════════════════════════════════════════
  1052.            CTA FINAL — Card violet plein avec eyebrow + 2 sous-cards
  1053.            ═══════════════════════════════════════════════════════════════════ */
  1054.         .final-card{
  1055.             position:relative;
  1056.             background:linear-gradient(135deg,#8A63C0 0%,#9D7BCC 100%);
  1057.             border-radius:28px;
  1058.             padding:48px 40px;
  1059.             color:#fff;overflow:hidden;
  1060.             box-shadow:0 20px 60px -12px rgba(138,99,192,.4);
  1061.         }
  1062.         @media(max-width:768px){.final-card{padding:32px 22px;border-radius:22px}}
  1063.         .final-eyebrow{
  1064.             display:inline-flex;align-items:center;gap:8px;
  1065.             padding:8px 18px;border-radius:100px;
  1066.             background:rgba(255,255,255,.2);
  1067.             color:#fff;
  1068.             font-size:12px;font-weight:700;
  1069.             text-transform:uppercase;letter-spacing:.12em;
  1070.             margin-bottom:20px;
  1071.             backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  1072.         }
  1073.         .final-eyebrow svg{width:13px;height:13px;fill:currentColor}
  1074.         .final-title{
  1075.             font-weight:800;font-size:28px;line-height:1.15;letter-spacing:-0.02em;
  1076.             color:#fff;margin:0 0 36px;
  1077.             max-width:780px;
  1078.         }
  1079.         @media(min-width:768px){.final-title{font-size:38px}}
  1080.         /* Grille 2 sous-cards */
  1081.         .final-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  1082.         @media(max-width:768px){.final-grid{grid-template-columns:1fr;gap:14px}}
  1083.         .final-sub{
  1084.             background:#fff;
  1085.             border-radius:18px;
  1086.             padding:28px;
  1087.             display:flex;flex-direction:column;
  1088.         }
  1089.         @media(max-width:768px){.final-sub{padding:22px}}
  1090.         .final-sub-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}
  1091.         .final-sub-icon{
  1092.             width:44px;height:44px;border-radius:11px;
  1093.             background:var(--wr-violet-soft);color:var(--wr-violet);
  1094.             display:flex;align-items:center;justify-content:center;flex-shrink:0;
  1095.         }
  1096.         .final-sub-icon svg{width:22px;height:22px}
  1097.         .final-sub-label{
  1098.             font-size:12.5px;font-weight:700;
  1099.             color:var(--wr-violet);
  1100.             text-transform:uppercase;letter-spacing:.1em;
  1101.         }
  1102.         .final-sub-title{
  1103.             font-weight:800;font-size:18px;line-height:1.3;letter-spacing:-0.01em;
  1104.             color:var(--wr-ink);margin:0 0 10px;
  1105.         }
  1106.         .final-sub-desc{
  1107.             font-size:14px;line-height:1.55;color:var(--wr-muted);
  1108.             margin:0 0 24px;flex:1;
  1109.         }
  1110.         .final-sub-btn{
  1111.             display:flex;align-items:center;justify-content:center;gap:8px;
  1112.             background:var(--wr-violet);color:#fff;
  1113.             padding:14px 18px;border-radius:11px;
  1114.             font-size:14px;font-weight:700;
  1115.             text-decoration:none;
  1116.             transition:background .15s,transform .15s,box-shadow .15s;
  1117.             box-shadow:0 4px 12px rgba(138,99,192,.3);
  1118.         }
  1119.         .final-sub-btn:hover{
  1120.             background:var(--wr-violet-dark);color:#fff;
  1121.             transform:translateY(-2px);
  1122.             box-shadow:0 6px 18px rgba(138,99,192,.4);
  1123.             text-decoration:none;
  1124.         }
  1125.         .final-sub-btn svg{width:14px;height:14px;transition:transform .15s}
  1126.         .final-sub-btn:hover svg{transform:translateX(3px)}
  1127.     </style>
  1128. ";
  1129.         
  1130.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1131.         
  1132.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1133.         yield from [];
  1134.     }
  1135.     // line 1071
  1136.     /**
  1137.      * @return iterable<null|scalar|\Stringable>
  1138.      */
  1139.     public function block_body(array $context, array $blocks = []): iterable
  1140.     {
  1141.         $macros $this->macros;
  1142.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1143.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  1144.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1145.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  1146.         // line 1072
  1147.         yield "    <div class=\"wr\">
  1148.         ";
  1149.         // line 1075
  1150.         yield "        <section class=\"hero\">
  1151.             <div class=\"hero-inner\">
  1152.             <span class=\"hero-badge\">
  1153.                 <span class=\"hero-badge-dot\"></span>
  1154.                 ";
  1155.         // line 1079
  1156.         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.'1079$this->source); })()), "hero_eyebrow", [], "any"falsefalsefalse1079), "html"nulltrue);
  1157.         yield "
  1158.             </span>
  1159.                 <h1 class=\"hero-title\">
  1160.                     <span class=\"hero-title-accent\">";
  1161.         // line 1083
  1162.         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.'1083$this->source); })()), "hero_title_accent", [], "any"falsefalsefalse1083), "html"nulltrue);
  1163.         yield "</span> ";
  1164.         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.'1083$this->source); })()), "hero_title_post", [], "any"falsefalsefalse1083), "html"nulltrue);
  1165.         yield "<br>
  1166.                     <span class=\"hero-title-accent\">";
  1167.         // line 1084
  1168.         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.'1084$this->source); })()), "hero_title_accent2", [], "any"falsefalsefalse1084), "html"nulltrue);
  1169.         yield "</span> ";
  1170.         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.'1084$this->source); })()), "hero_title_2", [], "any"falsefalsefalse1084), "html"nulltrue);
  1171.         yield "
  1172.                 </h1>
  1173.                 <p class=\"hero-lede\">
  1174.                     ";
  1175.         // line 1088
  1176.         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.'1088$this->source); })()), "hero_lede_pre", [], "any"falsefalsefalse1088), "html"nulltrue);
  1177.         yield "
  1178.                     <span class=\"hero-lede-accent\">";
  1179.         // line 1089
  1180.         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.'1089$this->source); })()), "hero_lede_brand", [], "any"falsefalsefalse1089), "html"nulltrue);
  1181.         yield "</span>
  1182.                     ";
  1183.         // line 1090
  1184.         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.'1090$this->source); })()), "hero_lede_mid", [], "any"falsefalsefalse1090), "html"nulltrue);
  1185.         yield "
  1186.                     <span class=\"hero-lede-accent\">";
  1187.         // line 1091
  1188.         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.'1091$this->source); })()), "hero_lede_word", [], "any"falsefalsefalse1091), "html"nulltrue);
  1189.         yield "</span>
  1190.                     ";
  1191.         // line 1092
  1192.         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.'1092$this->source); })()), "hero_lede_post", [], "any"falsefalsefalse1092), "html"nulltrue);
  1193.         yield "
  1194.                 </p>
  1195.                 ";
  1196.         // line 1096
  1197.         yield "                ";
  1198.         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.'1096$this->source); })())) > 0))) {
  1199.             // line 1097
  1200.             yield "                    <div class=\"hero-popular\">
  1201.                         <span class=\"hero-popular-label\">";
  1202.             // line 1098
  1203.             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.'1098$this->source); })()), "hero_popular_label", [], "any"falsefalsefalse1098), "html"nulltrue);
  1204.             yield "</span>
  1205.                         ";
  1206.             // line 1099
  1207.             $context['_parent'] = $context;
  1208.             $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::slice($this->env->getCharset(), (isset($context["popularKeywords"]) || array_key_exists("popularKeywords"$context) ? $context["popularKeywords"] : (function () { throw new RuntimeError('Variable "popularKeywords" does not exist.'1099$this->source); })()), 05));
  1209.             foreach ($context['_seq'] as $context["_key"] => $context["kw"]) {
  1210.                 // line 1100
  1211.                 yield "                            <button type=\"button\"
  1212.                                     class=\"hero-popular-pill\"
  1213.                                     data-keyword=\"";
  1214.                 // line 1102
  1215.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["kw"], "keyword", [], "any"falsefalsefalse1102), "html"nulltrue);
  1216.                 yield "\"
  1217.                                     data-label=\"";
  1218.                 // line 1103
  1219.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["kw"], "label", [], "any"falsefalsefalse1103), "html"nulltrue);
  1220.                 yield "\">
  1221.                                 ";
  1222.                 // line 1104
  1223.                 if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["kw"], "icon", [], "any"falsefalsefalse1104)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1224.                     yield "<span class=\"hero-popular-pill-icon\">";
  1225.                     yield CoreExtension::getAttribute($this->env$this->source$context["kw"], "icon", [], "any"falsefalsefalse1104);
  1226.                     yield "</span>";
  1227.                 }
  1228.                 // line 1105
  1229.                 yield "                                <span>";
  1230.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["kw"], "label", [], "any"falsefalsefalse1105), "html"nulltrue);
  1231.                 yield "</span>
  1232.                             </button>
  1233.                         ";
  1234.             }
  1235.             $_parent $context['_parent'];
  1236.             unset($context['_seq'], $context['_key'], $context['kw'], $context['_parent']);
  1237.             $context array_intersect_key($context$_parent) + $_parent;
  1238.             // line 1108
  1239.             yield "                    </div>
  1240.                 ";
  1241.         }
  1242.         // line 1110
  1243.         yield "
  1244.                 ";
  1245.         // line 1112
  1246.         yield "                <div class=\"hero-search-wrap\">
  1247.                     <div class=\"hero-search\" id=\"wrHeroSearch\"
  1248.                          data-search-url=\"";
  1249.         // line 1114
  1250.         if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1114$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1251.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_api_jobs_search", ["_locale" => "fr"]);
  1252.         } else {
  1253.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("api_jobs_search");
  1254.         }
  1255.         yield "\"
  1256.                          data-jobs-list-url=\"";
  1257.         // line 1115
  1258.         if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1115$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1259.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_whileresume_jobs_list", ["_locale" => "fr"]);
  1260.         } else {
  1261.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("whileresume_jobs_list");
  1262.         }
  1263.         yield "\">
  1264.                         <div class=\"hero-search-inner\">
  1265.                         <span class=\"hero-search-icon\">
  1266.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1267.                                 <circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"M21 21l-4.35-4.35\"/>
  1268.                             </svg>
  1269.                         </span>
  1270.                             <input type=\"text\" name=\"q\" id=\"wrHeroSearchInput\" class=\"hero-search-input\"
  1271.                                    placeholder=\"";
  1272.         // line 1123
  1273.         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.'1123$this->source); })()), "hero_search_placeholder", [], "any"falsefalsefalse1123), "html"nulltrue);
  1274.         yield "\"
  1275.                                    autocomplete=\"off\" />
  1276.                             <span class=\"hero-search-kbd\">↵ ";
  1277.         // line 1125
  1278.         yield (((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1125$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Entrée") : ("Enter"));
  1279.         yield "</span>
  1280.                             <button type=\"button\" class=\"hero-search-clear\" id=\"wrHeroSearchClear\" aria-label=\"";
  1281.         // line 1126
  1282.         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.'1126$this->source); })()), "search_clear", [], "any"falsefalsefalse1126), "html"nulltrue);
  1283.         yield "\">
  1284.                                 <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1285.                                     <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/>
  1286.                                 </svg>
  1287.                             </button>
  1288.                         </div>
  1289.                     </div>
  1290.                 </div>
  1291.                 ";
  1292.         // line 1136
  1293.         yield "                ";
  1294.         $context["_heroCount"] = 0;
  1295.         // line 1137
  1296.         yield "                ";
  1297.         $context["_heroTotal"] = 0;
  1298.         // line 1138
  1299.         yield "                ";
  1300.         if (array_key_exists("popularJobs"$context)) {
  1301.             // line 1139
  1302.             yield "                    ";
  1303.             $context['_parent'] = $context;
  1304.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["popularJobs"]) || array_key_exists("popularJobs"$context) ? $context["popularJobs"] : (function () { throw new RuntimeError('Variable "popularJobs" does not exist.'1139$this->source); })()));
  1305.             foreach ($context['_seq'] as $context["_key"] => $context["block"]) {
  1306.                 // line 1140
  1307.                 yield "                        ";
  1308.                 if (CoreExtension::getAttribute($this->env$this->source$context["block"], "jobs", [], "any"truetruefalse1140)) {
  1309.                     $context["_heroTotal"] = ((isset($context["_heroTotal"]) || array_key_exists("_heroTotal"$context) ? $context["_heroTotal"] : (function () { throw new RuntimeError('Variable "_heroTotal" does not exist.'1140$this->source); })()) + Twig\Extension\CoreExtension::length($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["block"], "jobs", [], "any"falsefalsefalse1140)));
  1310.                 }
  1311.                 // line 1141
  1312.                 yield "                    ";
  1313.             }
  1314.             $_parent $context['_parent'];
  1315.             unset($context['_seq'], $context['_key'], $context['block'], $context['_parent']);
  1316.             $context array_intersect_key($context$_parent) + $_parent;
  1317.             // line 1142
  1318.             yield "                ";
  1319.         }
  1320.         // line 1143
  1321.         yield "
  1322.                 <div class=\"hero-default-jobs\" id=\"wrHeroJobsList\">
  1323.                     <div class=\"hero-jobs-header\" id=\"wrHeroJobsHeader\">
  1324.                     <span class=\"hero-jobs-count\" id=\"wrHeroJobsCount\">
  1325.                         <strong>";
  1326.         // line 1147
  1327.         yield (((isset($context["_heroTotal"]) || array_key_exists("_heroTotal"$context) ? $context["_heroTotal"] : (function () { throw new RuntimeError('Variable "_heroTotal" does not exist.'1147$this->source); })())) ? ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["_heroTotal"], "html"nulltrue)) : ((((array_key_exists("totalJobs"$context) &&  !(null === $context["totalJobs"]))) ? ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["totalJobs"], "html"nulltrue)) : (""))));
  1328.         yield "</strong>";
  1329.         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.'1147$this->source); })()), "search_results_count", [], "any"falsefalsefalse1147), "html"nulltrue);
  1330.         yield "
  1331.                     </span>
  1332.                         <a href=\"";
  1333.         // line 1149
  1334.         if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1149$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1335.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_whileresume_jobs_list", ["_locale" => "fr"]);
  1336.         } else {
  1337.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("whileresume_jobs_list");
  1338.         }
  1339.         yield "\" class=\"hero-jobs-link\" id=\"wrHeroJobsLink\">
  1340.                             ";
  1341.         // line 1150
  1342.         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.'1150$this->source); })()), "search_view_all", [], "any"falsefalsefalse1150), "html"nulltrue);
  1343.         yield "
  1344.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1345.                                 <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/>
  1346.                             </svg>
  1347.                         </a>
  1348.                     </div>
  1349.                     <div id=\"wrHeroJobsBody\">
  1350.                         ";
  1351.         // line 1158
  1352.         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.'1158$this->source); })())) > 0))) {
  1353.             // line 1159
  1354.             yield "                            ";
  1355.             $context['_parent'] = $context;
  1356.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["popularJobs"]) || array_key_exists("popularJobs"$context) ? $context["popularJobs"] : (function () { throw new RuntimeError('Variable "popularJobs" does not exist.'1159$this->source); })()));
  1357.             foreach ($context['_seq'] as $context["_key"] => $context["block"]) {
  1358.                 // line 1160
  1359.                 yield "                                ";
  1360.                 if ((CoreExtension::getAttribute($this->env$this->source$context["block"], "jobs", [], "any"truetruefalse1160) && (Twig\Extension\CoreExtension::length($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["block"], "jobs", [], "any"falsefalsefalse1160)) > 0))) {
  1361.                     // line 1161
  1362.                     yield "                                    ";
  1363.                     $context['_parent'] = $context;
  1364.                     $context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env$this->source$context["block"], "jobs", [], "any"falsefalsefalse1161));
  1365.                     foreach ($context['_seq'] as $context["_key"] => $context["j"]) {
  1366.                         // line 1162
  1367.                         yield "                                        ";
  1368.                         if (((isset($context["_heroCount"]) || array_key_exists("_heroCount"$context) ? $context["_heroCount"] : (function () { throw new RuntimeError('Variable "_heroCount" does not exist.'1162$this->source); })()) < 6)) {
  1369.                             // line 1163
  1370.                             yield "                                            <a href=\"";
  1371.                             if ((CoreExtension::getAttribute($this->env$this->source$context["j"], "locale", [], "any"falsefalsefalse1163) == "fr")) {
  1372.                                 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.'1163$this->source); })()), "request", [], "any"falsefalsefalse1163), "locale", [], "any"falsefalsefalse1163), "slug" => CoreExtension::getAttribute($this->env$this->source$context["j"], "slug", [], "any"falsefalsefalse1163)]), "html"nulltrue);
  1373.                             } else {
  1374.                                 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"falsefalsefalse1163)]), "html"nulltrue);
  1375.                             }
  1376.                             yield "\" class=\"hero-default-job\">
  1377.                                                 <div class=\"hero-default-job-logo\">
  1378.                                                     ";
  1379.                             // line 1165
  1380.                             if ((CoreExtension::getAttribute($this->env$this->source$context["j"], "image", [], "any"falsefalsefalse1165) && CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["j"], "image", [], "any"falsefalsefalse1165), "name", [], "any"falsefalsefalse1165))) {
  1381.                                 // line 1166
  1382.                                 yield "                                                        <img src=\"";
  1383.                                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Vich\UploaderBundle\Twig\Extension\UploaderExtension']->asset($context["j"], "imageFile"), "html"nulltrue);
  1384.                                 yield "\" alt=\"\">
  1385.                                                     ";
  1386.                             } else {
  1387.                                 // line 1168
  1388.                                 yield "                                                        ";
  1389.                                 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"truetruefalse1168)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env$this->source$context["j"], "companyName", [], "any"falsefalsefalse1168), "?")) : ("?")), 01)), "html"nulltrue);
  1390.                                 yield "
  1391.                                                     ";
  1392.                             }
  1393.                             // line 1170
  1394.                             yield "                                                </div>
  1395.                                                 <div class=\"hero-default-job-info\">
  1396.                                                     <h3 class=\"hero-default-job-title\">";
  1397.                             // line 1172
  1398.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["j"], "jobTitle", [], "any"falsefalsefalse1172), "html"nulltrue);
  1399.                             yield "</h3>
  1400.                                                     <p class=\"hero-default-job-meta\">
  1401.                                                         ";
  1402.                             // line 1174
  1403.                             if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["j"], "companyName", [], "any"falsefalsefalse1174)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1404.                                 yield "<span>";
  1405.                                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["j"], "companyName", [], "any"falsefalsefalse1174), "html"nulltrue);
  1406.                                 yield "</span>";
  1407.                             }
  1408.                             // line 1175
  1409.                             yield "                                                        ";
  1410.                             if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["j"], "city", [], "any"falsefalsefalse1175)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1411.                                 // line 1176
  1412.                                 yield "                                                            <span class=\"hero-default-job-meta-sep\"></span>
  1413.                                                             <span>";
  1414.                                 // line 1177
  1415.                                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["j"], "city", [], "any"falsefalsefalse1177), "html"nulltrue);
  1416.                                 if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["j"], "country", [], "any"falsefalsefalse1177)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1417.                                     yield ", ";
  1418.                                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["j"], "country", [], "any"falsefalsefalse1177), "html"nulltrue);
  1419.                                 }
  1420.                                 yield "</span>
  1421.                                                         ";
  1422.                             }
  1423.                             // line 1179
  1424.                             yield "                                                        ";
  1425.                             if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["j"], "employmentType", [], "any"falsefalsefalse1179)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1426.                                 // line 1180
  1427.                                 yield "                                                            <span class=\"hero-default-job-meta-sep\"></span>
  1428.                                                             <span>";
  1429.                                 // line 1181
  1430.                                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["j"], "employmentType", [], "any"falsefalsefalse1181), "html"nulltrue);
  1431.                                 yield "</span>
  1432.                                                         ";
  1433.                             }
  1434.                             // line 1183
  1435.                             yield "                                                    </p>
  1436.                                                 </div>
  1437.                                                 <span class=\"hero-default-job-arrow\">
  1438.                                                 <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>
  1439.                                             </span>
  1440.                                             </a>
  1441.                                             ";
  1442.                             // line 1189
  1443.                             $context["_heroCount"] = ((isset($context["_heroCount"]) || array_key_exists("_heroCount"$context) ? $context["_heroCount"] : (function () { throw new RuntimeError('Variable "_heroCount" does not exist.'1189$this->source); })()) + 1);
  1444.                             // line 1190
  1445.                             yield "                                        ";
  1446.                         }
  1447.                         // line 1191
  1448.                         yield "                                    ";
  1449.                     }
  1450.                     $_parent $context['_parent'];
  1451.                     unset($context['_seq'], $context['_key'], $context['j'], $context['_parent']);
  1452.                     $context array_intersect_key($context$_parent) + $_parent;
  1453.                     // line 1192
  1454.                     yield "                                ";
  1455.                 }
  1456.                 // line 1193
  1457.                 yield "                            ";
  1458.             }
  1459.             $_parent $context['_parent'];
  1460.             unset($context['_seq'], $context['_key'], $context['block'], $context['_parent']);
  1461.             $context array_intersect_key($context$_parent) + $_parent;
  1462.             // line 1194
  1463.             yield "                        ";
  1464.         }
  1465.         // line 1195
  1466.         yield "                    </div>
  1467.                 </div>
  1468.                 ";
  1469.         // line 1199
  1470.         yield "                ";
  1471.         if ((null === CoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1199$this->source); })()), "user", [], "any"falsefalsefalse1199))) {
  1472.             // line 1200
  1473.             yield "                    <div class=\"hero-cta\">
  1474.                         <a href=\"#register\" class=\"hero-cta-btn\">
  1475.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1476.                                 <path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/><circle cx=\"8.5\" cy=\"7\" r=\"4\"/><line x1=\"20\" y1=\"8\" x2=\"20\" y2=\"14\"/><line x1=\"23\" y1=\"11\" x2=\"17\" y2=\"11\"/>
  1477.                             </svg>
  1478.                             ";
  1479.             // line 1205
  1480.             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.'1205$this->source); })()), "hero_cta_signup", [], "any"falsefalsefalse1205), "html"nulltrue);
  1481.             yield "
  1482.                         </a>
  1483.                         <a href=\"";
  1484.             // line 1207
  1485.             if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1207$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1486.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_app_login", ["_locale" => "fr"]);
  1487.             } else {
  1488.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app_login");
  1489.             }
  1490.             yield "\" class=\"hero-cta-btn\">
  1491.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1492.                                 <path d=\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"/><polyline points=\"10 17 15 12 10 7\"/><line x1=\"15\" y1=\"12\" x2=\"3\" y2=\"12\"/>
  1493.                             </svg>
  1494.                             ";
  1495.             // line 1211
  1496.             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.'1211$this->source); })()), "hero_cta_login", [], "any"falsefalsefalse1211), "html"nulltrue);
  1497.             yield "
  1498.                         </a>
  1499.                     </div>
  1500.                 ";
  1501.         }
  1502.         // line 1215
  1503.         yield "            </div>
  1504.         </section>
  1505.         ";
  1506.         // line 1219
  1507.         yield "        <section class=\"wr-section\">
  1508.             <div class=\"wr-container\">
  1509.                 <div class=\"wr-section-head\">
  1510.                     <h2 class=\"wr-title\">";
  1511.         // line 1222
  1512.         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.'1222$this->source); })()), "how_title", [], "any"falsefalsefalse1222), "html"nulltrue);
  1513.         yield "</h2>
  1514.                 </div>
  1515.                 <div class=\"how-card\">
  1516.                     <div class=\"how-step reveal\" data-reveal-delay=\"1\">
  1517.                         <div class=\"how-step-illu\">
  1518.                             <img src=\"/uploads/rh/mascotte_register.png\" alt=\"";
  1519.         // line 1228
  1520.         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.'1228$this->source); })()), "how1_title", [], "any"falsefalsefalse1228), "html"nulltrue);
  1521.         yield "\" loading=\"lazy\">
  1522.                         </div>
  1523.                         <h3 class=\"how-step-title\">";
  1524.         // line 1230
  1525.         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.'1230$this->source); })()), "how1_title", [], "any"falsefalsefalse1230), "html"nulltrue);
  1526.         yield "</h3>
  1527.                         <p class=\"how-step-desc\">";
  1528.         // line 1231
  1529.         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.'1231$this->source); })()), "how1_desc", [], "any"falsefalsefalse1231), "html"nulltrue);
  1530.         yield "</p>
  1531.                     </div>
  1532.                     <div class=\"how-step reveal\" data-reveal-delay=\"2\">
  1533.                         <div class=\"how-step-illu\">
  1534.                             <img src=\"/uploads/rh/mascotte_upload2.png\" alt=\"";
  1535.         // line 1236
  1536.         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.'1236$this->source); })()), "how2_title", [], "any"falsefalsefalse1236), "html"nulltrue);
  1537.         yield "\" loading=\"lazy\">
  1538.                         </div>
  1539.                         <h3 class=\"how-step-title\">";
  1540.         // line 1238
  1541.         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.'1238$this->source); })()), "how2_title", [], "any"falsefalsefalse1238), "html"nulltrue);
  1542.         yield "</h3>
  1543.                         <p class=\"how-step-desc\">";
  1544.         // line 1239
  1545.         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.'1239$this->source); })()), "how2_desc", [], "any"falsefalsefalse1239), "html"nulltrue);
  1546.         yield "</p>
  1547.                     </div>
  1548.                     <div class=\"how-step reveal\" data-reveal-delay=\"3\">
  1549.                         <div class=\"how-step-illu\">
  1550.                             <img src=\"/uploads/rh/mascotte_reunion.png\" alt=\"";
  1551.         // line 1244
  1552.         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.'1244$this->source); })()), "how3_title", [], "any"falsefalsefalse1244), "html"nulltrue);
  1553.         yield "\" loading=\"lazy\">
  1554.                         </div>
  1555.                         <h3 class=\"how-step-title\">";
  1556.         // line 1246
  1557.         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.'1246$this->source); })()), "how3_title", [], "any"falsefalsefalse1246), "html"nulltrue);
  1558.         yield "</h3>
  1559.                         <p class=\"how-step-desc\">";
  1560.         // line 1247
  1561.         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.'1247$this->source); })()), "how3_desc", [], "any"falsefalsefalse1247), "html"nulltrue);
  1562.         yield "</p>
  1563.                     </div>
  1564.                 </div>
  1565.             </div>
  1566.         </section>
  1567.         ";
  1568.         // line 1254
  1569.         yield "        <section class=\"wr-section\">
  1570.             <div class=\"wr-container\">
  1571.                 ";
  1572.         // line 1258
  1573.         yield "                <div class=\"feat-block reveal\">
  1574.                     <div class=\"feat-illu\">
  1575.                         <img src=\"/uploads/rh/mascotte_filtrage3.png\" alt=\"";
  1576.         // line 1260
  1577.         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.'1260$this->source); })()), "feat1_title", [], "any"falsefalsefalse1260), "html"nulltrue);
  1578.         yield "\" loading=\"lazy\">
  1579.                     </div>
  1580.                     <div class=\"feat-content\">
  1581.                         <span class=\"feat-label\">";
  1582.         // line 1263
  1583.         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.'1263$this->source); })()), "feat1_label", [], "any"falsefalsefalse1263), "html"nulltrue);
  1584.         yield "</span>
  1585.                         <h3 class=\"feat-title\">";
  1586.         // line 1264
  1587.         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.'1264$this->source); })()), "feat1_title", [], "any"falsefalsefalse1264), "html"nulltrue);
  1588.         yield "</h3>
  1589.                         <div class=\"feat-desc\">
  1590.                             <p>";
  1591.         // line 1266
  1592.         yield 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.'1266$this->source); })()), "feat1_p1", [], "any"falsefalsefalse1266);
  1593.         yield "</p>
  1594.                             <p>";
  1595.         // line 1267
  1596.         yield 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.'1267$this->source); })()), "feat1_p2", [], "any"falsefalsefalse1267);
  1597.         yield "</p>
  1598.                         </div>
  1599.                         <div class=\"feat-quote\">
  1600.                             <p class=\"feat-quote-text\">";
  1601.         // line 1270
  1602.         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.'1270$this->source); })()), "feat1_quote", [], "any"falsefalsefalse1270), "html"nulltrue);
  1603.         yield "</p>
  1604.                             <div class=\"feat-quote-author\">
  1605.                                 <p class=\"feat-quote-name\">";
  1606.         // line 1272
  1607.         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.'1272$this->source); })()), "feat1_author", [], "any"falsefalsefalse1272), "html"nulltrue);
  1608.         yield "</p>
  1609.                                 <p class=\"feat-quote-role\">";
  1610.         // line 1273
  1611.         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.'1273$this->source); })()), "feat1_role", [], "any"falsefalsefalse1273), "html"nulltrue);
  1612.         yield "</p>
  1613.                             </div>
  1614.                         </div>
  1615.                     </div>
  1616.                 </div>
  1617.                 ";
  1618.         // line 1280
  1619.         yield "                <div class=\"feat-block reveal\">
  1620.                     <div class=\"feat-illu\">
  1621.                         <img src=\"/uploads/rh/mascotte_upload.png\" alt=\"";
  1622.         // line 1282
  1623.         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.'1282$this->source); })()), "feat2_title", [], "any"falsefalsefalse1282), "html"nulltrue);
  1624.         yield "\" loading=\"lazy\">
  1625.                     </div>
  1626.                     <div class=\"feat-content\">
  1627.                         <span class=\"feat-label\">";
  1628.         // line 1285
  1629.         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.'1285$this->source); })()), "feat2_label", [], "any"falsefalsefalse1285), "html"nulltrue);
  1630.         yield "</span>
  1631.                         <h3 class=\"feat-title\">";
  1632.         // line 1286
  1633.         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.'1286$this->source); })()), "feat2_title", [], "any"falsefalsefalse1286), "html"nulltrue);
  1634.         yield "</h3>
  1635.                         <div class=\"feat-desc\">
  1636.                             <p>";
  1637.         // line 1288
  1638.         yield 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.'1288$this->source); })()), "feat2_p1", [], "any"falsefalsefalse1288);
  1639.         yield "</p>
  1640.                             <p>";
  1641.         // line 1289
  1642.         yield 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.'1289$this->source); })()), "feat2_p2", [], "any"falsefalsefalse1289);
  1643.         yield "</p>
  1644.                         </div>
  1645.                         <div class=\"feat-quote\">
  1646.                             <p class=\"feat-quote-text\">";
  1647.         // line 1292
  1648.         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.'1292$this->source); })()), "feat2_quote", [], "any"falsefalsefalse1292), "html"nulltrue);
  1649.         yield "</p>
  1650.                             <div class=\"feat-quote-author\">
  1651.                                 <p class=\"feat-quote-name\">";
  1652.         // line 1294
  1653.         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.'1294$this->source); })()), "feat2_author", [], "any"falsefalsefalse1294), "html"nulltrue);
  1654.         yield "</p>
  1655.                                 <p class=\"feat-quote-role\">";
  1656.         // line 1295
  1657.         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.'1295$this->source); })()), "feat2_role", [], "any"falsefalsefalse1295), "html"nulltrue);
  1658.         yield "</p>
  1659.                             </div>
  1660.                         </div>
  1661.                     </div>
  1662.                 </div>
  1663.                 ";
  1664.         // line 1301
  1665.         if ((null === CoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1301$this->source); })()), "user", [], "any"falsefalsefalse1301))) {
  1666.             // line 1302
  1667.             yield "                ";
  1668.             // line 1303
  1669.             yield "                <div class=\"signup-card reveal reveal--scale\" id=\"register\">
  1670.                     <div class=\"signup-inner\">
  1671.                         <div class=\"signup-text\">
  1672.                             <span class=\"signup-eyebrow\">
  1673.                                 <svg viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/><circle cx=\"8.5\" cy=\"7\" r=\"4\"/><line x1=\"20\" y1=\"8\" x2=\"20\" y2=\"14\"/><line x1=\"23\" y1=\"11\" x2=\"17\" y2=\"11\"/></svg>
  1674.                                 ";
  1675.             // line 1308
  1676.             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.'1308$this->source); })()), "signup_eyebrow", [], "any"falsefalsefalse1308), "html"nulltrue);
  1677.             yield "
  1678.                             </span>
  1679.                             <h3 class=\"signup-title\">";
  1680.             // line 1310
  1681.             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.'1310$this->source); })()), "signup_title", [], "any"falsefalsefalse1310), "html"nulltrue);
  1682.             yield "</h3>
  1683.                             <p class=\"signup-lede\">";
  1684.             // line 1311
  1685.             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.'1311$this->source); })()), "signup_lede", [], "any"falsefalsefalse1311), "html"nulltrue);
  1686.             yield "</p>
  1687.                             <div class=\"signup-perks\">
  1688.                                 <span class=\"signup-perk\">
  1689.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>
  1690.                                     ";
  1691.             // line 1315
  1692.             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.'1315$this->source); })()), "signup_perk1", [], "any"falsefalsefalse1315), "html"nulltrue);
  1693.             yield "
  1694.                                 </span>
  1695.                                 <span class=\"signup-perk\">
  1696.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>
  1697.                                     ";
  1698.             // line 1319
  1699.             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.'1319$this->source); })()), "signup_perk2", [], "any"falsefalsefalse1319), "html"nulltrue);
  1700.             yield "
  1701.                                 </span>
  1702.                                 <span class=\"signup-perk\">
  1703.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>
  1704.                                     ";
  1705.             // line 1323
  1706.             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.'1323$this->source); })()), "signup_perk3", [], "any"falsefalsefalse1323), "html"nulltrue);
  1707.             yield "
  1708.                                 </span>
  1709.                             </div>
  1710.                         </div>
  1711.                         ";
  1712.             // line 1328
  1713.             if (array_key_exists("form"$context)) {
  1714.                 // line 1329
  1715.                 yield "                            ";
  1716.                 // line 1330
  1717.                 yield "                            ";
  1718.                 yield                 $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->renderBlock((isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'1330$this->source); })()), 'form_start', ["attr" => ["class" => "signup-form""novalidate" => "novalidate"]]);
  1719.                 yield "
  1720.                             ";
  1721.                 // line 1331
  1722.                 yield $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock((isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'1331$this->source); })()), 'errors');
  1723.                 yield "
  1724.                             ";
  1725.                 // line 1332
  1726.                 $context['_parent'] = $context;
  1727.                 $context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1332$this->source); })()), "flashes", ["danger"], "method"falsefalsefalse1332));
  1728.                 foreach ($context['_seq'] as $context["_key"] => $context["message"]) {
  1729.                     // line 1333
  1730.                     yield "                                <p class=\"signup-form-error\">";
  1731.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["message"], "html"nulltrue);
  1732.                     yield "</p>
  1733.                             ";
  1734.                 }
  1735.                 $_parent $context['_parent'];
  1736.                 unset($context['_seq'], $context['_key'], $context['message'], $context['_parent']);
  1737.                 $context array_intersect_key($context$_parent) + $_parent;
  1738.                 // line 1335
  1739.                 yield "
  1740.                             <div class=\"signup-field\">
  1741.                                 ";
  1742.                 // line 1337
  1743.                 yield $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'1337$this->source); })()), "email", [], "any"falsefalsefalse1337), 'widget', ["attr" => ["placeholder" => 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.'1337$this->source); })()), "signup_email_ph", [], "any"falsefalsefalse1337)]]);
  1744.                 yield "
  1745.                             </div>
  1746.                             <div class=\"signup-row\">
  1747.                                 <div class=\"signup-field\">
  1748.                                     ";
  1749.                 // line 1342
  1750.                 yield $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'1342$this->source); })()), "password", [], "any"falsefalsefalse1342), "first", [], "any"falsefalsefalse1342), 'widget', ["attr" => ["placeholder" => 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.'1342$this->source); })()), "signup_pass_ph", [], "any"falsefalsefalse1342)]]);
  1751.                 yield "
  1752.                                 </div>
  1753.                                 <div class=\"signup-field\">
  1754.                                     ";
  1755.                 // line 1345
  1756.                 yield $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'1345$this->source); })()), "password", [], "any"falsefalsefalse1345), "second", [], "any"falsefalsefalse1345), 'widget', ["attr" => ["placeholder" => 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.'1345$this->source); })()), "signup_pass2_ph", [], "any"falsefalsefalse1345)]]);
  1757.                 yield "
  1758.                                 </div>
  1759.                             </div>
  1760.                             <label class=\"signup-terms\">
  1761.                                 ";
  1762.                 // line 1350
  1763.                 yield $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'1350$this->source); })()), "acceptTerm", [], "any"falsefalsefalse1350), 'widget');
  1764.                 yield "
  1765.                                 <span>
  1766.                                         ";
  1767.                 // line 1352
  1768.                 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.'1352$this->source); })()), "signup_terms_pre", [], "any"falsefalsefalse1352), "html"nulltrue);
  1769.                 yield "
  1770.                                         <a href=\"";
  1771.                 // line 1353
  1772.                 if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1353$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1773.                     yield "/fr/protections-donnees-candidats";
  1774.                 } else {
  1775.                     yield "/data-protection-candidates";
  1776.                 }
  1777.                 yield "\" target=\"_blank\" rel=\"noopener\">";
  1778.                 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.'1353$this->source); })()), "signup_terms_link", [], "any"falsefalsefalse1353), "html"nulltrue);
  1779.                 yield "</a>.
  1780.                                     </span>
  1781.                             </label>
  1782.                             ";
  1783.                 // line 1357
  1784.                 if (CoreExtension::getAttribute($this->env$this->source, ($context["form"] ?? null), "recaptcha", [], "any"truetruefalse1357)) {
  1785.                     // line 1358
  1786.                     yield "                                <div class=\"signup-recaptcha\">";
  1787.                     yield $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'1358$this->source); })()), "recaptcha", [], "any"falsefalsefalse1358), 'widget');
  1788.                     yield "</div>
  1789.                             ";
  1790.                 }
  1791.                 // line 1360
  1792.                 yield "
  1793.                             <button type=\"submit\" class=\"signup-submit\">
  1794.                                 ";
  1795.                 // line 1362
  1796.                 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.'1362$this->source); })()), "signup_btn", [], "any"falsefalsefalse1362), "html"nulltrue);
  1797.                 yield "
  1798.                                 <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>
  1799.                             </button>
  1800.                             ";
  1801.                 // line 1366
  1802.                 yield $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock((isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'1366$this->source); })()), 'rest');
  1803.                 yield "
  1804.                             ";
  1805.                 // line 1367
  1806.                 yield                 $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->renderBlock((isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'1367$this->source); })()), 'form_end');
  1807.                 yield "
  1808.                         ";
  1809.             } else {
  1810.                 // line 1369
  1811.                 yield "                            ";
  1812.                 // line 1370
  1813.                 yield "                            <form class=\"signup-form\" method=\"get\" action=\"";
  1814.                 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.'1370$this->source); })()), "request", [], "any"falsefalsefalse1370), "locale", [], "any"falsefalsefalse1370)));
  1815.                 yield "#register\">
  1816.                                 <div class=\"signup-field\">
  1817.                                     <input type=\"email\" name=\"email\" placeholder=\"";
  1818.                 // line 1372
  1819.                 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.'1372$this->source); })()), "signup_email_ph", [], "any"falsefalsefalse1372), "html"nulltrue);
  1820.                 yield "\" required>
  1821.                                 </div>
  1822.                                 <div class=\"signup-row\">
  1823.                                     <div class=\"signup-field\">
  1824.                                         <input type=\"password\" name=\"password\" placeholder=\"";
  1825.                 // line 1377
  1826.                 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.'1377$this->source); })()), "signup_pass_ph", [], "any"falsefalsefalse1377), "html"nulltrue);
  1827.                 yield "\" required minlength=\"8\">
  1828.                                     </div>
  1829.                                     <div class=\"signup-field\">
  1830.                                         <input type=\"password\" name=\"password_confirm\" placeholder=\"";
  1831.                 // line 1380
  1832.                 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.'1380$this->source); })()), "signup_pass2_ph", [], "any"falsefalsefalse1380), "html"nulltrue);
  1833.                 yield "\" required minlength=\"8\">
  1834.                                     </div>
  1835.                                 </div>
  1836.                                 <label class=\"signup-terms\">
  1837.                                     <input type=\"checkbox\" name=\"acceptTerm\" required>
  1838.                                     <span>
  1839.                                         ";
  1840.                 // line 1387
  1841.                 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.'1387$this->source); })()), "signup_terms_pre", [], "any"falsefalsefalse1387), "html"nulltrue);
  1842.                 yield "
  1843.                                         <a href=\"";
  1844.                 // line 1388
  1845.                 if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1388$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1846.                     yield "/fr/protections-donnees-candidats";
  1847.                 } else {
  1848.                     yield "/data-protection-candidates";
  1849.                 }
  1850.                 yield "\" target=\"_blank\" rel=\"noopener\">";
  1851.                 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.'1388$this->source); })()), "signup_terms_link", [], "any"falsefalsefalse1388), "html"nulltrue);
  1852.                 yield "</a>.
  1853.                                     </span>
  1854.                                 </label>
  1855.                                 <button type=\"submit\" class=\"signup-submit\">
  1856.                                     ";
  1857.                 // line 1393
  1858.                 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.'1393$this->source); })()), "signup_btn", [], "any"falsefalsefalse1393), "html"nulltrue);
  1859.                 yield "
  1860.                                     <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>
  1861.                                 </button>
  1862.                                 <p class=\"signup-login\">
  1863.                                     ";
  1864.                 // line 1398
  1865.                 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.'1398$this->source); })()), "signup_login_pre", [], "any"falsefalsefalse1398), "html"nulltrue);
  1866.                 yield "
  1867.                                     <a href=\"";
  1868.                 // line 1399
  1869.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app_login");
  1870.                 yield "\">";
  1871.                 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.'1399$this->source); })()), "signup_login_link", [], "any"falsefalsefalse1399), "html"nulltrue);
  1872.                 yield "</a>
  1873.                                 </p>
  1874.                             </form>
  1875.                         ";
  1876.             }
  1877.             // line 1403
  1878.             yield "                    </div>
  1879.                 </div>
  1880.                 ";
  1881.         }
  1882.         // line 1406
  1883.         yield "
  1884.                 ";
  1885.         // line 1408
  1886.         yield "                <div class=\"feat-block reveal\">
  1887.                     <div class=\"feat-illu\">
  1888.                         <img src=\"/uploads/rh/mascotte_register.png\" alt=\"";
  1889.         // line 1410
  1890.         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.'1410$this->source); })()), "feat3_title", [], "any"falsefalsefalse1410), "html"nulltrue);
  1891.         yield "\" loading=\"lazy\">
  1892.                     </div>
  1893.                     <div class=\"feat-content\">
  1894.                         <span class=\"feat-label\">";
  1895.         // line 1413
  1896.         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.'1413$this->source); })()), "feat3_label", [], "any"falsefalsefalse1413), "html"nulltrue);
  1897.         yield "</span>
  1898.                         <h3 class=\"feat-title\">";
  1899.         // line 1414
  1900.         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.'1414$this->source); })()), "feat3_title", [], "any"falsefalsefalse1414), "html"nulltrue);
  1901.         yield "</h3>
  1902.                         <div class=\"feat-desc\">
  1903.                             <p>";
  1904.         // line 1416
  1905.         yield 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.'1416$this->source); })()), "feat3_p1", [], "any"falsefalsefalse1416);
  1906.         yield "</p>
  1907.                             <p>";
  1908.         // line 1417
  1909.         yield 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.'1417$this->source); })()), "feat3_p2", [], "any"falsefalsefalse1417);
  1910.         yield "</p>
  1911.                         </div>
  1912.                         <div class=\"feat-quote\">
  1913.                             <p class=\"feat-quote-text\">";
  1914.         // line 1420
  1915.         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.'1420$this->source); })()), "feat3_quote", [], "any"falsefalsefalse1420), "html"nulltrue);
  1916.         yield "</p>
  1917.                             <div class=\"feat-quote-author\">
  1918.                                 <p class=\"feat-quote-name\">";
  1919.         // line 1422
  1920.         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.'1422$this->source); })()), "feat3_author", [], "any"falsefalsefalse1422), "html"nulltrue);
  1921.         yield "</p>
  1922.                                 <p class=\"feat-quote-role\">";
  1923.         // line 1423
  1924.         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.'1423$this->source); })()), "feat3_role", [], "any"falsefalsefalse1423), "html"nulltrue);
  1925.         yield "</p>
  1926.                             </div>
  1927.                         </div>
  1928.                     </div>
  1929.                 </div>
  1930.                 ";
  1931.         // line 1430
  1932.         yield "                <div class=\"feat-block reveal\">
  1933.                     <div class=\"feat-illu\">
  1934.                         <img src=\"/uploads/rh/mascotte_reunion.png\" alt=\"";
  1935.         // line 1432
  1936.         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.'1432$this->source); })()), "feat4_title", [], "any"falsefalsefalse1432), "html"nulltrue);
  1937.         yield "\" loading=\"lazy\">
  1938.                     </div>
  1939.                     <div class=\"feat-content\">
  1940.                         <span class=\"feat-label\">";
  1941.         // line 1435
  1942.         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.'1435$this->source); })()), "feat4_label", [], "any"falsefalsefalse1435), "html"nulltrue);
  1943.         yield "</span>
  1944.                         <h3 class=\"feat-title\">";
  1945.         // line 1436
  1946.         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.'1436$this->source); })()), "feat4_title", [], "any"falsefalsefalse1436), "html"nulltrue);
  1947.         yield "</h3>
  1948.                         <div class=\"feat-desc\">
  1949.                             <p>";
  1950.         // line 1438
  1951.         yield 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.'1438$this->source); })()), "feat4_p1", [], "any"falsefalsefalse1438);
  1952.         yield "</p>
  1953.                             <p>";
  1954.         // line 1439
  1955.         yield 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.'1439$this->source); })()), "feat4_p2", [], "any"falsefalsefalse1439);
  1956.         yield "</p>
  1957.                         </div>
  1958.                         <div class=\"feat-quote\">
  1959.                             <p class=\"feat-quote-text\">";
  1960.         // line 1442
  1961.         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.'1442$this->source); })()), "feat4_quote", [], "any"falsefalsefalse1442), "html"nulltrue);
  1962.         yield "</p>
  1963.                             <div class=\"feat-quote-author\">
  1964.                                 <p class=\"feat-quote-name\">";
  1965.         // line 1444
  1966.         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.'1444$this->source); })()), "feat4_author", [], "any"falsefalsefalse1444), "html"nulltrue);
  1967.         yield "</p>
  1968.                                 <p class=\"feat-quote-role\">";
  1969.         // line 1445
  1970.         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.'1445$this->source); })()), "feat4_role", [], "any"falsefalsefalse1445), "html"nulltrue);
  1971.         yield "</p>
  1972.                             </div>
  1973.                         </div>
  1974.                     </div>
  1975.                 </div>
  1976.             </div>
  1977.         </section>
  1978.         ";
  1979.         // line 1456
  1980.         yield "        <section class=\"wr-section\">
  1981.             <div class=\"wr-container\">
  1982.                 <div class=\"apps-grid\">
  1983.                     <a href=\"#\" class=\"app-card\">
  1984.                     <span class=\"app-card-icon\">
  1985.                         <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>
  1986.                     </span>
  1987.                         <h3 class=\"app-card-name\">";
  1988.         // line 1463
  1989.         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.'1463$this->source); })()), "apps_ios", [], "any"falsefalsefalse1463), "html"nulltrue);
  1990.         yield "</h3>
  1991.                         <p class=\"app-card-desc\">";
  1992.         // line 1464
  1993.         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.'1464$this->source); })()), "apps_ios_desc", [], "any"falsefalsefalse1464), "html"nulltrue);
  1994.         yield "</p>
  1995.                         <span class=\"app-card-cta\">App Store
  1996.                         <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>
  1997.                     </span>
  1998.                     </a>
  1999.                     <a href=\"#\" class=\"app-card\">
  2000.                     <span class=\"app-card-icon\">
  2001.                         <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>
  2002.                     </span>
  2003.                         <h3 class=\"app-card-name\">";
  2004.         // line 1473
  2005.         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.'1473$this->source); })()), "apps_android", [], "any"falsefalsefalse1473), "html"nulltrue);
  2006.         yield "</h3>
  2007.                         <p class=\"app-card-desc\">";
  2008.         // line 1474
  2009.         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.'1474$this->source); })()), "apps_android_desc", [], "any"falsefalsefalse1474), "html"nulltrue);
  2010.         yield "</p>
  2011.                         <span class=\"app-card-cta\">Google Play
  2012.                         <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>
  2013.                     </span>
  2014.                     </a>
  2015.                     <a href=\"";
  2016.         // line 1479
  2017.         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.'1479$this->source); })()), "request", [], "any"falsefalsefalse1479), "locale", [], "any"falsefalsefalse1479)));
  2018.         yield "\" class=\"app-card\">
  2019.                     <span class=\"app-card-icon\">
  2020.                         <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>
  2021.                     </span>
  2022.                         <h3 class=\"app-card-name\">";
  2023.         // line 1483
  2024.         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.'1483$this->source); })()), "apps_web", [], "any"falsefalsefalse1483), "html"nulltrue);
  2025.         yield "</h3>
  2026.                         <p class=\"app-card-desc\">";
  2027.         // line 1484
  2028.         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.'1484$this->source); })()), "apps_web_desc", [], "any"falsefalsefalse1484), "html"nulltrue);
  2029.         yield "</p>
  2030.                         <span class=\"app-card-cta\">whileresume.com
  2031.                         <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>
  2032.                     </span>
  2033.                     </a>
  2034.                 </div>
  2035.             </div>
  2036.         </section>
  2037.         ";
  2038.         // line 1495
  2039.         yield "        ";
  2040.         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.'1495$this->source); })())) > 0))) {
  2041.             // line 1496
  2042.             yield "            <section class=\"wr-section\">
  2043.                 <div class=\"wr-container\">
  2044.                     <div class=\"wr-section-head\">
  2045.                         <h2 class=\"wr-title wr-title--sm\">";
  2046.             // line 1499
  2047.             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.'1499$this->source); })()), "articles_title", [], "any"falsefalsefalse1499), "html"nulltrue);
  2048.             yield "</h2>
  2049.                     </div>
  2050.                     <div class=\"articles-list\">
  2051.                         ";
  2052.             // line 1503
  2053.             $context['_parent'] = $context;
  2054.             $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.'1503$this->source); })()), 06));
  2055.             foreach ($context['_seq'] as $context["_key"] => $context["a"]) {
  2056.                 // line 1504
  2057.                 yield "                            ";
  2058.                 $context["prefix"] = "";
  2059.                 // line 1505
  2060.                 yield "                            ";
  2061.                 $context["urlA"] = $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("cvs_website_article", ["slug" => CoreExtension::getAttribute($this->env$this->source$context["a"], "slug", [], "any"falsefalsefalse1505)]);
  2062.                 // line 1506
  2063.                 yield "                            ";
  2064.                 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.'1506$this->source); })()), "request", [], "any"falsefalsefalse1506), "locale", [], "any"falsefalsefalse1506) != (isset($context["default_locale"]) || array_key_exists("default_locale"$context) ? $context["default_locale"] : (function () { throw new RuntimeError('Variable "default_locale" does not exist.'1506$this->source); })()))) {
  2065.                     // line 1507
  2066.                     yield "                                ";
  2067.                     $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.'1507$this->source); })()), "request", [], "any"falsefalsefalse1507), "locale", [], "any"falsefalsefalse1507), "slug" => CoreExtension::getAttribute($this->env$this->source$context["a"], "slug", [], "any"falsefalsefalse1507)]);
  2068.                     // line 1508
  2069.                     yield "                                ";
  2070.                     $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.'1508$this->source); })()), "request", [], "any"falsefalsefalse1508), "locale", [], "any"falsefalsefalse1508));
  2071.                     // line 1509
  2072.                     yield "                            ";
  2073.                 }
  2074.                 // line 1510
  2075.                 yield "                            ";
  2076.                 if ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug3", [], "any"falsefalsefalse1510))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  2077.                     // line 1511
  2078.                     yield "                                ";
  2079.                     $context["urlA"] = (((((((isset($context["prefix"]) || array_key_exists("prefix"$context) ? $context["prefix"] : (function () { throw new RuntimeError('Variable "prefix" does not exist.'1511$this->source); })()) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug", [], "any"falsefalsefalse1511)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug2", [], "any"falsefalsefalse1511)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug3", [], "any"falsefalsefalse1511));
  2080.                     // line 1512
  2081.                     yield "                            ";
  2082.                 } elseif ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug2", [], "any"falsefalsefalse1512))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  2083.                     // line 1513
  2084.                     yield "                                ";
  2085.                     $context["urlA"] = (((((isset($context["prefix"]) || array_key_exists("prefix"$context) ? $context["prefix"] : (function () { throw new RuntimeError('Variable "prefix" does not exist.'1513$this->source); })()) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug", [], "any"falsefalsefalse1513)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug2", [], "any"falsefalsefalse1513));
  2086.                     // line 1514
  2087.                     yield "                            ";
  2088.                 } elseif ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug", [], "any"falsefalsefalse1514))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  2089.                     // line 1515
  2090.                     yield "                                ";
  2091.                     $context["urlA"] = (((isset($context["prefix"]) || array_key_exists("prefix"$context) ? $context["prefix"] : (function () { throw new RuntimeError('Variable "prefix" does not exist.'1515$this->source); })()) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug", [], "any"falsefalsefalse1515));
  2092.                     // line 1516
  2093.                     yield "                            ";
  2094.                 }
  2095.                 // line 1517
  2096.                 yield "
  2097.                             <a href=\"";
  2098.                 // line 1518
  2099.                 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.'1518$this->source); })()), "html"nulltrue);
  2100.                 yield "\" class=\"wr-article\">
  2101.                                 <div class=\"wr-article-logo\">
  2102.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2103.                                         <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"/>
  2104.                                         <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"/>
  2105.                                     </svg>
  2106.                                 </div>
  2107.                                 <div class=\"wr-article-info\">
  2108.                                     <h3 class=\"wr-article-title\">";
  2109.                 // line 1526
  2110.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["a"], "title", [], "any"falsefalsefalse1526), "html"nulltrue);
  2111.                 yield "</h3>
  2112.                                     <div class=\"wr-article-meta\">
  2113.                                         <span>";
  2114.                 // line 1528
  2115.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatDate(CoreExtension::getAttribute($this->env$this->source$context["a"], "publishedAt", [], "any"falsefalsefalse1528), (((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1528$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("d M Y") : ("M d, Y"))), "html"nulltrue);
  2116.                 yield "</span>
  2117.                                         ";
  2118.                 // line 1529
  2119.                 if (( !(null === CoreExtension::getAttribute($this->env$this->source$context["a"], "author", [], "any"falsefalsefalse1529)) &&  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["a"], "author", [], "any"falsefalsefalse1529)))) {
  2120.                     // line 1530
  2121.                     yield "                                            <span class=\"wr-article-meta-sep\"></span>
  2122.                                             <span>";
  2123.                     // line 1531
  2124.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["a"], "author", [], "any"falsefalsefalse1531), "html"nulltrue);
  2125.                     yield "</span>
  2126.                                         ";
  2127.                 }
  2128.                 // line 1533
  2129.                 yield "                                        ";
  2130.                 if ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["a"], "subtitle", [], "any"falsefalsefalse1533))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  2131.                     // line 1534
  2132.                     yield "                                            <span class=\"wr-article-meta-sep\"></span>
  2133.                                             <span>";
  2134.                     // line 1535
  2135.                     yield (((Twig\Extension\CoreExtension::length($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["a"], "subtitle", [], "any"falsefalsefalse1535)) > 60)) ? ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((Twig\Extension\CoreExtension::slice($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["a"], "subtitle", [], "any"falsefalsefalse1535), 060) . "…"), "html"nulltrue)) : ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["a"], "subtitle", [], "any"falsefalsefalse1535), "html"nulltrue)));
  2136.                     yield "</span>
  2137.                                         ";
  2138.                 }
  2139.                 // line 1537
  2140.                 yield "                                    </div>
  2141.                                 </div>
  2142.                                 <span class=\"wr-article-badge\">";
  2143.                 // line 1539
  2144.                 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.'1539$this->source); })()), "read_article", [], "any"falsefalsefalse1539), "html"nulltrue);
  2145.                 yield "</span>
  2146.                                 <span class=\"wr-article-arrow\">
  2147.                                 <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2148.                                     <polyline points=\"9 18 15 12 9 6\"/>
  2149.                                 </svg>
  2150.                             </span>
  2151.                             </a>
  2152.                         ";
  2153.             }
  2154.             $_parent $context['_parent'];
  2155.             unset($context['_seq'], $context['_key'], $context['a'], $context['_parent']);
  2156.             $context array_intersect_key($context$_parent) + $_parent;
  2157.             // line 1547
  2158.             yield "                    </div>
  2159.                     <div class=\"articles-cta\">
  2160.                         <a href=\"";
  2161.             // line 1550
  2162.             if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'1550$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  2163.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_cvs_website_articles", ["_locale" => "fr"]);
  2164.             } else {
  2165.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("cvs_website_articles");
  2166.             }
  2167.             yield "\">
  2168.                             ";
  2169.             // line 1551
  2170.             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.'1551$this->source); })()), "articles_view_all", [], "any"falsefalsefalse1551), "html"nulltrue);
  2171.             yield "
  2172.                             <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>
  2173.                         </a>
  2174.                     </div>
  2175.                 </div>
  2176.             </section>
  2177.         ";
  2178.         }
  2179.         // line 1558
  2180.         yield "
  2181.         ";
  2182.         // line 1560
  2183.         yield "        ";
  2184.         if ((null === CoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'1560$this->source); })()), "user", [], "any"falsefalsefalse1560))) {
  2185.             // line 1561
  2186.             yield "        <section class=\"wr-section\">
  2187.             <div class=\"wr-container\">
  2188.                 <div class=\"final-card\">
  2189.                     <h2 class=\"final-title\">";
  2190.             // line 1565
  2191.             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.'1565$this->source); })()), "final_title", [], "any"falsefalsefalse1565), "html"nulltrue);
  2192.             yield "</h2>
  2193.                     <div class=\"final-grid\">
  2194.                         ";
  2195.             // line 1569
  2196.             yield "                        <div class=\"final-sub\">
  2197.                             <div class=\"final-sub-head\">
  2198.                             <span class=\"final-sub-icon\">
  2199.                                 <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2200.                                     <rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  2201.                                     <path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"/>
  2202.                                 </svg>
  2203.                             </span>
  2204.                                 <span class=\"final-sub-label\">";
  2205.             // line 1577
  2206.             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.'1577$this->source); })()), "final_recruiter_label", [], "any"falsefalsefalse1577), "html"nulltrue);
  2207.             yield "</span>
  2208.                             </div>
  2209.                             <h3 class=\"final-sub-title\">";
  2210.             // line 1579
  2211.             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.'1579$this->source); })()), "final_recruiter_title", [], "any"falsefalsefalse1579), "html"nulltrue);
  2212.             yield "</h3>
  2213.                             <p class=\"final-sub-desc\">";
  2214.             // line 1580
  2215.             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.'1580$this->source); })()), "final_recruiter_desc", [], "any"falsefalsefalse1580), "html"nulltrue);
  2216.             yield "</p>
  2217.                             <a href=\"";
  2218.             // line 1581
  2219.             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.'1581$this->source); })()), "request", [], "any"falsefalsefalse1581), "locale", [], "any"falsefalsefalse1581)));
  2220.             yield "\" class=\"final-sub-btn\">
  2221.                                 ";
  2222.             // line 1582
  2223.             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.'1582$this->source); })()), "final_recruiter", [], "any"falsefalsefalse1582), "html"nulltrue);
  2224.             yield "
  2225.                                 <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>
  2226.                             </a>
  2227.                         </div>
  2228.                         ";
  2229.             // line 1588
  2230.             yield "                        <div class=\"final-sub\">
  2231.                             <div class=\"final-sub-head\">
  2232.                                 <span class=\"final-sub-icon\">
  2233.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2234.                                         <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  2235.                                         <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  2236.                                     </svg>
  2237.                                 </span>
  2238.                                 <span class=\"final-sub-label\">";
  2239.             // line 1596
  2240.             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.'1596$this->source); })()), "final_candidate_label", [], "any"falsefalsefalse1596), "html"nulltrue);
  2241.             yield "</span>
  2242.                             </div>
  2243.                             <h3 class=\"final-sub-title\">";
  2244.             // line 1598
  2245.             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.'1598$this->source); })()), "final_candidate_title", [], "any"falsefalsefalse1598), "html"nulltrue);
  2246.             yield "</h3>
  2247.                             <p class=\"final-sub-desc\">";
  2248.             // line 1599
  2249.             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.'1599$this->source); })()), "final_candidate_desc", [], "any"falsefalsefalse1599), "html"nulltrue);
  2250.             yield "</p>
  2251.                             <a href=\"";
  2252.             // line 1600
  2253.             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.'1600$this->source); })()), "request", [], "any"falsefalsefalse1600), "locale", [], "any"falsefalsefalse1600) == "en")) {
  2254.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("whileresume_homepage");
  2255.             } else {
  2256.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_whileresume_homepage", ["_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.'1600$this->source); })()), "request", [], "any"falsefalsefalse1600), "locale", [], "any"falsefalsefalse1600)]), "html"nulltrue);
  2257.             }
  2258.             yield "#register\" class=\"final-sub-btn\">
  2259.                                 ";
  2260.             // line 1601
  2261.             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.'1601$this->source); })()), "final_candidate", [], "any"falsefalsefalse1601), "html"nulltrue);
  2262.             yield "
  2263.                                 <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>
  2264.                             </a>
  2265.                         </div>
  2266.                     </div>
  2267.                 </div>
  2268.             </div>
  2269.         </section>
  2270.         ";
  2271.         }
  2272.         // line 1610
  2273.         yield "    </div>
  2274. ";
  2275.         
  2276.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  2277.         
  2278.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  2279.         yield from [];
  2280.     }
  2281.     // line 1613
  2282.     /**
  2283.      * @return iterable<null|scalar|\Stringable>
  2284.      */
  2285.     public function block_footer_js(array $context, array $blocks = []): iterable
  2286.     {
  2287.         $macros $this->macros;
  2288.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  2289.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""footer_js"));
  2290.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  2291.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""footer_js"));
  2292.         // line 1614
  2293.         yield "    ";
  2294.         yield from $this->yieldParentBlock("footer_js"$context$blocks);
  2295.         yield "
  2296.     <script>
  2297.         (function(){
  2298.             var search   = document.getElementById('wrHeroSearch');
  2299.             var input    = document.getElementById('wrHeroSearchInput');
  2300.             var clearBtn = document.getElementById('wrHeroSearchClear');
  2301.             var jobsBody = document.getElementById('wrHeroJobsBody');
  2302.             var countEl  = document.getElementById('wrHeroJobsCount');
  2303.             var linkEl   = document.getElementById('wrHeroJobsLink');
  2304.             if (!search || !input || !jobsBody) return;
  2305.             var searchUrl   = search.dataset.searchUrl;
  2306.             var jobsListUrl = search.dataset.jobsListUrl;
  2307.             // On garde l'état initial pour pouvoir le restaurer
  2308.             var defaultBodyHtml  = jobsBody.innerHTML;
  2309.             var defaultCountHtml = countEl ? countEl.innerHTML : '';
  2310.             var defaultLinkHref  = linkEl ? linkEl.getAttribute('href') : jobsListUrl;
  2311.             var debounceTimer = null;
  2312.             var currentRequest = null;
  2313.             var lastQuery = '';
  2314.             var T = {
  2315.                 loading:      '";
  2316.         // line 1638
  2317.         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.'1638$this->source); })()), "search_loading", [], "any"falsefalsefalse1638), "js"), "html"nulltrue);
  2318.         yield "',
  2319.                 empty:        '";
  2320.         // line 1639
  2321.         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.'1639$this->source); })()), "search_no_results", [], "any"falsefalsefalse1639), "js"), "html"nulltrue);
  2322.         yield "',
  2323.                 emptyHint:    '";
  2324.         // line 1640
  2325.         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.'1640$this->source); })()), "search_no_results_hint", [], "any"falsefalsefalse1640), "js"), "html"nulltrue);
  2326.         yield "',
  2327.                 count:        '";
  2328.         // line 1641
  2329.         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.'1641$this->source); })()), "search_results_count", [], "any"falsefalsefalse1641), "js"), "html"nulltrue);
  2330.         yield "',
  2331.                 viewAll:      '";
  2332.         // line 1642
  2333.         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.'1642$this->source); })()), "search_view_all", [], "any"falsefalsefalse1642), "js"), "html"nulltrue);
  2334.         yield "',
  2335.                 view:         '";
  2336.         // line 1643
  2337.         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.'1643$this->source); })()), "search_view_offer", [], "any"falsefalsefalse1643), "js"), "html"nulltrue);
  2338.         yield "'
  2339.             };
  2340.             function escHtml(s){
  2341.                 if (s == null) return '';
  2342.                 return String(s).replace(/[&<>\"']/g, function(c){
  2343.                     return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c];
  2344.                 });
  2345.             }
  2346.             function setHeaderCount(total){
  2347.                 if (!countEl) return;
  2348.                 countEl.innerHTML = '<strong>' + total + '</strong>' + escHtml(T.count);
  2349.             }
  2350.             function setHeaderLink(href){
  2351.                 if (!linkEl) return;
  2352.                 linkEl.setAttribute('href', href);
  2353.             }
  2354.             function setLoading(){
  2355.                 jobsBody.innerHTML =
  2356.                     '<div class=\"hero-jobs-loading\">' +
  2357.                     '<span class=\"hero-jobs-spinner\"></span>' +
  2358.                     '<span>' + escHtml(T.loading) + '</span>' +
  2359.                     '</div>';
  2360.             }
  2361.             function setEmpty(){
  2362.                 jobsBody.innerHTML =
  2363.                     '<div class=\"hero-jobs-empty\">' +
  2364.                     '<div class=\"hero-jobs-empty-icon\">' +
  2365.                     '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +
  2366.                     '<circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/>' +
  2367.                     '</svg>' +
  2368.                     '</div>' +
  2369.                     '<p class=\"hero-jobs-empty-title\">' + escHtml(T.empty) + '</p>' +
  2370.                     '<p class=\"hero-jobs-empty-hint\">' + escHtml(T.emptyHint) + '</p>' +
  2371.                     '</div>';
  2372.             }
  2373.             function restoreDefault(){
  2374.                 jobsBody.innerHTML = defaultBodyHtml;
  2375.                 if (countEl) countEl.innerHTML = defaultCountHtml;
  2376.                 if (linkEl) linkEl.setAttribute('href', defaultLinkHref);
  2377.             }
  2378.             function renderResults(payload, query){
  2379.                 var jobs  = (payload && payload.jobs)  || [];
  2380.                 var total = (payload && typeof payload.total === 'number') ? payload.total : jobs.length;
  2381.                 setHeaderCount(total);
  2382.                 setHeaderLink(jobsListUrl + '?q=' + encodeURIComponent(query));
  2383.                 if (!jobs.length){
  2384.                     setEmpty();
  2385.                     return;
  2386.                 }
  2387.                 var html = '';
  2388.                 jobs.slice(0, 6).forEach(function(j){
  2389.                     var title   = j.jobTitle || j.title || '';
  2390.                     var company = j.companyName || j.company || '';
  2391.                     var city    = j.city || '';
  2392.                     var country = j.country || '';
  2393.                     var et      = j.employmentType || '';
  2394.                     var img     = j.image || j.imageUrl || '';
  2395.                     var url     = j.url || (jobsListUrl + '?q=' + encodeURIComponent(query));
  2396.                     var initial = (company || title || '?').charAt(0).toUpperCase();
  2397.                     var location = city + (country ? ', ' + country : '');
  2398.                     var metaParts = [];
  2399.                     if (company)  metaParts.push('<span>' + escHtml(company) + '</span>');
  2400.                     if (location) metaParts.push('<span class=\"hero-default-job-meta-sep\"></span><span>' + escHtml(location) + '</span>');
  2401.                     if (et)       metaParts.push('<span class=\"hero-default-job-meta-sep\"></span><span>' + escHtml(et) + '</span>');
  2402.                     html +=
  2403.                         '<a href=\"' + escHtml(url) + '\" class=\"hero-default-job\">' +
  2404.                         '<div class=\"hero-default-job-logo\">' +
  2405.                         (img
  2406.                             ? '<img src=\"' + escHtml(img) + '\" alt=\"\">'
  2407.                             : escHtml(initial)) +
  2408.                         '</div>' +
  2409.                         '<div class=\"hero-default-job-info\">' +
  2410.                         '<h3 class=\"hero-default-job-title\">' + escHtml(title) + '</h3>' +
  2411.                         '<p class=\"hero-default-job-meta\">' + metaParts.join('') + '</p>' +
  2412.                         '</div>' +
  2413.                         '<span class=\"hero-default-job-arrow\">' +
  2414.                         '<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>' +
  2415.                         '</span>' +
  2416.                         '</a>';
  2417.                 });
  2418.                 jobsBody.innerHTML = html;
  2419.             }
  2420.             function doSearch(query){
  2421.                 if (currentRequest && currentRequest.abort) {
  2422.                     try { currentRequest.abort(); } catch(e){}
  2423.                 }
  2424.                 setLoading();
  2425.                 var url = searchUrl + (searchUrl.indexOf('?') > -1 ? '&' : '?') + 'q=' + encodeURIComponent(query);
  2426.                 var ctrl = (typeof AbortController !== 'undefined') ? new AbortController() : null;
  2427.                 currentRequest = ctrl;
  2428.                 fetch(url, { headers: { 'Accept': 'application/json' }, signal: ctrl ? ctrl.signal : undefined })
  2429.                     .then(function(r){ return r.ok ? r.json() : Promise.reject(r.status); })
  2430.                     .then(function(data){ renderResults(data, query); })
  2431.                     .catch(function(err){
  2432.                         if (err && err.name === 'AbortError') return;
  2433.                         setEmpty();
  2434.                     });
  2435.             }
  2436.             // Input live (debounce 280ms)
  2437.             input.addEventListener('input', function(){
  2438.                 var q = input.value.trim();
  2439.                 clearBtn.classList.toggle('is-visible', q.length > 0);
  2440.                 if (debounceTimer) clearTimeout(debounceTimer);
  2441.                 if (q.length < 2){
  2442.                     restoreDefault();
  2443.                     lastQuery = '';
  2444.                     return;
  2445.                 }
  2446.                 if (q === lastQuery) return;
  2447.                 debounceTimer = setTimeout(function(){
  2448.                     lastQuery = q;
  2449.                     doSearch(q);
  2450.                 }, 280);
  2451.             });
  2452.             // Enter → page de résultats complète
  2453.             input.addEventListener('keydown', function(e){
  2454.                 if (e.key === 'Enter'){
  2455.                     e.preventDefault();
  2456.                     var q = input.value.trim();
  2457.                     if (!q) return;
  2458.                     window.location.href = jobsListUrl + '?q=' + encodeURIComponent(q);
  2459.                 }
  2460.                 if (e.key === 'Escape'){
  2461.                     input.value = '';
  2462.                     clearBtn.classList.remove('is-visible');
  2463.                     restoreDefault();
  2464.                     lastQuery = '';
  2465.                     input.blur();
  2466.                 }
  2467.             });
  2468.             // Clear
  2469.             clearBtn.addEventListener('click', function(){
  2470.                 input.value = '';
  2471.                 clearBtn.classList.remove('is-visible');
  2472.                 restoreDefault();
  2473.                 lastQuery = '';
  2474.                 input.focus();
  2475.             });
  2476.             // Pills \"Populaire\" — au clic, on remplit l'input et on lance la recherche
  2477.             document.querySelectorAll('.hero-popular-pill').forEach(function(pill){
  2478.                 pill.addEventListener('click', function(){
  2479.                     var keyword = pill.dataset.keyword || pill.dataset.label || '';
  2480.                     if (!keyword) return;
  2481.                     // Visuel actif
  2482.                     document.querySelectorAll('.hero-popular-pill').forEach(function(p){ p.classList.remove('is-active'); });
  2483.                     pill.classList.add('is-active');
  2484.                     input.value = keyword;
  2485.                     clearBtn.classList.add('is-visible');
  2486.                     lastQuery = keyword;
  2487.                     doSearch(keyword);
  2488.                     input.focus();
  2489.                 });
  2490.             });
  2491.         })();
  2492.         /* ═══ Reveal au scroll (Intersection Observer) ═══ */
  2493.         (function(){
  2494.             var els = document.querySelectorAll('.reveal');
  2495.             if (!els.length) return;
  2496.             if (!('IntersectionObserver' in window)){
  2497.                 // Fallback : tout révéler
  2498.                 els.forEach(function(el){ el.classList.add('is-revealed'); });
  2499.                 return;
  2500.             }
  2501.             var io = new IntersectionObserver(function(entries){
  2502.                 entries.forEach(function(entry){
  2503.                     if (entry.isIntersecting){
  2504.                         entry.target.classList.add('is-revealed');
  2505.                         io.unobserve(entry.target);
  2506.                     }
  2507.                 });
  2508.             }, { threshold: 0.12, rootMargin: '0px 0px -60px 0px' });
  2509.             els.forEach(function(el){ io.observe(el); });
  2510.         })();
  2511.     </script>
  2512. ";
  2513.         
  2514.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  2515.         
  2516.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  2517.         yield from [];
  2518.     }
  2519.     /**
  2520.      * @codeCoverageIgnore
  2521.      */
  2522.     public function getTemplateName(): string
  2523.     {
  2524.         return "application/whileresume/website/candidates/homepage.html.twig";
  2525.     }
  2526.     /**
  2527.      * @codeCoverageIgnore
  2528.      */
  2529.     public function isTraitable(): bool
  2530.     {
  2531.         return false;
  2532.     }
  2533.     /**
  2534.      * @codeCoverageIgnore
  2535.      */
  2536.     public function getDebugInfo(): array
  2537.     {
  2538.         return array (  2481 => 1643,  2477 => 1642,  2473 => 1641,  2469 => 1640,  2465 => 1639,  2461 => 1638,  2433 => 1614,  2420 => 1613,  2408 => 1610,  2396 => 1601,  2388 => 1600,  2384 => 1599,  2380 => 1598,  2375 => 1596,  2365 => 1588,  2357 => 1582,  2353 => 1581,  2349 => 1580,  2345 => 1579,  2340 => 1577,  2330 => 1569,  2324 => 1565,  2318 => 1561,  2315 => 1560,  2312 => 1558,  2302 => 1551,  2294 => 1550,  2289 => 1547,  2275 => 1539,  2271 => 1537,  2266 => 1535,  2263 => 1534,  2260 => 1533,  2255 => 1531,  2252 => 1530,  2250 => 1529,  2246 => 1528,  2241 => 1526,  2230 => 1518,  2227 => 1517,  2224 => 1516,  2221 => 1515,  2218 => 1514,  2215 => 1513,  2212 => 1512,  2209 => 1511,  2206 => 1510,  2203 => 1509,  2200 => 1508,  2197 => 1507,  2194 => 1506,  2191 => 1505,  2188 => 1504,  2184 => 1503,  2177 => 1499,  2172 => 1496,  2169 => 1495,  2156 => 1484,  2152 => 1483,  2145 => 1479,  2137 => 1474,  2133 => 1473,  2121 => 1464,  2117 => 1463,  2108 => 1456,  2095 => 1445,  2091 => 1444,  2086 => 1442,  2080 => 1439,  2076 => 1438,  2071 => 1436,  2067 => 1435,  2061 => 1432,  2057 => 1430,  2048 => 1423,  2044 => 1422,  2039 => 1420,  2033 => 1417,  2029 => 1416,  2024 => 1414,  2020 => 1413,  2014 => 1410,  2010 => 1408,  2007 => 1406,  2002 => 1403,  1993 => 1399,  1989 => 1398,  1981 => 1393,  1967 => 1388,  1963 => 1387,  1953 => 1380,  1947 => 1377,  1939 => 1372,  1933 => 1370,  1931 => 1369,  1926 => 1367,  1922 => 1366,  1915 => 1362,  1911 => 1360,  1905 => 1358,  1903 => 1357,  1890 => 1353,  1886 => 1352,  1881 => 1350,  1873 => 1345,  1867 => 1342,  1859 => 1337,  1855 => 1335,  1846 => 1333,  1842 => 1332,  1838 => 1331,  1833 => 1330,  1831 => 1329,  1829 => 1328,  1821 => 1323,  1814 => 1319,  1807 => 1315,  1800 => 1311,  1796 => 1310,  1791 => 1308,  1784 => 1303,  1782 => 1302,  1780 => 1301,  1771 => 1295,  1767 => 1294,  1762 => 1292,  1756 => 1289,  1752 => 1288,  1747 => 1286,  1743 => 1285,  1737 => 1282,  1733 => 1280,  1724 => 1273,  1720 => 1272,  1715 => 1270,  1709 => 1267,  1705 => 1266,  1700 => 1264,  1696 => 1263,  1690 => 1260,  1686 => 1258,  1681 => 1254,  1672 => 1247,  1668 => 1246,  1663 => 1244,  1655 => 1239,  1651 => 1238,  1646 => 1236,  1638 => 1231,  1634 => 1230,  1629 => 1228,  1620 => 1222,  1615 => 1219,  1610 => 1215,  1603 => 1211,  1592 => 1207,  1587 => 1205,  1580 => 1200,  1577 => 1199,  1572 => 1195,  1569 => 1194,  1563 => 1193,  1560 => 1192,  1554 => 1191,  1551 => 1190,  1549 => 1189,  1541 => 1183,  1536 => 1181,  1533 => 1180,  1530 => 1179,  1521 => 1177,  1518 => 1176,  1515 => 1175,  1509 => 1174,  1504 => 1172,  1500 => 1170,  1494 => 1168,  1488 => 1166,  1486 => 1165,  1476 => 1163,  1473 => 1162,  1468 => 1161,  1465 => 1160,  1460 => 1159,  1458 => 1158,  1447 => 1150,  1439 => 1149,  1432 => 1147,  1426 => 1143,  1423 => 1142,  1417 => 1141,  1412 => 1140,  1407 => 1139,  1404 => 1138,  1401 => 1137,  1398 => 1136,  1386 => 1126,  1382 => 1125,  1377 => 1123,  1362 => 1115,  1354 => 1114,  1350 => 1112,  1347 => 1110,  1343 => 1108,  1333 => 1105,  1327 => 1104,  1323 => 1103,  1319 => 1102,  1315 => 1100,  1311 => 1099,  1307 => 1098,  1304 => 1097,  1301 => 1096,  1295 => 1092,  1291 => 1091,  1287 => 1090,  1283 => 1089,  1279 => 1088,  1270 => 1084,  1264 => 1083,  1257 => 1079,  1251 => 1075,  1247 => 1072,  1234 => 1071,  191 => 39,  178 => 38,  155 => 36,  132 => 35,  109 => 34,  86 => 33,  75 => 1,  69 => 29,  65 => 28,  63 => 27,  61 => 4,  59 => 3,  46 => 1,);
  2539.     }
  2540.     public function getSourceContext(): Source
  2541.     {
  2542.         return new Source("{% extends 'application/whileresume/website/layout-social.html.twig' %}
  2543. {% set isFR = app.request.locale == 'fr' %}
  2544. {% set _keys = [
  2545.     'hero_eyebrow','hero_title_pre','hero_title_accent','hero_title_post','hero_title_accent2','hero_title_2',
  2546.     'hero_lede_pre','hero_lede_brand','hero_lede_mid','hero_lede_word','hero_lede_post',
  2547.     'hero_cta_signup','hero_cta_login',
  2548.     'hero_search_placeholder','hero_popular_label','hero_btn_ios','hero_btn_android',
  2549.     'hero_default_title','hero_search_button','hero_byline_jobs','hero_byline_apps','hero_byline_free','hero_kbd_enter',
  2550.     'search_loading','search_no_results','search_no_results_hint','search_results_count','search_view_all','search_view_offer','search_clear',
  2551.     'how_eyebrow','how_title','how_lede',
  2552.     'how1_title','how1_desc','how2_title','how2_desc','how3_title','how3_desc',
  2553.     'feat1_label','feat1_title','feat1_p1','feat1_p2','feat1_quote','feat1_author','feat1_role',
  2554.     'feat2_label','feat2_title','feat2_p1','feat2_p2','feat2_quote','feat2_author','feat2_role',
  2555.     'feat3_label','feat3_title','feat3_p1','feat3_p2','feat3_quote','feat3_author','feat3_role',
  2556.     'feat4_label','feat4_title','feat4_p1','feat4_p2','feat4_quote','feat4_author','feat4_role',
  2557.     'signup_eyebrow','signup_title','signup_lede','signup_email_ph','signup_pass_ph','signup_pass2_ph',
  2558.     'signup_terms_pre','signup_terms_link','signup_btn','signup_login_pre','signup_login_link',
  2559.     'signup_perk1','signup_perk2','signup_perk3',
  2560.     'apps_eyebrow','apps_title','apps_lede','apps_ios','apps_android','apps_web','apps_ios_desc','apps_android_desc','apps_web_desc',
  2561.     'articles_title','articles_view_all','read_article',
  2562.     'final_eyebrow','final_title',
  2563.     'final_recruiter_label','final_recruiter_title','final_recruiter_desc',
  2564.     'final_candidate_label','final_candidate_title','final_candidate_desc',
  2565.     'final_candidate','final_recruiter'
  2566. ] %}
  2567. {% set t = {} %}
  2568. {% for k in _keys %}
  2569.     {% set t = t|merge({(k): ('homepage.' ~ k)|trans({}, 'whr-public')}) %}
  2570. {% endfor %}
  2571. {% block title %}{{ page.shortTitle }}{% endblock %}
  2572. {% block description %}{{ page.shortDescription }}{% endblock %}
  2573. {% block robots %}{{ page.robots }}{% endblock %}
  2574. {% block canonical %}{% include \"/vitrine/lexend/components/languages/canonical_classic.html.twig\" %}{% endblock %}
  2575. {% block css %}
  2576.     {{ parent() }}
  2577.     <style>
  2578.         :root{
  2579.             --wr-bg:#FBFCFE;
  2580.             --wr-bg-2:#F4F6FB;
  2581.             --wr-card:#FFFFFF;
  2582.             --wr-violet:#8A63C1;
  2583.             --wr-violet-2:#A98AD3;
  2584.             --wr-violet-soft:#F2EDFA;
  2585.             --wr-violet-softer:#F8F4FD;
  2586.             --wr-violet-dark:#6B47A6;
  2587.             --wr-ink:#1E1B2E;
  2588.             --wr-ink-2:#374151;
  2589.             --wr-muted:#6B7280;
  2590.             --wr-muted-2:#9CA3AF;
  2591.             --wr-line:#EEF1F7;
  2592.             --wr-line-2:#E5E9F0;
  2593.             --wr-shadow:0 1px 2px rgba(30,27,46,.04),0 4px 16px rgba(30,27,46,.04);
  2594.             --wr-shadow-hover:0 4px 8px rgba(138,99,192,.08),0 12px 32px rgba(138,99,192,.1);
  2595.             /* Accents colorés pour les logos d'offres (lettres) */
  2596.             --wr-acc-yellow:#FEF3C7;  --wr-acc-yellow-fg:#B45309;
  2597.             --wr-acc-green:#D1FAE5;   --wr-acc-green-fg:#047857;
  2598.             --wr-acc-pink:#FCE7F3;    --wr-acc-pink-fg:#BE185D;
  2599.             --wr-acc-blue:#DBEAFE;    --wr-acc-blue-fg:#1E40AF;
  2600.             --wr-acc-orange:#FED7AA;  --wr-acc-orange-fg:#C2410C;
  2601.             --wr-acc-violet:#EDE9FE;  --wr-acc-violet-fg:#6D28D9;
  2602.             --wr-acc-cyan:#CFFAFE;    --wr-acc-cyan-fg:#0E7490;
  2603.         }
  2604.         /* ═══════════════════════════════════════════════════════════════════
  2605.            PLEINE LARGEUR — On retire la réservation d'espace de la sidebar droite
  2606.            ═══════════════════════════════════════════════════════════════════ */
  2607.         body .main-content.right-chat-active{padding-right:0!important}
  2608.         body .main-content{padding-right:0!important}
  2609.         body .right-chat{display:none!important}
  2610.         body .middle-sidebar-bottom .middle-sidebar-left{padding-right:0!important;max-width:none!important;width:100%!important}
  2611.         body .middle-sidebar-bottom{max-width:none!important}
  2612.         .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}
  2613.         @media(max-width:991px){.wr{margin:0 -15px}}
  2614.         .wr *{box-sizing:border-box}
  2615.         .wr a{color:inherit;text-decoration:none}
  2616.         /* ═══════════════════════════════════════════════════════════════════
  2617.            SECTIONS GENERIC — Fond UNIFIÉ partout (pas d'alternance)
  2618.            ═══════════════════════════════════════════════════════════════════ */
  2619.         .wr-section{padding:80px 32px;background:var(--wr-bg);position:relative}
  2620.         .wr-section--tight{padding:48px 32px}
  2621.         @media(max-width:768px){.wr-section{padding:56px 20px}.wr-section--tight{padding:36px 20px}}
  2622.         /* Filet décoratif au lieu d'un changement de couleur */
  2623.         .wr-section + .wr-section::before{
  2624.             content:\"\";
  2625.             position:absolute;top:0;left:50%;transform:translateX(-50%);
  2626.             width:80px;height:1px;
  2627.             background:linear-gradient(90deg,transparent,var(--wr-line-2),transparent);
  2628.         }
  2629.         .wr-container{max-width:1200px;margin:0 auto;position:relative}
  2630.         /* ═══ Eyebrow ═══ */
  2631.         .wr-eyebrow{
  2632.             display:inline-flex;align-items:center;gap:8px;
  2633.             padding:6px 14px;border-radius:100px;
  2634.             background:var(--wr-violet-soft);
  2635.             color:var(--wr-violet-dark);
  2636.             font-size:11.5px;font-weight:600;
  2637.             text-transform:uppercase;letter-spacing:.12em;
  2638.             margin-bottom:22px;
  2639.         }
  2640.         .wr-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--wr-violet);animation:wrPulse 2.4s ease-in-out infinite}
  2641.         @keyframes wrPulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}
  2642.         /* ═══ Titres ═══ */
  2643.         .wr-title{
  2644.             font-family:inherit;
  2645.             font-weight:700;
  2646.             font-size:28px;line-height:1.15;letter-spacing:-0.025em;
  2647.             color:var(--wr-ink);
  2648.             margin:0 auto 16px;
  2649.             max-width:1200px;
  2650.         }
  2651.         @media(min-width:768px){.wr-title{font-size:34px}}
  2652.         @media(min-width:1024px){.wr-title{font-size:40px}}
  2653.         .wr-title--sm{font-size:24px}
  2654.         @media(min-width:768px){.wr-title--sm{font-size:30px}}
  2655.         .wr-title em{font-style:normal;font-weight:700;color:var(--wr-violet)}
  2656.         .wr-lede{
  2657.             font-size:17px;line-height:1.55;font-weight:400;
  2658.             color:var(--wr-ink-2);
  2659.             margin:0 auto;max-width:680px;
  2660.         }
  2661.         .wr-section-head{text-align:center;margin-bottom:56px}
  2662.         /* ═══════════════════════════════════════════════════════════════════
  2663.            HERO — Style soft, recherche dashboard, boutons pleins
  2664.            ═══════════════════════════════════════════════════════════════════ */
  2665.         @keyframes wrFadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
  2666.         @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)}}
  2667.         /* ═══ Reveal au scroll (Intersection Observer ajoute .is-revealed) ═══ */
  2668.         .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
  2669.         .reveal.is-revealed{opacity:1;transform:translateY(0)}
  2670.         .reveal--left{transform:translateX(-32px) translateY(0)}
  2671.         .reveal--left.is-revealed{transform:translateX(0)}
  2672.         .reveal--right{transform:translateX(32px) translateY(0)}
  2673.         .reveal--right.is-revealed{transform:translateX(0)}
  2674.         .reveal--scale{transform:scale(.96);opacity:0}
  2675.         .reveal--scale.is-revealed{transform:scale(1);opacity:1}
  2676.         .reveal[data-reveal-delay=\"1\"]{transition-delay:.08s}
  2677.         .reveal[data-reveal-delay=\"2\"]{transition-delay:.16s}
  2678.         .reveal[data-reveal-delay=\"3\"]{transition-delay:.24s}
  2679.         .reveal[data-reveal-delay=\"4\"]{transition-delay:.32s}
  2680.         @media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important}}
  2681.         .hero{
  2682.             position:relative;
  2683.             background:var(--wr-bg);
  2684.             padding:24px 32px 0;
  2685.             overflow:hidden;
  2686.         }
  2687.         @media(max-width:768px){.hero{padding:18px 18px 0}}
  2688.         /* Décor : 2 blobs très flous violet pâle */
  2689.         .hero::before{
  2690.             content:\"\";position:absolute;
  2691.             top:-260px;right:-180px;width:560px;height:560px;
  2692.             background:radial-gradient(circle,rgba(138,99,192,.14) 0%,transparent 65%);
  2693.             pointer-events:none;filter:blur(50px);
  2694.         }
  2695.         .hero::after{
  2696.             content:\"\";position:absolute;
  2697.             top:120px;left:-180px;width:480px;height:480px;
  2698.             background:radial-gradient(circle,rgba(138,99,192,.09) 0%,transparent 65%);
  2699.             pointer-events:none;filter:blur(50px);
  2700.         }
  2701.         .hero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;text-align:center}
  2702.         /* ═══ Eyebrow ═══ */
  2703.         .hero-badge{
  2704.             display:inline-flex;align-items:center;gap:8px;
  2705.             padding:7px 16px;border-radius:100px;
  2706.             background:var(--wr-violet-soft);
  2707.             color:var(--wr-violet-dark);
  2708.             font-size:12px;font-weight:600;
  2709.             text-transform:uppercase;letter-spacing:.1em;
  2710.             margin-bottom:10px;
  2711.             opacity:0;transform:translateY(8px);
  2712.             animation:wrFadeUp .8s ease forwards;
  2713.         }
  2714.         .hero-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--wr-violet);animation:wrPulse2 2s ease infinite}
  2715.         /* ═══ Titre — 57px desktop, plein largeur conteneur ═══ */
  2716.         .hero-title{
  2717.             font-weight:700;
  2718.             font-size:24px;line-height:1.05;letter-spacing:-0.04em;
  2719.             color:var(--wr-ink);
  2720.             margin:0 auto 12px;
  2721.             width:100%;max-width:1200px;
  2722.             opacity:0;transform:translateY(12px);
  2723.             animation:wrFadeUp .9s cubic-bezier(.2,.7,.2,1) .15s forwards;
  2724.         }
  2725.         @media(min-width:768px){.hero-title{font-size:40px;letter-spacing:-0.045em}}
  2726.         @media(min-width:1100px){.hero-title{font-size:57px;letter-spacing:-0.045em}}
  2727.         .hero-title-accent{
  2728.             color:var(--wr-violet);
  2729.         }
  2730.         .hero-lede{
  2731.             font-size:15px;line-height:1.5;color:var(--wr-ink-2);font-weight:400;
  2732.             margin:0 auto 16px;max-width:680px;
  2733.             opacity:0;animation:wrFadeUp .9s ease .4s forwards;
  2734.         }
  2735.         @media(min-width:768px){.hero-lede{font-size:17px}}
  2736.         .hero-lede-accent{color:var(--wr-violet);font-weight:600}
  2737.         /* ═══ Recherche — pleine largeur (alignée sur la liste 1200px) ═══ */
  2738.         .hero-search-wrap{
  2739.             max-width:1200px;margin:0 auto 12px;
  2740.             opacity:0;animation:wrFadeUp .9s ease .55s forwards;
  2741.             position:relative;z-index:5;
  2742.         }
  2743.         .hero-search{
  2744.             background:var(--wr-card);
  2745.             border-radius:14px;
  2746.             box-shadow:0 0 20px 0 rgba(0,0,0,0.05),0 16px 40px rgba(138,99,192,.06);
  2747.             padding:10px;
  2748.             position:relative;
  2749.         }
  2750.         .hero-search-inner{
  2751.             display:flex;align-items:center;gap:10px;
  2752.             padding:10px 14px;border-radius:10px;
  2753.             background:#F9FAFB;border:1px solid #E5E7EB;
  2754.             transition:border-color .2s,background .2s;
  2755.         }
  2756.         .hero-search-inner:focus-within{
  2757.             border-color:rgba(138,99,192,.4);
  2758.             background:#fff;
  2759.         }
  2760.         .hero-search-icon{color:var(--wr-muted-2);display:flex;flex-shrink:0}
  2761.         .hero-search-icon svg{width:16px;height:16px}
  2762.         .hero-search-input{
  2763.             flex:1;border:0;outline:0;background:transparent;
  2764.             font-size:14.5px;font-family:inherit;color:var(--wr-ink);
  2765.             padding:6px 0;min-width:0;
  2766.         }
  2767.         .hero-search-input::placeholder{color:var(--wr-muted-2)}
  2768.         .hero-search-clear{
  2769.             background:none;border:0;color:var(--wr-muted-2);cursor:pointer;
  2770.             padding:4px;display:none;font-family:inherit;
  2771.             border-radius:6px;transition:background .15s,color .15s;
  2772.         }
  2773.         .hero-search-clear:hover{background:var(--wr-violet-soft);color:var(--wr-violet)}
  2774.         .hero-search-clear.is-visible{display:flex;align-items:center}
  2775.         .hero-search-clear svg{width:14px;height:14px}
  2776.         .hero-search-kbd{
  2777.             display:none;align-items:center;
  2778.             padding:3px 8px;background:#fff;border:1px solid #E5E7EB;border-radius:6px;
  2779.             font-size:10.5px;font-weight:600;color:var(--wr-muted);
  2780.             font-family:inherit;letter-spacing:.02em;white-space:nowrap;flex-shrink:0;
  2781.         }
  2782.         .hero-search-inner:focus-within .hero-search-kbd{display:inline-flex}
  2783.         /* ═══ États de la liste de jobs (header, empty, loading) ═══ */
  2784.         .hero-jobs-header{
  2785.             display:flex;align-items:center;justify-content:space-between;gap:10px;
  2786.             padding:14px 22px 10px;
  2787.             border-bottom:1px solid var(--wr-line);
  2788.             margin-bottom:4px;
  2789.         }
  2790.         @media(max-width:540px){.hero-jobs-header{padding:12px 16px 8px}}
  2791.         .hero-jobs-count{
  2792.             font-size:11.5px;color:var(--wr-muted);
  2793.             text-transform:uppercase;letter-spacing:.08em;font-weight:600;
  2794.         }
  2795.         .hero-jobs-count strong{color:var(--wr-violet);font-weight:800;font-size:13px;margin-right:4px}
  2796.         .hero-jobs-link{
  2797.             font-size:11px;font-weight:700;
  2798.             color:var(--wr-violet);
  2799.             text-transform:uppercase;letter-spacing:.08em;
  2800.             text-decoration:none;
  2801.             display:inline-flex;align-items:center;gap:5px;
  2802.             transition:color .15s,transform .15s;
  2803.         }
  2804.         .hero-jobs-link:hover{color:var(--wr-violet-dark);text-decoration:none;transform:translateX(2px)}
  2805.         .hero-jobs-link svg{width:11px;height:11px}
  2806.         .hero-jobs-empty{text-align:center;padding:48px 20px;color:var(--wr-muted)}
  2807.         .hero-jobs-empty-icon{width:48px;height:48px;border-radius:14px;background:var(--wr-violet-soft);color:var(--wr-violet);display:inline-flex;align-items:center;justify-content:center;margin-bottom:14px}
  2808.         .hero-jobs-empty-icon svg{width:22px;height:22px}
  2809.         .hero-jobs-empty-title{font-weight:600;font-size:14px;color:var(--wr-ink);margin:0 0 4px}
  2810.         .hero-jobs-empty-hint{font-size:13px;margin:0;color:var(--wr-muted)}
  2811.         .hero-jobs-loading{text-align:center;padding:36px 20px;color:var(--wr-muted);font-size:13px;display:flex;align-items:center;justify-content:center;gap:10px}
  2812.         .hero-jobs-spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--wr-violet-soft);border-top-color:var(--wr-violet);animation:wrSpin .7s linear infinite}
  2813.         @keyframes wrSpin{to{transform:rotate(360deg)}}
  2814.         /* ═══ Pills \"Populaire\" sous la recherche ═══ */
  2815.         .hero-popular{
  2816.             display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;
  2817.             margin-bottom:18px;
  2818.             opacity:0;animation:wrFadeUp .9s ease .7s forwards;
  2819.         }
  2820.         .hero-popular-label{
  2821.             font-size:11px;font-weight:600;color:var(--wr-muted);
  2822.             text-transform:uppercase;letter-spacing:.06em;
  2823.             margin-right:4px;
  2824.         }
  2825.         .hero-popular-pill{
  2826.             display:inline-flex;align-items:center;gap:5px;
  2827.             padding:6px 12px;border-radius:100px;
  2828.             background:var(--wr-violet-soft);
  2829.             color:var(--wr-violet);
  2830.             font-size:12.5px;font-weight:500;font-family:inherit;
  2831.             text-decoration:none;cursor:pointer;
  2832.             border:1px solid transparent;
  2833.             transition:background .15s,border-color .15s,transform .15s,color .15s;
  2834.         }
  2835.         .hero-popular-pill:hover{
  2836.             background:#EDE9FE;
  2837.             border-color:rgba(138,99,192,.2);
  2838.             transform:translateY(-1px);
  2839.             color:var(--wr-violet);
  2840.             text-decoration:none;
  2841.         }
  2842.         .hero-popular-pill.is-active{
  2843.             background:var(--wr-violet);color:#fff;border-color:var(--wr-violet);
  2844.         }
  2845.         .hero-popular-pill.is-active:hover{background:var(--wr-violet-dark);color:#fff}
  2846.         .hero-popular-pill-icon{font-size:13px;line-height:1}
  2847.         /* ═══ CTA hero (boutons inscription + connexion pour anonymes) ═══ */
  2848.         .hero-cta{
  2849.             display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  2850.             margin:24px 0 8px;
  2851.             opacity:0;animation:wrFadeUp .9s ease 1.1s forwards;
  2852.         }
  2853.         .hero-cta-btn,
  2854.         .hero-cta-btn:link,
  2855.         .hero-cta-btn:visited,
  2856.         .hero-cta-btn:hover,
  2857.         .hero-cta-btn:focus,
  2858.         .hero-cta-btn:active{
  2859.             color:#fff !important;
  2860.             text-decoration:none !important;
  2861.         }
  2862.         .hero-cta-btn{
  2863.             display:inline-flex;align-items:center;gap:8px;
  2864.             padding:11px 20px;border-radius:11px;
  2865.             font-size:13.5px;font-weight:700;font-family:inherit;
  2866.             line-height:1;
  2867.             background:var(--wr-violet);border:1px solid var(--wr-violet);
  2868.             box-shadow:0 4px 14px rgba(138,99,193,.32);
  2869.             transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;
  2870.         }
  2871.         .hero-cta-btn:hover{
  2872.             background:var(--wr-violet-dark);border-color:var(--wr-violet-dark);
  2873.             transform:translateY(-2px);
  2874.             box-shadow:0 6px 20px rgba(138,99,193,.4);
  2875.         }
  2876.         .hero-cta-btn svg{width:15px;height:15px;flex-shrink:0;stroke:#fff !important;color:#fff !important}
  2877.         .hero-cta-btn span{color:#fff !important}
  2878.         @media(max-width:540px){.hero-cta{flex-direction:column;align-items:stretch}.hero-cta-btn{justify-content:center}}
  2879.         /* ═══ Boutons stores — VIOLET PLEIN BLANC ═══ */
  2880.         .hero-stores{
  2881.             display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  2882.             margin-bottom:48px;
  2883.             opacity:0;animation:wrFadeUp .9s ease .85s forwards;
  2884.         }
  2885.         .hero-store-btn{
  2886.             display:inline-flex;align-items:center;gap:10px;
  2887.             padding:13px 24px;border-radius:12px;
  2888.             background:var(--wr-violet);
  2889.             border:0;
  2890.             color:#fff;
  2891.             font-size:14px;font-weight:600;
  2892.             text-decoration:none;
  2893.             transition:background .15s,transform .15s,box-shadow .15s;
  2894.             box-shadow:0 4px 12px rgba(138,99,192,.3);
  2895.         }
  2896.         .hero-store-btn:hover{
  2897.             background:var(--wr-violet-dark);
  2898.             color:#fff;
  2899.             transform:translateY(-2px);
  2900.             box-shadow:0 8px 22px rgba(138,99,192,.4);
  2901.             text-decoration:none;
  2902.         }
  2903.         .hero-store-btn-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px}
  2904.         .hero-store-btn-icon svg{width:18px;height:18px}
  2905.         @media(max-width:540px){.hero-stores{flex-direction:column;align-items:stretch;gap:10px}.hero-store-btn{justify-content:center}}
  2906.         /* ═══════════════════════════════════════════════════════════════════
  2907.            LISTE PAR DÉFAUT SOUS LE HERO (offres récentes)
  2908.            ═══════════════════════════════════════════════════════════════════ */
  2909.         .hero-default-jobs{
  2910.             position:relative;z-index:2;
  2911.             max-width:1200px;margin:0 auto;
  2912.             background:var(--wr-card);
  2913.             border:1px solid var(--wr-line);
  2914.             border-radius:18px;
  2915.             padding:8px 0;
  2916.             box-shadow:var(--wr-shadow);
  2917.             opacity:0;animation:wrFadeUp .9s ease 1s forwards;
  2918.             text-align:left;
  2919.         }
  2920.         .hero-default-job{
  2921.             display:flex;align-items:center;gap:16px;
  2922.             padding:14px 22px;
  2923.             text-decoration:none;color:inherit;
  2924.             border-bottom:1px solid var(--wr-line);
  2925.             transition:background .15s;
  2926.         }
  2927.         .hero-default-job:last-child{border-bottom:0}
  2928.         .hero-default-job:hover{background:var(--wr-violet-softer);text-decoration:none;color:inherit}
  2929.         .hero-default-job-logo{
  2930.             width:42px;height:42px;border-radius:11px;flex-shrink:0;
  2931.             display:flex;align-items:center;justify-content:center;
  2932.             font-weight:700;font-size:16px;overflow:hidden;
  2933.         }
  2934.         .hero-default-job-logo img{width:100%;height:100%;object-fit:cover}
  2935.         /* 7 variantes de couleurs cyclées par index */
  2936.         .hero-default-job:nth-child(7n+1) .hero-default-job-logo{background:var(--wr-acc-yellow);color:var(--wr-acc-yellow-fg)}
  2937.         .hero-default-job:nth-child(7n+2) .hero-default-job-logo{background:var(--wr-acc-green);color:var(--wr-acc-green-fg)}
  2938.         .hero-default-job:nth-child(7n+3) .hero-default-job-logo{background:var(--wr-acc-pink);color:var(--wr-acc-pink-fg)}
  2939.         .hero-default-job:nth-child(7n+4) .hero-default-job-logo{background:var(--wr-acc-blue);color:var(--wr-acc-blue-fg)}
  2940.         .hero-default-job:nth-child(7n+5) .hero-default-job-logo{background:var(--wr-acc-orange);color:var(--wr-acc-orange-fg)}
  2941.         .hero-default-job:nth-child(7n+6) .hero-default-job-logo{background:var(--wr-acc-violet);color:var(--wr-acc-violet-fg)}
  2942.         .hero-default-job:nth-child(7n+7) .hero-default-job-logo{background:var(--wr-acc-cyan);color:var(--wr-acc-cyan-fg)}
  2943.         .hero-default-job-info{flex:1;min-width:0}
  2944.         .hero-default-job-title{
  2945.             font-weight:600;font-size:14.5px;color:var(--wr-ink);
  2946.             margin:0 0 2px;line-height:1.3;
  2947.             white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  2948.         }
  2949.         .hero-default-job-meta{
  2950.             font-size:12.5px;color:var(--wr-muted);margin:0;
  2951.             white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  2952.             display:flex;align-items:center;gap:8px;
  2953.         }
  2954.         .hero-default-job-meta-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--wr-muted-2);flex-shrink:0}
  2955.         .hero-default-job-arrow{flex-shrink:0;color:var(--wr-muted-2);transition:color .15s,transform .15s}
  2956.         .hero-default-job-arrow svg{width:15px;height:15px}
  2957.         .hero-default-job:hover .hero-default-job-arrow{color:var(--wr-violet);transform:translateX(3px)}
  2958.         @media(max-width:768px){
  2959.             .hero-default-jobs{margin:0 -18px;border-radius:14px}
  2960.             .hero-default-job{padding:12px 16px;gap:12px}
  2961.             .hero-default-job-logo{width:36px;height:36px;font-size:13px}
  2962.             .hero-default-job-title{font-size:13.5px}
  2963.             .hero-default-job-meta{font-size:11.5px;gap:6px;flex-wrap:wrap;white-space:normal}
  2964.         }
  2965.         /* ═══════════════════════════════════════════════════════════════════
  2966.            SECTION : 3 PARCOURS
  2967.            ═══════════════════════════════════════════════════════════════════ */
  2968.         .paths-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  2969.         @media(max-width:991px){.paths-grid{grid-template-columns:1fr;gap:14px}}
  2970.         .path-card{
  2971.             position:relative;
  2972.             background:var(--wr-card);
  2973.             border:1px solid var(--wr-line);
  2974.             border-radius:20px;padding:28px;
  2975.             display:flex;flex-direction:column;
  2976.             transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  2977.             box-shadow:var(--wr-shadow);
  2978.         }
  2979.         .path-card:hover{transform:translateY(-4px);box-shadow:var(--wr-shadow-hover);border-color:var(--wr-violet-2)}
  2980.         .path-card-illu{
  2981.             width:64px;height:64px;border-radius:16px;
  2982.             background:var(--wr-violet-soft);color:var(--wr-violet);
  2983.             display:flex;align-items:center;justify-content:center;
  2984.             margin-bottom:22px;
  2985.         }
  2986.         .path-card-illu svg{width:30px;height:30px}
  2987.         .path-card-label{
  2988.             display:inline-block;
  2989.             font-size:11px;font-weight:600;
  2990.             color:var(--wr-violet-dark);text-transform:uppercase;letter-spacing:.1em;
  2991.             margin-bottom:10px;align-self:flex-start;
  2992.         }
  2993.         .path-card-title{
  2994.             font-weight:500;font-size:22px;line-height:1.25;letter-spacing:-0.015em;
  2995.             color:var(--wr-ink);margin:0 0 10px;
  2996.         }
  2997.         .path-card-desc{
  2998.             font-size:14px;line-height:1.6;color:var(--wr-muted);
  2999.             margin:0 0 22px;flex:1;
  3000.         }
  3001.         .path-card-cta{
  3002.             display:inline-flex;align-items:center;justify-content:center;gap:6px;
  3003.             background:var(--wr-violet);color:#fff;
  3004.             padding:12px 18px;border-radius:11px;
  3005.             font-size:13px;font-weight:600;
  3006.             align-self:stretch;
  3007.             transition:background .15s,transform .15s,box-shadow .15s;
  3008.             box-shadow:0 2px 8px rgba(138,99,192,.2);
  3009.         }
  3010.         .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)}
  3011.         .path-card-cta svg{width:13px;height:13px;transition:transform .15s}
  3012.         .path-card-cta:hover svg{transform:translateX(3px)}
  3013.         /* ═══════════════════════════════════════════════════════════════════
  3014.            COMMENT ÇA MARCHE — Card crème englobante avec 3 sous-cards
  3015.            ═══════════════════════════════════════════════════════════════════ */
  3016.         .how-card{
  3017.             background:#F4ECE1;
  3018.             border-radius:24px;
  3019.             padding:32px 24px;
  3020.             display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  3021.             position:relative;
  3022.         }
  3023.         @media(max-width:991px){.how-card{grid-template-columns:1fr;gap:8px;padding:24px 16px}}
  3024.         @media(min-width:992px){
  3025.             /* Séparateurs verticaux entre les 3 cellules */
  3026.             .how-card .how-step + .how-step{border-left:1px solid rgba(28,25,22,.08)}
  3027.         }
  3028.         .how-step{
  3029.             display:flex;flex-direction:column;align-items:center;text-align:center;
  3030.             padding:16px 20px;
  3031.             gap:16px;
  3032.         }
  3033.         .how-step-illu{
  3034.             width:100%;max-width:280px;aspect-ratio:1/1;
  3035.             border-radius:16px;
  3036.             background:rgba(255,255,255,.5);
  3037.             display:flex;align-items:center;justify-content:center;
  3038.             margin-bottom:4px;
  3039.             overflow:hidden;
  3040.         }
  3041.         .how-step-illu img{width:100%;height:100%;object-fit:contain;display:block}
  3042.         .how-step-illu svg{width:55%;height:55%;opacity:.85}
  3043.         .how-step-title{
  3044.             font-weight:700;font-size:18px;line-height:1.3;letter-spacing:-0.01em;
  3045.             color:var(--wr-ink);margin:0;
  3046.         }
  3047.         @media(min-width:992px){.how-step-title{font-size:20px}}
  3048.         .how-step-desc{
  3049.             font-size:14px;line-height:1.55;color:var(--wr-ink-2);
  3050.             margin:0;max-width:320px;
  3051.         }
  3052.         /* ═══════════════════════════════════════════════════════════════════
  3053.            FEATURES 01-04 — Splits alternés image/texte avec témoignages
  3054.            ═══════════════════════════════════════════════════════════════════ */
  3055.         .feat-block{
  3056.             display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;
  3057.             margin-bottom:64px;
  3058.         }
  3059.         .feat-block:last-child{margin-bottom:0}
  3060.         @media(max-width:991px){
  3061.             .feat-block{grid-template-columns:1fr;gap:24px;margin-bottom:48px}
  3062.         }
  3063.         /* Alterner : 01 illu droite, 02 illu gauche, 03 illu droite, 04 illu gauche */
  3064.         .feat-block:nth-child(odd) .feat-illu{order:2}
  3065.         .feat-block:nth-child(odd) .feat-content{order:1}
  3066.         .feat-block:nth-child(even) .feat-illu{order:1}
  3067.         .feat-block:nth-child(even) .feat-content{order:2}
  3068.         @media(max-width:991px){
  3069.             .feat-block .feat-illu{order:1}
  3070.             .feat-block .feat-content{order:2}
  3071.         }
  3072.         .feat-illu{
  3073.             background:#F5EDE3;
  3074.             border-radius:20px;
  3075.             aspect-ratio:1/1;
  3076.             display:flex;align-items:center;justify-content:center;
  3077.             color:var(--wr-violet);
  3078.             overflow:hidden;
  3079.             position:relative;
  3080.         }
  3081.         .feat-illu img{width:100%;height:100%;object-fit:contain;display:block}
  3082.         .feat-illu svg{width:50%;height:50%;opacity:.85}
  3083.         .feat-content{display:flex;flex-direction:column;gap:18px}
  3084.         .feat-label{
  3085.             font-size:30px;font-weight:800;
  3086.             color:var(--wr-ink);
  3087.             letter-spacing:-0.02em;
  3088.             margin:0;line-height:1;
  3089.         }
  3090.         .feat-title{
  3091.             font-weight:700;font-size:24px;line-height:1.2;letter-spacing:-0.02em;
  3092.             color:var(--wr-ink);margin:0;
  3093.         }
  3094.         @media(min-width:768px){.feat-title{font-size:28px}}
  3095.         @media(min-width:1100px){.feat-title{font-size:30px}}
  3096.         .feat-desc{
  3097.             display:flex;flex-direction:column;gap:14px;
  3098.         }
  3099.         .feat-desc p{
  3100.             font-size:15px;line-height:1.6;color:var(--wr-ink-2);
  3101.             margin:0;opacity:.85;
  3102.         }
  3103.         @media(min-width:1100px){.feat-desc p{font-size:16px}}
  3104.         .feat-desc strong{color:var(--wr-ink);font-weight:700;opacity:1}
  3105.         .feat-quote{
  3106.             background:var(--wr-card);
  3107.             border:1px solid var(--wr-line);
  3108.             border-radius:14px;
  3109.             padding:18px 20px;
  3110.             display:flex;flex-direction:column;gap:10px;
  3111.             margin-top:8px;
  3112.         }
  3113.         .feat-quote-text{
  3114.             font-size:14px;line-height:1.55;color:var(--wr-ink-2);
  3115.             margin:0;font-style:italic;
  3116.         }
  3117.         .feat-quote-author{
  3118.             display:flex;flex-direction:column;
  3119.         }
  3120.         .feat-quote-name{font-size:13px;font-weight:700;color:var(--wr-ink);margin:0}
  3121.         .feat-quote-role{font-size:12px;color:var(--wr-muted);margin:0}
  3122.         /* ═══════════════════════════════════════════════════════════════════
  3123.            MATCH
  3124.            ═══════════════════════════════════════════════════════════════════ */
  3125.         .match-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
  3126.         @media(max-width:991px){.match-grid{grid-template-columns:1fr;gap:40px}}
  3127.         .match-text .wr-title{margin-left:0;text-align:left}
  3128.         .match-text .wr-lede{margin-left:0;text-align:left}
  3129.         .match-text .wr-eyebrow{margin-bottom:20px}
  3130.         .match-features{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px}
  3131.         @media(max-width:540px){.match-features{grid-template-columns:1fr}}
  3132.         .match-feature{
  3133.             background:var(--wr-card);border:1px solid var(--wr-line);
  3134.             border-radius:14px;padding:18px;
  3135.             transition:transform .15s,border-color .15s,box-shadow .15s;
  3136.         }
  3137.         .match-feature:hover{transform:translateY(-2px);border-color:var(--wr-violet-soft);box-shadow:var(--wr-shadow)}
  3138.         .match-feature-icon{
  3139.             width:34px;height:34px;border-radius:10px;
  3140.             background:var(--wr-violet-soft);color:var(--wr-violet);
  3141.             display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px;
  3142.         }
  3143.         .match-feature-icon svg{width:16px;height:16px}
  3144.         .match-feature-title{font-weight:600;font-size:14px;line-height:1.3;color:var(--wr-ink);margin:0 0 5px}
  3145.         .match-feature-desc{font-size:12.5px;line-height:1.5;color:var(--wr-muted);margin:0}
  3146.         .match-visual{position:relative;display:flex;justify-content:center;align-items:center;padding:40px 0}
  3147.         .match-stack{position:relative;width:100%;max-width:340px;height:340px}
  3148.         .match-stack-card{
  3149.             position:absolute;
  3150.             background:var(--wr-card);border:1px solid var(--wr-line);
  3151.             border-radius:16px;padding:14px;
  3152.             display:flex;align-items:center;gap:12px;
  3153.             box-shadow:var(--wr-shadow);width:100%;
  3154.             transition:transform .3s ease,box-shadow .3s ease;
  3155.             cursor:pointer;
  3156.         }
  3157.         .match-stack-card:hover{
  3158.             transform:translateY(-4px) rotate(0deg)!important;
  3159.             box-shadow:0 20px 50px rgba(138,99,192,.22)!important;
  3160.             z-index:10!important;
  3161.         }
  3162.         .match-stack-card:nth-child(1){top:0;transform:rotate(-6deg) translateX(-10px);z-index:1;animation:wrFloat1 6s ease-in-out infinite}
  3163.         .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:wrFloat2 6s ease-in-out -2s infinite}
  3164.         .match-stack-card:nth-child(3){top:156px;transform:rotate(-3deg) translateX(8px);z-index:2;animation:wrFloat3 6s ease-in-out -4s infinite}
  3165.         .match-stack-card:nth-child(4){top:234px;left:20px;transform:rotate(4deg);z-index:1;animation:wrFloat4 6s ease-in-out -1s infinite}
  3166.         @keyframes wrFloat1{0%,100%{transform:rotate(-6deg) translate(-10px,0)}50%{transform:rotate(-6deg) translate(-10px,-8px)}}
  3167.         @keyframes wrFloat2{0%,100%{transform:rotate(2deg) translate(0,0)}50%{transform:rotate(2deg) translate(0,-6px)}}
  3168.         @keyframes wrFloat3{0%,100%{transform:rotate(-3deg) translate(8px,0)}50%{transform:rotate(-3deg) translate(8px,-7px)}}
  3169.         @keyframes wrFloat4{0%,100%{transform:rotate(4deg) translate(0,0)}50%{transform:rotate(4deg) translate(0,-5px)}}
  3170.         .match-stack-logo{
  3171.             width:38px;height:38px;border-radius:10px;
  3172.             background:var(--wr-violet-soft);color:var(--wr-violet);
  3173.             display:flex;align-items:center;justify-content:center;
  3174.             font-weight:700;font-size:14px;flex-shrink:0;
  3175.         }
  3176.         .match-stack-info{flex:1;min-width:0}
  3177.         .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}
  3178.         .match-stack-meta{font-size:11px;color:var(--wr-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  3179.         .match-stack-heart{
  3180.             width:28px;height:28px;border-radius:50%;
  3181.             background:#FEE2E2;color:#EF4444;
  3182.             display:flex;align-items:center;justify-content:center;flex-shrink:0;
  3183.             animation:wrHeartbeat 1.6s ease-in-out infinite;
  3184.         }
  3185.         .match-stack-card:nth-child(1) .match-stack-heart{animation-delay:0s}
  3186.         .match-stack-card:nth-child(2) .match-stack-heart{animation-delay:.4s}
  3187.         .match-stack-card:nth-child(3) .match-stack-heart{animation-delay:.8s}
  3188.         .match-stack-card:nth-child(4) .match-stack-heart{animation-delay:1.2s}
  3189.         .match-stack-heart svg{width:13px;height:13px;fill:currentColor}
  3190.         @keyframes wrHeartbeat{
  3191.             0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(239,68,68,.4)}
  3192.             10%{transform:scale(1.18);box-shadow:0 0 0 0 rgba(239,68,68,.4)}
  3193.             20%{transform:scale(1)}
  3194.             30%{transform:scale(1.12)}
  3195.             40%{transform:scale(1);box-shadow:0 0 0 10px rgba(239,68,68,0)}
  3196.             100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}
  3197.         }
  3198.         /* ═══════════════════════════════════════════════════════════════════
  3199.            SIGNUP FORM (entre feat 02 et 03)
  3200.            ═══════════════════════════════════════════════════════════════════ */
  3201.         .signup-card{
  3202.             position:relative;
  3203.             max-width:980px;margin:64px auto;
  3204.             background:linear-gradient(135deg, #FFFFFF 0%, #FAF7FF 100%);
  3205.             border:1px solid var(--wr-line);
  3206.             border-radius:32px;
  3207.             padding:48px 40px;
  3208.             box-shadow:0 4px 12px rgba(30,27,46,.04), 0 24px 64px rgba(138,99,192,.1);
  3209.             overflow:hidden;
  3210.         }
  3211.         @media(max-width:768px){.signup-card{padding:32px 22px;border-radius:24px;margin:48px auto}}
  3212.         /* Décor : 2 blobs violet pâle dans les coins */
  3213.         .signup-card::before{
  3214.             content:\"\";position:absolute;
  3215.             top:-120px;right:-120px;width:340px;height:340px;
  3216.             background:radial-gradient(circle,rgba(138,99,192,.12) 0%,transparent 65%);
  3217.             pointer-events:none;filter:blur(40px);
  3218.         }
  3219.         .signup-card::after{
  3220.             content:\"\";position:absolute;
  3221.             bottom:-100px;left:-80px;width:280px;height:280px;
  3222.             background:radial-gradient(circle,rgba(138,99,192,.08) 0%,transparent 65%);
  3223.             pointer-events:none;filter:blur(40px);
  3224.         }
  3225.         .signup-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:center}
  3226.         @media(max-width:880px){.signup-inner{grid-template-columns:1fr;gap:28px}}
  3227.         .signup-text{display:flex;flex-direction:column;gap:14px}
  3228.         .signup-eyebrow{
  3229.             display:inline-flex;align-items:center;gap:8px;
  3230.             padding:7px 14px;border-radius:100px;
  3231.             background:var(--wr-violet-soft);color:var(--wr-violet-dark);
  3232.             font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  3233.             align-self:flex-start;
  3234.         }
  3235.         .signup-title{
  3236.             font-weight:700;font-size:28px;line-height:1.15;letter-spacing:-0.02em;
  3237.             color:var(--wr-ink);margin:0;
  3238.         }
  3239.         @media(min-width:768px){.signup-title{font-size:34px}}
  3240.         .signup-lede{font-size:15px;line-height:1.55;color:var(--wr-ink-2);margin:0;opacity:.85}
  3241.         .signup-perks{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
  3242.         .signup-perk{
  3243.             display:inline-flex;align-items:center;gap:6px;
  3244.             padding:6px 12px;border-radius:100px;
  3245.             background:var(--wr-card);border:1px solid var(--wr-line-2);
  3246.             font-size:12px;font-weight:600;color:var(--wr-ink-2);
  3247.         }
  3248.         .signup-perk svg{width:13px;height:13px;color:#10B981;stroke-width:3;flex-shrink:0}
  3249.         .signup-form{
  3250.             background:var(--wr-card);
  3251.             border:1px solid var(--wr-line);
  3252.             border-radius:20px;
  3253.             padding:24px;
  3254.             display:flex;flex-direction:column;gap:12px;
  3255.             box-shadow:0 1px 2px rgba(30,27,46,.03);
  3256.         }
  3257.         .signup-form-error{
  3258.             background:#FEF2F2;border:1px solid #FECACA;
  3259.             color:#991B1B;
  3260.             border-radius:12px;
  3261.             padding:10px 14px;
  3262.             font-size:13px;line-height:1.45;
  3263.             margin:0;
  3264.         }
  3265.         .signup-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  3266.         @media(max-width:540px){.signup-row{grid-template-columns:1fr}}
  3267.         .signup-field{display:flex;flex-direction:column;gap:0}
  3268.         .signup-card .signup-form input[type=\"email\"],
  3269.         .signup-card .signup-form input[type=\"password\"],
  3270.         .signup-card .signup-form input[type=\"text\"]{
  3271.             width:100%;
  3272.             padding:13px 14px;
  3273.             border:1px solid var(--wr-line-2);border-radius:11px;
  3274.             background:#FAFBFD;
  3275.             font-size:14px;font-family:inherit;color:var(--wr-ink);
  3276.             outline:none;
  3277.             transition:border-color .15s,background .15s,box-shadow .15s;
  3278.             box-sizing:border-box;
  3279.         }
  3280.         .signup-card .signup-form input[type=\"email\"]:focus,
  3281.         .signup-card .signup-form input[type=\"password\"]:focus,
  3282.         .signup-card .signup-form input[type=\"text\"]:focus{
  3283.             border-color:var(--wr-violet);background:#fff;
  3284.             box-shadow:0 0 0 3px rgba(138,99,192,.12);
  3285.         }
  3286.         .signup-card .signup-form input::placeholder{color:var(--wr-muted-2)}
  3287.         .signup-terms{
  3288.             display:flex;align-items:flex-start;gap:10px;
  3289.             font-size:12.5px;line-height:1.45;color:var(--wr-muted);
  3290.             margin:4px 0 0;
  3291.         }
  3292.         .signup-card .signup-form input[type=\"checkbox\"]{
  3293.             width:16px;height:16px;flex-shrink:0;margin-top:2px;accent-color:var(--wr-violet);cursor:pointer;
  3294.         }
  3295.         .signup-terms a{color:var(--wr-violet);font-weight:600;text-decoration:underline}
  3296.         .signup-terms a:hover{color:var(--wr-violet-dark)}
  3297.         .signup-recaptcha{margin:4px 0 0}
  3298.         .signup-recaptcha > div{max-width:100%}
  3299.         .signup-submit{
  3300.             width:100%;
  3301.             padding:14px 22px;border-radius:12px;
  3302.             background:var(--wr-violet);color:#fff;border:0;
  3303.             font-size:14.5px;font-weight:700;font-family:inherit;
  3304.             cursor:pointer;
  3305.             display:inline-flex;align-items:center;justify-content:center;gap:8px;
  3306.             box-shadow:0 4px 14px rgba(138,99,192,.32);
  3307.             transition:background .15s,transform .15s,box-shadow .15s;
  3308.             margin-top:6px;
  3309.         }
  3310.         .signup-submit:hover{background:var(--wr-violet-dark);transform:translateY(-1px);box-shadow:0 6px 20px rgba(138,99,192,.4)}
  3311.         .signup-submit svg{width:14px;height:14px;transition:transform .15s}
  3312.         .signup-submit:hover svg{transform:translateX(3px)}
  3313.         .signup-login{
  3314.             text-align:center;font-size:13px;color:var(--wr-muted);margin:6px 0 0;
  3315.         }
  3316.         .signup-login a{color:var(--wr-violet);font-weight:600;text-decoration:none}
  3317.         .signup-login a:hover{color:var(--wr-violet-dark);text-decoration:underline}
  3318.         /* ═══════════════════════════════════════════════════════════════════
  3319.            APPS
  3320.            ═══════════════════════════════════════════════════════════════════ */
  3321.         .apps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  3322.         @media(max-width:768px){.apps-grid{grid-template-columns:1fr}}
  3323.         .app-card{
  3324.             background:var(--wr-card);border:1px solid var(--wr-line);
  3325.             border-radius:18px;padding:24px;
  3326.             display:flex;flex-direction:column;align-items:flex-start;
  3327.             transition:transform .2s,border-color .2s,box-shadow .2s;
  3328.         }
  3329.         .app-card:hover{transform:translateY(-3px);border-color:var(--wr-violet-2);box-shadow:var(--wr-shadow-hover);color:inherit;text-decoration:none}
  3330.         .app-card-icon{
  3331.             width:48px;height:48px;border-radius:14px;
  3332.             background:var(--wr-violet-soft);color:var(--wr-violet);
  3333.             display:inline-flex;align-items:center;justify-content:center;
  3334.             margin-bottom:18px;
  3335.         }
  3336.         .app-card-icon svg{width:22px;height:22px}
  3337.         .app-card-name{font-weight:500;font-size:18px;letter-spacing:-0.01em;color:var(--wr-ink);margin:0 0 6px}
  3338.         .app-card-desc{font-size:13px;line-height:1.5;color:var(--wr-muted);margin:0 0 16px;flex:1}
  3339.         .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}
  3340.         .app-card-cta svg{width:11px;height:11px;transition:transform .15s}
  3341.         .app-card:hover .app-card-cta svg{transform:translateX(3px)}
  3342.         /* ═══════════════════════════════════════════════════════════════════
  3343.            KEYWORDS
  3344.            ═══════════════════════════════════════════════════════════════════ */
  3345.         .keywords-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:1200px;margin:0 auto}
  3346.         .keyword-pill{
  3347.             display:inline-flex;align-items:center;gap:8px;
  3348.             padding:9px 16px;border-radius:100px;
  3349.             background:var(--wr-card);border:1px solid var(--wr-line-2);
  3350.             color:var(--wr-ink-2);
  3351.             font-size:13.5px;font-weight:500;
  3352.             transition:transform .15s,border-color .15s,background .15s,color .15s,box-shadow .15s;
  3353.         }
  3354.         .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)}
  3355.         .keyword-pill-icon{font-size:14px;line-height:1}
  3356.         /* ═══════════════════════════════════════════════════════════════════
  3357.            OFFRES POPULAIRES
  3358.            ═══════════════════════════════════════════════════════════════════ */
  3359.         .listings-block{margin-bottom:32px}
  3360.         .listings-block:last-child{margin-bottom:0}
  3361.         .listings-block-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}
  3362.         .listings-block-title{
  3363.             display:inline-flex;align-items:center;gap:10px;
  3364.             font-weight:500;font-size:18px;letter-spacing:-0.005em;
  3365.             color:var(--wr-ink);margin:0;
  3366.         }
  3367.         .listings-block-icon{font-size:20px;line-height:1}
  3368.         .listings-block-link{
  3369.             display:inline-flex;align-items:center;gap:4px;
  3370.             padding:6px 12px;border-radius:100px;
  3371.             font-size:12px;font-weight:600;
  3372.             color:var(--wr-violet);
  3373.             text-transform:uppercase;letter-spacing:.06em;
  3374.             border:1px solid var(--wr-violet-soft);
  3375.             background:var(--wr-card);
  3376.             transition:background .15s,border-color .15s,transform .15s;
  3377.         }
  3378.         .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)}
  3379.         .listings-block-link svg{width:11px;height:11px}
  3380.         .listings-jobs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  3381.         @media(max-width:768px){.listings-jobs{grid-template-columns:1fr}}
  3382.         .listing-job{
  3383.             display:flex;align-items:center;gap:14px;
  3384.             background:var(--wr-card);border:1px solid var(--wr-line);
  3385.             border-radius:14px;padding:12px;
  3386.             transition:transform .15s,border-color .15s,box-shadow .15s;
  3387.         }
  3388.         .listing-job:hover{transform:translateY(-2px);border-color:var(--wr-violet-soft);box-shadow:var(--wr-shadow);color:inherit;text-decoration:none}
  3389.         .listing-job-logo{
  3390.             width:42px;height:42px;border-radius:11px;flex-shrink:0;
  3391.             background:var(--wr-violet-soft);color:var(--wr-violet);
  3392.             display:flex;align-items:center;justify-content:center;
  3393.             font-weight:700;font-size:14px;overflow:hidden;
  3394.         }
  3395.         .listing-job-logo img{width:100%;height:100%;object-fit:cover}
  3396.         .listing-job-info{flex:1;min-width:0}
  3397.         .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}
  3398.         .listing-job-meta{font-size:11.5px;color:var(--wr-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  3399.         .listing-job-arrow{flex-shrink:0;color:var(--wr-muted-2);transition:color .15s,transform .15s}
  3400.         .listing-job-arrow svg{width:14px;height:14px}
  3401.         .listing-job:hover .listing-job-arrow{color:var(--wr-violet);transform:translateX(2px)}
  3402.         /* ═══════════════════════════════════════════════════════════════════
  3403.            ARTICLES — Liste sans miniatures (style identique aux jobs-card)
  3404.            ═══════════════════════════════════════════════════════════════════ */
  3405.         .articles-list{display:flex;flex-direction:column;gap:10px;max-width:1200px;margin:0 auto}
  3406.         .wr-article{
  3407.             background:var(--wr-card);border-radius:14px;padding:14px;
  3408.             box-shadow:0 0 16px 0 rgba(0,0,0,0.04);
  3409.             display:flex;align-items:center;gap:14px;
  3410.             text-decoration:none;color:inherit;
  3411.             transition:transform .15s,box-shadow .2s;
  3412.         }
  3413.         .wr-article:hover{
  3414.             transform:translateY(-1px);
  3415.             box-shadow:0 4px 20px rgba(138,99,192,.1);
  3416.             color:inherit;text-decoration:none;
  3417.         }
  3418.         .wr-article-logo{
  3419.             width:50px;height:50px;border-radius:12px;flex-shrink:0;
  3420.             background:linear-gradient(135deg,#EDE9FE,#DDD6FE);
  3421.             display:flex;align-items:center;justify-content:center;
  3422.             color:var(--wr-violet);overflow:hidden;
  3423.         }
  3424.         .wr-article-logo svg{width:24px;height:24px;opacity:.9}
  3425.         .wr-article-info{flex:1;min-width:0}
  3426.         .wr-article-title{
  3427.             font-size:14px;font-weight:700;color:var(--wr-ink);
  3428.             line-height:1.3;margin:0 0 4px;
  3429.             white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  3430.         }
  3431.         .wr-article-meta{
  3432.             font-size:12px;color:var(--wr-muted);
  3433.             white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  3434.             display:flex;align-items:center;gap:8px;margin:0;
  3435.         }
  3436.         .wr-article-meta-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:#D1D5DB;flex-shrink:0}
  3437.         .wr-article-badge{
  3438.             font-size:11px;font-weight:600;
  3439.             color:var(--wr-violet);background:var(--wr-violet-soft);
  3440.             padding:3px 9px;border-radius:100px;
  3441.             white-space:nowrap;flex-shrink:0;
  3442.             text-transform:uppercase;letter-spacing:.04em;
  3443.         }
  3444.         .wr-article-arrow{flex-shrink:0;color:var(--wr-muted-2);transition:color .15s,transform .15s}
  3445.         .wr-article:hover .wr-article-arrow{color:var(--wr-violet);transform:translateX(2px)}
  3446.         .wr-article-arrow svg{width:18px;height:18px}
  3447.         @media(max-width:540px){
  3448.             .wr-article{padding:12px;gap:10px}
  3449.             .wr-article-logo{width:42px;height:42px}
  3450.             .wr-article-logo svg{width:20px;height:20px}
  3451.             .wr-article-title{font-size:13px}
  3452.             .wr-article-meta{font-size:11px;gap:6px;flex-wrap:wrap;white-space:normal}
  3453.             .wr-article-badge{display:none}
  3454.         }
  3455.         .articles-cta{text-align:center;margin-top:36px}
  3456.         .articles-cta a{
  3457.             display:inline-flex;align-items:center;gap:8px;
  3458.             padding:12px 22px;border-radius:11px;
  3459.             background:var(--wr-violet);color:#fff;
  3460.             font-size:13px;font-weight:600;
  3461.             text-decoration:none;
  3462.             box-shadow:0 4px 12px rgba(138,99,192,.3);
  3463.             transition:background .15s,transform .15s,box-shadow .15s;
  3464.         }
  3465.         .articles-cta a:hover{background:var(--wr-violet-dark);transform:translateY(-2px);box-shadow:0 6px 18px rgba(138,99,192,.4);text-decoration:none;color:#fff}
  3466.         .articles-cta svg{width:12px;height:12px;transition:transform .15s}
  3467.         .articles-cta a:hover svg{transform:translateX(3px)}
  3468.         /* ═══════════════════════════════════════════════════════════════════
  3469.            CTA FINAL — Card violet plein avec eyebrow + 2 sous-cards
  3470.            ═══════════════════════════════════════════════════════════════════ */
  3471.         .final-card{
  3472.             position:relative;
  3473.             background:linear-gradient(135deg,#8A63C0 0%,#9D7BCC 100%);
  3474.             border-radius:28px;
  3475.             padding:48px 40px;
  3476.             color:#fff;overflow:hidden;
  3477.             box-shadow:0 20px 60px -12px rgba(138,99,192,.4);
  3478.         }
  3479.         @media(max-width:768px){.final-card{padding:32px 22px;border-radius:22px}}
  3480.         .final-eyebrow{
  3481.             display:inline-flex;align-items:center;gap:8px;
  3482.             padding:8px 18px;border-radius:100px;
  3483.             background:rgba(255,255,255,.2);
  3484.             color:#fff;
  3485.             font-size:12px;font-weight:700;
  3486.             text-transform:uppercase;letter-spacing:.12em;
  3487.             margin-bottom:20px;
  3488.             backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  3489.         }
  3490.         .final-eyebrow svg{width:13px;height:13px;fill:currentColor}
  3491.         .final-title{
  3492.             font-weight:800;font-size:28px;line-height:1.15;letter-spacing:-0.02em;
  3493.             color:#fff;margin:0 0 36px;
  3494.             max-width:780px;
  3495.         }
  3496.         @media(min-width:768px){.final-title{font-size:38px}}
  3497.         /* Grille 2 sous-cards */
  3498.         .final-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  3499.         @media(max-width:768px){.final-grid{grid-template-columns:1fr;gap:14px}}
  3500.         .final-sub{
  3501.             background:#fff;
  3502.             border-radius:18px;
  3503.             padding:28px;
  3504.             display:flex;flex-direction:column;
  3505.         }
  3506.         @media(max-width:768px){.final-sub{padding:22px}}
  3507.         .final-sub-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}
  3508.         .final-sub-icon{
  3509.             width:44px;height:44px;border-radius:11px;
  3510.             background:var(--wr-violet-soft);color:var(--wr-violet);
  3511.             display:flex;align-items:center;justify-content:center;flex-shrink:0;
  3512.         }
  3513.         .final-sub-icon svg{width:22px;height:22px}
  3514.         .final-sub-label{
  3515.             font-size:12.5px;font-weight:700;
  3516.             color:var(--wr-violet);
  3517.             text-transform:uppercase;letter-spacing:.1em;
  3518.         }
  3519.         .final-sub-title{
  3520.             font-weight:800;font-size:18px;line-height:1.3;letter-spacing:-0.01em;
  3521.             color:var(--wr-ink);margin:0 0 10px;
  3522.         }
  3523.         .final-sub-desc{
  3524.             font-size:14px;line-height:1.55;color:var(--wr-muted);
  3525.             margin:0 0 24px;flex:1;
  3526.         }
  3527.         .final-sub-btn{
  3528.             display:flex;align-items:center;justify-content:center;gap:8px;
  3529.             background:var(--wr-violet);color:#fff;
  3530.             padding:14px 18px;border-radius:11px;
  3531.             font-size:14px;font-weight:700;
  3532.             text-decoration:none;
  3533.             transition:background .15s,transform .15s,box-shadow .15s;
  3534.             box-shadow:0 4px 12px rgba(138,99,192,.3);
  3535.         }
  3536.         .final-sub-btn:hover{
  3537.             background:var(--wr-violet-dark);color:#fff;
  3538.             transform:translateY(-2px);
  3539.             box-shadow:0 6px 18px rgba(138,99,192,.4);
  3540.             text-decoration:none;
  3541.         }
  3542.         .final-sub-btn svg{width:14px;height:14px;transition:transform .15s}
  3543.         .final-sub-btn:hover svg{transform:translateX(3px)}
  3544.     </style>
  3545. {% endblock css %}
  3546. {% block body %}
  3547.     <div class=\"wr\">
  3548.         {# ═══════════════ HERO ═══════════════ #}
  3549.         <section class=\"hero\">
  3550.             <div class=\"hero-inner\">
  3551.             <span class=\"hero-badge\">
  3552.                 <span class=\"hero-badge-dot\"></span>
  3553.                 {{ t.hero_eyebrow }}
  3554.             </span>
  3555.                 <h1 class=\"hero-title\">
  3556.                     <span class=\"hero-title-accent\">{{ t.hero_title_accent }}</span> {{ t.hero_title_post }}<br>
  3557.                     <span class=\"hero-title-accent\">{{ t.hero_title_accent2 }}</span> {{ t.hero_title_2 }}
  3558.                 </h1>
  3559.                 <p class=\"hero-lede\">
  3560.                     {{ t.hero_lede_pre }}
  3561.                     <span class=\"hero-lede-accent\">{{ t.hero_lede_brand }}</span>
  3562.                     {{ t.hero_lede_mid }}
  3563.                     <span class=\"hero-lede-accent\">{{ t.hero_lede_word }}</span>
  3564.                     {{ t.hero_lede_post }}
  3565.                 </p>
  3566.                 {# Pills \"Populaire\" — AU-DESSUS de la recherche, cliquer remplit l'input #}
  3567.                 {% if popularKeywords is defined and popularKeywords|length > 0 %}
  3568.                     <div class=\"hero-popular\">
  3569.                         <span class=\"hero-popular-label\">{{ t.hero_popular_label }}</span>
  3570.                         {% for kw in popularKeywords|slice(0, 5) %}
  3571.                             <button type=\"button\"
  3572.                                     class=\"hero-popular-pill\"
  3573.                                     data-keyword=\"{{ kw.keyword }}\"
  3574.                                     data-label=\"{{ kw.label }}\">
  3575.                                 {% if kw.icon %}<span class=\"hero-popular-pill-icon\">{{ kw.icon|raw }}</span>{% endif %}
  3576.                                 <span>{{ kw.label }}</span>
  3577.                             </button>
  3578.                         {% endfor %}
  3579.                     </div>
  3580.                 {% endif %}
  3581.                 {# Recherche inline AJAX — style dashboard jobs #}
  3582.                 <div class=\"hero-search-wrap\">
  3583.                     <div class=\"hero-search\" id=\"wrHeroSearch\"
  3584.                          data-search-url=\"{% if isFR %}{{ path('locale_api_jobs_search',{'_locale':'fr'}) }}{% else %}{{ path('api_jobs_search') }}{% endif %}\"
  3585.                          data-jobs-list-url=\"{% if isFR %}{{ path('locale_whileresume_jobs_list',{'_locale':'fr'}) }}{% else %}{{ path('whileresume_jobs_list') }}{% endif %}\">
  3586.                         <div class=\"hero-search-inner\">
  3587.                         <span class=\"hero-search-icon\">
  3588.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3589.                                 <circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"M21 21l-4.35-4.35\"/>
  3590.                             </svg>
  3591.                         </span>
  3592.                             <input type=\"text\" name=\"q\" id=\"wrHeroSearchInput\" class=\"hero-search-input\"
  3593.                                    placeholder=\"{{ t.hero_search_placeholder }}\"
  3594.                                    autocomplete=\"off\" />
  3595.                             <span class=\"hero-search-kbd\">↵ {{ isFR ? 'Entrée' : 'Enter' }}</span>
  3596.                             <button type=\"button\" class=\"hero-search-clear\" id=\"wrHeroSearchClear\" aria-label=\"{{ t.search_clear }}\">
  3597.                                 <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3598.                                     <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/>
  3599.                                 </svg>
  3600.                             </button>
  3601.                         </div>
  3602.                     </div>
  3603.                 </div>
  3604.                 {# Liste de jobs — par défaut popularJobs, remplacée par les résultats AJAX #}
  3605.                 {% set _heroCount = 0 %}
  3606.                 {% set _heroTotal = 0 %}
  3607.                 {% if popularJobs is defined %}
  3608.                     {% for block in popularJobs %}
  3609.                         {% if block.jobs is defined %}{% set _heroTotal = _heroTotal + block.jobs|length %}{% endif %}
  3610.                     {% endfor %}
  3611.                 {% endif %}
  3612.                 <div class=\"hero-default-jobs\" id=\"wrHeroJobsList\">
  3613.                     <div class=\"hero-jobs-header\" id=\"wrHeroJobsHeader\">
  3614.                     <span class=\"hero-jobs-count\" id=\"wrHeroJobsCount\">
  3615.                         <strong>{{ _heroTotal ?: (totalJobs ?? '') }}</strong>{{ t.search_results_count }}
  3616.                     </span>
  3617.                         <a href=\"{% if isFR %}{{ path('locale_whileresume_jobs_list',{'_locale':'fr'}) }}{% else %}{{ path('whileresume_jobs_list') }}{% endif %}\" class=\"hero-jobs-link\" id=\"wrHeroJobsLink\">
  3618.                             {{ t.search_view_all }}
  3619.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3620.                                 <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/>
  3621.                             </svg>
  3622.                         </a>
  3623.                     </div>
  3624.                     <div id=\"wrHeroJobsBody\">
  3625.                         {% if popularJobs is defined and popularJobs|length > 0 %}
  3626.                             {% for block in popularJobs %}
  3627.                                 {% if block.jobs is defined and block.jobs|length > 0 %}
  3628.                                     {% for j in block.jobs %}
  3629.                                         {% if _heroCount < 6 %}
  3630.                                             <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=\"hero-default-job\">
  3631.                                                 <div class=\"hero-default-job-logo\">
  3632.                                                     {% if j.image and j.image.name %}
  3633.                                                         <img src=\"{{ vich_uploader_asset(j, 'imageFile') }}\" alt=\"\">
  3634.                                                     {% else %}
  3635.                                                         {{ j.companyName|default('?')|slice(0,1)|upper }}
  3636.                                                     {% endif %}
  3637.                                                 </div>
  3638.                                                 <div class=\"hero-default-job-info\">
  3639.                                                     <h3 class=\"hero-default-job-title\">{{ j.jobTitle }}</h3>
  3640.                                                     <p class=\"hero-default-job-meta\">
  3641.                                                         {% if j.companyName %}<span>{{ j.companyName }}</span>{% endif %}
  3642.                                                         {% if j.city %}
  3643.                                                             <span class=\"hero-default-job-meta-sep\"></span>
  3644.                                                             <span>{{ j.city }}{% if j.country %}, {{ j.country }}{% endif %}</span>
  3645.                                                         {% endif %}
  3646.                                                         {% if j.employmentType %}
  3647.                                                             <span class=\"hero-default-job-meta-sep\"></span>
  3648.                                                             <span>{{ j.employmentType }}</span>
  3649.                                                         {% endif %}
  3650.                                                     </p>
  3651.                                                 </div>
  3652.                                                 <span class=\"hero-default-job-arrow\">
  3653.                                                 <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>
  3654.                                             </span>
  3655.                                             </a>
  3656.                                             {% set _heroCount = _heroCount + 1 %}
  3657.                                         {% endif %}
  3658.                                     {% endfor %}
  3659.                                 {% endif %}
  3660.                             {% endfor %}
  3661.                         {% endif %}
  3662.                     </div>
  3663.                 </div>
  3664.                 {# CTA pour utilisateurs non connectés : Inscription + Connexion #}
  3665.                 {% if app.user is null %}
  3666.                     <div class=\"hero-cta\">
  3667.                         <a href=\"#register\" class=\"hero-cta-btn\">
  3668.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3669.                                 <path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/><circle cx=\"8.5\" cy=\"7\" r=\"4\"/><line x1=\"20\" y1=\"8\" x2=\"20\" y2=\"14\"/><line x1=\"23\" y1=\"11\" x2=\"17\" y2=\"11\"/>
  3670.                             </svg>
  3671.                             {{ t.hero_cta_signup }}
  3672.                         </a>
  3673.                         <a href=\"{% if isFR %}{{ path('locale_app_login',{'_locale':'fr'}) }}{% else %}{{ path('app_login') }}{% endif %}\" class=\"hero-cta-btn\">
  3674.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3675.                                 <path d=\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"/><polyline points=\"10 17 15 12 10 7\"/><line x1=\"15\" y1=\"12\" x2=\"3\" y2=\"12\"/>
  3676.                             </svg>
  3677.                             {{ t.hero_cta_login }}
  3678.                         </a>
  3679.                     </div>
  3680.                 {% endif %}
  3681.             </div>
  3682.         </section>
  3683.         {# ═══════════════ COMMENT ÇA MARCHE ═══════════════ #}
  3684.         <section class=\"wr-section\">
  3685.             <div class=\"wr-container\">
  3686.                 <div class=\"wr-section-head\">
  3687.                     <h2 class=\"wr-title\">{{ t.how_title }}</h2>
  3688.                 </div>
  3689.                 <div class=\"how-card\">
  3690.                     <div class=\"how-step reveal\" data-reveal-delay=\"1\">
  3691.                         <div class=\"how-step-illu\">
  3692.                             <img src=\"/uploads/rh/mascotte_register.png\" alt=\"{{ t.how1_title }}\" loading=\"lazy\">
  3693.                         </div>
  3694.                         <h3 class=\"how-step-title\">{{ t.how1_title }}</h3>
  3695.                         <p class=\"how-step-desc\">{{ t.how1_desc }}</p>
  3696.                     </div>
  3697.                     <div class=\"how-step reveal\" data-reveal-delay=\"2\">
  3698.                         <div class=\"how-step-illu\">
  3699.                             <img src=\"/uploads/rh/mascotte_upload2.png\" alt=\"{{ t.how2_title }}\" loading=\"lazy\">
  3700.                         </div>
  3701.                         <h3 class=\"how-step-title\">{{ t.how2_title }}</h3>
  3702.                         <p class=\"how-step-desc\">{{ t.how2_desc }}</p>
  3703.                     </div>
  3704.                     <div class=\"how-step reveal\" data-reveal-delay=\"3\">
  3705.                         <div class=\"how-step-illu\">
  3706.                             <img src=\"/uploads/rh/mascotte_reunion.png\" alt=\"{{ t.how3_title }}\" loading=\"lazy\">
  3707.                         </div>
  3708.                         <h3 class=\"how-step-title\">{{ t.how3_title }}</h3>
  3709.                         <p class=\"how-step-desc\">{{ t.how3_desc }}</p>
  3710.                     </div>
  3711.                 </div>
  3712.             </div>
  3713.         </section>
  3714.         {# ═══════════════ FEATURES 01-04 ═══════════════ #}
  3715.         <section class=\"wr-section\">
  3716.             <div class=\"wr-container\">
  3717.                 {# Feature 01 — Filtrage par critères #}
  3718.                 <div class=\"feat-block reveal\">
  3719.                     <div class=\"feat-illu\">
  3720.                         <img src=\"/uploads/rh/mascotte_filtrage3.png\" alt=\"{{ t.feat1_title }}\" loading=\"lazy\">
  3721.                     </div>
  3722.                     <div class=\"feat-content\">
  3723.                         <span class=\"feat-label\">{{ t.feat1_label }}</span>
  3724.                         <h3 class=\"feat-title\">{{ t.feat1_title }}</h3>
  3725.                         <div class=\"feat-desc\">
  3726.                             <p>{{ t.feat1_p1|raw }}</p>
  3727.                             <p>{{ t.feat1_p2|raw }}</p>
  3728.                         </div>
  3729.                         <div class=\"feat-quote\">
  3730.                             <p class=\"feat-quote-text\">{{ t.feat1_quote }}</p>
  3731.                             <div class=\"feat-quote-author\">
  3732.                                 <p class=\"feat-quote-name\">{{ t.feat1_author }}</p>
  3733.                                 <p class=\"feat-quote-role\">{{ t.feat1_role }}</p>
  3734.                             </div>
  3735.                         </div>
  3736.                     </div>
  3737.                 </div>
  3738.                 {# Feature 02 — Optimisation intelligente #}
  3739.                 <div class=\"feat-block reveal\">
  3740.                     <div class=\"feat-illu\">
  3741.                         <img src=\"/uploads/rh/mascotte_upload.png\" alt=\"{{ t.feat2_title }}\" loading=\"lazy\">
  3742.                     </div>
  3743.                     <div class=\"feat-content\">
  3744.                         <span class=\"feat-label\">{{ t.feat2_label }}</span>
  3745.                         <h3 class=\"feat-title\">{{ t.feat2_title }}</h3>
  3746.                         <div class=\"feat-desc\">
  3747.                             <p>{{ t.feat2_p1|raw }}</p>
  3748.                             <p>{{ t.feat2_p2|raw }}</p>
  3749.                         </div>
  3750.                         <div class=\"feat-quote\">
  3751.                             <p class=\"feat-quote-text\">{{ t.feat2_quote }}</p>
  3752.                             <div class=\"feat-quote-author\">
  3753.                                 <p class=\"feat-quote-name\">{{ t.feat2_author }}</p>
  3754.                                 <p class=\"feat-quote-role\">{{ t.feat2_role }}</p>
  3755.                             </div>
  3756.                         </div>
  3757.                     </div>
  3758.                 </div>
  3759.                 {% if app.user is null %}
  3760.                 {# ═════ INSCRIPTION (entre feat 02 et 03) ═════ #}
  3761.                 <div class=\"signup-card reveal reveal--scale\" id=\"register\">
  3762.                     <div class=\"signup-inner\">
  3763.                         <div class=\"signup-text\">
  3764.                             <span class=\"signup-eyebrow\">
  3765.                                 <svg viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/><circle cx=\"8.5\" cy=\"7\" r=\"4\"/><line x1=\"20\" y1=\"8\" x2=\"20\" y2=\"14\"/><line x1=\"23\" y1=\"11\" x2=\"17\" y2=\"11\"/></svg>
  3766.                                 {{ t.signup_eyebrow }}
  3767.                             </span>
  3768.                             <h3 class=\"signup-title\">{{ t.signup_title }}</h3>
  3769.                             <p class=\"signup-lede\">{{ t.signup_lede }}</p>
  3770.                             <div class=\"signup-perks\">
  3771.                                 <span class=\"signup-perk\">
  3772.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>
  3773.                                     {{ t.signup_perk1 }}
  3774.                                 </span>
  3775.                                 <span class=\"signup-perk\">
  3776.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>
  3777.                                     {{ t.signup_perk2 }}
  3778.                                 </span>
  3779.                                 <span class=\"signup-perk\">
  3780.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"/></svg>
  3781.                                     {{ t.signup_perk3 }}
  3782.                                 </span>
  3783.                             </div>
  3784.                         </div>
  3785.                         {% if form is defined %}
  3786.                             {# Cas 1 : le controller passe le formulaire Symfony — rendu via form_widget #}
  3787.                             {{ form_start(form, {'attr': {'class': 'signup-form', 'novalidate': 'novalidate'}}) }}
  3788.                             {{ form_errors(form) }}
  3789.                             {% for message in app.flashes('danger') %}
  3790.                                 <p class=\"signup-form-error\">{{ message }}</p>
  3791.                             {% endfor %}
  3792.                             <div class=\"signup-field\">
  3793.                                 {{ form_widget(form.email, {'attr': {'placeholder': t.signup_email_ph}}) }}
  3794.                             </div>
  3795.                             <div class=\"signup-row\">
  3796.                                 <div class=\"signup-field\">
  3797.                                     {{ form_widget(form.password.first, {'attr': {'placeholder': t.signup_pass_ph}}) }}
  3798.                                 </div>
  3799.                                 <div class=\"signup-field\">
  3800.                                     {{ form_widget(form.password.second, {'attr': {'placeholder': t.signup_pass2_ph}}) }}
  3801.                                 </div>
  3802.                             </div>
  3803.                             <label class=\"signup-terms\">
  3804.                                 {{ form_widget(form.acceptTerm) }}
  3805.                                 <span>
  3806.                                         {{ t.signup_terms_pre }}
  3807.                                         <a href=\"{% if isFR %}/fr/protections-donnees-candidats{% else %}/data-protection-candidates{% endif %}\" target=\"_blank\" rel=\"noopener\">{{ t.signup_terms_link }}</a>.
  3808.                                     </span>
  3809.                             </label>
  3810.                             {% if form.recaptcha is defined %}
  3811.                                 <div class=\"signup-recaptcha\">{{ form_widget(form.recaptcha) }}</div>
  3812.                             {% endif %}
  3813.                             <button type=\"submit\" class=\"signup-submit\">
  3814.                                 {{ t.signup_btn }}
  3815.                                 <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>
  3816.                             </button>
  3817.                             {{ form_rest(form) }}
  3818.                             {{ form_end(form) }}
  3819.                         {% else %}
  3820.                             {# Cas 2 : pas de form Symfony injecté — on redirige vers la page inscription qui a le vrai form #}
  3821.                             <form class=\"signup-form\" method=\"get\" action=\"{{ path('whileresume_resume_' ~ app.request.locale) }}#register\">
  3822.                                 <div class=\"signup-field\">
  3823.                                     <input type=\"email\" name=\"email\" placeholder=\"{{ t.signup_email_ph }}\" required>
  3824.                                 </div>
  3825.                                 <div class=\"signup-row\">
  3826.                                     <div class=\"signup-field\">
  3827.                                         <input type=\"password\" name=\"password\" placeholder=\"{{ t.signup_pass_ph }}\" required minlength=\"8\">
  3828.                                     </div>
  3829.                                     <div class=\"signup-field\">
  3830.                                         <input type=\"password\" name=\"password_confirm\" placeholder=\"{{ t.signup_pass2_ph }}\" required minlength=\"8\">
  3831.                                     </div>
  3832.                                 </div>
  3833.                                 <label class=\"signup-terms\">
  3834.                                     <input type=\"checkbox\" name=\"acceptTerm\" required>
  3835.                                     <span>
  3836.                                         {{ t.signup_terms_pre }}
  3837.                                         <a href=\"{% if isFR %}/fr/protections-donnees-candidats{% else %}/data-protection-candidates{% endif %}\" target=\"_blank\" rel=\"noopener\">{{ t.signup_terms_link }}</a>.
  3838.                                     </span>
  3839.                                 </label>
  3840.                                 <button type=\"submit\" class=\"signup-submit\">
  3841.                                     {{ t.signup_btn }}
  3842.                                     <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>
  3843.                                 </button>
  3844.                                 <p class=\"signup-login\">
  3845.                                     {{ t.signup_login_pre }}
  3846.                                     <a href=\"{{ path('app_login') }}\">{{ t.signup_login_link }}</a>
  3847.                                 </p>
  3848.                             </form>
  3849.                         {% endif %}
  3850.                     </div>
  3851.                 </div>
  3852.                 {% endif %}
  3853.                 {# Feature 03 — Recherche qualifiée #}
  3854.                 <div class=\"feat-block reveal\">
  3855.                     <div class=\"feat-illu\">
  3856.                         <img src=\"/uploads/rh/mascotte_register.png\" alt=\"{{ t.feat3_title }}\" loading=\"lazy\">
  3857.                     </div>
  3858.                     <div class=\"feat-content\">
  3859.                         <span class=\"feat-label\">{{ t.feat3_label }}</span>
  3860.                         <h3 class=\"feat-title\">{{ t.feat3_title }}</h3>
  3861.                         <div class=\"feat-desc\">
  3862.                             <p>{{ t.feat3_p1|raw }}</p>
  3863.                             <p>{{ t.feat3_p2|raw }}</p>
  3864.                         </div>
  3865.                         <div class=\"feat-quote\">
  3866.                             <p class=\"feat-quote-text\">{{ t.feat3_quote }}</p>
  3867.                             <div class=\"feat-quote-author\">
  3868.                                 <p class=\"feat-quote-name\">{{ t.feat3_author }}</p>
  3869.                                 <p class=\"feat-quote-role\">{{ t.feat3_role }}</p>
  3870.                             </div>
  3871.                         </div>
  3872.                     </div>
  3873.                 </div>
  3874.                 {# Feature 04 — Contact direct qualifié #}
  3875.                 <div class=\"feat-block reveal\">
  3876.                     <div class=\"feat-illu\">
  3877.                         <img src=\"/uploads/rh/mascotte_reunion.png\" alt=\"{{ t.feat4_title }}\" loading=\"lazy\">
  3878.                     </div>
  3879.                     <div class=\"feat-content\">
  3880.                         <span class=\"feat-label\">{{ t.feat4_label }}</span>
  3881.                         <h3 class=\"feat-title\">{{ t.feat4_title }}</h3>
  3882.                         <div class=\"feat-desc\">
  3883.                             <p>{{ t.feat4_p1|raw }}</p>
  3884.                             <p>{{ t.feat4_p2|raw }}</p>
  3885.                         </div>
  3886.                         <div class=\"feat-quote\">
  3887.                             <p class=\"feat-quote-text\">{{ t.feat4_quote }}</p>
  3888.                             <div class=\"feat-quote-author\">
  3889.                                 <p class=\"feat-quote-name\">{{ t.feat4_author }}</p>
  3890.                                 <p class=\"feat-quote-role\">{{ t.feat4_role }}</p>
  3891.                             </div>
  3892.                         </div>
  3893.                     </div>
  3894.                 </div>
  3895.             </div>
  3896.         </section>
  3897.         {# ═══════════════ APPS ═══════════════ #}
  3898.         <section class=\"wr-section\">
  3899.             <div class=\"wr-container\">
  3900.                 <div class=\"apps-grid\">
  3901.                     <a href=\"#\" class=\"app-card\">
  3902.                     <span class=\"app-card-icon\">
  3903.                         <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>
  3904.                     </span>
  3905.                         <h3 class=\"app-card-name\">{{ t.apps_ios }}</h3>
  3906.                         <p class=\"app-card-desc\">{{ t.apps_ios_desc }}</p>
  3907.                         <span class=\"app-card-cta\">App Store
  3908.                         <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>
  3909.                     </span>
  3910.                     </a>
  3911.                     <a href=\"#\" class=\"app-card\">
  3912.                     <span class=\"app-card-icon\">
  3913.                         <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>
  3914.                     </span>
  3915.                         <h3 class=\"app-card-name\">{{ t.apps_android }}</h3>
  3916.                         <p class=\"app-card-desc\">{{ t.apps_android_desc }}</p>
  3917.                         <span class=\"app-card-cta\">Google Play
  3918.                         <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>
  3919.                     </span>
  3920.                     </a>
  3921.                     <a href=\"{{ path('whileresume_resume_' ~ app.request.locale) }}\" class=\"app-card\">
  3922.                     <span class=\"app-card-icon\">
  3923.                         <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>
  3924.                     </span>
  3925.                         <h3 class=\"app-card-name\">{{ t.apps_web }}</h3>
  3926.                         <p class=\"app-card-desc\">{{ t.apps_web_desc }}</p>
  3927.                         <span class=\"app-card-cta\">whileresume.com
  3928.                         <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>
  3929.                     </span>
  3930.                     </a>
  3931.                 </div>
  3932.             </div>
  3933.         </section>
  3934.         {# ═══════════════ ARTICLES ═══════════════ #}
  3935.         {% if articles is defined and articles|length > 0 %}
  3936.             <section class=\"wr-section\">
  3937.                 <div class=\"wr-container\">
  3938.                     <div class=\"wr-section-head\">
  3939.                         <h2 class=\"wr-title wr-title--sm\">{{ t.articles_title }}</h2>
  3940.                     </div>
  3941.                     <div class=\"articles-list\">
  3942.                         {% for a in articles|slice(0,6) %}
  3943.                             {% set prefix = \"\" %}
  3944.                             {% set urlA = path('cvs_website_article',{'slug': a.slug}) %}
  3945.                             {% if app.request.locale != default_locale %}
  3946.                                 {% set urlA = path('locale_cvs_website_article',{'_locale':app.request.locale,'slug': a.slug}) %}
  3947.                                 {% set prefix = \"/\" ~ app.request.locale %}
  3948.                             {% endif %}
  3949.                             {% if a.pageslug3 is not empty %}
  3950.                                 {% set urlA = prefix ~ '/' ~ a.pageslug ~ '/' ~ a.pageslug2 ~ '/' ~ a.pageslug3 %}
  3951.                             {% elseif a.pageslug2 is not empty %}
  3952.                                 {% set urlA = prefix ~ '/' ~ a.pageslug ~ '/' ~ a.pageslug2 %}
  3953.                             {% elseif a.pageslug is not empty %}
  3954.                                 {% set urlA = prefix ~ '/' ~ a.pageslug %}
  3955.                             {% endif %}
  3956.                             <a href=\"{{ urlA }}\" class=\"wr-article\">
  3957.                                 <div class=\"wr-article-logo\">
  3958.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3959.                                         <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"/>
  3960.                                         <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"/>
  3961.                                     </svg>
  3962.                                 </div>
  3963.                                 <div class=\"wr-article-info\">
  3964.                                     <h3 class=\"wr-article-title\">{{ a.title }}</h3>
  3965.                                     <div class=\"wr-article-meta\">
  3966.                                         <span>{{ a.publishedAt|date(isFR ? 'd M Y' : 'M d, Y') }}</span>
  3967.                                         {% if a.author is not null and a.author is not empty %}
  3968.                                             <span class=\"wr-article-meta-sep\"></span>
  3969.                                             <span>{{ a.author }}</span>
  3970.                                         {% endif %}
  3971.                                         {% if a.subtitle is not empty %}
  3972.                                             <span class=\"wr-article-meta-sep\"></span>
  3973.                                             <span>{{ a.subtitle|length > 60 ? a.subtitle|slice(0,60) ~ '…' : a.subtitle }}</span>
  3974.                                         {% endif %}
  3975.                                     </div>
  3976.                                 </div>
  3977.                                 <span class=\"wr-article-badge\">{{ t.read_article }}</span>
  3978.                                 <span class=\"wr-article-arrow\">
  3979.                                 <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  3980.                                     <polyline points=\"9 18 15 12 9 6\"/>
  3981.                                 </svg>
  3982.                             </span>
  3983.                             </a>
  3984.                         {% endfor %}
  3985.                     </div>
  3986.                     <div class=\"articles-cta\">
  3987.                         <a href=\"{% if isFR %}{{ path('locale_cvs_website_articles',{'_locale':'fr'}) }}{% else %}{{ path('cvs_website_articles') }}{% endif %}\">
  3988.                             {{ t.articles_view_all }}
  3989.                             <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>
  3990.                         </a>
  3991.                     </div>
  3992.                 </div>
  3993.             </section>
  3994.         {% endif %}
  3995.         {# ═══════════════ CTA FINAL ═══════════════ #}
  3996.         {% if app.user is null %}
  3997.         <section class=\"wr-section\">
  3998.             <div class=\"wr-container\">
  3999.                 <div class=\"final-card\">
  4000.                     <h2 class=\"final-title\">{{ t.final_title }}</h2>
  4001.                     <div class=\"final-grid\">
  4002.                         {# Recruteur #}
  4003.                         <div class=\"final-sub\">
  4004.                             <div class=\"final-sub-head\">
  4005.                             <span class=\"final-sub-icon\">
  4006.                                 <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4007.                                     <rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  4008.                                     <path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"/>
  4009.                                 </svg>
  4010.                             </span>
  4011.                                 <span class=\"final-sub-label\">{{ t.final_recruiter_label }}</span>
  4012.                             </div>
  4013.                             <h3 class=\"final-sub-title\">{{ t.final_recruiter_title }}</h3>
  4014.                             <p class=\"final-sub-desc\">{{ t.final_recruiter_desc }}</p>
  4015.                             <a href=\"{{ path('whileresume_business_' ~ app.request.locale) }}\" class=\"final-sub-btn\">
  4016.                                 {{ t.final_recruiter }}
  4017.                                 <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>
  4018.                             </a>
  4019.                         </div>
  4020.                         {# Candidat #}
  4021.                         <div class=\"final-sub\">
  4022.                             <div class=\"final-sub-head\">
  4023.                                 <span class=\"final-sub-icon\">
  4024.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  4025.                                         <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  4026.                                         <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  4027.                                     </svg>
  4028.                                 </span>
  4029.                                 <span class=\"final-sub-label\">{{ t.final_candidate_label }}</span>
  4030.                             </div>
  4031.                             <h3 class=\"final-sub-title\">{{ t.final_candidate_title }}</h3>
  4032.                             <p class=\"final-sub-desc\">{{ t.final_candidate_desc }}</p>
  4033.                             <a href=\"{% if app.request.locale == 'en' %}{{ path('whileresume_homepage') }}{% else %}{{ path('locale_whileresume_homepage',{'_locale':app.request.locale}) }}{% endif %}#register\" class=\"final-sub-btn\">
  4034.                                 {{ t.final_candidate }}
  4035.                                 <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>
  4036.                             </a>
  4037.                         </div>
  4038.                     </div>
  4039.                 </div>
  4040.             </div>
  4041.         </section>
  4042.         {% endif %}
  4043.     </div>
  4044. {% endblock body %}
  4045. {% block footer_js %}
  4046.     {{ parent() }}
  4047.     <script>
  4048.         (function(){
  4049.             var search   = document.getElementById('wrHeroSearch');
  4050.             var input    = document.getElementById('wrHeroSearchInput');
  4051.             var clearBtn = document.getElementById('wrHeroSearchClear');
  4052.             var jobsBody = document.getElementById('wrHeroJobsBody');
  4053.             var countEl  = document.getElementById('wrHeroJobsCount');
  4054.             var linkEl   = document.getElementById('wrHeroJobsLink');
  4055.             if (!search || !input || !jobsBody) return;
  4056.             var searchUrl   = search.dataset.searchUrl;
  4057.             var jobsListUrl = search.dataset.jobsListUrl;
  4058.             // On garde l'état initial pour pouvoir le restaurer
  4059.             var defaultBodyHtml  = jobsBody.innerHTML;
  4060.             var defaultCountHtml = countEl ? countEl.innerHTML : '';
  4061.             var defaultLinkHref  = linkEl ? linkEl.getAttribute('href') : jobsListUrl;
  4062.             var debounceTimer = null;
  4063.             var currentRequest = null;
  4064.             var lastQuery = '';
  4065.             var T = {
  4066.                 loading:      '{{ t.search_loading|escape('js') }}',
  4067.                 empty:        '{{ t.search_no_results|escape('js') }}',
  4068.                 emptyHint:    '{{ t.search_no_results_hint|escape('js') }}',
  4069.                 count:        '{{ t.search_results_count|escape('js') }}',
  4070.                 viewAll:      '{{ t.search_view_all|escape('js') }}',
  4071.                 view:         '{{ t.search_view_offer|escape('js') }}'
  4072.             };
  4073.             function escHtml(s){
  4074.                 if (s == null) return '';
  4075.                 return String(s).replace(/[&<>\"']/g, function(c){
  4076.                     return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c];
  4077.                 });
  4078.             }
  4079.             function setHeaderCount(total){
  4080.                 if (!countEl) return;
  4081.                 countEl.innerHTML = '<strong>' + total + '</strong>' + escHtml(T.count);
  4082.             }
  4083.             function setHeaderLink(href){
  4084.                 if (!linkEl) return;
  4085.                 linkEl.setAttribute('href', href);
  4086.             }
  4087.             function setLoading(){
  4088.                 jobsBody.innerHTML =
  4089.                     '<div class=\"hero-jobs-loading\">' +
  4090.                     '<span class=\"hero-jobs-spinner\"></span>' +
  4091.                     '<span>' + escHtml(T.loading) + '</span>' +
  4092.                     '</div>';
  4093.             }
  4094.             function setEmpty(){
  4095.                 jobsBody.innerHTML =
  4096.                     '<div class=\"hero-jobs-empty\">' +
  4097.                     '<div class=\"hero-jobs-empty-icon\">' +
  4098.                     '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +
  4099.                     '<circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/>' +
  4100.                     '</svg>' +
  4101.                     '</div>' +
  4102.                     '<p class=\"hero-jobs-empty-title\">' + escHtml(T.empty) + '</p>' +
  4103.                     '<p class=\"hero-jobs-empty-hint\">' + escHtml(T.emptyHint) + '</p>' +
  4104.                     '</div>';
  4105.             }
  4106.             function restoreDefault(){
  4107.                 jobsBody.innerHTML = defaultBodyHtml;
  4108.                 if (countEl) countEl.innerHTML = defaultCountHtml;
  4109.                 if (linkEl) linkEl.setAttribute('href', defaultLinkHref);
  4110.             }
  4111.             function renderResults(payload, query){
  4112.                 var jobs  = (payload && payload.jobs)  || [];
  4113.                 var total = (payload && typeof payload.total === 'number') ? payload.total : jobs.length;
  4114.                 setHeaderCount(total);
  4115.                 setHeaderLink(jobsListUrl + '?q=' + encodeURIComponent(query));
  4116.                 if (!jobs.length){
  4117.                     setEmpty();
  4118.                     return;
  4119.                 }
  4120.                 var html = '';
  4121.                 jobs.slice(0, 6).forEach(function(j){
  4122.                     var title   = j.jobTitle || j.title || '';
  4123.                     var company = j.companyName || j.company || '';
  4124.                     var city    = j.city || '';
  4125.                     var country = j.country || '';
  4126.                     var et      = j.employmentType || '';
  4127.                     var img     = j.image || j.imageUrl || '';
  4128.                     var url     = j.url || (jobsListUrl + '?q=' + encodeURIComponent(query));
  4129.                     var initial = (company || title || '?').charAt(0).toUpperCase();
  4130.                     var location = city + (country ? ', ' + country : '');
  4131.                     var metaParts = [];
  4132.                     if (company)  metaParts.push('<span>' + escHtml(company) + '</span>');
  4133.                     if (location) metaParts.push('<span class=\"hero-default-job-meta-sep\"></span><span>' + escHtml(location) + '</span>');
  4134.                     if (et)       metaParts.push('<span class=\"hero-default-job-meta-sep\"></span><span>' + escHtml(et) + '</span>');
  4135.                     html +=
  4136.                         '<a href=\"' + escHtml(url) + '\" class=\"hero-default-job\">' +
  4137.                         '<div class=\"hero-default-job-logo\">' +
  4138.                         (img
  4139.                             ? '<img src=\"' + escHtml(img) + '\" alt=\"\">'
  4140.                             : escHtml(initial)) +
  4141.                         '</div>' +
  4142.                         '<div class=\"hero-default-job-info\">' +
  4143.                         '<h3 class=\"hero-default-job-title\">' + escHtml(title) + '</h3>' +
  4144.                         '<p class=\"hero-default-job-meta\">' + metaParts.join('') + '</p>' +
  4145.                         '</div>' +
  4146.                         '<span class=\"hero-default-job-arrow\">' +
  4147.                         '<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>' +
  4148.                         '</span>' +
  4149.                         '</a>';
  4150.                 });
  4151.                 jobsBody.innerHTML = html;
  4152.             }
  4153.             function doSearch(query){
  4154.                 if (currentRequest && currentRequest.abort) {
  4155.                     try { currentRequest.abort(); } catch(e){}
  4156.                 }
  4157.                 setLoading();
  4158.                 var url = searchUrl + (searchUrl.indexOf('?') > -1 ? '&' : '?') + 'q=' + encodeURIComponent(query);
  4159.                 var ctrl = (typeof AbortController !== 'undefined') ? new AbortController() : null;
  4160.                 currentRequest = ctrl;
  4161.                 fetch(url, { headers: { 'Accept': 'application/json' }, signal: ctrl ? ctrl.signal : undefined })
  4162.                     .then(function(r){ return r.ok ? r.json() : Promise.reject(r.status); })
  4163.                     .then(function(data){ renderResults(data, query); })
  4164.                     .catch(function(err){
  4165.                         if (err && err.name === 'AbortError') return;
  4166.                         setEmpty();
  4167.                     });
  4168.             }
  4169.             // Input live (debounce 280ms)
  4170.             input.addEventListener('input', function(){
  4171.                 var q = input.value.trim();
  4172.                 clearBtn.classList.toggle('is-visible', q.length > 0);
  4173.                 if (debounceTimer) clearTimeout(debounceTimer);
  4174.                 if (q.length < 2){
  4175.                     restoreDefault();
  4176.                     lastQuery = '';
  4177.                     return;
  4178.                 }
  4179.                 if (q === lastQuery) return;
  4180.                 debounceTimer = setTimeout(function(){
  4181.                     lastQuery = q;
  4182.                     doSearch(q);
  4183.                 }, 280);
  4184.             });
  4185.             // Enter → page de résultats complète
  4186.             input.addEventListener('keydown', function(e){
  4187.                 if (e.key === 'Enter'){
  4188.                     e.preventDefault();
  4189.                     var q = input.value.trim();
  4190.                     if (!q) return;
  4191.                     window.location.href = jobsListUrl + '?q=' + encodeURIComponent(q);
  4192.                 }
  4193.                 if (e.key === 'Escape'){
  4194.                     input.value = '';
  4195.                     clearBtn.classList.remove('is-visible');
  4196.                     restoreDefault();
  4197.                     lastQuery = '';
  4198.                     input.blur();
  4199.                 }
  4200.             });
  4201.             // Clear
  4202.             clearBtn.addEventListener('click', function(){
  4203.                 input.value = '';
  4204.                 clearBtn.classList.remove('is-visible');
  4205.                 restoreDefault();
  4206.                 lastQuery = '';
  4207.                 input.focus();
  4208.             });
  4209.             // Pills \"Populaire\" — au clic, on remplit l'input et on lance la recherche
  4210.             document.querySelectorAll('.hero-popular-pill').forEach(function(pill){
  4211.                 pill.addEventListener('click', function(){
  4212.                     var keyword = pill.dataset.keyword || pill.dataset.label || '';
  4213.                     if (!keyword) return;
  4214.                     // Visuel actif
  4215.                     document.querySelectorAll('.hero-popular-pill').forEach(function(p){ p.classList.remove('is-active'); });
  4216.                     pill.classList.add('is-active');
  4217.                     input.value = keyword;
  4218.                     clearBtn.classList.add('is-visible');
  4219.                     lastQuery = keyword;
  4220.                     doSearch(keyword);
  4221.                     input.focus();
  4222.                 });
  4223.             });
  4224.         })();
  4225.         /* ═══ Reveal au scroll (Intersection Observer) ═══ */
  4226.         (function(){
  4227.             var els = document.querySelectorAll('.reveal');
  4228.             if (!els.length) return;
  4229.             if (!('IntersectionObserver' in window)){
  4230.                 // Fallback : tout révéler
  4231.                 els.forEach(function(el){ el.classList.add('is-revealed'); });
  4232.                 return;
  4233.             }
  4234.             var io = new IntersectionObserver(function(entries){
  4235.                 entries.forEach(function(entry){
  4236.                     if (entry.isIntersecting){
  4237.                         entry.target.classList.add('is-revealed');
  4238.                         io.unobserve(entry.target);
  4239.                     }
  4240.                 });
  4241.             }, { threshold: 0.12, rootMargin: '0px 0px -60px 0px' });
  4242.             els.forEach(function(el){ io.observe(el); });
  4243.         })();
  4244.     </script>
  4245. {% endblock footer_js %}
  4246. ""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");
  4247.     }
  4248. }