/*=========================================================
                    VTC MANANGE PRESTIGE
                      STYLE V11
==========================================================*/

/*==========================
        VARIABLES
==========================*/

:root{

--primary:#7B2EFF;
--primary-dark:#5D1FD4;
--secondary:#A66CFF;

--black:#090909;
--black-light:#151515;
--black-card:#1D1D1D;

--white:#FFFFFF;
--gray:#C8C8C8;
--gray-dark:#8A8A8A;

--success:#00C16E;
--danger:#FF5252;

--shadow:

0 15px 40px rgba(0,0,0,.35);

--radius:18px;

--transition:.35s ease;

--container:1280px;

}

/*==========================
        RESET
==========================*/

*{

margin:0;

padding:0;

box-sizing:border-box;

}

html{

scroll-behavior:smooth;

}

body{

font-family:'Poppins',sans-serif;

background:var(--black);

color:var(--white);

overflow-x:hidden;

line-height:1.6;

}

img{

display:block;

width:100%;

height:auto;

}

a{

text-decoration:none;

color:inherit;

transition:var(--transition);

}

ul{

list-style:none;

}

button{

font-family:inherit;

cursor:pointer;

border:none;

background:none;

}

input,
textarea,
select{

font-family:inherit;

outline:none;

}

section{

padding:110px 0;

position:relative;

}

.container{

width:min(92%,var(--container));

margin:auto;

}

/*==========================
        TYPOGRAPHIE
==========================*/

h1{

font-size:clamp(2.8rem,6vw,5rem);

font-weight:800;

line-height:1.1;

margin-bottom:25px;

}

h2{

font-size:clamp(2rem,4vw,3rem);

font-weight:700;

margin-bottom:20px;

}

h3{

font-size:1.35rem;

font-weight:600;

margin-bottom:12px;

}

p{

color:var(--gray);

font-size:1.05rem;

}

.section-title{

text-align:center;

max-width:850px;

margin:0 auto 70px;

}

.section-subtitle{

display:inline-flex;

align-items:center;

gap:10px;

padding:10px 22px;

border-radius:40px;

background:rgba(123,46,255,.12);

border:1px solid rgba(123,46,255,.35);

color:var(--secondary);

font-size:.95rem;

font-weight:600;

margin-bottom:20px;

}

/*==========================
        HEADER
==========================*/

.site-header{

position:fixed;

top:0;

left:0;

width:100%;

z-index:1000;

background:rgba(9,9,9,.82);

backdrop-filter:blur(18px);

border-bottom:1px solid rgba(255,255,255,.06);

transition:var(--transition);

}

.site-header.scrolled{

background:rgba(9,9,9,.95);

box-shadow:0 10px 35px rgba(0,0,0,.45);

}

.header-container{

display:flex;

align-items:center;

justify-content:space-between;

height:88px;

}

.logo{

display:flex;

align-items:center;

gap:15px;

}

.logo img{

height:58px;

width:auto;

display:block;

transition:0.3s ease;

}

.logo:hover img{

transform:scale(1.03);

}

.main-nav ul{

display:flex;

align-items:center;

gap:38px;

}

.main-nav a{

position:relative;

font-weight:500;

font-size:1rem;

color:var(--white);

transition:var(--transition);

}

.main-nav a:hover{

color:var(--secondary);

}

.main-nav a.active{

color:var(--secondary);

}

.main-nav a::after{

content:"";

position:absolute;

left:0;

bottom:-8px;

width:0;

height:2px;

background:var(--primary);

transition:var(--transition);

}

.main-nav a:hover::after,

.main-nav a.active::after{

width:100%;

}

.header-actions{

display:flex;

align-items:center;

gap:18px;

}

.phone-btn{

display:flex;

align-items:center;

gap:10px;

padding:12px 18px;

border-radius:40px;

background:rgba(255,255,255,.05);

border:1px solid rgba(255,255,255,.08);

font-weight:600;

transition:var(--transition);

}

.phone-btn:hover{

background:var(--primary);

transform:translateY(-3px);

box-shadow:0 12px 30px rgba(123,46,255,.35);

}

.btn-header{

padding:14px 28px;

border-radius:40px;

background:linear-gradient(135deg,var(--primary),var(--primary-dark));

color:var(--white);

font-weight:600;

transition:var(--transition);

box-shadow:0 15px 35px rgba(123,46,255,.35);

}

.btn-header:hover{

transform:translateY(-3px);

box-shadow:0 20px 45px rgba(123,46,255,.45);

}

.menu-toggle{

display:none;

flex-direction:column;

justify-content:center;

gap:6px;

width:46px;

height:46px;

cursor:pointer;

}

.menu-toggle span{

display:block;

height:3px;

border-radius:5px;

background:var(--white);

transition:var(--transition);

}

/*==========================
            HERO
==========================*/

.hero{

padding-top:170px;

padding-bottom:120px;

background:

radial-gradient(circle at top right,
rgba(123,46,255,.18),
transparent 35%),

radial-gradient(circle at bottom left,
rgba(123,46,255,.10),
transparent 40%),

var(--black);

overflow:hidden;

}

.page-hero{

padding-top:170px;

padding-bottom:110px;

}

.hero-grid{

display:grid;

grid-template-columns:1.05fr .95fr;

align-items:center;

gap:70px;

}

.hero-content{

position:relative;

z-index:2;

}

.hero-content h1 span{

color:var(--primary);

}

.hero-content p{

font-size:1.15rem;

max-width:620px;

margin-bottom:40px;

}

.hero-badge{

display:inline-flex;

align-items:center;

gap:10px;

padding:12px 22px;

border-radius:50px;

background:rgba(123,46,255,.15);

border:1px solid rgba(123,46,255,.35);

color:var(--secondary);

font-size:.95rem;

font-weight:600;

margin-bottom:25px;

}

.hero-buttons{

display:flex;

align-items:center;

flex-wrap:wrap;

gap:18px;

margin-top:35px;

}

.hero-stats{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:22px;

margin-top:55px;

}

.stat-card{

padding:28px;

background:var(--black-card);

border:1px solid rgba(255,255,255,.05);

border-radius:var(--radius);

text-align:center;

transition:var(--transition);

}

.stat-card:hover{

transform:translateY(-8px);

border-color:rgba(123,46,255,.35);

box-shadow:0 20px 40px rgba(0,0,0,.35);

}

.stat-card strong{

display:block;

font-size:2rem;

color:var(--primary);

font-weight:700;

margin-bottom:8px;

}

.stat-card span{

color:var(--gray);

font-size:.95rem;

}

.hero-image{

position:relative;

}

.hero-image img{

border-radius:26px;

box-shadow:0 35px 70px rgba(0,0,0,.45);

transition:var(--transition);

}

.hero-image:hover img{

transform:scale(1.02);

}

.hero-image::before{

content:"";

position:absolute;

width:260px;

height:260px;

border-radius:50%;

background:rgba(123,46,255,.25);

filter:blur(80px);

top:-40px;

right:-40px;

z-index:-1;

}

/*==========================
            BOUTONS
==========================*/

.btn-primary,

.btn-secondary{

display:inline-flex;

align-items:center;

justify-content:center;

gap:12px;

padding:16px 34px;

border-radius:50px;

font-size:1rem;

font-weight:600;

transition:var(--transition);

cursor:pointer;

}

.btn-primary{

background:linear-gradient(
135deg,
var(--primary),
var(--primary-dark)
);

color:var(--white);

box-shadow:0 18px 40px rgba(123,46,255,.35);

}

.btn-primary:hover{

transform:translateY(-5px);

box-shadow:0 28px 55px rgba(123,46,255,.45);

}

.btn-secondary{

background:transparent;

border:2px solid var(--primary);

color:var(--white);

}

.btn-secondary:hover{

background:var(--primary);

transform:translateY(-5px);

box-shadow:0 20px 45px rgba(123,46,255,.30);

}

.hero-buttons .btn-primary,

.hero-buttons .btn-secondary{

min-width:220px;

}

/*==========================
        SECTIONS
==========================*/

.services,

.vehicle,

.gallery,

.why-us,

.contact-section,

.reservation-section,

.experience,

.faq,

.cta{

position:relative;

overflow:hidden;

}

.services::before,

.vehicle::before,

.gallery::before,

.why-us::before,

.contact-section::before,

.reservation-section::before,

.experience::before,

.faq::before,

.cta::before{

content:"";

position:absolute;

top:0;

left:50%;

transform:translateX(-50%);

width:700px;

height:1px;

background:linear-gradient(

90deg,

transparent,

rgba(123,46,255,.45),

transparent

);

}

.section-title h2{

margin-top:18px;

margin-bottom:20px;

}

.section-title p{

max-width:760px;

margin:auto;

}

.section-dark{

background:var(--black-light);

}

.section-light{

background:var(--black-card);

}

.text-center{

text-align:center;

}

.mt-30{

margin-top:30px;

}

.mb-30{

margin-bottom:30px;

}

/*==========================
            CARTES
==========================*/

.services-grid,

.why-grid,

.experience-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

gap:30px;

}

.service-card,

.why-card,

.experience-card,

.info-card{

position:relative;

padding:40px 32px;

background:var(--black-card);

border:1px solid rgba(255,255,255,.05);

border-radius:var(--radius);

transition:var(--transition);

overflow:hidden;

}

.service-card::before,

.why-card::before,

.experience-card::before,

.info-card::before{

content:"";

position:absolute;

top:0;

left:0;

width:100%;

height:4px;

background:linear-gradient(

90deg,

var(--primary),

var(--secondary)

);

transform:scaleX(0);

transform-origin:left;

transition:var(--transition);

}

.service-card:hover,

.why-card:hover,

.experience-card:hover,

.info-card:hover{

transform:translateY(-10px);

border-color:rgba(123,46,255,.35);

box-shadow:0 25px 55px rgba(0,0,0,.40);

}

.service-card:hover::before,

.why-card:hover::before,

.experience-card:hover::before,

.info-card:hover::before{

transform:scaleX(1);

}

.service-card i,

.why-card i,

.experience-card i,

.info-card i{

width:70px;

height:70px;

display:flex;

align-items:center;

justify-content:center;

border-radius:18px;

margin-bottom:25px;

font-size:28px;

color:var(--white);

background:linear-gradient(

135deg,

var(--primary),

var(--primary-dark)

);

box-shadow:0 15px 35px rgba(123,46,255,.35);

}

.service-card h3,

.why-card h3,

.experience-card h3{

margin-bottom:16px;

font-size:1.35rem;

}

.service-card p,

.why-card p,

.experience-card p,

.info-card p{

color:var(--gray);

font-size:1rem;

line-height:1.8;

}

.step-number{

display:inline-flex;

align-items:center;

justify-content:center;

width:42px;

height:42px;

border-radius:50%;

background:var(--primary);

color:var(--white);

font-size:.95rem;

font-weight:700;

margin-bottom:20px;

box-shadow:0 12px 30px rgba(123,46,255,.35);

}

/*==========================
        NOTRE VÉHICULE
==========================*/

.vehicle-grid{

display:grid;

grid-template-columns:1fr 1fr;

align-items:center;

gap:70px;

}

.vehicle-image{

position:relative;

}

.vehicle-image img{

border-radius:24px;

box-shadow:0 30px 60px rgba(0,0,0,.40);

transition:var(--transition);

}

.vehicle-image:hover img{

transform:scale(1.02);

}

.vehicle-content h2{

margin:18px 0 25px;

}

.vehicle-content p{

margin-bottom:35px;

}

.vehicle-features{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:18px;

margin-bottom:40px;

}

.feature{

display:flex;

align-items:center;

gap:14px;

padding:18px;

background:var(--black-card);

border:1px solid rgba(255,255,255,.05);

border-radius:14px;

transition:var(--transition);

}

.feature:hover{

transform:translateX(8px);

border-color:rgba(123,46,255,.35);

}

.feature i{

width:34px;

height:34px;

display:flex;

align-items:center;

justify-content:center;

border-radius:50%;

background:var(--primary);

color:var(--white);

font-size:.9rem;

flex-shrink:0;

}

.feature span{

font-weight:500;

color:var(--white);

}

/*==========================
            GALLERY
==========================*/

.gallery-grid{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:22px;

margin-top:60px;

}

.gallery-item{

overflow:hidden;

border-radius:22px;

cursor:pointer;

background:var(--black-card);

border:1px solid rgba(255,255,255,.05);

transition:var(--transition);

}

.gallery-item:hover{

transform:translateY(-8px);

border-color:rgba(123,46,255,.35);

box-shadow:0 25px 50px rgba(0,0,0,.35);

}

.gallery-item img{

height:300px;

object-fit:cover;

transition:var(--transition);

}

.gallery-item:hover img{

transform:scale(1.08);

}

/*==========================
        FORMULAIRES
==========================*/

.contact-grid,

.reservation-grid{

display:grid;

grid-template-columns:2fr 1fr;

gap:40px;

align-items:start;

}

.contact-form,

.reservation-form{

padding:45px;

background:var(--black-card);

border:1px solid rgba(255,255,255,.06);

border-radius:22px;

box-shadow:0 20px 45px rgba(0,0,0,.35);

}

.form-grid{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:22px;

margin-bottom:25px;

}

.form-group{

display:flex;

flex-direction:column;

gap:10px;

}

.form-group label{

font-weight:600;

font-size:.95rem;

color:var(--white);

}

.form-group input,

.form-group textarea,

.form-group select{

width:100%;

padding:16px 18px;

border-radius:14px;

border:1px solid rgba(255,255,255,.08);

background:var(--black-light);

color:var(--white);

font-size:1rem;

transition:var(--transition);

}

.form-group textarea{

resize:vertical;

min-height:180px;

}

.form-group input::placeholder,

.form-group textarea::placeholder{

color:var(--gray-dark);

}

.form-group input:focus,

.form-group textarea:focus,

.form-group select:focus{

border-color:var(--primary);

box-shadow:0 0 0 4px rgba(123,46,255,.15);

}

.contact-form .btn-primary,

.reservation-form .btn-primary{

width:100%;

margin-top:10px;

}

.contact-info,

.reservation-info{

display:flex;

flex-direction:column;

gap:24px;

}

.info-card{

text-align:center;

}

.info-card h3{

margin-bottom:15px;

}

.info-card a{

display:inline-block;

margin-top:15px;

color:var(--secondary);

font-weight:600;

}

.info-card a:hover{

color:var(--white);

}

/*==========================
            FOOTER
==========================*/

.footer{

background:#050505;

padding:90px 0 25px;

border-top:1px solid rgba(255,255,255,.06);

}

.footer-grid{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:50px;

margin-bottom:55px;

}

.footer-logo{

width:180px;

margin-bottom:22px;

}

.footer-column h3{

margin-bottom:22px;

font-size:1.2rem;

color:var(--white);

}

.footer-column p,

.footer-column li{

color:var(--gray);

margin-bottom:12px;

}

.footer-column ul{

display:flex;

flex-direction:column;

gap:14px;

}

.footer-column a{

transition:var(--transition);

}

.footer-column a:hover{

color:var(--secondary);

padding-left:6px;

}

.footer-column li{

display:flex;

align-items:center;

gap:12px;

}

.footer-column li i{

color:var(--primary);

width:18px;

text-align:center;

}

.footer-bottom{

padding-top:28px;

border-top:1px solid rgba(255,255,255,.08);

display:flex;

justify-content:space-between;

align-items:center;

gap:20px;

flex-wrap:wrap;

}

.footer-bottom p{

font-size:.95rem;

color:var(--gray-dark);

}

.footer-bottom a{

color:var(--secondary);

}

.footer-bottom a:hover{

color:var(--white);

}

/*==========================
        BACK TO TOP
==========================*/

.back-to-top{

position:fixed;

right:30px;

bottom:30px;

width:55px;

height:55px;

display:flex;

align-items:center;

justify-content:center;

border-radius:50%;

background:linear-gradient(

135deg,

var(--primary),

var(--primary-dark)

);

color:var(--white);

font-size:20px;

cursor:pointer;

box-shadow:0 18px 40px rgba(123,46,255,.35);

opacity:0;

visibility:hidden;

transform:translateY(20px);

transition:var(--transition);

z-index:999;

}

.back-to-top.show{

opacity:1;

visibility:visible;

transform:translateY(0);

}

.back-to-top:hover{

transform:translateY(-6px);

box-shadow:0 25px 55px rgba(123,46,255,.45);

}

/*==========================
        RESPONSIVE
==========================*/

@media (max-width:1200px){

.hero-grid,

.vehicle-grid,

.contact-grid,

.reservation-grid{

grid-template-columns:1fr;

gap:50px;

}

.hero-image{

order:-1;

}

.footer-grid{

grid-template-columns:repeat(2,1fr);

}

.gallery-grid{

grid-template-columns:repeat(3,1fr);

}

}

@media (max-width:992px){

.main-nav{

position:fixed;

top:88px;

right:-100%;

width:320px;

height:calc(100vh - 88px);

background:var(--black-light);

display:flex;

justify-content:center;

align-items:flex-start;

padding-top:60px;

transition:.4s;

border-left:1px solid rgba(255,255,255,.05);

}

.main-nav.active{

right:0;

}

.main-nav ul{

flex-direction:column;

gap:35px;

}

.menu-toggle{

display:flex;

}

.header-actions{

display:none;

}

.hero-stats{

grid-template-columns:1fr;

}

.gallery-grid{

grid-template-columns:repeat(2,1fr);

}

.vehicle-features{

grid-template-columns:1fr;

}

.form-grid{

grid-template-columns:1fr;

}

.footer-grid{

grid-template-columns:1fr;

}

}

@media (max-width:768px){

section{

padding:80px 0;

}

.hero{

padding-top:140px;

}

.hero-buttons{

flex-direction:column;

align-items:stretch;

}

.hero-buttons a{

width:100%;

}

.gallery-grid{

grid-template-columns:1fr;

}

.gallery-item img{

height:260px;

}

.contact-form,

.reservation-form{

padding:30px;

}

.back-to-top{

right:18px;

bottom:18px;

width:50px;

height:50px;

}

}

@media (max-width:576px){

.container{

width:94%;

}

h1{

font-size:2.4rem;

}

h2{

font-size:1.9rem;

}

p{

font-size:1rem;

}

.logo img{

width:150px;

}

.phone-btn,

.btn-header{

display:none;

}

.section-title{

margin-bottom:50px;

}

.hero-image img{

border-radius:18px;

}

.service-card,

.why-card,

.experience-card,

.info-card{

padding:30px 24px;

}

}

/*==========================
        ANIMATIONS
==========================*/

.reveal{

opacity:0;

transform:translateY(60px);

transition:

opacity .8s ease,

transform .8s ease;

}

.reveal.active{

opacity:1;

transform:translateY(0);

}

.fade-in{

animation:fadeIn .8s ease forwards;

}

@keyframes fadeIn{

from{

opacity:0;

}

to{

opacity:1;

}

}

@keyframes float{

0%{

transform:translateY(0);

}

50%{

transform:translateY(-12px);

}

100%{

transform:translateY(0);

}

}

.hero-image{

animation:float 6s ease-in-out infinite;

}

::selection{

background:var(--primary);

color:var(--white);

}

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:var(--black);

}

::-webkit-scrollbar-thumb{

background:linear-gradient(

180deg,

var(--primary),

var(--primary-dark)

);

border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

background:var(--secondary);

}