templates/pages/index.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}WA BENIN - Festival et Culture Béninoise
  3. {% endblock %}
  4. {% block body %}
  5. <!-- Hero Section -->
  6. <section class="hero-fullscreen">
  7. <video autoplay muted loop playsinline class="hero-video-bg">
  8. <source src="{{ asset('movies/herowabenin.mp4') }}" type="video/mp4">
  9. </video>
  10. <div class="hero-overlay" style="background: linear-gradient(135deg, rgba(8, 41, 20, 0.9) 0%, rgba(218, 37, 28, 0.7) 100%); mix-blend-mode: multiply;"></div>
  11. <!-- Texture africaine discrète par-dessus -->
  12. <div style="position: absolute; inset: 0; background-image: url('data:image/svg+xml,%3Csvg width=\'60\' height=\'60\' viewBox=\'0 0 60 60\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z\' fill=\'%23edad11\' fill-opacity=\'0.1\' fill-rule=\'evenodd\'/%3E%3C/svg%3E'); opacity: 0.6; pointer-events: none;"></div>
  13. <div class="hero-content">
  14. <span class="hero-subtitle">Culture & Patrimoine</span>
  15. <h1 class="hero-title">Célébrons l'Âme du Bénin à l'International</h1>
  16. <p class="hero-desc">Rejoignez WA BENIN, la plateforme culturelle qui promeut les arts, l'histoire et le Festival WA BENIN. Vivez une expérience immersive et contribuez à notre rayonnement mondial.</p>
  17. <div class="hero-actions">
  18. <a href="{{ path('app_adhesion') }}" class="btn btn-primary">Rejoindre le Mouvement</a>
  19. <a href="{{ path('app_association') }}" class="btn btn-outline">En Savoir Plus</a>
  20. </div>
  21. </div>
  22. </section>
  23. <!-- Presentation Section -->
  24. <section class="section-padding bg-cultural" style="overflow: hidden;">
  25. <div class="floating-icon icon-sun spin-slow" style="top: 10%; right: 5%;"></div>
  26. <div class="floating-icon icon-djembe float-fast" style="bottom: 10%; left: 5%;"></div>
  27. <div class="container">
  28. <div class="about-grid">
  29. <div class="about-image fade-up">
  30. <img src="https://images.unsplash.com/photo-1542300058-849d3b08aa0f?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80" alt="Culture Africaine">
  31. <div class="about-experience">
  32. <h3>10+</h3>
  33. <span>Ans d'Impact</span>
  34. </div>
  35. </div>
  36. <div class="about-content fade-up">
  37. <div class="section-title" style="text-align: left; margin-bottom: 20px;">
  38. <span>Qui Sommes-Nous</span>
  39. <h2>L'Essence de WA BENIN</h2>
  40. <div class="cultural-divider" style="margin-left: 0;"></div>
  41. </div>
  42. <p>Fondée sur la passion de notre riche patrimoine, WA BENIN est une organisation dédiée à la mise en lumière de la culture béninoise. De la musique aux arts visuels, nous créons des ponts entre notre pays et le monde.</p>
  43. <p>Notre vision est claire : faire du Bénin une destination culturelle incontournable et soutenir nos artistes locaux dans leur développement international.</p>
  44. <div class="features-list">
  45. <div class="feature-item">
  46. <div class="feature-icon">
  47. <i class="fas fa-globe-africa"></i>
  48. </div>
  49. <div>
  50. <h4 style="margin:0; font-size:1.1rem;">Rayonnement</h4>
  51. <small>International</small>
  52. </div>
  53. </div>
  54. <div class="feature-item">
  55. <div class="feature-icon">
  56. <i class="fas fa-drum"></i>
  57. </div>
  58. <div>
  59. <h4 style="margin:0; font-size:1.1rem;">Festival</h4>
  60. <small>Annuel</small>
  61. </div>
  62. </div>
  63. <div class="feature-item">
  64. <div class="feature-icon">
  65. <i class="fas fa-hands-helping"></i>
  66. </div>
  67. <div>
  68. <h4 style="margin:0; font-size:1.1rem;">Solidarité</h4>
  69. <small>Communautaire</small>
  70. </div>
  71. </div>
  72. <div class="feature-item">
  73. <div class="feature-icon">
  74. <i class="fas fa-palette"></i>
  75. </div>
  76. <div>
  77. <h4 style="margin:0; font-size:1.1rem;">Arts</h4>
  78. <small>Visuels & Scène</small>
  79. </div>
  80. </div>
  81. </div>
  82. <a href="{{ path('app_association') }}" class="btn btn-primary" style="margin-top: 30px;">En Savoir Plus</a>
  83. </div>
  84. </div>
  85. </div>
  86. </section>
  87. <!-- Key Figures (Chiffres Clés) avec Parallax -->
  88. <section class="stats-section" style="background: linear-gradient(rgba(31, 31, 31, 0.85), rgba(31, 31, 31, 0.85)), url('https://images.unsplash.com/photo-1528605248644-14dd04022da1?ixlib=rb-4.0.3&auto=format&fit=crop&w=1920&q=80') center/cover fixed; padding: 100px 0; color: #fff;">
  89. <div class="container">
  90. <div class="stats-grid" style="display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; text-align: center;">
  91. <div class="stat-item fade-up">
  92. <i class="fas fa-users" style="font-size: 3rem; color: var(--gold); margin-bottom: 20px;"></i>
  93. <h3 data-target="5000" data-suffix="+" style="font-size: 3rem; margin-bottom: 10px; color: #fff;">0</h3>
  94. <p style="font-size: 1.1rem; text-transform: uppercase; letter-spacing: 1px;">Membres Actifs</p>
  95. </div>
  96. <div class="stat-item fade-up">
  97. <i class="fas fa-calendar-check" style="font-size: 3rem; color: var(--gold); margin-bottom: 20px;"></i>
  98. <h3 data-target="15" style="font-size: 3rem; margin-bottom: 10px; color: #fff;">0</h3>
  99. <p style="font-size: 1.1rem; text-transform: uppercase; letter-spacing: 1px;">Éditions du Festival</p>
  100. </div>
  101. <div class="stat-item fade-up">
  102. <i class="fas fa-palette" style="font-size: 3rem; color: var(--gold); margin-bottom: 20px;"></i>
  103. <h3 data-target="120" data-suffix="+" style="font-size: 3rem; margin-bottom: 10px; color: #fff;">0</h3>
  104. <p style="font-size: 1.1rem; text-transform: uppercase; letter-spacing: 1px;">Artistes Soutenus</p>
  105. </div>
  106. <div class="stat-item fade-up">
  107. <i class="fas fa-handshake" style="font-size: 3rem; color: var(--gold); margin-bottom: 20px;"></i>
  108. <h3 data-target="50" style="font-size: 3rem; margin-bottom: 10px; color: #fff;">0</h3>
  109. <p style="font-size: 1.1rem; text-transform: uppercase; letter-spacing: 1px;">Partenaires</p>
  110. </div>
  111. </div>
  112. </div>
  113. </section>
  114. <!-- Upcoming Events -->
  115. <section class="section-padding bg-light" style="overflow: hidden;">
  116. <div class="floating-icon icon-mask float-slow" style="top: 5%; left: 5%;"></div>
  117. <div class="floating-icon icon-shield spin-slow" style="bottom: 10%; right: 5%;"></div>
  118. <div class="container">
  119. <div class="section-title fade-up">
  120. <span>Agenda</span>
  121. <h2>Événements à Venir</h2>
  122. <div class="cultural-divider"></div>
  123. </div>
  124. <div class="events-grid">
  125. {% for event in events %}
  126. <!-- Event -->
  127. <div class="event-card fade-up">
  128. <div class="event-img">
  129. <img src="{{ event.image }}" alt="{{ event.title }}">
  130. <div class="event-date">
  131. <span>{{ event.date|date('d') }}</span>
  132. <small>{{ event.date|date('M') }}</small>
  133. </div>
  134. </div>
  135. <div class="event-content">
  136. <span class="event-category">{{ event.category }}</span>
  137. <h3 style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">{{ event.title }}</h3>
  138. <div class="event-meta">
  139. <span>
  140. <i class="fas fa-map-marker-alt"></i>
  141. {{ event.location }}</span>
  142. <span>
  143. <i class="far fa-clock"></i>
  144. {{ event.date|date('H:i') }}</span>
  145. </div>
  146. <p style="color: #666; font-size: 0.95rem; margin-bottom: 20px; min-height: 40px;">{{ event.description|slice(0, 80) ~ '...' }}</p>
  147. <a href="{{ path('app_event_show', {id: event.id}) }}" class="btn btn-outline" style="padding: 8px 20px; font-size: 0.85rem;">En savoir plus</a>
  148. </div>
  149. </div>
  150. {% endfor %}
  151. </div>
  152. <div class="text-center" style="margin-top: 50px;">
  153. <a href="{{ path('app_evenements') }}" class="btn btn-primary">Voir tous les événements</a>
  154. </div>
  155. </div>
  156. </section>
  157. <!-- Projets à Sponsoriser -->
  158. {% if projects|length > 0 %}
  159. <section class="section-padding bg-cultural" style="overflow: hidden;">
  160. <div class="floating-icon icon-djembe float-slow" style="top: 15%; right: 8%;"></div>
  161. <div class="floating-icon icon-sun spin-slow" style="bottom: 15%; left: 5%;"></div>
  162. <div class="container">
  163. <div class="section-title fade-up">
  164. <span>Engagez-vous</span>
  165. <h2>Projets à Sponsoriser</h2>
  166. <div class="cultural-divider"></div>
  167. </div>
  168. <div class="events-grid">
  169. {% for project in projects %}
  170. <div class="event-card fade-up" style="display: flex; flex-direction: column; background: #fff; border-radius: var(--border-radius); overflow: hidden; box-shadow: var(--shadow-soft); transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.4s ease;">
  171. <div style="height: 220px; overflow: hidden; position: relative;">
  172. <img src="{{ project.image }}" alt="{{ project.title }}" style="width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease;" onmouseover="this.style.transform='scale(1.1)'" onmouseout="this.style.transform='scale(1)'">
  173. <div style="position: absolute; top: 15px; right: 15px; background: var(--gold); color: #fff; padding: 5px 12px; border-radius: 20px; font-size: 0.8rem; font-weight: bold; text-transform: uppercase; box-shadow: 0 4px 10px rgba(0,0,0,0.2);">
  174. Projet
  175. </div>
  176. </div>
  177. <div style="padding: 25px; flex: 1; display: flex; flex-direction: column;">
  178. <h3 style="margin-bottom: 15px; font-size: 1.3rem;">{{ project.title }}</h3>
  179. <p style="color: #666; font-size: 0.95rem; margin-bottom: 20px; flex: 1;">{{ project.description|slice(0, 100) }}...</p>
  180. <!-- Progress Bar -->
  181. <div style="margin-top: auto; margin-bottom: 20px;">
  182. <div style="display: flex; justify-content: space-between; font-size: 0.85rem; font-weight: bold; margin-bottom: 8px;">
  183. <span style="color: var(--green);">{{ project.currentAmount|number_format(0, ',', ' ') }}
  184. €</span>
  185. <span style="color: #888;">Objectif:
  186. {{ project.targetAmount|number_format(0, ',', ' ') }}
  187. €</span>
  188. </div>
  189. <div style="width: 100%; background: #eee; height: 10px; border-radius: 5px; overflow: hidden;">
  190. {% set percent = (project.currentAmount / project.targetAmount) * 100 %}
  191. <div style="width: {{ percent > 100 ? 100 : percent }}%; background: linear-gradient(90deg, var(--green), #2ecc71); height: 100%; border-radius: 5px; transition: width 1s ease-in-out;"></div>
  192. </div>
  193. </div>
  194. <a href="{{ path('app_sponsoring') }}" class="btn btn-outline" style="text-align: center; width: 100%; border-color: var(--gold); color: var(--gold);">Sponsoriser ce projet</a>
  195. </div>
  196. </div>
  197. {% endfor %}
  198. </div>
  199. <div class="text-center" style="margin-top: 50px;">
  200. <a href="{{ path('app_sponsoring') }}" class="btn btn-primary">Voir tous nos besoins</a>
  201. </div>
  202. </div>
  203. </section>
  204. {% endif %}
  205. <!-- CTA Adhésion -->
  206. <section class="section-padding fade-up" style="background: linear-gradient(rgba(192, 57, 43, 0.9), rgba(192, 57, 43, 0.9)), url('https://images.unsplash.com/photo-1511632765486-a01980e01a18?ixlib=rb-4.0.3&auto=format&fit=crop&w=1920&q=80') center/cover; color: #fff; padding: 80px 0;">
  207. <div class="container" style="text-align: center;">
  208. <h2 style="color: #fff; margin-bottom: 20px; font-size: 2.5rem;">Rejoignez la Grande Famille WA BENIN</h2>
  209. <p style="font-size: 1.1rem; opacity: 0.9; max-width: 700px; margin: 0 auto 30px auto; line-height: 1.6;">Devenez membre dès aujourd'hui et participez activement à nos projets. Bénéficiez d'avantages exclusifs, participez à nos assemblées et soutenez le rayonnement de la culture béninoise.</p>
  210. <a href="{{ path('app_adhesion') }}" class="btn btn-outline" style="border-color: #fff; color: #fff; padding: 15px 40px; font-size: 1.1rem;">Devenir Membre de l'Association</a>
  211. </div>
  212. </section>
  213. <!-- Articles à la une -->
  214. <section class="section-padding bg-cultural" style="overflow: hidden;">
  215. <div class="floating-icon icon-mask float-fast" style="top: 10%; right: 5%;"></div>
  216. <div class="container">
  217. <div class="section-title fade-up">
  218. <span>Nos Actualités</span>
  219. <h2>À la une du Blog</h2>
  220. <div class="cultural-divider"></div>
  221. </div>
  222. <div class="events-grid">
  223. {% for article in articles %}
  224. <div class="event-card fade-up" style="display: flex; flex-direction: column; background: #fff; border-radius: var(--border-radius); overflow: hidden; box-shadow: var(--shadow-soft);">
  225. <div style="height: 200px; overflow: hidden; position: relative;">
  226. <img src="{{ article.image }}" alt="{{ article.title }}" style="width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease;">
  227. <div style="position: absolute; bottom: 15px; left: 15px; background: var(--green); color: #fff; padding: 5px 12px; border-radius: 4px; font-size: 0.8rem; font-weight: bold; text-transform: uppercase;">
  228. {{ article.category }}
  229. </div>
  230. </div>
  231. <div style="padding: 25px; flex: 1; display: flex; flex-direction: column;">
  232. <div style="font-size: 0.85rem; color: #888; margin-bottom: 10px;">
  233. <i class="far fa-calendar-alt"></i>
  234. {{ article.createdAt|date('d/m/Y') }}
  235. &nbsp;|&nbsp;
  236. <i class="far fa-user"></i>
  237. {{ article.author }}
  238. </div>
  239. <h3 style="margin-bottom: 15px; font-size: 1.3rem; line-height: 1.4;">{{ article.title }}</h3>
  240. <p style="color: #666; font-size: 0.95rem; margin-bottom: 20px; flex: 1;">{{ article.content|slice(0, 100) ~ '...' }}</p>
  241. <a href="{{ path('app_article_show', {id: article.id}) }}" style="color: var(--gold); font-weight: 600; text-transform: uppercase; font-size: 0.9rem; display: inline-flex; align-items: center; gap: 5px;">
  242. Lire la suite
  243. <i class="fas fa-arrow-right"></i>
  244. </a>
  245. </div>
  246. </div>
  247. {% endfor %}
  248. </div>
  249. <div class="text-center" style="margin-top: 50px;">
  250. <a href="{{ path('app_blog') }}" class="btn btn-outline">Voir tous les articles</a>
  251. </div>
  252. </div>
  253. </section>
  254. <!-- Galerie Récente -->
  255. {% if galleries is defined and galleries|length > 0 %}
  256. <section class="section-padding bg-light" style="overflow: hidden;">
  257. <div class="floating-icon icon-shield float-slow" style="bottom: 10%; left: 5%;"></div>
  258. <div class="container">
  259. <div class="section-title fade-up">
  260. <span>En Images</span>
  261. <h2>Notre Galerie</h2>
  262. <div class="cultural-divider"></div>
  263. </div>
  264. <div style="display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px;">
  265. {% for gallery in galleries %}
  266. <div class="fade-up" style="border-radius: var(--border-radius); overflow: hidden; height: 250px; position: relative; cursor: pointer; box-shadow: var(--shadow-soft);">
  267. {% if gallery.isVideo %}
  268. {# Extraire l'ID Youtube pour la miniature #}
  269. {% set videoId = gallery.image|replace({'https://www.youtube.com/watch?v=': '', 'https://youtu.be/': ''}) %}
  270. <img src="https://img.youtube.com/vi/{{ videoId }}/hqdefault.jpg" alt="{{ gallery.title }}" style="width: 100%; height: 100%; object-fit: cover;">
  271. <div style="position: absolute; inset: 0; background: rgba(0,0,0,0.3); display: flex; align-items: center; justify-content: center;">
  272. <i class="fab fa-youtube" style="color: red; font-size: 3rem; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));"></i>
  273. </div>
  274. {% else %}
  275. <img src="{{ gallery.image }}" alt="{{ gallery.title }}" style="width: 100%; height: 100%; object-fit: cover;">
  276. {% endif %}
  277. <div style="position: absolute; bottom: 0; left: 0; right: 0; padding: 15px; background: linear-gradient(transparent, rgba(0,0,0,0.8)); color: #fff;">
  278. <h4 style="margin: 0; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">{{ gallery.title }}</h4>
  279. </div>
  280. </div>
  281. {% endfor %}
  282. </div>
  283. <div class="text-center" style="margin-top: 40px;">
  284. <a href="{{ path('app_galerie') }}" class="btn btn-outline">Explorer la galerie</a>
  285. </div>
  286. </div>
  287. </section>
  288. {% endif %}
  289. <!-- Partenaires (Identique à l'Association) -->
  290. <section class="section-padding" style="padding-bottom: 50px;">
  291. <div class="container fade-up" style="text-align: center;">
  292. <div class="section-title" style="margin-bottom: 40px;">
  293. <span>Ils nous font confiance</span>
  294. </div>
  295. <div style="display: flex; justify-content: center; align-items: center; gap: 50px; flex-wrap: wrap; opacity: 0.6;">
  296. <i class="fab fa-aws" style="font-size: 3rem; color: #555;"></i>
  297. <i class="fab fa-google" style="font-size: 3rem; color: #555;"></i>
  298. <i class="fab fa-spotify" style="font-size: 3rem; color: #555;"></i>
  299. <i class="fab fa-stripe" style="font-size: 3rem; color: #555;"></i>
  300. <i class="fab fa-paypal" style="font-size: 3rem; color: #555;"></i>
  301. </div>
  302. </div>
  303. <!-- Donation Section Parallax -->
  304. <section class="donation-cta fade-up" style="background: linear-gradient(rgba(30, 132, 73, 0.9), rgba(30, 132, 73, 0.9)), url('https://images.unsplash.com/photo-1493225457124-a1a2a5f0a424?ixlib=rb-4.0.3&auto=format&fit=crop&w=1920&q=80') center/cover fixed; padding: 120px 0; text-align: center; color: #fff;">
  305. <div class="container">
  306. <i class="fas fa-heart" style="font-size: 4rem; color: var(--gold); margin-bottom: 30px;"></i>
  307. <h2 style="font-size: 3rem; margin-bottom: 25px; color: #fff;">Soutenez la Culture Béninoise</h2>
  308. <p style="font-size: 1.2rem; max-width: 800px; margin: 0 auto 40px auto; line-height: 1.8; opacity: 0.9;">Votre don permet de financer nos événements, d'accompagner de jeunes artistes et de promouvoir notre patrimoine culturel à l'international. Chaque geste compte.</p>
  309. <a href="{{ path('app_dons') }}" class="btn btn-primary" style="font-size: 1.1rem; padding: 15px 40px; box-shadow: 0 4px 15px rgba(0,0,0,0.3);">Faire un Don Sécurisé</a>
  310. </div>
  311. </section>
  312. {% endblock %}