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