/* Styles personnalisés */
:root {
	--titresection: #638B64;
	--orange-elements: #FE7130;
	--green-logo: #8cbd8dff;
	--text-color: #3F5740;
}

body {
	background-color: white;
}

/* Hero section - ajustement pour menu sticky */
.hero-section {
	min-height: 100vh;
	display: flex;
	align-items: center;
	padding: 120px 0 5% 0; /* Padding-top augmenté pour compenser le menu fixe */
	margin-top: 0;
}

/* Typography - Titres */
h1, h2, h3, h4, h5, h6,
.hero-title,
.hero-title-mobile,
.section-title,
.project-title,
.footer-title {
	font-family: 'Poppins', sans-serif;
	font-weight: 300;
	color: var(--titresection);
}

/* Typography - Textes */
p, 
.hero-text,
.project-category,
.footer li,
.footer a,
.scroll-text {
	font-family: 'Lato', sans-serif;
	font-weight: 400;
	color: var(--text-color);
}



.hero-section {
	border-bottom: 0.5px var(--orange-elements);
}

.hero-title {
	font-size: 2.5rem;
	line-height: 1.2;
	margin-bottom: 30px;
	margin-right: 50px;
	margin-left: 30px;
}

.hero-title-mobile{
	display: none;
}

.hero-text {
	font-size: 0.9rem;
	line-height: 1.6;
	margin-bottom: 10px;
	margin-right: 10px;
	margin-left: 30px;
}

/* Animation de rebond pour la flèche */
@keyframes bounce {
	0%, 20%, 50%, 80%, 100% {
		transform: translateY(0);
	}
	40% {
		transform: translateY(-8px);
	}
	60% {
		transform: translateY(-4px);
	}
}

/* Animation au hover */
.scroll-text:hover .scroll-arrow {
	animation-play-state: paused;
	transform: translateY(-3px) scale(1.1);
}

/* Image container avec forme arrondie */
.hero-image-container {
	position: relative;
	width: 100%;
	max-width: 400px;
	margin: 0 auto;
}

.hero-image {
	width: 100%;
	height: 550px;
	object-fit: cover;
	object-position: top;
	border-radius: 200px 200px 0 0;
}

.geo-element {
	position: absolute;
	width: 80px;
	height: 80px;
}

.geo-1 {
	fill: var(--green-logo);
	width: 100px;
	height: 100px;
	bottom: 60px;
	left: -50px;
}

.geo-2 {
	fill: var(--orange-elements);
	width: 110px;
	height: 110px;
	top: 0px;
	right: -10px;
}

.geo-3 {
	width: 70px;
	top: 120px;
	right: -30px;
}

.geo-4 {
	width: 60px;
	height: 60px;
	bottom: 200px;
	left: -30px;
}

.button-hero {
    /* Dimensions et positionnement */
    display: inline-block;
    width: 239px;
    height: 50px;
    margin-left: 30px;
    
    /* Typographie */
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
    font-size: 16px;
    color: white;
    text-decoration: none;
    
    /* Layout interne */
    display: flex;
    align-items: center;
    justify-content: center;
    
    /* Apparence */
    background-color: var(--green-logo);
    border: none;
    border-radius: 0; /* Pas d'arrondi comme demandé */
    
    /* Positionnement pour l'effet de hover */
    position: relative;
    overflow: hidden;
    z-index: 1;
    
    /* Transition pour le texte */
    transition: color 0.5s ease;
    
    /* Empêche la sélection du texte */
    user-select: none;
}

/* Pseudo-élément pour l'effet de remplissage */
.button-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: var(--orange-elements);
    transition: left 0.5s ease;
    z-index: -1;
}

/* Effet au hover */
.button-hero:hover::before {
    left: 0;
}

/* État actif (même que hover) */
.button-hero:active::before {
    left: 0;
}

/* S'assurer que le texte reste blanc */
.button-hero:hover,
.button-hero:active {
    color: white;
    text-decoration: none;
}


/*service section*/

/* Section services */
.servicepropos {
    padding: 60px 0;
}

/* Container pour chaque service */
.service-item {
    display: flex;
    align-items: flex-start;
    gap: 30px; /* Gap augmenté pour plus d'espace */
    margin-bottom: 40px;
}

/* Container des SVG */
.svg-service {
    position: relative;
    flex-shrink: 0; /* Empêche le container SVG de rétrécir */
    width: 120px; /* Largeur fixe pour contenir les débordements */
    height: 100px; /* Hauteur fixe */
}

/* Tailles spécifiques des SVG */
.svg-service1, .svg-service7 {
    width: 100px !important;
    height: 100px !important;
    fill: var(--orange-elements);
}

.svg-service3, .svg-service5 {
	width: 100px !important;
	height: 100px !important;
	fill: var(--green-logo);
}

.svg-service2, .svg-service4, .svg-service6, .svg-service8 {
    width: 50px !important;
    height: auto !important;
    fill: black;
}

/* Positionnement des petits SVG décoratifs */
.svg-service-element {
    position: absolute;
}

/* Positionnement spécifique pour chaque SVG décoratif */
.svg-service2 {
    top: 30px;
    right: 45px;
}

.svg-service4 {
    top: 10px;
    right: 20px;
}

.svg-service6 {
    top: 60px;
    right: 80px;
}

.svg-service8 {
    top: 60px;
    right: 80px;
}

/* Styles pour le texte */
.service-text {
    flex: 1; /* Prend tout l'espace restant */
}

.service-text h2 {
    font-family: 'Poppins', sans-serif;
    font-weight: 300;
    color: var(--titresection);
    font-size: 1.5rem;
    margin-bottom: 10px;
    line-height: 1.2;
}

.service-text p {
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    color: var(--text-color);
    font-size: 0.9rem;
    line-height: 1.6;
    margin-bottom: 0;
}

/* Responsive */
@media (max-width: 768px) {
    .service-item {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 15px;
    }
    
    .svg-service {
        align-self: center;
    }
}


/* Section Parlez nous de votre projet */
.ceciestvotreprojet-section {
    padding-top: 8%;
    padding-bottom: 8%;
    padding-right: 2%;
    padding-left: 2%;
    background-color: #fff;
}

.ceciestvotreprojet-section h2 {
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
    color: var(--titresection);
    font-size: 30px;
    margin-bottom: 20px;
}

.ceciestvotreprojet-section p {
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    color: var(--text-color);
    font-size: 0.9rem;
    line-height: 1.6;
    margin-bottom: 30px;
}

/* Styles du formulaire minimaliste */
.ceciestvotreprojet-section .form-control {
    background-color: transparent;
    border: none;
    border-bottom: 1px solid var(--green-logo);
    border-radius: 0;
    padding: 15px 0;
    font-family: 'Lato', sans-serif;
    font-size: 0.9rem;
    color: var(--text-color);
    box-shadow: none;
}

.ceciestvotreprojet-section .form-control:focus {
    background-color: transparent;
    border-color: var(--green-logo);
    box-shadow: none;
    outline: none;
}

.ceciestvotreprojet-section .form-control::placeholder {
    color: var(--green-logo);
    opacity: 0.8;
}

/* Bouton identique au hero */
.ceciestvotreprojet-section .btn-primary {
    width: 239px;
    height: 50px;
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
    font-size: 16px;
    color: white;
    background-color: var(--green-logo);
    border: none;
    border-radius: 0;
    position: relative;
    overflow: hidden;
    z-index: 1;
    transition: color 0.5s ease;
    user-select: none;
}

.ceciestvotreprojet-section .btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: var(--orange-elements);
    transition: left 0.5s ease;
    z-index: -1;
}

.ceciestvotreprojet-section .btn-primary:hover::before,
.ceciestvotreprojet-section .btn-primary:active::before {
    left: 0;
}

.ceciestvotreprojet-section .btn-primary:hover,
.ceciestvotreprojet-section .btn-primary:active {
    color: white;
    background-color: var(--green-logo);
    border-color: var(--green-logo);
}

/* Container des images en mode moulin */
.ceciestvotreprojet-section .col-lg-7 {
    position: relative;
    height: 500px;
    overflow: visible;
}

/* Styles des images moulin */
.img-moulin {
    position: absolute;
    width: 260px;
    height: 360px;
    object-fit: cover;
    border: 7px solid white;
}

/* Positionnement spécifique de chaque image en mode tuiles qui se chevauchent */
.img-moulin1 {
    top: -55px;
    left: 240px;
    z-index: 1;
}

.img-moulin2 {
    top: -25px;
    left: 500px;
    z-index: 2;
}

.img-moulin3 {
    top: 130px;
    left: 120px;
    z-index: 3;
}

.img-moulin4 {
    top: 200px;
    left: 415px;
    z-index: 4;
}