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