var/cache/dev/twig/30/302afc04a22074d702d4d1074536b113.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/agency.html.twig */
  15. class __TwigTemplate_5bbc0e82408aba0f223a5a6f53e5281f 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/agency.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/agency.html.twig"));
  41.         $this->parent $this->loadTemplate("base.html.twig""default/agency.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 3
  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 "Agence de voyage en Guadeloupe – OTropik| Séjours & Circuits sur mesure";
  57.         
  58.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  59.         
  60.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  61.         return; yield '';
  62.     }
  63.     // line 5
  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 6
  72.         yield " <meta name=\"description\" content=\"OTropik est une agence de voyage en Guadeloupe spécialisée dans les séjours, circuits et voyages sur mesure au départ des Antilles. Conseillers locaux et accompagnement personnalisé.\" >
  73. \t<meta property=\"og:title\" content=\"Agence de voyage en Guadeloupe – OTropik| Séjours & Circuits sur mesure\" />
  74. \t<meta property=\"og:type\" content=\"Website\" />
  75. \t<meta property=\"og:description\" content=\"OTropik est une agence de voyage en Guadeloupe spécialisée dans les séjours, circuits et voyages sur mesure au départ des Antilles. Conseillers locaux et accompagnement personnalisé.\" />
  76. \t<meta property=\"og:url\" content=\"";
  77.         // line 11
  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.'11$this->source); })()), "request", [], "any"falsefalsefalse11), "uri", [], "any"falsefalsefalse11)), "html"nulltrue);
  79.         yield "\" />
  80. \t<meta property=\"og:image\" content=\"";
  81.         // line 12
  82.         yield "\" />
  83. \t<meta name =\"twitter:card\" content=\"summary_large_image\" />
  84. \t<meta name=\"twitter:title\" content=\"Agence de voyage en Guadeloupe – OTropik| Séjours & Circuits sur mesure\">
  85. \t<meta name=\"twitter:description\" content=\"OTropik est une agence de voyage en Guadeloupe spécialisée dans les séjours, circuits et voyages sur mesure au départ des Antilles. Conseillers locaux et accompagnement personnalisé.\">
  86. \t<meta name=\"twitter:image\" content=\"";
  87.         // line 17
  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 20
  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 21
  105.         yield "
  106. ";
  107.         // line 25
  108.         yield "<section class=\"py-5 bg-light\">
  109.   <div class=\"container\">
  110.     <div class=\"row align-items-center g-4\">
  111.       <div class=\"col-12 col-lg-7\">
  112.         <h1 class=\"display-5 text-success fw-bold mb-3\"> OTropik Agence de voyage <br> en Guadeloupe</h1>
  113.         <p class=\"lead text-muted mb-4\">
  114.           OTropik est une agence de voyage en Guadeloupe spécialisée dans l’organisation de séjours, circuits et voyages sur mesure au départ des Antilles.
  115.           Basée en Guadeloupe, notre équipe accompagne les voyageurs dans la création d’expériences personnalisées vers l’Europe, l’Amérique, l’Asie et le reste du monde.
  116.         </p>
  117.         <p class=\"text-muted mb-4\">
  118.           Grâce à notre expertise locale, nous proposons des solutions adaptées aux voyageurs guadeloupéens souhaitant partir depuis Pointe-à-Pitre
  119.           ou organiser un séjour international en toute sérénité.
  120.         </p>
  121.         <div class=\"d-flex gap-2 flex-wrap\">
  122.           <a href=\"";
  123.         // line 39
  124.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.contact");
  125.         yield "\" class=\"btn btn-primary rounded-pill px-4\">Nous contacter</a>
  126.           <a href=\"";
  127.         // line 40
  128.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.devis");
  129.         yield "\" class=\"btn btn-outline-success rounded-pill px-4\">Demander un devis</a>
  130.         </div>
  131.       </div>
  132.       <div class=\"col-12 col-lg-5\">
  133.         <div class=\"ratio ratio-4x3 rounded-4 overflow-hidden shadow-sm\">
  134.           <img src=\"";
  135.         // line 46
  136.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/photo-agence.jpg"), "html"nulltrue);
  137.         yield "\"
  138.                alt=\"OTropik - Agence de voyage en Guadeloupe\"
  139.                class=\"w-100 h-100 object-fit-cover\">
  140.         </div>
  141.         <p class=\"small text-muted mt-2 mb-0\">Départs depuis Pointe-à-Pitre • Conseils locaux • Itinéraires sur mesure</p>
  142.       </div>
  143.     </div>
  144.   </div>
  145. </section>
  146. ";
  147.         // line 59
  148.         yield "<section class=\"py-5\">
  149.   <div class=\"container\">
  150.     <div class=\"row g-4\">
  151.       <div class=\"col-12 col-lg-8\">
  152.         <h2 class=\"h3 text-success fw-bold mb-3\">Une agence de voyage locale au cœur de la Guadeloupe</h2>
  153.         <p class=\"text-muted\">
  154.           Implantée en Guadeloupe, OTropik met à disposition un accompagnement personnalisé pour :
  155.         </p>
  156.         <div class=\"row g-2\">
  157.           <div class=\"col-12 col-sm-6\">
  158.             <ul class=\"list-unstyled mb-0\">
  159.               <li class=\"d-flex gap-2\"><span class=\"text-success\">✔</span> Voyages en famille</li>
  160.               <li class=\"d-flex gap-2\"><span class=\"text-success\">✔</span> Lunes de miel</li>
  161.               <li class=\"d-flex gap-2\"><span class=\"text-success\">✔</span> Circuits découverte</li>
  162.             </ul>
  163.           </div>
  164.           <div class=\"col-12 col-sm-6\">
  165.             <ul class=\"list-unstyled mb-0\">
  166.               <li class=\"d-flex gap-2\"><span class=\"text-success\">✔</span> Roadtrips</li>
  167.               <li class=\"d-flex gap-2\"><span class=\"text-success\">✔</span> Croisières</li>
  168.               <li class=\"d-flex gap-2\"><span class=\"text-success\">✔</span> Voyages premium</li>
  169.             </ul>
  170.           </div>
  171.         </div>
  172.         <p class=\"text-muted mt-3 mb-0\">
  173.           Notre connaissance du marché antillais nous permet de proposer des itinéraires adaptés aux départs depuis la Guadeloupe.
  174.         </p>
  175.         <hr class=\"my-5\">
  176.         <h2 class=\"h3 text-success fw-bold mb-3\">Des voyages sur mesure depuis la Guadeloupe</h2>
  177.         <p class=\"text-muted\">
  178.           En tant qu’agence de voyage en Guadeloupe, nous construisons des voyages personnalisés selon votre budget, vos envies et votre calendrier.
  179.         </p>
  180.         <p class=\"text-muted mb-3\">
  181.           Que vous rêviez :
  182.         </p>
  183.         <ul class=\"text-muted\">
  184.           <li>d’un circuit en Amérique du Sud,</li>
  185.           <li>d’un séjour en Europe,</li>
  186.           <li>d’une croisière dans les Caraïbes,</li>
  187.           <li>ou d’un roadtrip aux États-Unis,</li>
  188.         </ul>
  189.         <p class=\"text-muted mb-0\">OTropik vous accompagne à chaque étape.</p>
  190.         <hr class=\"my-5\">
  191.         <h2 class=\"h3 text-success fw-bold mb-3\">Pourquoi choisir OTropik ?</h2>
  192.         <div class=\"row g-3\">
  193.           <div class=\"col-12 col-md-6\">
  194.             <div class=\"p-3 border rounded-4 h-100\">
  195.               <div class=\"fw-semibold\">✔️ Agence basée en Guadeloupe</div>
  196.               <div class=\"text-muted small\">Un accompagnement pensé pour les voyageurs antillais.</div>
  197.             </div>
  198.           </div>
  199.           <div class=\"col-12 col-md-6\">
  200.             <div class=\"p-3 border rounded-4 h-100\">
  201.               <div class=\"fw-semibold\">✔️ Conseillers spécialisés</div>
  202.               <div class=\"text-muted small\">Des recommandations selon votre style de voyage.</div>
  203.             </div>
  204.           </div>
  205.           <div class=\"col-12 col-md-6\">
  206.             <div class=\"p-3 border rounded-4 h-100\">
  207.               <div class=\"fw-semibold\">✔️ Voyages personnalisés</div>
  208.               <div class=\"text-muted small\">Budget, rythme, dates : on ajuste tout.</div>
  209.             </div>
  210.           </div>
  211.           <div class=\"col-12 col-md-6\">
  212.             <div class=\"p-3 border rounded-4 h-100\">
  213.               <div class=\"fw-semibold\">✔️ Assistance et suivi</div>
  214.               <div class=\"text-muted small\">Un interlocuteur, avant et pendant le départ.</div>
  215.             </div>
  216.           </div>
  217.           <div class=\"col-12\">
  218.             <div class=\"p-3 border rounded-4\">
  219.               <div class=\"fw-semibold\">✔️ Expertise destinations monde</div>
  220.               <div class=\"text-muted small\">Europe, Amérique, Asie, Caraïbes… et au-delà.</div>
  221.             </div>
  222.           </div>
  223.         </div>
  224.         <div class=\"mt-5 p-4 bg-light rounded-4\">
  225.           <p class=\"mb-2\">
  226.             Faire appel à OTropik, c’est choisir une agence de voyage en Guadeloupe qui comprend les besoins des voyageurs antillais
  227.             et propose un accompagnement sur mesure.
  228.           </p>
  229.           <div class=\"d-flex gap-2 flex-wrap\">
  230.             <a href=\"";
  231.         // line 146
  232.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.contact");
  233.         yield "\" class=\"btn btn-primary rounded-pill px-4\">Contacter OTropik</a>
  234.             <a href=\"";
  235.         // line 147
  236.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.devis");
  237.         yield "\" class=\"btn btn-outline-success rounded-pill px-4\">Demander un devis</a>
  238.           </div>
  239.         </div>
  240.       </div>
  241.       ";
  242.         // line 153
  243.         yield "      <div class=\"col-12 col-lg-4\">
  244.         <div class=\"sticky-top\" style=\"top: 90px;\">
  245.           <div class=\"card border-0 shadow-sm rounded-4\">
  246.             <div class=\"card-body\">
  247.               <h3 class=\"h5 fw-bold mb-3\">Besoin d’un conseil ?</h3>
  248.               <p class=\"text-muted mb-3\">Dis-nous ta destination, tes dates et ton budget : on te propose une idée de voyage.</p>
  249.               <a href=\"";
  250.         // line 159
  251.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.devis");
  252.         yield "\" class=\"btn btn-primary w-100 rounded-pill\">Demander un devis</a>
  253.               <div class=\"small text-muted mt-2\">Réponse rapide • Conseillers basés en Guadeloupe</div>
  254.             </div>
  255.           </div>
  256.         </div>
  257.       </div>
  258.     </div>
  259.   </div>
  260. </section>
  261. ";
  262.         // line 173
  263.         $context["destinations"] = [["title" => "Sainte-Lucie""subtitle" => "Escapade nature & plages""img" => "img/destinations/st-lucie.jpg""url" => "#"], ["title" => "États-Unis""subtitle" => "Roadtrip & grandes villes""img" => "img/destinations/usa.jpg""url" => "#"], ["title" => "République Dominicaine""subtitle" => "All inclusive & détente""img" => "img/destinations/rep-dom.jpg""url" => "#"], ["title" => "Europe""subtitle" => "City-break & circuits""img" => "img/destinations/europe.jpg""url" => "#"], ["title" => "Caraïbes""subtitle" => "Croisières & îles""img" => "img/destinations/caraibes.jpg""url" => "#"], ["title" => "Asie""subtitle" => "Dépaysement total""img" => "img/destinations/asie.jpg""url" => "#"]];
  264.         // line 181
  265.         yield "
  266. <section class=\"py-5 bg-white\">
  267.   <div class=\"container\">
  268.     <div class=\"d-flex align-items-end justify-content-between gap-3 mb-3\">
  269.       <div>
  270.         <h2 class=\"h3 fw-bold mb-1\">Découvrez nos offres</h2>
  271.         <p class=\"text-muted mb-0\">Une sélection de destinations au départ des Antilles.</p>
  272.       </div>
  273.       <div class=\"d-none d-md-flex gap-2\">
  274.         <button class=\"btn btn-outline-secondary btn-sm rounded-pill\" type=\"button\" data-bs-target=\"#destCarousel\" data-bs-slide=\"prev\">
  275.           ‹
  276.         </button>
  277.         <button class=\"btn btn-outline-secondary btn-sm rounded-pill\" type=\"button\" data-bs-target=\"#destCarousel\" data-bs-slide=\"next\">
  278.           ›
  279.         </button>
  280.       </div>
  281.     </div>
  282.     <div id=\"destCarousel\"
  283.          class=\"carousel slide\"
  284.          data-bs-ride=\"carousel\"
  285.          data-bs-interval=\"4500\"
  286.          data-bs-touch=\"true\">
  287.       <div class=\"carousel-inner\">
  288.         ";
  289.         // line 208
  290.         yield "        ";
  291.         $context['_parent'] = $context;
  292.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::batch((isset($context["offers"]) || array_key_exists("offers"$context) ? $context["offers"] : (function () { throw new RuntimeError('Variable "offers" does not exist.'208$this->source); })()), 3null));
  293.         $context['loop'] = [
  294.           'parent' => $context['_parent'],
  295.           'index0' => 0,
  296.           'index'  => 1,
  297.           'first'  => true,
  298.         ];
  299.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  300.             $length count($context['_seq']);
  301.             $context['loop']['revindex0'] = $length 1;
  302.             $context['loop']['revindex'] = $length;
  303.             $context['loop']['length'] = $length;
  304.             $context['loop']['last'] = === $length;
  305.         }
  306.         foreach ($context['_seq'] as $context["_key"] => $context["chunk"]) {
  307.             // line 209
  308.             yield "          <div class=\"carousel-item ";
  309.             if (CoreExtension::getAttribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse209)) {
  310.                 yield "active";
  311.             }
  312.             yield "\">
  313.             <div class=\"row g-3\">
  314.               ";
  315.             // line 211
  316.             $context['_parent'] = $context;
  317.             $context['_seq'] = CoreExtension::ensureTraversable($context["chunk"]);
  318.             foreach ($context['_seq'] as $context["_key"] => $context["o"]) {
  319.                 // line 212
  320.                 yield "                ";
  321.                 if ($context["o"]) {
  322.                     // line 213
  323.                     yield "                  <div class=\"col-12 col-md-6 col-lg-4\">
  324.                      ";
  325.                     // line 214
  326.                     if ((CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["o"], "type", [], "any"falsefalsefalse214), "id", [], "any"falsefalsefalse214) == 1)) {
  327.                         // line 215
  328.                         yield "                        <a href=\"";
  329.                         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"falsefalsefalse215)]), "html"nulltrue);
  330.                         yield "\" 
  331.                     ";
  332.                     } elseif ((CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source,                     // line 216
  333. $context["o"], "type", [], "any"falsefalsefalse216), "id", [], "any"falsefalsefalse216) == 2)) {
  334.                         // line 217
  335.                         yield "                        <a href=\"";
  336.                         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"falsefalsefalse217)]), "html"nulltrue);
  337.                         yield "\" 
  338.                     ";
  339.                     } elseif ((CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source,                     // line 218
  340. $context["o"], "type", [], "any"falsefalsefalse218), "id", [], "any"falsefalsefalse218) == 3)) {
  341.                         // line 219
  342.                         yield "                        <a href=\"";
  343.                         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"falsefalsefalse219)]), "html"nulltrue);
  344.                         yield "\"
  345.                     ";
  346.                     }
  347.                     // line 221
  348.                     yield "                       class=\"text-decoration-none\">
  349.                       <article class=\"card border-0 shadow-sm rounded-4 overflow-hidden h-100\">
  350.                         <div class=\"ratio ratio-4x3\">
  351.                           <img src=\"";
  352.                     // line 224
  353.                     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"falsefalsefalse224)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["o"], "slug", [], "any"falsefalsefalse224)) . "/") . CoreExtension::getAttribute($this->env$this->source$context["o"], "img", [], "any"falsefalsefalse224))), "html"nulltrue);
  354.                     yield "\" alt=\"";
  355.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["o"], "file", [], "any"falsefalsefalse224), "html"nulltrue);
  356.                     yield "\"
  357.                                class=\"w-100 h-100 object-fit-cover\">
  358.                         </div>
  359.                         <div class=\"card-body\">
  360.                         <span>";
  361.                     // line 228
  362.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["o"], "type", [], "any"falsefalsefalse228), "name", [], "any"falsefalsefalse228), "html"nulltrue);
  363.                     yield "</span>
  364.                           <h3 class=\"h5  fw-bold mb-1\">";
  365.                     // line 229
  366.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["o"], "title", [], "any"falsefalsefalse229), "html"nulltrue);
  367.                     yield "</h3>
  368.                           <p class=\"text-muted mb-0\">";
  369.                     // line 230
  370.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["o"], "subtitle", [], "any"falsefalsefalse230), "html"nulltrue);
  371.                     yield "</p>
  372.                         </div>
  373.                       </article>
  374.                     </a>
  375.                   </div>
  376.                 ";
  377.                 }
  378.                 // line 236
  379.                 yield "              ";
  380.             }
  381.             $_parent $context['_parent'];
  382.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['o'], $context['_parent'], $context['loop']);
  383.             $context array_intersect_key($context$_parent) + $_parent;
  384.             // line 237
  385.             yield "            </div>
  386.           </div>
  387.         ";
  388.             ++$context['loop']['index0'];
  389.             ++$context['loop']['index'];
  390.             $context['loop']['first'] = false;
  391.             if (isset($context['loop']['length'])) {
  392.                 --$context['loop']['revindex0'];
  393.                 --$context['loop']['revindex'];
  394.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  395.             }
  396.         }
  397.         $_parent $context['_parent'];
  398.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['chunk'], $context['_parent'], $context['loop']);
  399.         $context array_intersect_key($context$_parent) + $_parent;
  400.         // line 240
  401.         yield "
  402.       </div>
  403.       <button class=\"carousel-control-prev d-md-none\" type=\"button\" data-bs-target=\"#destCarousel\" data-bs-slide=\"prev\">
  404.         <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>
  405.         <span class=\"visually-hidden\">Précédent</span>
  406.       </button>
  407.       <button class=\"carousel-control-next d-md-none\" type=\"button\" data-bs-target=\"#destCarousel\" data-bs-slide=\"next\">
  408.         <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>
  409.         <span class=\"visually-hidden\">Suivant</span>
  410.       </button>
  411.     </div>
  412.     <div class=\"text-center mt-4\">
  413.       <a href=\"";
  414.         // line 255
  415.         yield "\" class=\"btn btn-outline-success rounded-pill px-4\">
  416.         Voir toutes les offres
  417.       </a>
  418.     </div>
  419.   </div>
  420. </section>
  421. ";
  422.         
  423.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  424.         
  425.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  426.         return; yield '';
  427.     }
  428.     /**
  429.      * @codeCoverageIgnore
  430.      */
  431.     public function getTemplateName()
  432.     {
  433.         return "default/agency.html.twig";
  434.     }
  435.     /**
  436.      * @codeCoverageIgnore
  437.      */
  438.     public function isTraitable()
  439.     {
  440.         return false;
  441.     }
  442.     /**
  443.      * @codeCoverageIgnore
  444.      */
  445.     public function getDebugInfo()
  446.     {
  447.         return array (  457 => 255,  440 => 240,  424 => 237,  418 => 236,  409 => 230,  405 => 229,  401 => 228,  392 => 224,  387 => 221,  381 => 219,  379 => 218,  374 => 217,  372 => 216,  367 => 215,  365 => 214,  362 => 213,  359 => 212,  355 => 211,  347 => 209,  329 => 208,  301 => 181,  299 => 173,  285 => 159,  277 => 153,  269 => 147,  265 => 146,  176 => 59,  163 => 46,  154 => 40,  150 => 39,  134 => 25,  131 => 21,  121 => 20,  109 => 17,  102 => 12,  98 => 11,  91 => 6,  81 => 5,  61 => 3,  38 => 1,);
  448.     }
  449.     public function getSourceContext()
  450.     {
  451.         return new Source("{% extends 'base.html.twig' %}
  452. {% block title %}Agence de voyage en Guadeloupe – OTropik| Séjours & Circuits sur mesure{% endblock %}
  453. {% block seo %}
  454.  <meta name=\"description\" content=\"OTropik est une agence de voyage en Guadeloupe spécialisée dans les séjours, circuits et voyages sur mesure au départ des Antilles. Conseillers locaux et accompagnement personnalisé.\" >
  455. \t<meta property=\"og:title\" content=\"Agence de voyage en Guadeloupe – OTropik| Séjours & Circuits sur mesure\" />
  456. \t<meta property=\"og:type\" content=\"Website\" />
  457. \t<meta property=\"og:description\" content=\"OTropik est une agence de voyage en Guadeloupe spécialisée dans les séjours, circuits et voyages sur mesure au départ des Antilles. Conseillers locaux et accompagnement personnalisé.\" />
  458. \t<meta property=\"og:url\" content=\"{{absolute_url( app.request.uri)}}\" />
  459. \t<meta property=\"og:image\" content=\"{#{asset('img/asset/cardimg-fb.jpg')}#}\" />
  460. \t<meta name =\"twitter:card\" content=\"summary_large_image\" />
  461. \t<meta name=\"twitter:title\" content=\"Agence de voyage en Guadeloupe – OTropik| Séjours & Circuits sur mesure\">
  462. \t<meta name=\"twitter:description\" content=\"OTropik est une agence de voyage en Guadeloupe spécialisée dans les séjours, circuits et voyages sur mesure au départ des Antilles. Conseillers locaux et accompagnement personnalisé.\">
  463. \t<meta name=\"twitter:image\" content=\"{#{asset('img/asset/cardimg-fb.jpg')}#}\">
  464. {% endblock %}
  465. {% block body %}
  466. {# -----------------------------
  467.   HERO
  468. ------------------------------ #}
  469. <section class=\"py-5 bg-light\">
  470.   <div class=\"container\">
  471.     <div class=\"row align-items-center g-4\">
  472.       <div class=\"col-12 col-lg-7\">
  473.         <h1 class=\"display-5 text-success fw-bold mb-3\"> OTropik Agence de voyage <br> en Guadeloupe</h1>
  474.         <p class=\"lead text-muted mb-4\">
  475.           OTropik est une agence de voyage en Guadeloupe spécialisée dans l’organisation de séjours, circuits et voyages sur mesure au départ des Antilles.
  476.           Basée en Guadeloupe, notre équipe accompagne les voyageurs dans la création d’expériences personnalisées vers l’Europe, l’Amérique, l’Asie et le reste du monde.
  477.         </p>
  478.         <p class=\"text-muted mb-4\">
  479.           Grâce à notre expertise locale, nous proposons des solutions adaptées aux voyageurs guadeloupéens souhaitant partir depuis Pointe-à-Pitre
  480.           ou organiser un séjour international en toute sérénité.
  481.         </p>
  482.         <div class=\"d-flex gap-2 flex-wrap\">
  483.           <a href=\"{{ path('o.contact') }}\" class=\"btn btn-primary rounded-pill px-4\">Nous contacter</a>
  484.           <a href=\"{{ path('o.devis') }}\" class=\"btn btn-outline-success rounded-pill px-4\">Demander un devis</a>
  485.         </div>
  486.       </div>
  487.       <div class=\"col-12 col-lg-5\">
  488.         <div class=\"ratio ratio-4x3 rounded-4 overflow-hidden shadow-sm\">
  489.           <img src=\"{{ asset('img/photo-agence.jpg') }}\"
  490.                alt=\"OTropik - Agence de voyage en Guadeloupe\"
  491.                class=\"w-100 h-100 object-fit-cover\">
  492.         </div>
  493.         <p class=\"small text-muted mt-2 mb-0\">Départs depuis Pointe-à-Pitre • Conseils locaux • Itinéraires sur mesure</p>
  494.       </div>
  495.     </div>
  496.   </div>
  497. </section>
  498. {# -----------------------------
  499.   CONTENU SEO
  500. ------------------------------ #}
  501. <section class=\"py-5\">
  502.   <div class=\"container\">
  503.     <div class=\"row g-4\">
  504.       <div class=\"col-12 col-lg-8\">
  505.         <h2 class=\"h3 text-success fw-bold mb-3\">Une agence de voyage locale au cœur de la Guadeloupe</h2>
  506.         <p class=\"text-muted\">
  507.           Implantée en Guadeloupe, OTropik met à disposition un accompagnement personnalisé pour :
  508.         </p>
  509.         <div class=\"row g-2\">
  510.           <div class=\"col-12 col-sm-6\">
  511.             <ul class=\"list-unstyled mb-0\">
  512.               <li class=\"d-flex gap-2\"><span class=\"text-success\">✔</span> Voyages en famille</li>
  513.               <li class=\"d-flex gap-2\"><span class=\"text-success\">✔</span> Lunes de miel</li>
  514.               <li class=\"d-flex gap-2\"><span class=\"text-success\">✔</span> Circuits découverte</li>
  515.             </ul>
  516.           </div>
  517.           <div class=\"col-12 col-sm-6\">
  518.             <ul class=\"list-unstyled mb-0\">
  519.               <li class=\"d-flex gap-2\"><span class=\"text-success\">✔</span> Roadtrips</li>
  520.               <li class=\"d-flex gap-2\"><span class=\"text-success\">✔</span> Croisières</li>
  521.               <li class=\"d-flex gap-2\"><span class=\"text-success\">✔</span> Voyages premium</li>
  522.             </ul>
  523.           </div>
  524.         </div>
  525.         <p class=\"text-muted mt-3 mb-0\">
  526.           Notre connaissance du marché antillais nous permet de proposer des itinéraires adaptés aux départs depuis la Guadeloupe.
  527.         </p>
  528.         <hr class=\"my-5\">
  529.         <h2 class=\"h3 text-success fw-bold mb-3\">Des voyages sur mesure depuis la Guadeloupe</h2>
  530.         <p class=\"text-muted\">
  531.           En tant qu’agence de voyage en Guadeloupe, nous construisons des voyages personnalisés selon votre budget, vos envies et votre calendrier.
  532.         </p>
  533.         <p class=\"text-muted mb-3\">
  534.           Que vous rêviez :
  535.         </p>
  536.         <ul class=\"text-muted\">
  537.           <li>d’un circuit en Amérique du Sud,</li>
  538.           <li>d’un séjour en Europe,</li>
  539.           <li>d’une croisière dans les Caraïbes,</li>
  540.           <li>ou d’un roadtrip aux États-Unis,</li>
  541.         </ul>
  542.         <p class=\"text-muted mb-0\">OTropik vous accompagne à chaque étape.</p>
  543.         <hr class=\"my-5\">
  544.         <h2 class=\"h3 text-success fw-bold mb-3\">Pourquoi choisir OTropik ?</h2>
  545.         <div class=\"row g-3\">
  546.           <div class=\"col-12 col-md-6\">
  547.             <div class=\"p-3 border rounded-4 h-100\">
  548.               <div class=\"fw-semibold\">✔️ Agence basée en Guadeloupe</div>
  549.               <div class=\"text-muted small\">Un accompagnement pensé pour les voyageurs antillais.</div>
  550.             </div>
  551.           </div>
  552.           <div class=\"col-12 col-md-6\">
  553.             <div class=\"p-3 border rounded-4 h-100\">
  554.               <div class=\"fw-semibold\">✔️ Conseillers spécialisés</div>
  555.               <div class=\"text-muted small\">Des recommandations selon votre style de voyage.</div>
  556.             </div>
  557.           </div>
  558.           <div class=\"col-12 col-md-6\">
  559.             <div class=\"p-3 border rounded-4 h-100\">
  560.               <div class=\"fw-semibold\">✔️ Voyages personnalisés</div>
  561.               <div class=\"text-muted small\">Budget, rythme, dates : on ajuste tout.</div>
  562.             </div>
  563.           </div>
  564.           <div class=\"col-12 col-md-6\">
  565.             <div class=\"p-3 border rounded-4 h-100\">
  566.               <div class=\"fw-semibold\">✔️ Assistance et suivi</div>
  567.               <div class=\"text-muted small\">Un interlocuteur, avant et pendant le départ.</div>
  568.             </div>
  569.           </div>
  570.           <div class=\"col-12\">
  571.             <div class=\"p-3 border rounded-4\">
  572.               <div class=\"fw-semibold\">✔️ Expertise destinations monde</div>
  573.               <div class=\"text-muted small\">Europe, Amérique, Asie, Caraïbes… et au-delà.</div>
  574.             </div>
  575.           </div>
  576.         </div>
  577.         <div class=\"mt-5 p-4 bg-light rounded-4\">
  578.           <p class=\"mb-2\">
  579.             Faire appel à OTropik, c’est choisir une agence de voyage en Guadeloupe qui comprend les besoins des voyageurs antillais
  580.             et propose un accompagnement sur mesure.
  581.           </p>
  582.           <div class=\"d-flex gap-2 flex-wrap\">
  583.             <a href=\"{{ path('o.contact')}}\" class=\"btn btn-primary rounded-pill px-4\">Contacter OTropik</a>
  584.             <a href=\"{{ path('o.devis') }}\" class=\"btn btn-outline-success rounded-pill px-4\">Demander un devis</a>
  585.           </div>
  586.         </div>
  587.       </div>
  588.       {# Sidebar (optionnel) #}
  589.       <div class=\"col-12 col-lg-4\">
  590.         <div class=\"sticky-top\" style=\"top: 90px;\">
  591.           <div class=\"card border-0 shadow-sm rounded-4\">
  592.             <div class=\"card-body\">
  593.               <h3 class=\"h5 fw-bold mb-3\">Besoin d’un conseil ?</h3>
  594.               <p class=\"text-muted mb-3\">Dis-nous ta destination, tes dates et ton budget : on te propose une idée de voyage.</p>
  595.               <a href=\"{{ path('o.devis') }}\" class=\"btn btn-primary w-100 rounded-pill\">Demander un devis</a>
  596.               <div class=\"small text-muted mt-2\">Réponse rapide • Conseillers basés en Guadeloupe</div>
  597.             </div>
  598.           </div>
  599.         </div>
  600.       </div>
  601.     </div>
  602.   </div>
  603. </section>
  604. {# -----------------------------
  605.   DÉCOUVREZ NOS OFFRES (CAROUSEL)
  606. ------------------------------ #}
  607. {% set destinations = [
  608.   { title:'Sainte-Lucie', subtitle:\"Escapade nature & plages\", img:'img/destinations/st-lucie.jpg', url:'#' },
  609.   { title:'États-Unis', subtitle:\"Roadtrip & grandes villes\", img:'img/destinations/usa.jpg', url:'#' },
  610.   { title:'République Dominicaine', subtitle:\"All inclusive & détente\", img:'img/destinations/rep-dom.jpg', url:'#' },
  611.   { title:'Europe', subtitle:\"City-break & circuits\", img:'img/destinations/europe.jpg', url:'#' },
  612.   { title:'Caraïbes', subtitle:\"Croisières & îles\", img:'img/destinations/caraibes.jpg', url:'#' },
  613.   { title:'Asie', subtitle:\"Dépaysement total\", img:'img/destinations/asie.jpg', url:'#' }
  614. ] %}
  615. <section class=\"py-5 bg-white\">
  616.   <div class=\"container\">
  617.     <div class=\"d-flex align-items-end justify-content-between gap-3 mb-3\">
  618.       <div>
  619.         <h2 class=\"h3 fw-bold mb-1\">Découvrez nos offres</h2>
  620.         <p class=\"text-muted mb-0\">Une sélection de destinations au départ des Antilles.</p>
  621.       </div>
  622.       <div class=\"d-none d-md-flex gap-2\">
  623.         <button class=\"btn btn-outline-secondary btn-sm rounded-pill\" type=\"button\" data-bs-target=\"#destCarousel\" data-bs-slide=\"prev\">
  624.           ‹
  625.         </button>
  626.         <button class=\"btn btn-outline-secondary btn-sm rounded-pill\" type=\"button\" data-bs-target=\"#destCarousel\" data-bs-slide=\"next\">
  627.           ›
  628.         </button>
  629.       </div>
  630.     </div>
  631.     <div id=\"destCarousel\"
  632.          class=\"carousel slide\"
  633.          data-bs-ride=\"carousel\"
  634.          data-bs-interval=\"4500\"
  635.          data-bs-touch=\"true\">
  636.       <div class=\"carousel-inner\">
  637.         {# 3 cards par slide (desktop), 2 (md), 1 (mobile) #}
  638.         {% for chunk in offers|batch(3, null) %}
  639.           <div class=\"carousel-item {% if loop.first %}active{% endif %}\">
  640.             <div class=\"row g-3\">
  641.               {% for o in chunk %}
  642.                 {% if o %}
  643.                   <div class=\"col-12 col-md-6 col-lg-4\">
  644.                      {% if o.type.id ==  1 %}
  645.                         <a href=\"{{ path('o.escapade.destination',{slug:o.slug})}}\" 
  646.                     {% elseif o.type.id == 2 %}
  647.                         <a href=\"{{ path('o.circuit.destination',{slug:o.slug})}}\" 
  648.                     {% elseif o.type.id == 3 %}
  649.                         <a href=\"{{ path('o.roadtrip.destination',{slug:o.slug})}}\"
  650.                     {% endif %}
  651.                        class=\"text-decoration-none\">
  652.                       <article class=\"card border-0 shadow-sm rounded-4 overflow-hidden h-100\">
  653.                         <div class=\"ratio ratio-4x3\">
  654.                           <img src=\"{{asset('img/offer/' ~ o.file  ~ '/' ~ o.slug  ~ '/' ~ o.img)}}\" alt=\"{{ o.file }}\"
  655.                                class=\"w-100 h-100 object-fit-cover\">
  656.                         </div>
  657.                         <div class=\"card-body\">
  658.                         <span>{{ o.type.name }}</span>
  659.                           <h3 class=\"h5  fw-bold mb-1\">{{ o.title }}</h3>
  660.                           <p class=\"text-muted mb-0\">{{ o.subtitle }}</p>
  661.                         </div>
  662.                       </article>
  663.                     </a>
  664.                   </div>
  665.                 {% endif %}
  666.               {% endfor %}
  667.             </div>
  668.           </div>
  669.         {% endfor %}
  670.       </div>
  671.       <button class=\"carousel-control-prev d-md-none\" type=\"button\" data-bs-target=\"#destCarousel\" data-bs-slide=\"prev\">
  672.         <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>
  673.         <span class=\"visually-hidden\">Précédent</span>
  674.       </button>
  675.       <button class=\"carousel-control-next d-md-none\" type=\"button\" data-bs-target=\"#destCarousel\" data-bs-slide=\"next\">
  676.         <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>
  677.         <span class=\"visually-hidden\">Suivant</span>
  678.       </button>
  679.     </div>
  680.     <div class=\"text-center mt-4\">
  681.       <a href=\"{#{ path('o.offers')|default('#') }#}\" class=\"btn btn-outline-success rounded-pill px-4\">
  682.         Voir toutes les offres
  683.       </a>
  684.     </div>
  685.   </div>
  686. </section>
  687. {% endblock %}
  688. ""default/agency.html.twig""/home/ladomitiyc/otropik/templates/default/agency.html.twig");
  689.     }
  690. }