var/cache/dev/twig/c9/c939c9bb0bb565744d78633e4daab61ed383f84525f182bdcbaace433997e382.php line 53

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