567 lines
17 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Accueil - Green Travel</title>
<link rel="stylesheet" href="css/styles.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<style>
body {
font-family: 'Arial', sans-serif;
margin: 0;
padding: 0;
color: #333;
background-color: var(--primary-light);
}
header {
background-color: var(--primary-green);
padding: 15px 0;
}
header nav ul {
list-style: none;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
}
header nav ul li {
margin: 0 15px;
}
header nav ul li a {
text-decoration: none;
color: #fff;
font-weight: bold;
}
header nav ul li a.active {
text-decoration: underline;
}
main {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
background-color: #fff;
border-radius: 8px;
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
}
main h1 {
text-align: center;
color: var(--primary-green);
margin-bottom: 20px;
}
/* Styles du diaporama amélioré */
.hero {
position: relative;
height: 60vh;
min-height: 400px;
overflow: hidden;
}
.slideshow {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.slide {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
transition: opacity 1.5s ease-in-out;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
.slide::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(
rgba(0, 0, 0, 0.4),
rgba(0, 0, 0, 0.5)
);
}
.slide.active {
opacity: 1;
}
/* Indicateurs de slide plus élégants */
.slide-indicators {
position: absolute;
bottom: 30px;
left: 50%;
transform: translateX(-50%);
gap: 15px;
z-index: 3;
}
.indicator {
width: 40px;
height: 4px;
background: rgba(255, 255, 255, 0.3);
cursor: pointer;
transition: all 0.3s ease;
}
.indicator.active {
background: var(--primary-green);
width: 60px;
}
/* Contenu hero simplifié */
.hero-content {
position: relative;
z-index: 2;
text-align: center;
padding: 40px 60px;
max-width: 900px;
margin: 0 auto;
background: rgba(0, 0, 0, 0.25);
border-radius: 15px;
backdrop-filter: blur(8px);
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
}
.hero h1 {
font-size: 4em;
margin-bottom: 25px;
font-weight: 700;
color: white;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
letter-spacing: 2px;
}
.hero p {
font-size: 1.4em;
margin: 25px auto;
line-height: 1.6;
max-width: 700px;
color: #fff;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}
.cta-button {
display: inline-block;
padding: 15px 40px;
background-color: var(--primary-green);
color: white;
text-decoration: none;
border-radius: 8px;
font-size: 1.3em;
transition: all 0.3s ease;
border: 2px solid transparent;
font-weight: 600;
margin-top: 20px;
letter-spacing: 1px;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}
.cta-button:hover {
background-color: transparent;
border-color: var(--primary-green);
transform: translateY(-3px);
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}
/* Suppression des éléments flottants et des vagues */
.floating-elements, .wave, .wave2 {
display: none;
}
/* Badges simplifiés */
.eco-badges {
display: flex;
justify-content: center;
gap: 25px;
margin: 25px 0;
}
.eco-badge {
background-color: rgba(255, 255, 255, 0.15);
color: white;
padding: 10px 20px;
border-radius: 8px;
font-size: 1.2em;
display: flex;
align-items: center;
gap: 10px;
backdrop-filter: blur(5px);
border: 1px solid rgba(255, 255, 255, 0.2);
transition: all 0.3s ease;
}
.eco-badge:hover {
background-color: rgba(255, 255, 255, 0.25);
transform: translateY(-2px);
}
.eco-badge i {
color: var(--primary-green);
font-size: 1.2em;
}
/* Section Statistiques */
.stats {
background-color: var(--primary-light);
padding: 20px 0;
text-align: center;
}
.stats-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
max-width: 1200px;
margin: 0 auto;
padding: 10px;
}
.stat-item {
background: white;
padding: 15px;
border-radius: 15px;
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
transition: transform 0.3s ease;
}
.stat-item:hover {
transform: translateY(-10px);
}
.stat-item i {
font-size: 1.8em;
color: var(--primary-green);
margin-bottom: 8px;
}
.stat-item h3 {
font-size: 1.5em;
color: var(--primary-green);
margin: 5px 0;
}
.stat-item p {
font-size: 0.9em;
margin: 0;
}
/* Section Caractéristiques */
.features {
padding: 25px 10px;
background: white;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 15px;
max-width: 1200px;
margin: 0 auto;
}
.feature-card {
background: var(--primary-light);
padding: 15px;
border-radius: 15px;
text-align: center;
transition: transform 0.3s ease;
position: relative;
overflow: hidden;
}
.feature-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(45deg, transparent, rgba(255,255,255,0.3), transparent);
transform: translateX(-100%);
transition: transform 0.6s ease;
}
.feature-card:hover::before {
transform: translateX(100%);
}
.feature-card:hover {
transform: translateY(-5px);
}
.feature-card i {
font-size: 1.8em;
color: var(--primary-green);
margin-bottom: 10px;
}
.feature-card h3 {
font-size: 1.2em;
margin: 5px 0;
}
.feature-card p {
font-size: 0.9em;
margin: 5px 0;
}
/* Animations */
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.scroll-reveal {
opacity: 0;
transform: translateY(10px);
transition: opacity 0.6s ease, transform 0.6s ease;
}
.scroll-reveal.visible {
opacity: 1;
transform: translateY(0);
}
/* Waves decoration */
.wave {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 50px;
background: url('https://raw.githubusercontent.com/SochavaAG/example-mycode/master/pens/animation-waves/images/wave.png');
background-size: 1000px 50px;
animation: wave 30s linear infinite;
opacity: 0.3;
}
.wave.wave2 {
animation: wave2 15s linear infinite;
opacity: 0.1;
animation-delay: -5s;
}
@keyframes wave {
0% { background-position-x: 0; }
100% { background-position-x: 1000px; }
}
@keyframes wave2 {
0% { background-position-x: 0; }
100% { background-position-x: -1000px; }
}
/* Réduction des marges entre les sections */
section {
margin: 10px 0;
}
/* Ajustement du responsive */
@media (max-width: 768px) {
.hero {
height: 50vh;
min-height: 300px;
}
.hero-content {
margin: 0 20px;
padding: 30px;
}
.hero h1 {
font-size: 2.8em;
}
.hero p {
font-size: 1.2em;
}
.slide-indicators {
left: 50%;
transform: translateX(-50%);
}
.stats-container {
grid-template-columns: repeat(2, 1fr);
}
.eco-badges {
flex-direction: column;
gap: 15px;
}
}
</style>
</head>
<body>
<header>
<nav>
<ul>
<li><a href="index.html" class="active">Accueil</a></li>
<li><a href="services.php">Services</a></li>
<li><a href="about.html">À propos</a></li>
<li><a href="equipe.html">Notre Équipe</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</nav>
</header>
<section class="hero">
<div class="slideshow">
<div class="slide active" style="background-image: url('https://images.unsplash.com/photo-1682686581030-e77f17e1ee73')"></div>
<div class="slide" style="background-image: url('https://images.unsplash.com/photo-1682687982501-1e58ab814714')"></div>
<div class="slide" style="background-image: url('https://images.unsplash.com/photo-1682687218147-9806132dc697')"></div>
<div class="slide" style="background-image: url('https://images.unsplash.com/photo-1682687220067-469c053495b1')"></div>
</div>
<div class="hero-content">
<h1>Voyagez Responsable</h1>
<div class="eco-badges">
<span class="eco-badge">
<i class="fas fa-leaf"></i>
Éco-responsable
</span>
<span class="eco-badge">
<i class="fas fa-globe"></i>
Durable
</span>
</div>
<p>Découvrez des destinations éco-responsables et vivez des expériences uniques tout en préservant notre planète.</p>
<a href="services.php" class="cta-button">Découvrir nos offres</a>
</div>
<div class="slide-indicators">
<span class="indicator active"></span>
<span class="indicator"></span>
<span class="indicator"></span>
<span class="indicator"></span>
</div>
</section>
<section class="stats">
<div class="stats-container">
<div class="stat-item scroll-reveal">
<i class="fas fa-tree"></i>
<h3>1000+</h3>
<p>Arbres plantés</p>
</div>
<div class="stat-item scroll-reveal">
<i class="fas fa-users"></i>
<h3>5000+</h3>
<p>Voyageurs satisfaits</p>
</div>
<div class="stat-item scroll-reveal">
<i class="fas fa-globe-americas"></i>
<h3>20+</h3>
<p>Destinations vertes</p>
</div>
<div class="stat-item scroll-reveal">
<i class="fas fa-handshake"></i>
<h3>150+</h3>
<p>Partenaires locaux</p>
</div>
</div>
</section>
<section class="features">
<div class="features-grid">
<div class="feature-card scroll-reveal">
<i class="fas fa-leaf"></i>
<h3>Éco-responsable</h3>
<p>Tous nos voyages sont conçus dans le respect de l'environnement.</p>
</div>
<div class="feature-card scroll-reveal">
<i class="fas fa-heart"></i>
<h3>Authenticité</h3>
<p>Vivez des expériences authentiques au contact des populations locales.</p>
</div>
<div class="feature-card scroll-reveal">
<i class="fas fa-shield-alt"></i>
<h3>Engagement</h3>
<p>Nous nous engageons pour un tourisme durable et responsable.</p>
</div>
</div>
</section>
<script>
// Script pour le diaporama
document.addEventListener('DOMContentLoaded', function() {
const slides = document.querySelectorAll('.slide');
const indicators = document.querySelectorAll('.indicator');
let currentSlide = 0;
const slideCount = slides.length;
function nextSlide() {
slides[currentSlide].classList.remove('active');
indicators[currentSlide].classList.remove('active');
currentSlide = (currentSlide + 1) % slideCount;
slides[currentSlide].classList.add('active');
indicators[currentSlide].classList.add('active');
}
// Changement manuel avec les indicateurs
indicators.forEach((indicator, index) => {
indicator.addEventListener('click', () => {
slides[currentSlide].classList.remove('active');
indicators[currentSlide].classList.remove('active');
currentSlide = index;
slides[currentSlide].classList.add('active');
indicators[currentSlide].classList.add('active');
});
});
// Changement automatique toutes les 5 secondes
setInterval(nextSlide, 5000);
});
// Animation au scroll
const scrollRevealElements = document.querySelectorAll('.scroll-reveal');
const revealOnScroll = () => {
scrollRevealElements.forEach(element => {
const elementTop = element.getBoundingClientRect().top;
const windowHeight = window.innerHeight;
if (elementTop < windowHeight - 100) {
element.classList.add('visible');
}
});
};
window.addEventListener('scroll', revealOnScroll);
window.addEventListener('load', revealOnScroll);
</script>
<footer>
<p>&copy; 2025 Green Travel. Tous droits réservés.</p>
</footer>
</body>
</html>