.realisations-section {
padding: 80px 0;
h2 {
font-size: var(--font-size-5xl);
text-align: center;
font-weight: 600;
} .realisations-carousel-container {
position: relative;
padding: 0 60px; } .carousel-nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 60px;
height: 60px;
background-color: white;
border: none;
border-radius: 50%;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
cursor: pointer;
z-index: 10;
display: flex;
align-items: center;
justify-content: center;
opacity: 0.9s;
transition: opacity 0.3s ease, transform 0.3s ease;
&:hover {
opacity: 1;
transform: translateY(-50%) scale(1.1);
}
&.hidden {
opacity: 0;
pointer-events: none;
}
svg {
width: 36px;
height: 36px;
color: #5d8f9f;
}
&.carousel-prev {
left: 15px;
}
&.carousel-next {
right: 15px;
}
}
.realisations-carousel {
display: flex;
overflow-x: auto;
gap: 20px;
padding: 20px 0;
scroll-snap-type: x mandatory;
scrollbar-width: none;
-ms-overflow-style: none;
&::-webkit-scrollbar {
display: none;
}
.projet-item {
flex: 0 0 350px;
height: 250px;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
scroll-snap-align: center;
perspective: 1000px;
.projet-link {
display: block;
width: 100%;
height: 100%;
text-decoration: none;
color: inherit;
position: relative;
}
.projet-card {
position: relative;
width: 100%;
height: 100%;
transition: transform 0.6s;
transform-style: preserve-3d;
&.flipped {
transform: rotateY(180deg);
}
}
.projet-card-front,
.projet-card-back {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
border-radius: 12px;
overflow: hidden;
}
.projet-card-front {
background-size: cover;
background-position: center;
.projet-overlay {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 20px;
background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
h3 {
margin: 0 0 5px 0;
font-size: var(--font-size-xl);
font-weight: 600;
color: white;
}
.click-hint-mobile {
margin: 0;
font-size: var(--font-size-xs);
color: rgba(255, 255, 255, 0.8);
font-style: italic;
display: none;
}
}
}
.projet-card-back {
transform: rotateY(180deg);
background-color: #5d8f9f;
color: white;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 20px;
text-align: center;
h3 {
margin: 0 0 10px 0;
font-size: var(--font-size-xl);
}
.projet-description {
margin-bottom: 15px;
font-size: var(--font-size-sm);
line-height: 1.4;
}
.click-hint-mobile {
margin: 10px 0 0 0;
font-size: var(--font-size-xs);
color: rgba(255, 255, 255, 0.8);
font-style: italic;
display: none;
}
} &.touch-device {
.click-hint-mobile {
display: block !important;
}
} &.desktop-device {
.click-hint-mobile {
display: none !important;
}
}
}
}
.realisations-action {
margin-top: 40px;
text-align: center;
} @media (max-width: 520px) {
padding: 60px 0;
h2 {
font-size: var(--font-size-4xl);
padding: 0 20px;
}
.realisations-carousel-container {
padding: 0 35px;
}
.carousel-nav {
width: 45px;
height: 45px;
svg {
width: 24px;
height: 24px;
}
&.carousel-prev {
left: 5px;
}
&.carousel-next {
right: 5px;
}
}
.realisations-carousel {
gap: 15px;
padding: 15px 0;
.projet-item {
flex: 0 0 280px;
height: 200px;
.projet-card-front {
.projet-overlay {
padding: 15px;
h3 {
font-size: var(--font-size-lg);
margin: 0 0 3px 0;
}
.click-hint-mobile {
font-size: var(--font-size-xs);
}
}
}
.projet-card-back {
padding: 15px;
h3 {
font-size: var(--font-size-lg);
margin: 0 0 8px 0;
}
.projet-description {
font-size: var(--font-size-xs);
margin-bottom: 8px;
}
.click-hint-mobile {
font-size: var(--font-size-xs);
margin-top: 8px;
}
}
}
}
.realisations-action {
margin-top: 30px;
padding: 0 20px;
}
} @media (max-width: 400px) {
padding: 50px 0;
h2 {
font-size: var(--font-size-3xl);
padding: 0 15px;
}
.realisations-carousel-container {
padding: 0 30px;
}
.carousel-nav {
width: 40px;
height: 40px;
svg {
width: 20px;
height: 20px;
}
&.carousel-prev {
left: 2px;
}
&.carousel-next {
right: 2px;
}
}
.realisations-carousel {
gap: 12px;
padding: 12px 0;
.projet-item {
flex: 0 0 240px;
height: 180px;
.projet-card-front {
.projet-overlay {
padding: 12px;
h3 {
font-size: var(--font-size-base);
margin: 0 0 2px 0;
}
.click-hint-mobile {
font-size: var(--font-size-xs);
}
}
}
.projet-card-back {
padding: 12px;
h3 {
font-size: var(--font-size-base);
margin: 0 0 6px 0;
}
.projet-description {
font-size: var(--font-size-xs);
margin-bottom: 8px;
line-height: 1.3;
}
.click-hint-mobile {
font-size: var(--font-size-xs);
margin-top: 6px;
}
}
}
}
.realisations-action {
margin-top: 25px;
padding: 0 15px;
}
}
}