var/cache/dev/twig/df/dfbee6214afe9ce7fca5b8c02b02fc3e.php line 54

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/escapade-destination.html.twig */
  15. class __TwigTemplate_16fd5c3d2dfbb1870001d7672b1b1ba4 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.             'header_classes' => [$this'block_header_classes'],
  27.             'navbar_theme' => [$this'block_navbar_theme'],
  28.             'body' => [$this'block_body'],
  29.             'extra_head' => [$this'block_extra_head'],
  30.         ];
  31.     }
  32.     protected function doGetParent(array $context)
  33.     {
  34.         // line 2
  35.         return "base.html.twig";
  36.     }
  37.     protected function doDisplay(array $context, array $blocks = [])
  38.     {
  39.         $macros $this->macros;
  40.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  41.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""default/escapade-destination.html.twig"));
  42.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  43.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""default/escapade-destination.html.twig"));
  44.         $this->parent $this->loadTemplate("base.html.twig""default/escapade-destination.html.twig"2);
  45.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  46.         
  47.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  48.         
  49.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  50.     }
  51.     // line 4
  52.     public function block_title($context, array $blocks = [])
  53.     {
  54.         $macros $this->macros;
  55.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  56.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  57.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  58.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  59.         yield "O'Escapade — ";
  60.         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.'4$this->source); })()), "title", [], "any"falsefalsefalse4), "html"nulltrue);
  61.         yield " | O Tropik – Agence de voyage en Guadeloupe ";
  62.         
  63.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  64.         
  65.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  66.         return; yield '';
  67.     }
  68.     // line 5
  69.     public function block_seo($context, array $blocks = [])
  70.     {
  71.         $macros $this->macros;
  72.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  73.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""seo"));
  74.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  75.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""seo"));
  76.         // line 6
  77.         yield " <meta name=\"description\" content=\"";
  78.         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.'6$this->source); })()), "description", [], "any"falsefalsefalse6), "html"nulltrue);
  79.         yield "\" >
  80. \t<meta property=\"og:title\" content=\"";
  81.         // line 8
  82.         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.'8$this->source); })()), "metaTitle", [], "any"falsefalsefalse8), "html"nulltrue);
  83.         yield "\" />
  84. \t<meta property=\"og:type\" content=\"Website\" />
  85. \t<meta property=\"og:description\" content=\"";
  86.         // line 10
  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.'10$this->source); })()), "metaDescription", [], "any"falsefalsefalse10), "html"nulltrue);
  88.         yield "\" />
  89. \t<meta property=\"og:url\" content=\"";
  90.         // line 11
  91.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\HttpFoundationExtension']->generateAbsoluteUrl(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'11$this->source); })()), "request", [], "any"falsefalsefalse11), "uri", [], "any"falsefalsefalse11)), "html"nulltrue);
  92.         yield "\" />
  93. \t<meta property=\"og:image\" content=\"";
  94.         // line 12
  95.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/asset/cardimg-fb.jpg"), "html"nulltrue);
  96.         yield "\" />
  97. \t<meta name =\"twitter:card\" content=\"summary_large_image\" />
  98. \t<meta name=\"twitter:title\" 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); })()), "metaTitle", [], "any"falsefalsefalse15), "html"nulltrue);
  101.         yield "\">
  102. \t<meta name=\"twitter:description\" content=\"";
  103.         // line 16
  104.         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.'16$this->source); })()), "metaDescription", [], "any"falsefalsefalse16), "html"nulltrue);
  105.         yield "\">
  106. \t<meta name=\"twitter:image\" content=\"";
  107.         // line 17
  108.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/asset/cardimg-fb.jpg"), "html"nulltrue);
  109.         yield "\">
  110. ";
  111.         
  112.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  113.         
  114.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  115.         return; yield '';
  116.     }
  117.     // line 20
  118.     public function block_header_classes($context, array $blocks = [])
  119.     {
  120.         $macros $this->macros;
  121.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  122.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""header_classes"));
  123.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  124.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""header_classes"));
  125.         yield "header-overlay";
  126.         
  127.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  128.         
  129.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  130.         return; yield '';
  131.     }
  132.     // line 21
  133.     public function block_navbar_theme($context, array $blocks = [])
  134.     {
  135.         $macros $this->macros;
  136.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  137.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""navbar_theme"));
  138.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  139.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""navbar_theme"));
  140.         yield "navbar-dark";
  141.         
  142.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  143.         
  144.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  145.         return; yield '';
  146.     }
  147.     // line 23
  148.     public function block_body($context, array $blocks = [])
  149.     {
  150.         $macros $this->macros;
  151.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  152.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  153.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  154.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  155.         // line 24
  156.         yield "
  157. ";
  158.         // line 28
  159.         yield "<section class=\"hero hero--offer-fallback is-animated position-relative text-white\">
  160.   <div class=\"hero__media ratio ratio-21x9\">
  161.     ";
  162.         // line 30
  163.         if (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); })()), "img", [], "any"falsefalsefalse30)) {
  164.             // line 31
  165.             yield "      <img src=\"";
  166.             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.'31$this->source); })()), "file", [], "any"falsefalsefalse31)) . "/") . 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.'31$this->source); })()), "slug", [], "any"falsefalsefalse31)) . "/") . 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.'31$this->source); })()), "img", [], "any"falsefalsefalse31))), "html"nulltrue);
  167.             yield "\"
  168.            alt=\"";
  169.             // line 32
  170.             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.'32$this->source); })()), "title", [], "any"falsefalsefalse32), "html"nulltrue);
  171.             yield "\"
  172.            class=\"hero__img object-fit-cover w-100 h-100\">
  173.     ";
  174.         } elseif ((CoreExtension::getAttribute($this->env$this->source,         // line 34
  175. (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'34$this->source); })()), "destination", [], "any"falsefalsefalse34) && CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'34$this->source); })()), "destination", [], "any"falsefalsefalse34), "img", [], "any"falsefalsefalse34))) {
  176.             // line 35
  177.             yield "      <img src=\"";
  178.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(((("img/destination/" CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'35$this->source); })()), "destination", [], "any"falsefalsefalse35), "slug", [], "any"falsefalsefalse35)) . "/") . CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'35$this->source); })()), "destination", [], "any"falsefalsefalse35), "img", [], "any"falsefalsefalse35))), "html"nulltrue);
  179.             yield "\"
  180.            alt=\"";
  181.             // line 36
  182.             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.'36$this->source); })()), "title", [], "any"falsefalsefalse36), "html"nulltrue);
  183.             yield "\"
  184.            class=\"hero__img object-fit-cover w-100 h-100\">
  185.     ";
  186.         } else {
  187.             // line 39
  188.             yield "      <img src=\"";
  189.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("img/2633.jpg"), "html"nulltrue);
  190.             yield "\"
  191.            alt=\"";
  192.             // line 40
  193.             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.'40$this->source); })()), "title", [], "any"falsefalsefalse40), "html"nulltrue);
  194.             yield "\"
  195.            class=\"hero__img object-fit-cover w-100 h-100\">
  196.     ";
  197.         }
  198.         // line 43
  199.         yield "  </div>
  200.   <div class=\"hero__overlay hero__overlay--left\">
  201.     <div class=\"container\">
  202.       <div class=\"hero__card\" style=\"max-width: 600px;\">
  203.         <h1 class=\"hero__title display-5 fw-bold txt-ot-green mb-3\">";
  204.         // line 48
  205.         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.'48$this->source); })()), "title", [], "any"falsefalsefalse48), "html"nulltrue);
  206.         yield "</h1>
  207.         <p class=\"hero__subtitle mb-3\">";
  208.         // line 49
  209.         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.'49$this->source); })()), "subtitle", [], "any"falsefalsefalse49), "html"nulltrue);
  210.         yield "</p>
  211.         ";
  212.         // line 51
  213.         if (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.'51$this->source); })()), "includedText", [], "any"falsefalsefalse51)) {
  214.             // line 52
  215.             yield "          <h6 class=\"fw-bold txt-ot-green mb-2\">Inclus :</h6>
  216.           <ul class=\"list-unstyled mb-0\">
  217.             ";
  218.             // line 54
  219.             $context['_parent'] = $context;
  220.             $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.'54$this->source); })()), "includedText", [], "any"falsefalsefalse54), "
  221. "));
  222.             foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  223.                 // line 55
  224.                 yield "              ";
  225.                 if ((Twig\Extension\CoreExtension::trim($context["line"]) != "")) {
  226.                     // line 56
  227.                     yield "                <li class=\"mb-1\">✔️ ";
  228.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  229.                     yield "</li>
  230.               ";
  231.                 }
  232.                 // line 58
  233.                 yield "            ";
  234.             }
  235.             $_parent $context['_parent'];
  236.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  237.             $context array_intersect_key($context$_parent) + $_parent;
  238.             // line 59
  239.             yield "          </ul>
  240.         ";
  241.         }
  242.         // line 61
  243.         yield "      </div>
  244.     </div>
  245.   </div>
  246. </section>
  247. ";
  248.         // line 67
  249.         yield "<nav class=\"container my-4\" aria-label=\"breadcrumb\">
  250.   <ol class=\"breadcrumb small\">
  251.     <li class=\"breadcrumb-item\"><a href=\"";
  252.         // line 69
  253.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("app");
  254.         yield "\">Accueil</a></li>
  255.     <li class=\"breadcrumb-item\"><a href=\"";
  256.         // line 70
  257.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.escapade");
  258.         yield "\">O'escapade</a></li>
  259.     <li class=\"breadcrumb-item active\" aria-current=\"page\">";
  260.         // line 71
  261.         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.'71$this->source); })()), "destination", [], "any"falsefalsefalse71)) ? (CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["offer"]) || array_key_exists("offer"$context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.'71$this->source); })()), "destination", [], "any"falsefalsefalse71), "name", [], "any"falsefalsefalse71)) : (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.'71$this->source); })()), "title", [], "any"falsefalsefalse71))), "html"nulltrue);
  262.         yield "</li>
  263.   </ol>
  264. </nav>
  265. ";
  266.         // line 75
  267.         if ((isset($context["formules"]) || array_key_exists("formules"$context) ? $context["formules"] : (function () { throw new RuntimeError('Variable "formules" does not exist.'75$this->source); })())) {
  268.             // line 79
  269.             yield "<section class=\"container py-5\">
  270.   <h2 class=\"display-6 lh-1 fw-bold txt-ot-green mb-4\">Nos formules O’Escapade</h2>
  271.   <div class=\"row row-cols-1 row-cols-md-2 g-4\">
  272.   ";
  273.             // line 84
  274.             $context['_parent'] = $context;
  275.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["formules"]) || array_key_exists("formules"$context) ? $context["formules"] : (function () { throw new RuntimeError('Variable "formules" does not exist.'84$this->source); })()));
  276.             foreach ($context['_seq'] as $context["_key"] => $context["f"]) {
  277.                 // line 85
  278.                 yield "    ";
  279.                 // line 86
  280.                 yield "    <div class=\"col\">
  281.       <div class=\"card h-100 border-0 shadow-sm rounded-4 overflow-hidden\">
  282.         <div class=\"card-body p-4\">
  283.           <span class=\"badge bg-ot-green text-white mb-3\">";
  284.                 // line 89
  285.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "durationLabel", [], "any"falsefalsefalse89), "html"nulltrue);
  286.                 yield "</span>
  287.           <h3 class=\"h5 fw-bold mb-3\">";
  288.                 // line 90
  289.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "title", [], "any"falsefalsefalse90), "html"nulltrue);
  290.                 yield "</h3>
  291.           <p class=\"small text-muted mb-2\"><i class=\"bi bi-calendar-week\"></i> Départs :</p>
  292.           <ul class=\"small mb-3\">
  293.             ";
  294.                 // line 94
  295.                 $context['_parent'] = $context;
  296.                 $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["f"], "departuresText", [], "any"falsefalsefalse94), "
  297. "));
  298.                 foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  299.                     // line 95
  300.                     yield "                ";
  301.                     if ((Twig\Extension\CoreExtension::trim($context["line"]) != "")) {
  302.                         // line 96
  303.                         yield "                   <li class=\"mb-1\">";
  304.                         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  305.                         yield "</li>
  306.                 ";
  307.                     }
  308.                     // line 98
  309.                     yield "            ";
  310.                 }
  311.                 $_parent $context['_parent'];
  312.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  313.                 $context array_intersect_key($context$_parent) + $_parent;
  314.                 // line 99
  315.                 yield "          </ul>
  316.           <p class=\"small text-muted mb-2\"><i class=\"bi bi-airplane\"></i> Transports :</p>
  317.           <ul class=\"small mb-3\">
  318.             ";
  319.                 // line 103
  320.                 $context['_parent'] = $context;
  321.                 $context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::split($this->env->getCharset(), CoreExtension::getAttribute($this->env$this->source$context["f"], "transportText", [], "any"falsefalsefalse103), "
  322. "));
  323.                 foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
  324.                     // line 104
  325.                     yield "                ";
  326.                     if ((Twig\Extension\CoreExtension::trim($context["line"]) != "")) {
  327.                         // line 105
  328.                         yield "                   <li class=\"mb-1\">";
  329.                         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html"nulltrue);
  330.                         yield "</li>
  331.                 ";
  332.                     }
  333.                     // line 107
  334.                     yield "            ";
  335.                 }
  336.                 $_parent $context['_parent'];
  337.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
  338.                 $context array_intersect_key($context$_parent) + $_parent;
  339.                 // line 108
  340.                 yield "          </ul>
  341.           <p class=\"text-muted small mb-4\">";
  342.                 // line 110
  343.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["f"], "description", [], "any"falsefalsefalse110), "html"nulltrue);
  344.                 yield "</p>
  345.           <a href=\"";
  346.                 // line 111
  347.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.devis");
  348.                 yield "\" class=\"btn btn-outline-ot-green rounded-pill\">Demander un devis</a>
  349.         </div>
  350.       </div>
  351.     </div>
  352.     ";
  353.             }
  354.             $_parent $context['_parent'];
  355.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['f'], $context['_parent'], $context['loop']);
  356.             $context array_intersect_key($context$_parent) + $_parent;
  357.             // line 116
  358.             yield "</section>
  359.   ";
  360.         }
  361.         // line 118
  362.         yield "
  363. ";
  364.         // line 122
  365.         yield "<section class=\"container py-4 py-md-5\">
  366.   <div class=\"row g-4\">
  367.     <div class=\"col-12 col-lg-6\">
  368.       <p class=\"text-muted small mb-1\">";
  369.         // line 125
  370.         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.'125$this->source); })()), "title", [], "any"falsefalsefalse125), "html"nulltrue);
  371.         yield "</p>
  372.       <h2 class=\"display-6 lh-1 fw-bold txt-ot-green mb-3\">Hébergement</h2>
  373.       <p class=\"text-muted\">
  374.         Notre sélection d’hôtels partenaires pour une escapade sans fausse note : confort, localisation idéale et accueil au top.
  375.       </p>
  376.     </div>
  377.   </div>
  378.   <div class=\"row g-3 g-md-4 mt-2\">
  379.     ";
  380.         // line 134
  381.         $context['_parent'] = $context;
  382.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["offerHebergement"]) || array_key_exists("offerHebergement"$context) ? $context["offerHebergement"] : (function () { throw new RuntimeError('Variable "offerHebergement" does not exist.'134$this->source); })()));
  383.         foreach ($context['_seq'] as $context["_key"] => $context["h"]) {
  384.             // line 135
  385.             yield "      <div class=\"col-12 col-sm-6 col-lg-4\">
  386.         <article class=\"card hotel-card border-0 shadow-sm h-100 rounded-4 overflow-hidden\">
  387.           <a href=\"#\" class=\"stretched-link text-decoration-none\">
  388.             <div class=\"ratio ratio-4x3\">
  389.               <img src=\"";
  390.             // line 139
  391.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(((((("img/hotels/" CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["h"], "hebergement", [], "any"falsefalsefalse139), "country", [], "any"falsefalsefalse139), "slug", [], "any"falsefalsefalse139)) . "/") . CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["h"], "hebergement", [], "any"falsefalsefalse139), "slug", [], "any"falsefalsefalse139)) . "/") . CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["h"], "hebergement", [], "any"falsefalsefalse139), "img", [], "any"falsefalsefalse139))), "html"nulltrue);
  392.             yield "\" alt=\"";
  393.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["h"], "hebergement", [], "any"falsefalsefalse139), "name", [], "any"falsefalsefalse139), "html"nulltrue);
  394.             yield " — photo de l’hôtel\" class=\"object-fit-cover w-100 h-100\">
  395.             </div>
  396.             <div class=\"card-body\">
  397.               <h3 class=\"h6 mb-1 d-flex justify-content-between align-items-baseline\">
  398.                 <span class=\"hotel-name\">";
  399.             // line 143
  400.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["h"], "hebergement", [], "any"falsefalsefalse143), "name", [], "any"falsefalsefalse143), "html"nulltrue);
  401.             yield "</span>
  402.                 <span class=\"hotel-price\">à partir de ";
  403.             // line 144
  404.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["h"], "priceFrom", [], "any"falsefalsefalse144), "html"nulltrue);
  405.             yield "€</span>
  406.               </h3>
  407.               <p class=\"small text-muted mb-0\">";
  408.             // line 146
  409.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["h"], "blurb", [], "any"falsefalsefalse146), "html"nulltrue);
  410.             yield "</p>
  411.             </div>
  412.           </a>
  413.         </article>
  414.       </div>
  415.     ";
  416.         }
  417.         $_parent $context['_parent'];
  418.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['h'], $context['_parent'], $context['loop']);
  419.         $context array_intersect_key($context$_parent) + $_parent;
  420.         // line 152
  421.         yield "  </div>
  422. </section>
  423. ";
  424.         // line 155
  425.         if (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.'155$this->source); })()), "widget", [], "any"falsefalsefalse155)) {
  426.             // line 156
  427.             yield "<div class=\"container\">
  428.   <h2 class=\"h3 txt-ot-green fw-bold mb-3\">Activités</h2>
  429. <div class=\"widget\">
  430.   ";
  431.             // line 159
  432.             yield 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.'159$this->source); })()), "widget", [], "any"falsefalsefalse159);
  433.             yield "
  434. </div>
  435. </div>
  436. ";
  437.         }
  438.         // line 163
  439.         yield "
  440. ";
  441.         // line 181
  442.         yield "
  443. ";
  444.         // line 199
  445.         yield "
  446. ";
  447.         // line 203
  448.         yield "<section class=\"py-5 bg-white\">
  449.   <div class=\"container\">
  450.     <header class=\"mb-3\">
  451.       <h2 class=\"h3 txt-ot-green mb-1 fw-bold\">Nos O'offres du moment</h2>
  452.       <p class=\"text-muted mb-0\">Découvrez nos dernières expériences en immersion !</p>
  453.     </header>
  454.     <div class=\"row g-3 g-md-4\">
  455.       ";
  456.         // line 211
  457.         $context["offres"] = [["title" => "Carnaval St Lucie""img" => "carnaval.jpg""url" => "#"], ["title" => "Croisière Caraïbes""img" => "caraibes.jpg""url" => "#"], ["title" => "Spring Break Cancun""img" => "cancun.jpg""url" => "#"], ["title" => "Road trip Route 66""img" => "road-66.jpg""url" => "#"]];
  458.         // line 217
  459.         yield "      ";
  460.         $context['_parent'] = $context;
  461.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["offres"]) || array_key_exists("offres"$context) ? $context["offres"] : (function () { throw new RuntimeError('Variable "offres" does not exist.'217$this->source); })()));
  462.         foreach ($context['_seq'] as $context["_key"] => $context["o"]) {
  463.             // line 218
  464.             yield "      <div class=\"col-12 col-sm-6 col-lg-3\">
  465.         <article class=\"card card-offer border-0 shadow-sm h-100 overflow-hidden rounded-4\">
  466.           <a href=\"";
  467.             // line 220
  468.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["o"], "url", [], "any"falsefalsefalse220), "html"nulltrue);
  469.             yield "\" class=\"stretched-link text-decoration-none text-white\">
  470.             <div class=\"ratio ratio-4x5\">
  471.               <img src=\"";
  472.             // line 222
  473.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(("img/offre/" CoreExtension::getAttribute($this->env$this->source$context["o"], "img", [], "any"falsefalsefalse222))), "html"nulltrue);
  474.             yield "\" alt=\"";
  475.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["o"], "title", [], "any"falsefalsefalse222), "html"nulltrue);
  476.             yield "\" class=\"object-fit-cover w-100 h-100\">
  477.             </div>
  478.             <div class=\"card-img-overlay d-flex flex-column justify-content-end p-3 p-md-4\">
  479.               <h3 class=\"h5 fw-bold text-white text-shadow-sm mb-3\">";
  480.             // line 225
  481.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["o"], "title", [], "any"falsefalsefalse225), "html"nulltrue);
  482.             yield "</h3>
  483.               <div>
  484.                 <span class=\"btn btn-outline-light btn-sm\">Découvrir</span>
  485.               </div>
  486.             </div>
  487.           </a>
  488.         </article>
  489.       </div>
  490.       ";
  491.         }
  492.         $_parent $context['_parent'];
  493.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['o'], $context['_parent'], $context['loop']);
  494.         $context array_intersect_key($context$_parent) + $_parent;
  495.         // line 234
  496.         yield "    </div>
  497.     <div class=\"section-divider mx-auto my-5\"></div>
  498.   </div>
  499. </section>
  500. ";
  501.         
  502.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  503.         
  504.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  505.         return; yield '';
  506.     }
  507.     // line 242
  508.     public function block_extra_head($context, array $blocks = [])
  509.     {
  510.         $macros $this->macros;
  511.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  512.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""extra_head"));
  513.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  514.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""extra_head"));
  515.         // line 243
  516.         yield "  ";
  517.         yield from $this->yieldParentBlock("extra_head"$context$blocks);
  518.         yield "
  519.   <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css\">
  520.   <style>
  521.     .text-shadow-sm{ text-shadow:0 2px 4px rgba(0,0,0,.35); }
  522.     .text-ot-green{ color: var(--ot-primary, #2ea37a); }
  523.   </style>
  524. ";
  525.         
  526.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  527.         
  528.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  529.         return; yield '';
  530.     }
  531.     /**
  532.      * @codeCoverageIgnore
  533.      */
  534.     public function getTemplateName()
  535.     {
  536.         return "default/escapade-destination.html.twig";
  537.     }
  538.     /**
  539.      * @codeCoverageIgnore
  540.      */
  541.     public function isTraitable()
  542.     {
  543.         return false;
  544.     }
  545.     /**
  546.      * @codeCoverageIgnore
  547.      */
  548.     public function getDebugInfo()
  549.     {
  550.         return array (  571 => 243,  561 => 242,  544 => 234,  529 => 225,  521 => 222,  516 => 220,  512 => 218,  507 => 217,  505 => 211,  495 => 203,  492 => 199,  489 => 181,  486 => 163,  479 => 159,  474 => 156,  472 => 155,  467 => 152,  455 => 146,  450 => 144,  446 => 143,  437 => 139,  431 => 135,  427 => 134,  415 => 125,  410 => 122,  407 => 118,  403 => 116,  392 => 111,  388 => 110,  384 => 108,  378 => 107,  372 => 105,  369 => 104,  364 => 103,  358 => 99,  352 => 98,  346 => 96,  343 => 95,  338 => 94,  331 => 90,  327 => 89,  322 => 86,  320 => 85,  316 => 84,  309 => 79,  307 => 75,  300 => 71,  296 => 70,  292 => 69,  288 => 67,  281 => 61,  277 => 59,  271 => 58,  265 => 56,  262 => 55,  257 => 54,  253 => 52,  251 => 51,  246 => 49,  242 => 48,  235 => 43,  229 => 40,  224 => 39,  218 => 36,  213 => 35,  211 => 34,  206 => 32,  201 => 31,  199 => 30,  195 => 28,  192 => 24,  182 => 23,  162 => 21,  142 => 20,  129 => 17,  125 => 16,  121 => 15,  115 => 12,  111 => 11,  107 => 10,  102 => 8,  96 => 6,  86 => 5,  64 => 4,  41 => 2,);
  551.     }
  552.     public function getSourceContext()
  553.     {
  554.         return new Source("{# templates/escapade/show.html.twig #}
  555. {% extends 'base.html.twig' %}
  556. {% block title %}O'Escapade — {{ offer.title }} | O Tropik – Agence de voyage en Guadeloupe {% endblock %}
  557. {% block seo %}
  558.  <meta name=\"description\" content=\"{{offer.description}}\" >
  559. \t<meta property=\"og:title\" content=\"{{offer.metaTitle}}\" />
  560. \t<meta property=\"og:type\" content=\"Website\" />
  561. \t<meta property=\"og:description\" content=\"{{offer.metaDescription}}\" />
  562. \t<meta property=\"og:url\" content=\"{{absolute_url( app.request.uri)}}\" />
  563. \t<meta property=\"og:image\" content=\"{{ asset('img/asset/cardimg-fb.jpg') }}\" />
  564. \t<meta name =\"twitter:card\" content=\"summary_large_image\" />
  565. \t<meta name=\"twitter:title\" content=\"{{ offer.metaTitle }}\">
  566. \t<meta name=\"twitter:description\" content=\"{{ offer.metaDescription }}\">
  567. \t<meta name=\"twitter:image\" content=\"{{ asset('img/asset/cardimg-fb.jpg') }}\">
  568. {% endblock %}
  569. {# Header standard ou overlay si besoin sur le hero #}
  570. {% block header_classes %}header-overlay{% endblock %}
  571. {% block navbar_theme %}navbar-dark{% endblock %}
  572. {% block body %}
  573. {# -----------------------------
  574.    HERO Escapade (avec inclus)
  575. ------------------------------ #}
  576. <section class=\"hero hero--offer-fallback is-animated position-relative text-white\">
  577.   <div class=\"hero__media ratio ratio-21x9\">
  578.     {% if offer.img %}
  579.       <img src=\"{{ asset('img/offer/' ~ offer.file ~ '/' ~ offer.slug ~ '/' ~ offer.img) }}\"
  580.            alt=\"{{ offer.title }}\"
  581.            class=\"hero__img object-fit-cover w-100 h-100\">
  582.     {% elseif offer.destination and offer.destination.img %}
  583.       <img src=\"{{ asset('img/destination/' ~ offer.destination.slug ~ '/' ~ offer.destination.img) }}\"
  584.            alt=\"{{ offer.title }}\"
  585.            class=\"hero__img object-fit-cover w-100 h-100\">
  586.     {% else %}
  587.       <img src=\"{{ asset('img/2633.jpg') }}\"
  588.            alt=\"{{ offer.title }}\"
  589.            class=\"hero__img object-fit-cover w-100 h-100\">
  590.     {% endif %}
  591.   </div>
  592.   <div class=\"hero__overlay hero__overlay--left\">
  593.     <div class=\"container\">
  594.       <div class=\"hero__card\" style=\"max-width: 600px;\">
  595.         <h1 class=\"hero__title display-5 fw-bold txt-ot-green mb-3\">{{ offer.title }}</h1>
  596.         <p class=\"hero__subtitle mb-3\">{{ offer.subtitle }}</p>
  597.         {% if offer.includedText %}
  598.           <h6 class=\"fw-bold txt-ot-green mb-2\">Inclus :</h6>
  599.           <ul class=\"list-unstyled mb-0\">
  600.             {% for line in offer.includedText|split(\"\\n\") %}
  601.               {% if line|trim != '' %}
  602.                 <li class=\"mb-1\">✔️ {{ line }}</li>
  603.               {% endif %}
  604.             {% endfor %}
  605.           </ul>
  606.         {% endif %}
  607.       </div>
  608.     </div>
  609.   </div>
  610. </section>
  611. {# Fil d'Ariane #}
  612. <nav class=\"container my-4\" aria-label=\"breadcrumb\">
  613.   <ol class=\"breadcrumb small\">
  614.     <li class=\"breadcrumb-item\"><a href=\"{{ path('app') }}\">Accueil</a></li>
  615.     <li class=\"breadcrumb-item\"><a href=\"{{ path('o.escapade') }}\">O'escapade</a></li>
  616.     <li class=\"breadcrumb-item active\" aria-current=\"page\">{{ offer.destination ? offer.destination.name : offer.title }}</li>
  617.   </ol>
  618. </nav>
  619. {% if formules %}
  620. {# -----------------------------
  621.    Formules
  622. ------------------------------ #}
  623. <section class=\"container py-5\">
  624.   <h2 class=\"display-6 lh-1 fw-bold txt-ot-green mb-4\">Nos formules O’Escapade</h2>
  625.   <div class=\"row row-cols-1 row-cols-md-2 g-4\">
  626.   {% for f in formules %}
  627.     {# Formule 1 #}
  628.     <div class=\"col\">
  629.       <div class=\"card h-100 border-0 shadow-sm rounded-4 overflow-hidden\">
  630.         <div class=\"card-body p-4\">
  631.           <span class=\"badge bg-ot-green text-white mb-3\">{{f.durationLabel}}</span>
  632.           <h3 class=\"h5 fw-bold mb-3\">{{f.title}}</h3>
  633.           <p class=\"small text-muted mb-2\"><i class=\"bi bi-calendar-week\"></i> Départs :</p>
  634.           <ul class=\"small mb-3\">
  635.             {% for line in f.departuresText|split(\"\\n\") %}
  636.                 {% if line|trim != '' %}
  637.                    <li class=\"mb-1\">{{ line }}</li>
  638.                 {% endif %}
  639.             {% endfor %}
  640.           </ul>
  641.           <p class=\"small text-muted mb-2\"><i class=\"bi bi-airplane\"></i> Transports :</p>
  642.           <ul class=\"small mb-3\">
  643.             {% for line in f.transportText|split(\"\\n\") %}
  644.                 {% if line|trim != '' %}
  645.                    <li class=\"mb-1\">{{ line }}</li>
  646.                 {% endif %}
  647.             {% endfor %}
  648.           </ul>
  649.           <p class=\"text-muted small mb-4\">{{f.description}}</p>
  650.           <a href=\"{{ path('o.devis') }}\" class=\"btn btn-outline-ot-green rounded-pill\">Demander un devis</a>
  651.         </div>
  652.       </div>
  653.     </div>
  654.     {% endfor %}
  655. </section>
  656.   {% endif %}
  657. {# -----------------------------
  658.    SECTION 1 — Hébergement (SÉLECTION D'HÔTELS)
  659. ------------------------------ #}
  660. <section class=\"container py-4 py-md-5\">
  661.   <div class=\"row g-4\">
  662.     <div class=\"col-12 col-lg-6\">
  663.       <p class=\"text-muted small mb-1\">{{offer.title}}</p>
  664.       <h2 class=\"display-6 lh-1 fw-bold txt-ot-green mb-3\">Hébergement</h2>
  665.       <p class=\"text-muted\">
  666.         Notre sélection d’hôtels partenaires pour une escapade sans fausse note : confort, localisation idéale et accueil au top.
  667.       </p>
  668.     </div>
  669.   </div>
  670.   <div class=\"row g-3 g-md-4 mt-2\">
  671.     {% for h in offerHebergement %}
  672.       <div class=\"col-12 col-sm-6 col-lg-4\">
  673.         <article class=\"card hotel-card border-0 shadow-sm h-100 rounded-4 overflow-hidden\">
  674.           <a href=\"#\" class=\"stretched-link text-decoration-none\">
  675.             <div class=\"ratio ratio-4x3\">
  676.               <img src=\"{{asset('img/hotels/' ~ h.hebergement.country.slug ~ '/' ~ h.hebergement.slug ~ '/' ~ h.hebergement.img)}}\" alt=\"{{ h.hebergement.name }} — photo de l’hôtel\" class=\"object-fit-cover w-100 h-100\">
  677.             </div>
  678.             <div class=\"card-body\">
  679.               <h3 class=\"h6 mb-1 d-flex justify-content-between align-items-baseline\">
  680.                 <span class=\"hotel-name\">{{ h.hebergement.name }}</span>
  681.                 <span class=\"hotel-price\">à partir de {{ h.priceFrom }}€</span>
  682.               </h3>
  683.               <p class=\"small text-muted mb-0\">{{ h.blurb }}</p>
  684.             </div>
  685.           </a>
  686.         </article>
  687.       </div>
  688.     {% endfor %}
  689.   </div>
  690. </section>
  691. {% if offer.widget %}
  692. <div class=\"container\">
  693.   <h2 class=\"h3 txt-ot-green fw-bold mb-3\">Activités</h2>
  694. <div class=\"widget\">
  695.   {{offer.widget|raw}}
  696. </div>
  697. </div>
  698. {% endif %}
  699. {# -----------------------------
  700.    SECTION 2 — Parade (texte gauche, image droite)
  701. ------------------------------ 
  702. <section class=\"container py-4 py-md-5\">
  703.   <div class=\"row g-4 align-items-center\">
  704.     <div class=\"col-12 col-lg-6 order-1 order-lg-0\">
  705.       <p class=\"text-muted small mb-1\">{{ escapade.kicker|default('Carnaval St Lucie') }}</p>
  706.       <h2 class=\"display-6 lh-1 fw-bold text-ot-green mb-3\">Parade</h2>
  707.       <p class=\"text-muted\">Lorem Ipsum is simply dummy text of the printing and typesetting industry…</p>
  708.     </div>
  709.     <div class=\"col-12 col-lg-6 order-0 order-lg-1\">
  710.       <div class=\"ratio ratio-4x3 rounded-4 overflow-hidden shadow-sm\">
  711.         <img src=\"{{ asset(escapade.parade_img|default('img/escapade/parade.jpg')) }}\" alt=\"Parade\" class=\"object-fit-cover w-100 h-100\">
  712.       </div>
  713.     </div>
  714.   </div>
  715. </section>#}
  716. {# -----------------------------
  717.    SECTION 3 — Activités (image gauche, texte droite)
  718. ------------------------------ 
  719. <section class=\"container py-4 py-md-5\">
  720.   <div class=\"row g-4 align-items-center\">
  721.     <div class=\"col-12 col-lg-6\">
  722.       <div class=\"ratio ratio-4x3 rounded-4 overflow-hidden shadow-sm\">
  723.         <img src=\"{{ asset(escapade.activites_img|default('img/escapade/activity.jpg')) }}\" alt=\"Activités\" class=\"object-fit-cover w-100 h-100\">
  724.       </div>
  725.     </div>
  726.     <div class=\"col-12 col-lg-6\">
  727.       <p class=\"text-muted small mb-1\">{{ escapade.kicker|default('Carnaval St Lucie') }}</p>
  728.       <h2 class=\"display-6 lh-1 fw-bold text-ot-green mb-3\">Activités</h2>
  729.       <p class=\"text-muted\">Lorem Ipsum is simply dummy text of the printing and typesetting industry…</p>
  730.     </div>
  731.   </div>
  732. </section> #}
  733. {# -----------------------------
  734.    OFFRES DU MOMENT — réutilisation grille cartes maquette
  735. ------------------------------ #}
  736. <section class=\"py-5 bg-white\">
  737.   <div class=\"container\">
  738.     <header class=\"mb-3\">
  739.       <h2 class=\"h3 txt-ot-green mb-1 fw-bold\">Nos O'offres du moment</h2>
  740.       <p class=\"text-muted mb-0\">Découvrez nos dernières expériences en immersion !</p>
  741.     </header>
  742.     <div class=\"row g-3 g-md-4\">
  743.       {% set offres = [
  744.         { title: 'Carnaval St Lucie', img: 'carnaval.jpg', url: '#' },
  745.         { title: 'Croisière Caraïbes', img: 'caraibes.jpg', url: '#' },
  746.         { title: 'Spring Break Cancun', img: 'cancun.jpg', url: '#' },
  747.         { title: 'Road trip Route 66', img: 'road-66.jpg', url: '#' }
  748.       ] %}
  749.       {% for o in offres %}
  750.       <div class=\"col-12 col-sm-6 col-lg-3\">
  751.         <article class=\"card card-offer border-0 shadow-sm h-100 overflow-hidden rounded-4\">
  752.           <a href=\"{{ o.url }}\" class=\"stretched-link text-decoration-none text-white\">
  753.             <div class=\"ratio ratio-4x5\">
  754.               <img src=\"{{ asset('img/offre/' ~ o.img) }}\" alt=\"{{ o.title }}\" class=\"object-fit-cover w-100 h-100\">
  755.             </div>
  756.             <div class=\"card-img-overlay d-flex flex-column justify-content-end p-3 p-md-4\">
  757.               <h3 class=\"h5 fw-bold text-white text-shadow-sm mb-3\">{{ o.title }}</h3>
  758.               <div>
  759.                 <span class=\"btn btn-outline-light btn-sm\">Découvrir</span>
  760.               </div>
  761.             </div>
  762.           </a>
  763.         </article>
  764.       </div>
  765.       {% endfor %}
  766.     </div>
  767.     <div class=\"section-divider mx-auto my-5\"></div>
  768.   </div>
  769. </section>
  770. {% endblock %}
  771. {% block extra_head %}
  772.   {{ parent() }}
  773.   <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css\">
  774.   <style>
  775.     .text-shadow-sm{ text-shadow:0 2px 4px rgba(0,0,0,.35); }
  776.     .text-ot-green{ color: var(--ot-primary, #2ea37a); }
  777.   </style>
  778. {% endblock %}
  779. ""default/escapade-destination.html.twig""/home/ladomitiyc/otropik/templates/default/escapade-destination.html.twig");
  780.     }
  781. }