<?php
use Twig\Environment;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Extension\CoreExtension;
use Twig\Extension\SandboxExtension;
use Twig\Markup;
use Twig\Sandbox\SecurityError;
use Twig\Sandbox\SecurityNotAllowedTagError;
use Twig\Sandbox\SecurityNotAllowedFilterError;
use Twig\Sandbox\SecurityNotAllowedFunctionError;
use Twig\Source;
use Twig\Template;
/* default/roadtrip-destination.html.twig */
class __TwigTemplate_e6d0d936f289aad2ff7cf917b2a2c9be040f2518711d522643ed71d46484d3da extends Template
{
private $source;
private $macros = [];
public function __construct(Environment $env)
{
parent::__construct($env);
$this->source = $this->getSourceContext();
$this->blocks = [
'title' => [$this, 'block_title'],
'body' => [$this, 'block_body'],
];
}
protected function doGetParent(array $context)
{
// line 2
return "base.html.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "default/roadtrip-destination.html.twig"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "default/roadtrip-destination.html.twig"));
$this->parent = $this->loadTemplate("base.html.twig", "default/roadtrip-destination.html.twig", 2);
yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
}
// line 3
public function block_title($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "title"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "title"));
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["offer"]) || array_key_exists("offer", $context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.', 3, $this->source); })()), "title", [], "any", false, false, false, 3), "html", null, true);
yield " — O’Roadtrip";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
return; yield '';
}
// line 5
public function block_body($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "body"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "body"));
// line 7
yield "<section class=\"position-relative text-white\">
<div class=\"ratio ratio-21x9\">
<img src=\"";
// line 9
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(((("img/offer/road/" . CoreExtension::getAttribute($this->env, $this->source, (isset($context["offer"]) || array_key_exists("offer", $context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.', 9, $this->source); })()), "slug", [], "any", false, false, false, 9)) . "/") . (((CoreExtension::getAttribute($this->env, $this->source, ($context["offer"] ?? null), "img", [], "any", true, true, false, 9) && !(null === CoreExtension::getAttribute($this->env, $this->source, ($context["offer"] ?? null), "img", [], "any", false, false, false, 9)))) ? (CoreExtension::getAttribute($this->env, $this->source, ($context["offer"] ?? null), "img", [], "any", false, false, false, 9)) : ("img/offres/namibie/hero.jpg")))), "html", null, true);
yield "\" class=\"w-100 h-100 object-fit-cover\" alt=\"";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["offer"]) || array_key_exists("offer", $context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.', 9, $this->source); })()), "title", [], "any", false, false, false, 9), "html", null, true);
yield "\">
</div>
<div class=\"position-absolute top-0 start-0 w-100 h-100 d-flex align-items-center justify-content-center text-center bg-opacity-40\">
<div class=\"px-3\">
<h1 class=\"display-5 fw-bold mb-2\">";
// line 13
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.', 13, $this->source); })()), "title", [], "any", false, false, false, 13), "html", null, true);
yield "</h1>
";
// line 14
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.', 14, $this->source); })()), "subtitle", [], "any", false, false, false, 14)) {
yield "<p class=\"lead mb-0\">";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["offer"]) || array_key_exists("offer", $context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.', 14, $this->source); })()), "subtitle", [], "any", false, false, false, 14), "html", null, true);
yield "</p>";
}
// line 15
yield " ";
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.', 15, $this->source); })()), "brochure", [], "any", false, false, false, 15)) {
// line 16
yield " <a href=\"";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(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); })()), "brochure", [], "any", false, false, false, 16)), "html", null, true);
yield "\" target=\"_blank\" class=\"btn btn-outline-primary\">
📄 Télécharger la brochure
</a>
";
}
// line 20
yield " </div>
</div>
</section>
<section class=\"container py-5\">
<div class=\"row g-3 g-lg-4 mb-4\">
<div class=\"col-12 col-md-6 col-lg-3\">
<div class=\"card rounded-4 shadow-sm h-100\"><div class=\"card-body\">
<h6 class=\"fw-bold txt-ot-brown mb-1\">Durée & dates</h6>
<p class=\"mb-0 text-muted\">";
// line 30
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["offer"]) || array_key_exists("offer", $context) ? $context["offer"] : (function () { throw new RuntimeError('Variable "offer" does not exist.', 30, $this->source); })()), "summaryDuration", [], "any", false, false, false, 30), "html", null, true);
yield "</p>
<p class=\"mb-0 text-muted\">";
// line 31
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.', 31, $this->source); })()), "dateText", [], "any", false, false, false, 31), "html", null, true);
yield "</p>
</div></div>
</div>
<div class=\"col-12 col-md-6 col-lg-3\">
<div class=\"card rounded-4 shadow-sm h-100\"><div class=\"card-body\">
<h6 class=\"fw-bold txt-ot-brown mb-1\">Vols</h6>
<ul class=\"list-unstyled mb-0\">
";
// line 38
$context['_parent'] = $context;
$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.', 38, $this->source); })()), "summaryFlights", [], "any", false, false, false, 38), "
"));
foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
// line 39
yield " ";
if ((0 !== CoreExtension::compare(Twig\Extension\CoreExtension::trim($context["line"]), ""))) {
// line 40
yield " <li class=\"mb-1\">";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html", null, true);
yield "</li>
";
}
// line 42
yield " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 43
yield " </ul>
</div></div>
</div>
<div class=\"col-12 col-md-6 col-lg-3\">
<div class=\"card rounded-4 shadow-sm h-100\"><div class=\"card-body\">
<h6 class=\"fw-bold txt-ot-brown mb-1\">Rythme & repas</h6>
<ul class=\"list-unstyled mb-0\">
";
// line 50
$context['_parent'] = $context;
$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.', 50, $this->source); })()), "summaryPaceMeals", [], "any", false, false, false, 50), "
"));
foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
// line 51
yield " ";
if ((0 !== CoreExtension::compare(Twig\Extension\CoreExtension::trim($context["line"]), ""))) {
// line 52
yield " <li>";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html", null, true);
yield "</li>
";
}
// line 54
yield " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 55
yield " </ul>
</div></div>
</div>
<div class=\"col-12 col-md-6 col-lg-3\">
<div class=\"card rounded-4 shadow-sm h-100\"><div class=\"card-body\">
<h6 class=\"fw-bold txt-ot-brown mb-1\">Tarif dès</h6>
<p class=\"small text-muted mb-0\">";
// line 61
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.', 61, $this->source); })()), "priceFrom", [], "any", false, false, false, 61), "html", null, true);
yield "€</p>
</div></div>
</div>
</div>
";
// line 67
yield " ";
if ((isset($context["highlight"]) || array_key_exists("highlight", $context) ? $context["highlight"] : (function () { throw new RuntimeError('Variable "highlight" does not exist.', 67, $this->source); })())) {
// line 68
yield " <div class=\"row mb-4\">
<div class=\"col-12 col-lg-6\">
<p class=\"text-uppercase small fw-bold text-ot-brown mb-2\">Nos coups de cœur</p>
<h2 class=\"h4 fw-bold mb-3 txt-ot-brown\">Les incontournables de votre roadtrip</h2>
<p class=\"text-muted\">Déserts, dunes, faune sauvage et sites rupestres : une immersion totale dans les grands espaces namibiens. </p>
</div>
<div class=\"col-12 col-lg-6\">
<div class=\"d-flex flex-column gap-3\">
";
// line 76
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable((isset($context["highlight"]) || array_key_exists("highlight", $context) ? $context["highlight"] : (function () { throw new RuntimeError('Variable "highlight" does not exist.', 76, $this->source); })()));
foreach ($context['_seq'] as $context["_key"] => $context["h"]) {
// line 77
yield " <div class=\"card border-0 shadow-sm rounded-4 w-100\">
<div class=\"card-body d-flex align-items-start gap-2\">
<i class=\"bi bi-check-circle-fill text-ot-green mt-1\"></i>
<h3 class=\"h6 fw-semibold mb-0\">";
// line 80
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["h"], "title", [], "any", false, false, false, 80), "html", null, true);
yield "</h3>
</div>
</div>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['h'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 84
yield " </div>
</div>
</div>
";
}
// line 88
yield "
";
// line 90
yield " <div class=\"row g-4\">
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4 h-100\">
<div class=\"card-body\">
<h2 class=\"h5 txt-ot-brown fw-bold mb-3\">Itinéraire — jour par jour</h2>
<div class=\"list-group list-group-flush\">
";
// line 96
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable((isset($context["itinerary"]) || array_key_exists("itinerary", $context) ? $context["itinerary"] : (function () { throw new RuntimeError('Variable "itinerary" does not exist.', 96, $this->source); })()));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["it"]) {
// line 97
yield " <div class=\"list-group-item px-0\">
<button class=\"btn w-100 d-flex justify-content-between align-items-center text-start\" data-bs-toggle=\"collapse\" data-bs-target=\"#day";
// line 98
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 98), "html", null, true);
yield "\" aria-expanded=\"false\">
<span class=\"fw-bold \">Jour ";
// line 99
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 99), "html", null, true);
yield " - ";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["it"], "title", [], "any", false, false, false, 99), "html", null, true);
if (CoreExtension::getAttribute($this->env, $this->source, $context["it"], "kmLabel", [], "any", false, false, false, 99)) {
yield " <span class=\"text-muted fw-normal\"> (";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["it"], "kmLabel", [], "any", false, false, false, 99), "html", null, true);
yield ") km</span>";
}
yield "</span>
<i class=\"bi bi-chevron-down\"></i>
</button>
<div id=\"day";
// line 102
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 102), "html", null, true);
yield "\" class=\"collapse mt-2\">
<p class=\"small text-muted mb-0\">";
// line 103
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["it"], "details", [], "any", false, false, false, 103), "html", null, true);
yield "</p>
</div>
</div>
";
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['it'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 107
yield " </div>
<p class=\"small text-muted mt-3 mb-0\">Données synthétisées de la brochure.</p>
</div>
</div>
</div>
";
// line 114
yield " <div class=\"col-12 col-lg-6 d-flex\">
<div class=\"w-100 d-flex align-items-center\">
<div id=\"circuitCarousel\"
class=\"carousel slide rounded-4 overflow-hidden shadow-sm w-100\"
data-bs-ride=\"carousel\"
data-bs-interval=\"5000\"
data-bs-pause=\"hover\"
data-bs-touch=\"true\"
aria-label=\"Galerie circuit\">
<div class=\"carousel-inner\">
";
// line 125
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable((isset($context["photoItinerary"]) || array_key_exists("photoItinerary", $context) ? $context["photoItinerary"] : (function () { throw new RuntimeError('Variable "photoItinerary" does not exist.', 125, $this->source); })()));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["p"]) {
// line 126
yield " <div class=\"carousel-item ";
if (CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, false, 126)) {
yield "active";
}
yield "\">
<div class=\"ratio ratio-4x3\">
<img src=\"";
// line 128
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(((((("img/" . CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["p"], "offer", [], "any", false, false, false, 128), "file", [], "any", false, false, false, 128)) . "/") . CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["p"], "offer", [], "any", false, false, false, 128), "slug", [], "any", false, false, false, 128)) . "/itinerary/") . CoreExtension::getAttribute($this->env, $this->source, $context["p"], "img", [], "any", false, false, false, 128))), "html", null, true);
yield "\" class=\"d-block w-100 h-100 object-fit-cover\" alt=\"Photo circuit ";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 128), "html", null, true);
yield "\">
</div>
</div>
";
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['p'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 132
yield " </div>
<button class=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#circuitCarousel\" data-bs-slide=\"prev\">
<span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>
<span class=\"visually-hidden\">Précédent</span>
</button>
<button class=\"carousel-control-next\" type=\"button\" data-bs-target=\"#circuitCarousel\" data-bs-slide=\"next\">
<span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>
<span class=\"visually-hidden\">Suivant</span>
</button>
<div class=\"carousel-indicators\">
";
// line 144
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable((isset($context["photoItinerary"]) || array_key_exists("photoItinerary", $context) ? $context["photoItinerary"] : (function () { throw new RuntimeError('Variable "photoItinerary" does not exist.', 144, $this->source); })()));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["p"]) {
// line 145
yield " <button type=\"button\"
data-bs-target=\"#circuitCarousel\"
data-bs-slide-to=\"";
// line 147
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "index0", [], "any", false, false, false, 147), "html", null, true);
yield "\"
class=\"";
// line 148
if (CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, false, 148)) {
yield "active";
}
yield "\"
aria-current=\"";
// line 149
yield ((CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, false, 149)) ? ("true") : ("false"));
yield "\"
aria-label=\"Slide ";
// line 150
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 150), "html", null, true);
yield "\"></button>
";
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['p'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 152
yield " </div>
</div>
</div>
</div>
</div>
</section>
";
// line 158
if ((isset($context["hebergementOffer"]) || array_key_exists("hebergementOffer", $context) ? $context["hebergementOffer"] : (function () { throw new RuntimeError('Variable "hebergementOffer" does not exist.', 158, $this->source); })())) {
// line 162
yield "<section class=\"py-5 bg-body-tertiary\" id=\"hotels\">
<div class=\"container\">
<h2 class=\"h3 txt-ot-brown fw-bold mb-3\">Hébergements prévus (ou similaires)</h2>
<ul class=\"list-group\">
";
// line 166
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable((isset($context["hebergementOffer"]) || array_key_exists("hebergementOffer", $context) ? $context["hebergementOffer"] : (function () { throw new RuntimeError('Variable "hebergementOffer" does not exist.', 166, $this->source); })()));
foreach ($context['_seq'] as $context["_key"] => $context["h"]) {
yield "<li class=\"list-group-item\">";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["h"], "name", [], "any", false, false, false, 166), "html", null, true);
yield "</li>";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['h'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 167
yield " </ul>
</div>
</section>
";
}
// line 171
yield "
";
// line 172
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.', 172, $this->source); })()), "widget", [], "any", false, false, false, 172)) {
// line 173
yield "<div class=\"container\">
<h2 class=\"h3 txt-ot-brown fw-bold mb-3\">Activités</h2>
<div class=\"widget\">
";
// line 176
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.', 176, $this->source); })()), "widget", [], "any", false, false, false, 176);
yield "
</div>
</div>
";
}
// line 180
yield "
";
// line 181
if ((isset($context["included"]) || array_key_exists("included", $context) ? $context["included"] : (function () { throw new RuntimeError('Variable "included" does not exist.', 181, $this->source); })())) {
// line 185
yield "<section class=\"py-5 bg-white\" id=\"inclus\">
<div class=\"container\">
<div class=\"row g-4\">
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4 h-100\">
<div class=\"card-body\">
<h2 class=\"h5 fw-bold txt-ot-brown\">Inclus</h2>
<ul class=\"small mb-0 list-unstyled\">
";
// line 194
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::filter($this->env, (isset($context["included"]) || array_key_exists("included", $context) ? $context["included"] : (function () { throw new RuntimeError('Variable "included" does not exist.', 194, $this->source); })()), function ($__i__) use ($context, $macros) { $context["i"] = $__i__; return (0 === CoreExtension::compare(CoreExtension::getAttribute($this->env, $this->source, $context["i"], "type", [], "any", false, false, false, 194), "in")); }));
foreach ($context['_seq'] as $context["_key"] => $context["i"]) {
// line 195
yield " <li>✔️ ";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["i"], "label", [], "any", false, false, false, 195), "html", null, true);
yield "</li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['i'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 197
yield " </ul>
</div>
</div>
</div>
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4 h-100\">
<div class=\"card-body\">
<h2 class=\"h5 fw-bold txt-ot-brown\">Non inclus</h2>
<ul class=\"small mb-0 list-unstyled\">
";
// line 206
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable(Twig\Extension\CoreExtension::filter($this->env, (isset($context["included"]) || array_key_exists("included", $context) ? $context["included"] : (function () { throw new RuntimeError('Variable "included" does not exist.', 206, $this->source); })()), function ($__e__) use ($context, $macros) { $context["e"] = $__e__; return (0 === CoreExtension::compare(CoreExtension::getAttribute($this->env, $this->source, $context["e"], "type", [], "any", false, false, false, 206), "out")); }));
foreach ($context['_seq'] as $context["_key"] => $context["e"]) {
// line 207
yield " <li>— ";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["e"], "label", [], "any", false, false, false, 207), "html", null, true);
yield "</li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['e'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 209
yield " </ul>
</div>
</div>
</div>
</div>
</div>
</section>
";
}
// line 240
yield "
";
// line 241
if ((isset($context["flight"]) || array_key_exists("flight", $context) ? $context["flight"] : (function () { throw new RuntimeError('Variable "flight" does not exist.', 241, $this->source); })())) {
// line 245
yield "<section class=\"py-5 bg-body-tertiary\" id=\"vols\">
<div class=\"container\">
<h2 class=\"h3 txt-ot-brown fw-bold mb-3\">Vols & horaires (indicatifs)</h2>
<div class=\"row g-4\">
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4 h-100\">
<div class=\"card-body\">
<h3 class=\"h6 fw-bold mb-2\">Aller</h3>
<ul class=\"small mb-0\">
";
// line 254
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable((isset($context["flight"]) || array_key_exists("flight", $context) ? $context["flight"] : (function () { throw new RuntimeError('Variable "flight" does not exist.', 254, $this->source); })()));
foreach ($context['_seq'] as $context["_key"] => $context["f"]) {
// line 255
yield " ";
if ((0 === CoreExtension::compare(CoreExtension::getAttribute($this->env, $this->source, $context["f"], "type", [], "any", false, false, false, 255), "1"))) {
// line 256
yield " <li>";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["f"], "departureCity", [], "any", false, false, false, 256), "html", null, true);
yield " → ";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["f"], "departureCity", [], "any", false, false, false, 256), "html", null, true);
yield " ";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["f"], "departureTime", [], "any", false, false, false, 256), "html", null, true);
yield " / ";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["f"], "arrivalTime", [], "any", false, false, false, 256), "html", null, true);
yield " </li>
";
}
// line 258
yield " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['f'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 259
yield " </ul>
</div>
</div>
</div>
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4 h-100\">
<div class=\"card-body\">
<h3 class=\"h6 fw-bold mb-2\">Retour</h3>
<ul class=\"small mb-0\">
";
// line 268
$context['_parent'] = $context;
$context['_seq'] = CoreExtension::ensureTraversable((isset($context["flight"]) || array_key_exists("flight", $context) ? $context["flight"] : (function () { throw new RuntimeError('Variable "flight" does not exist.', 268, $this->source); })()));
foreach ($context['_seq'] as $context["_key"] => $context["f"]) {
// line 269
yield " ";
if ((0 === CoreExtension::compare(CoreExtension::getAttribute($this->env, $this->source, $context["f"], "type", [], "any", false, false, false, 269), "2"))) {
// line 270
yield " <li>";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["f"], "departureCity", [], "any", false, false, false, 270), "html", null, true);
yield " → ";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["f"], "departureCity", [], "any", false, false, false, 270), "html", null, true);
yield " ";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["f"], "departureTime", [], "any", false, false, false, 270), "html", null, true);
yield " / ";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["f"], "arrivalTime", [], "any", false, false, false, 270), "html", null, true);
yield " </li>
";
}
// line 272
yield " ";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['f'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 273
yield " </ul>
</div>
</div>
</div>
</div>
<p class=\"small text-muted mt-3 mb-0\">Horaires et compagnies susceptibles d’évolution. À confirmer à l’émission des billets.</p>
</div>
</section>
";
}
// line 282
yield "
";
// line 283
if ((isset($context["infos"]) || array_key_exists("infos", $context) ? $context["infos"] : (function () { throw new RuntimeError('Variable "infos" does not exist.', 283, $this->source); })())) {
// line 287
yield "<section class=\"py-5 bg-body-tertiary\" id=\"paiement\">
<div class=\"container\">
<div class=\"row g-4\">
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4\">
<div class=\"card-body\">
<h2 class=\"h5 fw-bold txt-ot-brown\">Facilités de paiement</h2>
<ul class=\"small mb-0\">
";
// line 296
$context['_parent'] = $context;
$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.', 296, $this->source); })()), "paymentMethod", [], "any", false, false, false, 296), "
"));
foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
// line 297
yield " <li class=\"mb-1\">✔️ ";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html", null, true);
yield "</li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 299
yield " </ul>
</div>
</div>
</div>
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4\">
<div class=\"card-body\">
<h2 class=\"h5 fw-bold txt-ot-brown\">Formalités</h2>
<ul class=\"small mb-0\">
";
// line 309
$context['_parent'] = $context;
$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.', 309, $this->source); })()), "formalities", [], "any", false, false, false, 309), "
"));
foreach ($context['_seq'] as $context["_key"] => $context["line"]) {
// line 310
yield " <li class=\"mb-1\">✔️ ";
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["line"], "html", null, true);
yield "</li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['line'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 312
yield " </ul>
</div>
</div>
</div>
</div>
</div>
</section>
";
}
// line 320
yield "
";
// line 324
yield "<section class=\"py-5 bg-ot-green text-white text-center\">
<div class=\"container\">
<h2 class=\"h4 fw-bold mb-2\">Envie de rejoindre le ";
// line 326
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.', 326, $this->source); })()), "title", [], "any", false, false, false, 326), "html", null, true);
yield " ?</h2>
<p class=\"mb-4\">Parlez à un conseiller Otropik : on s’occupe de tout.</p>
<div class=\"d-flex gap-2 justify-content-center flex-wrap\">
<a href=\"";
// line 329
yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("o.devis");
yield "\" class=\"btn btn-light rounded-pill\">Demander un devis</a>
<a href=\"tel:0590505134\" class=\"btn btn-outline-light rounded-pill\">Appeler</a>
</div>
</div>
</section>
";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
return; yield '';
}
/**
* @codeCoverageIgnore
*/
public function getTemplateName()
{
return "default/roadtrip-destination.html.twig";
}
/**
* @codeCoverageIgnore
*/
public function isTraitable()
{
return false;
}
/**
* @codeCoverageIgnore
*/
public function getDebugInfo()
{
return array ( 735 => 329, 729 => 326, 725 => 324, 722 => 320, 712 => 312, 703 => 310, 698 => 309, 686 => 299, 677 => 297, 672 => 296, 661 => 287, 659 => 283, 656 => 282, 645 => 273, 639 => 272, 627 => 270, 624 => 269, 620 => 268, 609 => 259, 603 => 258, 591 => 256, 588 => 255, 584 => 254, 573 => 245, 571 => 241, 568 => 240, 558 => 209, 549 => 207, 545 => 206, 534 => 197, 525 => 195, 521 => 194, 510 => 185, 508 => 181, 505 => 180, 498 => 176, 493 => 173, 491 => 172, 488 => 171, 482 => 167, 471 => 166, 465 => 162, 463 => 158, 455 => 152, 439 => 150, 435 => 149, 429 => 148, 425 => 147, 421 => 145, 404 => 144, 390 => 132, 370 => 128, 362 => 126, 345 => 125, 332 => 114, 324 => 107, 306 => 103, 302 => 102, 289 => 99, 285 => 98, 282 => 97, 265 => 96, 257 => 90, 254 => 88, 248 => 84, 238 => 80, 233 => 77, 229 => 76, 219 => 68, 216 => 67, 208 => 61, 200 => 55, 194 => 54, 188 => 52, 185 => 51, 180 => 50, 171 => 43, 165 => 42, 159 => 40, 156 => 39, 151 => 38, 141 => 31, 137 => 30, 125 => 20, 117 => 16, 114 => 15, 108 => 14, 104 => 13, 95 => 9, 91 => 7, 81 => 5, 60 => 3, 37 => 2,);
}
public function getSourceContext()
{
return new Source("{# templates/offer/roadtrip_show.html.twig #}
{% extends 'base.html.twig' %}
{% block title %}{{ offer.title }} — O’Roadtrip{% endblock %}
{% block body %}
{# HERO #}
<section class=\"position-relative text-white\">
<div class=\"ratio ratio-21x9\">
<img src=\"{{ asset('img/offer/road/' ~ offer.slug ~ '/' ~ offer.img ?? 'img/offres/namibie/hero.jpg') }}\" class=\"w-100 h-100 object-fit-cover\" alt=\"{{ offer.title }}\">
</div>
<div class=\"position-absolute top-0 start-0 w-100 h-100 d-flex align-items-center justify-content-center text-center bg-opacity-40\">
<div class=\"px-3\">
<h1 class=\"display-5 fw-bold mb-2\">{{ offer.title }}</h1>
{% if offer.subtitle %}<p class=\"lead mb-0\">{{ offer.subtitle }}</p>{% endif %}
{% if offer.brochure %}
<a href=\"{{ asset(offer.brochure) }}\" target=\"_blank\" class=\"btn btn-outline-primary\">
📄 Télécharger la brochure
</a>
{% endif %}
</div>
</div>
</section>
<section class=\"container py-5\">
<div class=\"row g-3 g-lg-4 mb-4\">
<div class=\"col-12 col-md-6 col-lg-3\">
<div class=\"card rounded-4 shadow-sm h-100\"><div class=\"card-body\">
<h6 class=\"fw-bold txt-ot-brown mb-1\">Durée & dates</h6>
<p class=\"mb-0 text-muted\">{{ offer.summaryDuration }}</p>
<p class=\"mb-0 text-muted\">{{ offer.dateText }}</p>
</div></div>
</div>
<div class=\"col-12 col-md-6 col-lg-3\">
<div class=\"card rounded-4 shadow-sm h-100\"><div class=\"card-body\">
<h6 class=\"fw-bold txt-ot-brown mb-1\">Vols</h6>
<ul class=\"list-unstyled mb-0\">
{% for line in offer.summaryFlights|split(\"\\n\") %}
{% if line|trim != '' %}
<li class=\"mb-1\">{{ line }}</li>
{% endif %}
{% endfor %}
</ul>
</div></div>
</div>
<div class=\"col-12 col-md-6 col-lg-3\">
<div class=\"card rounded-4 shadow-sm h-100\"><div class=\"card-body\">
<h6 class=\"fw-bold txt-ot-brown mb-1\">Rythme & repas</h6>
<ul class=\"list-unstyled mb-0\">
{% for line in offer.summaryPaceMeals|split(\"\\n\") %}
{% if line|trim != '' %}
<li>{{ line }}</li>
{% endif %}
{% endfor %}
</ul>
</div></div>
</div>
<div class=\"col-12 col-md-6 col-lg-3\">
<div class=\"card rounded-4 shadow-sm h-100\"><div class=\"card-body\">
<h6 class=\"fw-bold txt-ot-brown mb-1\">Tarif dès</h6>
<p class=\"small text-muted mb-0\">{{ offer.priceFrom }}€</p>
</div></div>
</div>
</div>
{# ————— Points forts ————— #}
{% if highlight %}
<div class=\"row mb-4\">
<div class=\"col-12 col-lg-6\">
<p class=\"text-uppercase small fw-bold text-ot-brown mb-2\">Nos coups de cœur</p>
<h2 class=\"h4 fw-bold mb-3 txt-ot-brown\">Les incontournables de votre roadtrip</h2>
<p class=\"text-muted\">Déserts, dunes, faune sauvage et sites rupestres : une immersion totale dans les grands espaces namibiens. </p>
</div>
<div class=\"col-12 col-lg-6\">
<div class=\"d-flex flex-column gap-3\">
{% for h in highlight %}
<div class=\"card border-0 shadow-sm rounded-4 w-100\">
<div class=\"card-body d-flex align-items-start gap-2\">
<i class=\"bi bi-check-circle-fill text-ot-green mt-1\"></i>
<h3 class=\"h6 fw-semibold mb-0\">{{ h.title }}</h3>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
{% endif %}
{# ————— Itinéraire jour par jour ————— #}
<div class=\"row g-4\">
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4 h-100\">
<div class=\"card-body\">
<h2 class=\"h5 txt-ot-brown fw-bold mb-3\">Itinéraire — jour par jour</h2>
<div class=\"list-group list-group-flush\">
{% for it in itinerary %}
<div class=\"list-group-item px-0\">
<button class=\"btn w-100 d-flex justify-content-between align-items-center text-start\" data-bs-toggle=\"collapse\" data-bs-target=\"#day{{ loop.index }}\" aria-expanded=\"false\">
<span class=\"fw-bold \">Jour {{loop.index}} - {{it.title }}{% if it.kmLabel %} <span class=\"text-muted fw-normal\"> ({{ it.kmLabel }}) km</span>{% endif %}</span>
<i class=\"bi bi-chevron-down\"></i>
</button>
<div id=\"day{{ loop.index }}\" class=\"collapse mt-2\">
<p class=\"small text-muted mb-0\">{{ it.details }}</p>
</div>
</div>
{% endfor %}
</div>
<p class=\"small text-muted mt-3 mb-0\">Données synthétisées de la brochure.</p>
</div>
</div>
</div>
{# — CAROUSEL #}
<div class=\"col-12 col-lg-6 d-flex\">
<div class=\"w-100 d-flex align-items-center\">
<div id=\"circuitCarousel\"
class=\"carousel slide rounded-4 overflow-hidden shadow-sm w-100\"
data-bs-ride=\"carousel\"
data-bs-interval=\"5000\"
data-bs-pause=\"hover\"
data-bs-touch=\"true\"
aria-label=\"Galerie circuit\">
<div class=\"carousel-inner\">
{% for p in photoItinerary %}
<div class=\"carousel-item {% if loop.first %}active{% endif %}\">
<div class=\"ratio ratio-4x3\">
<img src=\"{{asset('img/' ~ p.offer.file ~ '/' ~ p.offer.slug ~ '/itinerary/' ~ p.img)}}\" class=\"d-block w-100 h-100 object-fit-cover\" alt=\"Photo circuit {{ loop.index }}\">
</div>
</div>
{% endfor %}
</div>
<button class=\"carousel-control-prev\" type=\"button\" data-bs-target=\"#circuitCarousel\" data-bs-slide=\"prev\">
<span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>
<span class=\"visually-hidden\">Précédent</span>
</button>
<button class=\"carousel-control-next\" type=\"button\" data-bs-target=\"#circuitCarousel\" data-bs-slide=\"next\">
<span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>
<span class=\"visually-hidden\">Suivant</span>
</button>
<div class=\"carousel-indicators\">
{% for p in photoItinerary %}
<button type=\"button\"
data-bs-target=\"#circuitCarousel\"
data-bs-slide-to=\"{{ loop.index0 }}\"
class=\"{% if loop.first %}active{% endif %}\"
aria-current=\"{{ loop.first ? 'true' : 'false' }}\"
aria-label=\"Slide {{ loop.index }}\"></button>
{% endfor %}
</div>
</div>
</div>
</div>
</div>
</section>
{% if hebergementOffer %}
{# =====================================================
5) HÔTELS — liste ou tableau simple
===================================================== #}
<section class=\"py-5 bg-body-tertiary\" id=\"hotels\">
<div class=\"container\">
<h2 class=\"h3 txt-ot-brown fw-bold mb-3\">Hébergements prévus (ou similaires)</h2>
<ul class=\"list-group\">
{% for h in hebergementOffer %}<li class=\"list-group-item\">{{ h.name }}</li>{% endfor %}
</ul>
</div>
</section>
{% endif %}
{% if offer.widget %}
<div class=\"container\">
<h2 class=\"h3 txt-ot-brown fw-bold mb-3\">Activités</h2>
<div class=\"widget\">
{{offer.widget|raw}}
</div>
</div>
{% endif %}
{% if included %}
{# =====================================================
6) INCLUS / NON INCLUS — deux colonnes
===================================================== #}
<section class=\"py-5 bg-white\" id=\"inclus\">
<div class=\"container\">
<div class=\"row g-4\">
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4 h-100\">
<div class=\"card-body\">
<h2 class=\"h5 fw-bold txt-ot-brown\">Inclus</h2>
<ul class=\"small mb-0 list-unstyled\">
{% for i in included|filter(i => i.type == 'in') %}
<li>✔️ {{ i.label }}</li>
{% endfor %}
</ul>
</div>
</div>
</div>
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4 h-100\">
<div class=\"card-body\">
<h2 class=\"h5 fw-bold txt-ot-brown\">Non inclus</h2>
<ul class=\"small mb-0 list-unstyled\">
{% for e in included|filter(e => e.type == 'out') %}
<li>— {{ e.label }}</li>
{% endfor %}
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
{% endif %}
{#
<div class=\"card border-0 shadow-sm rounded-4\">
<div class=\"card-body\">
<h3 class=\"h6 fw-bold mb-2\">Tarifs</h3>
{% set roomPrices = offer.roomPrices|default([
{label:'Double', price:4730},
{label:'Triple', price:4410},
{label:'Quadruple', price:4140},
{label:'Single', price:null}
]) %}
<div class=\"row row-cols-2 g-2\">
{% for r in roomPrices %}
<div class=\"col\">
<div class=\"border rounded-3 p-2 small h-100 d-flex justify-content-between\">
<span class=\"text-muted\">{{ r.label }}</span>
<strong>{% if r.price %}{{ r.price }}€{% else %}—{% endif %}</strong>
</div>
</div>
{% endfor %}
</div>
<p class=\"small text-muted mb-0 mt-2\">Tarifs/personne, sous réserve de dispo & modifs. :contentReference[oaicite:3]{index=3}</p>
</div>
</div> #}
{% if flight %}
{# =====================================================
7) VOLS & HORAIRES — bloc détaillé
===================================================== #}
<section class=\"py-5 bg-body-tertiary\" id=\"vols\">
<div class=\"container\">
<h2 class=\"h3 txt-ot-brown fw-bold mb-3\">Vols & horaires (indicatifs)</h2>
<div class=\"row g-4\">
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4 h-100\">
<div class=\"card-body\">
<h3 class=\"h6 fw-bold mb-2\">Aller</h3>
<ul class=\"small mb-0\">
{% for f in flight %}
{% if f.type == '1' %}
<li>{{ f.departureCity }} → {{ f.departureCity }} {{f.departureTime}} / {{f.arrivalTime}} </li>
{% endif %}
{% endfor %}
</ul>
</div>
</div>
</div>
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4 h-100\">
<div class=\"card-body\">
<h3 class=\"h6 fw-bold mb-2\">Retour</h3>
<ul class=\"small mb-0\">
{% for f in flight %}
{% if f.type == '2' %}
<li>{{ f.departureCity }} → {{ f.departureCity }} {{f.departureTime}} / {{f.arrivalTime}} </li>
{% endif %}
{% endfor %}
</ul>
</div>
</div>
</div>
</div>
<p class=\"small text-muted mt-3 mb-0\">Horaires et compagnies susceptibles d’évolution. À confirmer à l’émission des billets.</p>
</div>
</section>
{% endif %}
{% if infos %}
{# =====================================================
9) FACILITÉS DE PAIEMENT — encart
===================================================== #}
<section class=\"py-5 bg-body-tertiary\" id=\"paiement\">
<div class=\"container\">
<div class=\"row g-4\">
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4\">
<div class=\"card-body\">
<h2 class=\"h5 fw-bold txt-ot-brown\">Facilités de paiement</h2>
<ul class=\"small mb-0\">
{% for line in offer.paymentMethod|split(\"\\n\") %}
<li class=\"mb-1\">✔️ {{ line }}</li>
{% endfor %}
</ul>
</div>
</div>
</div>
<div class=\"col-12 col-lg-6\">
<div class=\"card border-0 shadow-sm rounded-4\">
<div class=\"card-body\">
<h2 class=\"h5 fw-bold txt-ot-brown\">Formalités</h2>
<ul class=\"small mb-0\">
{% for line in offer.formalities|split(\"\\n\") %}
<li class=\"mb-1\">✔️ {{ line }}</li>
{% endfor %}
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
{% endif %}
{# =====================================================
11) CTA FINAL — devis & contact
===================================================== #}
<section class=\"py-5 bg-ot-green text-white text-center\">
<div class=\"container\">
<h2 class=\"h4 fw-bold mb-2\">Envie de rejoindre le {{offer.title}} ?</h2>
<p class=\"mb-4\">Parlez à un conseiller Otropik : on s’occupe de tout.</p>
<div class=\"d-flex gap-2 justify-content-center flex-wrap\">
<a href=\"{{ path('o.devis') }}\" class=\"btn btn-light rounded-pill\">Demander un devis</a>
<a href=\"tel:0590505134\" class=\"btn btn-outline-light rounded-pill\">Appeler</a>
</div>
</div>
</section>
{% endblock %}
", "default/roadtrip-destination.html.twig", "/home/ladomitiyc/otropik/templates/default/roadtrip-destination.html.twig");
}
}