var/cache/dev/twig/d2/d2ad6cb2570c7bf2d1240d98b69956c8.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/landing.html.twig */
  16. class __TwigTemplate_10cc8cb044f9600f3bc02fb267163596 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/landing.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/landing.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 5
  52.         $context["_keys"] = ["hero_search_placeholder""hero_popular_label""hero_byline_jobs""hero_byline_apps""hero_byline_free""hero_kbd_enter""hero_cta_signup""hero_cta_login""search_loading""search_no_results""search_no_results_hint""search_results_count""search_view_all""search_view_offer""search_clear""how_title""apps_ios""apps_android""apps_web""apps_ios_desc""apps_android_desc""apps_web_desc""articles_title""articles_view_all""read_article""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 18
  54.         $context["t"] = [];
  55.         // line 19
  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.'19$this->source); })()));
  58.         foreach ($context['_seq'] as $context["_key"] => $context["k"]) {
  59.             // line 20
  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.'20$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 23
  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["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'23$this->source); })()), "shortTitle", [], "any"falsefalsefalse23), "html"nulltrue);
  85.         
  86.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  87.         
  88.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  89.         yield from [];
  90.     }
  91.     // line 24
  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["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'24$this->source); })()), "shortDescription", [], "any"falsefalsefalse24), "html"nulltrue);
  103.         
  104.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  105.         
  106.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  107.         yield from [];
  108.     }
  109.     // line 25
  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 "index,follow";
  121.         
  122.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  123.         
  124.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  125.         yield from [];
  126.     }
  127.     // line 26
  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.         
  139.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  140.         
  141.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  142.         yield from [];
  143.     }
  144.     // line 28
  145.     /**
  146.      * @return iterable<null|scalar|\Stringable>
  147.      */
  148.     public function block_css(array $context, array $blocks = []): iterable
  149.     {
  150.         $macros $this->macros;
  151.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  152.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""css"));
  153.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  154.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""css"));
  155.         // line 29
  156.         yield "    ";
  157.         yield from $this->yieldParentBlock("css"$context$blocks);
  158.         yield "
  159.     <style>
  160.         :root{
  161.             --wr-bg:#FBFCFE;
  162.             --wr-bg-2:#F4F6FB;
  163.             --wr-card:#FFFFFF;
  164.             --wr-violet:#8A63C1;
  165.             --wr-violet-2:#A98AD3;
  166.             --wr-violet-soft:#F2EDFA;
  167.             --wr-violet-softer:#F8F4FD;
  168.             --wr-violet-dark:#6B47A6;
  169.             --wr-ink:#1E1B2E;
  170.             --wr-ink-2:#374151;
  171.             --wr-muted:#6B7280;
  172.             --wr-muted-2:#9CA3AF;
  173.             --wr-line:#EEF1F7;
  174.             --wr-line-2:#E5E9F0;
  175.             --wr-shadow:0 1px 2px rgba(30,27,46,.04),0 4px 16px rgba(30,27,46,.04);
  176.             --wr-shadow-hover:0 4px 8px rgba(138,99,192,.08),0 12px 32px rgba(138,99,192,.1);
  177.             --wr-acc-yellow:#FEF3C7;  --wr-acc-yellow-fg:#B45309;
  178.             --wr-acc-green:#D1FAE5;   --wr-acc-green-fg:#047857;
  179.             --wr-acc-pink:#FCE7F3;    --wr-acc-pink-fg:#BE185D;
  180.             --wr-acc-blue:#DBEAFE;    --wr-acc-blue-fg:#1E40AF;
  181.             --wr-acc-orange:#FED7AA;  --wr-acc-orange-fg:#C2410C;
  182.             --wr-acc-violet:#EDE9FE;  --wr-acc-violet-fg:#6D28D9;
  183.             --wr-acc-cyan:#CFFAFE;    --wr-acc-cyan-fg:#0E7490;
  184.         }
  185.         body .main-content.right-chat-active{padding-right:0!important}
  186.         body .main-content{padding-right:0!important}
  187.         body .right-chat{display:none!important}
  188.         body .middle-sidebar-bottom .middle-sidebar-left{padding-right:0!important;max-width:none!important;width:100%!important}
  189.         body .middle-sidebar-bottom{max-width:none!important}
  190.         .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}
  191.         @media(max-width:991px){.wr{margin:0 -15px}}
  192.         .wr *{box-sizing:border-box}
  193.         .wr a{color:inherit;text-decoration:none}
  194.         .wr-section{padding:80px 32px;background:var(--wr-bg);position:relative}
  195.         .wr-section--tight{padding:48px 32px}
  196.         @media(max-width:768px){.wr-section{padding:56px 20px}.wr-section--tight{padding:36px 20px}}
  197.         .wr-section + .wr-section::before{
  198.             content:\"\";position:absolute;top:0;left:50%;transform:translateX(-50%);
  199.             width:80px;height:1px;
  200.             background:linear-gradient(90deg,transparent,var(--wr-line-2),transparent);
  201.         }
  202.         .wr-container{max-width:1200px;margin:0 auto;position:relative}
  203.         .wr-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:100px;background:var(--wr-violet-soft);color:var(--wr-violet-dark);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;margin-bottom:22px}
  204.         .wr-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--wr-violet);animation:wrPulse 2.4s ease-in-out infinite}
  205.         @keyframes wrPulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}
  206.         .wr-title{font-family:inherit !important;font-weight:700 !important;font-size:28px;line-height:1.15;letter-spacing:-0.025em;color:var(--wr-ink) !important;margin:0 auto 16px;max-width:1200px;text-align:center}
  207.         @media(min-width:768px){.wr-title{font-size:34px}}
  208.         @media(min-width:1024px){.wr-title{font-size:40px}}
  209.         .wr-title--sm{font-size:24px}
  210.         @media(min-width:768px){.wr-title--sm{font-size:30px}}
  211.         .wr-title em{font-style:normal;font-weight:700 !important;color:var(--wr-violet) !important}
  212.         .wr-lede{font-size:17px;line-height:1.55;font-weight:400;color:var(--wr-ink-2) !important;margin:0 auto;max-width:680px}
  213.         .wr-section-head{text-align:center;margin-bottom:56px}
  214.         @keyframes wrFadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
  215.         @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)}}
  216.         .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
  217.         .reveal.is-revealed{opacity:1;transform:translateY(0)}
  218.         .reveal--left{transform:translateX(-32px) translateY(0)}
  219.         .reveal--left.is-revealed{transform:translateX(0)}
  220.         .reveal--right{transform:translateX(32px) translateY(0)}
  221.         .reveal--right.is-revealed{transform:translateX(0)}
  222.         .reveal--scale{transform:scale(.96);opacity:0}
  223.         .reveal--scale.is-revealed{transform:scale(1);opacity:1}
  224.         .reveal[data-reveal-delay=\"1\"]{transition-delay:.08s}
  225.         .reveal[data-reveal-delay=\"2\"]{transition-delay:.16s}
  226.         .reveal[data-reveal-delay=\"3\"]{transition-delay:.24s}
  227.         .reveal[data-reveal-delay=\"4\"]{transition-delay:.32s}
  228.         @media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important}}
  229.         /* ═══ HERO ═══ */
  230.         .hero{position:relative;background:var(--wr-bg);padding:24px 32px 0;overflow:hidden}
  231.         @media(max-width:768px){.hero{padding:18px 18px 0}}
  232.         .hero::before{content:\"\";position:absolute;top:-260px;right:-180px;width:560px;height:560px;background:radial-gradient(circle,rgba(138,99,192,.14) 0%,transparent 65%);pointer-events:none;filter:blur(50px)}
  233.         .hero::after{content:\"\";position:absolute;top:120px;left:-180px;width:480px;height:480px;background:radial-gradient(circle,rgba(138,99,192,.09) 0%,transparent 65%);pointer-events:none;filter:blur(50px)}
  234.         .hero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;text-align:center}
  235.         .hero-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border-radius:100px;background:var(--wr-violet-soft);color:var(--wr-violet-dark);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;opacity:0;transform:translateY(8px);animation:wrFadeUp .8s ease forwards}
  236.         .hero-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--wr-violet);animation:wrPulse2 2s ease infinite}
  237.         /* H1 — on force la couleur et la taille pour battre les styles globaux du layout social */
  238.         .wr .hero-title{font-family:inherit !important;font-weight:700 !important;font-size:32px;line-height:1.05;letter-spacing:-0.04em;color:var(--wr-ink) !important;margin:0 auto 12px;width:100%;max-width:1200px;opacity:0;transform:translateY(12px);animation:wrFadeUp .9s cubic-bezier(.2,.7,.2,1) .15s forwards;text-align:center}
  239.         @media(min-width:768px){.wr .hero-title{font-size:48px;letter-spacing:-0.045em}}
  240.         @media(min-width:1100px){.wr .hero-title{font-size:57px;letter-spacing:-0.045em}}
  241.         .wr .hero-title-accent{color:var(--wr-violet) !important;font-weight:700 !important}
  242.         .wr .hero-lede{font-size:16px;line-height:1.5;color:var(--wr-ink-2) !important;font-weight:400;margin:0 auto 16px;max-width:680px;opacity:0;animation:wrFadeUp .9s ease .4s forwards;text-align:center}
  243.         @media(min-width:768px){.wr .hero-lede{font-size:18px}}
  244.         .wr .hero-lede-accent{color:var(--wr-violet) !important;font-weight:600}
  245.         .hero-search-wrap{max-width:1200px;margin:0 auto 12px;opacity:0;animation:wrFadeUp .9s ease .55s forwards;position:relative;z-index:5}
  246.         .hero-search{background:var(--wr-card);border-radius:14px;box-shadow:0 0 20px 0 rgba(0,0,0,0.05),0 16px 40px rgba(138,99,192,.06);padding:10px;position:relative}
  247.         .hero-search-inner{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;background:#F9FAFB;border:1px solid #E5E7EB;transition:border-color .2s,background .2s}
  248.         .hero-search-inner:focus-within{border-color:rgba(138,99,192,.4);background:#fff}
  249.         .hero-search-icon{color:var(--wr-muted-2);display:flex;flex-shrink:0}
  250.         .hero-search-icon svg{width:16px;height:16px}
  251.         .hero-search-input{flex:1;border:0;outline:0;background:transparent;font-size:14.5px;font-family:inherit;color:var(--wr-ink);padding:6px 0;min-width:0}
  252.         .hero-search-input::placeholder{color:var(--wr-muted-2)}
  253.         .hero-search-clear{background:none;border:0;color:var(--wr-muted-2);cursor:pointer;padding:4px;display:none;font-family:inherit;border-radius:6px;transition:background .15s,color .15s}
  254.         .hero-search-clear:hover{background:var(--wr-violet-soft);color:var(--wr-violet)}
  255.         .hero-search-clear.is-visible{display:flex;align-items:center}
  256.         .hero-search-clear svg{width:14px;height:14px}
  257.         .hero-search-kbd{display:none;align-items:center;padding:3px 8px;background:#fff;border:1px solid #E5E7EB;border-radius:6px;font-size:10.5px;font-weight:600;color:var(--wr-muted);font-family:inherit;letter-spacing:.02em;white-space:nowrap;flex-shrink:0}
  258.         .hero-search-inner:focus-within .hero-search-kbd{display:inline-flex}
  259.         .hero-jobs-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 22px 10px;border-bottom:1px solid var(--wr-line);margin-bottom:4px}
  260.         @media(max-width:540px){.hero-jobs-header{padding:12px 16px 8px}}
  261.         .hero-jobs-count{font-size:11.5px;color:var(--wr-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
  262.         .hero-jobs-count strong{color:var(--wr-violet);font-weight:800;font-size:13px;margin-right:4px}
  263.         .hero-jobs-link{font-size:11px;font-weight:700;color:var(--wr-violet);text-transform:uppercase;letter-spacing:.08em;text-decoration:none;display:inline-flex;align-items:center;gap:5px;transition:color .15s,transform .15s}
  264.         .hero-jobs-link:hover{color:var(--wr-violet-dark);text-decoration:none;transform:translateX(2px)}
  265.         .hero-jobs-link svg{width:11px;height:11px}
  266.         .hero-jobs-empty{text-align:center;padding:48px 20px;color:var(--wr-muted)}
  267.         .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}
  268.         .hero-jobs-empty-icon svg{width:22px;height:22px}
  269.         .hero-jobs-empty-title{font-weight:600;font-size:14px;color:var(--wr-ink);margin:0 0 4px}
  270.         .hero-jobs-empty-hint{font-size:13px;margin:0;color:var(--wr-muted)}
  271.         .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}
  272.         .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}
  273.         @keyframes wrSpin{to{transform:rotate(360deg)}}
  274.         .hero-popular{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin-bottom:18px;opacity:0;animation:wrFadeUp .9s ease .7s forwards}
  275.         .hero-popular-label{font-size:11px;font-weight:600;color:var(--wr-muted);text-transform:uppercase;letter-spacing:.06em;margin-right:4px}
  276.         .hero-popular-pill{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:100px;background:var(--wr-violet-soft);color:var(--wr-violet);font-size:12.5px;font-weight:500;font-family:inherit;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s,transform .15s,color .15s}
  277.         .hero-popular-pill:hover{background:#EDE9FE;border-color:rgba(138,99,192,.2);transform:translateY(-1px);color:var(--wr-violet);text-decoration:none}
  278.         .hero-popular-pill.is-active{background:var(--wr-violet);color:#fff;border-color:var(--wr-violet)}
  279.         .hero-popular-pill.is-active:hover{background:var(--wr-violet-dark);color:#fff}
  280.         .hero-popular-pill-icon{font-size:13px;line-height:1}
  281.         .hero-cta{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:24px 0 8px;opacity:0;animation:wrFadeUp .9s ease 1.1s forwards}
  282.         .hero-cta-btn,.hero-cta-btn:link,.hero-cta-btn:visited,.hero-cta-btn:hover,.hero-cta-btn:focus,.hero-cta-btn:active{color:#fff !important;text-decoration:none !important}
  283.         .hero-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:11px;font-size:13.5px;font-weight:700;font-family:inherit;line-height:1;background:var(--wr-violet);border:1px solid var(--wr-violet);box-shadow:0 4px 14px rgba(138,99,193,.32);transition:background .15s,border-color .15s,transform .15s,box-shadow .15s}
  284.         .hero-cta-btn:hover{background:var(--wr-violet-dark);border-color:var(--wr-violet-dark);transform:translateY(-2px);box-shadow:0 6px 20px rgba(138,99,193,.4)}
  285.         .hero-cta-btn svg{width:15px;height:15px;flex-shrink:0;stroke:#fff !important;color:#fff !important}
  286.         .hero-cta-btn span{color:#fff !important}
  287.         @media(max-width:540px){.hero-cta{flex-direction:column;align-items:stretch}.hero-cta-btn{justify-content:center}}
  288.         .hero-default-jobs{position:relative;z-index:2;max-width:1200px;margin:0 auto;background:var(--wr-card);border:1px solid var(--wr-line);border-radius:18px;padding:8px 0;box-shadow:var(--wr-shadow);opacity:0;animation:wrFadeUp .9s ease 1s forwards;text-align:left}
  289.         .hero-default-job{display:flex;align-items:center;gap:16px;padding:14px 22px;text-decoration:none;color:inherit;border-bottom:1px solid var(--wr-line);transition:background .15s}
  290.         .hero-default-job:last-child{border-bottom:0}
  291.         .hero-default-job:hover{background:var(--wr-violet-softer);text-decoration:none;color:inherit}
  292.         .hero-default-job-logo{width:42px;height:42px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;overflow:hidden}
  293.         .hero-default-job-logo img{width:100%;height:100%;object-fit:cover}
  294.         .hero-default-job:nth-child(7n+1) .hero-default-job-logo{background:var(--wr-acc-yellow);color:var(--wr-acc-yellow-fg)}
  295.         .hero-default-job:nth-child(7n+2) .hero-default-job-logo{background:var(--wr-acc-green);color:var(--wr-acc-green-fg)}
  296.         .hero-default-job:nth-child(7n+3) .hero-default-job-logo{background:var(--wr-acc-pink);color:var(--wr-acc-pink-fg)}
  297.         .hero-default-job:nth-child(7n+4) .hero-default-job-logo{background:var(--wr-acc-blue);color:var(--wr-acc-blue-fg)}
  298.         .hero-default-job:nth-child(7n+5) .hero-default-job-logo{background:var(--wr-acc-orange);color:var(--wr-acc-orange-fg)}
  299.         .hero-default-job:nth-child(7n+6) .hero-default-job-logo{background:var(--wr-acc-violet);color:var(--wr-acc-violet-fg)}
  300.         .hero-default-job:nth-child(7n+7) .hero-default-job-logo{background:var(--wr-acc-cyan);color:var(--wr-acc-cyan-fg)}
  301.         .hero-default-job-info{flex:1;min-width:0}
  302.         .hero-default-job-title{font-weight:600 !important;font-size:14.5px;color:var(--wr-ink) !important;margin:0 0 2px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  303.         .hero-default-job-meta{font-size:12.5px;color:var(--wr-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}
  304.         .hero-default-job-meta-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--wr-muted-2);flex-shrink:0}
  305.         .hero-default-job-arrow{flex-shrink:0;color:var(--wr-muted-2);transition:color .15s,transform .15s}
  306.         .hero-default-job-arrow svg{width:15px;height:15px}
  307.         .hero-default-job:hover .hero-default-job-arrow{color:var(--wr-violet);transform:translateX(3px)}
  308.         @media(max-width:768px){.hero-default-jobs{margin:0 -18px;border-radius:14px}.hero-default-job{padding:12px 16px;gap:12px}.hero-default-job-logo{width:36px;height:36px;font-size:13px}.hero-default-job-title{font-size:13.5px}.hero-default-job-meta{font-size:11.5px;gap:6px;flex-wrap:wrap;white-space:normal}}
  309.         /* ═══ HOW IT WORKS ═══ */
  310.         .how-card{background:#F4ECE1;border-radius:24px;padding:32px 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative}
  311.         @media(max-width:991px){.how-card{grid-template-columns:1fr;gap:8px;padding:24px 16px}}
  312.         @media(min-width:992px){.how-card .how-step + .how-step{border-left:1px solid rgba(28,25,22,.08)}}
  313.         .how-step{display:flex;flex-direction:column;align-items:center;text-align:center;padding:16px 20px;gap:16px}
  314.         .how-step-illu{width:100%;max-width:280px;aspect-ratio:1/1;border-radius:16px;background:rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;margin-bottom:4px;overflow:hidden}
  315.         .how-step-illu img{width:100%;height:100%;object-fit:contain;display:block}
  316.         .how-step-title{font-weight:700 !important;font-size:18px;line-height:1.3;letter-spacing:-0.01em;color:var(--wr-ink) !important;margin:0}
  317.         @media(min-width:992px){.how-step-title{font-size:20px}}
  318.         .how-step-desc{font-size:14px;line-height:1.55;color:var(--wr-ink-2) !important;margin:0;max-width:320px}
  319.         /* ═══ FEATURES 01-04 ═══ */
  320.         .feat-block{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-bottom:64px}
  321.         .feat-block:last-child{margin-bottom:0}
  322.         @media(max-width:991px){.feat-block{grid-template-columns:1fr;gap:24px;margin-bottom:48px}}
  323.         .feat-block:nth-child(odd) .feat-illu{order:2}
  324.         .feat-block:nth-child(odd) .feat-content{order:1}
  325.         .feat-block:nth-child(even) .feat-illu{order:1}
  326.         .feat-block:nth-child(even) .feat-content{order:2}
  327.         @media(max-width:991px){.feat-block .feat-illu{order:1}.feat-block .feat-content{order:2}}
  328.         .feat-illu{background:#F5EDE3;border-radius:20px;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;color:var(--wr-violet);overflow:hidden;position:relative}
  329.         .feat-illu img{width:100%;height:100%;object-fit:contain;display:block}
  330.         .feat-content{display:flex;flex-direction:column;gap:18px}
  331.         .feat-label{font-size:30px;font-weight:800 !important;color:var(--wr-ink) !important;letter-spacing:-0.02em;margin:0;line-height:1}
  332.         .feat-title{font-weight:700 !important;font-size:24px;line-height:1.2;letter-spacing:-0.02em;color:var(--wr-ink) !important;margin:0}
  333.         @media(min-width:768px){.feat-title{font-size:28px}}
  334.         @media(min-width:1100px){.feat-title{font-size:30px}}
  335.         .feat-desc{display:flex;flex-direction:column;gap:14px}
  336.         .feat-desc p,.feat-desc li,.feat-desc span,.feat-desc div,.feat-desc strong,.feat-desc em{font-size:16px;line-height:1.6;color:var(--wr-ink-2);margin:0;opacity:.85}
  337.         .feat-desc p{margin:0 0 8px}
  338.         .feat-desc p:last-child{margin-bottom:0}
  339.         /* Bloc HTML riche descriptionPage2/3 — forcer 16px sur tout le contenu */
  340.         .wr-rich-description{margin-top:18px;text-align:center;color:var(--wr-muted)}
  341.         .wr-rich-description,
  342.         .wr-rich-description p,
  343.         .wr-rich-description li,
  344.         .wr-rich-description span,
  345.         .wr-rich-description div,
  346.         .wr-rich-description strong,
  347.         .wr-rich-description em,
  348.         .wr-rich-description a{font-size:16px;line-height:1.6}
  349.         .wr-rich-description p{margin:0 0 10px}
  350.         .wr-rich-description p:last-child{margin-bottom:0}
  351.         .feat-desc strong{color:var(--wr-ink);font-weight:700;opacity:1}
  352.         .feat-quote{background:var(--wr-card);border:1px solid var(--wr-line);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:10px;margin-top:8px}
  353.         .feat-quote-text{font-size:14px;line-height:1.55;color:var(--wr-ink-2);margin:0;font-style:italic}
  354.         .feat-quote-author{display:flex;flex-direction:column}
  355.         .feat-quote-name{font-size:13px;font-weight:700;color:var(--wr-ink);margin:0}
  356.         .feat-quote-role{font-size:12px;color:var(--wr-muted);margin:0}
  357.         /* ═══ APPS ═══ */
  358.         .apps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  359.         @media(max-width:768px){.apps-grid{grid-template-columns:1fr}}
  360.         .app-card{background:var(--wr-card);border:1px solid var(--wr-line);border-radius:18px;padding:24px;display:flex;flex-direction:column;align-items:flex-start;transition:transform .2s,border-color .2s,box-shadow .2s}
  361.         .app-card:hover{transform:translateY(-3px);border-color:var(--wr-violet-2);box-shadow:var(--wr-shadow-hover);color:inherit;text-decoration:none}
  362.         .app-card-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:18px}
  363.         .app-card-icon svg{width:22px;height:22px}
  364.         .app-card-name{font-weight:500 !important;font-size:18px;letter-spacing:-0.01em;color:var(--wr-ink) !important;margin:0 0 6px}
  365.         .app-card-desc{font-size:13px;line-height:1.5;color:var(--wr-muted);margin:0 0 16px;flex:1}
  366.         .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}
  367.         .app-card-cta svg{width:11px;height:11px;transition:transform .15s}
  368.         .app-card:hover .app-card-cta svg{transform:translateX(3px)}
  369.         /* ═══ ARTICLES ═══ */
  370.         .articles-list{display:flex;flex-direction:column;gap:10px;max-width:1200px;margin:0 auto}
  371.         .wr-article{background:var(--wr-card);border-radius:14px;padding:14px;box-shadow:0 0 16px 0 rgba(0,0,0,0.04);display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .2s}
  372.         .wr-article:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(138,99,192,.1);color:inherit;text-decoration:none}
  373.         .wr-article-logo{width:50px;height:50px;border-radius:12px;flex-shrink:0;background:linear-gradient(135deg,#EDE9FE,#DDD6FE);display:flex;align-items:center;justify-content:center;color:var(--wr-violet);overflow:hidden}
  374.         .wr-article-logo svg{width:24px;height:24px;opacity:.9}
  375.         .wr-article-info{flex:1;min-width:0}
  376.         .wr-article-title{font-size:14px;font-weight:700 !important;color:var(--wr-ink) !important;line-height:1.3;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  377.         .wr-article-meta{font-size:12px;color:var(--wr-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px;margin:0}
  378.         .wr-article-meta-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:#D1D5DB;flex-shrink:0}
  379.         .wr-article-badge{font-size:11px;font-weight:600;color:var(--wr-violet);background:var(--wr-violet-soft);padding:3px 9px;border-radius:100px;white-space:nowrap;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}
  380.         .wr-article-arrow{flex-shrink:0;color:var(--wr-muted-2);transition:color .15s,transform .15s}
  381.         .wr-article:hover .wr-article-arrow{color:var(--wr-violet);transform:translateX(2px)}
  382.         .wr-article-arrow svg{width:18px;height:18px}
  383.         @media(max-width:540px){.wr-article{padding:12px;gap:10px}.wr-article-logo{width:42px;height:42px}.wr-article-logo svg{width:20px;height:20px}.wr-article-title{font-size:13px}.wr-article-meta{font-size:11px;gap:6px;flex-wrap:wrap;white-space:normal}.wr-article-badge{display:none}}
  384.         .articles-cta{text-align:center;margin-top:36px}
  385.         .articles-cta a{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:11px;background:var(--wr-violet);color:#fff;font-size:13px;font-weight:600;text-decoration:none;box-shadow:0 4px 12px rgba(138,99,192,.3);transition:background .15s,transform .15s,box-shadow .15s}
  386.         .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}
  387.         .articles-cta svg{width:12px;height:12px;transition:transform .15s}
  388.         .articles-cta a:hover svg{transform:translateX(3px)}
  389.         /* ═══ CTA FINAL ═══ */
  390.         .final-card{position:relative;background:linear-gradient(135deg,#8A63C0 0%,#9D7BCC 100%);border-radius:28px;padding:48px 40px;color:#fff;overflow:hidden;box-shadow:0 20px 60px -12px rgba(138,99,192,.4)}
  391.         @media(max-width:768px){.final-card{padding:32px 22px;border-radius:22px}}
  392.         .final-title{font-weight:800 !important;font-size:28px;line-height:1.15;letter-spacing:-0.02em;color:#fff !important;margin:0 0 36px;max-width:780px}
  393.         @media(min-width:768px){.final-title{font-size:38px}}
  394.         .final-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  395.         @media(max-width:768px){.final-grid{grid-template-columns:1fr;gap:14px}}
  396.         .final-sub{background:#fff;border-radius:18px;padding:28px;display:flex;flex-direction:column}
  397.         @media(max-width:768px){.final-sub{padding:22px}}
  398.         .final-sub-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}
  399.         .final-sub-icon{width:44px;height:44px;border-radius:11px;background:var(--wr-violet-soft);color:var(--wr-violet);display:flex;align-items:center;justify-content:center;flex-shrink:0}
  400.         .final-sub-icon svg{width:22px;height:22px}
  401.         .final-sub-label{font-size:12.5px;font-weight:700;color:var(--wr-violet);text-transform:uppercase;letter-spacing:.1em}
  402.         .final-sub-title{font-weight:800 !important;font-size:18px;line-height:1.3;letter-spacing:-0.01em;color:var(--wr-ink) !important;margin:0 0 10px}
  403.         .final-sub-desc{font-size:14px;line-height:1.55;color:var(--wr-muted);margin:0 0 24px;flex:1}
  404.         .final-sub-btn{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--wr-violet);color:#fff;padding:14px 18px;border-radius:11px;font-size:14px;font-weight:700;text-decoration:none;transition:background .15s,transform .15s,box-shadow .15s;box-shadow:0 4px 12px rgba(138,99,192,.3)}
  405.         .final-sub-btn:hover{background:var(--wr-violet-dark);color:#fff;transform:translateY(-2px);box-shadow:0 6px 18px rgba(138,99,192,.4);text-decoration:none}
  406.         .final-sub-btn svg{width:14px;height:14px;transition:transform .15s}
  407.         .final-sub-btn:hover svg{transform:translateX(3px)}
  408.     </style>
  409. ";
  410.         
  411.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  412.         
  413.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  414.         yield from [];
  415.     }
  416.     // line 303
  417.     /**
  418.      * @return iterable<null|scalar|\Stringable>
  419.      */
  420.     public function block_body(array $context, array $blocks = []): iterable
  421.     {
  422.         $macros $this->macros;
  423.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  424.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  425.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  426.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  427.         // line 304
  428.         yield "    <div class=\"wr\">
  429.         ";
  430.         // line 307
  431.         yield "        <section class=\"hero\" style=\"padding-top:60px;\">
  432.             <div class=\"hero-inner\">
  433.                 <h1 class=\"hero-title\">";
  434.         // line 310
  435.         yield CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'310$this->source); })()), "titlePage", [], "any"falsefalsefalse310);
  436.         yield "</h1>
  437.                 <p class=\"hero-lede\">";
  438.         // line 312
  439.         yield CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'312$this->source); })()), "descriptionPage", [], "any"falsefalsefalse312);
  440.         yield "</p>
  441.                 ";
  442.         // line 316
  443.         yield "                ";
  444.         $context["_firstKeyword"] = "";
  445.         // line 317
  446.         yield "                ";
  447.         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.'317$this->source); })())) > 0))) {
  448.             // line 318
  449.             yield "                    ";
  450.             $context["_firstKw"] = Twig\Extension\CoreExtension::first($this->env->getCharset(), (isset($context["popularKeywords"]) || array_key_exists("popularKeywords"$context) ? $context["popularKeywords"] : (function () { throw new RuntimeError('Variable "popularKeywords" does not exist.'318$this->source); })()));
  451.             // line 319
  452.             yield "                    ";
  453.             $context["_firstKeyword"] = (((CoreExtension::getAttribute($this->env$this->source, ($context["_firstKw"] ?? null), "keyword", [], "any"truetruefalse319) &&  !(null === CoreExtension::getAttribute($this->env$this->source, (isset($context["_firstKw"]) || array_key_exists("_firstKw"$context) ? $context["_firstKw"] : (function () { throw new RuntimeError('Variable "_firstKw" does not exist.'319$this->source); })()), "keyword", [], "any"falsefalsefalse319)))) ? (CoreExtension::getAttribute($this->env$this->source, (isset($context["_firstKw"]) || array_key_exists("_firstKw"$context) ? $context["_firstKw"] : (function () { throw new RuntimeError('Variable "_firstKw" does not exist.'319$this->source); })()), "keyword", [], "any"falsefalsefalse319)) : ((((CoreExtension::getAttribute($this->env$this->source, ($context["_firstKw"] ?? null), "searchKeyword", [], "any"truetruefalse319) &&  !(null === CoreExtension::getAttribute($this->env$this->source, (isset($context["_firstKw"]) || array_key_exists("_firstKw"$context) ? $context["_firstKw"] : (function () { throw new RuntimeError('Variable "_firstKw" does not exist.'319$this->source); })()), "searchKeyword", [], "any"falsefalsefalse319)))) ? (CoreExtension::getAttribute($this->env$this->source, (isset($context["_firstKw"]) || array_key_exists("_firstKw"$context) ? $context["_firstKw"] : (function () { throw new RuntimeError('Variable "_firstKw" does not exist.'319$this->source); })()), "searchKeyword", [], "any"falsefalsefalse319)) : ((((CoreExtension::getAttribute($this->env$this->source, ($context["_firstKw"] ?? null), "label", [], "any"truetruefalse319) &&  !(null === CoreExtension::getAttribute($this->env$this->source, (isset($context["_firstKw"]) || array_key_exists("_firstKw"$context) ? $context["_firstKw"] : (function () { throw new RuntimeError('Variable "_firstKw" does not exist.'319$this->source); })()), "label", [], "any"falsefalsefalse319)))) ? (CoreExtension::getAttribute($this->env$this->source, (isset($context["_firstKw"]) || array_key_exists("_firstKw"$context) ? $context["_firstKw"] : (function () { throw new RuntimeError('Variable "_firstKw" does not exist.'319$this->source); })()), "label", [], "any"falsefalsefalse319)) : (""))))));
  454.             // line 320
  455.             yield "                    <div class=\"hero-popular\">
  456.                         <span class=\"hero-popular-label\">";
  457.             // line 321
  458.             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.'321$this->source); })()), "hero_popular_label", [], "any"falsefalsefalse321), "html"nulltrue);
  459.             yield "</span>
  460.                         ";
  461.             // line 322
  462.             $context['_parent'] = $context;
  463.             $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.'322$this->source); })()), 05));
  464.             $context['loop'] = [
  465.               'parent' => $context['_parent'],
  466.               'index0' => 0,
  467.               'index'  => 1,
  468.               'first'  => true,
  469.             ];
  470.             if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  471.                 $length count($context['_seq']);
  472.                 $context['loop']['revindex0'] = $length 1;
  473.                 $context['loop']['revindex'] = $length;
  474.                 $context['loop']['length'] = $length;
  475.                 $context['loop']['last'] = === $length;
  476.             }
  477.             foreach ($context['_seq'] as $context["_key"] => $context["kw"]) {
  478.                 // line 323
  479.                 yield "                            <button type=\"button\" class=\"hero-popular-pill";
  480.                 if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse323)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  481.                     yield " is-active";
  482.                 }
  483.                 yield "\"
  484.                                     data-keyword=\"";
  485.                 // line 324
  486.                 yield (((CoreExtension::getAttribute($this->env$this->source$context["kw"], "keyword", [], "any"truetruefalse324) &&  !(null === CoreExtension::getAttribute($this->env$this->source$context["kw"], "keyword", [], "any"falsefalsefalse324)))) ? ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["kw"], "keyword", [], "any"falsefalsefalse324), "html"nulltrue)) : ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["kw"], "searchKeyword", [], "any"falsefalsefalse324), "html"nulltrue)));
  487.                 yield "\"
  488.                                     data-label=\"";
  489.                 // line 325
  490.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["kw"], "label", [], "any"falsefalsefalse325), "html"nulltrue);
  491.                 yield "\">
  492.                                 ";
  493.                 // line 326
  494.                 if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["kw"], "icon", [], "any"falsefalsefalse326)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  495.                     yield "<span class=\"hero-popular-pill-icon\">";
  496.                     yield CoreExtension::getAttribute($this->env$this->source$context["kw"], "icon", [], "any"falsefalsefalse326);
  497.                     yield "</span>";
  498.                 }
  499.                 // line 327
  500.                 yield "                                <span>";
  501.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["kw"], "label", [], "any"falsefalsefalse327), "html"nulltrue);
  502.                 yield "</span>
  503.                             </button>
  504.                         ";
  505.                 ++$context['loop']['index0'];
  506.                 ++$context['loop']['index'];
  507.                 $context['loop']['first'] = false;
  508.                 if (isset($context['loop']['revindex0'], $context['loop']['revindex'])) {
  509.                     --$context['loop']['revindex0'];
  510.                     --$context['loop']['revindex'];
  511.                     $context['loop']['last'] = === $context['loop']['revindex0'];
  512.                 }
  513.             }
  514.             $_parent $context['_parent'];
  515.             unset($context['_seq'], $context['_key'], $context['kw'], $context['_parent'], $context['loop']);
  516.             $context array_intersect_key($context$_parent) + $_parent;
  517.             // line 330
  518.             yield "                    </div>
  519.                 ";
  520.         }
  521.         // line 332
  522.         yield "
  523.                 ";
  524.         // line 334
  525.         yield "                <div class=\"hero-search-wrap\">
  526.                     <div class=\"hero-search\" id=\"wrHeroSearch\"
  527.                          data-search-url=\"";
  528.         // line 336
  529.         if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'336$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  530.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_api_jobs_search", ["_locale" => "fr"]);
  531.         } else {
  532.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("api_jobs_search");
  533.         }
  534.         yield "\"
  535.                          data-jobs-list-url=\"";
  536.         // line 337
  537.         if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'337$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  538.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_whileresume_jobs_list", ["_locale" => "fr"]);
  539.         } else {
  540.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("whileresume_jobs_list");
  541.         }
  542.         yield "\">
  543.                         <div class=\"hero-search-inner\">
  544.                             <span class=\"hero-search-icon\">
  545.                                 <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  546.                                     <circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"M21 21l-4.35-4.35\"/>
  547.                                 </svg>
  548.                             </span>
  549.                             <input type=\"text\" name=\"q\" id=\"wrHeroSearchInput\" class=\"hero-search-input\"
  550.                                    placeholder=\"";
  551.         // line 345
  552.         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.'345$this->source); })()), "hero_search_placeholder", [], "any"falsefalsefalse345), "html"nulltrue);
  553.         yield "\"
  554.                                    value=\"";
  555.         // line 346
  556.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["_firstKeyword"]) || array_key_exists("_firstKeyword"$context) ? $context["_firstKeyword"] : (function () { throw new RuntimeError('Variable "_firstKeyword" does not exist.'346$this->source); })()), "html"nulltrue);
  557.         yield "\"
  558.                                    autocomplete=\"off\" />
  559.                             <span class=\"hero-search-kbd\">↵ ";
  560.         // line 348
  561.         yield (((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'348$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ("Entrée") : ("Enter"));
  562.         yield "</span>
  563.                             <button type=\"button\" class=\"hero-search-clear\" id=\"wrHeroSearchClear\" aria-label=\"";
  564.         // line 349
  565.         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.'349$this->source); })()), "search_clear", [], "any"falsefalsefalse349), "html"nulltrue);
  566.         yield "\">
  567.                                 <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  568.                                     <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/>
  569.                                 </svg>
  570.                             </button>
  571.                         </div>
  572.                     </div>
  573.                 </div>
  574.                 ";
  575.         // line 359
  576.         yield "                ";
  577.         $context["_heroCount"] = 0;
  578.         // line 360
  579.         yield "                ";
  580.         $context["_heroTotal"] = 0;
  581.         // line 361
  582.         yield "                ";
  583.         if (array_key_exists("popularJobsForVisitor"$context)) {
  584.             // line 362
  585.             yield "                    ";
  586.             $context['_parent'] = $context;
  587.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["popularJobsForVisitor"]) || array_key_exists("popularJobsForVisitor"$context) ? $context["popularJobsForVisitor"] : (function () { throw new RuntimeError('Variable "popularJobsForVisitor" does not exist.'362$this->source); })()));
  588.             foreach ($context['_seq'] as $context["_key"] => $context["block"]) {
  589.                 // line 363
  590.                 yield "                        ";
  591.                 if (CoreExtension::getAttribute($this->env$this->source$context["block"], "jobs", [], "any"truetruefalse363)) {
  592.                     $context["_heroTotal"] = ((isset($context["_heroTotal"]) || array_key_exists("_heroTotal"$context) ? $context["_heroTotal"] : (function () { throw new RuntimeError('Variable "_heroTotal" does not exist.'363$this->source); })()) + Twig\Extension\CoreExtension::length($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["block"], "jobs", [], "any"falsefalsefalse363)));
  593.                 }
  594.                 // line 364
  595.                 yield "                    ";
  596.             }
  597.             $_parent $context['_parent'];
  598.             unset($context['_seq'], $context['_key'], $context['block'], $context['_parent']);
  599.             $context array_intersect_key($context$_parent) + $_parent;
  600.             // line 365
  601.             yield "                ";
  602.         }
  603.         // line 366
  604.         yield "
  605.                 <div class=\"hero-default-jobs\" id=\"wrHeroJobsList\">
  606.                     <div class=\"hero-jobs-header\" id=\"wrHeroJobsHeader\">
  607.                         <span class=\"hero-jobs-count\" id=\"wrHeroJobsCount\">
  608.                             <strong>";
  609.         // line 370
  610.         yield (((isset($context["_heroTotal"]) || array_key_exists("_heroTotal"$context) ? $context["_heroTotal"] : (function () { throw new RuntimeError('Variable "_heroTotal" does not exist.'370$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)) : (""))));
  611.         yield "</strong>";
  612.         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.'370$this->source); })()), "search_results_count", [], "any"falsefalsefalse370), "html"nulltrue);
  613.         yield "
  614.                         </span>
  615.                         <a href=\"";
  616.         // line 372
  617.         if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'372$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  618.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_whileresume_jobs_list", ["_locale" => "fr"]);
  619.         } else {
  620.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("whileresume_jobs_list");
  621.         }
  622.         yield "\" class=\"hero-jobs-link\" id=\"wrHeroJobsLink\">
  623.                             ";
  624.         // line 373
  625.         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.'373$this->source); })()), "search_view_all", [], "any"falsefalsefalse373), "html"nulltrue);
  626.         yield "
  627.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  628.                                 <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/>
  629.                             </svg>
  630.                         </a>
  631.                     </div>
  632.                     <div id=\"wrHeroJobsBody\">
  633.                         ";
  634.         // line 381
  635.         if ((array_key_exists("popularJobsForVisitor"$context) && (Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["popularJobsForVisitor"]) || array_key_exists("popularJobsForVisitor"$context) ? $context["popularJobsForVisitor"] : (function () { throw new RuntimeError('Variable "popularJobsForVisitor" does not exist.'381$this->source); })())) > 0))) {
  636.             // line 382
  637.             yield "                            ";
  638.             $context['_parent'] = $context;
  639.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["popularJobsForVisitor"]) || array_key_exists("popularJobsForVisitor"$context) ? $context["popularJobsForVisitor"] : (function () { throw new RuntimeError('Variable "popularJobsForVisitor" does not exist.'382$this->source); })()));
  640.             foreach ($context['_seq'] as $context["_key"] => $context["block"]) {
  641.                 // line 383
  642.                 yield "                                ";
  643.                 if ((CoreExtension::getAttribute($this->env$this->source$context["block"], "jobs", [], "any"truetruefalse383) && (Twig\Extension\CoreExtension::length($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["block"], "jobs", [], "any"falsefalsefalse383)) > 0))) {
  644.                     // line 384
  645.                     yield "                                    ";
  646.                     $context['_parent'] = $context;
  647.                     $context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env$this->source$context["block"], "jobs", [], "any"falsefalsefalse384));
  648.                     foreach ($context['_seq'] as $context["_key"] => $context["j"]) {
  649.                         // line 385
  650.                         yield "                                        ";
  651.                         if (((isset($context["_heroCount"]) || array_key_exists("_heroCount"$context) ? $context["_heroCount"] : (function () { throw new RuntimeError('Variable "_heroCount" does not exist.'385$this->source); })()) < 6)) {
  652.                             // line 386
  653.                             yield "                                            <a href=\"#\" class=\"hero-default-job\">
  654.                                                 <div class=\"hero-default-job-logo\">
  655.                                                     ";
  656.                             // line 388
  657.                             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"], "jobTitle", [], "any"truetruefalse388) &&  !(null === CoreExtension::getAttribute($this->env$this->source$context["j"], "jobTitle", [], "any"falsefalsefalse388)))) ? (CoreExtension::getAttribute($this->env$this->source$context["j"], "jobTitle", [], "any"falsefalsefalse388)) : ("?")), 01)), "html"nulltrue);
  658.                             yield "
  659.                                                 </div>
  660.                                                 <div class=\"hero-default-job-info\">
  661.                                                     <h3 class=\"hero-default-job-title\">";
  662.                             // line 391
  663.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["j"], "jobTitle", [], "any"falsefalsefalse391), "html"nulltrue);
  664.                             yield "</h3>
  665.                                                     <p class=\"hero-default-job-meta\">
  666.                                                         ";
  667.                             // line 393
  668.                             if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["j"], "city", [], "any"falsefalsefalse393)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  669.                                 yield "<span>";
  670.                                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["j"], "city", [], "any"falsefalsefalse393), "html"nulltrue);
  671.                                 yield "</span>";
  672.                             }
  673.                             // line 394
  674.                             yield "                                                        ";
  675.                             if ((($tmp CoreExtension::getAttribute($this->env$this->source$context["j"], "employmentType", [], "any"falsefalsefalse394)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  676.                                 // line 395
  677.                                 yield "                                                            <span class=\"hero-default-job-meta-sep\"></span>
  678.                                                             <span>";
  679.                                 // line 396
  680.                                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["j"], "employmentType", [], "any"falsefalsefalse396), "html"nulltrue);
  681.                                 yield "</span>
  682.                                                         ";
  683.                             }
  684.                             // line 398
  685.                             yield "                                                    </p>
  686.                                                 </div>
  687.                                                 <span class=\"hero-default-job-arrow\">
  688.                                                     <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>
  689.                                                 </span>
  690.                                             </a>
  691.                                             ";
  692.                             // line 404
  693.                             $context["_heroCount"] = ((isset($context["_heroCount"]) || array_key_exists("_heroCount"$context) ? $context["_heroCount"] : (function () { throw new RuntimeError('Variable "_heroCount" does not exist.'404$this->source); })()) + 1);
  694.                             // line 405
  695.                             yield "                                        ";
  696.                         }
  697.                         // line 406
  698.                         yield "                                    ";
  699.                     }
  700.                     $_parent $context['_parent'];
  701.                     unset($context['_seq'], $context['_key'], $context['j'], $context['_parent']);
  702.                     $context array_intersect_key($context$_parent) + $_parent;
  703.                     // line 407
  704.                     yield "                                ";
  705.                 }
  706.                 // line 408
  707.                 yield "                            ";
  708.             }
  709.             $_parent $context['_parent'];
  710.             unset($context['_seq'], $context['_key'], $context['block'], $context['_parent']);
  711.             $context array_intersect_key($context$_parent) + $_parent;
  712.             // line 409
  713.             yield "                        ";
  714.         }
  715.         // line 410
  716.         yield "                    </div>
  717.                 </div>
  718.                 ";
  719.         // line 414
  720.         yield "                ";
  721.         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.'414$this->source); })()), "user", [], "any"falsefalsefalse414))) {
  722.             // line 415
  723.             yield "                    <div class=\"hero-cta\">
  724.                         <a href=\"";
  725.             // line 416
  726.             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.'416$this->source); })()), "request", [], "any"falsefalsefalse416), "locale", [], "any"falsefalsefalse416)));
  727.             yield "\" class=\"hero-cta-btn\">
  728.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  729.                                 <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\"/>
  730.                             </svg>
  731.                             ";
  732.             // line 420
  733.             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.'420$this->source); })()), "hero_cta_signup", [], "any"falsefalsefalse420), "html"nulltrue);
  734.             yield "
  735.                         </a>
  736.                         <a href=\"";
  737.             // line 422
  738.             if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'422$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  739.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_app_login", ["_locale" => "fr"]);
  740.             } else {
  741.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app_login");
  742.             }
  743.             yield "\" class=\"hero-cta-btn\">
  744.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  745.                                 <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\"/>
  746.                             </svg>
  747.                             ";
  748.             // line 426
  749.             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.'426$this->source); })()), "hero_cta_login", [], "any"falsefalsefalse426), "html"nulltrue);
  750.             yield "
  751.                         </a>
  752.                     </div>
  753.                 ";
  754.         }
  755.         // line 430
  756.         yield "
  757.                 ";
  758.         // line 431
  759.         if ((CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'431$this->source); })()), "descriptionPage2", [], "any"falsefalsefalse431) || CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'431$this->source); })()), "descriptionPage3", [], "any"falsefalsefalse431))) {
  760.             // line 432
  761.             yield "                    <div class=\"wr-rich-description\">
  762.                         ";
  763.             // line 433
  764.             if ((($tmp CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'433$this->source); })()), "descriptionPage2", [], "any"falsefalsefalse433)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  765.                 yield "<div>";
  766.                 yield CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'433$this->source); })()), "descriptionPage2", [], "any"falsefalsefalse433);
  767.                 yield "</div>";
  768.             }
  769.             // line 434
  770.             yield "                        ";
  771.             if ((($tmp CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'434$this->source); })()), "descriptionPage3", [], "any"falsefalsefalse434)) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  772.                 yield "<div>";
  773.                 yield CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'434$this->source); })()), "descriptionPage3", [], "any"falsefalsefalse434);
  774.                 yield "</div>";
  775.             }
  776.             // line 435
  777.             yield "                    </div>
  778.                 ";
  779.         }
  780.         // line 437
  781.         yield "
  782.             </div>
  783.         </section>
  784.         ";
  785.         // line 442
  786.         yield "        <section class=\"wr-section\">
  787.             <div class=\"wr-container\">
  788.                 <div class=\"wr-section-head\">
  789.                     <h2 class=\"wr-title\">";
  790.         // line 445
  791.         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.'445$this->source); })()), "how_title", [], "any"falsefalsefalse445), "html"nulltrue);
  792.         yield "</h2>
  793.                 </div>
  794.                 <div class=\"how-card\">
  795.                     <div class=\"how-step reveal\" data-reveal-delay=\"1\">
  796.                         <div class=\"how-step-illu\">
  797.                             <img src=\"/uploads/rh/mascotte_register.png\" alt=\"";
  798.         // line 451
  799.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'451$this->source); })()), "titleWork1", [], "any"falsefalsefalse451), "html"nulltrue);
  800.         yield "\" loading=\"lazy\">
  801.                         </div>
  802.                         <h3 class=\"how-step-title\">";
  803.         // line 453
  804.         yield CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'453$this->source); })()), "titleWork1", [], "any"falsefalsefalse453);
  805.         yield "</h3>
  806.                         <p class=\"how-step-desc\">";
  807.         // line 454
  808.         yield CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'454$this->source); })()), "descriptionWork1", [], "any"falsefalsefalse454);
  809.         yield "</p>
  810.                     </div>
  811.                     <div class=\"how-step reveal\" data-reveal-delay=\"2\">
  812.                         <div class=\"how-step-illu\">
  813.                             <img src=\"/uploads/rh/mascotte_upload2.png\" alt=\"";
  814.         // line 459
  815.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'459$this->source); })()), "titleWork2", [], "any"falsefalsefalse459), "html"nulltrue);
  816.         yield "\" loading=\"lazy\">
  817.                         </div>
  818.                         <h3 class=\"how-step-title\">";
  819.         // line 461
  820.         yield CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'461$this->source); })()), "titleWork2", [], "any"falsefalsefalse461);
  821.         yield "</h3>
  822.                         <p class=\"how-step-desc\">";
  823.         // line 462
  824.         yield CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'462$this->source); })()), "descriptionWork2", [], "any"falsefalsefalse462);
  825.         yield "</p>
  826.                     </div>
  827.                     <div class=\"how-step reveal\" data-reveal-delay=\"3\">
  828.                         <div class=\"how-step-illu\">
  829.                             <img src=\"/uploads/rh/mascotte_reunion.png\" alt=\"";
  830.         // line 467
  831.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'467$this->source); })()), "titleWork3", [], "any"falsefalsefalse467), "html"nulltrue);
  832.         yield "\" loading=\"lazy\">
  833.                         </div>
  834.                         <h3 class=\"how-step-title\">";
  835.         // line 469
  836.         yield CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'469$this->source); })()), "titleWork3", [], "any"falsefalsefalse469);
  837.         yield "</h3>
  838.                         <p class=\"how-step-desc\">";
  839.         // line 470
  840.         yield CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'470$this->source); })()), "descriptionWork3", [], "any"falsefalsefalse470);
  841.         yield "</p>
  842.                     </div>
  843.                 </div>
  844.             </div>
  845.         </section>
  846.         ";
  847.         // line 477
  848.         yield "        <section class=\"wr-section\">
  849.             <div class=\"wr-container\">
  850.                 ";
  851.         // line 480
  852.         $context["_featImages"] = ["/uploads/rh/mascotte_filtrage3.png""/uploads/rh/mascotte_upload.png""/uploads/rh/mascotte_register.png""/uploads/rh/mascotte_reunion.png"];
  853.         // line 486
  854.         yield "
  855.                 ";
  856.         // line 487
  857.         $context['_parent'] = $context;
  858.         $context['_seq'] = CoreExtension::ensureTraversable(range(14));
  859.         foreach ($context['_seq'] as $context["_key"] => $context["i"]) {
  860.             // line 488
  861.             yield "                    ";
  862.             $context["_label"] = ((CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'488$this->source); })()), ("labelPresentation" $context["i"]), [], "any"falsefalsefalse488)) ? (CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'488$this->source); })()), ("labelPresentation" $context["i"]), [], "any"falsefalsefalse488)) : ((("0" $context["i"]) . ".")));
  863.             // line 489
  864.             yield "                    ";
  865.             $context["_title"] = CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'489$this->source); })()), ("titlePresentation" $context["i"]), [], "any"falsefalsefalse489);
  866.             // line 490
  867.             yield "                    ";
  868.             $context["_desc"] = CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'490$this->source); })()), ("descriptionPresentation" $context["i"]), [], "any"falsefalsefalse490);
  869.             // line 491
  870.             yield "                    ";
  871.             $context["_quote"] = CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'491$this->source); })()), ("citationPresentation" $context["i"]), [], "any"falsefalsefalse491);
  872.             // line 492
  873.             yield "                    ";
  874.             $context["_author"] = CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'492$this->source); })()), ("authorPresentation" $context["i"]), [], "any"falsefalsefalse492);
  875.             // line 493
  876.             yield "                    ";
  877.             $context["_role"] = CoreExtension::getAttribute($this->env$this->source, (isset($context["landing"]) || array_key_exists("landing"$context) ? $context["landing"] : (function () { throw new RuntimeError('Variable "landing" does not exist.'493$this->source); })()), ("rolePresentation" $context["i"]), [], "any"falsefalsefalse493);
  878.             // line 494
  879.             yield "
  880.                     ";
  881.             // line 495
  882.             if ((((isset($context["_title"]) || array_key_exists("_title"$context) ? $context["_title"] : (function () { throw new RuntimeError('Variable "_title" does not exist.'495$this->source); })()) || (isset($context["_desc"]) || array_key_exists("_desc"$context) ? $context["_desc"] : (function () { throw new RuntimeError('Variable "_desc" does not exist.'495$this->source); })())) || (isset($context["_quote"]) || array_key_exists("_quote"$context) ? $context["_quote"] : (function () { throw new RuntimeError('Variable "_quote" does not exist.'495$this->source); })()))) {
  883.                 // line 496
  884.                 yield "                        <div class=\"feat-block reveal\">
  885.                             <div class=\"feat-illu\">
  886.                                 <img src=\"";
  887.                 // line 498
  888.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["_featImages"]) || array_key_exists("_featImages"$context) ? $context["_featImages"] : (function () { throw new RuntimeError('Variable "_featImages" does not exist.'498$this->source); })()), ($context["i"] - 1), [], "array"falsefalsefalse498), "html"nulltrue);
  889.                 yield "\" alt=\"";
  890.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["_title"]) || array_key_exists("_title"$context) ? $context["_title"] : (function () { throw new RuntimeError('Variable "_title" does not exist.'498$this->source); })()), "html"nulltrue);
  891.                 yield "\" loading=\"lazy\">
  892.                             </div>
  893.                             <div class=\"feat-content\">
  894.                                 ";
  895.                 // line 501
  896.                 if ((($tmp = (isset($context["_label"]) || array_key_exists("_label"$context) ? $context["_label"] : (function () { throw new RuntimeError('Variable "_label" does not exist.'501$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  897.                     yield "<span class=\"feat-label\">";
  898.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["_label"]) || array_key_exists("_label"$context) ? $context["_label"] : (function () { throw new RuntimeError('Variable "_label" does not exist.'501$this->source); })()), "html"nulltrue);
  899.                     yield "</span>";
  900.                 }
  901.                 // line 502
  902.                 yield "                                ";
  903.                 if ((($tmp = (isset($context["_title"]) || array_key_exists("_title"$context) ? $context["_title"] : (function () { throw new RuntimeError('Variable "_title" does not exist.'502$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  904.                     yield "<h3 class=\"feat-title\">";
  905.                     yield (isset($context["_title"]) || array_key_exists("_title"$context) ? $context["_title"] : (function () { throw new RuntimeError('Variable "_title" does not exist.'502$this->source); })());
  906.                     yield "</h3>";
  907.                 }
  908.                 // line 503
  909.                 yield "                                ";
  910.                 if ((($tmp = (isset($context["_desc"]) || array_key_exists("_desc"$context) ? $context["_desc"] : (function () { throw new RuntimeError('Variable "_desc" does not exist.'503$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  911.                     // line 504
  912.                     yield "                                    <div class=\"feat-desc\">
  913.                                         <p>";
  914.                     // line 505
  915.                     yield (isset($context["_desc"]) || array_key_exists("_desc"$context) ? $context["_desc"] : (function () { throw new RuntimeError('Variable "_desc" does not exist.'505$this->source); })());
  916.                     yield "</p>
  917.                                     </div>
  918.                                 ";
  919.                 }
  920.                 // line 508
  921.                 yield "                                ";
  922.                 if ((($tmp = (isset($context["_quote"]) || array_key_exists("_quote"$context) ? $context["_quote"] : (function () { throw new RuntimeError('Variable "_quote" does not exist.'508$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  923.                     // line 509
  924.                     yield "                                    <div class=\"feat-quote\">
  925.                                         <p class=\"feat-quote-text\">";
  926.                     // line 510
  927.                     yield (isset($context["_quote"]) || array_key_exists("_quote"$context) ? $context["_quote"] : (function () { throw new RuntimeError('Variable "_quote" does not exist.'510$this->source); })());
  928.                     yield "</p>
  929.                                         ";
  930.                     // line 511
  931.                     if (((isset($context["_author"]) || array_key_exists("_author"$context) ? $context["_author"] : (function () { throw new RuntimeError('Variable "_author" does not exist.'511$this->source); })()) || (isset($context["_role"]) || array_key_exists("_role"$context) ? $context["_role"] : (function () { throw new RuntimeError('Variable "_role" does not exist.'511$this->source); })()))) {
  932.                         // line 512
  933.                         yield "                                            <div class=\"feat-quote-author\">
  934.                                                 ";
  935.                         // line 513
  936.                         if ((($tmp = (isset($context["_author"]) || array_key_exists("_author"$context) ? $context["_author"] : (function () { throw new RuntimeError('Variable "_author" does not exist.'513$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  937.                             yield "<p class=\"feat-quote-name\">";
  938.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["_author"]) || array_key_exists("_author"$context) ? $context["_author"] : (function () { throw new RuntimeError('Variable "_author" does not exist.'513$this->source); })()), "html"nulltrue);
  939.                             yield "</p>";
  940.                         }
  941.                         // line 514
  942.                         yield "                                                ";
  943.                         if ((($tmp = (isset($context["_role"]) || array_key_exists("_role"$context) ? $context["_role"] : (function () { throw new RuntimeError('Variable "_role" does not exist.'514$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  944.                             yield "<p class=\"feat-quote-role\">";
  945.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["_role"]) || array_key_exists("_role"$context) ? $context["_role"] : (function () { throw new RuntimeError('Variable "_role" does not exist.'514$this->source); })()), "html"nulltrue);
  946.                             yield "</p>";
  947.                         }
  948.                         // line 515
  949.                         yield "                                            </div>
  950.                                         ";
  951.                     }
  952.                     // line 517
  953.                     yield "                                    </div>
  954.                                 ";
  955.                 }
  956.                 // line 519
  957.                 yield "                            </div>
  958.                         </div>
  959.                     ";
  960.             }
  961.             // line 522
  962.             yield "                ";
  963.         }
  964.         $_parent $context['_parent'];
  965.         unset($context['_seq'], $context['_key'], $context['i'], $context['_parent']);
  966.         $context array_intersect_key($context$_parent) + $_parent;
  967.         // line 523
  968.         yield "
  969.             </div>
  970.         </section>
  971.         ";
  972.         // line 528
  973.         yield "        <section class=\"wr-section\">
  974.             <div class=\"wr-container\">
  975.                 <div class=\"apps-grid\">
  976.                     <a href=\"";
  977.         // line 531
  978.         yield (((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'531$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(((array_key_exists("ios_fr"$context)) ? (Twig\Extension\CoreExtension::default((isset($context["ios_fr"]) || array_key_exists("ios_fr"$context) ? $context["ios_fr"] : (function () { throw new RuntimeError('Variable "ios_fr" does not exist.'531$this->source); })()), "#")) : ("#")), "html"nulltrue)) : ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(((array_key_exists("ios_us"$context)) ? (Twig\Extension\CoreExtension::default((isset($context["ios_us"]) || array_key_exists("ios_us"$context) ? $context["ios_us"] : (function () { throw new RuntimeError('Variable "ios_us" does not exist.'531$this->source); })()), "#")) : ("#")), "html"nulltrue)));
  979.         yield "\" class=\"app-card\">
  980.                         <span class=\"app-card-icon\">
  981.                             <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>
  982.                         </span>
  983.                         <h3 class=\"app-card-name\">";
  984.         // line 535
  985.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'535$this->source); })()), "apps_ios", [], "any"falsefalsefalse535), "html"nulltrue);
  986.         yield "</h3>
  987.                         <p class=\"app-card-desc\">";
  988.         // line 536
  989.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["t"]) || array_key_exists("t"$context) ? $context["t"] : (function () { throw new RuntimeError('Variable "t" does not exist.'536$this->source); })()), "apps_ios_desc", [], "any"falsefalsefalse536), "html"nulltrue);
  990.         yield "</p>
  991.                         <span class=\"app-card-cta\">App Store
  992.                             <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>
  993.                         </span>
  994.                     </a>
  995.                     <a href=\"";
  996.         // line 541
  997.         yield (((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'541$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) ? ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(((array_key_exists("android_fr"$context)) ? (Twig\Extension\CoreExtension::default((isset($context["android_fr"]) || array_key_exists("android_fr"$context) ? $context["android_fr"] : (function () { throw new RuntimeError('Variable "android_fr" does not exist.'541$this->source); })()), "#")) : ("#")), "html"nulltrue)) : ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(((array_key_exists("android_us"$context)) ? (Twig\Extension\CoreExtension::default((isset($context["android_us"]) || array_key_exists("android_us"$context) ? $context["android_us"] : (function () { throw new RuntimeError('Variable "android_us" does not exist.'541$this->source); })()), "#")) : ("#")), "html"nulltrue)));
  998.         yield "\" class=\"app-card\">
  999.                         <span class=\"app-card-icon\">
  1000.                             <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>
  1001.                         </span>
  1002.                         <h3 class=\"app-card-name\">";
  1003.         // line 545
  1004.         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.'545$this->source); })()), "apps_android", [], "any"falsefalsefalse545), "html"nulltrue);
  1005.         yield "</h3>
  1006.                         <p class=\"app-card-desc\">";
  1007.         // line 546
  1008.         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.'546$this->source); })()), "apps_android_desc", [], "any"falsefalsefalse546), "html"nulltrue);
  1009.         yield "</p>
  1010.                         <span class=\"app-card-cta\">Google Play
  1011.                             <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>
  1012.                         </span>
  1013.                     </a>
  1014.                     <a href=\"";
  1015.         // line 551
  1016.         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.'551$this->source); })()), "request", [], "any"falsefalsefalse551), "locale", [], "any"falsefalsefalse551) == "en")) {
  1017.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("whileresume_homepage");
  1018.         } else {
  1019.             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.'551$this->source); })()), "request", [], "any"falsefalsefalse551), "locale", [], "any"falsefalsefalse551)]), "html"nulltrue);
  1020.         }
  1021.         yield "#register\" class=\"app-card\">
  1022.                         <span class=\"app-card-icon\">
  1023.                             <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>
  1024.                         </span>
  1025.                         <h3 class=\"app-card-name\">";
  1026.         // line 555
  1027.         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.'555$this->source); })()), "apps_web", [], "any"falsefalsefalse555), "html"nulltrue);
  1028.         yield "</h3>
  1029.                         <p class=\"app-card-desc\">";
  1030.         // line 556
  1031.         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.'556$this->source); })()), "apps_web_desc", [], "any"falsefalsefalse556), "html"nulltrue);
  1032.         yield "</p>
  1033.                         <span class=\"app-card-cta\">whileresume.com
  1034.                             <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>
  1035.                         </span>
  1036.                     </a>
  1037.                 </div>
  1038.             </div>
  1039.         </section>
  1040.         ";
  1041.         // line 566
  1042.         yield "        ";
  1043.         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.'566$this->source); })())) > 0))) {
  1044.             // line 567
  1045.             yield "            <section class=\"wr-section\">
  1046.                 <div class=\"wr-container\">
  1047.                     <div class=\"wr-section-head\">
  1048.                         <h2 class=\"wr-title wr-title--sm\">";
  1049.             // line 570
  1050.             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.'570$this->source); })()), "articles_title", [], "any"falsefalsefalse570), "html"nulltrue);
  1051.             yield "</h2>
  1052.                     </div>
  1053.                     <div class=\"articles-list\">
  1054.                         ";
  1055.             // line 574
  1056.             $context['_parent'] = $context;
  1057.             $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.'574$this->source); })()), 06));
  1058.             foreach ($context['_seq'] as $context["_key"] => $context["a"]) {
  1059.                 // line 575
  1060.                 yield "                            ";
  1061.                 $context["prefix"] = "";
  1062.                 // line 576
  1063.                 yield "                            ";
  1064.                 $context["urlA"] = $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("cvs_website_article", ["slug" => CoreExtension::getAttribute($this->env$this->source$context["a"], "slug", [], "any"falsefalsefalse576)]);
  1065.                 // line 577
  1066.                 yield "                            ";
  1067.                 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.'577$this->source); })()), "request", [], "any"falsefalsefalse577), "locale", [], "any"falsefalsefalse577) != (isset($context["default_locale"]) || array_key_exists("default_locale"$context) ? $context["default_locale"] : (function () { throw new RuntimeError('Variable "default_locale" does not exist.'577$this->source); })()))) {
  1068.                     // line 578
  1069.                     yield "                                ";
  1070.                     $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.'578$this->source); })()), "request", [], "any"falsefalsefalse578), "locale", [], "any"falsefalsefalse578), "slug" => CoreExtension::getAttribute($this->env$this->source$context["a"], "slug", [], "any"falsefalsefalse578)]);
  1071.                     // line 579
  1072.                     yield "                                ";
  1073.                     $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.'579$this->source); })()), "request", [], "any"falsefalsefalse579), "locale", [], "any"falsefalsefalse579));
  1074.                     // line 580
  1075.                     yield "                            ";
  1076.                 }
  1077.                 // line 581
  1078.                 yield "                            ";
  1079.                 if ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug3", [], "any"falsefalsefalse581))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1080.                     // line 582
  1081.                     yield "                                ";
  1082.                     $context["urlA"] = (((((((isset($context["prefix"]) || array_key_exists("prefix"$context) ? $context["prefix"] : (function () { throw new RuntimeError('Variable "prefix" does not exist.'582$this->source); })()) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug", [], "any"falsefalsefalse582)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug2", [], "any"falsefalsefalse582)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug3", [], "any"falsefalsefalse582));
  1083.                     // line 583
  1084.                     yield "                            ";
  1085.                 } elseif ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug2", [], "any"falsefalsefalse583))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1086.                     // line 584
  1087.                     yield "                                ";
  1088.                     $context["urlA"] = (((((isset($context["prefix"]) || array_key_exists("prefix"$context) ? $context["prefix"] : (function () { throw new RuntimeError('Variable "prefix" does not exist.'584$this->source); })()) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug", [], "any"falsefalsefalse584)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug2", [], "any"falsefalsefalse584));
  1089.                     // line 585
  1090.                     yield "                            ";
  1091.                 } elseif ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug", [], "any"falsefalsefalse585))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1092.                     // line 586
  1093.                     yield "                                ";
  1094.                     $context["urlA"] = (((isset($context["prefix"]) || array_key_exists("prefix"$context) ? $context["prefix"] : (function () { throw new RuntimeError('Variable "prefix" does not exist.'586$this->source); })()) . "/") . CoreExtension::getAttribute($this->env$this->source$context["a"], "pageslug", [], "any"falsefalsefalse586));
  1095.                     // line 587
  1096.                     yield "                            ";
  1097.                 }
  1098.                 // line 588
  1099.                 yield "
  1100.                             <a href=\"";
  1101.                 // line 589
  1102.                 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.'589$this->source); })()), "html"nulltrue);
  1103.                 yield "\" class=\"wr-article\">
  1104.                                 <div class=\"wr-article-logo\">
  1105.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1106.                                         <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"/>
  1107.                                         <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"/>
  1108.                                     </svg>
  1109.                                 </div>
  1110.                                 <div class=\"wr-article-info\">
  1111.                                     <h3 class=\"wr-article-title\">";
  1112.                 // line 597
  1113.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["a"], "title", [], "any"falsefalsefalse597), "html"nulltrue);
  1114.                 yield "</h3>
  1115.                                     <div class=\"wr-article-meta\">
  1116.                                         ";
  1117.                 // line 599
  1118.                 if ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["a"], "subtitle", [], "any"falsefalsefalse599))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1119.                     // line 600
  1120.                     yield "                                            <span>";
  1121.                     yield (((Twig\Extension\CoreExtension::length($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["a"], "subtitle", [], "any"falsefalsefalse600)) > 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"falsefalsefalse600), 060) . "…"), "html"nulltrue)) : ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["a"], "subtitle", [], "any"falsefalsefalse600), "html"nulltrue)));
  1122.                     yield "</span>
  1123.                                         ";
  1124.                 }
  1125.                 // line 602
  1126.                 yield "                                    </div>
  1127.                                 </div>
  1128.                                 <span class=\"wr-article-badge\">";
  1129.                 // line 604
  1130.                 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.'604$this->source); })()), "read_article", [], "any"falsefalsefalse604), "html"nulltrue);
  1131.                 yield "</span>
  1132.                                 <span class=\"wr-article-arrow\">
  1133.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1134.                                         <polyline points=\"9 18 15 12 9 6\"/>
  1135.                                     </svg>
  1136.                                 </span>
  1137.                             </a>
  1138.                         ";
  1139.             }
  1140.             $_parent $context['_parent'];
  1141.             unset($context['_seq'], $context['_key'], $context['a'], $context['_parent']);
  1142.             $context array_intersect_key($context$_parent) + $_parent;
  1143.             // line 612
  1144.             yield "                    </div>
  1145.                     <div class=\"articles-cta\">
  1146.                         <a href=\"";
  1147.             // line 615
  1148.             if ((($tmp = (isset($context["isFR"]) || array_key_exists("isFR"$context) ? $context["isFR"] : (function () { throw new RuntimeError('Variable "isFR" does not exist.'615$this->source); })())) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  1149.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_cvs_website_articles", ["_locale" => "fr"]);
  1150.             } else {
  1151.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("cvs_website_articles");
  1152.             }
  1153.             yield "\">
  1154.                             ";
  1155.             // line 616
  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.'616$this->source); })()), "articles_view_all", [], "any"falsefalsefalse616), "html"nulltrue);
  1157.             yield "
  1158.                             <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>
  1159.                         </a>
  1160.                     </div>
  1161.                 </div>
  1162.             </section>
  1163.         ";
  1164.         }
  1165.         // line 623
  1166.         yield "
  1167.         ";
  1168.         // line 625
  1169.         yield "        ";
  1170.         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.'625$this->source); })()), "user", [], "any"falsefalsefalse625))) {
  1171.             // line 626
  1172.             yield "            <section class=\"wr-section\">
  1173.                 <div class=\"wr-container\">
  1174.                     <div class=\"final-card\">
  1175.                         <h2 class=\"final-title\">";
  1176.             // line 630
  1177.             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.'630$this->source); })()), "final_title", [], "any"falsefalsefalse630), "html"nulltrue);
  1178.             yield "</h2>
  1179.                         <div class=\"final-grid\">
  1180.                             ";
  1181.             // line 634
  1182.             yield "                            <div class=\"final-sub\">
  1183.                                 <div class=\"final-sub-head\">
  1184.                                 <span class=\"final-sub-icon\">
  1185.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1186.                                         <rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  1187.                                         <path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"/>
  1188.                                     </svg>
  1189.                                 </span>
  1190.                                     <span class=\"final-sub-label\">";
  1191.             // line 642
  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.'642$this->source); })()), "final_recruiter_label", [], "any"falsefalsefalse642), "html"nulltrue);
  1193.             yield "</span>
  1194.                                 </div>
  1195.                                 <h3 class=\"final-sub-title\">";
  1196.             // line 644
  1197.             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.'644$this->source); })()), "final_recruiter_title", [], "any"falsefalsefalse644), "html"nulltrue);
  1198.             yield "</h3>
  1199.                                 <p class=\"final-sub-desc\">";
  1200.             // line 645
  1201.             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.'645$this->source); })()), "final_recruiter_desc", [], "any"falsefalsefalse645), "html"nulltrue);
  1202.             yield "</p>
  1203.                                 <a href=\"";
  1204.             // line 646
  1205.             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.'646$this->source); })()), "request", [], "any"falsefalsefalse646), "locale", [], "any"falsefalsefalse646)));
  1206.             yield "\" class=\"final-sub-btn\">
  1207.                                     ";
  1208.             // line 647
  1209.             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.'647$this->source); })()), "final_recruiter", [], "any"falsefalsefalse647), "html"nulltrue);
  1210.             yield "
  1211.                                     <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>
  1212.                                 </a>
  1213.                             </div>
  1214.                             ";
  1215.             // line 653
  1216.             yield "                            <div class=\"final-sub\">
  1217.                                 <div class=\"final-sub-head\">
  1218.                                 <span class=\"final-sub-icon\">
  1219.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1220.                                         <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  1221.                                         <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  1222.                                     </svg>
  1223.                                 </span>
  1224.                                     <span class=\"final-sub-label\">";
  1225.             // line 661
  1226.             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.'661$this->source); })()), "final_candidate_label", [], "any"falsefalsefalse661), "html"nulltrue);
  1227.             yield "</span>
  1228.                                 </div>
  1229.                                 <h3 class=\"final-sub-title\">";
  1230.             // line 663
  1231.             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.'663$this->source); })()), "final_candidate_title", [], "any"falsefalsefalse663), "html"nulltrue);
  1232.             yield "</h3>
  1233.                                 <p class=\"final-sub-desc\">";
  1234.             // line 664
  1235.             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.'664$this->source); })()), "final_candidate_desc", [], "any"falsefalsefalse664), "html"nulltrue);
  1236.             yield "</p>
  1237.                                 <a href=\"";
  1238.             // line 665
  1239.             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.'665$this->source); })()), "request", [], "any"falsefalsefalse665), "locale", [], "any"falsefalsefalse665)));
  1240.             yield "\" class=\"final-sub-btn\">
  1241.                                     ";
  1242.             // line 666
  1243.             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.'666$this->source); })()), "final_candidate", [], "any"falsefalsefalse666), "html"nulltrue);
  1244.             yield "
  1245.                                     <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>
  1246.                                 </a>
  1247.                             </div>
  1248.                         </div>
  1249.                     </div>
  1250.                 </div>
  1251.             </section>
  1252.         ";
  1253.         }
  1254.         // line 675
  1255.         yield "
  1256.     </div>
  1257. ";
  1258.         
  1259.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1260.         
  1261.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1262.         yield from [];
  1263.     }
  1264.     // line 679
  1265.     /**
  1266.      * @return iterable<null|scalar|\Stringable>
  1267.      */
  1268.     public function block_footer_js(array $context, array $blocks = []): iterable
  1269.     {
  1270.         $macros $this->macros;
  1271.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1272.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""footer_js"));
  1273.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1274.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""footer_js"));
  1275.         // line 680
  1276.         yield "    ";
  1277.         yield from $this->yieldParentBlock("footer_js"$context$blocks);
  1278.         yield "
  1279.     <script>
  1280.         (function(){
  1281.             var search   = document.getElementById('wrHeroSearch');
  1282.             var input    = document.getElementById('wrHeroSearchInput');
  1283.             var clearBtn = document.getElementById('wrHeroSearchClear');
  1284.             var jobsBody = document.getElementById('wrHeroJobsBody');
  1285.             var countEl  = document.getElementById('wrHeroJobsCount');
  1286.             var linkEl   = document.getElementById('wrHeroJobsLink');
  1287.             if (!search || !input || !jobsBody) return;
  1288.             var searchUrl   = search.dataset.searchUrl;
  1289.             var jobsListUrl = search.dataset.jobsListUrl;
  1290.             var defaultBodyHtml  = jobsBody.innerHTML;
  1291.             var defaultCountHtml = countEl ? countEl.innerHTML : '';
  1292.             var defaultLinkHref  = linkEl ? linkEl.getAttribute('href') : jobsListUrl;
  1293.             var debounceTimer = null;
  1294.             var currentRequest = null;
  1295.             var lastQuery = '';
  1296.             var T = {
  1297.                 loading:      '";
  1298.         // line 703
  1299.         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.'703$this->source); })()), "search_loading", [], "any"falsefalsefalse703), "js"), "html"nulltrue);
  1300.         yield "',
  1301.                 empty:        '";
  1302.         // line 704
  1303.         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.'704$this->source); })()), "search_no_results", [], "any"falsefalsefalse704), "js"), "html"nulltrue);
  1304.         yield "',
  1305.                 emptyHint:    '";
  1306.         // line 705
  1307.         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.'705$this->source); })()), "search_no_results_hint", [], "any"falsefalsefalse705), "js"), "html"nulltrue);
  1308.         yield "',
  1309.                 count:        '";
  1310.         // line 706
  1311.         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.'706$this->source); })()), "search_results_count", [], "any"falsefalsefalse706), "js"), "html"nulltrue);
  1312.         yield "',
  1313.                 viewAll:      '";
  1314.         // line 707
  1315.         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.'707$this->source); })()), "search_view_all", [], "any"falsefalsefalse707), "js"), "html"nulltrue);
  1316.         yield "',
  1317.                 view:         '";
  1318.         // line 708
  1319.         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.'708$this->source); })()), "search_view_offer", [], "any"falsefalsefalse708), "js"), "html"nulltrue);
  1320.         yield "'
  1321.             };
  1322.             function escHtml(s){
  1323.                 if (s == null) return '';
  1324.                 return String(s).replace(/[&<>\"']/g, function(c){
  1325.                     return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c];
  1326.                 });
  1327.             }
  1328.             function setHeaderCount(total){
  1329.                 if (!countEl) return;
  1330.                 countEl.innerHTML = '<strong>' + total + '</strong>' + escHtml(T.count);
  1331.             }
  1332.             function setHeaderLink(href){ if (!linkEl) return; linkEl.setAttribute('href', href); }
  1333.             function setLoading(){
  1334.                 jobsBody.innerHTML = '<div class=\"hero-jobs-loading\"><span class=\"hero-jobs-spinner\"></span><span>' + escHtml(T.loading) + '</span></div>';
  1335.             }
  1336.             function setEmpty(){
  1337.                 jobsBody.innerHTML =
  1338.                     '<div class=\"hero-jobs-empty\">' +
  1339.                     '<div class=\"hero-jobs-empty-icon\">' +
  1340.                     '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +
  1341.                     '<circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/>' +
  1342.                     '</svg></div>' +
  1343.                     '<p class=\"hero-jobs-empty-title\">' + escHtml(T.empty) + '</p>' +
  1344.                     '<p class=\"hero-jobs-empty-hint\">' + escHtml(T.emptyHint) + '</p>' +
  1345.                     '</div>';
  1346.             }
  1347.             function restoreDefault(){
  1348.                 jobsBody.innerHTML = defaultBodyHtml;
  1349.                 if (countEl) countEl.innerHTML = defaultCountHtml;
  1350.                 if (linkEl) linkEl.setAttribute('href', defaultLinkHref);
  1351.             }
  1352.             function renderResults(payload, query){
  1353.                 var jobs  = (payload && payload.jobs)  || [];
  1354.                 var total = (payload && typeof payload.total === 'number') ? payload.total : jobs.length;
  1355.                 setHeaderCount(total);
  1356.                 setHeaderLink(jobsListUrl + '?q=' + encodeURIComponent(query));
  1357.                 if (!jobs.length){ setEmpty(); return; }
  1358.                 var html = '';
  1359.                 jobs.slice(0, 6).forEach(function(j){
  1360.                     var title   = j.jobTitle || j.title || '';
  1361.                     var company = j.companyName || j.company || '';
  1362.                     var city    = j.city || '';
  1363.                     var country = j.country || '';
  1364.                     var et      = j.employmentType || '';
  1365.                     var img     = j.image || j.imageUrl || '';
  1366.                     var url     = j.url || (jobsListUrl + '?q=' + encodeURIComponent(query));
  1367.                     var initial = (company || title || '?').charAt(0).toUpperCase();
  1368.                     var location = city + (country ? ', ' + country : '');
  1369.                     var metaParts = [];
  1370.                     if (company)  metaParts.push('<span>' + escHtml(company) + '</span>');
  1371.                     if (location) metaParts.push('<span class=\"hero-default-job-meta-sep\"></span><span>' + escHtml(location) + '</span>');
  1372.                     if (et)       metaParts.push('<span class=\"hero-default-job-meta-sep\"></span><span>' + escHtml(et) + '</span>');
  1373.                     html +=
  1374.                         '<a href=\"' + escHtml(url) + '\" class=\"hero-default-job\">' +
  1375.                         '<div class=\"hero-default-job-logo\">' +
  1376.                         (img ? '<img src=\"' + escHtml(img) + '\" alt=\"\">' : escHtml(initial)) +
  1377.                         '</div>' +
  1378.                         '<div class=\"hero-default-job-info\">' +
  1379.                         '<h3 class=\"hero-default-job-title\">' + escHtml(title) + '</h3>' +
  1380.                         '<p class=\"hero-default-job-meta\">' + metaParts.join('') + '</p>' +
  1381.                         '</div>' +
  1382.                         '<span class=\"hero-default-job-arrow\">' +
  1383.                         '<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>' +
  1384.                         '</span>' +
  1385.                         '</a>';
  1386.                 });
  1387.                 jobsBody.innerHTML = html;
  1388.             }
  1389.             function doSearch(query){
  1390.                 if (currentRequest && currentRequest.abort) { try { currentRequest.abort(); } catch(e){} }
  1391.                 setLoading();
  1392.                 var url = searchUrl + (searchUrl.indexOf('?') > -1 ? '&' : '?') + 'q=' + encodeURIComponent(query);
  1393.                 var ctrl = (typeof AbortController !== 'undefined') ? new AbortController() : null;
  1394.                 currentRequest = ctrl;
  1395.                 fetch(url, { headers: { 'Accept': 'application/json' }, signal: ctrl ? ctrl.signal : undefined })
  1396.                     .then(function(r){ return r.ok ? r.json() : Promise.reject(r.status); })
  1397.                     .then(function(data){ renderResults(data, query); })
  1398.                     .catch(function(err){
  1399.                         if (err && err.name === 'AbortError') return;
  1400.                         setEmpty();
  1401.                     });
  1402.             }
  1403.             input.addEventListener('input', function(){
  1404.                 var q = input.value.trim();
  1405.                 clearBtn.classList.toggle('is-visible', q.length > 0);
  1406.                 if (debounceTimer) clearTimeout(debounceTimer);
  1407.                 if (q.length < 2){ restoreDefault(); lastQuery = ''; return; }
  1408.                 if (q === lastQuery) return;
  1409.                 debounceTimer = setTimeout(function(){ lastQuery = q; doSearch(q); }, 280);
  1410.             });
  1411.             input.addEventListener('keydown', function(e){
  1412.                 if (e.key === 'Enter'){
  1413.                     e.preventDefault();
  1414.                     var q = input.value.trim();
  1415.                     if (!q) return;
  1416.                     window.location.href = jobsListUrl + '?q=' + encodeURIComponent(q);
  1417.                 }
  1418.                 if (e.key === 'Escape'){
  1419.                     input.value = ''; clearBtn.classList.remove('is-visible'); restoreDefault(); lastQuery = ''; input.blur();
  1420.                 }
  1421.             });
  1422.             clearBtn.addEventListener('click', function(){
  1423.                 input.value = ''; clearBtn.classList.remove('is-visible'); restoreDefault(); lastQuery = ''; input.focus();
  1424.             });
  1425.             document.querySelectorAll('.hero-popular-pill').forEach(function(pill){
  1426.                 pill.addEventListener('click', function(){
  1427.                     var keyword = pill.dataset.keyword || pill.dataset.label || '';
  1428.                     if (!keyword) return;
  1429.                     document.querySelectorAll('.hero-popular-pill').forEach(function(p){ p.classList.remove('is-active'); });
  1430.                     pill.classList.add('is-active');
  1431.                     input.value = keyword;
  1432.                     clearBtn.classList.add('is-visible');
  1433.                     lastQuery = keyword;
  1434.                     doSearch(keyword);
  1435.                     input.focus();
  1436.                 });
  1437.             });
  1438.             // Si l'input est pré-rempli (1er keyword populaire), on lance la recherche automatiquement
  1439.             var initialQuery = input.value.trim();
  1440.             if (initialQuery.length >= 2) {
  1441.                 clearBtn.classList.add('is-visible');
  1442.                 lastQuery = initialQuery;
  1443.                 doSearch(initialQuery);
  1444.             }
  1445.         })();
  1446.         (function(){
  1447.             var els = document.querySelectorAll('.reveal');
  1448.             if (!els.length) return;
  1449.             if (!('IntersectionObserver' in window)){
  1450.                 els.forEach(function(el){ el.classList.add('is-revealed'); });
  1451.                 return;
  1452.             }
  1453.             var io = new IntersectionObserver(function(entries){
  1454.                 entries.forEach(function(entry){
  1455.                     if (entry.isIntersecting){
  1456.                         entry.target.classList.add('is-revealed');
  1457.                         io.unobserve(entry.target);
  1458.                     }
  1459.                 });
  1460.             }, { threshold: 0.12, rootMargin: '0px 0px -60px 0px' });
  1461.             els.forEach(function(el){ io.observe(el); });
  1462.         })();
  1463.     </script>
  1464. ";
  1465.         
  1466.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1467.         
  1468.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1469.         yield from [];
  1470.     }
  1471.     /**
  1472.      * @codeCoverageIgnore
  1473.      */
  1474.     public function getTemplateName(): string
  1475.     {
  1476.         return "application/whileresume/website/candidates/landing.html.twig";
  1477.     }
  1478.     /**
  1479.      * @codeCoverageIgnore
  1480.      */
  1481.     public function isTraitable(): bool
  1482.     {
  1483.         return false;
  1484.     }
  1485.     /**
  1486.      * @codeCoverageIgnore
  1487.      */
  1488.     public function getDebugInfo(): array
  1489.     {
  1490.         return array (  1408 => 708,  1404 => 707,  1400 => 706,  1396 => 705,  1392 => 704,  1388 => 703,  1361 => 680,  1348 => 679,  1335 => 675,  1323 => 666,  1319 => 665,  1315 => 664,  1311 => 663,  1306 => 661,  1296 => 653,  1288 => 647,  1284 => 646,  1280 => 645,  1276 => 644,  1271 => 642,  1261 => 634,  1255 => 630,  1249 => 626,  1246 => 625,  1243 => 623,  1233 => 616,  1225 => 615,  1220 => 612,  1206 => 604,  1202 => 602,  1196 => 600,  1194 => 599,  1189 => 597,  1178 => 589,  1175 => 588,  1172 => 587,  1169 => 586,  1166 => 585,  1163 => 584,  1160 => 583,  1157 => 582,  1154 => 581,  1151 => 580,  1148 => 579,  1145 => 578,  1142 => 577,  1139 => 576,  1136 => 575,  1132 => 574,  1125 => 570,  1120 => 567,  1117 => 566,  1105 => 556,  1101 => 555,  1090 => 551,  1082 => 546,  1078 => 545,  1071 => 541,  1063 => 536,  1059 => 535,  1052 => 531,  1047 => 528,  1041 => 523,  1035 => 522,  1030 => 519,  1026 => 517,  1022 => 515,  1015 => 514,  1009 => 513,  1006 => 512,  1004 => 511,  1000 => 510,  997 => 509,  994 => 508,  988 => 505,  985 => 504,  982 => 503,  975 => 502,  969 => 501,  961 => 498,  957 => 496,  955 => 495,  952 => 494,  949 => 493,  946 => 492,  943 => 491,  940 => 490,  937 => 489,  934 => 488,  930 => 487,  927 => 486,  925 => 480,  920 => 477,  911 => 470,  907 => 469,  902 => 467,  894 => 462,  890 => 461,  885 => 459,  877 => 454,  873 => 453,  868 => 451,  859 => 445,  854 => 442,  848 => 437,  844 => 435,  837 => 434,  831 => 433,  828 => 432,  826 => 431,  823 => 430,  816 => 426,  805 => 422,  800 => 420,  793 => 416,  790 => 415,  787 => 414,  782 => 410,  779 => 409,  773 => 408,  770 => 407,  764 => 406,  761 => 405,  759 => 404,  751 => 398,  746 => 396,  743 => 395,  740 => 394,  734 => 393,  729 => 391,  723 => 388,  719 => 386,  716 => 385,  711 => 384,  708 => 383,  703 => 382,  701 => 381,  690 => 373,  682 => 372,  675 => 370,  669 => 366,  666 => 365,  660 => 364,  655 => 363,  650 => 362,  647 => 361,  644 => 360,  641 => 359,  629 => 349,  625 => 348,  620 => 346,  616 => 345,  601 => 337,  593 => 336,  589 => 334,  586 => 332,  582 => 330,  564 => 327,  558 => 326,  554 => 325,  550 => 324,  543 => 323,  526 => 322,  522 => 321,  519 => 320,  516 => 319,  513 => 318,  510 => 317,  507 => 316,  502 => 312,  497 => 310,  492 => 307,  488 => 304,  475 => 303,  190 => 29,  177 => 28,  155 => 26,  132 => 25,  109 => 24,  86 => 23,  75 => 1,  69 => 20,  65 => 19,  63 => 18,  61 => 5,  59 => 3,  46 => 1,);
  1491.     }
  1492.     public function getSourceContext(): Source
  1493.     {
  1494.         return new Source("{% extends 'application/whileresume/website/layout-social.html.twig' %}
  1495. {% set isFR = app.request.locale == 'fr' %}
  1496. {% set _keys = [
  1497.     'hero_search_placeholder','hero_popular_label',
  1498.     'hero_byline_jobs','hero_byline_apps','hero_byline_free','hero_kbd_enter',
  1499.     'hero_cta_signup','hero_cta_login',
  1500.     'search_loading','search_no_results','search_no_results_hint','search_results_count','search_view_all','search_view_offer','search_clear',
  1501.     'how_title',
  1502.     'apps_ios','apps_android','apps_web','apps_ios_desc','apps_android_desc','apps_web_desc',
  1503.     'articles_title','articles_view_all','read_article',
  1504.     'final_title',
  1505.     'final_recruiter_label','final_recruiter_title','final_recruiter_desc',
  1506.     'final_candidate_label','final_candidate_title','final_candidate_desc',
  1507.     'final_candidate','final_recruiter'
  1508. ] %}
  1509. {% set t = {} %}
  1510. {% for k in _keys %}
  1511.     {% set t = t|merge({(k): ('homepage.' ~ k)|trans({}, 'whr-public')}) %}
  1512. {% endfor %}
  1513. {% block title %}{{ landing.shortTitle }}{% endblock %}
  1514. {% block description %}{{ landing.shortDescription }}{% endblock %}
  1515. {% block robots %}index,follow{% endblock %}
  1516. {% block canonical %}{#% include \"/vitrine/lexend/components/languages/canonical_classic.html.twig\" %#}{% endblock %}
  1517. {% block css %}
  1518.     {{ parent() }}
  1519.     <style>
  1520.         :root{
  1521.             --wr-bg:#FBFCFE;
  1522.             --wr-bg-2:#F4F6FB;
  1523.             --wr-card:#FFFFFF;
  1524.             --wr-violet:#8A63C1;
  1525.             --wr-violet-2:#A98AD3;
  1526.             --wr-violet-soft:#F2EDFA;
  1527.             --wr-violet-softer:#F8F4FD;
  1528.             --wr-violet-dark:#6B47A6;
  1529.             --wr-ink:#1E1B2E;
  1530.             --wr-ink-2:#374151;
  1531.             --wr-muted:#6B7280;
  1532.             --wr-muted-2:#9CA3AF;
  1533.             --wr-line:#EEF1F7;
  1534.             --wr-line-2:#E5E9F0;
  1535.             --wr-shadow:0 1px 2px rgba(30,27,46,.04),0 4px 16px rgba(30,27,46,.04);
  1536.             --wr-shadow-hover:0 4px 8px rgba(138,99,192,.08),0 12px 32px rgba(138,99,192,.1);
  1537.             --wr-acc-yellow:#FEF3C7;  --wr-acc-yellow-fg:#B45309;
  1538.             --wr-acc-green:#D1FAE5;   --wr-acc-green-fg:#047857;
  1539.             --wr-acc-pink:#FCE7F3;    --wr-acc-pink-fg:#BE185D;
  1540.             --wr-acc-blue:#DBEAFE;    --wr-acc-blue-fg:#1E40AF;
  1541.             --wr-acc-orange:#FED7AA;  --wr-acc-orange-fg:#C2410C;
  1542.             --wr-acc-violet:#EDE9FE;  --wr-acc-violet-fg:#6D28D9;
  1543.             --wr-acc-cyan:#CFFAFE;    --wr-acc-cyan-fg:#0E7490;
  1544.         }
  1545.         body .main-content.right-chat-active{padding-right:0!important}
  1546.         body .main-content{padding-right:0!important}
  1547.         body .right-chat{display:none!important}
  1548.         body .middle-sidebar-bottom .middle-sidebar-left{padding-right:0!important;max-width:none!important;width:100%!important}
  1549.         body .middle-sidebar-bottom{max-width:none!important}
  1550.         .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}
  1551.         @media(max-width:991px){.wr{margin:0 -15px}}
  1552.         .wr *{box-sizing:border-box}
  1553.         .wr a{color:inherit;text-decoration:none}
  1554.         .wr-section{padding:80px 32px;background:var(--wr-bg);position:relative}
  1555.         .wr-section--tight{padding:48px 32px}
  1556.         @media(max-width:768px){.wr-section{padding:56px 20px}.wr-section--tight{padding:36px 20px}}
  1557.         .wr-section + .wr-section::before{
  1558.             content:\"\";position:absolute;top:0;left:50%;transform:translateX(-50%);
  1559.             width:80px;height:1px;
  1560.             background:linear-gradient(90deg,transparent,var(--wr-line-2),transparent);
  1561.         }
  1562.         .wr-container{max-width:1200px;margin:0 auto;position:relative}
  1563.         .wr-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:100px;background:var(--wr-violet-soft);color:var(--wr-violet-dark);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;margin-bottom:22px}
  1564.         .wr-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--wr-violet);animation:wrPulse 2.4s ease-in-out infinite}
  1565.         @keyframes wrPulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}
  1566.         .wr-title{font-family:inherit !important;font-weight:700 !important;font-size:28px;line-height:1.15;letter-spacing:-0.025em;color:var(--wr-ink) !important;margin:0 auto 16px;max-width:1200px;text-align:center}
  1567.         @media(min-width:768px){.wr-title{font-size:34px}}
  1568.         @media(min-width:1024px){.wr-title{font-size:40px}}
  1569.         .wr-title--sm{font-size:24px}
  1570.         @media(min-width:768px){.wr-title--sm{font-size:30px}}
  1571.         .wr-title em{font-style:normal;font-weight:700 !important;color:var(--wr-violet) !important}
  1572.         .wr-lede{font-size:17px;line-height:1.55;font-weight:400;color:var(--wr-ink-2) !important;margin:0 auto;max-width:680px}
  1573.         .wr-section-head{text-align:center;margin-bottom:56px}
  1574.         @keyframes wrFadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
  1575.         @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)}}
  1576.         .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
  1577.         .reveal.is-revealed{opacity:1;transform:translateY(0)}
  1578.         .reveal--left{transform:translateX(-32px) translateY(0)}
  1579.         .reveal--left.is-revealed{transform:translateX(0)}
  1580.         .reveal--right{transform:translateX(32px) translateY(0)}
  1581.         .reveal--right.is-revealed{transform:translateX(0)}
  1582.         .reveal--scale{transform:scale(.96);opacity:0}
  1583.         .reveal--scale.is-revealed{transform:scale(1);opacity:1}
  1584.         .reveal[data-reveal-delay=\"1\"]{transition-delay:.08s}
  1585.         .reveal[data-reveal-delay=\"2\"]{transition-delay:.16s}
  1586.         .reveal[data-reveal-delay=\"3\"]{transition-delay:.24s}
  1587.         .reveal[data-reveal-delay=\"4\"]{transition-delay:.32s}
  1588.         @media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important}}
  1589.         /* ═══ HERO ═══ */
  1590.         .hero{position:relative;background:var(--wr-bg);padding:24px 32px 0;overflow:hidden}
  1591.         @media(max-width:768px){.hero{padding:18px 18px 0}}
  1592.         .hero::before{content:\"\";position:absolute;top:-260px;right:-180px;width:560px;height:560px;background:radial-gradient(circle,rgba(138,99,192,.14) 0%,transparent 65%);pointer-events:none;filter:blur(50px)}
  1593.         .hero::after{content:\"\";position:absolute;top:120px;left:-180px;width:480px;height:480px;background:radial-gradient(circle,rgba(138,99,192,.09) 0%,transparent 65%);pointer-events:none;filter:blur(50px)}
  1594.         .hero-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;text-align:center}
  1595.         .hero-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border-radius:100px;background:var(--wr-violet-soft);color:var(--wr-violet-dark);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;opacity:0;transform:translateY(8px);animation:wrFadeUp .8s ease forwards}
  1596.         .hero-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--wr-violet);animation:wrPulse2 2s ease infinite}
  1597.         /* H1 — on force la couleur et la taille pour battre les styles globaux du layout social */
  1598.         .wr .hero-title{font-family:inherit !important;font-weight:700 !important;font-size:32px;line-height:1.05;letter-spacing:-0.04em;color:var(--wr-ink) !important;margin:0 auto 12px;width:100%;max-width:1200px;opacity:0;transform:translateY(12px);animation:wrFadeUp .9s cubic-bezier(.2,.7,.2,1) .15s forwards;text-align:center}
  1599.         @media(min-width:768px){.wr .hero-title{font-size:48px;letter-spacing:-0.045em}}
  1600.         @media(min-width:1100px){.wr .hero-title{font-size:57px;letter-spacing:-0.045em}}
  1601.         .wr .hero-title-accent{color:var(--wr-violet) !important;font-weight:700 !important}
  1602.         .wr .hero-lede{font-size:16px;line-height:1.5;color:var(--wr-ink-2) !important;font-weight:400;margin:0 auto 16px;max-width:680px;opacity:0;animation:wrFadeUp .9s ease .4s forwards;text-align:center}
  1603.         @media(min-width:768px){.wr .hero-lede{font-size:18px}}
  1604.         .wr .hero-lede-accent{color:var(--wr-violet) !important;font-weight:600}
  1605.         .hero-search-wrap{max-width:1200px;margin:0 auto 12px;opacity:0;animation:wrFadeUp .9s ease .55s forwards;position:relative;z-index:5}
  1606.         .hero-search{background:var(--wr-card);border-radius:14px;box-shadow:0 0 20px 0 rgba(0,0,0,0.05),0 16px 40px rgba(138,99,192,.06);padding:10px;position:relative}
  1607.         .hero-search-inner{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;background:#F9FAFB;border:1px solid #E5E7EB;transition:border-color .2s,background .2s}
  1608.         .hero-search-inner:focus-within{border-color:rgba(138,99,192,.4);background:#fff}
  1609.         .hero-search-icon{color:var(--wr-muted-2);display:flex;flex-shrink:0}
  1610.         .hero-search-icon svg{width:16px;height:16px}
  1611.         .hero-search-input{flex:1;border:0;outline:0;background:transparent;font-size:14.5px;font-family:inherit;color:var(--wr-ink);padding:6px 0;min-width:0}
  1612.         .hero-search-input::placeholder{color:var(--wr-muted-2)}
  1613.         .hero-search-clear{background:none;border:0;color:var(--wr-muted-2);cursor:pointer;padding:4px;display:none;font-family:inherit;border-radius:6px;transition:background .15s,color .15s}
  1614.         .hero-search-clear:hover{background:var(--wr-violet-soft);color:var(--wr-violet)}
  1615.         .hero-search-clear.is-visible{display:flex;align-items:center}
  1616.         .hero-search-clear svg{width:14px;height:14px}
  1617.         .hero-search-kbd{display:none;align-items:center;padding:3px 8px;background:#fff;border:1px solid #E5E7EB;border-radius:6px;font-size:10.5px;font-weight:600;color:var(--wr-muted);font-family:inherit;letter-spacing:.02em;white-space:nowrap;flex-shrink:0}
  1618.         .hero-search-inner:focus-within .hero-search-kbd{display:inline-flex}
  1619.         .hero-jobs-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 22px 10px;border-bottom:1px solid var(--wr-line);margin-bottom:4px}
  1620.         @media(max-width:540px){.hero-jobs-header{padding:12px 16px 8px}}
  1621.         .hero-jobs-count{font-size:11.5px;color:var(--wr-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
  1622.         .hero-jobs-count strong{color:var(--wr-violet);font-weight:800;font-size:13px;margin-right:4px}
  1623.         .hero-jobs-link{font-size:11px;font-weight:700;color:var(--wr-violet);text-transform:uppercase;letter-spacing:.08em;text-decoration:none;display:inline-flex;align-items:center;gap:5px;transition:color .15s,transform .15s}
  1624.         .hero-jobs-link:hover{color:var(--wr-violet-dark);text-decoration:none;transform:translateX(2px)}
  1625.         .hero-jobs-link svg{width:11px;height:11px}
  1626.         .hero-jobs-empty{text-align:center;padding:48px 20px;color:var(--wr-muted)}
  1627.         .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}
  1628.         .hero-jobs-empty-icon svg{width:22px;height:22px}
  1629.         .hero-jobs-empty-title{font-weight:600;font-size:14px;color:var(--wr-ink);margin:0 0 4px}
  1630.         .hero-jobs-empty-hint{font-size:13px;margin:0;color:var(--wr-muted)}
  1631.         .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}
  1632.         .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}
  1633.         @keyframes wrSpin{to{transform:rotate(360deg)}}
  1634.         .hero-popular{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin-bottom:18px;opacity:0;animation:wrFadeUp .9s ease .7s forwards}
  1635.         .hero-popular-label{font-size:11px;font-weight:600;color:var(--wr-muted);text-transform:uppercase;letter-spacing:.06em;margin-right:4px}
  1636.         .hero-popular-pill{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:100px;background:var(--wr-violet-soft);color:var(--wr-violet);font-size:12.5px;font-weight:500;font-family:inherit;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s,transform .15s,color .15s}
  1637.         .hero-popular-pill:hover{background:#EDE9FE;border-color:rgba(138,99,192,.2);transform:translateY(-1px);color:var(--wr-violet);text-decoration:none}
  1638.         .hero-popular-pill.is-active{background:var(--wr-violet);color:#fff;border-color:var(--wr-violet)}
  1639.         .hero-popular-pill.is-active:hover{background:var(--wr-violet-dark);color:#fff}
  1640.         .hero-popular-pill-icon{font-size:13px;line-height:1}
  1641.         .hero-cta{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:24px 0 8px;opacity:0;animation:wrFadeUp .9s ease 1.1s forwards}
  1642.         .hero-cta-btn,.hero-cta-btn:link,.hero-cta-btn:visited,.hero-cta-btn:hover,.hero-cta-btn:focus,.hero-cta-btn:active{color:#fff !important;text-decoration:none !important}
  1643.         .hero-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:11px;font-size:13.5px;font-weight:700;font-family:inherit;line-height:1;background:var(--wr-violet);border:1px solid var(--wr-violet);box-shadow:0 4px 14px rgba(138,99,193,.32);transition:background .15s,border-color .15s,transform .15s,box-shadow .15s}
  1644.         .hero-cta-btn:hover{background:var(--wr-violet-dark);border-color:var(--wr-violet-dark);transform:translateY(-2px);box-shadow:0 6px 20px rgba(138,99,193,.4)}
  1645.         .hero-cta-btn svg{width:15px;height:15px;flex-shrink:0;stroke:#fff !important;color:#fff !important}
  1646.         .hero-cta-btn span{color:#fff !important}
  1647.         @media(max-width:540px){.hero-cta{flex-direction:column;align-items:stretch}.hero-cta-btn{justify-content:center}}
  1648.         .hero-default-jobs{position:relative;z-index:2;max-width:1200px;margin:0 auto;background:var(--wr-card);border:1px solid var(--wr-line);border-radius:18px;padding:8px 0;box-shadow:var(--wr-shadow);opacity:0;animation:wrFadeUp .9s ease 1s forwards;text-align:left}
  1649.         .hero-default-job{display:flex;align-items:center;gap:16px;padding:14px 22px;text-decoration:none;color:inherit;border-bottom:1px solid var(--wr-line);transition:background .15s}
  1650.         .hero-default-job:last-child{border-bottom:0}
  1651.         .hero-default-job:hover{background:var(--wr-violet-softer);text-decoration:none;color:inherit}
  1652.         .hero-default-job-logo{width:42px;height:42px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;overflow:hidden}
  1653.         .hero-default-job-logo img{width:100%;height:100%;object-fit:cover}
  1654.         .hero-default-job:nth-child(7n+1) .hero-default-job-logo{background:var(--wr-acc-yellow);color:var(--wr-acc-yellow-fg)}
  1655.         .hero-default-job:nth-child(7n+2) .hero-default-job-logo{background:var(--wr-acc-green);color:var(--wr-acc-green-fg)}
  1656.         .hero-default-job:nth-child(7n+3) .hero-default-job-logo{background:var(--wr-acc-pink);color:var(--wr-acc-pink-fg)}
  1657.         .hero-default-job:nth-child(7n+4) .hero-default-job-logo{background:var(--wr-acc-blue);color:var(--wr-acc-blue-fg)}
  1658.         .hero-default-job:nth-child(7n+5) .hero-default-job-logo{background:var(--wr-acc-orange);color:var(--wr-acc-orange-fg)}
  1659.         .hero-default-job:nth-child(7n+6) .hero-default-job-logo{background:var(--wr-acc-violet);color:var(--wr-acc-violet-fg)}
  1660.         .hero-default-job:nth-child(7n+7) .hero-default-job-logo{background:var(--wr-acc-cyan);color:var(--wr-acc-cyan-fg)}
  1661.         .hero-default-job-info{flex:1;min-width:0}
  1662.         .hero-default-job-title{font-weight:600 !important;font-size:14.5px;color:var(--wr-ink) !important;margin:0 0 2px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  1663.         .hero-default-job-meta{font-size:12.5px;color:var(--wr-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}
  1664.         .hero-default-job-meta-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--wr-muted-2);flex-shrink:0}
  1665.         .hero-default-job-arrow{flex-shrink:0;color:var(--wr-muted-2);transition:color .15s,transform .15s}
  1666.         .hero-default-job-arrow svg{width:15px;height:15px}
  1667.         .hero-default-job:hover .hero-default-job-arrow{color:var(--wr-violet);transform:translateX(3px)}
  1668.         @media(max-width:768px){.hero-default-jobs{margin:0 -18px;border-radius:14px}.hero-default-job{padding:12px 16px;gap:12px}.hero-default-job-logo{width:36px;height:36px;font-size:13px}.hero-default-job-title{font-size:13.5px}.hero-default-job-meta{font-size:11.5px;gap:6px;flex-wrap:wrap;white-space:normal}}
  1669.         /* ═══ HOW IT WORKS ═══ */
  1670.         .how-card{background:#F4ECE1;border-radius:24px;padding:32px 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative}
  1671.         @media(max-width:991px){.how-card{grid-template-columns:1fr;gap:8px;padding:24px 16px}}
  1672.         @media(min-width:992px){.how-card .how-step + .how-step{border-left:1px solid rgba(28,25,22,.08)}}
  1673.         .how-step{display:flex;flex-direction:column;align-items:center;text-align:center;padding:16px 20px;gap:16px}
  1674.         .how-step-illu{width:100%;max-width:280px;aspect-ratio:1/1;border-radius:16px;background:rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;margin-bottom:4px;overflow:hidden}
  1675.         .how-step-illu img{width:100%;height:100%;object-fit:contain;display:block}
  1676.         .how-step-title{font-weight:700 !important;font-size:18px;line-height:1.3;letter-spacing:-0.01em;color:var(--wr-ink) !important;margin:0}
  1677.         @media(min-width:992px){.how-step-title{font-size:20px}}
  1678.         .how-step-desc{font-size:14px;line-height:1.55;color:var(--wr-ink-2) !important;margin:0;max-width:320px}
  1679.         /* ═══ FEATURES 01-04 ═══ */
  1680.         .feat-block{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-bottom:64px}
  1681.         .feat-block:last-child{margin-bottom:0}
  1682.         @media(max-width:991px){.feat-block{grid-template-columns:1fr;gap:24px;margin-bottom:48px}}
  1683.         .feat-block:nth-child(odd) .feat-illu{order:2}
  1684.         .feat-block:nth-child(odd) .feat-content{order:1}
  1685.         .feat-block:nth-child(even) .feat-illu{order:1}
  1686.         .feat-block:nth-child(even) .feat-content{order:2}
  1687.         @media(max-width:991px){.feat-block .feat-illu{order:1}.feat-block .feat-content{order:2}}
  1688.         .feat-illu{background:#F5EDE3;border-radius:20px;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;color:var(--wr-violet);overflow:hidden;position:relative}
  1689.         .feat-illu img{width:100%;height:100%;object-fit:contain;display:block}
  1690.         .feat-content{display:flex;flex-direction:column;gap:18px}
  1691.         .feat-label{font-size:30px;font-weight:800 !important;color:var(--wr-ink) !important;letter-spacing:-0.02em;margin:0;line-height:1}
  1692.         .feat-title{font-weight:700 !important;font-size:24px;line-height:1.2;letter-spacing:-0.02em;color:var(--wr-ink) !important;margin:0}
  1693.         @media(min-width:768px){.feat-title{font-size:28px}}
  1694.         @media(min-width:1100px){.feat-title{font-size:30px}}
  1695.         .feat-desc{display:flex;flex-direction:column;gap:14px}
  1696.         .feat-desc p,.feat-desc li,.feat-desc span,.feat-desc div,.feat-desc strong,.feat-desc em{font-size:16px;line-height:1.6;color:var(--wr-ink-2);margin:0;opacity:.85}
  1697.         .feat-desc p{margin:0 0 8px}
  1698.         .feat-desc p:last-child{margin-bottom:0}
  1699.         /* Bloc HTML riche descriptionPage2/3 — forcer 16px sur tout le contenu */
  1700.         .wr-rich-description{margin-top:18px;text-align:center;color:var(--wr-muted)}
  1701.         .wr-rich-description,
  1702.         .wr-rich-description p,
  1703.         .wr-rich-description li,
  1704.         .wr-rich-description span,
  1705.         .wr-rich-description div,
  1706.         .wr-rich-description strong,
  1707.         .wr-rich-description em,
  1708.         .wr-rich-description a{font-size:16px;line-height:1.6}
  1709.         .wr-rich-description p{margin:0 0 10px}
  1710.         .wr-rich-description p:last-child{margin-bottom:0}
  1711.         .feat-desc strong{color:var(--wr-ink);font-weight:700;opacity:1}
  1712.         .feat-quote{background:var(--wr-card);border:1px solid var(--wr-line);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:10px;margin-top:8px}
  1713.         .feat-quote-text{font-size:14px;line-height:1.55;color:var(--wr-ink-2);margin:0;font-style:italic}
  1714.         .feat-quote-author{display:flex;flex-direction:column}
  1715.         .feat-quote-name{font-size:13px;font-weight:700;color:var(--wr-ink);margin:0}
  1716.         .feat-quote-role{font-size:12px;color:var(--wr-muted);margin:0}
  1717.         /* ═══ APPS ═══ */
  1718.         .apps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  1719.         @media(max-width:768px){.apps-grid{grid-template-columns:1fr}}
  1720.         .app-card{background:var(--wr-card);border:1px solid var(--wr-line);border-radius:18px;padding:24px;display:flex;flex-direction:column;align-items:flex-start;transition:transform .2s,border-color .2s,box-shadow .2s}
  1721.         .app-card:hover{transform:translateY(-3px);border-color:var(--wr-violet-2);box-shadow:var(--wr-shadow-hover);color:inherit;text-decoration:none}
  1722.         .app-card-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:18px}
  1723.         .app-card-icon svg{width:22px;height:22px}
  1724.         .app-card-name{font-weight:500 !important;font-size:18px;letter-spacing:-0.01em;color:var(--wr-ink) !important;margin:0 0 6px}
  1725.         .app-card-desc{font-size:13px;line-height:1.5;color:var(--wr-muted);margin:0 0 16px;flex:1}
  1726.         .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}
  1727.         .app-card-cta svg{width:11px;height:11px;transition:transform .15s}
  1728.         .app-card:hover .app-card-cta svg{transform:translateX(3px)}
  1729.         /* ═══ ARTICLES ═══ */
  1730.         .articles-list{display:flex;flex-direction:column;gap:10px;max-width:1200px;margin:0 auto}
  1731.         .wr-article{background:var(--wr-card);border-radius:14px;padding:14px;box-shadow:0 0 16px 0 rgba(0,0,0,0.04);display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .2s}
  1732.         .wr-article:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(138,99,192,.1);color:inherit;text-decoration:none}
  1733.         .wr-article-logo{width:50px;height:50px;border-radius:12px;flex-shrink:0;background:linear-gradient(135deg,#EDE9FE,#DDD6FE);display:flex;align-items:center;justify-content:center;color:var(--wr-violet);overflow:hidden}
  1734.         .wr-article-logo svg{width:24px;height:24px;opacity:.9}
  1735.         .wr-article-info{flex:1;min-width:0}
  1736.         .wr-article-title{font-size:14px;font-weight:700 !important;color:var(--wr-ink) !important;line-height:1.3;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  1737.         .wr-article-meta{font-size:12px;color:var(--wr-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px;margin:0}
  1738.         .wr-article-meta-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:#D1D5DB;flex-shrink:0}
  1739.         .wr-article-badge{font-size:11px;font-weight:600;color:var(--wr-violet);background:var(--wr-violet-soft);padding:3px 9px;border-radius:100px;white-space:nowrap;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}
  1740.         .wr-article-arrow{flex-shrink:0;color:var(--wr-muted-2);transition:color .15s,transform .15s}
  1741.         .wr-article:hover .wr-article-arrow{color:var(--wr-violet);transform:translateX(2px)}
  1742.         .wr-article-arrow svg{width:18px;height:18px}
  1743.         @media(max-width:540px){.wr-article{padding:12px;gap:10px}.wr-article-logo{width:42px;height:42px}.wr-article-logo svg{width:20px;height:20px}.wr-article-title{font-size:13px}.wr-article-meta{font-size:11px;gap:6px;flex-wrap:wrap;white-space:normal}.wr-article-badge{display:none}}
  1744.         .articles-cta{text-align:center;margin-top:36px}
  1745.         .articles-cta a{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:11px;background:var(--wr-violet);color:#fff;font-size:13px;font-weight:600;text-decoration:none;box-shadow:0 4px 12px rgba(138,99,192,.3);transition:background .15s,transform .15s,box-shadow .15s}
  1746.         .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}
  1747.         .articles-cta svg{width:12px;height:12px;transition:transform .15s}
  1748.         .articles-cta a:hover svg{transform:translateX(3px)}
  1749.         /* ═══ CTA FINAL ═══ */
  1750.         .final-card{position:relative;background:linear-gradient(135deg,#8A63C0 0%,#9D7BCC 100%);border-radius:28px;padding:48px 40px;color:#fff;overflow:hidden;box-shadow:0 20px 60px -12px rgba(138,99,192,.4)}
  1751.         @media(max-width:768px){.final-card{padding:32px 22px;border-radius:22px}}
  1752.         .final-title{font-weight:800 !important;font-size:28px;line-height:1.15;letter-spacing:-0.02em;color:#fff !important;margin:0 0 36px;max-width:780px}
  1753.         @media(min-width:768px){.final-title{font-size:38px}}
  1754.         .final-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  1755.         @media(max-width:768px){.final-grid{grid-template-columns:1fr;gap:14px}}
  1756.         .final-sub{background:#fff;border-radius:18px;padding:28px;display:flex;flex-direction:column}
  1757.         @media(max-width:768px){.final-sub{padding:22px}}
  1758.         .final-sub-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}
  1759.         .final-sub-icon{width:44px;height:44px;border-radius:11px;background:var(--wr-violet-soft);color:var(--wr-violet);display:flex;align-items:center;justify-content:center;flex-shrink:0}
  1760.         .final-sub-icon svg{width:22px;height:22px}
  1761.         .final-sub-label{font-size:12.5px;font-weight:700;color:var(--wr-violet);text-transform:uppercase;letter-spacing:.1em}
  1762.         .final-sub-title{font-weight:800 !important;font-size:18px;line-height:1.3;letter-spacing:-0.01em;color:var(--wr-ink) !important;margin:0 0 10px}
  1763.         .final-sub-desc{font-size:14px;line-height:1.55;color:var(--wr-muted);margin:0 0 24px;flex:1}
  1764.         .final-sub-btn{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--wr-violet);color:#fff;padding:14px 18px;border-radius:11px;font-size:14px;font-weight:700;text-decoration:none;transition:background .15s,transform .15s,box-shadow .15s;box-shadow:0 4px 12px rgba(138,99,192,.3)}
  1765.         .final-sub-btn:hover{background:var(--wr-violet-dark);color:#fff;transform:translateY(-2px);box-shadow:0 6px 18px rgba(138,99,192,.4);text-decoration:none}
  1766.         .final-sub-btn svg{width:14px;height:14px;transition:transform .15s}
  1767.         .final-sub-btn:hover svg{transform:translateX(3px)}
  1768.     </style>
  1769. {% endblock css %}
  1770. {% block body %}
  1771.     <div class=\"wr\">
  1772.         {# ═══════════════ HERO ═══════════════ #}
  1773.         <section class=\"hero\" style=\"padding-top:60px;\">
  1774.             <div class=\"hero-inner\">
  1775.                 <h1 class=\"hero-title\">{{ landing.titlePage|raw }}</h1>
  1776.                 <p class=\"hero-lede\">{{ landing.descriptionPage|raw }}</p>
  1777.                 {# Pills \"Populaire\" — au-dessus de la recherche.
  1778.                    Le 1er keyword est utilisé comme valeur par défaut du champ de recherche. #}
  1779.                 {% set _firstKeyword = '' %}
  1780.                 {% if popularKeywords is defined and popularKeywords|length > 0 %}
  1781.                     {% set _firstKw = popularKeywords|first %}
  1782.                     {% set _firstKeyword = _firstKw.keyword ?? _firstKw.searchKeyword ?? _firstKw.label ?? '' %}
  1783.                     <div class=\"hero-popular\">
  1784.                         <span class=\"hero-popular-label\">{{ t.hero_popular_label }}</span>
  1785.                         {% for kw in popularKeywords|slice(0, 5) %}
  1786.                             <button type=\"button\" class=\"hero-popular-pill{% if loop.first %} is-active{% endif %}\"
  1787.                                     data-keyword=\"{{ kw.keyword ?? kw.searchKeyword }}\"
  1788.                                     data-label=\"{{ kw.label }}\">
  1789.                                 {% if kw.icon %}<span class=\"hero-popular-pill-icon\">{{ kw.icon|raw }}</span>{% endif %}
  1790.                                 <span>{{ kw.label }}</span>
  1791.                             </button>
  1792.                         {% endfor %}
  1793.                     </div>
  1794.                 {% endif %}
  1795.                 {# Recherche inline AJAX #}
  1796.                 <div class=\"hero-search-wrap\">
  1797.                     <div class=\"hero-search\" id=\"wrHeroSearch\"
  1798.                          data-search-url=\"{% if isFR %}{{ path('locale_api_jobs_search',{'_locale':'fr'}) }}{% else %}{{ path('api_jobs_search') }}{% endif %}\"
  1799.                          data-jobs-list-url=\"{% if isFR %}{{ path('locale_whileresume_jobs_list',{'_locale':'fr'}) }}{% else %}{{ path('whileresume_jobs_list') }}{% endif %}\">
  1800.                         <div class=\"hero-search-inner\">
  1801.                             <span class=\"hero-search-icon\">
  1802.                                 <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1803.                                     <circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"M21 21l-4.35-4.35\"/>
  1804.                                 </svg>
  1805.                             </span>
  1806.                             <input type=\"text\" name=\"q\" id=\"wrHeroSearchInput\" class=\"hero-search-input\"
  1807.                                    placeholder=\"{{ t.hero_search_placeholder }}\"
  1808.                                    value=\"{{ _firstKeyword }}\"
  1809.                                    autocomplete=\"off\" />
  1810.                             <span class=\"hero-search-kbd\">↵ {{ isFR ? 'Entrée' : 'Enter' }}</span>
  1811.                             <button type=\"button\" class=\"hero-search-clear\" id=\"wrHeroSearchClear\" aria-label=\"{{ t.search_clear }}\">
  1812.                                 <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1813.                                     <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/>
  1814.                                 </svg>
  1815.                             </button>
  1816.                         </div>
  1817.                     </div>
  1818.                 </div>
  1819.                 {# Liste de jobs — par défaut popularJobsForVisitor #}
  1820.                 {% set _heroCount = 0 %}
  1821.                 {% set _heroTotal = 0 %}
  1822.                 {% if popularJobsForVisitor is defined %}
  1823.                     {% for block in popularJobsForVisitor %}
  1824.                         {% if block.jobs is defined %}{% set _heroTotal = _heroTotal + block.jobs|length %}{% endif %}
  1825.                     {% endfor %}
  1826.                 {% endif %}
  1827.                 <div class=\"hero-default-jobs\" id=\"wrHeroJobsList\">
  1828.                     <div class=\"hero-jobs-header\" id=\"wrHeroJobsHeader\">
  1829.                         <span class=\"hero-jobs-count\" id=\"wrHeroJobsCount\">
  1830.                             <strong>{{ _heroTotal ?: (totalJobs ?? '') }}</strong>{{ t.search_results_count }}
  1831.                         </span>
  1832.                         <a href=\"{% if isFR %}{{ path('locale_whileresume_jobs_list',{'_locale':'fr'}) }}{% else %}{{ path('whileresume_jobs_list') }}{% endif %}\" class=\"hero-jobs-link\" id=\"wrHeroJobsLink\">
  1833.                             {{ t.search_view_all }}
  1834.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1835.                                 <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/><polyline points=\"12 5 19 12 12 19\"/>
  1836.                             </svg>
  1837.                         </a>
  1838.                     </div>
  1839.                     <div id=\"wrHeroJobsBody\">
  1840.                         {% if popularJobsForVisitor is defined and popularJobsForVisitor|length > 0 %}
  1841.                             {% for block in popularJobsForVisitor %}
  1842.                                 {% if block.jobs is defined and block.jobs|length > 0 %}
  1843.                                     {% for j in block.jobs %}
  1844.                                         {% if _heroCount < 6 %}
  1845.                                             <a href=\"#\" class=\"hero-default-job\">
  1846.                                                 <div class=\"hero-default-job-logo\">
  1847.                                                     {{ (j.jobTitle ?? '?')|slice(0,1)|upper }}
  1848.                                                 </div>
  1849.                                                 <div class=\"hero-default-job-info\">
  1850.                                                     <h3 class=\"hero-default-job-title\">{{ j.jobTitle }}</h3>
  1851.                                                     <p class=\"hero-default-job-meta\">
  1852.                                                         {% if j.city %}<span>{{ j.city }}</span>{% endif %}
  1853.                                                         {% if j.employmentType %}
  1854.                                                             <span class=\"hero-default-job-meta-sep\"></span>
  1855.                                                             <span>{{ j.employmentType }}</span>
  1856.                                                         {% endif %}
  1857.                                                     </p>
  1858.                                                 </div>
  1859.                                                 <span class=\"hero-default-job-arrow\">
  1860.                                                     <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>
  1861.                                                 </span>
  1862.                                             </a>
  1863.                                             {% set _heroCount = _heroCount + 1 %}
  1864.                                         {% endif %}
  1865.                                     {% endfor %}
  1866.                                 {% endif %}
  1867.                             {% endfor %}
  1868.                         {% endif %}
  1869.                     </div>
  1870.                 </div>
  1871.                 {# CTA pour utilisateurs non connectés #}
  1872.                 {% if app.user is null %}
  1873.                     <div class=\"hero-cta\">
  1874.                         <a href=\"{{ path('whileresume_resume_' ~ app.request.locale) }}\" class=\"hero-cta-btn\">
  1875.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1876.                                 <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\"/>
  1877.                             </svg>
  1878.                             {{ t.hero_cta_signup }}
  1879.                         </a>
  1880.                         <a href=\"{% if isFR %}{{ path('locale_app_login',{'_locale':'fr'}) }}{% else %}{{ path('app_login') }}{% endif %}\" class=\"hero-cta-btn\">
  1881.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  1882.                                 <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\"/>
  1883.                             </svg>
  1884.                             {{ t.hero_cta_login }}
  1885.                         </a>
  1886.                     </div>
  1887.                 {% endif %}
  1888.                 {% if landing.descriptionPage2 or landing.descriptionPage3 %}
  1889.                     <div class=\"wr-rich-description\">
  1890.                         {% if landing.descriptionPage2 %}<div>{{ landing.descriptionPage2|raw }}</div>{% endif %}
  1891.                         {% if landing.descriptionPage3 %}<div>{{ landing.descriptionPage3|raw }}</div>{% endif %}
  1892.                     </div>
  1893.                 {% endif %}
  1894.             </div>
  1895.         </section>
  1896.         {# ═══════════════ COMMENT ÇA MARCHE ═══════════════ #}
  1897.         <section class=\"wr-section\">
  1898.             <div class=\"wr-container\">
  1899.                 <div class=\"wr-section-head\">
  1900.                     <h2 class=\"wr-title\">{{ t.how_title }}</h2>
  1901.                 </div>
  1902.                 <div class=\"how-card\">
  1903.                     <div class=\"how-step reveal\" data-reveal-delay=\"1\">
  1904.                         <div class=\"how-step-illu\">
  1905.                             <img src=\"/uploads/rh/mascotte_register.png\" alt=\"{{ landing.titleWork1 }}\" loading=\"lazy\">
  1906.                         </div>
  1907.                         <h3 class=\"how-step-title\">{{ landing.titleWork1|raw }}</h3>
  1908.                         <p class=\"how-step-desc\">{{ landing.descriptionWork1|raw }}</p>
  1909.                     </div>
  1910.                     <div class=\"how-step reveal\" data-reveal-delay=\"2\">
  1911.                         <div class=\"how-step-illu\">
  1912.                             <img src=\"/uploads/rh/mascotte_upload2.png\" alt=\"{{ landing.titleWork2 }}\" loading=\"lazy\">
  1913.                         </div>
  1914.                         <h3 class=\"how-step-title\">{{ landing.titleWork2|raw }}</h3>
  1915.                         <p class=\"how-step-desc\">{{ landing.descriptionWork2|raw }}</p>
  1916.                     </div>
  1917.                     <div class=\"how-step reveal\" data-reveal-delay=\"3\">
  1918.                         <div class=\"how-step-illu\">
  1919.                             <img src=\"/uploads/rh/mascotte_reunion.png\" alt=\"{{ landing.titleWork3 }}\" loading=\"lazy\">
  1920.                         </div>
  1921.                         <h3 class=\"how-step-title\">{{ landing.titleWork3|raw }}</h3>
  1922.                         <p class=\"how-step-desc\">{{ landing.descriptionWork3|raw }}</p>
  1923.                     </div>
  1924.                 </div>
  1925.             </div>
  1926.         </section>
  1927.         {# ═══════════════ FEATURES 01-04 ═══════════════ #}
  1928.         <section class=\"wr-section\">
  1929.             <div class=\"wr-container\">
  1930.                 {% set _featImages = [
  1931.                     '/uploads/rh/mascotte_filtrage3.png',
  1932.                     '/uploads/rh/mascotte_upload.png',
  1933.                     '/uploads/rh/mascotte_register.png',
  1934.                     '/uploads/rh/mascotte_reunion.png'
  1935.                 ] %}
  1936.                 {% for i in 1..4 %}
  1937.                     {% set _label = attribute(landing, 'labelPresentation' ~ i) ?: ('0' ~ i ~ '.') %}
  1938.                     {% set _title = attribute(landing, 'titlePresentation' ~ i) %}
  1939.                     {% set _desc = attribute(landing, 'descriptionPresentation' ~ i) %}
  1940.                     {% set _quote = attribute(landing, 'citationPresentation' ~ i) %}
  1941.                     {% set _author = attribute(landing, 'authorPresentation' ~ i) %}
  1942.                     {% set _role = attribute(landing, 'rolePresentation' ~ i) %}
  1943.                     {% if _title or _desc or _quote %}
  1944.                         <div class=\"feat-block reveal\">
  1945.                             <div class=\"feat-illu\">
  1946.                                 <img src=\"{{ _featImages[i-1] }}\" alt=\"{{ _title }}\" loading=\"lazy\">
  1947.                             </div>
  1948.                             <div class=\"feat-content\">
  1949.                                 {% if _label %}<span class=\"feat-label\">{{ _label }}</span>{% endif %}
  1950.                                 {% if _title %}<h3 class=\"feat-title\">{{ _title|raw }}</h3>{% endif %}
  1951.                                 {% if _desc %}
  1952.                                     <div class=\"feat-desc\">
  1953.                                         <p>{{ _desc|raw }}</p>
  1954.                                     </div>
  1955.                                 {% endif %}
  1956.                                 {% if _quote %}
  1957.                                     <div class=\"feat-quote\">
  1958.                                         <p class=\"feat-quote-text\">{{ _quote|raw }}</p>
  1959.                                         {% if _author or _role %}
  1960.                                             <div class=\"feat-quote-author\">
  1961.                                                 {% if _author %}<p class=\"feat-quote-name\">{{ _author }}</p>{% endif %}
  1962.                                                 {% if _role %}<p class=\"feat-quote-role\">{{ _role }}</p>{% endif %}
  1963.                                             </div>
  1964.                                         {% endif %}
  1965.                                     </div>
  1966.                                 {% endif %}
  1967.                             </div>
  1968.                         </div>
  1969.                     {% endif %}
  1970.                 {% endfor %}
  1971.             </div>
  1972.         </section>
  1973.         {# ═══════════════ APPS ═══════════════ #}
  1974.         <section class=\"wr-section\">
  1975.             <div class=\"wr-container\">
  1976.                 <div class=\"apps-grid\">
  1977.                     <a href=\"{{ isFR ? (ios_fr|default('#')) : (ios_us|default('#')) }}\" class=\"app-card\">
  1978.                         <span class=\"app-card-icon\">
  1979.                             <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>
  1980.                         </span>
  1981.                         <h3 class=\"app-card-name\">{{ t.apps_ios }}</h3>
  1982.                         <p class=\"app-card-desc\">{{ t.apps_ios_desc }}</p>
  1983.                         <span class=\"app-card-cta\">App Store
  1984.                             <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>
  1985.                         </span>
  1986.                     </a>
  1987.                     <a href=\"{{ isFR ? (android_fr|default('#')) : (android_us|default('#')) }}\" class=\"app-card\">
  1988.                         <span class=\"app-card-icon\">
  1989.                             <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>
  1990.                         </span>
  1991.                         <h3 class=\"app-card-name\">{{ t.apps_android }}</h3>
  1992.                         <p class=\"app-card-desc\">{{ t.apps_android_desc }}</p>
  1993.                         <span class=\"app-card-cta\">Google Play
  1994.                             <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>
  1995.                         </span>
  1996.                     </a>
  1997.                     <a href=\"{% if app.request.locale == 'en' %}{{ path('whileresume_homepage') }}{% else %}{{ path('locale_whileresume_homepage',{'_locale':app.request.locale}) }}{% endif %}#register\" class=\"app-card\">
  1998.                         <span class=\"app-card-icon\">
  1999.                             <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>
  2000.                         </span>
  2001.                         <h3 class=\"app-card-name\">{{ t.apps_web }}</h3>
  2002.                         <p class=\"app-card-desc\">{{ t.apps_web_desc }}</p>
  2003.                         <span class=\"app-card-cta\">whileresume.com
  2004.                             <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>
  2005.                         </span>
  2006.                     </a>
  2007.                 </div>
  2008.             </div>
  2009.         </section>
  2010.         {# ═══════════════ ARTICLES ═══════════════ #}
  2011.         {% if articles is defined and articles|length > 0 %}
  2012.             <section class=\"wr-section\">
  2013.                 <div class=\"wr-container\">
  2014.                     <div class=\"wr-section-head\">
  2015.                         <h2 class=\"wr-title wr-title--sm\">{{ t.articles_title }}</h2>
  2016.                     </div>
  2017.                     <div class=\"articles-list\">
  2018.                         {% for a in articles|slice(0,6) %}
  2019.                             {% set prefix = \"\" %}
  2020.                             {% set urlA = path('cvs_website_article',{'slug': a.slug}) %}
  2021.                             {% if app.request.locale != default_locale %}
  2022.                                 {% set urlA = path('locale_cvs_website_article',{'_locale':app.request.locale,'slug': a.slug}) %}
  2023.                                 {% set prefix = \"/\" ~ app.request.locale %}
  2024.                             {% endif %}
  2025.                             {% if a.pageslug3 is not empty %}
  2026.                                 {% set urlA = prefix ~ '/' ~ a.pageslug ~ '/' ~ a.pageslug2 ~ '/' ~ a.pageslug3 %}
  2027.                             {% elseif a.pageslug2 is not empty %}
  2028.                                 {% set urlA = prefix ~ '/' ~ a.pageslug ~ '/' ~ a.pageslug2 %}
  2029.                             {% elseif a.pageslug is not empty %}
  2030.                                 {% set urlA = prefix ~ '/' ~ a.pageslug %}
  2031.                             {% endif %}
  2032.                             <a href=\"{{ urlA }}\" class=\"wr-article\">
  2033.                                 <div class=\"wr-article-logo\">
  2034.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2035.                                         <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"/>
  2036.                                         <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"/>
  2037.                                     </svg>
  2038.                                 </div>
  2039.                                 <div class=\"wr-article-info\">
  2040.                                     <h3 class=\"wr-article-title\">{{ a.title }}</h3>
  2041.                                     <div class=\"wr-article-meta\">
  2042.                                         {% if a.subtitle is not empty %}
  2043.                                             <span>{{ a.subtitle|length > 60 ? a.subtitle|slice(0,60) ~ '…' : a.subtitle }}</span>
  2044.                                         {% endif %}
  2045.                                     </div>
  2046.                                 </div>
  2047.                                 <span class=\"wr-article-badge\">{{ t.read_article }}</span>
  2048.                                 <span class=\"wr-article-arrow\">
  2049.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2050.                                         <polyline points=\"9 18 15 12 9 6\"/>
  2051.                                     </svg>
  2052.                                 </span>
  2053.                             </a>
  2054.                         {% endfor %}
  2055.                     </div>
  2056.                     <div class=\"articles-cta\">
  2057.                         <a href=\"{% if isFR %}{{ path('locale_cvs_website_articles',{'_locale':'fr'}) }}{% else %}{{ path('cvs_website_articles') }}{% endif %}\">
  2058.                             {{ t.articles_view_all }}
  2059.                             <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>
  2060.                         </a>
  2061.                     </div>
  2062.                 </div>
  2063.             </section>
  2064.         {% endif %}
  2065.         {# ═══════════════ CTA FINAL (visiteurs anonymes uniquement) ═══════════════ #}
  2066.         {% if app.user is null %}
  2067.             <section class=\"wr-section\">
  2068.                 <div class=\"wr-container\">
  2069.                     <div class=\"final-card\">
  2070.                         <h2 class=\"final-title\">{{ t.final_title }}</h2>
  2071.                         <div class=\"final-grid\">
  2072.                             {# Recruteur #}
  2073.                             <div class=\"final-sub\">
  2074.                                 <div class=\"final-sub-head\">
  2075.                                 <span class=\"final-sub-icon\">
  2076.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2077.                                         <rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  2078.                                         <path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"/>
  2079.                                     </svg>
  2080.                                 </span>
  2081.                                     <span class=\"final-sub-label\">{{ t.final_recruiter_label }}</span>
  2082.                                 </div>
  2083.                                 <h3 class=\"final-sub-title\">{{ t.final_recruiter_title }}</h3>
  2084.                                 <p class=\"final-sub-desc\">{{ t.final_recruiter_desc }}</p>
  2085.                                 <a href=\"{{ path('whileresume_business_' ~ app.request.locale) }}\" class=\"final-sub-btn\">
  2086.                                     {{ t.final_recruiter }}
  2087.                                     <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>
  2088.                                 </a>
  2089.                             </div>
  2090.                             {# Candidat #}
  2091.                             <div class=\"final-sub\">
  2092.                                 <div class=\"final-sub-head\">
  2093.                                 <span class=\"final-sub-icon\">
  2094.                                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  2095.                                         <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  2096.                                         <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  2097.                                     </svg>
  2098.                                 </span>
  2099.                                     <span class=\"final-sub-label\">{{ t.final_candidate_label }}</span>
  2100.                                 </div>
  2101.                                 <h3 class=\"final-sub-title\">{{ t.final_candidate_title }}</h3>
  2102.                                 <p class=\"final-sub-desc\">{{ t.final_candidate_desc }}</p>
  2103.                                 <a href=\"{{ path('whileresume_resume_' ~ app.request.locale) }}\" class=\"final-sub-btn\">
  2104.                                     {{ t.final_candidate }}
  2105.                                     <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>
  2106.                                 </a>
  2107.                             </div>
  2108.                         </div>
  2109.                     </div>
  2110.                 </div>
  2111.             </section>
  2112.         {% endif %}
  2113.     </div>
  2114. {% endblock body %}
  2115. {% block footer_js %}
  2116.     {{ parent() }}
  2117.     <script>
  2118.         (function(){
  2119.             var search   = document.getElementById('wrHeroSearch');
  2120.             var input    = document.getElementById('wrHeroSearchInput');
  2121.             var clearBtn = document.getElementById('wrHeroSearchClear');
  2122.             var jobsBody = document.getElementById('wrHeroJobsBody');
  2123.             var countEl  = document.getElementById('wrHeroJobsCount');
  2124.             var linkEl   = document.getElementById('wrHeroJobsLink');
  2125.             if (!search || !input || !jobsBody) return;
  2126.             var searchUrl   = search.dataset.searchUrl;
  2127.             var jobsListUrl = search.dataset.jobsListUrl;
  2128.             var defaultBodyHtml  = jobsBody.innerHTML;
  2129.             var defaultCountHtml = countEl ? countEl.innerHTML : '';
  2130.             var defaultLinkHref  = linkEl ? linkEl.getAttribute('href') : jobsListUrl;
  2131.             var debounceTimer = null;
  2132.             var currentRequest = null;
  2133.             var lastQuery = '';
  2134.             var T = {
  2135.                 loading:      '{{ t.search_loading|escape('js') }}',
  2136.                 empty:        '{{ t.search_no_results|escape('js') }}',
  2137.                 emptyHint:    '{{ t.search_no_results_hint|escape('js') }}',
  2138.                 count:        '{{ t.search_results_count|escape('js') }}',
  2139.                 viewAll:      '{{ t.search_view_all|escape('js') }}',
  2140.                 view:         '{{ t.search_view_offer|escape('js') }}'
  2141.             };
  2142.             function escHtml(s){
  2143.                 if (s == null) return '';
  2144.                 return String(s).replace(/[&<>\"']/g, function(c){
  2145.                     return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c];
  2146.                 });
  2147.             }
  2148.             function setHeaderCount(total){
  2149.                 if (!countEl) return;
  2150.                 countEl.innerHTML = '<strong>' + total + '</strong>' + escHtml(T.count);
  2151.             }
  2152.             function setHeaderLink(href){ if (!linkEl) return; linkEl.setAttribute('href', href); }
  2153.             function setLoading(){
  2154.                 jobsBody.innerHTML = '<div class=\"hero-jobs-loading\"><span class=\"hero-jobs-spinner\"></span><span>' + escHtml(T.loading) + '</span></div>';
  2155.             }
  2156.             function setEmpty(){
  2157.                 jobsBody.innerHTML =
  2158.                     '<div class=\"hero-jobs-empty\">' +
  2159.                     '<div class=\"hero-jobs-empty-icon\">' +
  2160.                     '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +
  2161.                     '<circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/>' +
  2162.                     '</svg></div>' +
  2163.                     '<p class=\"hero-jobs-empty-title\">' + escHtml(T.empty) + '</p>' +
  2164.                     '<p class=\"hero-jobs-empty-hint\">' + escHtml(T.emptyHint) + '</p>' +
  2165.                     '</div>';
  2166.             }
  2167.             function restoreDefault(){
  2168.                 jobsBody.innerHTML = defaultBodyHtml;
  2169.                 if (countEl) countEl.innerHTML = defaultCountHtml;
  2170.                 if (linkEl) linkEl.setAttribute('href', defaultLinkHref);
  2171.             }
  2172.             function renderResults(payload, query){
  2173.                 var jobs  = (payload && payload.jobs)  || [];
  2174.                 var total = (payload && typeof payload.total === 'number') ? payload.total : jobs.length;
  2175.                 setHeaderCount(total);
  2176.                 setHeaderLink(jobsListUrl + '?q=' + encodeURIComponent(query));
  2177.                 if (!jobs.length){ setEmpty(); return; }
  2178.                 var html = '';
  2179.                 jobs.slice(0, 6).forEach(function(j){
  2180.                     var title   = j.jobTitle || j.title || '';
  2181.                     var company = j.companyName || j.company || '';
  2182.                     var city    = j.city || '';
  2183.                     var country = j.country || '';
  2184.                     var et      = j.employmentType || '';
  2185.                     var img     = j.image || j.imageUrl || '';
  2186.                     var url     = j.url || (jobsListUrl + '?q=' + encodeURIComponent(query));
  2187.                     var initial = (company || title || '?').charAt(0).toUpperCase();
  2188.                     var location = city + (country ? ', ' + country : '');
  2189.                     var metaParts = [];
  2190.                     if (company)  metaParts.push('<span>' + escHtml(company) + '</span>');
  2191.                     if (location) metaParts.push('<span class=\"hero-default-job-meta-sep\"></span><span>' + escHtml(location) + '</span>');
  2192.                     if (et)       metaParts.push('<span class=\"hero-default-job-meta-sep\"></span><span>' + escHtml(et) + '</span>');
  2193.                     html +=
  2194.                         '<a href=\"' + escHtml(url) + '\" class=\"hero-default-job\">' +
  2195.                         '<div class=\"hero-default-job-logo\">' +
  2196.                         (img ? '<img src=\"' + escHtml(img) + '\" alt=\"\">' : escHtml(initial)) +
  2197.                         '</div>' +
  2198.                         '<div class=\"hero-default-job-info\">' +
  2199.                         '<h3 class=\"hero-default-job-title\">' + escHtml(title) + '</h3>' +
  2200.                         '<p class=\"hero-default-job-meta\">' + metaParts.join('') + '</p>' +
  2201.                         '</div>' +
  2202.                         '<span class=\"hero-default-job-arrow\">' +
  2203.                         '<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>' +
  2204.                         '</span>' +
  2205.                         '</a>';
  2206.                 });
  2207.                 jobsBody.innerHTML = html;
  2208.             }
  2209.             function doSearch(query){
  2210.                 if (currentRequest && currentRequest.abort) { try { currentRequest.abort(); } catch(e){} }
  2211.                 setLoading();
  2212.                 var url = searchUrl + (searchUrl.indexOf('?') > -1 ? '&' : '?') + 'q=' + encodeURIComponent(query);
  2213.                 var ctrl = (typeof AbortController !== 'undefined') ? new AbortController() : null;
  2214.                 currentRequest = ctrl;
  2215.                 fetch(url, { headers: { 'Accept': 'application/json' }, signal: ctrl ? ctrl.signal : undefined })
  2216.                     .then(function(r){ return r.ok ? r.json() : Promise.reject(r.status); })
  2217.                     .then(function(data){ renderResults(data, query); })
  2218.                     .catch(function(err){
  2219.                         if (err && err.name === 'AbortError') return;
  2220.                         setEmpty();
  2221.                     });
  2222.             }
  2223.             input.addEventListener('input', function(){
  2224.                 var q = input.value.trim();
  2225.                 clearBtn.classList.toggle('is-visible', q.length > 0);
  2226.                 if (debounceTimer) clearTimeout(debounceTimer);
  2227.                 if (q.length < 2){ restoreDefault(); lastQuery = ''; return; }
  2228.                 if (q === lastQuery) return;
  2229.                 debounceTimer = setTimeout(function(){ lastQuery = q; doSearch(q); }, 280);
  2230.             });
  2231.             input.addEventListener('keydown', function(e){
  2232.                 if (e.key === 'Enter'){
  2233.                     e.preventDefault();
  2234.                     var q = input.value.trim();
  2235.                     if (!q) return;
  2236.                     window.location.href = jobsListUrl + '?q=' + encodeURIComponent(q);
  2237.                 }
  2238.                 if (e.key === 'Escape'){
  2239.                     input.value = ''; clearBtn.classList.remove('is-visible'); restoreDefault(); lastQuery = ''; input.blur();
  2240.                 }
  2241.             });
  2242.             clearBtn.addEventListener('click', function(){
  2243.                 input.value = ''; clearBtn.classList.remove('is-visible'); restoreDefault(); lastQuery = ''; input.focus();
  2244.             });
  2245.             document.querySelectorAll('.hero-popular-pill').forEach(function(pill){
  2246.                 pill.addEventListener('click', function(){
  2247.                     var keyword = pill.dataset.keyword || pill.dataset.label || '';
  2248.                     if (!keyword) return;
  2249.                     document.querySelectorAll('.hero-popular-pill').forEach(function(p){ p.classList.remove('is-active'); });
  2250.                     pill.classList.add('is-active');
  2251.                     input.value = keyword;
  2252.                     clearBtn.classList.add('is-visible');
  2253.                     lastQuery = keyword;
  2254.                     doSearch(keyword);
  2255.                     input.focus();
  2256.                 });
  2257.             });
  2258.             // Si l'input est pré-rempli (1er keyword populaire), on lance la recherche automatiquement
  2259.             var initialQuery = input.value.trim();
  2260.             if (initialQuery.length >= 2) {
  2261.                 clearBtn.classList.add('is-visible');
  2262.                 lastQuery = initialQuery;
  2263.                 doSearch(initialQuery);
  2264.             }
  2265.         })();
  2266.         (function(){
  2267.             var els = document.querySelectorAll('.reveal');
  2268.             if (!els.length) return;
  2269.             if (!('IntersectionObserver' in window)){
  2270.                 els.forEach(function(el){ el.classList.add('is-revealed'); });
  2271.                 return;
  2272.             }
  2273.             var io = new IntersectionObserver(function(entries){
  2274.                 entries.forEach(function(entry){
  2275.                     if (entry.isIntersecting){
  2276.                         entry.target.classList.add('is-revealed');
  2277.                         io.unobserve(entry.target);
  2278.                     }
  2279.                 });
  2280.             }, { threshold: 0.12, rootMargin: '0px 0px -60px 0px' });
  2281.             els.forEach(function(el){ io.observe(el); });
  2282.         })();
  2283.     </script>
  2284. {% endblock footer_js %}
  2285. ""application/whileresume/website/candidates/landing.html.twig""/var/www/vhosts/mirtillostudio.fr/b1.mirtillostudio.fr/version-1/templates/application/whileresume/website/candidates/landing.html.twig");
  2286.     }
  2287. }