var/cache/dev/twig/85/856fd67d27ed2d0e2759a1b0722f20d5.php line 51

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/croisiere-destination.html.twig */
  15. class __TwigTemplate_3e33220533a053d22ec887175cc525f8 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 2
  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/croisiere-destination.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/croisiere-destination.html.twig"));
  41.         $this->parent $this->loadTemplate("base.html.twig""default/croisiere-destination.html.twig"2);
  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 "O’Croisière - ";
  57.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'3$this->source); })()), "title", [], "any"falsefalsefalse3), "html"nulltrue);
  58.         yield " | O Tropik – Agence de voyage en Guadeloupe";
  59.         
  60.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  61.         
  62.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  63.         return; yield '';
  64.     }
  65.     // line 4
  66.     public function block_seo($context, array $blocks = [])
  67.     {
  68.         $macros $this->macros;
  69.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  70.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""seo"));
  71.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  72.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""seo"));
  73.         // line 5
  74.         yield " <meta name=\"description\" content=\"";
  75.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'5$this->source); })()), "description", [], "any"falsefalsefalse5), "html"nulltrue);
  76.         yield "\" >
  77. \t<meta property=\"og:title\" content=\"";
  78.         // line 7
  79.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'7$this->source); })()), "metaTitle", [], "any"falsefalsefalse7), "html"nulltrue);
  80.         yield "\" />
  81. \t<meta property=\"og:type\" content=\"Website\" />
  82. \t<meta property=\"og:description\" content=\"";
  83.         // line 9
  84.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'9$this->source); })()), "metaDescription", [], "any"falsefalsefalse9), "html"nulltrue);
  85.         yield "\" />
  86. \t<meta property=\"og:url\" content=\"";
  87.         // line 10
  88.         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.'10$this->source); })()), "request", [], "any"falsefalsefalse10), "uri", [], "any"falsefalsefalse10)), "html"nulltrue);
  89.         yield "\" />
  90. \t<meta property=\"og:image\" content=\"";
  91.         // line 11
  92.         yield "\" />
  93. \t<meta name =\"twitter:card\" content=\"summary_large_image\" />
  94. \t<meta name=\"twitter:title\" content=\"";
  95.         // line 14
  96.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'14$this->source); })()), "metaTitle", [], "any"falsefalsefalse14), "html"nulltrue);
  97.         yield "\">
  98. \t<meta name=\"twitter:description\" content=\"";
  99.         // line 15
  100.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'15$this->source); })()), "metaDescription", [], "any"falsefalsefalse15), "html"nulltrue);
  101.         yield "\">
  102. \t<meta name=\"twitter:image\" content=\"";
  103.         // line 16
  104.         yield "\">
  105. ";
  106.         
  107.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  108.         
  109.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  110.         return; yield '';
  111.     }
  112.     // line 18
  113.     public function block_body($context, array $blocks = [])
  114.     {
  115.         $macros $this->macros;
  116.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  117.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  118.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  119.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  120.         // line 20
  121.         yield "<section class=\"hero hero--offer hero--cruise is-animated position-relative text-white\">
  122.   <div class=\"hero__media ratio ratio-21x9\">
  123.     <img src=\"";
  124.         // line 22
  125.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(((((("img/offer/" CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'22$this->source); })()), "file", [], "any"falsefalsefalse22)) . "/") . CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'22$this->source); })()), "slug", [], "any"falsefalsefalse22)) . "/") . CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'22$this->source); })()), "img", [], "any"falsefalsefalse22))), "html"nulltrue);
  126.         yield "\"
  127.          alt=\"";
  128.         // line 23
  129.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'23$this->source); })()), "title", [], "any"falsefalsefalse23), "html"nulltrue);
  130.         yield "\"
  131.          class=\"hero__img w-100 h-100 object-fit-cover\">
  132.   </div>
  133.   <div class=\"hero__overlay\">
  134.     <div class=\"hero__card\">
  135.       <h1 class=\"hero__title display-5 fw-bold mb-2\">
  136.         ";
  137.         // line 30
  138.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'30$this->source); })()), "title", [], "any"falsefalsefalse30), "html"nulltrue);
  139.         yield "
  140.       </h1>
  141.       <p class=\"hero__subtitle lead mb-0\">
  142.         ";
  143.         // line 33
  144.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'33$this->source); })()), "subtitle", [], "any"falsefalsefalse33), "html"nulltrue);
  145.         yield "
  146.       </p>
  147.     </div>
  148.   </div>
  149. </section>
  150. <section class=\"container py-5\">
  151.   <div class=\"row g-4\">
  152.     ";
  153.         // line 42
  154.         yield "    <div class=\"col-12 col-lg-5\">
  155.       <div class=\"card border-0 shadow-sm rounded-4\">
  156.         <div class=\"ratio ratio-4x3 rounded-top-4 overflow-hidden\">
  157.           <div id=\"circuitCarousel\"
  158.                class=\"carousel slide rounded-4 overflow-hidden shadow-sm w-100\"
  159.                data-bs-ride=\"carousel\"
  160.                data-bs-interval=\"5000\"
  161.                data-bs-pause=\"hover\"
  162.                data-bs-touch=\"true\"
  163.                aria-label=\"Galerie circuit\">
  164.             <div class=\"carousel-inner\">
  165.               ";
  166.         // line 54
  167.         $context['_parent'] = $context;
  168.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["photoItinerary"]) || array_key_exists("photoItinerary"$context) ? $context["photoItinerary"] : (function () { throw new RuntimeError('Variable "photoItinerary" does not exist.'54$this->source); })()));
  169.         $context['loop'] = [
  170.           'parent' => $context['_parent'],
  171.           'index0' => 0,
  172.           'index'  => 1,
  173.           'first'  => true,
  174.         ];
  175.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  176.             $length count($context['_seq']);
  177.             $context['loop']['revindex0'] = $length 1;
  178.             $context['loop']['revindex'] = $length;
  179.             $context['loop']['length'] = $length;
  180.             $context['loop']['last'] = === $length;
  181.         }
  182.         foreach ($context['_seq'] as $context["_key"] => $context["p"]) {
  183.             // line 55
  184.             yield "                <div class=\"carousel-item ";
  185.             if (CoreExtension::getAttribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse55)) {
  186.                 yield "active";
  187.             }
  188.             yield "\">
  189.                   <div class=\"ratio ratio-4x3\">
  190.                     <img src=\"";
  191.             // line 57
  192.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(((((("img/" CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["p"], "offer", [], "any"falsefalsefalse57), "file", [], "any"falsefalsefalse57)) . "/") . CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["p"], "offer", [], "any"falsefalsefalse57), "slug", [], "any"falsefalsefalse57)) . "/itinerary/") . CoreExtension::getAttribute($this->env$this->source$context["p"], "img", [], "any"falsefalsefalse57))), "html"nulltrue);
  193.             yield "\" class=\"d-block w-100 h-100 object-fit-cover\" alt=\"Photo circuit ";
  194.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse57), "html"nulltrue);
  195.             yield "\">
  196.                   </div>
  197.                 </div>
  198.               ";
  199.             ++$context['loop']['index0'];
  200.             ++$context['loop']['index'];
  201.             $context['loop']['first'] = false;
  202.             if (isset($context['loop']['length'])) {
  203.                 --$context['loop']['revindex0'];
  204.                 --$context['loop']['revindex'];
  205.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  206.             }
  207.         }
  208.         $_parent $context['_parent'];
  209.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['p'], $context['_parent'], $context['loop']);
  210.         $context array_intersect_key($context$_parent) + $_parent;
  211.         // line 61
  212.         yield "            </div>
  213.              <button class=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#circuitCarousel\" data-bs-slide=\"prev\">
  214.               <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>
  215.               <span class=\"visually-hidden\">Précédent</span>
  216.             </button>
  217.             <button class=\"carousel-control-next\" type=\"button\" data-bs-target=\"#circuitCarousel\" data-bs-slide=\"next\">
  218.               <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>
  219.               <span class=\"visually-hidden\">Suivant</span>
  220.             </button>
  221.             <div class=\"carousel-indicators\">
  222.               ";
  223.         // line 72
  224.         $context['_parent'] = $context;
  225.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["photoItinerary"]) || array_key_exists("photoItinerary"$context) ? $context["photoItinerary"] : (function () { throw new RuntimeError('Variable "photoItinerary" does not exist.'72$this->source); })()));
  226.         $context['loop'] = [
  227.           'parent' => $context['_parent'],
  228.           'index0' => 0,
  229.           'index'  => 1,
  230.           'first'  => true,
  231.         ];
  232.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  233.             $length count($context['_seq']);
  234.             $context['loop']['revindex0'] = $length 1;
  235.             $context['loop']['revindex'] = $length;
  236.             $context['loop']['length'] = $length;
  237.             $context['loop']['last'] = === $length;
  238.         }
  239.         foreach ($context['_seq'] as $context["_key"] => $context["p"]) {
  240.             // line 73
  241.             yield "                <button type=\"button\"
  242.                         data-bs-target=\"#circuitCarousel\"
  243.                         data-bs-slide-to=\"";
  244.             // line 75
  245.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsefalse75), "html"nulltrue);
  246.             yield "\"
  247.                         class=\"";
  248.             // line 76
  249.             if (CoreExtension::getAttribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse76)) {
  250.                 yield "active";
  251.             }
  252.             yield "\"
  253.                         aria-current=\"";
  254.             // line 77
  255.             yield ((CoreExtension::getAttribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse77)) ? ("true") : ("false"));
  256.             yield "\"
  257.                         aria-label=\"Slide ";
  258.             // line 78
  259.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse78), "html"nulltrue);
  260.             yield "\"></button>
  261.               ";
  262.             ++$context['loop']['index0'];
  263.             ++$context['loop']['index'];
  264.             $context['loop']['first'] = false;
  265.             if (isset($context['loop']['length'])) {
  266.                 --$context['loop']['revindex0'];
  267.                 --$context['loop']['revindex'];
  268.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  269.             }
  270.         }
  271.         $_parent $context['_parent'];
  272.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['p'], $context['_parent'], $context['loop']);
  273.         $context array_intersect_key($context$_parent) + $_parent;
  274.         // line 80
  275.         yield "            </div>
  276.           </div>
  277.         </div>
  278.         <div class=\"card-body\">
  279.           <h2 class=\"h4 txt-ot-blue fw-bold mb-1\">Les atouts de la croisiere</h2>
  280.           <div class=\"d-flex flex-wrap gap-2 mb-2\">
  281.           ";
  282.         // line 87
  283.         $context['_parent'] = $context;
  284.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["highlight"]) || array_key_exists("highlight"$context) ? $context["highlight"] : (function () { throw new RuntimeError('Variable "highlight" does not exist.'87$this->source); })()));
  285.         foreach ($context['_seq'] as $context["_key"] => $context["h"]) {
  286.             yield "<span class=\"badge rounded-pill bg-success-subtle text-success-emphasis\">";
  287.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["h"], "title", [], "any"falsefalsefalse87), "html"nulltrue);
  288.             yield "</span>";
  289.         }
  290.         $_parent $context['_parent'];
  291.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['h'], $context['_parent'], $context['loop']);
  292.         $context array_intersect_key($context$_parent) + $_parent;
  293.         yield 
  294.           </div>
  295.          ";
  296.         // line 95
  297.         yield "        </div>
  298.       </div>
  299.       <div class=\"card border-0 shadow-sm rounded-4 mt-4\">
  300.         <div class=\"card-body\">
  301.           <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Inclus</h3>
  302.           <ul class=\"list-unstyled small m-0\">
  303.           ";
  304.         // line 102
  305.         $context['_parent'] = $context;
  306.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'102$this->source); })()), "included", [], "any"falsefalsefalse102), "
  307. "));
  308.         foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  309.             // line 103
  310.             yield "              <li class=\"mb-1\">✔️ ";
  311.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  312.             yield "</li>
  313.             ";
  314.         }
  315.         $_parent $context['_parent'];
  316.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  317.         $context array_intersect_key($context$_parent) + $_parent;
  318.         // line 105
  319.         yield "          </ul>
  320.           <hr>
  321.           <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Non inclus</h3>
  322.           <ul class=\"list-unstyled m-0\">
  323.            ";
  324.         // line 109
  325.         $context['_parent'] = $context;
  326.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'109$this->source); })()), "notIncluded", [], "any"falsefalsefalse109), "
  327. "));
  328.         foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  329.             // line 110
  330.             yield "              <li class=\"mb-1\">- ";
  331.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  332.             yield "</li>
  333.             ";
  334.         }
  335.         $_parent $context['_parent'];
  336.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  337.         $context array_intersect_key($context$_parent) + $_parent;
  338.         // line 112
  339.         yield "          </ul>
  340.         </div>
  341.       </div>
  342.       <div class=\"card border-0 shadow-sm rounded-4 mt-4\">
  343.         <div class=\"card-body small\">
  344.          <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Formalités</h3>
  345.            <ul class=\"list-unstyled m-0\">
  346.            ";
  347.         // line 120
  348.         $context['_parent'] = $context;
  349.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'120$this->source); })()), "formalities", [], "any"falsefalsefalse120), "
  350. "));
  351.         foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  352.             // line 121
  353.             yield "              <li class=\"mb-1\">✔️ ";
  354.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  355.             yield "</li>
  356.             ";
  357.         }
  358.         $_parent $context['_parent'];
  359.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  360.         $context array_intersect_key($context$_parent) + $_parent;
  361.         // line 123
  362.         yield "          </ul>
  363.           <hr>
  364.            <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Modalités de paiement</h3>
  365.             <ul class=\"list-unstyled m-0\">
  366.          ";
  367.         // line 127
  368.         $context['_parent'] = $context;
  369.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'127$this->source); })()), "paymentMethod", [], "any"falsefalsefalse127), "
  370. "));
  371.         foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  372.             // line 128
  373.             yield "              <li class=\"mb-1\">✔️ ";
  374.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  375.             yield "</li>
  376.             ";
  377.         }
  378.         $_parent $context['_parent'];
  379.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  380.         $context array_intersect_key($context$_parent) + $_parent;
  381.         // line 130
  382.         yield "          </ul>
  383.         </div>
  384.       </div>
  385.     </div>
  386.     ";
  387.         // line 136
  388.         yield "    <div class=\"col-12 col-lg-7\">
  389.   <!-- Ligne 1 : Durée / Vols / Tarif -->
  390.   <div class=\"row g-3 mb-4\">
  391.     <!-- Durée -->
  392.     <div class=\"col-12 col-md-4\">
  393.       <div class=\"card rounded-4 shadow-sm h-100\">
  394.         <div class=\"card-body\">
  395.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Durée</h6>
  396.           <p class=\"mb-0 text-muted\">";
  397.         // line 146
  398.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'146$this->source); })()), "summaryDuration", [], "any"falsefalsefalse146), "html"nulltrue);
  399.         yield "</p>
  400.         </div>
  401.       </div>
  402.     </div>
  403.     <!-- Vols -->
  404.     <div class=\"col-12 col-md-4\">
  405.       <div class=\"card rounded-4 shadow-sm h-100\">
  406.         <div class=\"card-body\">
  407.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Vols</h6>
  408.           <ul class=\"mb-0 ps-3\">
  409.             ";
  410.         // line 157
  411.         $context['_parent'] = $context;
  412.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'157$this->source); })()), "summaryFlights", [], "any"falsefalsefalse157), "
  413. "));
  414.         foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  415.             // line 158
  416.             yield "              ";
  417.             if ((Twig\Extension\CoreExtension::trim($context["line"]) != "")) {
  418.                 // line 159
  419.                 yield "                <li>";
  420.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  421.                 yield "</li>
  422.               ";
  423.             }
  424.             // line 161
  425.             yield "            ";
  426.         }
  427.         $_parent $context['_parent'];
  428.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  429.         $context array_intersect_key($context$_parent) + $_parent;
  430.         // line 162
  431.         yield "          </ul>
  432.         </div>
  433.       </div>
  434.     </div>
  435.     <!-- Tarif -->
  436.     <div class=\"col-12 col-md-4\">
  437.       <div class=\"card rounded-4 shadow-sm h-100\">
  438.         <div class=\"card-body\">
  439.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Tarif à partir de</h6>
  440.           <p class=\"mb-0 text-muted\">";
  441.         // line 172
  442.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'172$this->source); })()), "priceFrom", [], "any"falsefalsefalse172), "html"nulltrue);
  443.         yield " €</p>
  444.         </div>
  445.       </div>
  446.     </div>
  447.   </div>
  448.   <!-- Ligne 2 : Rythme -->
  449.   <div class=\"row g-3 mb-4\">
  450.     <div class=\"col-12\">
  451.       <div class=\"card rounded-4 shadow-sm h-100\">
  452.         <div class=\"card-body\">
  453.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Rythme</h6>
  454.           <ul class=\"mb-0 ps-3\">
  455.             ";
  456.         // line 186
  457.         $context['_parent'] = $context;
  458.         $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'186$this->source); })()), "summaryPaceMeals", [], "any"falsefalsefalse186), "
  459. "));
  460.         foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  461.             // line 187
  462.             yield "              ";
  463.             if ((Twig\Extension\CoreExtension::trim($context["line"]) != "")) {
  464.                 // line 188
  465.                 yield "                <li>";
  466.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  467.                 yield "</li>
  468.               ";
  469.             }
  470.             // line 190
  471.             yield "            ";
  472.         }
  473.         $_parent $context['_parent'];
  474.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  475.         $context array_intersect_key($context$_parent) + $_parent;
  476.         // line 191
  477.         yield "          </ul>
  478.         </div>
  479.       </div>
  480.     </div>
  481. </div>
  482.       <div class=\"card border-0 shadow-sm rounded-4 mb-4\">
  483.         <div class=\"card-body\">
  484.          <h2 class=\"h5 txt-ot-blue fw-bold mb-3\">Itinéraire — jour par jour</h2>
  485.           <div class=\"list-group list-group-flush\">
  486.             ";
  487.         // line 202
  488.         $context['_parent'] = $context;
  489.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["itinerary"]) || array_key_exists("itinerary"$context) ? $context["itinerary"] : (function () { throw new RuntimeError('Variable "itinerary" does not exist.'202$this->source); })()));
  490.         $context['loop'] = [
  491.           'parent' => $context['_parent'],
  492.           'index0' => 0,
  493.           'index'  => 1,
  494.           'first'  => true,
  495.         ];
  496.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  497.             $length count($context['_seq']);
  498.             $context['loop']['revindex0'] = $length 1;
  499.             $context['loop']['revindex'] = $length;
  500.             $context['loop']['length'] = $length;
  501.             $context['loop']['last'] = === $length;
  502.         }
  503.         foreach ($context['_seq'] as $context["_key"] => $context["it"]) {
  504.             // line 203
  505.             yield "              <div class=\"list-group-item px-0\">
  506.                 <button class=\"btn w-100 d-flex justify-content-between align-items-center text-start\" data-bs-toggle=\"collapse\" data-bs-target=\"#day";
  507.             // line 204
  508.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse204), "html"nulltrue);
  509.             yield "\" aria-expanded=\"false\">
  510.                   <span class=\"fw-bold\">Jour ";
  511.             // line 205
  512.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse205), "html"nulltrue);
  513.             yield " - ";
  514.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["it"], "title", [], "any"falsefalsefalse205), "html"nulltrue);
  515.             if (CoreExtension::getAttribute($this->env$this->source$context["it"], "kmLabel", [], "any"falsefalsefalse205)) {
  516.                 yield " <span class=\"text-muted fw-normal\"> (";
  517.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["it"], "kmLabel", [], "any"falsefalsefalse205), "html"nulltrue);
  518.                 yield ") km</span>";
  519.             }
  520.             yield "</span>
  521.                   <i class=\"bi bi-chevron-down\"></i>
  522.                 </button>
  523.                 <div id=\"day";
  524.             // line 208
  525.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse208), "html"nulltrue);
  526.             yield "\" class=\"collapse mt-2\">
  527.                   <p class=\"small text-muted mb-0\">";
  528.             // line 209
  529.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["it"], "details", [], "any"falsefalsefalse209), "html"nulltrue);
  530.             yield "</p>
  531.                 </div>
  532.               </div>
  533.             ";
  534.             ++$context['loop']['index0'];
  535.             ++$context['loop']['index'];
  536.             $context['loop']['first'] = false;
  537.             if (isset($context['loop']['length'])) {
  538.                 --$context['loop']['revindex0'];
  539.                 --$context['loop']['revindex'];
  540.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  541.             }
  542.         }
  543.         $_parent $context['_parent'];
  544.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['it'], $context['_parent'], $context['loop']);
  545.         $context array_intersect_key($context$_parent) + $_parent;
  546.         // line 213
  547.         yield "          </div>
  548.          ";
  549.         // line 217
  550.         yield "        </div>
  551.       </div>
  552.   ";
  553.         // line 219
  554.         if ((isset($context["hebergementOffer"]) || array_key_exists("hebergementOffer"$context) ? $context["hebergementOffer"] : (function () { throw new RuntimeError('Variable "hebergementOffer" does not exist.'219$this->source); })())) {
  555.             // line 223
  556.             yield "    <h3 class=\"h5 txt-ot-blue fw-bold mt-3 mb-3\">Hébergements prévus (ou similaires)</h3>
  557.     <ul class=\"list-group\">
  558.       ";
  559.             // line 225
  560.             $context['_parent'] = $context;
  561.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["hebergementOffer"]) || array_key_exists("hebergementOffer"$context) ? $context["hebergementOffer"] : (function () { throw new RuntimeError('Variable "hebergementOffer" does not exist.'225$this->source); })()));
  562.             foreach ($context['_seq'] as $context["_key"] => $context["h"]) {
  563.                 yield "<li class=\"list-group-item\">";
  564.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["h"], "name", [], "any"falsefalsefalse225), "html"nulltrue);
  565.                 yield "</li>";
  566.             }
  567.             $_parent $context['_parent'];
  568.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['h'], $context['_parent'], $context['loop']);
  569.             $context array_intersect_key($context$_parent) + $_parent;
  570.             // line 226
  571.             yield "    </ul>
  572. ";
  573.         }
  574.         // line 228
  575.         yield "
  576. ";
  577.         // line 229
  578.         if ((isset($context["flight"]) || array_key_exists("flight"$context) ? $context["flight"] : (function () { throw new RuntimeError('Variable "flight" does not exist.'229$this->source); })())) {
  579.             // line 233
  580.             yield "    <h3 class=\"h5 txt-ot-blue fw-bold mt-3 mb-3\">Vols & horaires (indicatifs)</h2>
  581.     <div class=\"row g-4\">
  582.       <div class=\"col-12 col-lg-6\">
  583.         <div class=\"card border-0 shadow-sm rounded-4 h-100\">
  584.           <div class=\"card-body\">
  585.             <h3 class=\"h6 fw-bold mb-2\">Aller</h3>
  586.             <ul class=\"small mb-0\">
  587.             ";
  588.             // line 240
  589.             $context['_parent'] = $context;
  590.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["flight"]) || array_key_exists("flight"$context) ? $context["flight"] : (function () { throw new RuntimeError('Variable "flight" does not exist.'240$this->source); })()));
  591.             foreach ($context['_seq'] as $context["_key"] => $context["f"]) {
  592.                 // line 241
  593.                 yield "              ";
  594.                 if ((CoreExtension::getAttribute($this->env$this->source$context["f"], "type", [], "any"falsefalsefalse241) == "1")) {
  595.                     // line 242
  596.                     yield "                <li>";
  597.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "departureCity", [], "any"falsefalsefalse242), "html"nulltrue);
  598.                     yield " → ";
  599.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "departureCity", [], "any"falsefalsefalse242), "html"nulltrue);
  600.                     yield "  ";
  601.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "departureTime", [], "any"falsefalsefalse242), "html"nulltrue);
  602.                     yield " / ";
  603.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "arrivalTime", [], "any"falsefalsefalse242), "html"nulltrue);
  604.                     yield " </li>
  605.               ";
  606.                 }
  607.                 // line 244
  608.                 yield "            ";
  609.             }
  610.             $_parent $context['_parent'];
  611.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['f'], $context['_parent'], $context['loop']);
  612.             $context array_intersect_key($context$_parent) + $_parent;
  613.             // line 245
  614.             yield "            </ul>
  615.           </div>
  616.         </div>
  617.       </div>
  618.       <div class=\"col-12 col-lg-6\">
  619.         <div class=\"card border-0 shadow-sm rounded-4 h-100\">
  620.           <div class=\"card-body\">
  621.             <h3 class=\"h6 fw-bold mb-2\">Retour</h3>
  622.             <ul class=\"small mb-0\">
  623.             ";
  624.             // line 254
  625.             $context['_parent'] = $context;
  626.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["flight"]) || array_key_exists("flight"$context) ? $context["flight"] : (function () { throw new RuntimeError('Variable "flight" does not exist.'254$this->source); })()));
  627.             foreach ($context['_seq'] as $context["_key"] => $context["f"]) {
  628.                 // line 255
  629.                 yield "              ";
  630.                 if ((CoreExtension::getAttribute($this->env$this->source$context["f"], "type", [], "any"falsefalsefalse255) == "2")) {
  631.                     // line 256
  632.                     yield "                <li>";
  633.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "departureCity", [], "any"falsefalsefalse256), "html"nulltrue);
  634.                     yield " → ";
  635.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "departureCity", [], "any"falsefalsefalse256), "html"nulltrue);
  636.                     yield "  ";
  637.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "departureTime", [], "any"falsefalsefalse256), "html"nulltrue);
  638.                     yield " / ";
  639.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "arrivalTime", [], "any"falsefalsefalse256), "html"nulltrue);
  640.                     yield " </li>
  641.               ";
  642.                 }
  643.                 // line 258
  644.                 yield "            ";
  645.             }
  646.             $_parent $context['_parent'];
  647.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['f'], $context['_parent'], $context['loop']);
  648.             $context array_intersect_key($context$_parent) + $_parent;
  649.             // line 259
  650.             yield "            </ul>
  651.           </div>
  652.         </div>
  653.       </div>
  654.     </div>
  655.     <p class=\"small text-muted mt-3 mb-0\">Horaires et compagnies susceptibles d’évolution. À confirmer à l’émission des billets.</p>
  656. ";
  657.         }
  658.         // line 266
  659.         yield "    ";
  660.         // line 294
  661.         yield "    </div>
  662.   </div>
  663. </section>
  664. ";
  665.         
  666.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  667.         
  668.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  669.         return; yield '';
  670.     }
  671.     /**
  672.      * @codeCoverageIgnore
  673.      */
  674.     public function getTemplateName()
  675.     {
  676.         return "default/croisiere-destination.html.twig";
  677.     }
  678.     /**
  679.      * @codeCoverageIgnore
  680.      */
  681.     public function isTraitable()
  682.     {
  683.         return false;
  684.     }
  685.     /**
  686.      * @codeCoverageIgnore
  687.      */
  688.     public function getDebugInfo()
  689.     {
  690.         return array (  703 => 294,  701 => 266,  692 => 259,  686 => 258,  674 => 256,  671 => 255,  667 => 254,  656 => 245,  650 => 244,  638 => 242,  635 => 241,  631 => 240,  622 => 233,  620 => 229,  617 => 228,  613 => 226,  602 => 225,  598 => 223,  596 => 219,  592 => 217,  589 => 213,  571 => 209,  567 => 208,  554 => 205,  550 => 204,  547 => 203,  530 => 202,  517 => 191,  511 => 190,  505 => 188,  502 => 187,  497 => 186,  480 => 172,  468 => 162,  462 => 161,  456 => 159,  453 => 158,  448 => 157,  434 => 146,  422 => 136,  415 => 130,  406 => 128,  401 => 127,  395 => 123,  386 => 121,  381 => 120,  371 => 112,  362 => 110,  357 => 109,  351 => 105,  342 => 103,  337 => 102,  328 => 95,  314 => 87,  305 => 80,  289 => 78,  285 => 77,  279 => 76,  275 => 75,  271 => 73,  254 => 72,  241 => 61,  221 => 57,  213 => 55,  196 => 54,  182 => 42,  171 => 33,  165 => 30,  155 => 23,  151 => 22,  147 => 20,  137 => 18,  125 => 16,  121 => 15,  117 => 14,  112 => 11,  108 => 10,  104 => 9,  99 => 7,  93 => 5,  83 => 4,  61 => 3,  38 => 2,);
  691.     }
  692.     public function getSourceContext()
  693.     {
  694.         return new Source("{# templates/croisiere/show.html.twig #}
  695. {% extends 'base.html.twig' %}
  696. {% block title %}O’Croisière - {{offer.title}} | O Tropik – Agence de voyage en Guadeloupe{% endblock %}
  697. {% block seo %}
  698.  <meta name=\"description\" content=\"{{offer.description}}\" >
  699. \t<meta property=\"og:title\" content=\"{{offer.metaTitle}}\" />
  700. \t<meta property=\"og:type\" content=\"Website\" />
  701. \t<meta property=\"og:description\" content=\"{{offer.metaDescription}}\" />
  702. \t<meta property=\"og:url\" content=\"{{absolute_url( app.request.uri)}}\" />
  703. \t<meta property=\"og:image\" content=\"{#{asset('img/asset/cardimg-fb.jpg')}#}\" />
  704. \t<meta name =\"twitter:card\" content=\"summary_large_image\" />
  705. \t<meta name=\"twitter:title\" content=\"{{offer.metaTitle}}\">
  706. \t<meta name=\"twitter:description\" content=\"{{offer.metaDescription}}\">
  707. \t<meta name=\"twitter:image\" content=\"{#{asset('img/asset/cardimg-fb.jpg')}#}\">
  708. {% endblock %}
  709. {% block body %}
  710. {# HERO #}
  711. <section class=\"hero hero--offer hero--cruise is-animated position-relative text-white\">
  712.   <div class=\"hero__media ratio ratio-21x9\">
  713.     <img src=\"{{ asset('img/offer/' ~ offer.file ~ '/' ~ offer.slug ~ '/' ~ offer.img) }}\"
  714.          alt=\"{{ offer.title }}\"
  715.          class=\"hero__img w-100 h-100 object-fit-cover\">
  716.   </div>
  717.   <div class=\"hero__overlay\">
  718.     <div class=\"hero__card\">
  719.       <h1 class=\"hero__title display-5 fw-bold mb-2\">
  720.         {{ offer.title }}
  721.       </h1>
  722.       <p class=\"hero__subtitle lead mb-0\">
  723.         {{ offer.subtitle }}
  724.       </p>
  725.     </div>
  726.   </div>
  727. </section>
  728. <section class=\"container py-5\">
  729.   <div class=\"row g-4\">
  730.     {# NAVIRE + META + BLOCS TEXTE #}
  731.     <div class=\"col-12 col-lg-5\">
  732.       <div class=\"card border-0 shadow-sm rounded-4\">
  733.         <div class=\"ratio ratio-4x3 rounded-top-4 overflow-hidden\">
  734.           <div id=\"circuitCarousel\"
  735.                class=\"carousel slide rounded-4 overflow-hidden shadow-sm w-100\"
  736.                data-bs-ride=\"carousel\"
  737.                data-bs-interval=\"5000\"
  738.                data-bs-pause=\"hover\"
  739.                data-bs-touch=\"true\"
  740.                aria-label=\"Galerie circuit\">
  741.             <div class=\"carousel-inner\">
  742.               {% for p in photoItinerary %}
  743.                 <div class=\"carousel-item {% if loop.first %}active{% endif %}\">
  744.                   <div class=\"ratio ratio-4x3\">
  745.                     <img src=\"{{asset('img/' ~ p.offer.file  ~ '/' ~ p.offer.slug  ~ '/itinerary/' ~ p.img)}}\" class=\"d-block w-100 h-100 object-fit-cover\" alt=\"Photo circuit {{ loop.index }}\">
  746.                   </div>
  747.                 </div>
  748.               {% endfor %}
  749.             </div>
  750.              <button class=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#circuitCarousel\" data-bs-slide=\"prev\">
  751.               <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>
  752.               <span class=\"visually-hidden\">Précédent</span>
  753.             </button>
  754.             <button class=\"carousel-control-next\" type=\"button\" data-bs-target=\"#circuitCarousel\" data-bs-slide=\"next\">
  755.               <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>
  756.               <span class=\"visually-hidden\">Suivant</span>
  757.             </button>
  758.             <div class=\"carousel-indicators\">
  759.               {% for p in photoItinerary %}
  760.                 <button type=\"button\"
  761.                         data-bs-target=\"#circuitCarousel\"
  762.                         data-bs-slide-to=\"{{ loop.index0 }}\"
  763.                         class=\"{% if loop.first %}active{% endif %}\"
  764.                         aria-current=\"{{ loop.first ? 'true' : 'false' }}\"
  765.                         aria-label=\"Slide {{ loop.index }}\"></button>
  766.               {% endfor %}
  767.             </div>
  768.           </div>
  769.         </div>
  770.         <div class=\"card-body\">
  771.           <h2 class=\"h4 txt-ot-blue fw-bold mb-1\">Les atouts de la croisiere</h2>
  772.           <div class=\"d-flex flex-wrap gap-2 mb-2\">
  773.           {% for h in highlight %}<span class=\"badge rounded-pill bg-success-subtle text-success-emphasis\">{{ h.title }}</span>{% endfor %} 
  774.           </div>
  775.          {# <ul class=\"small text-muted list-unstyled mb-0\">
  776.            <li><strong>Opérateur :</strong> {{ program.operator }} fly</li>
  777.             <li><strong>Embarquement :</strong> {{ program.embark_port }} aéoport</li>
  778.             <li><strong>Débarquement :</strong> {{ program.disembark_port }} wesh</li>
  779.             <li><strong>Départ aéroport :</strong> {{ program.home_airport }} aeoport</li> 
  780.           </ul> #}
  781.         </div>
  782.       </div>
  783.       <div class=\"card border-0 shadow-sm rounded-4 mt-4\">
  784.         <div class=\"card-body\">
  785.           <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Inclus</h3>
  786.           <ul class=\"list-unstyled small m-0\">
  787.           {% for line in offer.included|split(\"\\n\") %}
  788.               <li class=\"mb-1\">✔️ {{ line }}</li>
  789.             {% endfor %}
  790.           </ul>
  791.           <hr>
  792.           <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Non inclus</h3>
  793.           <ul class=\"list-unstyled m-0\">
  794.            {% for line in offer.notIncluded|split(\"\\n\") %}
  795.               <li class=\"mb-1\">- {{ line }}</li>
  796.             {% endfor %}
  797.           </ul>
  798.         </div>
  799.       </div>
  800.       <div class=\"card border-0 shadow-sm rounded-4 mt-4\">
  801.         <div class=\"card-body small\">
  802.          <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Formalités</h3>
  803.            <ul class=\"list-unstyled m-0\">
  804.            {% for line in offer.formalities|split(\"\\n\") %}
  805.               <li class=\"mb-1\">✔️ {{ line }}</li>
  806.             {% endfor %}
  807.           </ul>
  808.           <hr>
  809.            <h3 class=\"h6 txt-ot-blue fw-bold mb-2\">Modalités de paiement</h3>
  810.             <ul class=\"list-unstyled m-0\">
  811.          {% for line in offer.paymentMethod|split(\"\\n\") %}
  812.               <li class=\"mb-1\">✔️ {{ line }}</li>
  813.             {% endfor %}
  814.           </ul>
  815.         </div>
  816.       </div>
  817.     </div>
  818.     {# ITINÉRAIRE + DATES/PRIX #}
  819.     <div class=\"col-12 col-lg-7\">
  820.   <!-- Ligne 1 : Durée / Vols / Tarif -->
  821.   <div class=\"row g-3 mb-4\">
  822.     <!-- Durée -->
  823.     <div class=\"col-12 col-md-4\">
  824.       <div class=\"card rounded-4 shadow-sm h-100\">
  825.         <div class=\"card-body\">
  826.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Durée</h6>
  827.           <p class=\"mb-0 text-muted\">{{ offer.summaryDuration }}</p>
  828.         </div>
  829.       </div>
  830.     </div>
  831.     <!-- Vols -->
  832.     <div class=\"col-12 col-md-4\">
  833.       <div class=\"card rounded-4 shadow-sm h-100\">
  834.         <div class=\"card-body\">
  835.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Vols</h6>
  836.           <ul class=\"mb-0 ps-3\">
  837.             {% for line in offer.summaryFlights|split(\"\\n\") %}
  838.               {% if line|trim != '' %}
  839.                 <li>{{ line }}</li>
  840.               {% endif %}
  841.             {% endfor %}
  842.           </ul>
  843.         </div>
  844.       </div>
  845.     </div>
  846.     <!-- Tarif -->
  847.     <div class=\"col-12 col-md-4\">
  848.       <div class=\"card rounded-4 shadow-sm h-100\">
  849.         <div class=\"card-body\">
  850.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Tarif à partir de</h6>
  851.           <p class=\"mb-0 text-muted\">{{ offer.priceFrom }} €</p>
  852.         </div>
  853.       </div>
  854.     </div>
  855.   </div>
  856.   <!-- Ligne 2 : Rythme -->
  857.   <div class=\"row g-3 mb-4\">
  858.     <div class=\"col-12\">
  859.       <div class=\"card rounded-4 shadow-sm h-100\">
  860.         <div class=\"card-body\">
  861.           <h6 class=\"fw-bold txt-ot-blue mb-1\">Rythme</h6>
  862.           <ul class=\"mb-0 ps-3\">
  863.             {% for line in offer.summaryPaceMeals|split(\"\\n\") %}
  864.               {% if line|trim != '' %}
  865.                 <li>{{ line }}</li>
  866.               {% endif %}
  867.             {% endfor %}
  868.           </ul>
  869.         </div>
  870.       </div>
  871.     </div>
  872. </div>
  873.       <div class=\"card border-0 shadow-sm rounded-4 mb-4\">
  874.         <div class=\"card-body\">
  875.          <h2 class=\"h5 txt-ot-blue fw-bold mb-3\">Itinéraire — jour par jour</h2>
  876.           <div class=\"list-group list-group-flush\">
  877.             {% for it in itinerary %}
  878.               <div class=\"list-group-item px-0\">
  879.                 <button class=\"btn w-100 d-flex justify-content-between align-items-center text-start\" data-bs-toggle=\"collapse\" data-bs-target=\"#day{{ loop.index }}\" aria-expanded=\"false\">
  880.                   <span class=\"fw-bold\">Jour {{loop.index}} - {{it.title }}{% if it.kmLabel %} <span class=\"text-muted fw-normal\"> ({{ it.kmLabel }}) km</span>{% endif %}</span>
  881.                   <i class=\"bi bi-chevron-down\"></i>
  882.                 </button>
  883.                 <div id=\"day{{ loop.index }}\" class=\"collapse mt-2\">
  884.                   <p class=\"small text-muted mb-0\">{{ it.details }}</p>
  885.                 </div>
  886.               </div>
  887.             {% endfor %}
  888.           </div>
  889.          {# {% if program.map_image %}
  890.             <img src=\"{{ asset(program.map_image) }}\" class=\"img-fluid rounded-3 mt-3\" alt=\"Carte\">
  891.           {% endif %} #}
  892.         </div>
  893.       </div>
  894.   {% if hebergementOffer %}
  895. {# =====================================================
  896.    5) HÔTELS — liste ou tableau simple
  897. ===================================================== #}
  898.     <h3 class=\"h5 txt-ot-blue fw-bold mt-3 mb-3\">Hébergements prévus (ou similaires)</h3>
  899.     <ul class=\"list-group\">
  900.       {% for h in hebergementOffer %}<li class=\"list-group-item\">{{ h.name }}</li>{% endfor %}
  901.     </ul>
  902. {% endif %}
  903. {% if flight %}
  904. {# =====================================================
  905.    7) VOLS & HORAIRES — bloc détaillé
  906. ===================================================== #}
  907.     <h3 class=\"h5 txt-ot-blue fw-bold mt-3 mb-3\">Vols & horaires (indicatifs)</h2>
  908.     <div class=\"row g-4\">
  909.       <div class=\"col-12 col-lg-6\">
  910.         <div class=\"card border-0 shadow-sm rounded-4 h-100\">
  911.           <div class=\"card-body\">
  912.             <h3 class=\"h6 fw-bold mb-2\">Aller</h3>
  913.             <ul class=\"small mb-0\">
  914.             {% for f in flight %}
  915.               {% if f.type == '1' %}
  916.                 <li>{{ f.departureCity }} → {{ f.departureCity }}  {{f.departureTime}} / {{f.arrivalTime}} </li>
  917.               {% endif %}
  918.             {% endfor %}
  919.             </ul>
  920.           </div>
  921.         </div>
  922.       </div>
  923.       <div class=\"col-12 col-lg-6\">
  924.         <div class=\"card border-0 shadow-sm rounded-4 h-100\">
  925.           <div class=\"card-body\">
  926.             <h3 class=\"h6 fw-bold mb-2\">Retour</h3>
  927.             <ul class=\"small mb-0\">
  928.             {% for f in flight %}
  929.               {% if f.type == '2' %}
  930.                 <li>{{ f.departureCity }} → {{ f.departureCity }}  {{f.departureTime}} / {{f.arrivalTime}} </li>
  931.               {% endif %}
  932.             {% endfor %}
  933.             </ul>
  934.           </div>
  935.         </div>
  936.       </div>
  937.     </div>
  938.     <p class=\"small text-muted mt-3 mb-0\">Horaires et compagnies susceptibles d’évolution. À confirmer à l’émission des billets.</p>
  939. {% endif %}
  940.     {#  <div class=\"card border-0 shadow-sm rounded-4\">
  941.         <div class=\"card-body\">
  942.           <h3 class=\"h5 fw-bold mb-3\">Dates </h3>
  943.           <div class=\"table-responsive\">
  944.             <table class=\"table table-striped table-sm\">
  945.               <thead class=\"table-light\">
  946.                 <tr><th>Période</th></tr>
  947.               </thead>
  948.               <tbody>
  949.                 {% for p in program.prices %}
  950.                   <tr>
  951.                     <td>{{ p.period_label }}</td>
  952.                     <td>{{ p.price_inside }}€</td>
  953.                     <td>{{ p.price_oceanview }}€</td>
  954.                     <td>{{ p.price_balcony }}€</td>
  955.                     <td>{{ p.price_3rd4th_adult ?? '—' }}</td>
  956.                     <td>{{ p.price_3rd4th_child ?? '—' }}</td>
  957.                   </tr>
  958.                 {% endfor %}
  959.               </tbody>
  960.             </table>
  961.           </div>
  962.         </div>
  963.       </div>
  964.       <div class=\"d-flex justify-content-end mt-4\">
  965.         <a href=\"{#{ path('app_demander_devis') }}\" class=\"btn btn-primary rounded-pill px-4\">Demander un devis</a>
  966.       </div>#}
  967.     </div>
  968.   </div>
  969. </section>
  970. {% endblock %}
  971. ""default/croisiere-destination.html.twig""/home/ladomitiyc/otropik/templates/default/croisiere-destination.html.twig");
  972.     }
  973. }