{# templates/circuit/golden-western.html.twig #}
{% extends 'base.html.twig' %}
{% block title %}O'Circuit - {{offer.title}}{% endblock %}
{# Si tu veux header overlay blanc sur photo hero : #}
{% block header_classes %}header-overlay{% endblock %}
{% block navbar_theme %}navbar-dark{% endblock %}
{% block body %}
{# =====================================================
1) HERO — Titre, sous-titre, prix/CTA, bloc inclus
===================================================== #}
<section class="position-relative text-white">
<div class="ratio ratio-21x9">
<img src="{{asset('img/'~ offer.file ~ '/' ~ offer.slug ~ '/' ~ offer.img )}}" alt="Golden Western Trail" class="object-fit-cover w-100 h-100">
</div>
<div class="position-absolute top-0 start-0 w-100 h-100 d-flex align-items-center">
<div class="container">
<div class="bg-white text-dark p-4 p-md-5 rounded-4 shadow-sm" style="max-width: 760px;">
<h1 class="display-5 fw-bold txt-ot-green mb-1">{{ offer.title}}</h1>
<p class="mb-3">{{ offer.subtitle}}</p>
<div class="d-flex flex-wrap align-items-center gap-2 mb-3">
<span class="badge bg-ot-green">{{ offer.durationText}}</span>
<span class="badge text-bg-light">{{ offer.dateText }}</span>
<span class="badge text-bg-light">À partir de {{ offer.priceFrom}}€</span>
</div>
<div class="mb-3">
<h6 class="fw-bold txt-ot-green mb-2">Inclus :</h6>
<ul class="list-unstyled mb-0">
{% for line in offer.includedText|split("\n") %}
<li class="mb-1">✔️ {{ line }}</li>
{% endfor %}
</ul>
</div>
<div class="d-flex gap-2 flex-wrap">
<a href="{{ path('o.devis') }}" class="btn btn-primary rounded-pill">Demander un devis</a>
{% if offer.brochure %}
<a href="{{ asset(offer.brochure) }}" target="_blank" class="btn btn-outline-ot-green rounded-pill">Télécharger la brochure</a>
{% endif %}
</div>
</div>
</div>
</div>
</section>
{# =====================================================
3) INFOS CLÉS — Durée/Dates · Vols · Rythme · Prix
===================================================== #}
<section class="py-5 bg-body-tertiary">
<div class="container">
<div class="row g-3 g-md-4 row-cols-1 row-cols-md-2 row-cols-lg-4">
<div class="col">
<div class="card h-100 border-0 shadow-sm rounded-4"><div class="card-body">
<h3 class="h6 fw-bold mb-1">Durée & dates</h3>
<p class="small text-muted mb-0"> - {{ circuit.duration|default('11J/10N') }} <br> {{ circuit.dates|default('05→15 août 2026') }}</p>
</div></div>
</div>
<div class="col">
<div class="card h-100 border-0 shadow-sm rounded-4"><div class="card-body">
<h3 class="h6 fw-bold mb-1">Vols</h3>
<p class="small text-muted mb-0">{{ circuit.flights_short|default('PTP↔LAX via MIA — retour SFO↔PTP via MIA') }}</p>
</div></div>
</div>
<div class="col">
<div class="card h-100 border-0 shadow-sm rounded-4"><div class="card-body">
<h3 class="h6 fw-bold mb-1">Rythme & repas</h3>
<p class="small text-muted mb-0">{{ circuit.meals|default('Petits-déj US/continentaux · 8 déj · 6 dîners') }}</p>
</div></div>
</div>
<div class="col">
<div class="card h-100 border-0 shadow-sm rounded-4"><div class="card-body">
<h3 class="h6 fw-bold mb-1">Tarif dès</h3>
<p class="small text-muted mb-0">{{ circuit.price_from|default('3390€') }} <span class="opacity-75">(base 31 pax)</span></p>
</div></div>
</div>
</div>
</div>
</section>
{# =====================================================
2) POINTS FORTS — 3 à 6 cartes icônes
===================================================== #}
<section class="py-5 bg-white">
<div class="container">
<div class="row">
<div class="col-md-6 p-5">
<h2 class="h3 txt-ot-green fw-bold mb-3">Les incontournables de votre voyage</h2>
<p class="text-muted">
Chaque étape de ce circuit a été pensée pour vous offrir une immersion
authentique et des souvenirs inoubliables. Entre paysages iconiques,
découvertes culturelles et activités exclusives, voici ce qui rend ce voyage unique.
</p>
</div>
<div class="col-md-6">
<div class="row g-3">
<div class="d-flex flex-column gap-3">
{% for h in highlight %}
<div class="card border-0 shadow-sm rounded-4">
<div class="card-body">
<h3 class="h6 fw-semibold mb-1">{{ h.title }}</h3>
{% if h.details %}
<p class="small text-muted mb-0">{{ h.details}}</p>
{% endif %}
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
</section>
{# =====================================================
4) ITINÉRAIRE — Timeline jour par jour (collapses)
===================================================== #}
<section class="py-5 bg-white" id="itineraire">
<div class="container">
<div class="row align-items-center g-4"> {# align-items-center = centrage vertical #}
{# COLONNE GAUCHE — 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>
{# COLONNE DROITE — ITINÉRAIRE #}
<div class="col-12 col-lg-6">
<h2 class="h3 txt-ot-green 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>
</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-green 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 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-green">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-green">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 %}
{% 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-green 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 %}
{# =====================================================
8) TARIFS — tableau + bases pax
===================================================== #}
{#<section class="py-5 bg-white" id="tarifs">
<div class="container">
<h2 class="h3 txt-ot-green fw-bold mb-3">Tarifs</h2>
<div class="table-responsive">
<table class="table align-middle">
<thead><tr><th>Occupation</th><th>Tarif</th><th>Base</th></tr></thead>
<tbody>
{% set prices = circuit.prices|default([
{label:'Double', price:'3390€', base:'31 pax'},
{label:'Triple', price:'3860€', base:'31 pax'},
{label:'Quad', price:'3840€', base:'31 pax'},
{label:'Single', price:'3890€', base:'31 pax'}
]) %}
{% for p in prices %}
<tr><td>{{ p.label }}</td><td>{{ p.price }}</td><td>{{ p.base }}</td></tr>
{% endfor %}
</tbody>
</table>
</div>
<p class="small text-muted mb-0">Base modifiable : ex. <strong>+245€</strong>/pers si 29–20 pax. Sous réserve de disponibilité & modifications.</p>
</div>
</section> #}
{% 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-green">Facilités de paiement</h2>
<ul class="small mb-0">
{% for pay in infos|filter(pay => pay.type == 'paiement') %}
<li>{{ pay.title }}</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-green">Formalités</h2>
<ul class="small mb-0">
{% for f in infos|filter(f => f.type == 'formalites') %}
<li>{{ f.title }}</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 %}