var/cache/dev/twig/82/82a161c396d2b64cfdf4d3a1475862e1a045e993116936c37fe2c5ad17eeca94.php line 50

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\Markup;
  8. use Twig\Sandbox\SecurityError;
  9. use Twig\Sandbox\SecurityNotAllowedTagError;
  10. use Twig\Sandbox\SecurityNotAllowedFilterError;
  11. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  12. use Twig\Source;
  13. use Twig\Template;
  14. /* default/index.html.twig */
  15. class __TwigTemplate_4c3c0a9931f1599e18aee538fc3e21a57812ad5a3f3adcb6fb1619c3a2d1e198 extends Template
  16. {
  17.     private $source;
  18.     private $macros = [];
  19.     public function __construct(Environment $env)
  20.     {
  21.         parent::__construct($env);
  22.         $this->source $this->getSourceContext();
  23.         $this->blocks = [
  24.             'title' => [$this'block_title'],
  25.             'body' => [$this'block_body'],
  26.         ];
  27.     }
  28.     protected function doGetParent(array $context)
  29.     {
  30.         // line 1
  31.         return "base.html.twig";
  32.     }
  33.     protected function doDisplay(array $context, array $blocks = [])
  34.     {
  35.         $macros $this->macros;
  36.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  37.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""default/index.html.twig"));
  38.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  39.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""default/index.html.twig"));
  40.         $this->parent $this->loadTemplate("base.html.twig""default/index.html.twig"1);
  41.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  42.         
  43.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  44.         
  45.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  46.     }
  47.     // line 3
  48.     public function block_title($context, array $blocks = [])
  49.     {
  50.         $macros $this->macros;
  51.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  52.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  53.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  54.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  55.         yield "Otropik — Agence de voyage en Guadeloupe & dans le monde";
  56.         
  57.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  58.         
  59.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  60.         return; yield '';
  61.     }
  62.     // line 5
  63.     public function block_body($context, array $blocks = [])
  64.     {
  65.         $macros $this->macros;
  66.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  67.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  68.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  69.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  70.         // line 6
  71.         yield "
  72. ";
  73.         // line 10
  74.         yield "<section class=\"section-hero position-relative\">
  75.   <picture>
  76.   ";
  77.         // line 12
  78.         if (CoreExtension::getAttribute($this->env$this->source, (isset($context["banner"]) || array_key_exists("banner"$context) ? $context["banner"] : (function () { throw new RuntimeError('Variable "banner" does not exist.'12$this->source); })()), "img", [], "any"falsefalsefalse12)) {
  79.             // line 13
  80.             yield "  <img src=\"";
  81.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/banner/"), "html"nulltrue);
  82.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["banner"]) || array_key_exists("banner"$context) ? $context["banner"] : (function () { throw new RuntimeError('Variable "banner" does not exist.'13$this->source); })()), "img", [], "any"falsefalsefalse13), "html"nulltrue);
  83.             yield "\" alt=\"Plage paradisiaque\" class=\"hero-bg w-100 h-100\">
  84.   ";
  85.         } else {
  86.             // line 15
  87.             yield "    <img src=\"";
  88.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/3004.jpg"), "html"nulltrue);
  89.             yield "\" alt=\"Plage paradisiaque en Guadeloupe\" class=\"hero-bg w-100 h-100\">
  90.   ";
  91.         }
  92.         // line 17
  93.         yield "  </picture>
  94.   <div class=\"hero-overlay container py-5 text-center text-white\">
  95.     <img src=\"";
  96.         // line 19
  97.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/logo-otropik.png"), "html"nulltrue);
  98.         yield "\" alt=\"Otropik\" class=\"mb-3\" style=\"max-width: 240px; height: auto;\">
  99.     <p class=\"lead fw-semibold text-shadow-sm\">N&#39;imaginez plus vos vacances, vivez-les !</p>
  100.     <form class=\"d-flex justify-content-center mt-4\" action=\"";
  101.         // line 22
  102.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("search");
  103.         yield "\" method=\"get\" role=\"search\" aria-label=\"Recherche de séjours\">
  104.       <div class=\"search-pill bg-white rounded-pill shadow-lg d-flex align-items-center overflow-hidden w-100\" style=\"max-width:760px;\">
  105.         <input class=\"form-control border-0 px-4 py-3 flex-grow-1\" type=\"search\" name=\"q\" placeholder=\"Où partez-vous ? (ex: Guadeloupe, New York, croisière…)\" aria-label=\"Rechercher\">
  106.         <button class=\"btn btn-primary rounded-0 px-4 py-3\" type=\"submit\">Rechercher</button>
  107.       </div>
  108.     </form>
  109.     <div class=\"d-flex gap-2 justify-content-center mt-3 flex-wrap\">
  110.       <a href=\"";
  111.         // line 30
  112.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.circuit");
  113.         yield "\" class=\"btn btn-outline-light btn-sm rounded-pill\">O&#39; Circuit</a>
  114.       <a href=\"";
  115.         // line 31
  116.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.escapade");
  117.         yield "\" class=\"btn btn-outline-light btn-sm rounded-pill\">O&#39; Escapade</a>
  118.       <a href=\"";
  119.         // line 32
  120.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.roadtrip");
  121.         yield "\" class=\"btn btn-outline-light btn-sm rounded-pill\">O&#39; RoadTrip</a>
  122.        <a href=\"";
  123.         // line 33
  124.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.croisiere");
  125.         yield "\" class=\"btn btn-outline-light btn-sm rounded-pill\">O&#39; Croisière</a>
  126.     </div>
  127.   </div>
  128. </section>
  129. ";
  130.         // line 41
  131.         yield "<section class=\"py-5 bg-white\">
  132.   <div class=\"container\">
  133.     <header class=\"d-flex flex-wrap align-items-center justify-content-between gap-3 mb-3\">
  134.       <div>
  135.         <h2 class=\"h3 text-success mb-1 fw-bold\">Nos O&#39;ffres du moment</h2>
  136.         <p class=\"text-muted mb-0\">Découvrez nos dernières expériences en immersion !</p>
  137.       </div>
  138.      <div class=\"d-flex gap-2 flex-wrap\">
  139.         <a href=\"";
  140.         // line 49
  141.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.circuit");
  142.         yield "\" class=\"chip\">O&#39; Circuit</a>
  143.         <a href=\"";
  144.         // line 50
  145.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.escapade");
  146.         yield "\" class=\"chip\">O&#39; Escapade</a>
  147.         <a href=\"";
  148.         // line 51
  149.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.roadtrip");
  150.         yield "\" class=\"chip\">O&#39; RoadTrip</a>
  151.       </div> 
  152.     </header>
  153.     <div class=\"row g-3 g-md-4\">
  154.       ";
  155.         // line 56
  156.         $context['_parent'] = $context;
  157.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["ourOffer"]) || array_key_exists("ourOffer"$context) ? $context["ourOffer"] : (function () { throw new RuntimeError('Variable "ourOffer" does not exist.'56$this->source); })()));
  158.         foreach ($context['_seq'] as $context["_key"] => $context["o"]) {
  159.             // line 57
  160.             yield "      <div class=\"col-12 col-sm-6 col-lg-3\">
  161.         <article class=\"card card-offer border-0 shadow-sm h-10s0 overflow-hidden rounded-4\">
  162.           ";
  163.             // line 59
  164.             if ((=== CoreExtension::compare(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["o"], "type", [], "any"falsefalsefalse59), "id", [], "any"falsefalsefalse59), 1))) {
  165.                 // line 60
  166.                 yield "          <a href=\"";
  167.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.escapade.destination", ["slug" => CoreExtension::getAttribute($this->env$this->source$context["o"], "slug", [], "any"falsefalsefalse60)]), "html"nulltrue);
  168.                 yield "\" class=\"stretched-link text-decoration-none text-white\">
  169.           ";
  170.             } elseif ((=== CoreExtension::compare(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source,             // line 61
  171. $context["o"], "type", [], "any"falsefalsefalse61), "id", [], "any"falsefalsefalse61), 2))) {
  172.                 // line 62
  173.                 yield "          <a href=\"";
  174.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.circuit.destination", ["slug" => CoreExtension::getAttribute($this->env$this->source$context["o"], "slug", [], "any"falsefalsefalse62)]), "html"nulltrue);
  175.                 yield "\" class=\"stretched-link text-decoration-none text-white\">
  176.           ";
  177.             } elseif ((=== CoreExtension::compare(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source,             // line 63
  178. $context["o"], "type", [], "any"falsefalsefalse63), "id", [], "any"falsefalsefalse63), 3))) {
  179.                 // line 64
  180.                 yield "          <a href=\"";
  181.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.roadtrip.destination", ["slug" => CoreExtension::getAttribute($this->env$this->source$context["o"], "slug", [], "any"falsefalsefalse64)]), "html"nulltrue);
  182.                 yield "\" class=\"stretched-link text-decoration-none text-white\">
  183.           ";
  184.             }
  185.             // line 66
  186.             yield "            <div class=\"ratio ratio-4x5\">
  187.               <img src=\"";
  188.             // line 67
  189.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(((((("img/offer/" CoreExtension::getAttribute($this->env$this->source$context["o"], "file", [], "any"falsefalsefalse67)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["o"], "slug", [], "any"falsefalsefalse67)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["o"], "img", [], "any"falsefalsefalse67))), "html"nulltrue);
  190.             yield "\" alt=\"";
  191.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["o"], "file", [], "any"falsefalsefalse67), "html"nulltrue);
  192.             yield "\" class=\"object-fit-cover w-100 h-100\">
  193.             </div>
  194.             <div class=\"card-img-overlay d-flex flex-column justify-content-end p-3 p-md-4\">
  195.               <span>";
  196.             // line 70
  197.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["o"], "type", [], "any"falsefalsefalse70), "name", [], "any"falsefalsefalse70), "html"nulltrue);
  198.             yield "</span>
  199.               <h3 class=\"h5 fw-bold text-white text-shadow-sm mb-3\">";
  200.             // line 71
  201.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["o"], "title", [], "any"falsefalsefalse71), "html"nulltrue);
  202.             yield "</h3>
  203.               <div>
  204.                 <span class=\"btn btn-outline-light btn-sm rounded-pill\">Découvrir</span>
  205.               </div>
  206.             </div>
  207.           </a>
  208.         </article>
  209.       </div>
  210.       ";
  211.         }
  212.         $_parent $context['_parent'];
  213.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['o'], $context['_parent'], $context['loop']);
  214.         $context array_intersect_key($context$_parent) + $_parent;
  215.         // line 80
  216.         yield "    </div>
  217.     <div class=\"section-divider mx-auto my-5\"></div>
  218.   </div>
  219. </section>
  220. ";
  221.         // line 89
  222.         yield "<section class=\"py-5 bg-white\">
  223.   <div class=\"container\">
  224.     <header class=\"mb-3\">
  225.       <h2 class=\"h3 text-success mb-1 fw-bold\">Nos O&#39;Sélections</h2>
  226.       <p class=\"text-muted mb-0\">Découvrez nos dernières expériences en immersion !</p>
  227.     </header>
  228.     <div class=\"row g-3 g-md-4\">
  229.  ";
  230.         // line 98
  231.         $context['_parent'] = $context;
  232.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["offEscapade"]) || array_key_exists("offEscapade"$context) ? $context["offEscapade"] : (function () { throw new RuntimeError('Variable "offEscapade" does not exist.'98$this->source); })()));
  233.         foreach ($context['_seq'] as $context["_key"] => $context["offer"]) {
  234.             // line 99
  235.             yield "    <div class=\"col-12 col-sm-6 col-lg-3\">
  236.       <article class=\"card card-dest border-0 shadow-sm h-100 overflow-hidden rounded-4\">
  237.       ";
  238.             // line 101
  239.             if (CoreExtension::getAttribute($this->env$this->source$context["offer"], "destination", [], "any"falsefalsefalse101)) {
  240.                 // line 102
  241.                 yield "        <a href=\"";
  242.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.escapade.destination", ["slug" => CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["offer"], "destination", [], "any"falsefalsefalse102), "slug", [], "any"falsefalsefalse102)]), "html"nulltrue);
  243.                 yield "\" class=\"stretched-link text-decoration-none text-white\">
  244.           <div class=\"ratio ratio-4x5\">
  245.               <img src=\"";
  246.                 // line 104
  247.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(((("img/destination/" CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["offer"], "destination", [], "any"falsefalsefalse104), "slug", [], "any"falsefalsefalse104)) . "/") . CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["offer"], "destination", [], "any"falsefalsefalse104), "img", [], "any"falsefalsefalse104))), "html"nulltrue);
  248.                 yield "\" alt=\"";
  249.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["offer"], "title", [], "any"falsefalsefalse104), "html"nulltrue);
  250.                 yield "\" class=\"object-fit-cover w-100 h-100\">
  251.           </div>
  252.           <div class=\"card-img-overlay d-flex flex-column justify-content-end p-3 p-md-4\">
  253.              ";
  254.                 // line 108
  255.                 yield "                <h3 class=\"h5 fw-bold text-white text-shadow-sm mb-0\">";
  256.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["offer"], "title", [], "any"falsefalsefalse108), "html"nulltrue);
  257.                 yield "</h3>
  258.               <div class=\"mt-3\">
  259.                   <span class=\"btn btn-outline-light btn-sm rounded-pill\">Découvrir</span>
  260.               </div>
  261.           </div>
  262.           </a>
  263.         ";
  264.             }
  265.             // line 115
  266.             yield "        </article>
  267.       </div>
  268. ";
  269.         }
  270.         $_parent $context['_parent'];
  271.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['offer'], $context['_parent'], $context['loop']);
  272.         $context array_intersect_key($context$_parent) + $_parent;
  273.         // line 118
  274.         yield "
  275.     <div class=\"section-divider mx-auto my-5\"></div>
  276.   </div>
  277. </section>
  278. ";
  279.         // line 126
  280.         yield "<section class=\"cta-parallax text-white text-center\">
  281.   ";
  282.         // line 128
  283.         yield "  <div class=\"cta-parallax__bg\" style=\"--bg:url('";
  284.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/para.jpg"), "html"nulltrue);
  285.         yield "');\"></div>
  286.   <div class=\"cta-parallax__overlay\"></div>
  287.   <div class=\"container position-relative py-5 py-lg-7\">
  288.     <h2 class=\"display-6 fw-bold text-shadow-sm mb-3\">Une envie de voyage particulière ?</h2>
  289.     ";
  290.         // line 136
  291.         yield "    <ul class=\"cta-chips list-unstyled mx-auto mb-3\" role=\"list\" aria-label=\"Idées de voyages\">
  292.       ";
  293.         // line 137
  294.         $context["tags"] = ["Randonnée""Road trip""Croisière""Immersion""Aventure""Découverte"];
  295.         // line 138
  296.         yield "      ";
  297.         // line 141
  298.         yield "      ";
  299.         $context['_parent'] = $context;
  300.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["continents"]) || array_key_exists("continents"$context) ? $context["continents"] : (function () { throw new RuntimeError('Variable "continents" does not exist.'141$this->source); })()));
  301.         foreach ($context['_seq'] as $context["_key"] => $context["c"]) {
  302.             // line 142
  303.             yield "        <a class=\"chip chip--ghost\" href=\"";
  304.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.continent", ["slug" => CoreExtension::getAttribute($this->env$this->source$context["c"], "slug", [], "any"falsefalsefalse142)]), "html"nulltrue);
  305.             yield "\"><li>";
  306.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["c"], "name", [], "any"falsefalsefalse142), "html"nulltrue);
  307.             yield "</li></a> 
  308.       ";
  309.         }
  310.         $_parent $context['_parent'];
  311.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['c'], $context['_parent'], $context['loop']);
  312.         $context array_intersect_key($context$_parent) + $_parent;
  313.         // line 144
  314.         yield "    </ul>
  315.     <p class=\"opacity-90 mb-4\">Construisez votre voyage avec un spécialiste</p>
  316.     <div class=\"d-flex gap-2 justify-content-center flex-wrap\">
  317.       <a href=\"";
  318.         // line 149
  319.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.contact");
  320.         yield "\" class=\"btn btn-outline-light rounded-pill\">Nous contacter</a>
  321.       <a href=\"";
  322.         // line 150
  323.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.devis");
  324.         yield "\" class=\"btn btn-primary rounded-pill\">Demander un devis</a>
  325.     </div>
  326.   </div>
  327. </section>
  328. ";
  329.         // line 158
  330.         yield "<section class=\"py-5 bg-white\">
  331.   <div class=\"container\">
  332.     ";
  333.         // line 162
  334.         yield "    <div class=\"row align-items-center g-4\">
  335.       <div class=\"col-12 col-lg-6\">
  336.         <div id=\"carouselAtouts\" class=\"carousel slide rounded-4 overflow-hidden shadow-sm\" data-bs-ride=\"carousel\">
  337.           <div class=\"carousel-inner\">
  338.             <div class=\"carousel-item active\">
  339.               <img src=\"";
  340.         // line 167
  341.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/photo-agence.jpg"), "html"nulltrue);
  342.         yield "\" class=\"d-block w-100 object-fit-cover\" alt=\"Voyage 1\">
  343.             </div>
  344.             <div class=\"carousel-item\">
  345.               <img src=\"";
  346.         // line 170
  347.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/photo-agence-0.jpg"), "html"nulltrue);
  348.         yield "\" class=\"d-block w-100 object-fit-cover\" alt=\"Voyage 2\">
  349.             </div>
  350.           </div>
  351.           <button class=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#carouselAtouts\" data-bs-slide=\"prev\">
  352.             <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>
  353.             <span class=\"visually-hidden\">Précédent</span>
  354.           </button>
  355.           <button class=\"carousel-control-next\" type=\"button\" data-bs-target=\"#carouselAtouts\" data-bs-slide=\"next\">
  356.             <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>
  357.             <span class=\"visually-hidden\">Suivant</span>
  358.           </button>
  359.         </div>
  360.       </div>
  361.       <div class=\"col-12 col-lg-6\">
  362.         <h2 class=\"h3 txt-ot-green fw-bold mb-3\">Pourquoi voyager avec O’TROPIK ?</h2>
  363.         <p class=\"text-muted\">Chez O’TROPIK, nous croyons que chaque voyage doit être unique, conçu avec soin et adapté à vos envies.</p>
  364.         <p class=\"text-muted\">Forte d’une solide expérience dans le tourisme et d’une véritable passion pour le voyage, notre agence vous accompagne dans la création de séjours qui vous ressemblent.</p>
  365.         <p class=\"text-muted\">Notre priorité : que vos vacances soient inoubliables et que vous vous sentiez privilégiés à chaque étape, de la préparation à votre retour.</p>
  366.       ";
  367.         // line 192
  368.         yield 
  369.       </div>
  370.     </div>
  371.     ";
  372.         // line 197
  373.         yield "    <div class=\"row mt-5 mb-2\">
  374.       <div class=\"col-12 mb-3\">
  375.         <h2 class=\"h3 fw-bold txt-ot-green\">O’ Atouts</h2>
  376.         <p class=\"text-muted mb-0\">Parce que chaque détail compte, voici ce qui rend nos voyages uniques.</p>
  377.       </div>
  378.       ";
  379.         // line 202
  380.         $context['_parent'] = $context;
  381.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["atouts"]) || array_key_exists("atouts"$context) ? $context["atouts"] : (function () { throw new RuntimeError('Variable "atouts" does not exist.'202$this->source); })()));
  382.         foreach ($context['_seq'] as $context["_key"] => $context["a"]) {
  383.             // line 203
  384.             yield "         <div class=\"col-12 col-md-6 col-lg-3 mb-3\">
  385.         <div class=\"p-3 text-center h-100 border rounded-4 shadow-sm\">
  386.           <strong class=\"txt-ot-green\">";
  387.             // line 205
  388.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["a"], "title", [], "any"falsefalsefalse205), "html"nulltrue);
  389.             yield "</strong><br>
  390.           <small class=\"text-muted\">";
  391.             // line 206
  392.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["a"], "description", [], "any"falsefalsefalse206), "html"nulltrue);
  393.             yield "</small>
  394.         </div>
  395.       </div>
  396.       ";
  397.         }
  398.         $_parent $context['_parent'];
  399.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['a'], $context['_parent'], $context['loop']);
  400.         $context array_intersect_key($context$_parent) + $_parent;
  401.         // line 210
  402.         yield "    </div>
  403.     <div class=\"section-divider mx-auto my-5\"></div>
  404.   </div>
  405. </section>
  406. <section>
  407. <h2 class=\"h3 fw-bold txt-ot-green text-center\"> Accréditations & partenaires de confiance</h2>
  408.   <div class=\"partner-slider\">
  409.   <div class=\"track\">
  410.     <img src=\"/img/logos/apst.png\" alt=\"APST\">
  411.     <img src=\"/img/logos/assurever.png\" alt=\"Assurever\">
  412.     <img src=\"/img/logos/hiscox.png\" alt=\"Hiscox\">
  413.     <img src=\"/img/logos/iata.png\" alt=\"IATA\">
  414.     <img src=\"/img/logos/atout-france.png\" alt=\"Atout France\">
  415.     <img src=\"/img/logos/tourcom.png\" alt=\"TourCom\">
  416.   </div>
  417. </div>
  418. </section>
  419. ";
  420.         // line 251
  421.         yield "
  422. ";
  423.         // line 255
  424.         yield "<section class=\"py-5 bg-white\">
  425.   <div class=\"container\">
  426.     <div class=\"row text-center g-4\">
  427.       <div class=\"col-12 col-md-4\">
  428.         <div class=\"contact-ico mb-2\" style=\"font-size: 2em;color: #1a8754;\"><i class=\"bi bi-clock\"></i></div>
  429.         <h3 class=\"text-success h6 fw-bold\">Horaire Agence</h3>
  430.         <p class=\"small text-muted mb-0\">Du lundi au Vendredi de 09h à 12h et de 13H à 17h00 <br>Un samedi sur deux</p>
  431.       </div>
  432.       <div class=\"col-12 col-md-4\">
  433.         <div class=\"contact-ico mb-2\" style=\"font-size: 2em;color: #1a8754;\"><i class=\"bi bi-telephone\"></i></div>
  434.         <h3 class=\"text-success h6 fw-bold\">Téléphone</h3>
  435.        
  436.         <p class=\"small text-muted mb-0\">
  437.         ";
  438.         // line 268
  439.         if (CoreExtension::getAttribute($this->env$this->source, (isset($context["infos"]) || array_key_exists("infos"$context) ? $context["infos"] : (function () { throw new RuntimeError('Variable "infos" does not exist.'268$this->source); })()), "phone", [], "any"falsefalsefalse268)) {
  440.             yield 
  441.         Bureau : <a class=\"link-info\" href=\"tel:+590590505134\">";
  442.             // line 269
  443.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["infos"]) || array_key_exists("infos"$context) ? $context["infos"] : (function () { throw new RuntimeError('Variable "infos" does not exist.'269$this->source); })()), "phone", [], "any"falsefalsefalse269), "html"nulltrue);
  444.             yield "</a><br> ";
  445.         }
  446.         // line 270
  447.         yield "        ";
  448.         if (CoreExtension::getAttribute($this->env$this->source, (isset($context["infos"]) || array_key_exists("infos"$context) ? $context["infos"] : (function () { throw new RuntimeError('Variable "infos" does not exist.'270$this->source); })()), "mobile", [], "any"falsefalsefalse270)) {
  449.             yield 
  450.         Mobile : <a class=\"link-info\" href=\"tel:+590690357030\">";
  451.             // line 271
  452.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["infos"]) || array_key_exists("infos"$context) ? $context["infos"] : (function () { throw new RuntimeError('Variable "infos" does not exist.'271$this->source); })()), "mobile", [], "any"falsefalsefalse271), "html"nulltrue);
  453.             yield "</a><br> ";
  454.         }
  455.         // line 272
  456.         yield "        ";
  457.         if (CoreExtension::getAttribute($this->env$this->source, (isset($context["infos"]) || array_key_exists("infos"$context) ? $context["infos"] : (function () { throw new RuntimeError('Variable "infos" does not exist.'272$this->source); })()), "mobileTwo", [], "any"falsefalsefalse272)) {
  458.             yield 
  459.         Mobile : <a class=\"link-info\" href=\"tel:+590690762562\">";
  460.             // line 273
  461.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["infos"]) || array_key_exists("infos"$context) ? $context["infos"] : (function () { throw new RuntimeError('Variable "infos" does not exist.'273$this->source); })()), "mobileTwo", [], "any"falsefalsefalse273), "html"nulltrue);
  462.             yield "</a> ";
  463.         }
  464.         // line 274
  465.         yield "
  466.         </p>
  467.       </div>
  468.       <div class=\"col-12 col-md-4\">
  469.         <div class=\"contact-ico mb-2\" style=\"font-size: 2em;color: #1a8754;\"><i class=\"bi bi-geo-alt\"></i></div>
  470.         <h3 class=\"text-success h6 fw-bold\">Localisation</h3>
  471.         <p class=\"small text-muted mb-0\">";
  472.         // line 280
  473.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["infos"]) || array_key_exists("infos"$context) ? $context["infos"] : (function () { throw new RuntimeError('Variable "infos" does not exist.'280$this->source); })()), "adress", [], "any"falsefalsefalse280), "html"nulltrue);
  474.         yield " <br> ";
  475.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["infos"]) || array_key_exists("infos"$context) ? $context["infos"] : (function () { throw new RuntimeError('Variable "infos" does not exist.'280$this->source); })()), "zip", [], "any"falsefalsefalse280), "html"nulltrue);
  476.         yield " ";
  477.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["infos"]) || array_key_exists("infos"$context) ? $context["infos"] : (function () { throw new RuntimeError('Variable "infos" does not exist.'280$this->source); })()), "city", [], "any"falsefalsefalse280), "html"nulltrue);
  478.         yield " </p>
  479.       </div>
  480.     </div>
  481.   </div>
  482. </section>
  483. <script>
  484. document.addEventListener(\"DOMContentLoaded\", function () {
  485.   const slider = document.querySelector('.partner-slider');
  486.   const track = slider.querySelector('.track');
  487.   const logos = [...track.children];
  488.   const dotsContainer = slider.querySelector('.dots');
  489.   // clone images to simulate infinite scroll visually
  490.   logos.forEach(logo => {
  491.     const clone = logo.cloneNode(true);
  492.     track.appendChild(clone);
  493.   });
  494.   // create dots
  495.   logos.forEach((_, i) => {
  496.     const dot = document.createElement('span');
  497.     if (i === 0) dot.classList.add('active');
  498.     dotsContainer.appendChild(dot);
  499.   });
  500.   let index = 0;
  501.   const dots = [...dotsContainer.children];
  502.   setInterval(() => {
  503.     index = (index + 1) % logos.length;
  504.     dots.forEach(d => d.classList.remove('active'));
  505.     dots[index].classList.add('active');
  506.   }, 3000);
  507. });
  508. </script>
  509. ";
  510.         
  511.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  512.         
  513.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  514.         return; yield '';
  515.     }
  516.     /**
  517.      * @codeCoverageIgnore
  518.      */
  519.     public function getTemplateName()
  520.     {
  521.         return "default/index.html.twig";
  522.     }
  523.     /**
  524.      * @codeCoverageIgnore
  525.      */
  526.     public function isTraitable()
  527.     {
  528.         return false;
  529.     }
  530.     /**
  531.      * @codeCoverageIgnore
  532.      */
  533.     public function getDebugInfo()
  534.     {
  535.         return array (  517 => 280,  509 => 274,  505 => 273,  500 => 272,  496 => 271,  491 => 270,  487 => 269,  483 => 268,  468 => 255,  465 => 251,  440 => 210,  430 => 206,  426 => 205,  422 => 203,  418 => 202,  411 => 197,  405 => 192,  382 => 170,  376 => 167,  369 => 162,  364 => 158,  356 => 150,  352 => 149,  345 => 144,  334 => 142,  329 => 141,  327 => 138,  325 => 137,  322 => 136,  311 => 128,  308 => 126,  301 => 118,  293 => 115,  282 => 108,  274 => 104,  268 => 102,  266 => 101,  262 => 99,  258 => 98,  247 => 89,  239 => 80,  224 => 71,  220 => 70,  212 => 67,  209 => 66,  203 => 64,  201 => 63,  196 => 62,  194 => 61,  189 => 60,  187 => 59,  183 => 57,  179 => 56,  171 => 51,  167 => 50,  163 => 49,  153 => 41,  145 => 33,  141 => 32,  137 => 31,  133 => 30,  122 => 22,  116 => 19,  112 => 17,  106 => 15,  99 => 13,  97 => 12,  93 => 10,  90 => 6,  80 => 5,  60 => 3,  37 => 1,);
  536.     }
  537.     public function getSourceContext()
  538.     {
  539.         return new Source("{% extends 'base.html.twig' %}
  540. {% block title %}Otropik — Agence de voyage en Guadeloupe & dans le monde{% endblock %}
  541. {% block body %}
  542. {# -----------------------------
  543.    HERO avec fond + recherche
  544. ------------------------------ #}
  545. <section class=\"section-hero position-relative\">
  546.   <picture>
  547.   {% if banner.img %}
  548.   <img src=\"{{ asset('img/banner/')}}{{banner.img}}\" alt=\"Plage paradisiaque\" class=\"hero-bg w-100 h-100\">
  549.   {% else %}
  550.     <img src=\"{{ asset('img/3004.jpg') }}\" alt=\"Plage paradisiaque en Guadeloupe\" class=\"hero-bg w-100 h-100\">
  551.   {% endif %}
  552.   </picture>
  553.   <div class=\"hero-overlay container py-5 text-center text-white\">
  554.     <img src=\"{{ asset('img/logo-otropik.png') }}\" alt=\"Otropik\" class=\"mb-3\" style=\"max-width: 240px; height: auto;\">
  555.     <p class=\"lead fw-semibold text-shadow-sm\">N&#39;imaginez plus vos vacances, vivez-les !</p>
  556.     <form class=\"d-flex justify-content-center mt-4\" action=\"{{ path('search') }}\" method=\"get\" role=\"search\" aria-label=\"Recherche de séjours\">
  557.       <div class=\"search-pill bg-white rounded-pill shadow-lg d-flex align-items-center overflow-hidden w-100\" style=\"max-width:760px;\">
  558.         <input class=\"form-control border-0 px-4 py-3 flex-grow-1\" type=\"search\" name=\"q\" placeholder=\"Où partez-vous ? (ex: Guadeloupe, New York, croisière…)\" aria-label=\"Rechercher\">
  559.         <button class=\"btn btn-primary rounded-0 px-4 py-3\" type=\"submit\">Rechercher</button>
  560.       </div>
  561.     </form>
  562.     <div class=\"d-flex gap-2 justify-content-center mt-3 flex-wrap\">
  563.       <a href=\"{{ path('o.circuit') }}\" class=\"btn btn-outline-light btn-sm rounded-pill\">O&#39; Circuit</a>
  564.       <a href=\"{{ path('o.escapade') }}\" class=\"btn btn-outline-light btn-sm rounded-pill\">O&#39; Escapade</a>
  565.       <a href=\"{{ path('o.roadtrip') }}\" class=\"btn btn-outline-light btn-sm rounded-pill\">O&#39; RoadTrip</a>
  566.        <a href=\"{{ path('o.croisiere') }}\" class=\"btn btn-outline-light btn-sm rounded-pill\">O&#39; Croisière</a>
  567.     </div>
  568.   </div>
  569. </section>
  570. {# -----------------------------
  571.    Offres du moment + chips
  572. ------------------------------ #}
  573. <section class=\"py-5 bg-white\">
  574.   <div class=\"container\">
  575.     <header class=\"d-flex flex-wrap align-items-center justify-content-between gap-3 mb-3\">
  576.       <div>
  577.         <h2 class=\"h3 text-success mb-1 fw-bold\">Nos O&#39;ffres du moment</h2>
  578.         <p class=\"text-muted mb-0\">Découvrez nos dernières expériences en immersion !</p>
  579.       </div>
  580.      <div class=\"d-flex gap-2 flex-wrap\">
  581.         <a href=\"{{ path('o.circuit') }}\" class=\"chip\">O&#39; Circuit</a>
  582.         <a href=\"{{ path('o.escapade') }}\" class=\"chip\">O&#39; Escapade</a>
  583.         <a href=\"{{ path('o.roadtrip') }}\" class=\"chip\">O&#39; RoadTrip</a>
  584.       </div> 
  585.     </header>
  586.     <div class=\"row g-3 g-md-4\">
  587.       {% for o in ourOffer %}
  588.       <div class=\"col-12 col-sm-6 col-lg-3\">
  589.         <article class=\"card card-offer border-0 shadow-sm h-10s0 overflow-hidden rounded-4\">
  590.           {% if o.type.id ==  1 %}
  591.           <a href=\"{{ path('o.escapade.destination',{slug:o.slug})}}\" class=\"stretched-link text-decoration-none text-white\">
  592.           {% elseif o.type.id == 2 %}
  593.           <a href=\"{{ path('o.circuit.destination',{slug:o.slug})}}\" class=\"stretched-link text-decoration-none text-white\">
  594.           {% elseif o.type.id == 3 %}
  595.           <a href=\"{{ path('o.roadtrip.destination',{slug:o.slug})}}\" class=\"stretched-link text-decoration-none text-white\">
  596.           {% endif %}
  597.             <div class=\"ratio ratio-4x5\">
  598.               <img src=\"{{asset('img/offer/' ~ o.file  ~ '/' ~ o.slug  ~ '/' ~ o.img)}}\" alt=\"{{ o.file }}\" class=\"object-fit-cover w-100 h-100\">
  599.             </div>
  600.             <div class=\"card-img-overlay d-flex flex-column justify-content-end p-3 p-md-4\">
  601.               <span>{{ o.type.name }}</span>
  602.               <h3 class=\"h5 fw-bold text-white text-shadow-sm mb-3\">{{ o.title }}</h3>
  603.               <div>
  604.                 <span class=\"btn btn-outline-light btn-sm rounded-pill\">Découvrir</span>
  605.               </div>
  606.             </div>
  607.           </a>
  608.         </article>
  609.       </div>
  610.       {% endfor %}
  611.     </div>
  612.     <div class=\"section-divider mx-auto my-5\"></div>
  613.   </div>
  614. </section>
  615. {# -----------------------------
  616.    O&#39;Selection (grille 4 cartes)
  617. ------------------------------ #}
  618. <section class=\"py-5 bg-white\">
  619.   <div class=\"container\">
  620.     <header class=\"mb-3\">
  621.       <h2 class=\"h3 text-success mb-1 fw-bold\">Nos O&#39;Sélections</h2>
  622.       <p class=\"text-muted mb-0\">Découvrez nos dernières expériences en immersion !</p>
  623.     </header>
  624.     <div class=\"row g-3 g-md-4\">
  625.  {% for offer in offEscapade %}
  626.     <div class=\"col-12 col-sm-6 col-lg-3\">
  627.       <article class=\"card card-dest border-0 shadow-sm h-100 overflow-hidden rounded-4\">
  628.       {% if offer.destination %}
  629.         <a href=\"{{ path('o.escapade.destination',{slug:offer.destination.slug}) }}\" class=\"stretched-link text-decoration-none text-white\">
  630.           <div class=\"ratio ratio-4x5\">
  631.               <img src=\"{{asset('img/destination/' ~ offer.destination.slug  ~ '/' ~ offer.destination.img)}}\" alt=\"{{ offer.title }}\" class=\"object-fit-cover w-100 h-100\">
  632.           </div>
  633.           <div class=\"card-img-overlay d-flex flex-column justify-content-end p-3 p-md-4\">
  634.              {# <span class=\"badge bg-light text-dark rounded-pill small mb-2\">{{ c.badge }}</span> #}
  635.                 <h3 class=\"h5 fw-bold text-white text-shadow-sm mb-0\">{{ offer.title }}</h3>
  636.               <div class=\"mt-3\">
  637.                   <span class=\"btn btn-outline-light btn-sm rounded-pill\">Découvrir</span>
  638.               </div>
  639.           </div>
  640.           </a>
  641.         {% endif %}
  642.         </article>
  643.       </div>
  644. {% endfor %}
  645.     <div class=\"section-divider mx-auto my-5\"></div>
  646.   </div>
  647. </section>
  648. {# -----------------------------
  649.    Bandeau CTA parallax
  650. ------------------------------ #}
  651. <section class=\"cta-parallax text-white text-center\">
  652.   {# bg en CSS via variable -> parallax #}
  653.   <div class=\"cta-parallax__bg\" style=\"--bg:url('{{ asset('img/para.jpg') }}');\"></div>
  654.   <div class=\"cta-parallax__overlay\"></div>
  655.   <div class=\"container position-relative py-5 py-lg-7\">
  656.     <h2 class=\"display-6 fw-bold text-shadow-sm mb-3\">Une envie de voyage particulière ?</h2>
  657.     {# tags / chips #}
  658.     <ul class=\"cta-chips list-unstyled mx-auto mb-3\" role=\"list\" aria-label=\"Idées de voyages\">
  659.       {% set tags = ['Randonnée','Road trip','Croisière','Immersion','Aventure','Découverte'] %}
  660.       {#{% for t in tags %}
  661.         <li class=\"chip chip--ghost\">{{ t }}</li>
  662.       {% endfor %}#}
  663.       {% for c in continents %}
  664.         <a class=\"chip chip--ghost\" href=\"{{path('o.continent',{slug:c.slug})}}\"><li>{{ c.name }}</li></a> 
  665.       {% endfor %}
  666.     </ul>
  667.     <p class=\"opacity-90 mb-4\">Construisez votre voyage avec un spécialiste</p>
  668.     <div class=\"d-flex gap-2 justify-content-center flex-wrap\">
  669.       <a href=\"{{ path('o.contact') }}\" class=\"btn btn-outline-light rounded-pill\">Nous contacter</a>
  670.       <a href=\"{{ path('o.devis') }}\" class=\"btn btn-primary rounded-pill\">Demander un devis</a>
  671.     </div>
  672.   </div>
  673. </section>
  674. {# -----------------------------
  675.    Pourquoi voyager avec nous + O’Atouts
  676. ------------------------------ #}
  677. <section class=\"py-5 bg-white\">
  678.   <div class=\"container\">
  679.     {# --- Partie Pourquoi voyager avec nous --- #}
  680.     <div class=\"row align-items-center g-4\">
  681.       <div class=\"col-12 col-lg-6\">
  682.         <div id=\"carouselAtouts\" class=\"carousel slide rounded-4 overflow-hidden shadow-sm\" data-bs-ride=\"carousel\">
  683.           <div class=\"carousel-inner\">
  684.             <div class=\"carousel-item active\">
  685.               <img src=\"{{ asset('img/photo-agence.jpg') }}\" class=\"d-block w-100 object-fit-cover\" alt=\"Voyage 1\">
  686.             </div>
  687.             <div class=\"carousel-item\">
  688.               <img src=\"{{ asset('img/photo-agence-0.jpg') }}\" class=\"d-block w-100 object-fit-cover\" alt=\"Voyage 2\">
  689.             </div>
  690.           </div>
  691.           <button class=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#carouselAtouts\" data-bs-slide=\"prev\">
  692.             <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>
  693.             <span class=\"visually-hidden\">Précédent</span>
  694.           </button>
  695.           <button class=\"carousel-control-next\" type=\"button\" data-bs-target=\"#carouselAtouts\" data-bs-slide=\"next\">
  696.             <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>
  697.             <span class=\"visually-hidden\">Suivant</span>
  698.           </button>
  699.         </div>
  700.       </div>
  701.       <div class=\"col-12 col-lg-6\">
  702.         <h2 class=\"h3 txt-ot-green fw-bold mb-3\">Pourquoi voyager avec O’TROPIK ?</h2>
  703.         <p class=\"text-muted\">Chez O’TROPIK, nous croyons que chaque voyage doit être unique, conçu avec soin et adapté à vos envies.</p>
  704.         <p class=\"text-muted\">Forte d’une solide expérience dans le tourisme et d’une véritable passion pour le voyage, notre agence vous accompagne dans la création de séjours qui vous ressemblent.</p>
  705.         <p class=\"text-muted\">Notre priorité : que vos vacances soient inoubliables et que vous vous sentiez privilégiés à chaque étape, de la préparation à votre retour.</p>
  706.       {# <div class=\"mt-4\">
  707.           <a href=\"{#{ path('app_agence') }}\" class=\"btn btn-primary\">En savoir plus</a>
  708.         </div> #} 
  709.       </div>
  710.     </div>
  711.     {# --- O’Atouts (sous la row principale) --- #}
  712.     <div class=\"row mt-5 mb-2\">
  713.       <div class=\"col-12 mb-3\">
  714.         <h2 class=\"h3 fw-bold txt-ot-green\">O’ Atouts</h2>
  715.         <p class=\"text-muted mb-0\">Parce que chaque détail compte, voici ce qui rend nos voyages uniques.</p>
  716.       </div>
  717.       {% for a in atouts %}
  718.          <div class=\"col-12 col-md-6 col-lg-3 mb-3\">
  719.         <div class=\"p-3 text-center h-100 border rounded-4 shadow-sm\">
  720.           <strong class=\"txt-ot-green\">{{a.title}}</strong><br>
  721.           <small class=\"text-muted\">{{a.description}}</small>
  722.         </div>
  723.       </div>
  724.       {% endfor %}
  725.     </div>
  726.     <div class=\"section-divider mx-auto my-5\"></div>
  727.   </div>
  728. </section>
  729. <section>
  730. <h2 class=\"h3 fw-bold txt-ot-green text-center\"> Accréditations & partenaires de confiance</h2>
  731.   <div class=\"partner-slider\">
  732.   <div class=\"track\">
  733.     <img src=\"/img/logos/apst.png\" alt=\"APST\">
  734.     <img src=\"/img/logos/assurever.png\" alt=\"Assurever\">
  735.     <img src=\"/img/logos/hiscox.png\" alt=\"Hiscox\">
  736.     <img src=\"/img/logos/iata.png\" alt=\"IATA\">
  737.     <img src=\"/img/logos/atout-france.png\" alt=\"Atout France\">
  738.     <img src=\"/img/logos/tourcom.png\" alt=\"TourCom\">
  739.   </div>
  740. </div>
  741. </section>
  742. {# -----------------------------
  743.    Call to action (bandeau photo)
  744. ------------------------------ 
  745. <section class=\"position-relative overflow-hidden\">
  746.   <div class=\"ratio ratio-21x9\">
  747.     <img src=\"{{ asset('img/cta-tourist.jpg') }}\" alt=\"Famille en voyage\" class=\"object-fit-cover w-100 h-100\">
  748.   </div>
  749.   <div class=\"position-absolute top-0 start-0 w-100 h-100 d-flex align-items-center\">
  750.     <div class=\"container\">
  751.       <div class=\"row\">
  752.         <div class=\"col-12 col-lg-6 text-white\">
  753.           <h2 class=\"h4 mb-1\">Call to action</h2>
  754.           <p class=\"mb-0 opacity-90\">Accroche…</p>
  755.         </div>
  756.       </div>
  757.     </div>
  758.   </div>
  759. </section>. #}
  760. {# -----------------------------
  761.    Infos contact (3 colonnes)
  762. ------------------------------ #}
  763. <section class=\"py-5 bg-white\">
  764.   <div class=\"container\">
  765.     <div class=\"row text-center g-4\">
  766.       <div class=\"col-12 col-md-4\">
  767.         <div class=\"contact-ico mb-2\" style=\"font-size: 2em;color: #1a8754;\"><i class=\"bi bi-clock\"></i></div>
  768.         <h3 class=\"text-success h6 fw-bold\">Horaire Agence</h3>
  769.         <p class=\"small text-muted mb-0\">Du lundi au Vendredi de 09h à 12h et de 13H à 17h00 <br>Un samedi sur deux</p>
  770.       </div>
  771.       <div class=\"col-12 col-md-4\">
  772.         <div class=\"contact-ico mb-2\" style=\"font-size: 2em;color: #1a8754;\"><i class=\"bi bi-telephone\"></i></div>
  773.         <h3 class=\"text-success h6 fw-bold\">Téléphone</h3>
  774.        
  775.         <p class=\"small text-muted mb-0\">
  776.         {% if infos.phone %} 
  777.         Bureau : <a class=\"link-info\" href=\"tel:+590590505134\">{{infos.phone}}</a><br> {% endif %}
  778.         {% if infos.mobile %} 
  779.         Mobile : <a class=\"link-info\" href=\"tel:+590690357030\">{{infos.mobile}}</a><br> {% endif %}
  780.         {% if infos.mobileTwo %} 
  781.         Mobile : <a class=\"link-info\" href=\"tel:+590690762562\">{{infos.mobileTwo}}</a> {% endif %}
  782.         </p>
  783.       </div>
  784.       <div class=\"col-12 col-md-4\">
  785.         <div class=\"contact-ico mb-2\" style=\"font-size: 2em;color: #1a8754;\"><i class=\"bi bi-geo-alt\"></i></div>
  786.         <h3 class=\"text-success h6 fw-bold\">Localisation</h3>
  787.         <p class=\"small text-muted mb-0\">{{infos.adress}} <br> {{infos.zip}} {{infos.city}} </p>
  788.       </div>
  789.     </div>
  790.   </div>
  791. </section>
  792. <script>
  793. document.addEventListener(\"DOMContentLoaded\", function () {
  794.   const slider = document.querySelector('.partner-slider');
  795.   const track = slider.querySelector('.track');
  796.   const logos = [...track.children];
  797.   const dotsContainer = slider.querySelector('.dots');
  798.   // clone images to simulate infinite scroll visually
  799.   logos.forEach(logo => {
  800.     const clone = logo.cloneNode(true);
  801.     track.appendChild(clone);
  802.   });
  803.   // create dots
  804.   logos.forEach((_, i) => {
  805.     const dot = document.createElement('span');
  806.     if (i === 0) dot.classList.add('active');
  807.     dotsContainer.appendChild(dot);
  808.   });
  809.   let index = 0;
  810.   const dots = [...dotsContainer.children];
  811.   setInterval(() => {
  812.     index = (index + 1) % logos.length;
  813.     dots.forEach(d => d.classList.remove('active'));
  814.     dots[index].classList.add('active');
  815.   }, 3000);
  816. });
  817. </script>
  818. {% endblock %}""default/index.html.twig""/home/ladomitiyc/otropik/templates/default/index.html.twig");
  819.     }
  820. }