var/cache/dev/twig/99/992c8c907c1b0c392cc89a34c071155c84ad1d549e1033a49e5613608a061ed3.php line 40

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