var/cache/dev/twig/84/8408706ecf03503a2beadb92354b8e942b8bb72daa7e99010cafa0179be0be92.php line 41

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\SandboxExtension;
  6. use Twig\Markup;
  7. use Twig\Sandbox\SecurityError;
  8. use Twig\Sandbox\SecurityNotAllowedTagError;
  9. use Twig\Sandbox\SecurityNotAllowedFilterError;
  10. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  11. use Twig\Source;
  12. use Twig\Template;
  13. /* Theme/Produit/Produit/Produit/businessretenu.html.twig */
  14. class __TwigTemplate_19f9a1de08802a36c037cfa43745e0e7c576fc5b35b399e09e731e250e770ad4 extends Template
  15. {
  16.     private $source;
  17.     private $macros = [];
  18.     public function __construct(Environment $env)
  19.     {
  20.         parent::__construct($env);
  21.         $this->source $this->getSourceContext();
  22.         $this->blocks = [
  23.             'meta' => [$this'block_meta'],
  24.             'title' => [$this'block_title'],
  25.             'userblog_body' => [$this'block_userblog_body'],
  26.             'javascripttemplate' => [$this'block_javascripttemplate'],
  27.         ];
  28.     }
  29.     protected function doGetParent(array $context)
  30.     {
  31.         // line 1
  32.         return "Theme/Users/User/layoutoffert.html.twig";
  33.     }
  34.     protected function doDisplay(array $context, array $blocks = [])
  35.     {
  36.         $macros $this->macros;
  37.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  38.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Theme/Produit/Produit/Produit/businessretenu.html.twig"));
  39.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  40.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Theme/Produit/Produit/Produit/businessretenu.html.twig"));
  41.         $this->parent $this->loadTemplate("Theme/Users/User/layoutoffert.html.twig""Theme/Produit/Produit/Produit/businessretenu.html.twig"1);
  42.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  43.         
  44.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  45.         
  46.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  47.     }
  48.     // line 2
  49.     public function block_meta($context, array $blocks = [])
  50.     {
  51.         $macros $this->macros;
  52.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  53.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""meta"));
  54.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  55.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""meta"));
  56.         // line 3
  57.         echo "
  58. \t";
  59.         // line 4
  60.         $this->displayParentBlock("meta"$context$blocks);
  61.         echo "
  62. \t<meta name=\"keywords\" content=\"";
  63.         // line 5
  64.         echo twig_escape_filter($this->env, (isset($context["site"]) || array_key_exists("site"$context) ? $context["site"] : (function () { throw new RuntimeError('Variable "site" does not exist.'5$this->source); })()), "html"nulltrue);
  65.         echo ", ";
  66.         echo twig_escape_filter($this->env, (isset($context["keywords"]) || array_key_exists("keywords"$context) ? $context["keywords"] : (function () { throw new RuntimeError('Variable "keywords" does not exist.'5$this->source); })()), "html"nulltrue);
  67.         echo "\"/>
  68. \t<meta name=\"author\" content=\"Noel Kenfack\"/>
  69. \t<meta name=\"description\" content=\"";
  70.         // line 7
  71.         echo twig_escape_filter($this->env, (isset($context["site"]) || array_key_exists("site"$context) ? $context["site"] : (function () { throw new RuntimeError('Variable "site" does not exist.'7$this->source); })()), "html"nulltrue);
  72.         echo " - ";
  73.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["souscategorie"]) || array_key_exists("souscategorie"$context) ? $context["souscategorie"] : (function () { throw new RuntimeError('Variable "souscategorie" does not exist.'7$this->source); })()), "nom", [], "any"falsefalsefalse7), "html"nulltrue);
  74.         echo "\"/>
  75. \t
  76. ";
  77.         
  78.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  79.         
  80.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  81.     }
  82.     // line 11
  83.     public function block_title($context, array $blocks = [])
  84.     {
  85.         $macros $this->macros;
  86.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  87.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  88.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  89.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  90.         // line 12
  91.         echo "\t";
  92.         $this->displayParentBlock("title"$context$blocks);
  93.         echo " - ";
  94.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["souscategorie"]) || array_key_exists("souscategorie"$context) ? $context["souscategorie"] : (function () { throw new RuntimeError('Variable "souscategorie" does not exist.'12$this->source); })()), "nom", [], "any"falsefalsefalse12), "html"nulltrue);
  95.         echo "
  96. ";
  97.         
  98.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  99.         
  100.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  101.     }
  102.     // line 15
  103.     public function block_userblog_body($context, array $blocks = [])
  104.     {
  105.         $macros $this->macros;
  106.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  107.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""userblog_body"));
  108.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  109.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""userblog_body"));
  110.         // line 16
  111.         echo "<style>
  112. \t.mzp-c-details .is-summary button:before, details .is-summary button:before, summary:before{
  113. \t\tdisplay: none!important;
  114. \t}
  115. </style>
  116. <div style=\"background: #90acd1; min-height: 200px;\">
  117. <div class=\"container\" style=\"overflow: hidden;\">
  118. \t<div class=\"row\" style=\"margin-top: 15px;\">
  119. \t<div class=\"col-md-8\">
  120. \t";
  121.         // line 25
  122.         if ($this->extensions['App\Service\Servicetext\TwigExtensions']->is_mobile()) {
  123.             // line 26
  124.             echo "\t<ol class=\"c-navigation-breadcrumbs__directory\">
  125. \t\t<!-- Duplicating the \"Home\" link in both the global navigation and the breadcrumb trail is not recommended. -->
  126. \t\t<li class=\"c-navigation-breadcrumbs__item\" property=\"itemListElement\" typeof=\"ListItem\">
  127. \t\t  <a class=\"c-navigation-breadcrumbs__link\" href=\"\" property=\"item\" typeof=\"WebPage\">
  128. \t\t\t<span class=\"u-visually-hidden\" property=\"name\"><span class=\"fa fa-home\"> </span> Accueil</span>
  129. \t\t  </a>
  130. \t\t  <meta property=\"position\" content=\"1\">
  131. \t\t</li>
  132. \t\t<li class=\"c-navigation-breadcrumbs__item\" property=\"itemListElement\" typeof=\"ListItem\">
  133. \t\t  <a class=\"c-navigation-breadcrumbs__link\" href=\"\" property=\"item\" typeof=\"WebPage\">
  134. \t\t\t<span property=\"name\"> L'entreprise</span>
  135. \t\t  </a>
  136. \t\t  <meta property=\"position\" content=\"2\">
  137. \t\t</li>
  138. \t\t<li class=\"c-navigation-breadcrumbs__item\" property=\"itemListElement\" typeof=\"ListItem\">
  139. \t\t  <a class=\"c-navigation-breadcrumbs__link\" href=\"#!\" property=\"item\" aria-current=\"location\">
  140. \t\t\t<span property=\"name\">À propos de  nous </span>
  141. \t\t  </a>
  142. \t\t  <meta property=\"position\" content=\"3\">
  143. \t\t</li>
  144. \t</ol>
  145. \t";
  146.         } else {
  147.             // line 50
  148.             echo "\t<div style=\"padding: 20px 0px;\">
  149. \t\t<ul class=\"breadcrumbs\">
  150. \t\t  <li><a href=\"";
  151.             // line 52
  152.             echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("users_user_acces_plateforme");
  153.             echo "\"><span class=\"fa fa-home\"></span> Accueil</a></li>
  154. \t\t  <li><a > L'entreprise</a></li>
  155. \t\t  <li>À propos de nous</li>
  156. \t\t</ul>
  157. \t</div>
  158. \t";
  159.         }
  160.         // line 58
  161.         echo "\t
  162. \t<div>
  163. \t\t<h2 style=\"color: #fff;\">";
  164.         // line 60
  165.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["souscategorie"]) || array_key_exists("souscategorie"$context) ? $context["souscategorie"] : (function () { throw new RuntimeError('Variable "souscategorie" does not exist.'60$this->source); })()), "nom", [], "any"falsefalsefalse60), "html"nulltrue);
  166.         echo "</h2>
  167. \t\t<div style=\"color: #fff;\">";
  168.         // line 61
  169.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["souscategorie"]) || array_key_exists("souscategorie"$context) ? $context["souscategorie"] : (function () { throw new RuntimeError('Variable "souscategorie" does not exist.'61$this->source); })()), "description", [], "any"falsefalsefalse61), "html"nulltrue);
  170.         echo "</div>
  171.     </div>
  172.   </div>
  173.   
  174. \t<!-- div class=\"col-md-4\">
  175. \t\t<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"0\" height=\"0\" class=\"my-svg\">
  176. \t\t  <defs>
  177. \t\t\t<filter id=\"goo\">
  178. \t\t\t  <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"10\" result=\"blur\" />
  179. \t\t\t  <feColorMatrix in=\"blur\" mode=\"matrix\" values=\"1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 18 -7\" result=\"goo\" />
  180. \t\t\t  <feBlend in=\"SourceGraphic\" in2=\"goo\" />
  181. \t\t\t</filter>
  182. \t\t  </defs>
  183. \t\t</svg>
  184. \t\t<div class=\"demo\">
  185. \t\t  <div class=\"demo__buttons\">
  186. \t\t\t<div class=\"demo__social-btn-4 demo__social-btn\"><i class=\"fa fa-snapchat\"></i></div>
  187. \t\t\t<div class=\"demo__social-btn-3 demo__social-btn\"><i class=\"fa fa-instagram\"></i></div>
  188. \t\t\t<div class=\"demo__social-btn-2 demo__social-btn\"><i class=\"fa fa-facebook\"></i></div>
  189. \t\t\t<div class=\"demo__social-btn-1 demo__social-btn\"><i class=\"fa fa-twitter\"></i></div>
  190. \t\t\t<div class=\"demo__open-btn\"><i class=\"fa fa-share-alt\"></i></div>
  191. \t\t  </div>
  192. \t\t  <h2 class=\"text-center\" style=\"color: #fff;\">Share and win</h2>
  193. \t\t</div>
  194. \t</div -->
  195.   
  196.   </div>
  197.   
  198. </div>
  199. </div>
  200. <div style=\"background-image: linear-gradient(-1deg, #F6FCFF 0%, #EAF7FF 98%); background: #f2f2f2;\">
  201. \t<div class=\"container\" style=\"height: 100px;\">
  202. \t  
  203. \t</div>
  204. </div>
  205. <style>
  206. \t.brand-wrap {
  207. \t  position: relative;
  208. \t  z-index: 2;
  209. \t}
  210. \t
  211. \t@media (max-width: 991px) {
  212. \t\t.brand-wrap {
  213. \t\t  padding: 20px 0;
  214. \t\t} 
  215. \t}
  216. \t
  217. \t.brand-wrap .owl-carousel .owl-item img {
  218. \t\twidth: auto !important; 
  219. \t}
  220. \t
  221. \t.brand-wrap .single-brand {
  222. \t\ttext-align: center;
  223. \t\t-webkit-filter: grayscale(100%);
  224. \t\t-moz-filter: grayscale(100%);
  225. \t\t-ms-filter: grayscale(100%);
  226. \t\t-o-filter: grayscale(100%);
  227. \t\tfilter: grayscale(100%);
  228. \t\topacity: .5;
  229. \t\t-webkit-transition: all 0.3s ease 0s;
  230. \t\t-moz-transition: all 0.3s ease 0s;
  231. \t\t-o-transition: all 0.3s ease 0s;
  232. \t\ttransition: all 0.3s ease 0s; 
  233. \t}
  234. \t
  235. \t.brand-wrap .single-brand:hover{
  236. \t  -webkit-filter: grayscale(0%);
  237. \t  -moz-filter: grayscale(0%);
  238. \t  -ms-filter: grayscale(0%);
  239. \t  -o-filter: grayscale(0%);
  240. \t  filter: grayscale(0%);
  241. \t  opacity: 1; 
  242. \t }
  243. </style>
  244. <div style=\"background: transparent; margin-bottom: -140px;\">
  245. <div class=\"container\" style=\"background: transparent;\">
  246.   <div class=\"row\" style=\"margin-top: 25px; background: transparent;\">
  247. \t<div class=\"col-md-12\">
  248. \t<div style=\"overflow: hidden; position: relative; top: -140px!important;  padding: 15px 7px; border-radius: 7px; border-top: 2px solid #ddd; border-radius: 15px; background: #fff;\">
  249. \t\t<h2>Services</h2>
  250. \t\t<div class=\"boxC12\">
  251. \t\t\t
  252. \t\t\t<details>
  253. \t\t\t\t<summary>
  254. \t\t\t\t<p> service.nom </p><span class=\"plusminus\"></span>
  255. \t\t\t\t</summary>
  256. \t\t\t\t<p>
  257. \t\t\t\t\t\tservice.description|raw
  258. \t\t\t\t
  259. \t\t\t\t\t
  260. \t\t\t\t\t<div class=\"box\">
  261. \t\t\t\t\t\t<div class=\"title-bold\">
  262. \t\t\t\t\t\t\t<span> scat.nom </span>
  263. \t\t\t\t\t\t</div>
  264. \t\t\t\t\t\t<div class=\"inner-profile\">
  265. \t\t\t\t\t\t\t\tscat.description|raw 
  266. \t\t\t\t\t\t</div>
  267. \t\t\t\t\t\t<div class=\"clearfix\"></div>
  268. \t\t\t\t\t</div>
  269. \t\t\t\t</p>
  270. \t\t\t</details>
  271. \t\t</div>
  272. \t</div>
  273. \t</div>
  274.   </div>
  275.   
  276. </div>
  277. </div>
  278. <div style=\"background-image: linear-gradient(-1deg, #F6FCFF 0%, #EAF7FF 98%); margin-bottom: 30px;\">
  279. \t<div class=\"container\" style=\"padding-top: 25px; padding-bottom: 25px;\">
  280. \t   
  281. \t\t<section style=\"margin-top: -20px;\">
  282. \t\t\t<div style=\"width: 100%; margin: 0px auto;\">
  283. \t\t\t<link href=\"";
  284.         // line 184
  285.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("template/css/tyfy.css"), "html"nulltrue);
  286.         echo "\" rel=\"stylesheet\"/>
  287. \t\t\t<style>
  288. \t\t\t  div.demotabs {
  289. \t\t\t\tborder: 2px dashed #e6e6e6;
  290. \t\t\t\tborder-radius: .8125rem;
  291. \t\t\t\tbox-shadow: inset 0px 0px 1.625rem rgba(0, 0, 0, 0.05);
  292. \t\t\t\tmargin-top: 1.625rem;
  293. \t\t\t\tpadding: 15px;
  294. \t\t\t\tbackground: #fff;
  295. \t\t\t  }
  296. \t\t\t  .links-underlined a[href]{border-bottom-style:solid;border-bottom-width:2px}ol,ul{line-height:1.625rem;padding-left:2.4375rem}
  297. \t\t\t</style>
  298. \t\t\t
  299. \t\t\t
  300. \t\t\t<div class=\"demotabs\">
  301. \t\t\t\t<div class=\"mzp-l-content\">
  302. \t\t\t  <div class=\"links-underlined\">
  303. \t\t\t\t  <h1>En quoi AFH Factory vous êtes utiles ?</h1>
  304. \t\t\t\t  <p>  This is my implementation of responsive tabs. It is being incorporated into my <a href=\"https://github.com/aaronpinero/typography\">Tyfy framework</a>.</p>
  305. \t\t\t  </div>
  306. \t\t\t  <div class=\"tabs-container\">
  307. \t\t\t\t  <h2 class=\"tab-label\">Présentation</h2>
  308. \t\t\t\t  <p>Porro excepturi ad eligendi excepturi quam voluptate velit. Placeat modi animi natus est temporibus tenetur pariatur suscipit. Dolores sit id sit placeat consequatur temporibus accusamus et. Cumque voluptatum voluptatum delectus et sequi. Vero vitae officia eius ad. Consequatur impedit quam mollitia.</p>
  309. \t\t\t\t  <p>Aspernatur id nihil sit eveniet vero corporis necessitatibus sit. Magni quia vitae perferendis. Suscipit illo tempora minus officia nemo aut numquam. Qui et omnis velit repudiandae autem. Aperiam aut dolorem neque quis dolor est sunt.</p>
  310. \t\t\t\t  
  311. \t\t\t\t  <h2 class=\"tab-label collapsed\">Eligibilité</h2>
  312. \t\t\t\t  <p>Facilis error corrupti dolor eaque. 
  313. \t\t\t\t  <a id=\"anchor\">Occaecati</a> illum sequi officia rerum nostrum. Iste in quo eveniet. Deserunt quaerat a adipisci magni consequatur nesciunt distinctio praesentium. Ipsum vel ut est vel veritatis fugiat perspiciatis.</p>
  314. \t\t\t\t  <p>Omnis dolores sit pariatur facilis odit magni. Totam excepturi incidunt dolorem assumenda neque dolorem. Dolorem odio consequatur quas corrupti sequi. Nihil ut nihil itaque non at molestiae corporis. Explicabo voluptate quis et.</p>
  315. \t\t\t\t  
  316. \t\t\t\t  <h2 class=\"tab-label collapsed\">Rapport</h2>
  317. \t\t\t\t  <p>Curabitur non mauris sodales, tempor lacus ac, maximus felis. Vestibulum ultrices augue ut arcu mattis pellentesque. Maecenas ullamcorper lorem sit amet pretium pharetra. Nunc ipsum tellus, hendrerit vitae bibendum vel, scelerisque sit amet libero. Duis imperdiet massa placerat venenatis pharetra. Donec consectetur quis odio sit amet sollicitudin. Morbi at faucibus odio. Duis viverra lacus a odio pretium, quis suscipit tortor accumsan. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur egestas venenatis est vel hendrerit. Fusce molestie bibendum ex in suscipit.</p>
  318. \t\t\t\t  
  319. \t\t\t\t  <h2 class=\"tab-label collapsed\">Historique</h2>
  320. \t\t\t\t  <p>Curabitur non mauris sodales, tempor lacus ac, maximus felis. Vestibulum ultrices augue ut arcu mattis pellentesque. Maecenas ullamcorper lorem sit amet pretium pharetra. Nunc ipsum tellus, hendrerit vitae bibendum vel, scelerisque sit amet libero. Duis imperdiet massa placerat venenatis pharetra. Donec consectetur quis odio sit amet sollicitudin. Morbi at faucibus odio. Duis viverra lacus a odio pretium, quis suscipit tortor accumsan. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur egestas venenatis est vel hendrerit. Fusce molestie bibendum ex in suscipit.</p>
  321. \t\t\t\t  
  322. \t\t\t  </div>
  323. \t\t\t
  324. \t\t\t<h2>Notes</h2>
  325. \t\t\t<p>I've relied on CSS Flexbox for the visual tabs. Flexbox is <a href=\"https://caniuse.com/#search=flex\">a problem for just about any version of Internet <strike>Exploder</strike> Explorer</a>. At some point, I'll need to figure out an alternative way to present the tabs that will work for IE.</p>
  326. \t\t  </div>
  327. \t\t  </div>
  328. \t\t\t
  329. \t\t  <script>
  330. \t\t\t  \$(document).ready(function(){
  331. \t\t
  332. \t\t\t\tGoToAnchor = function(){
  333. \t\t\t\t  // find the anchor and any tab it might be in
  334. \t\t\t\t  selected_anchor_name = encodeURIComponent(window.location.hash.substring(1));
  335. \t\t\t\t\t  selected_anchor = \$('a[name=\"'+selected_anchor_name+'\"], a[id=\"'+selected_anchor_name+'\"]');
  336. \t\t\t\t  parent_tab = selected_anchor.parents('.tab-panel');
  337. \t\t\t\t  // account for an anchor in a label
  338. \t\t\t\t  parent_label = selected_anchor.parents('.tab-label');
  339. \t\t\t\t  if (parent_label.length) {
  340. \t\t\t\t\tparent_tab = parent_label.next('.tab-panel');
  341. \t\t\t\t  }
  342. \t\t\t\t  // do the steps of this function only if we have an anchor link and a tab panel
  343. \t\t\t\t  if (selected_anchor.length && parent_tab.length) {
  344. \t\t\t\t\tparent_tab_label = parent_tab.prev('.tab-label');
  345. \t\t\t\t\t\tparent_tab_index = parent_tab_label.attr('data-tabindex');
  346. \t\t\t\t\tparent_tab.parent().find('ul.tabs li').eq(parent_tab_index).click();
  347. \t\t\t\t\tif (parent_tab.hasClass('collapsed')) {
  348. \t\t\t\t\t  parent_tab.removeClass('collapsed');
  349. \t\t\t\t\t  parent_tab_label.removeClass('collapsed');
  350. \t\t\t\t\t}
  351. \t\t\t\t\t// scroll to the anchor
  352. \t\t\t\t\tvar s = selected_anchor.offset().top - 50; // console.log(s);
  353. \t\t\t\t\t\$('body,html').animate({'scrollTop':s},500,'swing');
  354. \t\t\t\t\t  }
  355. \t\t\t\t};
  356. \t\t\t\t
  357. \t\t\t\t// prepare HTML structure for each tab container
  358. \t\t\t\t\$('.tabs-container').each(function(){
  359. \t\t\t\t  if (!\$(this).hasClass('tabs-processed')) {
  360. \t\t\t\t\t// find the headings that are tab labels
  361. \t\t\t\t\tmy_tablabels = \$(this).find('.tab-label');
  362. \t\t\t\t\t// create tabs
  363. \t\t\t\t\tif (\$(this).find('ul.tabs').length === 0) {
  364. \t\t\t\t\t  \$(this).prepend('<ul class=\"tabs\"></ul>');
  365. \t\t\t\t\t  var x;
  366. \t\t\t\t\t  for (x=0;x<my_tablabels.length;x++) {
  367. \t\t\t\t\t\t\$(this).find('ul.tabs').append('<li data-tabindex=\"'+x+'\">'+my_tablabels.eq(x).text()+'</li>');
  368. \t\t\t\t\t  }
  369. \t\t\t\t\t}
  370. \t\t\t\t\t// structure all labels and wrap all tab panels
  371. \t\t\t\t\tif (\$(this).find('.tab-panel').length === 0) {
  372. \t\t\t\t\t  my_tablabels.each(function(i){
  373. \t\t\t\t\t\t\$(this).attr('data-tabindex',i);
  374. \t\t\t\t\t\t\$(this).wrapInner('<a id=\"'+encodeURIComponent(\$(this).text())+'\"></a>');
  375. \t\t\t\t\t\tkids = \$(this).nextUntil('.tab-label').wrapAll('<div class=\"tab-panel\"></div>');
  376. \t\t\t\t\t\t// default state class for when tabs are collapsable sections
  377. \t\t\t\t\t\t\$(this).addClass('collapsed').next('.tab-panel').addClass('collapsed');
  378. \t\t\t\t\t  });    
  379. \t\t\t\t\t}
  380. \t\t\t\t\t// open initial tab
  381. \t\t\t\t\t\$(this).find('ul.tabs li').eq(0).addClass('open');
  382. \t\t\t\t\tmy_tablabels.eq(0).addClass('open').next('.tab-panel').addClass('open');
  383. \t\t\t\t\t// tab click events
  384. \t\t\t\t\t\$('.tabs-container ul.tabs li').each(function(i){
  385. \t\t\t\t\t  \$(this).click(function(){
  386. \t\t\t\t\t\tif (!\$(this).hasClass('open')) {
  387. \t\t\t\t\t\t  \$('.tabs-container .open').removeClass('open');
  388. \t\t\t\t\t\t  my_tabindex = \$(this).attr('data-tabindex');
  389. \t\t\t\t\t\t  \$(this).addClass('open');
  390. \t\t\t\t\t\t  \$('.tabs-container .tab-label').eq(my_tabindex).addClass('open');
  391. \t\t\t\t\t\t  \$('.tabs-container .tab-panel').eq(my_tabindex).addClass('open');
  392. \t\t\t\t\t\t}
  393. \t\t\t\t\t  });
  394. \t\t\t\t\t});
  395. \t\t\t\t\t// collapsable header click event
  396. \t\t\t\t\t\$('.tabs-container .tab-label').click(function(){
  397. \t\t\t\t\t  if (!\$(this).hasClass('transition')) {
  398. \t\t\t\t\t\tkids = \$(this).next('.tab-panel');
  399. \t\t\t\t\t\tkids.removeClass('collapsed');
  400. \t\t\t\t\t\tvar fullHeight = kids.outerHeight();
  401. \t\t\t\t\t\t\$(this).addClass('transition');
  402. \t\t\t\t\t\tkids.addClass('transition');
  403. \t\t\t\t\t\tif (\$(this).hasClass('collapsed')) {
  404. \t\t\t\t\t\t  kids.css({'height':'0px','padding-bottom':'0px','padding-top':'0px'}).animate({
  405. \t\t\t\t\t\t\theight:fullHeight+'px',
  406. \t\t\t\t\t\t\tpaddingBottom:'32px',
  407. \t\t\t\t\t\t\tpaddingTop:'16px',
  408. \t\t\t\t\t\t  },500,function(){
  409. \t\t\t\t\t\t\t\$('.tabs-container .transition').removeClass('collapsed').removeClass('transition').removeAttr('style');
  410. \t\t\t\t\t\t  });
  411. \t\t\t\t\t\t}
  412. \t\t\t\t\t\telse {
  413. \t\t\t\t\t\t  kids.css('height',fullHeight+'px').animate({
  414. \t\t\t\t\t\t\theight:'0px',
  415. \t\t\t\t\t\t\tpaddingBottom:'0px',
  416. \t\t\t\t\t\t\tpaddingTop:'0px',
  417. \t\t\t\t\t\t  },500,function(){
  418. \t\t\t\t\t\t\t\$('.tabs-container .transition').addClass('collapsed').removeClass('transition').removeAttr('style');
  419. \t\t\t\t\t\t  });
  420. \t\t\t\t\t\t}
  421. \t\t\t\t\t  }
  422. \t\t\t\t\t}); 
  423. \t\t\t\t\t// indicate state of readiness
  424. \t\t\t\t\t\$(this).addClass('tabs-processed');
  425. \t\t\t\t  }  
  426. \t\t\t\t});
  427. \t\t\t\t// if there are tabs and someone has linked to an anchor inside a tab
  428. \t\t\t\tconsole.log(window.location.hash);
  429. \t\t\t\tif (window.location.hash != '') {
  430. \t\t\t\t  GoToAnchor();
  431. \t\t\t\t}
  432. \t\t\t\t// handle case when page is already loaded
  433. \t\t\t\t\$(window).on('hashchange',function(){
  434. \t\t\t\t  GoToAnchor();
  435. \t\t\t\t});
  436. \t\t\t  });
  437. \t\t\t</script>
  438. \t\t\t</div>
  439. \t\t</section>
  440. \t
  441. \t</div>
  442. \t</div>
  443. <style>
  444. body {
  445. /* Colors */
  446. \t--color-blue-50: #0a84ff;
  447. \t--color-blue-60: #0060df;
  448. \t--color-blue-70: #003eaa;
  449. \t--color-blue-80: #002275;
  450. \t--color-gray-10: #f9f9fa;
  451. \t--color-gray-20: #ededf0;
  452. \t--color-gray-30: #d7d7db;
  453. \t--color-gray-40: #b1b1b3;
  454. \t--color-gray-50: #737373;
  455. \t--color-gray-60: #4a4a4f;
  456. \t--color-gray-70: #38383d;
  457. \t--color-gray-80: #2a2a2e;
  458. \t--color-gray-90: #0c0c0d;
  459. \t--color-green-70: #058b00;
  460. \t--color-teal-50: #00feff;
  461. \t--color-teal-60: #00c8d7;
  462. \t--color-teal-70: #008ea4;
  463. /* Icons */
  464. \t--icon-context-menu: url(";
  465.         // line 367
  466.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("template/images/twitter.png"), "html"nulltrue);
  467.         echo ");
  468. \t--icon-dismiss: url(";
  469.         // line 368
  470.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("template/images/twitter.png"), "html"nulltrue);
  471.         echo ");
  472.   --background-color: #F9F9FA;
  473.   --border-primary-color: #B1B1B3;
  474. /* Primary Action */
  475.   --primary-action-default: var(--color-blue-60);
  476.   --primary-action-hover: var(--color-blue-70);
  477.   --primary-action-active: var(--color-blue-80);
  478.   --primary-action-text-color: #fff;
  479. /* Secondary Action */
  480.   --secondary-action-default: var(--color-gray-20);
  481.   --secondary-action-hover: var(--color-gray-30);
  482.   --secondary-action-active: var(--color-gray-40);
  483.   --secondary-action-text-color: var(--color-gray-80);
  484. /* Ghost Action */
  485. \t--ghost-action-hover: var(--color-gray-20);
  486. \t--ghost-action-active: var(--color-gray-30);
  487. \t--ghost-action-text-color: var(--color-gray-80);
  488. /* Forms */
  489. \t--label-text-color: var(--text-secondary);
  490. \t--text-field-border-color: var(--color-gray-30);
  491. \t--text-field-hover-border-color: var(--color-gray-40);
  492. \t--text-field-focus-border-color: var(--color-gray-40);
  493. \t--text-field-bg-color: #fff;
  494. /* Focus */
  495.   --focus-box-shadow: 0 0 0 2px #fff, 0 0 0 5px rgba(10, 132, 255, 0.5);
  496. /* Cards */
  497.   --rasied-card-bg-color: #FFF;
  498.   --rasied-card-border-radius: 8px;
  499.   --box-shadow-10: 0px 0px 8px 0 rgba(12, 12, 13, 0.05);
  500.   --raised-card-hover: 0 0 0 4px var(--secondary-action-default);
  501.     
  502.   /* Typography */
  503.   --base-font-size: 15px;
  504.   --small-font-size: 13px;
  505.   --base-line-height: 24px;
  506.   
  507.   /* Text Colors */
  508.   --text-primary: var(--color-gray-90);
  509.   --text-secondary: var(--color-gray-50);
  510. }
  511. .meta {
  512. \tcolor: var(--text-secondary);
  513. \tfont-size: var(--small-font-size);
  514. \tline-height: var(--base-line-height);
  515. }
  516. .small {
  517. \tfont-size: var(--small-font-size);
  518. \tline-height: 20px;
  519. }
  520. .text-muted {
  521. \tcolor: var(--text-secondary);
  522. }
  523. .sr-only {
  524. \tdisplay: none;
  525. }
  526. /* Default Link */
  527. a {
  528. \t background-color: transparent;
  529. \t color: var(--color-blue-60);
  530. \t text-decoration: none;
  531. }
  532. a:hover {
  533. \ttext-decoration: underline;
  534. }
  535. a:active {
  536. \tcolor: var(--color-blue-70);
  537. \ttext-decoration:underline;
  538. }
  539. a:focus {
  540. \tbox-shadow: ;
  541. }
  542. a:not([href]):not([tabindex]) {
  543. \tcolor: inherit;
  544. \ttext-decoration: none;
  545. }
  546. /* Buttons */
  547. .btn {
  548. \tborder: none;
  549. \tcursor: pointer;
  550. \tfont-weight: 500;
  551. \ttransition: background-color 150ms, transform 150ms;
  552. \ttransition-duration: 150ms;
  553. }
  554. .btn:active {
  555. \ttransform: scale(0.97);
  556. }
  557. .btn:focus {
  558. \tbox-shadow: var(--focus-box-shadow);
  559. }
  560. .btn.disabled {
  561. \tcursor: default;
  562. \topacity: 0.4;
  563. }
  564. /* Primary Button */
  565. .btn--primary {
  566. \tbackground-color: var(--primary-action-default);
  567. \tcolor: var(--primary-action-text-color);
  568. \tfill: var(--primary-action-text-color);
  569. \t-moz-context-properties: fill;
  570. }
  571. .btn--primary:hover {
  572. \tbackground-color: var(--primary-action-hover);
  573. }
  574. .btn--primary:active {
  575. \tbackground-color: var(--primary-action-active);
  576. }
  577. .btn--primary:disabled,
  578. .btn--primary.disabled {
  579. \tbackground-color: var(--primary-action-default);
  580. \tcolor: var(--primary-action-text-color);
  581. \tfill: var(--primary-action-text-color);
  582. \t-moz-context-properties: fill;
  583. }
  584. /* Secondary Button */
  585. .btn--secondary {
  586. \tbackground-color: var(--secondary-action-default);
  587. \tcolor: var(--secondary-action-text-color);
  588. \tfill: var(--secondary-action-text-color);
  589. \t-moz-context-properties: fill;
  590. }
  591. .btn--secondary:hover {
  592. \tbackground-color: var(--secondary-action-hover);
  593. }
  594. .btn--secondary:active {
  595. \tbackground-color: var(--secondary-action-active);
  596. }
  597. .btn--secondary:disabled,
  598. .btn--secondary.disabled {
  599. \tbackground-color: var(--secondary-action-default);
  600. \tcolor: var(--secondary-action-text-color);
  601. \tfill: var(--secondary-action-text-color);
  602. \t-moz-context-properties: fill;
  603. }
  604. /* Pill Button */
  605. .btn--pill {
  606. \tborder-radius: 16px;
  607. \tline-height: 32px;
  608. \tmin-height: 32px;
  609. \tpadding: 0 16px;
  610. \tvertical-align: middle;
  611. }
  612. .btn--pill-icon-only {
  613. \tbackground-position: 50%;
  614. \tbackground-repeat: no-repeat;
  615. \tbackground-size: 16px;
  616. \twidth: 32px;
  617. }
  618. /* Form Button */
  619. .btn--form {
  620. \tborder-radius: 4px;
  621. \tmin-height: 40px;
  622. \tmin-width: 96px;
  623. \tpadding: 0 8px;
  624. }
  625. /* Ghost Button */
  626. .btn--ghost {
  627. \tbackground-color: transparent;
  628. \tcolor: var(--ghost-action-text-color);
  629. \tfill: var(--ghost-action-text-color);
  630. \t-moz-context-properties: fill;
  631. }
  632. .btn--ghost:hover {
  633. \tbackground-color: var(--ghost-action-hover);
  634. }
  635. .btn--ghost:active {
  636. \tbackground-color: var(--ghost-action-active);
  637. }
  638. .btn--ghost:disabled,
  639. .btn--ghost.disabled {
  640. \tbackground-color: transparent;
  641. \tcolor: var(--ghost-action-text-color);
  642. \tfill: var(--ghost-action-text-color);
  643. \t-moz-context-properties: fill;
  644. }
  645. .card .context-menu-btn {
  646. \topacity: 0;
  647. \tposition: absolute;
  648. \tright: -16px;
  649. \ttop: -16px;
  650. \ttransform: scale(0.25);
  651. \ttransition-duration: 150ms;
  652. \ttransition-property: transform, opacity;\t
  653. }
  654. /* Cards */
  655. .card-raised {
  656. \tbackground: var(--rasied-card-bg-color);
  657. \tborder-radius: var(--rasied-card-border-radius);
  658. \tborder: 1px inset rgba(12, 12, 13, 0.07);
  659. \tbox-shadow: var(--box-shadow-10);
  660. \ttransition: box-shadow 250ms, transform 150ms;
  661. \tposition: relative;
  662. }
  663. .card-raised:hover {
  664. \tbox-shadow: var(--box-shadow-10), var(--raised-card-hover);\t
  665. }
  666. .card-raised:hover .context-menu-btn {
  667.     opacity: 1;
  668.     transform: scale(1);
  669.     transition-delay: 200ms;
  670. }
  671. .card-raised:hover .title {
  672. \tcolor: var(--primary-action-default);
  673. \ttext-decoration: underline;
  674. \tcursor: pointer;
  675. }
  676. .card-raised:active {\t
  677. \ttransform: scale(0.97);
  678. }
  679. .card-raised:focus {
  680. \tbox-shadow: var(--box-shadow-10), 0 0 0 3px #fff, 0 0 0 6px rgba(10, 132, 255, 0.5);
  681. }
  682. /*
  683. .card-img {
  684. \tborder: 1px inset rgba(0, 0, 0, 0.15);
  685. }
  686. */
  687. .card-raised .card-img-top {
  688. \tborder-top-left-radius: var(--rasied-card-border-radius);
  689. \tborder-top-right-radius: var(--rasied-card-border-radius);
  690. }
  691. .card-body {
  692. \tpadding: 12px 16px;
  693. }
  694. .card-footer {
  695. \tpadding: 12px 16px;
  696. }
  697. /* Snippet */
  698. .snippet {
  699. \tbackground-color: #fff;
  700. \tbottom: 0;
  701. \tbox-shadow: var(--box-shadow-10);
  702. \tpadding: 24px 0;
  703. \tposition: fixed;
  704. \twidth: 100%;
  705. \tz-index: 200;
  706. }
  707. .snippet .wrapper {
  708. \tdisplay: flex;
  709. }
  710. .snippet-promo-image,
  711. .snippet-content {
  712. \tmargin-right: 24px;
  713. }
  714. .snippet-promo-image img {
  715. \twidth: 48px;
  716. }
  717. .snippet-content {
  718. \tflex-grow: 1;
  719. }
  720. .snippet-content .body {
  721. \tmax-width: 600px;\t
  722. }
  723. .snippet .btn {
  724. \theight: 32px;\t
  725. }
  726. .icon-dark-theme {
  727. \tdisplay: none;
  728. }
  729. .search-wrapper {
  730.   padding: 24px 0; }
  731.   .only-search .search-wrapper {
  732.     padding: 0 0 64px; }
  733.   .search-wrapper .logo-and-wordmark {
  734.     align-items: center;
  735.     display: flex;
  736.     justify-content: center;
  737.     margin-bottom: 49px; }
  738.     .search-wrapper .logo-and-wordmark .logo {
  739.       background: url(\"chrome://branding/content/icon128.png\") no-repeat center center;
  740.       background-size: 97px;
  741.       display: inline-block;
  742.       height: 97px;
  743.       width: 97px; }
  744.     .search-wrapper .logo-and-wordmark .wordmark {
  745.       background: url(\"../data/content/assets/firefox-wordmark.svg\") no-repeat center center;
  746.       background-size: 142px;
  747.       -moz-context-properties: fill;
  748.       display: inline-block;
  749.       fill: var(--search-wordmark-color);
  750.       height: 97px;
  751.       margin-inline-start: 15px;
  752.       width: 142px; }
  753.     @media (max-width: 609px) {
  754.       .search-wrapper .logo-and-wordmark .logo {
  755.         background-size: 64px;
  756.         height: 64px;
  757.         width: 64px; }
  758.       .search-wrapper .logo-and-wordmark .wordmark {
  759.         background-size: 100px;
  760.         height: 64px;
  761.         width: 100px; } }
  762.   
  763.   .search-wrapper .search-inner-wrapper {
  764.     cursor: default;
  765.     display: flex;
  766.     height: 48px;
  767.     margin: 0 auto;
  768.     position: relative;
  769.     width: 224px; }
  770.     @media (min-width: 610px) {
  771.       .search-wrapper .search-inner-wrapper {
  772.         width: 480px; } }
  773.     @media (min-width: 866px) {
  774.       .search-wrapper .search-inner-wrapper {
  775.         width: 736px; } }
  776.   
  777.   .search-wrapper input {
  778.     background: var(--text-field-bg-color) /* var(--search-icon) 12px center no-repeat */;
  779.     background-size: 24px;
  780.     border: solid 1px var(--text-field-border-color);
  781.     border-radius: 4px;
  782. /*     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.15); */
  783.     font-size: 15px;
  784.     -moz-context-properties: fill;
  785.     fill: var(--search-icon-color);
  786.     padding: 0;
  787.     padding-inline-end: 48px;
  788.     padding-inline-start: 46px;
  789.     width: 100%; }
  790.     
  791.     .search-wrapper input:dir(rtl) {
  792.       background-position-x: right 12px; }
  793.   
  794. /*
  795.   .search-wrapper:hover input {
  796.     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.25); }
  797. */
  798.   
  799.   .search-wrapper .search-inner-wrapper:active input,
  800.   .search-wrapper input:focus {
  801.     border: 1px solid var(--text-field-focus-border-color);
  802.     box-shadow: var(--focus-box-shadow); }
  803.   
  804.   .search-wrapper .search-button {
  805.     background: url(\"chrome://browser/skin/forward.svg\") no-repeat center center;
  806.     background-size: 16px 16px;
  807.     border: 0;
  808.     border-radius: 0 3px 3px 0;
  809.     -moz-context-properties: fill;
  810.     fill: var(--search-icon-color);
  811.     height: 100%;
  812.     inset-inline-end: 0;
  813.     position: absolute;
  814.     width: 48px; }
  815.     .search-wrapper .search-button:focus, .search-wrapper .search-button:hover {
  816.       background-color: rgba(12, 12, 13, 0.1);
  817.       cursor: pointer; }
  818.     .search-wrapper .search-button:active {
  819.       background-color: rgba(12, 12, 13, 0.2); }
  820.     .search-wrapper .search-button:dir(rtl) {
  821.       transform: scaleX(-1); }
  822. .non-collapsible-section + .below-search-snippet-wrapper {
  823.   margin-top: -48px; }
  824. @media (max-height: 700px) {
  825. /*
  826.   .search-wrapper {
  827.     padding: 0 0 30px; }
  828. */
  829.   .non-collapsible-section + .below-search-snippet-wrapper {
  830.     margin-top: -14px; }
  831.   .below-search-snippet-wrapper {
  832.     min-height: 0; } }
  833. .search-handoff-button {
  834.   background: var(--textbox-background-color) var(--search-icon) 12px center no-repeat;
  835.   background-size: 24px;
  836.   border: solid 1px var(--search-border-color);
  837.   border-radius: 3px;
  838.   box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.15);
  839.   cursor: text;
  840.   font-size: 15px;
  841.   padding: 0;
  842.   padding-inline-end: 48px;
  843.   padding-inline-start: 46px;
  844.   opacity: 1;
  845.   transition: opacity 500ms;
  846.   width: 100%; }
  847.   .search-handoff-button:dir(rtl) {
  848.     background-position-x: right 12px; }
  849.   .search-handoff-button:hover {
  850.     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.25); }
  851.   .fake-focus .search-handoff-button {
  852.     border: 1px solid var(--textbox-focus-color);
  853.     box-shadow: var(--textbox-focus-boxshadow); }
  854.     .fake-focus .search-handoff-button .fake-caret {
  855.       display: block; }
  856.   .search-hidden .search-handoff-button {
  857.     opacity: 0;
  858.     visibility: hidden; }
  859.   .search-handoff-button .fake-editable:focus {
  860.     outline: none;
  861.     caret-color: transparent; }
  862.   .search-handoff-button .fake-editable {
  863.     color: transparent;
  864.     height: 100%;
  865.     opacity: 0;
  866.     position: absolute;
  867.     top: 0;
  868.     left: 0;
  869.     right: 0;
  870.     bottom: 0; }
  871.   .search-handoff-button .fake-textbox {
  872.     opacity: 0.54;
  873.     text-align: start; }
  874.   .search-handoff-button .fake-caret {
  875.     animation: caret-animation 1.3s steps(5, start) infinite;
  876.     background: var(--text-primary-color);
  877.     display: none;
  878.     inset-inline-start: 47px;
  879.     height: 17px;
  880.     position: absolute;
  881.     top: 16px;
  882.     width: 1px; }
  883. @keyframes caret-animation {
  884.   to {
  885.     visibility: hidden; } }
  886. @media (min-height: 701px) {
  887.   body:not(.inline-onboarding) .fixed-search main {
  888.     padding-top: 146px; }
  889.   body:not(.inline-onboarding) .fixed-search .search-wrapper {
  890.     background-color: var(--search-header-background-color);
  891.     border-bottom: solid 1px var(--border-secondary-color);
  892.     height: 95px;
  893.     left: 0;
  894.     padding: 30px 0;
  895.     position: fixed;
  896.     top: 0;
  897.     width: 100%;
  898.     z-index: 9; }
  899.     body:not(.inline-onboarding) .fixed-search .search-wrapper .search-inner-wrapper {
  900.       height: 35px; }
  901.     body:not(.inline-onboarding) .fixed-search .search-wrapper input {
  902.       background-position-x: 16px;
  903.       background-size: 16px; }
  904.       body:not(.inline-onboarding) .fixed-search .search-wrapper input:dir(rtl) {
  905.         background-position-x: right 16px; }
  906.   body:not(.inline-onboarding) .fixed-search .search-handoff-button {
  907.     background-position-x: 12px;
  908.     background-size: 24px; }
  909.     body:not(.inline-onboarding) .fixed-search .search-handoff-button:dir(rtl) {
  910.       background-position-x: right 12px; }
  911.     body:not(.inline-onboarding) .fixed-search .search-handoff-button .fake-caret {
  912.       top: 10px; } }
  913. .contentSearchSuggestionTable {
  914.   background-color: var(--search-dropdown-color);
  915.   border: 0;
  916.   box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 0, 0, 0.2);
  917.   transform: translateY(4px); }
  918.   .contentSearchSuggestionTable .contentSearchHeader {
  919.     background-color: var(--search-dropdown-header-color);
  920.     color: var(--text-secondary-color); }
  921.   .contentSearchSuggestionTable .contentSearchHeader,
  922.   .contentSearchSuggestionTable .contentSearchSettingsButton {
  923.     border-color: var(--border-secondary-color); }
  924.   .contentSearchSuggestionTable .contentSearchSuggestionsList {
  925.     border: 0; }
  926.   .contentSearchSuggestionTable .contentSearchOneOffsTable {
  927.     background-color: var(--search-dropdown-header-color);
  928.     border-top: solid 1px var(--border-secondary-color); }
  929.   .contentSearchSuggestionTable .contentSearchSearchWithHeaderSearchText {
  930.     color: var(--text-primary-color); }
  931.   .contentSearchSuggestionTable .contentSearchSuggestionsContainer {
  932.     background-color: var(--search-dropdown-color); }
  933.   .contentSearchSuggestionTable .contentSearchSuggestionRow.selected {
  934.     background: var(--element-hover-color);
  935.     color: var(--text-primary-color); }
  936.     .contentSearchSuggestionTable .contentSearchSuggestionRow.selected:active {
  937.       background: var(--element-active-color); }
  938.     .contentSearchSuggestionTable .contentSearchSuggestionRow.selected .historyIcon {
  939.       fill: var(--icon-secondary-color); }
  940.   .contentSearchSuggestionTable .contentSearchOneOffsTable .contentSearchSuggestionsContainer {
  941.     background-color: var(--search-dropdown-header-color); }
  942.   .contentSearchSuggestionTable .contentSearchOneOffItem {
  943.     background-image: none;
  944.     border-image: linear-gradient(transparent 18%, var(--border-secondary-color) 18%, var(--border-secondary-color) 82%, transparent 82%) 1;
  945.     border-inline-end: 1px solid;
  946.     position: relative; }
  947.     .contentSearchSuggestionTable .contentSearchOneOffItem.selected {
  948.       background: var(--element-hover-color); }
  949.     .contentSearchSuggestionTable .contentSearchOneOffItem:active {
  950.       background: var(--element-active-color); }
  951.   .contentSearchSuggestionTable .contentSearchSettingsButton:hover {
  952.     background: var(--element-hover-color);
  953.     color: var(--text-primary-color); }
  954. .contentSearchHeaderRow > td > img,
  955. .contentSearchSuggestionRow > td > .historyIcon{
  956.   margin-inline-start: 7px;
  957.   margin-inline-end: 15px;
  958. }
  959. </style>
  960. <section class=\"news-section\">
  961. \t\t<div class=\"mzp-l-content blog\" id=\"blog\">
  962. \t\t\t\t<div class=\"text-left\">
  963. \t\t\t\t\t<h3>
  964. \t\t\t\t\t\tNos programmes
  965. \t\t\t\t\t</h3>
  966. \t\t\t\t\t
  967. \t\t\t\t\t<div>
  968. \t\t\t\t\t\tLa transparence 
  969. \t\t\t\t\t</div>
  970. \t\t\t\t</div>
  971. \t\t\t\t   <div class=\"row posts-list\">
  972. \t\t\t  
  973. \t\t\t\t\t   <!--Single Blog Start-->
  974. \t\t\t\t\t   <div class=\"col-lg-4 col-md-4 wow fadeInUp\" data-wow-delay=\"0ms\">
  975. \t\t\t\t\t\t<article>
  976. \t\t\t\t\t\t\t<div class=\"post-img\">
  977. \t\t\t\t\t\t\t\t<img src=\"https://i.ibb.co/m5yGbdR/blog2.jpg\" alt=\"\" class=\"img-fluid\">
  978. \t\t\t\t\t\t\t</div>
  979. \t\t\t\t\t\t\t<p class=\"post-category\">Commandez un  Hébergement pro.</p>
  980. \t\t\t\t\t\t\t<h2 class=\"title\">
  981. \t\t\t\t\t\t\t\t<a href=\"/detail/article/19\" data-original-title=\"\" title=\"\">Commandez un hébergement Mutualisé ou un VPS chez l’hébergeur web professionnel AFH Host à prix malin.</a>
  982. \t\t\t\t\t\t\t</h2>
  983. \t\t\t\t
  984. \t\t\t\t\t\t\t<div class=\"d-flex align-items-center\">
  985. \t\t\t\t\t\t\t\t<img src=\"/template/images/co.png\" alt=\"\" class=\"img-fluid post-author-img flex-shrink-0\">
  986. \t\t\t\t\t\t\t\t<div class=\"post-meta\">
  987. \t\t\t\t\t\t\t\t<div class=\"post-author-list\">Kenfack Noel</div>
  988. \t\t\t\t\t\t\t\t<div class=\"post-date\">
  989. \t\t\t\t\t\t\t\t\t<time datetime=\"2022-01-01\">01 Feb 2024</time>
  990. \t\t\t\t\t\t\t\t</div>
  991. \t\t\t\t\t\t\t\t</div>
  992. \t\t\t\t\t\t\t</div>
  993. \t\t\t\t\t\t</article>
  994. \t\t\t\t\t   </div>
  995. \t\t\t\t\t   <!--Single Blog End-->
  996. \t\t\t\t\t   <!--Single Blog Start-->
  997. \t\t\t\t\t   <div class=\"col-lg-4 col-md-4 wow fadeInUp\" data-wow-delay=\"0ms\">
  998. \t\t\t\t\t\t<article>
  999. \t\t\t\t\t\t\t<div class=\"post-img\">
  1000. \t\t\t\t\t\t\t\t<img src=\"https://i.ibb.co/m5yGbdR/blog2.jpg\" alt=\"\" class=\"img-fluid\">
  1001. \t\t\t\t\t\t\t</div>
  1002. \t\t\t\t\t\t\t<p class=\"post-category\">Commandez un  Hébergement pro.</p>
  1003. \t\t\t\t\t\t\t<h2 class=\"title\">
  1004. \t\t\t\t\t\t\t\t<a href=\"/detail/article/19\" data-original-title=\"\" title=\"\">Commandez un hébergement Mutualisé ou un VPS chez l’hébergeur web professionnel AFH Host à prix malin.</a>
  1005. \t\t\t\t\t\t\t</h2>
  1006. \t\t\t\t
  1007. \t\t\t\t\t\t\t<div class=\"d-flex align-items-center\">
  1008. \t\t\t\t\t\t\t\t<img src=\"/template/images/co.png\" alt=\"\" class=\"img-fluid post-author-img flex-shrink-0\">
  1009. \t\t\t\t\t\t\t\t<div class=\"post-meta\">
  1010. \t\t\t\t\t\t\t\t<div class=\"post-author-list\">Kenfack Noel</div>
  1011. \t\t\t\t\t\t\t\t<div class=\"post-date\">
  1012. \t\t\t\t\t\t\t\t\t<time datetime=\"2022-01-01\">01 Feb 2024</time>
  1013. \t\t\t\t\t\t\t\t</div>
  1014. \t\t\t\t\t\t\t\t</div>
  1015. \t\t\t\t\t\t\t</div>
  1016. \t\t\t\t\t\t</article>
  1017. \t\t\t\t\t   </div>
  1018. \t\t\t\t\t   <!--Single Blog Start-->
  1019. \t\t\t\t\t   <!--Single Blog Start-->
  1020. \t\t\t\t\t   <div class=\"col-lg-4 col-md-4 wow fadeInUp\" data-wow-delay=\"0ms\">
  1021. \t\t\t\t\t\t<article>
  1022. \t\t\t\t\t\t\t<div class=\"post-img\">
  1023. \t\t\t\t\t\t\t\t<img src=\"https://i.ibb.co/m5yGbdR/blog2.jpg\" alt=\"\" class=\"img-fluid\">
  1024. \t\t\t\t\t\t\t</div>
  1025. \t\t\t\t\t\t\t<p class=\"post-category\">Commandez un  Hébergement pro.</p>
  1026. \t\t\t\t\t\t\t<h2 class=\"title\">
  1027. \t\t\t\t\t\t\t\t<a href=\"/detail/article/19\" data-original-title=\"\" title=\"\">Commandez un hébergement Mutualisé ou un VPS chez l’hébergeur web professionnel AFH Host à prix malin.</a>
  1028. \t\t\t\t\t\t\t</h2>
  1029. \t\t\t\t
  1030. \t\t\t\t\t\t\t<div class=\"d-flex align-items-center\">
  1031. \t\t\t\t\t\t\t\t<img src=\"/template/images/co.png\" alt=\"\" class=\"img-fluid post-author-img flex-shrink-0\">
  1032. \t\t\t\t\t\t\t\t<div class=\"post-meta\">
  1033. \t\t\t\t\t\t\t\t<div class=\"post-author-list\">Kenfack Noel</div>
  1034. \t\t\t\t\t\t\t\t<div class=\"post-date\">
  1035. \t\t\t\t\t\t\t\t\t<time datetime=\"2022-01-01\">01 Feb 2024</time>
  1036. \t\t\t\t\t\t\t\t</div>
  1037. \t\t\t\t\t\t\t\t</div>
  1038. \t\t\t\t\t\t\t</div>
  1039. \t\t\t\t\t\t</article>
  1040. \t\t\t\t\t   </div>
  1041. \t\t\t\t\t   <!--Single Blog Start-->
  1042. \t\t\t\t\t   
  1043. \t\t\t\t   </div>
  1044. \t\t\t   </div>
  1045. \t\t   </div>
  1046.    </section>
  1047. ";
  1048.         
  1049.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  1050.         
  1051.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  1052.     }
  1053.     // line 1021
  1054.     public function block_javascripttemplate($context, array $blocks = [])
  1055.     {
  1056.         $macros $this->macros;
  1057.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1058.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascripttemplate"));
  1059.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1060.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascripttemplate"));
  1061.         // line 1022
  1062.         echo "\$(document).ready(function() {
  1063.   const \$buttons = \$(\".demo__buttons\");
  1064.   const \$toggle = \$(\".demo__open-btn\");
  1065.   let delay = 200;
  1066.   let steps = [];
  1067.   let open = false;
  1068.   
  1069.   let curStep = 0;
  1070.   for (let i = 0; i <= 3; i++) {
  1071.     steps[i] = \"demo__step-\" + i;
  1072.   }
  1073.   function setStep(index) {    
  1074.     \$buttons.removeClass(\"step-1 step-0 step-3 step-2\").addClass(\"step-\" + curStep);   
  1075.   }
  1076.   
  1077.   let lastTimeout;
  1078.   function animate() {
  1079.     if (curStep >= 4) {
  1080.       curStep = 0;
  1081.       return;
  1082.     }
  1083.     open = true;
  1084.     setStep(curStep);    
  1085.     curStep++;
  1086.     lastTimeout = setTimeout(animate, delay);
  1087.   }
  1088.   \$toggle.on(\"click\", function() {
  1089.     if (!open) animate();
  1090.     else {
  1091.       \$buttons.removeClass(\"step-1 step-0 step-3 step-2\");
  1092.       clearTimeout(lastTimeout);
  1093.       open = false;
  1094.       curStep = 0;
  1095.     }
  1096.   });
  1097. });
  1098. ";
  1099.         
  1100.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  1101.         
  1102.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  1103.     }
  1104.     public function getTemplateName()
  1105.     {
  1106.         return "Theme/Produit/Produit/Produit/businessretenu.html.twig";
  1107.     }
  1108.     public function isTraitable()
  1109.     {
  1110.         return false;
  1111.     }
  1112.     public function getDebugInfo()
  1113.     {
  1114.         return array (  1183 => 1022,  1173 => 1021,  511 => 368,  507 => 367,  321 => 184,  195 => 61,  191 => 60,  187 => 58,  178 => 52,  174 => 50,  148 => 26,  146 => 25,  135 => 16,  125 => 15,  110 => 12,  100 => 11,  85 => 7,  78 => 5,  74 => 4,  71 => 3,  61 => 2,  38 => 1,);
  1115.     }
  1116.     public function getSourceContext()
  1117.     {
  1118.         return new Source("{% extends \"Theme/Users/User/layoutoffert.html.twig\" %}
  1119. {% block meta %}
  1120. \t{{ parent() }}
  1121. \t<meta name=\"keywords\" content=\"{{ site }}, {{ keywords }}\"/>
  1122. \t<meta name=\"author\" content=\"Noel Kenfack\"/>
  1123. \t<meta name=\"description\" content=\"{{ site }} - {{ souscategorie.nom }}\"/>
  1124. \t
  1125. {% endblock %}
  1126. {% block title %}
  1127. \t{{ parent() }} - {{ souscategorie.nom }}
  1128. {% endblock %}
  1129. {% block userblog_body %}
  1130. <style>
  1131. \t.mzp-c-details .is-summary button:before, details .is-summary button:before, summary:before{
  1132. \t\tdisplay: none!important;
  1133. \t}
  1134. </style>
  1135. <div style=\"background: #90acd1; min-height: 200px;\">
  1136. <div class=\"container\" style=\"overflow: hidden;\">
  1137. \t<div class=\"row\" style=\"margin-top: 15px;\">
  1138. \t<div class=\"col-md-8\">
  1139. \t{% if is_mobile() %}
  1140. \t<ol class=\"c-navigation-breadcrumbs__directory\">
  1141. \t\t<!-- Duplicating the \"Home\" link in both the global navigation and the breadcrumb trail is not recommended. -->
  1142. \t\t<li class=\"c-navigation-breadcrumbs__item\" property=\"itemListElement\" typeof=\"ListItem\">
  1143. \t\t  <a class=\"c-navigation-breadcrumbs__link\" href=\"\" property=\"item\" typeof=\"WebPage\">
  1144. \t\t\t<span class=\"u-visually-hidden\" property=\"name\"><span class=\"fa fa-home\"> </span> Accueil</span>
  1145. \t\t  </a>
  1146. \t\t  <meta property=\"position\" content=\"1\">
  1147. \t\t</li>
  1148. \t\t<li class=\"c-navigation-breadcrumbs__item\" property=\"itemListElement\" typeof=\"ListItem\">
  1149. \t\t  <a class=\"c-navigation-breadcrumbs__link\" href=\"\" property=\"item\" typeof=\"WebPage\">
  1150. \t\t\t<span property=\"name\"> L'entreprise</span>
  1151. \t\t  </a>
  1152. \t\t  <meta property=\"position\" content=\"2\">
  1153. \t\t</li>
  1154. \t\t<li class=\"c-navigation-breadcrumbs__item\" property=\"itemListElement\" typeof=\"ListItem\">
  1155. \t\t  <a class=\"c-navigation-breadcrumbs__link\" href=\"#!\" property=\"item\" aria-current=\"location\">
  1156. \t\t\t<span property=\"name\">À propos de  nous </span>
  1157. \t\t  </a>
  1158. \t\t  <meta property=\"position\" content=\"3\">
  1159. \t\t</li>
  1160. \t</ol>
  1161. \t{% else %}
  1162. \t<div style=\"padding: 20px 0px;\">
  1163. \t\t<ul class=\"breadcrumbs\">
  1164. \t\t  <li><a href=\"{{ path('users_user_acces_plateforme') }}\"><span class=\"fa fa-home\"></span> Accueil</a></li>
  1165. \t\t  <li><a > L'entreprise</a></li>
  1166. \t\t  <li>À propos de nous</li>
  1167. \t\t</ul>
  1168. \t</div>
  1169. \t{% endif %}
  1170. \t
  1171. \t<div>
  1172. \t\t<h2 style=\"color: #fff;\">{{ souscategorie.nom }}</h2>
  1173. \t\t<div style=\"color: #fff;\">{{ souscategorie.description }}</div>
  1174.     </div>
  1175.   </div>
  1176.   
  1177. \t<!-- div class=\"col-md-4\">
  1178. \t\t<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"0\" height=\"0\" class=\"my-svg\">
  1179. \t\t  <defs>
  1180. \t\t\t<filter id=\"goo\">
  1181. \t\t\t  <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"10\" result=\"blur\" />
  1182. \t\t\t  <feColorMatrix in=\"blur\" mode=\"matrix\" values=\"1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 18 -7\" result=\"goo\" />
  1183. \t\t\t  <feBlend in=\"SourceGraphic\" in2=\"goo\" />
  1184. \t\t\t</filter>
  1185. \t\t  </defs>
  1186. \t\t</svg>
  1187. \t\t<div class=\"demo\">
  1188. \t\t  <div class=\"demo__buttons\">
  1189. \t\t\t<div class=\"demo__social-btn-4 demo__social-btn\"><i class=\"fa fa-snapchat\"></i></div>
  1190. \t\t\t<div class=\"demo__social-btn-3 demo__social-btn\"><i class=\"fa fa-instagram\"></i></div>
  1191. \t\t\t<div class=\"demo__social-btn-2 demo__social-btn\"><i class=\"fa fa-facebook\"></i></div>
  1192. \t\t\t<div class=\"demo__social-btn-1 demo__social-btn\"><i class=\"fa fa-twitter\"></i></div>
  1193. \t\t\t<div class=\"demo__open-btn\"><i class=\"fa fa-share-alt\"></i></div>
  1194. \t\t  </div>
  1195. \t\t  <h2 class=\"text-center\" style=\"color: #fff;\">Share and win</h2>
  1196. \t\t</div>
  1197. \t</div -->
  1198.   
  1199.   </div>
  1200.   
  1201. </div>
  1202. </div>
  1203. <div style=\"background-image: linear-gradient(-1deg, #F6FCFF 0%, #EAF7FF 98%); background: #f2f2f2;\">
  1204. \t<div class=\"container\" style=\"height: 100px;\">
  1205. \t  
  1206. \t</div>
  1207. </div>
  1208. <style>
  1209. \t.brand-wrap {
  1210. \t  position: relative;
  1211. \t  z-index: 2;
  1212. \t}
  1213. \t
  1214. \t@media (max-width: 991px) {
  1215. \t\t.brand-wrap {
  1216. \t\t  padding: 20px 0;
  1217. \t\t} 
  1218. \t}
  1219. \t
  1220. \t.brand-wrap .owl-carousel .owl-item img {
  1221. \t\twidth: auto !important; 
  1222. \t}
  1223. \t
  1224. \t.brand-wrap .single-brand {
  1225. \t\ttext-align: center;
  1226. \t\t-webkit-filter: grayscale(100%);
  1227. \t\t-moz-filter: grayscale(100%);
  1228. \t\t-ms-filter: grayscale(100%);
  1229. \t\t-o-filter: grayscale(100%);
  1230. \t\tfilter: grayscale(100%);
  1231. \t\topacity: .5;
  1232. \t\t-webkit-transition: all 0.3s ease 0s;
  1233. \t\t-moz-transition: all 0.3s ease 0s;
  1234. \t\t-o-transition: all 0.3s ease 0s;
  1235. \t\ttransition: all 0.3s ease 0s; 
  1236. \t}
  1237. \t
  1238. \t.brand-wrap .single-brand:hover{
  1239. \t  -webkit-filter: grayscale(0%);
  1240. \t  -moz-filter: grayscale(0%);
  1241. \t  -ms-filter: grayscale(0%);
  1242. \t  -o-filter: grayscale(0%);
  1243. \t  filter: grayscale(0%);
  1244. \t  opacity: 1; 
  1245. \t }
  1246. </style>
  1247. <div style=\"background: transparent; margin-bottom: -140px;\">
  1248. <div class=\"container\" style=\"background: transparent;\">
  1249.   <div class=\"row\" style=\"margin-top: 25px; background: transparent;\">
  1250. \t<div class=\"col-md-12\">
  1251. \t<div style=\"overflow: hidden; position: relative; top: -140px!important;  padding: 15px 7px; border-radius: 7px; border-top: 2px solid #ddd; border-radius: 15px; background: #fff;\">
  1252. \t\t<h2>Services</h2>
  1253. \t\t<div class=\"boxC12\">
  1254. \t\t\t
  1255. \t\t\t<details>
  1256. \t\t\t\t<summary>
  1257. \t\t\t\t<p> service.nom </p><span class=\"plusminus\"></span>
  1258. \t\t\t\t</summary>
  1259. \t\t\t\t<p>
  1260. \t\t\t\t\t\tservice.description|raw
  1261. \t\t\t\t
  1262. \t\t\t\t\t
  1263. \t\t\t\t\t<div class=\"box\">
  1264. \t\t\t\t\t\t<div class=\"title-bold\">
  1265. \t\t\t\t\t\t\t<span> scat.nom </span>
  1266. \t\t\t\t\t\t</div>
  1267. \t\t\t\t\t\t<div class=\"inner-profile\">
  1268. \t\t\t\t\t\t\t\tscat.description|raw 
  1269. \t\t\t\t\t\t</div>
  1270. \t\t\t\t\t\t<div class=\"clearfix\"></div>
  1271. \t\t\t\t\t</div>
  1272. \t\t\t\t</p>
  1273. \t\t\t</details>
  1274. \t\t</div>
  1275. \t</div>
  1276. \t</div>
  1277.   </div>
  1278.   
  1279. </div>
  1280. </div>
  1281. <div style=\"background-image: linear-gradient(-1deg, #F6FCFF 0%, #EAF7FF 98%); margin-bottom: 30px;\">
  1282. \t<div class=\"container\" style=\"padding-top: 25px; padding-bottom: 25px;\">
  1283. \t   
  1284. \t\t<section style=\"margin-top: -20px;\">
  1285. \t\t\t<div style=\"width: 100%; margin: 0px auto;\">
  1286. \t\t\t<link href=\"{{ asset('template/css/tyfy.css') }}\" rel=\"stylesheet\"/>
  1287. \t\t\t<style>
  1288. \t\t\t  div.demotabs {
  1289. \t\t\t\tborder: 2px dashed #e6e6e6;
  1290. \t\t\t\tborder-radius: .8125rem;
  1291. \t\t\t\tbox-shadow: inset 0px 0px 1.625rem rgba(0, 0, 0, 0.05);
  1292. \t\t\t\tmargin-top: 1.625rem;
  1293. \t\t\t\tpadding: 15px;
  1294. \t\t\t\tbackground: #fff;
  1295. \t\t\t  }
  1296. \t\t\t  .links-underlined a[href]{border-bottom-style:solid;border-bottom-width:2px}ol,ul{line-height:1.625rem;padding-left:2.4375rem}
  1297. \t\t\t</style>
  1298. \t\t\t
  1299. \t\t\t
  1300. \t\t\t<div class=\"demotabs\">
  1301. \t\t\t\t<div class=\"mzp-l-content\">
  1302. \t\t\t  <div class=\"links-underlined\">
  1303. \t\t\t\t  <h1>En quoi AFH Factory vous êtes utiles ?</h1>
  1304. \t\t\t\t  <p>  This is my implementation of responsive tabs. It is being incorporated into my <a href=\"https://github.com/aaronpinero/typography\">Tyfy framework</a>.</p>
  1305. \t\t\t  </div>
  1306. \t\t\t  <div class=\"tabs-container\">
  1307. \t\t\t\t  <h2 class=\"tab-label\">Présentation</h2>
  1308. \t\t\t\t  <p>Porro excepturi ad eligendi excepturi quam voluptate velit. Placeat modi animi natus est temporibus tenetur pariatur suscipit. Dolores sit id sit placeat consequatur temporibus accusamus et. Cumque voluptatum voluptatum delectus et sequi. Vero vitae officia eius ad. Consequatur impedit quam mollitia.</p>
  1309. \t\t\t\t  <p>Aspernatur id nihil sit eveniet vero corporis necessitatibus sit. Magni quia vitae perferendis. Suscipit illo tempora minus officia nemo aut numquam. Qui et omnis velit repudiandae autem. Aperiam aut dolorem neque quis dolor est sunt.</p>
  1310. \t\t\t\t  
  1311. \t\t\t\t  <h2 class=\"tab-label collapsed\">Eligibilité</h2>
  1312. \t\t\t\t  <p>Facilis error corrupti dolor eaque. 
  1313. \t\t\t\t  <a id=\"anchor\">Occaecati</a> illum sequi officia rerum nostrum. Iste in quo eveniet. Deserunt quaerat a adipisci magni consequatur nesciunt distinctio praesentium. Ipsum vel ut est vel veritatis fugiat perspiciatis.</p>
  1314. \t\t\t\t  <p>Omnis dolores sit pariatur facilis odit magni. Totam excepturi incidunt dolorem assumenda neque dolorem. Dolorem odio consequatur quas corrupti sequi. Nihil ut nihil itaque non at molestiae corporis. Explicabo voluptate quis et.</p>
  1315. \t\t\t\t  
  1316. \t\t\t\t  <h2 class=\"tab-label collapsed\">Rapport</h2>
  1317. \t\t\t\t  <p>Curabitur non mauris sodales, tempor lacus ac, maximus felis. Vestibulum ultrices augue ut arcu mattis pellentesque. Maecenas ullamcorper lorem sit amet pretium pharetra. Nunc ipsum tellus, hendrerit vitae bibendum vel, scelerisque sit amet libero. Duis imperdiet massa placerat venenatis pharetra. Donec consectetur quis odio sit amet sollicitudin. Morbi at faucibus odio. Duis viverra lacus a odio pretium, quis suscipit tortor accumsan. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur egestas venenatis est vel hendrerit. Fusce molestie bibendum ex in suscipit.</p>
  1318. \t\t\t\t  
  1319. \t\t\t\t  <h2 class=\"tab-label collapsed\">Historique</h2>
  1320. \t\t\t\t  <p>Curabitur non mauris sodales, tempor lacus ac, maximus felis. Vestibulum ultrices augue ut arcu mattis pellentesque. Maecenas ullamcorper lorem sit amet pretium pharetra. Nunc ipsum tellus, hendrerit vitae bibendum vel, scelerisque sit amet libero. Duis imperdiet massa placerat venenatis pharetra. Donec consectetur quis odio sit amet sollicitudin. Morbi at faucibus odio. Duis viverra lacus a odio pretium, quis suscipit tortor accumsan. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur egestas venenatis est vel hendrerit. Fusce molestie bibendum ex in suscipit.</p>
  1321. \t\t\t\t  
  1322. \t\t\t  </div>
  1323. \t\t\t
  1324. \t\t\t<h2>Notes</h2>
  1325. \t\t\t<p>I've relied on CSS Flexbox for the visual tabs. Flexbox is <a href=\"https://caniuse.com/#search=flex\">a problem for just about any version of Internet <strike>Exploder</strike> Explorer</a>. At some point, I'll need to figure out an alternative way to present the tabs that will work for IE.</p>
  1326. \t\t  </div>
  1327. \t\t  </div>
  1328. \t\t\t
  1329. \t\t  <script>
  1330. \t\t\t  \$(document).ready(function(){
  1331. \t\t
  1332. \t\t\t\tGoToAnchor = function(){
  1333. \t\t\t\t  // find the anchor and any tab it might be in
  1334. \t\t\t\t  selected_anchor_name = encodeURIComponent(window.location.hash.substring(1));
  1335. \t\t\t\t\t  selected_anchor = \$('a[name=\"'+selected_anchor_name+'\"], a[id=\"'+selected_anchor_name+'\"]');
  1336. \t\t\t\t  parent_tab = selected_anchor.parents('.tab-panel');
  1337. \t\t\t\t  // account for an anchor in a label
  1338. \t\t\t\t  parent_label = selected_anchor.parents('.tab-label');
  1339. \t\t\t\t  if (parent_label.length) {
  1340. \t\t\t\t\tparent_tab = parent_label.next('.tab-panel');
  1341. \t\t\t\t  }
  1342. \t\t\t\t  // do the steps of this function only if we have an anchor link and a tab panel
  1343. \t\t\t\t  if (selected_anchor.length && parent_tab.length) {
  1344. \t\t\t\t\tparent_tab_label = parent_tab.prev('.tab-label');
  1345. \t\t\t\t\t\tparent_tab_index = parent_tab_label.attr('data-tabindex');
  1346. \t\t\t\t\tparent_tab.parent().find('ul.tabs li').eq(parent_tab_index).click();
  1347. \t\t\t\t\tif (parent_tab.hasClass('collapsed')) {
  1348. \t\t\t\t\t  parent_tab.removeClass('collapsed');
  1349. \t\t\t\t\t  parent_tab_label.removeClass('collapsed');
  1350. \t\t\t\t\t}
  1351. \t\t\t\t\t// scroll to the anchor
  1352. \t\t\t\t\tvar s = selected_anchor.offset().top - 50; // console.log(s);
  1353. \t\t\t\t\t\$('body,html').animate({'scrollTop':s},500,'swing');
  1354. \t\t\t\t\t  }
  1355. \t\t\t\t};
  1356. \t\t\t\t
  1357. \t\t\t\t// prepare HTML structure for each tab container
  1358. \t\t\t\t\$('.tabs-container').each(function(){
  1359. \t\t\t\t  if (!\$(this).hasClass('tabs-processed')) {
  1360. \t\t\t\t\t// find the headings that are tab labels
  1361. \t\t\t\t\tmy_tablabels = \$(this).find('.tab-label');
  1362. \t\t\t\t\t// create tabs
  1363. \t\t\t\t\tif (\$(this).find('ul.tabs').length === 0) {
  1364. \t\t\t\t\t  \$(this).prepend('<ul class=\"tabs\"></ul>');
  1365. \t\t\t\t\t  var x;
  1366. \t\t\t\t\t  for (x=0;x<my_tablabels.length;x++) {
  1367. \t\t\t\t\t\t\$(this).find('ul.tabs').append('<li data-tabindex=\"'+x+'\">'+my_tablabels.eq(x).text()+'</li>');
  1368. \t\t\t\t\t  }
  1369. \t\t\t\t\t}
  1370. \t\t\t\t\t// structure all labels and wrap all tab panels
  1371. \t\t\t\t\tif (\$(this).find('.tab-panel').length === 0) {
  1372. \t\t\t\t\t  my_tablabels.each(function(i){
  1373. \t\t\t\t\t\t\$(this).attr('data-tabindex',i);
  1374. \t\t\t\t\t\t\$(this).wrapInner('<a id=\"'+encodeURIComponent(\$(this).text())+'\"></a>');
  1375. \t\t\t\t\t\tkids = \$(this).nextUntil('.tab-label').wrapAll('<div class=\"tab-panel\"></div>');
  1376. \t\t\t\t\t\t// default state class for when tabs are collapsable sections
  1377. \t\t\t\t\t\t\$(this).addClass('collapsed').next('.tab-panel').addClass('collapsed');
  1378. \t\t\t\t\t  });    
  1379. \t\t\t\t\t}
  1380. \t\t\t\t\t// open initial tab
  1381. \t\t\t\t\t\$(this).find('ul.tabs li').eq(0).addClass('open');
  1382. \t\t\t\t\tmy_tablabels.eq(0).addClass('open').next('.tab-panel').addClass('open');
  1383. \t\t\t\t\t// tab click events
  1384. \t\t\t\t\t\$('.tabs-container ul.tabs li').each(function(i){
  1385. \t\t\t\t\t  \$(this).click(function(){
  1386. \t\t\t\t\t\tif (!\$(this).hasClass('open')) {
  1387. \t\t\t\t\t\t  \$('.tabs-container .open').removeClass('open');
  1388. \t\t\t\t\t\t  my_tabindex = \$(this).attr('data-tabindex');
  1389. \t\t\t\t\t\t  \$(this).addClass('open');
  1390. \t\t\t\t\t\t  \$('.tabs-container .tab-label').eq(my_tabindex).addClass('open');
  1391. \t\t\t\t\t\t  \$('.tabs-container .tab-panel').eq(my_tabindex).addClass('open');
  1392. \t\t\t\t\t\t}
  1393. \t\t\t\t\t  });
  1394. \t\t\t\t\t});
  1395. \t\t\t\t\t// collapsable header click event
  1396. \t\t\t\t\t\$('.tabs-container .tab-label').click(function(){
  1397. \t\t\t\t\t  if (!\$(this).hasClass('transition')) {
  1398. \t\t\t\t\t\tkids = \$(this).next('.tab-panel');
  1399. \t\t\t\t\t\tkids.removeClass('collapsed');
  1400. \t\t\t\t\t\tvar fullHeight = kids.outerHeight();
  1401. \t\t\t\t\t\t\$(this).addClass('transition');
  1402. \t\t\t\t\t\tkids.addClass('transition');
  1403. \t\t\t\t\t\tif (\$(this).hasClass('collapsed')) {
  1404. \t\t\t\t\t\t  kids.css({'height':'0px','padding-bottom':'0px','padding-top':'0px'}).animate({
  1405. \t\t\t\t\t\t\theight:fullHeight+'px',
  1406. \t\t\t\t\t\t\tpaddingBottom:'32px',
  1407. \t\t\t\t\t\t\tpaddingTop:'16px',
  1408. \t\t\t\t\t\t  },500,function(){
  1409. \t\t\t\t\t\t\t\$('.tabs-container .transition').removeClass('collapsed').removeClass('transition').removeAttr('style');
  1410. \t\t\t\t\t\t  });
  1411. \t\t\t\t\t\t}
  1412. \t\t\t\t\t\telse {
  1413. \t\t\t\t\t\t  kids.css('height',fullHeight+'px').animate({
  1414. \t\t\t\t\t\t\theight:'0px',
  1415. \t\t\t\t\t\t\tpaddingBottom:'0px',
  1416. \t\t\t\t\t\t\tpaddingTop:'0px',
  1417. \t\t\t\t\t\t  },500,function(){
  1418. \t\t\t\t\t\t\t\$('.tabs-container .transition').addClass('collapsed').removeClass('transition').removeAttr('style');
  1419. \t\t\t\t\t\t  });
  1420. \t\t\t\t\t\t}
  1421. \t\t\t\t\t  }
  1422. \t\t\t\t\t}); 
  1423. \t\t\t\t\t// indicate state of readiness
  1424. \t\t\t\t\t\$(this).addClass('tabs-processed');
  1425. \t\t\t\t  }  
  1426. \t\t\t\t});
  1427. \t\t\t\t// if there are tabs and someone has linked to an anchor inside a tab
  1428. \t\t\t\tconsole.log(window.location.hash);
  1429. \t\t\t\tif (window.location.hash != '') {
  1430. \t\t\t\t  GoToAnchor();
  1431. \t\t\t\t}
  1432. \t\t\t\t// handle case when page is already loaded
  1433. \t\t\t\t\$(window).on('hashchange',function(){
  1434. \t\t\t\t  GoToAnchor();
  1435. \t\t\t\t});
  1436. \t\t\t  });
  1437. \t\t\t</script>
  1438. \t\t\t</div>
  1439. \t\t</section>
  1440. \t
  1441. \t</div>
  1442. \t</div>
  1443. <style>
  1444. body {
  1445. /* Colors */
  1446. \t--color-blue-50: #0a84ff;
  1447. \t--color-blue-60: #0060df;
  1448. \t--color-blue-70: #003eaa;
  1449. \t--color-blue-80: #002275;
  1450. \t--color-gray-10: #f9f9fa;
  1451. \t--color-gray-20: #ededf0;
  1452. \t--color-gray-30: #d7d7db;
  1453. \t--color-gray-40: #b1b1b3;
  1454. \t--color-gray-50: #737373;
  1455. \t--color-gray-60: #4a4a4f;
  1456. \t--color-gray-70: #38383d;
  1457. \t--color-gray-80: #2a2a2e;
  1458. \t--color-gray-90: #0c0c0d;
  1459. \t--color-green-70: #058b00;
  1460. \t--color-teal-50: #00feff;
  1461. \t--color-teal-60: #00c8d7;
  1462. \t--color-teal-70: #008ea4;
  1463. /* Icons */
  1464. \t--icon-context-menu: url({{ asset('template/images/twitter.png') }});
  1465. \t--icon-dismiss: url({{ asset('template/images/twitter.png') }});
  1466.   --background-color: #F9F9FA;
  1467.   --border-primary-color: #B1B1B3;
  1468. /* Primary Action */
  1469.   --primary-action-default: var(--color-blue-60);
  1470.   --primary-action-hover: var(--color-blue-70);
  1471.   --primary-action-active: var(--color-blue-80);
  1472.   --primary-action-text-color: #fff;
  1473. /* Secondary Action */
  1474.   --secondary-action-default: var(--color-gray-20);
  1475.   --secondary-action-hover: var(--color-gray-30);
  1476.   --secondary-action-active: var(--color-gray-40);
  1477.   --secondary-action-text-color: var(--color-gray-80);
  1478. /* Ghost Action */
  1479. \t--ghost-action-hover: var(--color-gray-20);
  1480. \t--ghost-action-active: var(--color-gray-30);
  1481. \t--ghost-action-text-color: var(--color-gray-80);
  1482. /* Forms */
  1483. \t--label-text-color: var(--text-secondary);
  1484. \t--text-field-border-color: var(--color-gray-30);
  1485. \t--text-field-hover-border-color: var(--color-gray-40);
  1486. \t--text-field-focus-border-color: var(--color-gray-40);
  1487. \t--text-field-bg-color: #fff;
  1488. /* Focus */
  1489.   --focus-box-shadow: 0 0 0 2px #fff, 0 0 0 5px rgba(10, 132, 255, 0.5);
  1490. /* Cards */
  1491.   --rasied-card-bg-color: #FFF;
  1492.   --rasied-card-border-radius: 8px;
  1493.   --box-shadow-10: 0px 0px 8px 0 rgba(12, 12, 13, 0.05);
  1494.   --raised-card-hover: 0 0 0 4px var(--secondary-action-default);
  1495.     
  1496.   /* Typography */
  1497.   --base-font-size: 15px;
  1498.   --small-font-size: 13px;
  1499.   --base-line-height: 24px;
  1500.   
  1501.   /* Text Colors */
  1502.   --text-primary: var(--color-gray-90);
  1503.   --text-secondary: var(--color-gray-50);
  1504. }
  1505. .meta {
  1506. \tcolor: var(--text-secondary);
  1507. \tfont-size: var(--small-font-size);
  1508. \tline-height: var(--base-line-height);
  1509. }
  1510. .small {
  1511. \tfont-size: var(--small-font-size);
  1512. \tline-height: 20px;
  1513. }
  1514. .text-muted {
  1515. \tcolor: var(--text-secondary);
  1516. }
  1517. .sr-only {
  1518. \tdisplay: none;
  1519. }
  1520. /* Default Link */
  1521. a {
  1522. \t background-color: transparent;
  1523. \t color: var(--color-blue-60);
  1524. \t text-decoration: none;
  1525. }
  1526. a:hover {
  1527. \ttext-decoration: underline;
  1528. }
  1529. a:active {
  1530. \tcolor: var(--color-blue-70);
  1531. \ttext-decoration:underline;
  1532. }
  1533. a:focus {
  1534. \tbox-shadow: ;
  1535. }
  1536. a:not([href]):not([tabindex]) {
  1537. \tcolor: inherit;
  1538. \ttext-decoration: none;
  1539. }
  1540. /* Buttons */
  1541. .btn {
  1542. \tborder: none;
  1543. \tcursor: pointer;
  1544. \tfont-weight: 500;
  1545. \ttransition: background-color 150ms, transform 150ms;
  1546. \ttransition-duration: 150ms;
  1547. }
  1548. .btn:active {
  1549. \ttransform: scale(0.97);
  1550. }
  1551. .btn:focus {
  1552. \tbox-shadow: var(--focus-box-shadow);
  1553. }
  1554. .btn.disabled {
  1555. \tcursor: default;
  1556. \topacity: 0.4;
  1557. }
  1558. /* Primary Button */
  1559. .btn--primary {
  1560. \tbackground-color: var(--primary-action-default);
  1561. \tcolor: var(--primary-action-text-color);
  1562. \tfill: var(--primary-action-text-color);
  1563. \t-moz-context-properties: fill;
  1564. }
  1565. .btn--primary:hover {
  1566. \tbackground-color: var(--primary-action-hover);
  1567. }
  1568. .btn--primary:active {
  1569. \tbackground-color: var(--primary-action-active);
  1570. }
  1571. .btn--primary:disabled,
  1572. .btn--primary.disabled {
  1573. \tbackground-color: var(--primary-action-default);
  1574. \tcolor: var(--primary-action-text-color);
  1575. \tfill: var(--primary-action-text-color);
  1576. \t-moz-context-properties: fill;
  1577. }
  1578. /* Secondary Button */
  1579. .btn--secondary {
  1580. \tbackground-color: var(--secondary-action-default);
  1581. \tcolor: var(--secondary-action-text-color);
  1582. \tfill: var(--secondary-action-text-color);
  1583. \t-moz-context-properties: fill;
  1584. }
  1585. .btn--secondary:hover {
  1586. \tbackground-color: var(--secondary-action-hover);
  1587. }
  1588. .btn--secondary:active {
  1589. \tbackground-color: var(--secondary-action-active);
  1590. }
  1591. .btn--secondary:disabled,
  1592. .btn--secondary.disabled {
  1593. \tbackground-color: var(--secondary-action-default);
  1594. \tcolor: var(--secondary-action-text-color);
  1595. \tfill: var(--secondary-action-text-color);
  1596. \t-moz-context-properties: fill;
  1597. }
  1598. /* Pill Button */
  1599. .btn--pill {
  1600. \tborder-radius: 16px;
  1601. \tline-height: 32px;
  1602. \tmin-height: 32px;
  1603. \tpadding: 0 16px;
  1604. \tvertical-align: middle;
  1605. }
  1606. .btn--pill-icon-only {
  1607. \tbackground-position: 50%;
  1608. \tbackground-repeat: no-repeat;
  1609. \tbackground-size: 16px;
  1610. \twidth: 32px;
  1611. }
  1612. /* Form Button */
  1613. .btn--form {
  1614. \tborder-radius: 4px;
  1615. \tmin-height: 40px;
  1616. \tmin-width: 96px;
  1617. \tpadding: 0 8px;
  1618. }
  1619. /* Ghost Button */
  1620. .btn--ghost {
  1621. \tbackground-color: transparent;
  1622. \tcolor: var(--ghost-action-text-color);
  1623. \tfill: var(--ghost-action-text-color);
  1624. \t-moz-context-properties: fill;
  1625. }
  1626. .btn--ghost:hover {
  1627. \tbackground-color: var(--ghost-action-hover);
  1628. }
  1629. .btn--ghost:active {
  1630. \tbackground-color: var(--ghost-action-active);
  1631. }
  1632. .btn--ghost:disabled,
  1633. .btn--ghost.disabled {
  1634. \tbackground-color: transparent;
  1635. \tcolor: var(--ghost-action-text-color);
  1636. \tfill: var(--ghost-action-text-color);
  1637. \t-moz-context-properties: fill;
  1638. }
  1639. .card .context-menu-btn {
  1640. \topacity: 0;
  1641. \tposition: absolute;
  1642. \tright: -16px;
  1643. \ttop: -16px;
  1644. \ttransform: scale(0.25);
  1645. \ttransition-duration: 150ms;
  1646. \ttransition-property: transform, opacity;\t
  1647. }
  1648. /* Cards */
  1649. .card-raised {
  1650. \tbackground: var(--rasied-card-bg-color);
  1651. \tborder-radius: var(--rasied-card-border-radius);
  1652. \tborder: 1px inset rgba(12, 12, 13, 0.07);
  1653. \tbox-shadow: var(--box-shadow-10);
  1654. \ttransition: box-shadow 250ms, transform 150ms;
  1655. \tposition: relative;
  1656. }
  1657. .card-raised:hover {
  1658. \tbox-shadow: var(--box-shadow-10), var(--raised-card-hover);\t
  1659. }
  1660. .card-raised:hover .context-menu-btn {
  1661.     opacity: 1;
  1662.     transform: scale(1);
  1663.     transition-delay: 200ms;
  1664. }
  1665. .card-raised:hover .title {
  1666. \tcolor: var(--primary-action-default);
  1667. \ttext-decoration: underline;
  1668. \tcursor: pointer;
  1669. }
  1670. .card-raised:active {\t
  1671. \ttransform: scale(0.97);
  1672. }
  1673. .card-raised:focus {
  1674. \tbox-shadow: var(--box-shadow-10), 0 0 0 3px #fff, 0 0 0 6px rgba(10, 132, 255, 0.5);
  1675. }
  1676. /*
  1677. .card-img {
  1678. \tborder: 1px inset rgba(0, 0, 0, 0.15);
  1679. }
  1680. */
  1681. .card-raised .card-img-top {
  1682. \tborder-top-left-radius: var(--rasied-card-border-radius);
  1683. \tborder-top-right-radius: var(--rasied-card-border-radius);
  1684. }
  1685. .card-body {
  1686. \tpadding: 12px 16px;
  1687. }
  1688. .card-footer {
  1689. \tpadding: 12px 16px;
  1690. }
  1691. /* Snippet */
  1692. .snippet {
  1693. \tbackground-color: #fff;
  1694. \tbottom: 0;
  1695. \tbox-shadow: var(--box-shadow-10);
  1696. \tpadding: 24px 0;
  1697. \tposition: fixed;
  1698. \twidth: 100%;
  1699. \tz-index: 200;
  1700. }
  1701. .snippet .wrapper {
  1702. \tdisplay: flex;
  1703. }
  1704. .snippet-promo-image,
  1705. .snippet-content {
  1706. \tmargin-right: 24px;
  1707. }
  1708. .snippet-promo-image img {
  1709. \twidth: 48px;
  1710. }
  1711. .snippet-content {
  1712. \tflex-grow: 1;
  1713. }
  1714. .snippet-content .body {
  1715. \tmax-width: 600px;\t
  1716. }
  1717. .snippet .btn {
  1718. \theight: 32px;\t
  1719. }
  1720. .icon-dark-theme {
  1721. \tdisplay: none;
  1722. }
  1723. .search-wrapper {
  1724.   padding: 24px 0; }
  1725.   .only-search .search-wrapper {
  1726.     padding: 0 0 64px; }
  1727.   .search-wrapper .logo-and-wordmark {
  1728.     align-items: center;
  1729.     display: flex;
  1730.     justify-content: center;
  1731.     margin-bottom: 49px; }
  1732.     .search-wrapper .logo-and-wordmark .logo {
  1733.       background: url(\"chrome://branding/content/icon128.png\") no-repeat center center;
  1734.       background-size: 97px;
  1735.       display: inline-block;
  1736.       height: 97px;
  1737.       width: 97px; }
  1738.     .search-wrapper .logo-and-wordmark .wordmark {
  1739.       background: url(\"../data/content/assets/firefox-wordmark.svg\") no-repeat center center;
  1740.       background-size: 142px;
  1741.       -moz-context-properties: fill;
  1742.       display: inline-block;
  1743.       fill: var(--search-wordmark-color);
  1744.       height: 97px;
  1745.       margin-inline-start: 15px;
  1746.       width: 142px; }
  1747.     @media (max-width: 609px) {
  1748.       .search-wrapper .logo-and-wordmark .logo {
  1749.         background-size: 64px;
  1750.         height: 64px;
  1751.         width: 64px; }
  1752.       .search-wrapper .logo-and-wordmark .wordmark {
  1753.         background-size: 100px;
  1754.         height: 64px;
  1755.         width: 100px; } }
  1756.   
  1757.   .search-wrapper .search-inner-wrapper {
  1758.     cursor: default;
  1759.     display: flex;
  1760.     height: 48px;
  1761.     margin: 0 auto;
  1762.     position: relative;
  1763.     width: 224px; }
  1764.     @media (min-width: 610px) {
  1765.       .search-wrapper .search-inner-wrapper {
  1766.         width: 480px; } }
  1767.     @media (min-width: 866px) {
  1768.       .search-wrapper .search-inner-wrapper {
  1769.         width: 736px; } }
  1770.   
  1771.   .search-wrapper input {
  1772.     background: var(--text-field-bg-color) /* var(--search-icon) 12px center no-repeat */;
  1773.     background-size: 24px;
  1774.     border: solid 1px var(--text-field-border-color);
  1775.     border-radius: 4px;
  1776. /*     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.15); */
  1777.     font-size: 15px;
  1778.     -moz-context-properties: fill;
  1779.     fill: var(--search-icon-color);
  1780.     padding: 0;
  1781.     padding-inline-end: 48px;
  1782.     padding-inline-start: 46px;
  1783.     width: 100%; }
  1784.     
  1785.     .search-wrapper input:dir(rtl) {
  1786.       background-position-x: right 12px; }
  1787.   
  1788. /*
  1789.   .search-wrapper:hover input {
  1790.     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.25); }
  1791. */
  1792.   
  1793.   .search-wrapper .search-inner-wrapper:active input,
  1794.   .search-wrapper input:focus {
  1795.     border: 1px solid var(--text-field-focus-border-color);
  1796.     box-shadow: var(--focus-box-shadow); }
  1797.   
  1798.   .search-wrapper .search-button {
  1799.     background: url(\"chrome://browser/skin/forward.svg\") no-repeat center center;
  1800.     background-size: 16px 16px;
  1801.     border: 0;
  1802.     border-radius: 0 3px 3px 0;
  1803.     -moz-context-properties: fill;
  1804.     fill: var(--search-icon-color);
  1805.     height: 100%;
  1806.     inset-inline-end: 0;
  1807.     position: absolute;
  1808.     width: 48px; }
  1809.     .search-wrapper .search-button:focus, .search-wrapper .search-button:hover {
  1810.       background-color: rgba(12, 12, 13, 0.1);
  1811.       cursor: pointer; }
  1812.     .search-wrapper .search-button:active {
  1813.       background-color: rgba(12, 12, 13, 0.2); }
  1814.     .search-wrapper .search-button:dir(rtl) {
  1815.       transform: scaleX(-1); }
  1816. .non-collapsible-section + .below-search-snippet-wrapper {
  1817.   margin-top: -48px; }
  1818. @media (max-height: 700px) {
  1819. /*
  1820.   .search-wrapper {
  1821.     padding: 0 0 30px; }
  1822. */
  1823.   .non-collapsible-section + .below-search-snippet-wrapper {
  1824.     margin-top: -14px; }
  1825.   .below-search-snippet-wrapper {
  1826.     min-height: 0; } }
  1827. .search-handoff-button {
  1828.   background: var(--textbox-background-color) var(--search-icon) 12px center no-repeat;
  1829.   background-size: 24px;
  1830.   border: solid 1px var(--search-border-color);
  1831.   border-radius: 3px;
  1832.   box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.15);
  1833.   cursor: text;
  1834.   font-size: 15px;
  1835.   padding: 0;
  1836.   padding-inline-end: 48px;
  1837.   padding-inline-start: 46px;
  1838.   opacity: 1;
  1839.   transition: opacity 500ms;
  1840.   width: 100%; }
  1841.   .search-handoff-button:dir(rtl) {
  1842.     background-position-x: right 12px; }
  1843.   .search-handoff-button:hover {
  1844.     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.25); }
  1845.   .fake-focus .search-handoff-button {
  1846.     border: 1px solid var(--textbox-focus-color);
  1847.     box-shadow: var(--textbox-focus-boxshadow); }
  1848.     .fake-focus .search-handoff-button .fake-caret {
  1849.       display: block; }
  1850.   .search-hidden .search-handoff-button {
  1851.     opacity: 0;
  1852.     visibility: hidden; }
  1853.   .search-handoff-button .fake-editable:focus {
  1854.     outline: none;
  1855.     caret-color: transparent; }
  1856.   .search-handoff-button .fake-editable {
  1857.     color: transparent;
  1858.     height: 100%;
  1859.     opacity: 0;
  1860.     position: absolute;
  1861.     top: 0;
  1862.     left: 0;
  1863.     right: 0;
  1864.     bottom: 0; }
  1865.   .search-handoff-button .fake-textbox {
  1866.     opacity: 0.54;
  1867.     text-align: start; }
  1868.   .search-handoff-button .fake-caret {
  1869.     animation: caret-animation 1.3s steps(5, start) infinite;
  1870.     background: var(--text-primary-color);
  1871.     display: none;
  1872.     inset-inline-start: 47px;
  1873.     height: 17px;
  1874.     position: absolute;
  1875.     top: 16px;
  1876.     width: 1px; }
  1877. @keyframes caret-animation {
  1878.   to {
  1879.     visibility: hidden; } }
  1880. @media (min-height: 701px) {
  1881.   body:not(.inline-onboarding) .fixed-search main {
  1882.     padding-top: 146px; }
  1883.   body:not(.inline-onboarding) .fixed-search .search-wrapper {
  1884.     background-color: var(--search-header-background-color);
  1885.     border-bottom: solid 1px var(--border-secondary-color);
  1886.     height: 95px;
  1887.     left: 0;
  1888.     padding: 30px 0;
  1889.     position: fixed;
  1890.     top: 0;
  1891.     width: 100%;
  1892.     z-index: 9; }
  1893.     body:not(.inline-onboarding) .fixed-search .search-wrapper .search-inner-wrapper {
  1894.       height: 35px; }
  1895.     body:not(.inline-onboarding) .fixed-search .search-wrapper input {
  1896.       background-position-x: 16px;
  1897.       background-size: 16px; }
  1898.       body:not(.inline-onboarding) .fixed-search .search-wrapper input:dir(rtl) {
  1899.         background-position-x: right 16px; }
  1900.   body:not(.inline-onboarding) .fixed-search .search-handoff-button {
  1901.     background-position-x: 12px;
  1902.     background-size: 24px; }
  1903.     body:not(.inline-onboarding) .fixed-search .search-handoff-button:dir(rtl) {
  1904.       background-position-x: right 12px; }
  1905.     body:not(.inline-onboarding) .fixed-search .search-handoff-button .fake-caret {
  1906.       top: 10px; } }
  1907. .contentSearchSuggestionTable {
  1908.   background-color: var(--search-dropdown-color);
  1909.   border: 0;
  1910.   box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 0, 0, 0.2);
  1911.   transform: translateY(4px); }
  1912.   .contentSearchSuggestionTable .contentSearchHeader {
  1913.     background-color: var(--search-dropdown-header-color);
  1914.     color: var(--text-secondary-color); }
  1915.   .contentSearchSuggestionTable .contentSearchHeader,
  1916.   .contentSearchSuggestionTable .contentSearchSettingsButton {
  1917.     border-color: var(--border-secondary-color); }
  1918.   .contentSearchSuggestionTable .contentSearchSuggestionsList {
  1919.     border: 0; }
  1920.   .contentSearchSuggestionTable .contentSearchOneOffsTable {
  1921.     background-color: var(--search-dropdown-header-color);
  1922.     border-top: solid 1px var(--border-secondary-color); }
  1923.   .contentSearchSuggestionTable .contentSearchSearchWithHeaderSearchText {
  1924.     color: var(--text-primary-color); }
  1925.   .contentSearchSuggestionTable .contentSearchSuggestionsContainer {
  1926.     background-color: var(--search-dropdown-color); }
  1927.   .contentSearchSuggestionTable .contentSearchSuggestionRow.selected {
  1928.     background: var(--element-hover-color);
  1929.     color: var(--text-primary-color); }
  1930.     .contentSearchSuggestionTable .contentSearchSuggestionRow.selected:active {
  1931.       background: var(--element-active-color); }
  1932.     .contentSearchSuggestionTable .contentSearchSuggestionRow.selected .historyIcon {
  1933.       fill: var(--icon-secondary-color); }
  1934.   .contentSearchSuggestionTable .contentSearchOneOffsTable .contentSearchSuggestionsContainer {
  1935.     background-color: var(--search-dropdown-header-color); }
  1936.   .contentSearchSuggestionTable .contentSearchOneOffItem {
  1937.     background-image: none;
  1938.     border-image: linear-gradient(transparent 18%, var(--border-secondary-color) 18%, var(--border-secondary-color) 82%, transparent 82%) 1;
  1939.     border-inline-end: 1px solid;
  1940.     position: relative; }
  1941.     .contentSearchSuggestionTable .contentSearchOneOffItem.selected {
  1942.       background: var(--element-hover-color); }
  1943.     .contentSearchSuggestionTable .contentSearchOneOffItem:active {
  1944.       background: var(--element-active-color); }
  1945.   .contentSearchSuggestionTable .contentSearchSettingsButton:hover {
  1946.     background: var(--element-hover-color);
  1947.     color: var(--text-primary-color); }
  1948. .contentSearchHeaderRow > td > img,
  1949. .contentSearchSuggestionRow > td > .historyIcon{
  1950.   margin-inline-start: 7px;
  1951.   margin-inline-end: 15px;
  1952. }
  1953. </style>
  1954. <section class=\"news-section\">
  1955. \t\t<div class=\"mzp-l-content blog\" id=\"blog\">
  1956. \t\t\t\t<div class=\"text-left\">
  1957. \t\t\t\t\t<h3>
  1958. \t\t\t\t\t\tNos programmes
  1959. \t\t\t\t\t</h3>
  1960. \t\t\t\t\t
  1961. \t\t\t\t\t<div>
  1962. \t\t\t\t\t\tLa transparence 
  1963. \t\t\t\t\t</div>
  1964. \t\t\t\t</div>
  1965. \t\t\t\t   <div class=\"row posts-list\">
  1966. \t\t\t  
  1967. \t\t\t\t\t   <!--Single Blog Start-->
  1968. \t\t\t\t\t   <div class=\"col-lg-4 col-md-4 wow fadeInUp\" data-wow-delay=\"0ms\">
  1969. \t\t\t\t\t\t<article>
  1970. \t\t\t\t\t\t\t<div class=\"post-img\">
  1971. \t\t\t\t\t\t\t\t<img src=\"https://i.ibb.co/m5yGbdR/blog2.jpg\" alt=\"\" class=\"img-fluid\">
  1972. \t\t\t\t\t\t\t</div>
  1973. \t\t\t\t\t\t\t<p class=\"post-category\">Commandez un  Hébergement pro.</p>
  1974. \t\t\t\t\t\t\t<h2 class=\"title\">
  1975. \t\t\t\t\t\t\t\t<a href=\"/detail/article/19\" data-original-title=\"\" title=\"\">Commandez un hébergement Mutualisé ou un VPS chez l’hébergeur web professionnel AFH Host à prix malin.</a>
  1976. \t\t\t\t\t\t\t</h2>
  1977. \t\t\t\t
  1978. \t\t\t\t\t\t\t<div class=\"d-flex align-items-center\">
  1979. \t\t\t\t\t\t\t\t<img src=\"/template/images/co.png\" alt=\"\" class=\"img-fluid post-author-img flex-shrink-0\">
  1980. \t\t\t\t\t\t\t\t<div class=\"post-meta\">
  1981. \t\t\t\t\t\t\t\t<div class=\"post-author-list\">Kenfack Noel</div>
  1982. \t\t\t\t\t\t\t\t<div class=\"post-date\">
  1983. \t\t\t\t\t\t\t\t\t<time datetime=\"2022-01-01\">01 Feb 2024</time>
  1984. \t\t\t\t\t\t\t\t</div>
  1985. \t\t\t\t\t\t\t\t</div>
  1986. \t\t\t\t\t\t\t</div>
  1987. \t\t\t\t\t\t</article>
  1988. \t\t\t\t\t   </div>
  1989. \t\t\t\t\t   <!--Single Blog End-->
  1990. \t\t\t\t\t   <!--Single Blog Start-->
  1991. \t\t\t\t\t   <div class=\"col-lg-4 col-md-4 wow fadeInUp\" data-wow-delay=\"0ms\">
  1992. \t\t\t\t\t\t<article>
  1993. \t\t\t\t\t\t\t<div class=\"post-img\">
  1994. \t\t\t\t\t\t\t\t<img src=\"https://i.ibb.co/m5yGbdR/blog2.jpg\" alt=\"\" class=\"img-fluid\">
  1995. \t\t\t\t\t\t\t</div>
  1996. \t\t\t\t\t\t\t<p class=\"post-category\">Commandez un  Hébergement pro.</p>
  1997. \t\t\t\t\t\t\t<h2 class=\"title\">
  1998. \t\t\t\t\t\t\t\t<a href=\"/detail/article/19\" data-original-title=\"\" title=\"\">Commandez un hébergement Mutualisé ou un VPS chez l’hébergeur web professionnel AFH Host à prix malin.</a>
  1999. \t\t\t\t\t\t\t</h2>
  2000. \t\t\t\t
  2001. \t\t\t\t\t\t\t<div class=\"d-flex align-items-center\">
  2002. \t\t\t\t\t\t\t\t<img src=\"/template/images/co.png\" alt=\"\" class=\"img-fluid post-author-img flex-shrink-0\">
  2003. \t\t\t\t\t\t\t\t<div class=\"post-meta\">
  2004. \t\t\t\t\t\t\t\t<div class=\"post-author-list\">Kenfack Noel</div>
  2005. \t\t\t\t\t\t\t\t<div class=\"post-date\">
  2006. \t\t\t\t\t\t\t\t\t<time datetime=\"2022-01-01\">01 Feb 2024</time>
  2007. \t\t\t\t\t\t\t\t</div>
  2008. \t\t\t\t\t\t\t\t</div>
  2009. \t\t\t\t\t\t\t</div>
  2010. \t\t\t\t\t\t</article>
  2011. \t\t\t\t\t   </div>
  2012. \t\t\t\t\t   <!--Single Blog Start-->
  2013. \t\t\t\t\t   <!--Single Blog Start-->
  2014. \t\t\t\t\t   <div class=\"col-lg-4 col-md-4 wow fadeInUp\" data-wow-delay=\"0ms\">
  2015. \t\t\t\t\t\t<article>
  2016. \t\t\t\t\t\t\t<div class=\"post-img\">
  2017. \t\t\t\t\t\t\t\t<img src=\"https://i.ibb.co/m5yGbdR/blog2.jpg\" alt=\"\" class=\"img-fluid\">
  2018. \t\t\t\t\t\t\t</div>
  2019. \t\t\t\t\t\t\t<p class=\"post-category\">Commandez un  Hébergement pro.</p>
  2020. \t\t\t\t\t\t\t<h2 class=\"title\">
  2021. \t\t\t\t\t\t\t\t<a href=\"/detail/article/19\" data-original-title=\"\" title=\"\">Commandez un hébergement Mutualisé ou un VPS chez l’hébergeur web professionnel AFH Host à prix malin.</a>
  2022. \t\t\t\t\t\t\t</h2>
  2023. \t\t\t\t
  2024. \t\t\t\t\t\t\t<div class=\"d-flex align-items-center\">
  2025. \t\t\t\t\t\t\t\t<img src=\"/template/images/co.png\" alt=\"\" class=\"img-fluid post-author-img flex-shrink-0\">
  2026. \t\t\t\t\t\t\t\t<div class=\"post-meta\">
  2027. \t\t\t\t\t\t\t\t<div class=\"post-author-list\">Kenfack Noel</div>
  2028. \t\t\t\t\t\t\t\t<div class=\"post-date\">
  2029. \t\t\t\t\t\t\t\t\t<time datetime=\"2022-01-01\">01 Feb 2024</time>
  2030. \t\t\t\t\t\t\t\t</div>
  2031. \t\t\t\t\t\t\t\t</div>
  2032. \t\t\t\t\t\t\t</div>
  2033. \t\t\t\t\t\t</article>
  2034. \t\t\t\t\t   </div>
  2035. \t\t\t\t\t   <!--Single Blog Start-->
  2036. \t\t\t\t\t   
  2037. \t\t\t\t   </div>
  2038. \t\t\t   </div>
  2039. \t\t   </div>
  2040.    </section>
  2041. {% endblock %}
  2042. {% block javascripttemplate %}
  2043. \$(document).ready(function() {
  2044.   const \$buttons = \$(\".demo__buttons\");
  2045.   const \$toggle = \$(\".demo__open-btn\");
  2046.   let delay = 200;
  2047.   let steps = [];
  2048.   let open = false;
  2049.   
  2050.   let curStep = 0;
  2051.   for (let i = 0; i <= 3; i++) {
  2052.     steps[i] = \"demo__step-\" + i;
  2053.   }
  2054.   function setStep(index) {    
  2055.     \$buttons.removeClass(\"step-1 step-0 step-3 step-2\").addClass(\"step-\" + curStep);   
  2056.   }
  2057.   
  2058.   let lastTimeout;
  2059.   function animate() {
  2060.     if (curStep >= 4) {
  2061.       curStep = 0;
  2062.       return;
  2063.     }
  2064.     open = true;
  2065.     setStep(curStep);    
  2066.     curStep++;
  2067.     lastTimeout = setTimeout(animate, delay);
  2068.   }
  2069.   \$toggle.on(\"click\", function() {
  2070.     if (!open) animate();
  2071.     else {
  2072.       \$buttons.removeClass(\"step-1 step-0 step-3 step-2\");
  2073.       clearTimeout(lastTimeout);
  2074.       open = false;
  2075.       curStep = 0;
  2076.     }
  2077.   });
  2078. });
  2079. {% endblock %}""Theme/Produit/Produit/Produit/businessretenu.html.twig""/home/afhunt/domains/factory.afhunt.com/public_html/factory/templates/Theme/Produit/Produit/Produit/businessretenu.html.twig");
  2080.     }
  2081. }