var/cache/dev/twig/64/643ee007da4b5acbd3b7b87437036ea1.php line 49

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\Markup;
  8. use Twig\Sandbox\SecurityError;
  9. use Twig\Sandbox\SecurityNotAllowedTagError;
  10. use Twig\Sandbox\SecurityNotAllowedFilterError;
  11. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  12. use Twig\Source;
  13. use Twig\Template;
  14. use Twig\TemplateWrapper;
  15. /* application/whileresume/website/articles/list.html.twig */
  16. class __TwigTemplate_c02e0bd67b4249e7cd34090012ccd3e6 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.             'meta_social' => [$this'block_meta_social'],
  32.             'canonical' => [$this'block_canonical'],
  33.             'css' => [$this'block_css'],
  34.             'body' => [$this'block_body'],
  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/articles/list.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/articles/list.html.twig"));
  49.         // line 66
  50.         $macros["ctaMacro"] = $this->macros["ctaMacro"] = $this;
  51.         // line 1
  52.         $this->parent $this->load("application/whileresume/website/layout-social.html.twig"1);
  53.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  54.         
  55.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  56.         
  57.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  58.     }
  59.     // line 68
  60.     /**
  61.      * @return iterable<null|scalar|\Stringable>
  62.      */
  63.     public function block_title(array $context, array $blocks = []): iterable
  64.     {
  65.         $macros $this->macros;
  66.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  67.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  68.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  69.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  70.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["page"]) || array_key_exists("page"$context) ? $context["page"] : (function () { throw new RuntimeError('Variable "page" does not exist.'68$this->source); })()), "shortTitle", [], "any"falsefalsefalse68), "html"nulltrue);
  71.         
  72.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  73.         
  74.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  75.         yield from [];
  76.     }
  77.     // line 69
  78.     /**
  79.      * @return iterable<null|scalar|\Stringable>
  80.      */
  81.     public function block_description(array $context, array $blocks = []): iterable
  82.     {
  83.         $macros $this->macros;
  84.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  85.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""description"));
  86.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  87.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""description"));
  88.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["page"]) || array_key_exists("page"$context) ? $context["page"] : (function () { throw new RuntimeError('Variable "page" does not exist.'69$this->source); })()), "shortDescription", [], "any"falsefalsefalse69), "html"nulltrue);
  89.         
  90.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  91.         
  92.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  93.         yield from [];
  94.     }
  95.     // line 70
  96.     /**
  97.      * @return iterable<null|scalar|\Stringable>
  98.      */
  99.     public function block_robots(array $context, array $blocks = []): iterable
  100.     {
  101.         $macros $this->macros;
  102.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  103.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""robots"));
  104.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  105.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""robots"));
  106.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["page"]) || array_key_exists("page"$context) ? $context["page"] : (function () { throw new RuntimeError('Variable "page" does not exist.'70$this->source); })()), "robots", [], "any"falsefalsefalse70), "html"nulltrue);
  107.         
  108.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  109.         
  110.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  111.         yield from [];
  112.     }
  113.     // line 71
  114.     /**
  115.      * @return iterable<null|scalar|\Stringable>
  116.      */
  117.     public function block_meta_social(array $context, array $blocks = []): iterable
  118.     {
  119.         $macros $this->macros;
  120.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  121.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""meta_social"));
  122.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  123.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""meta_social"));
  124.         yield from $this->yieldParentBlock("meta_social"$context$blocks);
  125.         yield from $this->load("/vitrine/components/socialmedia.html.twig"71)->unwrap()->yield(CoreExtension::merge($context, ["page" => (isset($context["page"]) || array_key_exists("page"$context) ? $context["page"] : (function () { throw new RuntimeError('Variable "page" does not exist.'71$this->source); })()), "social_type" => "website"]));
  126.         
  127.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  128.         
  129.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  130.         yield from [];
  131.     }
  132.     // line 72
  133.     /**
  134.      * @return iterable<null|scalar|\Stringable>
  135.      */
  136.     public function block_canonical(array $context, array $blocks = []): iterable
  137.     {
  138.         $macros $this->macros;
  139.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  140.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""canonical"));
  141.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  142.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""canonical"));
  143.         yield from $this->load("/vitrine/lexend/components/pages/canonical.html.twig"72)->unwrap()->yield(CoreExtension::merge($context, ["page" => (isset($context["page"]) || array_key_exists("page"$context) ? $context["page"] : (function () { throw new RuntimeError('Variable "page" does not exist.'72$this->source); })())]));
  144.         
  145.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  146.         
  147.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  148.         yield from [];
  149.     }
  150.     // line 74
  151.     /**
  152.      * @return iterable<null|scalar|\Stringable>
  153.      */
  154.     public function block_css(array $context, array $blocks = []): iterable
  155.     {
  156.         $macros $this->macros;
  157.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  158.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""css"));
  159.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  160.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""css"));
  161.         // line 75
  162.         yield "    ";
  163.         yield from $this->yieldParentBlock("css"$context$blocks);
  164.         yield "
  165.     <style>
  166.         /* ─── Page liste articles (mêmes patterns que /jobs) ─── */
  167.         .articles-dash{max-width:880px;margin:0 auto}
  168.         .articles-dash-header{margin-bottom:18px}
  169.         .articles-dash-title{font-size:24px;font-weight:800;color:#1E1B2E;line-height:1.2;letter-spacing:-0.02em;margin:0 0 6px}
  170.         @media(min-width:768px){.articles-dash-title{font-size:28px}}
  171.         /* Liste cards (style identique aux jobs-card) */
  172.         .articles-list{display:flex;flex-direction:column;gap:10px}
  173.         .articles-card{background:#fff;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}
  174.         .articles-card:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(108,58,237,.1);color:inherit}
  175.         .articles-card-logo{width:50px;height:50px;border-radius:12px;background:linear-gradient(135deg,#EDE9FE,#DDD6FE);display:flex;align-items:center;justify-content:center;color:var(--theme-color,#6C3AED);flex-shrink:0;overflow:hidden}
  176.         .articles-card-logo svg{width:24px;height:24px;opacity:.9}
  177.         .articles-card-info{flex:1;min-width:0}
  178.         .articles-card-title{font-size:14px;font-weight:700;color:#1E1B2E;line-height:1.3;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  179.         .articles-card-meta{font-size:12px;color:#6B7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}
  180.         .articles-card-meta-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:#D1D5DB;flex-shrink:0}
  181.         .articles-card-badge{font-size:11px;font-weight:600;color:var(--theme-color,#6C3AED);background:#F5F3FF;padding:3px 9px;border-radius:100px;white-space:nowrap;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}
  182.         .articles-card-arrow{flex-shrink:0;color:#9CA3AF;transition:color .15s,transform .15s}
  183.         .articles-card:hover .articles-card-arrow{color:var(--theme-color,#6C3AED);transform:translateX(2px)}
  184.         .articles-card-arrow svg{width:18px;height:18px}
  185.         /* État vide */
  186.         .articles-empty{text-align:center;padding:40px 20px;background:#fff;border-radius:14px;box-shadow:0 0 16px 0 rgba(0,0,0,0.04)}
  187.         .articles-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:#F5F3FF;color:var(--theme-color,#6C3AED);margin-bottom:14px}
  188.         .articles-empty-icon svg{width:24px;height:24px}
  189.         .articles-empty-title{font-size:16px;font-weight:700;color:#1E1B2E;margin:0 0 6px}
  190.         .articles-empty-text{font-size:13px;color:#6B7280;margin:0}
  191.         /* Pagination */
  192.         .articles-pagination{margin-top:18px}
  193.         /* ═══ CTA inline (entre articles) ═══ */
  194.         .articles-cta-inline{
  195.             position:relative;
  196.             border-radius:18px;
  197.             padding:24px;
  198.             margin:6px 0;
  199.             background:linear-gradient(135deg,#6C3AED 0%,#8B5CF6 50%,#A78BFA 100%);
  200.             overflow:hidden;
  201.             box-shadow:0 10px 30px -8px rgba(108,58,237,.35);
  202.         }
  203.         .articles-cta-inline::before{
  204.             content:\"\";
  205.             position:absolute;
  206.             top:-40px;right:-40px;
  207.             width:180px;height:180px;
  208.             background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 70%);
  209.             pointer-events:none;
  210.         }
  211.         .articles-cta-inline::after{
  212.             content:\"\";
  213.             position:absolute;
  214.             bottom:-60px;left:-60px;
  215.             width:200px;height:200px;
  216.             background:radial-gradient(circle,rgba(255,255,255,.08) 0%,transparent 70%);
  217.             pointer-events:none;
  218.         }
  219.         .articles-cta-eyebrow{
  220.             display:inline-flex;align-items:center;gap:6px;
  221.             font-size:11px;font-weight:700;
  222.             color:#fff;
  223.             text-transform:uppercase;letter-spacing:.1em;
  224.             background:rgba(255,255,255,.18);
  225.             padding:5px 12px;border-radius:100px;
  226.             margin-bottom:12px;
  227.             backdrop-filter:blur(10px);
  228.             -webkit-backdrop-filter:blur(10px);
  229.             position:relative;z-index:2;
  230.         }
  231.         .articles-cta-eyebrow svg{width:12px;height:12px}
  232.         .articles-cta-title{
  233.             font-size:20px;font-weight:800;
  234.             color:#fff;
  235.             line-height:1.25;letter-spacing:-0.01em;
  236.             margin:0 0 18px;
  237.             position:relative;z-index:2;
  238.         }
  239.         @media(min-width:768px){.articles-cta-title{font-size:24px}}
  240.         .articles-cta-grid{
  241.             display:grid;
  242.             grid-template-columns:1fr;
  243.             gap:12px;
  244.             position:relative;z-index:2;
  245.         }
  246.         @media(min-width:640px){.articles-cta-grid{grid-template-columns:1fr 1fr;gap:14px}}
  247.         .articles-cta-side{
  248.             background:rgba(255,255,255,.97);
  249.             border-radius:14px;
  250.             padding:18px;
  251.             display:flex;flex-direction:column;
  252.             transition:transform .2s,box-shadow .2s;
  253.         }
  254.         .articles-cta-side:hover{transform:translateY(-2px);box-shadow:0 12px 24px -8px rgba(0,0,0,.18)}
  255.         .articles-cta-side-head{
  256.             display:flex;align-items:center;gap:10px;
  257.             margin-bottom:10px;
  258.         }
  259.         .articles-cta-side-icon{
  260.             width:38px;height:38px;border-radius:10px;
  261.             display:inline-flex;align-items:center;justify-content:center;
  262.             background:linear-gradient(135deg,#EDE9FE,#DDD6FE);
  263.             color:var(--theme-color,#6C3AED);
  264.             flex-shrink:0;
  265.         }
  266.         .articles-cta-side-icon svg{width:18px;height:18px}
  267.         .articles-cta-side-label{
  268.             font-size:11px;font-weight:700;
  269.             color:var(--theme-color,#6C3AED);
  270.             text-transform:uppercase;letter-spacing:.08em;
  271.             margin:0;
  272.         }
  273.         .articles-cta-side-heading{
  274.             font-size:15px;font-weight:700;
  275.             color:#1E1B2E;
  276.             line-height:1.3;
  277.             margin:0 0 8px;
  278.         }
  279.         .articles-cta-side-text{
  280.             font-size:13px;color:#6B7280;
  281.             line-height:1.5;
  282.             margin:0 0 14px;
  283.             flex:1;
  284.         }
  285.         .articles-cta-side-btn{
  286.             display:inline-flex;align-items:center;justify-content:center;gap:6px;
  287.             background:var(--theme-color,#6C3AED);
  288.             color:#fff;text-decoration:none;
  289.             padding:11px 16px;
  290.             border-radius:10px;
  291.             font-size:13px;font-weight:700;
  292.             letter-spacing:.01em;
  293.             transition:background .15s,transform .15s;
  294.         }
  295.         .articles-cta-side-btn:hover{
  296.             background:#5B21B6;color:#fff;
  297.             transform:translateX(2px);
  298.         }
  299.         .articles-cta-side-btn svg{width:14px;height:14px;transition:transform .15s}
  300.         .articles-cta-side-btn:hover svg{transform:translateX(2px)}
  301.     </style>
  302. ";
  303.         
  304.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  305.         
  306.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  307.         yield from [];
  308.     }
  309.     // line 222
  310.     /**
  311.      * @return iterable<null|scalar|\Stringable>
  312.      */
  313.     public function block_body(array $context, array $blocks = []): iterable
  314.     {
  315.         $macros $this->macros;
  316.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  317.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  318.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  319.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  320.         // line 223
  321.         yield "    <div class=\"articles-dash\">
  322.         ";
  323.         // line 226
  324.         yield "        <div class=\"articles-dash-header\">
  325.             <h1 class=\"articles-dash-title\">";
  326.         // line 227
  327.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["page"]) || array_key_exists("page"$context) ? $context["page"] : (function () { throw new RuntimeError('Variable "page" does not exist.'227$this->source); })()), "title", [], "any"falsefalsefalse227), "html"nulltrue);
  328.         yield "</h1>
  329.         </div>
  330.         ";
  331.         // line 231
  332.         yield "        ";
  333.         if ((Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'231$this->source); })())) > 0)) {
  334.             // line 232
  335.             yield "            <div class=\"articles-list\">
  336.                 ";
  337.             // line 233
  338.             $context['_parent'] = $context;
  339.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'233$this->source); })()));
  340.             $context['loop'] = [
  341.               'parent' => $context['_parent'],
  342.               'index0' => 0,
  343.               'index'  => 1,
  344.               'first'  => true,
  345.             ];
  346.             if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  347.                 $length count($context['_seq']);
  348.                 $context['loop']['revindex0'] = $length 1;
  349.                 $context['loop']['revindex'] = $length;
  350.                 $context['loop']['length'] = $length;
  351.                 $context['loop']['last'] = === $length;
  352.             }
  353.             foreach ($context['_seq'] as $context["_key"] => $context["article"]) {
  354.                 // line 234
  355.                 yield "
  356.                     ";
  357.                 // line 236
  358.                 yield "                    ";
  359.                 $context["prefix"] = "";
  360.                 // line 237
  361.                 yield "                    ";
  362.                 $context["urlArticle"] = $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("blog_article", ["slug" => CoreExtension::getAttribute($this->env$this->source$context["article"], "slug", [], "any"falsefalsefalse237)]);
  363.                 // line 238
  364.                 yield "                    ";
  365.                 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.'238$this->source); })()), "request", [], "any"falsefalsefalse238), "locale", [], "any"falsefalsefalse238) != (isset($context["default_locale"]) || array_key_exists("default_locale"$context) ? $context["default_locale"] : (function () { throw new RuntimeError('Variable "default_locale" does not exist.'238$this->source); })()))) {
  366.                     // line 239
  367.                     yield "                        ";
  368.                     $context["urlArticle"] = $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("locale_blog_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.'239$this->source); })()), "request", [], "any"falsefalsefalse239), "locale", [], "any"falsefalsefalse239), "slug" => CoreExtension::getAttribute($this->env$this->source$context["article"], "slug", [], "any"falsefalsefalse239)]);
  369.                     // line 240
  370.                     yield "                        ";
  371.                     $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.'240$this->source); })()), "request", [], "any"falsefalsefalse240), "locale", [], "any"falsefalsefalse240));
  372.                     // line 241
  373.                     yield "                    ";
  374.                 }
  375.                 // line 242
  376.                 yield "                    ";
  377.                 if ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["article"], "pageslug3", [], "any"falsefalsefalse242))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  378.                     // line 243
  379.                     yield "                        ";
  380.                     $context["urlArticle"] = (((((((isset($context["prefix"]) || array_key_exists("prefix"$context) ? $context["prefix"] : (function () { throw new RuntimeError('Variable "prefix" does not exist.'243$this->source); })()) . "/") . CoreExtension::getAttribute($this->env$this->source$context["article"], "pageslug", [], "any"falsefalsefalse243)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["article"], "pageslug2", [], "any"falsefalsefalse243)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["article"], "pageslug3", [], "any"falsefalsefalse243));
  381.                     // line 244
  382.                     yield "                    ";
  383.                 } elseif ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["article"], "pageslug2", [], "any"falsefalsefalse244))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  384.                     // line 245
  385.                     yield "                        ";
  386.                     $context["urlArticle"] = (((((isset($context["prefix"]) || array_key_exists("prefix"$context) ? $context["prefix"] : (function () { throw new RuntimeError('Variable "prefix" does not exist.'245$this->source); })()) . "/") . CoreExtension::getAttribute($this->env$this->source$context["article"], "pageslug", [], "any"falsefalsefalse245)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["article"], "pageslug2", [], "any"falsefalsefalse245));
  387.                     // line 246
  388.                     yield "                    ";
  389.                 } elseif ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["article"], "pageslug", [], "any"falsefalsefalse246))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  390.                     // line 247
  391.                     yield "                        ";
  392.                     $context["urlArticle"] = (((isset($context["prefix"]) || array_key_exists("prefix"$context) ? $context["prefix"] : (function () { throw new RuntimeError('Variable "prefix" does not exist.'247$this->source); })()) . "/") . CoreExtension::getAttribute($this->env$this->source$context["article"], "pageslug", [], "any"falsefalsefalse247));
  393.                     // line 248
  394.                     yield "                    ";
  395.                 }
  396.                 // line 249
  397.                 yield "
  398.                     <a href=\"";
  399.                 // line 250
  400.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["urlArticle"]) || array_key_exists("urlArticle"$context) ? $context["urlArticle"] : (function () { throw new RuntimeError('Variable "urlArticle" does not exist.'250$this->source); })()), "html"nulltrue);
  401.                 yield "\" class=\"articles-card\">
  402.                         <div class=\"articles-card-logo\">
  403.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  404.                                 <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"/>
  405.                                 <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"/>
  406.                             </svg>
  407.                         </div>
  408.                         <div class=\"articles-card-info\">
  409.                             <h2 class=\"articles-card-title\">";
  410.                 // line 259
  411.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["article"], "title", [], "any"falsefalsefalse259), "html"nulltrue);
  412.                 yield "</h2>
  413.                             <div class=\"articles-card-meta\">
  414.                                 ";
  415.                 // line 262
  416.                 yield "                                ";
  417.                 if ((($tmp =  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["article"], "subtitle", [], "any"falsefalsefalse262))) && $tmp instanceof Markup ? (string) $tmp $tmp)) {
  418.                     // line 263
  419.                     yield "                                    <span>";
  420.                     yield (((Twig\Extension\CoreExtension::length($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["article"], "subtitle", [], "any"falsefalsefalse263)) > 60)) ? ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((Twig\Extension\CoreExtension::slice($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["article"], "subtitle", [], "any"falsefalsefalse263), 060) . "…"), "html"nulltrue)) : ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["article"], "subtitle", [], "any"falsefalsefalse263), "html"nulltrue)));
  421.                     yield "</span>
  422.                                 ";
  423.                 }
  424.                 // line 265
  425.                 yield "                            </div>
  426.                         </div>
  427.                         <span class=\"articles-card-badge\">";
  428.                 // line 268
  429.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['App\Twig\TranslationsExtension']->translateLocale("Je lis l'article", (isset($context["arrayTranslate"]) || array_key_exists("arrayTranslate"$context) ? $context["arrayTranslate"] : (function () { throw new RuntimeError('Variable "arrayTranslate" does not exist.'268$this->source); })())), "html"nulltrue);
  430.                 yield "</span>
  431.                         <span class=\"articles-card-arrow\">
  432.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  433.                                 <polyline points=\"9 18 15 12 9 6\"/>
  434.                             </svg>
  435.                         </span>
  436.                     </a>
  437.                     ";
  438.                 // line 278
  439.                 yield "                    ";
  440.                 if ((((CoreExtension::getAttribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse278) == 3) && ($this->extensions['App\Twig\CoreExtension']->getEnv("KERNEL_APPLICATION") == "whileresume")) && CoreExtension::inFilter(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.'278$this->source); })()), "request", [], "any"falsefalsefalse278), "locale", [], "any"falsefalsefalse278), ["fr""en"]))) {
  441.                     // line 279
  442.                     yield "                        ";
  443.                     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.'279$this->source); })()), "user", [], "any"falsefalsefalse279))) {
  444.                         // line 280
  445.                         yield "                        ";
  446.                         yield $macros["ctaMacro"]->getTemplateForMacro("macro_cta_recruiter_candidate"$context280$this->getSourceContext())->macro_cta_recruiter_candidate(...[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.'280$this->source); })()), "request", [], "any"falsefalsefalse280), "locale", [], "any"falsefalsefalse280)]);
  447.                         yield "
  448.                         ";
  449.                     }
  450.                     // line 282
  451.                     yield "                    ";
  452.                 }
  453.                 // line 283
  454.                 yield "                ";
  455.                 ++$context['loop']['index0'];
  456.                 ++$context['loop']['index'];
  457.                 $context['loop']['first'] = false;
  458.                 if (isset($context['loop']['revindex0'], $context['loop']['revindex'])) {
  459.                     --$context['loop']['revindex0'];
  460.                     --$context['loop']['revindex'];
  461.                     $context['loop']['last'] = === $context['loop']['revindex0'];
  462.                 }
  463.             }
  464.             $_parent $context['_parent'];
  465.             unset($context['_seq'], $context['_key'], $context['article'], $context['_parent'], $context['loop']);
  466.             $context array_intersect_key($context$_parent) + $_parent;
  467.             // line 284
  468.             yield "            </div>
  469.             ";
  470.             // line 287
  471.             yield "            <div class=\"articles-pagination\">
  472.                 ";
  473.             // line 288
  474.             yield $this->extensions['Knp\Bundle\PaginatorBundle\Twig\Extension\PaginationExtension']->render($this->env, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'288$this->source); })()), "application/whileresume/website/pagination/pagination.html.twig");
  475.             yield "
  476.             </div>
  477.         ";
  478.         } else {
  479.             // line 291
  480.             yield "            <div class=\"articles-empty\">
  481.                 <div class=\"articles-empty-icon\">
  482.                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  483.                         <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"/>
  484.                         <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"/>
  485.                     </svg>
  486.                 </div>
  487.                 <p class=\"articles-empty-title\">";
  488.             // line 298
  489.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['App\Twig\TranslationsExtension']->translateLocale("Aucun article", (isset($context["arrayTranslate"]) || array_key_exists("arrayTranslate"$context) ? $context["arrayTranslate"] : (function () { throw new RuntimeError('Variable "arrayTranslate" does not exist.'298$this->source); })())), "html"nulltrue);
  490.             yield "</p>
  491.             </div>
  492.         ";
  493.         }
  494.         // line 301
  495.         yield "
  496.         ";
  497.         // line 303
  498.         yield "        ";
  499.         if (((((Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'303$this->source); })())) > 0) && (Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'303$this->source); })())) < 3)) && ($this->extensions['App\Twig\CoreExtension']->getEnv("KERNEL_APPLICATION") == "whileresume")) && CoreExtension::inFilter(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.'303$this->source); })()), "request", [], "any"falsefalsefalse303), "locale", [], "any"falsefalsefalse303), ["fr""en"]))) {
  500.             // line 304
  501.             yield "            ";
  502.             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.'304$this->source); })()), "user", [], "any"falsefalsefalse304))) {
  503.                 // line 305
  504.                 yield "            <div class=\"mt-3\">
  505.                 ";
  506.                 // line 306
  507.                 yield $macros["ctaMacro"]->getTemplateForMacro("macro_cta_recruiter_candidate"$context306$this->getSourceContext())->macro_cta_recruiter_candidate(...[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.'306$this->source); })()), "request", [], "any"falsefalsefalse306), "locale", [], "any"falsefalsefalse306)]);
  508.                 yield "
  509.             </div>
  510.             ";
  511.             }
  512.             // line 309
  513.             yield "        ";
  514.         }
  515.         // line 310
  516.         yield "
  517.     </div>
  518. ";
  519.         
  520.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  521.         
  522.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  523.         yield from [];
  524.     }
  525.     // line 3
  526.     public function macro_cta_recruiter_candidate($locale null, ...$varargs): string|Markup
  527.     {
  528.         $macros $this->macros;
  529.         $context = [
  530.             "locale" => $locale,
  531.             "varargs" => $varargs,
  532.         ] + $this->env->getGlobals();
  533.         $blocks = [];
  534.         return ('' === $tmp \Twig\Extension\CoreExtension::captureOutput((function () use (&$context$macros$blocks) {
  535.             $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  536.             $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "macro""cta_recruiter_candidate"));
  537.             $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  538.             $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "macro""cta_recruiter_candidate"));
  539.             // line 4
  540.             yield "    <div class=\"articles-cta-inline\">
  541.         <h2 class=\"articles-cta-title\">
  542.             ";
  543.             // line 6
  544.             if (((isset($context["locale"]) || array_key_exists("locale"$context) ? $context["locale"] : (function () { throw new RuntimeError('Variable "locale" does not exist.'6$this->source); })()) == "fr")) {
  545.                 yield "Talents et entreprises se rencontrent ici.
  546.             ";
  547.             } else {
  548.                 // line 7
  549.                 yield "Where talent meets fast-growing companies.";
  550.             }
  551.             // line 8
  552.             yield "        </h2>
  553.         <div class=\"articles-cta-grid\">
  554.             ";
  555.             // line 12
  556.             yield "            <div class=\"articles-cta-side\">
  557.                 <div class=\"articles-cta-side-head\">
  558.                     <span class=\"articles-cta-side-icon\">
  559.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  560.                             <rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  561.                             <path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"/>
  562.                         </svg>
  563.                     </span>
  564.                     <span class=\"articles-cta-side-label\">";
  565.             // line 20
  566.             yield ((((isset($context["locale"]) || array_key_exists("locale"$context) ? $context["locale"] : (function () { throw new RuntimeError('Variable "locale" does not exist.'20$this->source); })()) == "fr")) ? ("Recruteur") : ("Recruiter"));
  567.             yield "</span>
  568.                 </div>
  569.                 <h3 class=\"articles-cta-side-heading\">
  570.                     ";
  571.             // line 23
  572.             if (((isset($context["locale"]) || array_key_exists("locale"$context) ? $context["locale"] : (function () { throw new RuntimeError('Variable "locale" does not exist.'23$this->source); })()) == "fr")) {
  573.                 yield "Recrutez des profils d'exception, plus vite.";
  574.             } else {
  575.                 yield "Hire exceptional talent, faster.";
  576.             }
  577.             // line 24
  578.             yield "                </h3>
  579.                 <p class=\"articles-cta-side-text\">
  580.                     ";
  581.             // line 26
  582.             if (((isset($context["locale"]) || array_key_exists("locale"$context) ? $context["locale"] : (function () { throw new RuntimeError('Variable "locale" does not exist.'26$this->source); })()) == "fr")) {
  583.                 yield "Accédez aux meilleurs talents du marché et connectez-vous directement à des candidats qualifiés en quête de leur prochain défi.";
  584.             } else {
  585.                 yield "Get access to top market talent and connect directly with qualified candidates ready for their next challenge.";
  586.             }
  587.             // line 27
  588.             yield "                </p>
  589.                 <a href=\"";
  590.             // line 28
  591.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath(("whileresume_business_" . (isset($context["locale"]) || array_key_exists("locale"$context) ? $context["locale"] : (function () { throw new RuntimeError('Variable "locale" does not exist.'28$this->source); })())));
  592.             yield "\" class=\"articles-cta-side-btn\">
  593.                     ";
  594.             // line 29
  595.             yield ((((isset($context["locale"]) || array_key_exists("locale"$context) ? $context["locale"] : (function () { throw new RuntimeError('Variable "locale" does not exist.'29$this->source); })()) == "fr")) ? ("Je recrute") : ("I'm recruiting"));
  596.             yield "
  597.                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  598.                         <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/>
  599.                         <polyline points=\"12 5 19 12 12 19\"/>
  600.                     </svg>
  601.                 </a>
  602.             </div>
  603.             ";
  604.             // line 38
  605.             yield "            <div class=\"articles-cta-side\">
  606.                 <div class=\"articles-cta-side-head\">
  607.                     <span class=\"articles-cta-side-icon\">
  608.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  609.                             <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  610.                             <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  611.                         </svg>
  612.                     </span>
  613.                     <span class=\"articles-cta-side-label\">";
  614.             // line 46
  615.             yield ((((isset($context["locale"]) || array_key_exists("locale"$context) ? $context["locale"] : (function () { throw new RuntimeError('Variable "locale" does not exist.'46$this->source); })()) == "fr")) ? ("Candidat") : ("Candidate"));
  616.             yield "</span>
  617.                 </div>
  618.                 <h3 class=\"articles-cta-side-heading\">
  619.                     ";
  620.             // line 49
  621.             if (((isset($context["locale"]) || array_key_exists("locale"$context) ? $context["locale"] : (function () { throw new RuntimeError('Variable "locale" does not exist.'49$this->source); })()) == "fr")) {
  622.                 yield "Trouvez le job qui vous ressemble.";
  623.             } else {
  624.                 yield "Find the job that fits you.";
  625.             }
  626.             // line 50
  627.             yield "                </h3>
  628.                 <p class=\"articles-cta-side-text\">
  629.                     ";
  630.             // line 52
  631.             if (((isset($context["locale"]) || array_key_exists("locale"$context) ? $context["locale"] : (function () { throw new RuntimeError('Variable "locale" does not exist.'52$this->source); })()) == "fr")) {
  632.                 yield "On vous accompagne dans la recherche de votre poste idéal au sein des entreprises les plus prometteuses du marché.";
  633.             } else {
  634.                 yield "We support you in finding your ideal position within the most promising companies on the market.";
  635.             }
  636.             // line 53
  637.             yield "                </p>
  638.                 <a href=\"";
  639.             // line 54
  640.             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.'54$this->source); })()), "request", [], "any"falsefalsefalse54), "locale", [], "any"falsefalsefalse54) == "en")) {
  641.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("whileresume_homepage");
  642.             } else {
  643.                 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.'54$this->source); })()), "request", [], "any"falsefalsefalse54), "locale", [], "any"falsefalsefalse54)]), "html"nulltrue);
  644.             }
  645.             yield "#register\" class=\"articles-cta-side-btn\">
  646.                     ";
  647.             // line 55
  648.             yield ((((isset($context["locale"]) || array_key_exists("locale"$context) ? $context["locale"] : (function () { throw new RuntimeError('Variable "locale" does not exist.'55$this->source); })()) == "fr")) ? ("Je cherche un job") : ("I'm looking for a job"));
  649.             yield "
  650.                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  651.                         <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/>
  652.                         <polyline points=\"12 5 19 12 12 19\"/>
  653.                     </svg>
  654.                 </a>
  655.             </div>
  656.         </div>
  657.     </div>
  658. ";
  659.             
  660.             $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  661.             
  662.             $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  663.             yield from [];
  664.         })())) ? '' : new Markup($tmp$this->env->getCharset());
  665.     }
  666.     /**
  667.      * @codeCoverageIgnore
  668.      */
  669.     public function getTemplateName(): string
  670.     {
  671.         return "application/whileresume/website/articles/list.html.twig";
  672.     }
  673.     /**
  674.      * @codeCoverageIgnore
  675.      */
  676.     public function isTraitable(): bool
  677.     {
  678.         return false;
  679.     }
  680.     /**
  681.      * @codeCoverageIgnore
  682.      */
  683.     public function getDebugInfo(): array
  684.     {
  685.         return array (  715 => 55,  707 => 54,  704 => 53,  698 => 52,  694 => 50,  688 => 49,  682 => 46,  672 => 38,  661 => 29,  657 => 28,  654 => 27,  648 => 26,  644 => 24,  638 => 23,  632 => 20,  622 => 12,  617 => 8,  614 => 7,  609 => 6,  605 => 4,  587 => 3,  574 => 310,  571 => 309,  565 => 306,  562 => 305,  559 => 304,  556 => 303,  553 => 301,  547 => 298,  538 => 291,  532 => 288,  529 => 287,  525 => 284,  511 => 283,  508 => 282,  502 => 280,  499 => 279,  496 => 278,  484 => 268,  479 => 265,  473 => 263,  470 => 262,  465 => 259,  453 => 250,  450 => 249,  447 => 248,  444 => 247,  441 => 246,  438 => 245,  435 => 244,  432 => 243,  429 => 242,  426 => 241,  423 => 240,  420 => 239,  417 => 238,  414 => 237,  411 => 236,  408 => 234,  391 => 233,  388 => 232,  385 => 231,  379 => 227,  376 => 226,  372 => 223,  359 => 222,  201 => 75,  188 => 74,  165 => 72,  141 => 71,  118 => 70,  95 => 69,  72 => 68,  61 => 1,  59 => 66,  46 => 1,);
  686.     }
  687.     public function getSourceContext(): Source
  688.     {
  689.         return new Source("{% extends 'application/whileresume/website/layout-social.html.twig' %}
  690. {% macro cta_recruiter_candidate(locale) %}
  691.     <div class=\"articles-cta-inline\">
  692.         <h2 class=\"articles-cta-title\">
  693.             {% if locale == 'fr' %}Talents et entreprises se rencontrent ici.
  694.             {% else %}Where talent meets fast-growing companies.{% endif %}
  695.         </h2>
  696.         <div class=\"articles-cta-grid\">
  697.             {# ── Recruteur ── #}
  698.             <div class=\"articles-cta-side\">
  699.                 <div class=\"articles-cta-side-head\">
  700.                     <span class=\"articles-cta-side-icon\">
  701.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  702.                             <rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>
  703.                             <path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"/>
  704.                         </svg>
  705.                     </span>
  706.                     <span class=\"articles-cta-side-label\">{{ locale == 'fr' ? 'Recruteur' : 'Recruiter' }}</span>
  707.                 </div>
  708.                 <h3 class=\"articles-cta-side-heading\">
  709.                     {% if locale == 'fr' %}Recrutez des profils d'exception, plus vite.{% else %}Hire exceptional talent, faster.{% endif %}
  710.                 </h3>
  711.                 <p class=\"articles-cta-side-text\">
  712.                     {% if locale == 'fr' %}Accédez aux meilleurs talents du marché et connectez-vous directement à des candidats qualifiés en quête de leur prochain défi.{% else %}Get access to top market talent and connect directly with qualified candidates ready for their next challenge.{% endif %}
  713.                 </p>
  714.                 <a href=\"{{ path('whileresume_business_' ~ locale) }}\" class=\"articles-cta-side-btn\">
  715.                     {{ locale == 'fr' ? 'Je recrute' : \"I'm recruiting\" }}
  716.                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  717.                         <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/>
  718.                         <polyline points=\"12 5 19 12 12 19\"/>
  719.                     </svg>
  720.                 </a>
  721.             </div>
  722.             {# ── Candidat ── #}
  723.             <div class=\"articles-cta-side\">
  724.                 <div class=\"articles-cta-side-head\">
  725.                     <span class=\"articles-cta-side-icon\">
  726.                         <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  727.                             <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"/>
  728.                             <circle cx=\"12\" cy=\"7\" r=\"4\"/>
  729.                         </svg>
  730.                     </span>
  731.                     <span class=\"articles-cta-side-label\">{{ locale == 'fr' ? 'Candidat' : 'Candidate' }}</span>
  732.                 </div>
  733.                 <h3 class=\"articles-cta-side-heading\">
  734.                     {% if locale == 'fr' %}Trouvez le job qui vous ressemble.{% else %}Find the job that fits you.{% endif %}
  735.                 </h3>
  736.                 <p class=\"articles-cta-side-text\">
  737.                     {% if locale == 'fr' %}On vous accompagne dans la recherche de votre poste idéal au sein des entreprises les plus prometteuses du marché.{% else %}We support you in finding your ideal position within the most promising companies on the market.{% endif %}
  738.                 </p>
  739.                 <a href=\"{% if app.request.locale == \"en\" %}{{ path('whileresume_homepage') }}{% else %}{{ path('locale_whileresume_homepage',{'_locale':app.request.locale}) }}{% endif %}#register\" class=\"articles-cta-side-btn\">
  740.                     {{ locale == 'fr' ? 'Je cherche un job' : \"I'm looking for a job\" }}
  741.                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  742.                         <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/>
  743.                         <polyline points=\"12 5 19 12 12 19\"/>
  744.                     </svg>
  745.                 </a>
  746.             </div>
  747.         </div>
  748.     </div>
  749. {% endmacro %}
  750. {% import _self as ctaMacro %}
  751. {% block title %}{{ page.shortTitle }}{% endblock title %}
  752. {% block description %}{{ page.shortDescription }}{% endblock description %}
  753. {% block robots %}{{ page.robots }}{% endblock robots %}
  754. {% block meta_social %}{{ parent() }}{% include \"/vitrine/components/socialmedia.html.twig\" with { 'page':page,'social_type':'website' } %}{% endblock meta_social %}
  755. {% block canonical %}{% include \"/vitrine/lexend/components/pages/canonical.html.twig\" with {'page':page} %}{% endblock canonical %}
  756. {% block css %}
  757.     {{ parent() }}
  758.     <style>
  759.         /* ─── Page liste articles (mêmes patterns que /jobs) ─── */
  760.         .articles-dash{max-width:880px;margin:0 auto}
  761.         .articles-dash-header{margin-bottom:18px}
  762.         .articles-dash-title{font-size:24px;font-weight:800;color:#1E1B2E;line-height:1.2;letter-spacing:-0.02em;margin:0 0 6px}
  763.         @media(min-width:768px){.articles-dash-title{font-size:28px}}
  764.         /* Liste cards (style identique aux jobs-card) */
  765.         .articles-list{display:flex;flex-direction:column;gap:10px}
  766.         .articles-card{background:#fff;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}
  767.         .articles-card:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(108,58,237,.1);color:inherit}
  768.         .articles-card-logo{width:50px;height:50px;border-radius:12px;background:linear-gradient(135deg,#EDE9FE,#DDD6FE);display:flex;align-items:center;justify-content:center;color:var(--theme-color,#6C3AED);flex-shrink:0;overflow:hidden}
  769.         .articles-card-logo svg{width:24px;height:24px;opacity:.9}
  770.         .articles-card-info{flex:1;min-width:0}
  771.         .articles-card-title{font-size:14px;font-weight:700;color:#1E1B2E;line-height:1.3;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  772.         .articles-card-meta{font-size:12px;color:#6B7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}
  773.         .articles-card-meta-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:#D1D5DB;flex-shrink:0}
  774.         .articles-card-badge{font-size:11px;font-weight:600;color:var(--theme-color,#6C3AED);background:#F5F3FF;padding:3px 9px;border-radius:100px;white-space:nowrap;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}
  775.         .articles-card-arrow{flex-shrink:0;color:#9CA3AF;transition:color .15s,transform .15s}
  776.         .articles-card:hover .articles-card-arrow{color:var(--theme-color,#6C3AED);transform:translateX(2px)}
  777.         .articles-card-arrow svg{width:18px;height:18px}
  778.         /* État vide */
  779.         .articles-empty{text-align:center;padding:40px 20px;background:#fff;border-radius:14px;box-shadow:0 0 16px 0 rgba(0,0,0,0.04)}
  780.         .articles-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:#F5F3FF;color:var(--theme-color,#6C3AED);margin-bottom:14px}
  781.         .articles-empty-icon svg{width:24px;height:24px}
  782.         .articles-empty-title{font-size:16px;font-weight:700;color:#1E1B2E;margin:0 0 6px}
  783.         .articles-empty-text{font-size:13px;color:#6B7280;margin:0}
  784.         /* Pagination */
  785.         .articles-pagination{margin-top:18px}
  786.         /* ═══ CTA inline (entre articles) ═══ */
  787.         .articles-cta-inline{
  788.             position:relative;
  789.             border-radius:18px;
  790.             padding:24px;
  791.             margin:6px 0;
  792.             background:linear-gradient(135deg,#6C3AED 0%,#8B5CF6 50%,#A78BFA 100%);
  793.             overflow:hidden;
  794.             box-shadow:0 10px 30px -8px rgba(108,58,237,.35);
  795.         }
  796.         .articles-cta-inline::before{
  797.             content:\"\";
  798.             position:absolute;
  799.             top:-40px;right:-40px;
  800.             width:180px;height:180px;
  801.             background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 70%);
  802.             pointer-events:none;
  803.         }
  804.         .articles-cta-inline::after{
  805.             content:\"\";
  806.             position:absolute;
  807.             bottom:-60px;left:-60px;
  808.             width:200px;height:200px;
  809.             background:radial-gradient(circle,rgba(255,255,255,.08) 0%,transparent 70%);
  810.             pointer-events:none;
  811.         }
  812.         .articles-cta-eyebrow{
  813.             display:inline-flex;align-items:center;gap:6px;
  814.             font-size:11px;font-weight:700;
  815.             color:#fff;
  816.             text-transform:uppercase;letter-spacing:.1em;
  817.             background:rgba(255,255,255,.18);
  818.             padding:5px 12px;border-radius:100px;
  819.             margin-bottom:12px;
  820.             backdrop-filter:blur(10px);
  821.             -webkit-backdrop-filter:blur(10px);
  822.             position:relative;z-index:2;
  823.         }
  824.         .articles-cta-eyebrow svg{width:12px;height:12px}
  825.         .articles-cta-title{
  826.             font-size:20px;font-weight:800;
  827.             color:#fff;
  828.             line-height:1.25;letter-spacing:-0.01em;
  829.             margin:0 0 18px;
  830.             position:relative;z-index:2;
  831.         }
  832.         @media(min-width:768px){.articles-cta-title{font-size:24px}}
  833.         .articles-cta-grid{
  834.             display:grid;
  835.             grid-template-columns:1fr;
  836.             gap:12px;
  837.             position:relative;z-index:2;
  838.         }
  839.         @media(min-width:640px){.articles-cta-grid{grid-template-columns:1fr 1fr;gap:14px}}
  840.         .articles-cta-side{
  841.             background:rgba(255,255,255,.97);
  842.             border-radius:14px;
  843.             padding:18px;
  844.             display:flex;flex-direction:column;
  845.             transition:transform .2s,box-shadow .2s;
  846.         }
  847.         .articles-cta-side:hover{transform:translateY(-2px);box-shadow:0 12px 24px -8px rgba(0,0,0,.18)}
  848.         .articles-cta-side-head{
  849.             display:flex;align-items:center;gap:10px;
  850.             margin-bottom:10px;
  851.         }
  852.         .articles-cta-side-icon{
  853.             width:38px;height:38px;border-radius:10px;
  854.             display:inline-flex;align-items:center;justify-content:center;
  855.             background:linear-gradient(135deg,#EDE9FE,#DDD6FE);
  856.             color:var(--theme-color,#6C3AED);
  857.             flex-shrink:0;
  858.         }
  859.         .articles-cta-side-icon svg{width:18px;height:18px}
  860.         .articles-cta-side-label{
  861.             font-size:11px;font-weight:700;
  862.             color:var(--theme-color,#6C3AED);
  863.             text-transform:uppercase;letter-spacing:.08em;
  864.             margin:0;
  865.         }
  866.         .articles-cta-side-heading{
  867.             font-size:15px;font-weight:700;
  868.             color:#1E1B2E;
  869.             line-height:1.3;
  870.             margin:0 0 8px;
  871.         }
  872.         .articles-cta-side-text{
  873.             font-size:13px;color:#6B7280;
  874.             line-height:1.5;
  875.             margin:0 0 14px;
  876.             flex:1;
  877.         }
  878.         .articles-cta-side-btn{
  879.             display:inline-flex;align-items:center;justify-content:center;gap:6px;
  880.             background:var(--theme-color,#6C3AED);
  881.             color:#fff;text-decoration:none;
  882.             padding:11px 16px;
  883.             border-radius:10px;
  884.             font-size:13px;font-weight:700;
  885.             letter-spacing:.01em;
  886.             transition:background .15s,transform .15s;
  887.         }
  888.         .articles-cta-side-btn:hover{
  889.             background:#5B21B6;color:#fff;
  890.             transform:translateX(2px);
  891.         }
  892.         .articles-cta-side-btn svg{width:14px;height:14px;transition:transform .15s}
  893.         .articles-cta-side-btn:hover svg{transform:translateX(2px)}
  894.     </style>
  895. {% endblock css %}
  896. {% block body %}
  897.     <div class=\"articles-dash\">
  898.         {# ═══ Header ═══ #}
  899.         <div class=\"articles-dash-header\">
  900.             <h1 class=\"articles-dash-title\">{{ page.title }}</h1>
  901.         </div>
  902.         {# ═══ Liste articles ═══ #}
  903.         {% if pagination|length > 0 %}
  904.             <div class=\"articles-list\">
  905.                 {% for article in pagination %}
  906.                     {# ── URL article ── #}
  907.                     {% set prefix = \"\" %}
  908.                     {% set urlArticle = path('blog_article',{'slug': article.slug})  %}
  909.                     {% if app.request.locale != default_locale %}
  910.                         {% set urlArticle = path('locale_blog_article',{'_locale':app.request.locale,'slug': article.slug})  %}
  911.                         {% set prefix = \"/\" ~ app.request.locale %}
  912.                     {% endif %}
  913.                     {% if article.pageslug3 is not empty %}
  914.                         {% set urlArticle = prefix ~ '/' ~ article.pageslug ~ '/' ~  article.pageslug2 ~ '/' ~ article.pageslug3  %}
  915.                     {% elseif article.pageslug2 is not empty %}
  916.                         {% set urlArticle = prefix ~ '/' ~ article.pageslug ~ '/' ~  article.pageslug2  %}
  917.                     {% elseif article.pageslug is not empty %}
  918.                         {% set urlArticle = prefix ~ '/' ~ article.pageslug  %}
  919.                     {% endif %}
  920.                     <a href=\"{{ urlArticle }}\" class=\"articles-card\">
  921.                         <div class=\"articles-card-logo\">
  922.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  923.                                 <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"/>
  924.                                 <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"/>
  925.                             </svg>
  926.                         </div>
  927.                         <div class=\"articles-card-info\">
  928.                             <h2 class=\"articles-card-title\">{{ article.title }}</h2>
  929.                             <div class=\"articles-card-meta\">
  930.                                 {#<span>{{ article.publishedAt|date(\"d M Y\") }}</span> <span class=\"articles-card-meta-sep\"></span>#}
  931.                                 {% if article.subtitle is not empty %}
  932.                                     <span>{{ article.subtitle|length > 60 ? article.subtitle|slice(0,60) ~ '…' : article.subtitle }}</span>
  933.                                 {% endif %}
  934.                             </div>
  935.                         </div>
  936.                         <span class=\"articles-card-badge\">{{ \"Je lis l'article\"|translateLocale(arrayTranslate) }}</span>
  937.                         <span class=\"articles-card-arrow\">
  938.                             <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  939.                                 <polyline points=\"9 18 15 12 9 6\"/>
  940.                             </svg>
  941.                         </span>
  942.                     </a>
  943.                     {# ═══ CTA inline après le 3e article ═══ #}
  944.                     {% if loop.index == 3 and getEnv(\"KERNEL_APPLICATION\") == \"whileresume\" and app.request.locale in ['fr','en'] %}
  945.                         {% if app.user is null %}
  946.                         {{ ctaMacro.cta_recruiter_candidate(app.request.locale) }}
  947.                         {% endif %}
  948.                     {% endif %}
  949.                 {% endfor %}
  950.             </div>
  951.             {# Pagination #}
  952.             <div class=\"articles-pagination\">
  953.                 {{ knp_pagination_render(pagination,'application/whileresume/website/pagination/pagination.html.twig') }}
  954.             </div>
  955.         {% else %}
  956.             <div class=\"articles-empty\">
  957.                 <div class=\"articles-empty-icon\">
  958.                     <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">
  959.                         <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"/>
  960.                         <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"/>
  961.                     </svg>
  962.                 </div>
  963.                 <p class=\"articles-empty-title\">{{ \"Aucun article\"|translateLocale(arrayTranslate) }}</p>
  964.             </div>
  965.         {% endif %}
  966.         {# ═══ CTA Recruteur / Candidat (en bas, si moins de 3 articles → fallback) ═══ #}
  967.         {% if pagination|length > 0 and pagination|length < 3 and getEnv(\"KERNEL_APPLICATION\") == \"whileresume\" and app.request.locale in ['fr','en'] %}
  968.             {% if app.user is null %}
  969.             <div class=\"mt-3\">
  970.                 {{ ctaMacro.cta_recruiter_candidate(app.request.locale) }}
  971.             </div>
  972.             {% endif %}
  973.         {% endif %}
  974.     </div>
  975. {% endblock body %}
  976. ""application/whileresume/website/articles/list.html.twig""/var/www/vhosts/mirtillostudio.fr/b1.mirtillostudio.fr/version-1/templates/application/whileresume/website/articles/list.html.twig");
  977.     }
  978. }