/* =========================================
   GOOGLE FONT
========================================= */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

/* =========================================
   RESET
========================================= */

*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:'Poppins',sans-serif;
}

html{
scroll-behavior:smooth;
}

body{

background:#f5f7fb;
color:#111827;
overflow-x:hidden;

}

/* =========================================
   CUSTOM COLORS
========================================= */

:root{

--primary:#2563eb;
--secondary:#7c3aed;
--accent:#06b6d4;

--dark:#0f172a;
--light:#ffffff;

--gray:#64748b;

--shadow:
0 10px 40px rgba(0,0,0,.08);

}

/* =========================================
   LOADER
========================================= */

#loader{

position:fixed;

top:0;
left:0;

width:100%;
height:100%;

background:white;

display:flex;
justify-content:center;
align-items:center;

z-index:99999;

}

.loader{

width:70px;
height:70px;

border-radius:50%;

border:6px solid #e5e7eb;
border-top:6px solid var(--primary);

animation:spin 1s linear infinite;

}

@keyframes spin{

100%{

transform:rotate(360deg);

}

}

/* =========================================
   TOP HEADER
========================================= */

.top-header{

position:fixed;

top:0;
left:0;

width:100%;

height:80px;

padding:0 5%;

display:flex;
justify-content:space-between;
align-items:center;

background:
rgba(255,255,255,.92);

backdrop-filter:blur(20px);

box-shadow:var(--shadow);

z-index:1000;

}

.logo{

display:flex;
align-items:center;
gap:10px;

font-size:24px;
font-weight:700;

color:var(--primary);

}

.logo i{

font-size:30px;

}

.header-links{

display:flex;
gap:25px;

}

.header-links a{

text-decoration:none;

font-weight:500;

color:#334155;

transition:.3s;

}

.header-links a:hover{

color:var(--primary);

}

.header-right{

display:flex;
align-items:center;
gap:12px;

}

.header-right button{

width:45px;
height:45px;

border:none;

border-radius:50%;

background:#eef2ff;

cursor:pointer;

font-size:18px;

color:var(--primary);

transition:.3s;

}

.header-right button:hover{

transform:translateY(-3px);

}

.user-profile{

display:flex;
align-items:center;
gap:10px;

padding:8px 15px;

border-radius:50px;

background:#f8fafc;

}

.user-profile img{

width:40px;
height:40px;

border-radius:50%;

border:2px solid var(--primary);

}

.user-profile span{

font-size:14px;
font-weight:600;

}

/* =========================================
   HERO SECTION
========================================= */

.hero{

height:100vh;

position:relative;

display:flex;
justify-content:center;
align-items:center;

padding:120px 5% 50px;

background:

linear-gradient(
135deg,
rgba(37,99,235,.85),
rgba(124,58,237,.85)
),

url("https://images.unsplash.com/photo-1500530855697-b586d89ba3ee");

background-size:cover;
background-position:center;

}

.hero-overlay{

position:absolute;

top:0;
left:0;

width:100%;
height:100%;

background:
rgba(0,0,0,.25);

}

.hero-content{

position:relative;

z-index:2;

max-width:1400px;

width:100%;

text-align:center;

}

.hero-content h1{

font-size:68px;

font-weight:800;

color:white;

margin-bottom:15px;

}

.hero-content p{

font-size:22px;

color:white;

margin-bottom:35px;

}

/* =========================================
   TRANSPORT MENU
========================================= */

.transport-menu{

display:flex;
justify-content:center;
flex-wrap:wrap;

gap:18px;

margin-bottom:30px;

}

.transport-tab{

background:white;

padding:18px 28px;

border-radius:18px;

display:flex;
align-items:center;
gap:10px;

cursor:pointer;

font-weight:600;

transition:.3s;

box-shadow:
0 8px 25px rgba(0,0,0,.08);

}

.transport-tab:hover,
.transport-tab.active{

background:var(--primary);

color:white;

transform:translateY(-5px);

}

.transport-tab i{

font-size:22px;

}

/* =========================================
   SEARCH CONTAINER
========================================= */

.search-container{

background:white;

border-radius:30px;

padding:35px;

box-shadow:
0 20px 60px rgba(0,0,0,.15);

max-width:1300px;

margin:auto;

}

.search-grid{

display:grid;

grid-template-columns:
repeat(4,1fr);

gap:20px;

margin-bottom:25px;

}

.search-box{

display:flex;
flex-direction:column;

text-align:left;

}

.search-box label{

font-size:14px;

font-weight:600;

margin-bottom:8px;

color:#475569;

}

.search-box input,
.search-box select{

height:60px;

padding:0 18px;

border:2px solid #e2e8f0;

border-radius:15px;

font-size:16px;

outline:none;

transition:.3s;

}

.search-box input:focus,
.search-box select:focus{

border-color:var(--primary);

}

#searchBtn{

height:65px;

width:320px;

border:none;

border-radius:50px;

background:

linear-gradient(
135deg,
var(--primary),
var(--secondary)
);

color:white;

font-size:18px;
font-weight:700;

cursor:pointer;

transition:.3s;

}

#searchBtn:hover{

transform:translateY(-3px);

}

/* =========================================
   QUICK LINKS
========================================= */

.quick-links{

padding:80px 5%;

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(180px,1fr));

gap:25px;

background:white;

}

.quick-card{

background:#f8fafc;

padding:35px;

border-radius:25px;

text-align:center;

font-size:30px;

transition:.3s;

cursor:pointer;

box-shadow:
0 8px 20px rgba(0,0,0,.05);

}

.quick-card:hover{

background:var(--primary);

color:white;

transform:translateY(-10px);

}

.quick-card h3{

font-size:20px;

margin-top:10px;

}

/* =========================================
   RESULTS SECTION
========================================= */

.results-section{

padding:100px 5%;

background:#f5f7fb;

}

.section-title{

text-align:center;

margin-bottom:50px;

}

.section-title h2{

font-size:42px;

margin-bottom:10px;

}

.section-title p{

color:var(--gray);

}

.empty-state{

background:white;

padding:70px;

border-radius:30px;

text-align:center;

box-shadow:var(--shadow);

}

.empty-state i{

font-size:60px;

color:var(--primary);

margin-bottom:20px;

}

.empty-state h3{

font-size:28px;

}
/* =========================================
   POPULAR ROUTES SECTION
========================================= */

.popular-routes{

padding:100px 5%;

background:white;

}

.section-header{

text-align:center;

margin-bottom:50px;

}

.section-header h2{

font-size:42px;

font-weight:700;

margin-bottom:10px;

}

.section-header p{

color:#64748b;

font-size:16px;

}

.routes-container{

display:flex;

gap:20px;

overflow-x:auto;

padding-bottom:15px;

}

.routes-container::-webkit-scrollbar{

height:8px;

}

.routes-container::-webkit-scrollbar-thumb{

background:#2563eb;

border-radius:20px;

}

.route-chip{

min-width:260px;

padding:18px 25px;

background:white;

border-radius:20px;

display:flex;

justify-content:center;
align-items:center;

gap:12px;

font-weight:600;

box-shadow:
0 10px 25px rgba(0,0,0,.08);

cursor:pointer;

transition:.3s;

}

.route-chip:hover{

background:linear-gradient(
135deg,
#2563eb,
#7c3aed
);

color:white;

transform:translateY(-8px);

}

/* =========================================
   DASHBOARD SECTION
========================================= */

.dashboard-section{

padding:100px 5%;

background:#f8fafc;

}

.dashboard-grid{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(250px,1fr));

gap:25px;

}

.dashboard-card{

background:white;

padding:35px;

border-radius:25px;

text-align:center;

transition:.3s;

box-shadow:
0 10px 30px rgba(0,0,0,.08);

}

.dashboard-card:hover{

transform:translateY(-10px);

}

.dashboard-icon{

font-size:55px;

margin-bottom:15px;

}

.dashboard-card h3{

font-size:42px;

color:#2563eb;

margin-bottom:10px;

}

.dashboard-card p{

color:#64748b;

font-weight:500;

}

/* =========================================
   COMPARISON SECTION
========================================= */

.comparison-section{

padding:100px 5%;

background:white;

}

.comparison-grid{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(280px,1fr));

gap:25px;

}

.compare-card{

background:white;

padding:35px;

border-radius:25px;

box-shadow:
0 10px 30px rgba(0,0,0,.08);

transition:.3s;

}

.compare-card:hover{

transform:translateY(-10px);

}

.card-top{

font-size:60px;

margin-bottom:20px;

}

.compare-card h3{

font-size:28px;

margin-bottom:15px;

}

.compare-card ul{

list-style:none;

}

.compare-card ul li{

padding:10px 0;

border-bottom:1px solid #e5e7eb;

}

.flight{

border-top:6px solid #2563eb;

}

.train{

border-top:6px solid #10b981;

}

.bus{

border-top:6px solid #f59e0b;

}

.cab{

border-top:6px solid #ef4444;

}

/* =========================================
   WEATHER SECTION
========================================= */

.travel-info-section{

padding:100px 5%;

background:#f8fafc;

display:grid;

grid-template-columns:
1fr 1fr;

gap:30px;

}

.weather-card,
.travel-tip-card{

background:white;

padding:35px;

border-radius:25px;

box-shadow:
0 10px 30px rgba(0,0,0,.08);

}

.weather-card h2,
.travel-tip-card h2{

margin-bottom:20px;

}

.weather-search{

display:flex;

gap:10px;

margin-bottom:20px;

}

.weather-search input{

flex:1;

height:55px;

padding:0 18px;

border:2px solid #e2e8f0;

border-radius:12px;

outline:none;

}

.weather-search button{

width:170px;

border:none;

border-radius:12px;

background:#2563eb;

color:white;

font-weight:600;

cursor:pointer;

}

#weatherResult{

padding:20px;

background:#f8fafc;

border-radius:15px;

min-height:150px;

}

.tips-list{

display:flex;

flex-direction:column;

gap:15px;

}

.tip-item{

padding:15px;

background:#f8fafc;

border-radius:12px;

font-weight:500;

}

/* =========================================
   ANALYTICS SECTION
========================================= */

.analytics-section{

padding:100px 5%;

background:white;

}

.analytics-grid{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(250px,1fr));

gap:25px;

}

.analytics-card{

background:linear-gradient(
135deg,
#2563eb,
#7c3aed
);

color:white;

padding:35px;

border-radius:25px;

text-align:center;

box-shadow:
0 15px 40px rgba(37,99,235,.3);

transition:.3s;

}

.analytics-card:hover{

transform:translateY(-10px);

}

.analytics-card h3{

font-size:24px;

margin-bottom:10px;

}

.analytics-card p{

font-size:18px;

font-weight:500;

}
/* =========================================
   MAP SECTION
========================================= */

.map-section{

padding:100px 5%;

background:#f8fafc;

}

.map-wrapper{

overflow:hidden;

border-radius:30px;

box-shadow:
0 15px 40px rgba(0,0,0,.12);

}

#routeMap{

width:100%;

height:550px;

border:none;

}

/* =========================================
   AI PLANNER SECTION
========================================= */

.ai-planner-section{

padding:100px 5%;

background:white;

}

.ai-container{

max-width:1000px;

margin:auto;

background:white;

padding:40px;

border-radius:30px;

box-shadow:
0 15px 40px rgba(0,0,0,.08);

}

#travelPrompt{

width:100%;

height:180px;

padding:20px;

border:2px solid #e2e8f0;

border-radius:18px;

resize:none;

font-size:16px;

outline:none;

margin-bottom:20px;

}

#travelPrompt:focus{

border-color:#2563eb;

}

#aiTravelBtn{

width:100%;

height:65px;

border:none;

border-radius:15px;

background:
linear-gradient(
135deg,
#2563eb,
#7c3aed
);

color:white;

font-size:18px;

font-weight:700;

cursor:pointer;

margin-bottom:20px;

}

#aiResult{

padding:25px;

background:#f8fafc;

border-radius:18px;

min-height:180px;

line-height:1.8;

}

/* =========================================
   LIVE RESULTS
========================================= */

.live-results-section{

padding:100px 5%;

background:#f8fafc;

}

#liveTransportResults{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(350px,1fr));

gap:25px;

}

.result-placeholder{

background:white;

padding:60px;

border-radius:25px;

text-align:center;

grid-column:1/-1;

box-shadow:
0 10px 30px rgba(0,0,0,.08);

}

.result-placeholder i{

font-size:60px;

color:#2563eb;

margin-bottom:15px;

}

.transport-result-card{

background:white;

padding:30px;

border-radius:25px;

box-shadow:
0 10px 30px rgba(0,0,0,.08);

transition:.3s;

}

.transport-result-card:hover{

transform:translateY(-10px);

}

/* =========================================
   RECENT SEARCHES
========================================= */

.recent-searches-section{

padding:100px 5%;

background:white;

}

#recentSearches{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(220px,1fr));

gap:20px;

}

.search-history-card{

padding:25px;

background:#f8fafc;

border-radius:20px;

text-align:center;

font-weight:600;

cursor:pointer;

transition:.3s;

}

.search-history-card:hover{

background:#2563eb;

color:white;

transform:translateY(-6px);

}

/* =========================================
   NEWSLETTER
========================================= */

.newsletter-section{

padding:100px 5%;

background:
linear-gradient(
135deg,
#2563eb,
#7c3aed
);

}

.newsletter-box{

max-width:900px;

margin:auto;

text-align:center;

color:white;

}

.newsletter-box h2{

font-size:42px;

margin-bottom:15px;

}

.newsletter-box p{

margin-bottom:25px;

}

.newsletter-form{

display:flex;

justify-content:center;

gap:15px;

flex-wrap:wrap;

}

.newsletter-form input{

width:450px;

max-width:100%;

height:60px;

border:none;

border-radius:15px;

padding:0 20px;

font-size:16px;

}

.newsletter-form button{

height:60px;

padding:0 35px;

border:none;

border-radius:15px;

background:#111827;

color:white;

font-weight:700;

cursor:pointer;

}

/* =========================================
   APP SECTION
========================================= */

.app-section{

padding:100px 5%;

background:white;

}

.app-content{

display:grid;

grid-template-columns:
1fr 1fr;

gap:40px;

align-items:center;

}

.app-left h2{

font-size:48px;

margin-bottom:20px;

}

.app-left p{

color:#64748b;

font-size:18px;

margin-bottom:30px;

}

.app-buttons{

display:flex;

gap:15px;

flex-wrap:wrap;

}

.app-buttons button{

padding:16px 28px;

border:none;

border-radius:15px;

background:#2563eb;

color:white;

font-weight:600;

cursor:pointer;

}

.app-right{

text-align:center;

}

.app-right img{

max-width:320px;

width:100%;

}

/* =========================================
   FOOTER
========================================= */

.footer{

background:#0f172a;

color:white;

padding:80px 5% 30px;

}

.footer-grid{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(220px,1fr));

gap:40px;

margin-bottom:40px;

}

.footer-column h3{

margin-bottom:20px;

}

.footer-column a{

display:block;

text-decoration:none;

color:#cbd5e1;

margin-bottom:10px;

transition:.3s;

}

.footer-column a:hover{

color:white;

}

.footer-bottom{

text-align:center;

padding-top:20px;

border-top:
1px solid rgba(255,255,255,.1);

}

/* =========================================
   BACK TO TOP
========================================= */

#backToTop{

position:fixed;

bottom:25px;
right:25px;

width:55px;
height:55px;

border:none;

border-radius:50%;

background:#2563eb;

color:white;

cursor:pointer;

font-size:20px;

display:none;

z-index:999;

box-shadow:
0 10px 30px rgba(37,99,235,.4);

}

/* =========================================
   DARK MODE
========================================= */

body.dark{

background:#0f172a;
color:white;

}

body.dark .top-header,
body.dark .search-container,
body.dark .route-chip,
body.dark .dashboard-card,
body.dark .compare-card,
body.dark .weather-card,
body.dark .travel-tip-card,
body.dark .analytics-card,
body.dark .transport-result-card,
body.dark .search-history-card,
body.dark .ai-container{

background:#1e293b;

color:white;

}

body.dark input,
body.dark textarea,
body.dark select{

background:#334155;

color:white;

border-color:#475569;

}

/* =========================================
   MOBILE RESPONSIVE
========================================= */

@media(max-width:992px){

.search-grid{

grid-template-columns:1fr 1fr;

}

.travel-info-section,
.app-content{

grid-template-columns:1fr;

}

.hero-content h1{

font-size:50px;

}

}

@media(max-width:768px){

.header-links{

display:none;

}

.search-grid{

grid-template-columns:1fr;

}

.hero-content h1{

font-size:36px;

}

.hero-content p{

font-size:18px;

}

.section-header h2{

font-size:32px;

}

.newsletter-box h2{

font-size:32px;

}

.app-left h2{

font-size:34px;

}

.user-profile span{

display:none;

}

}

@media(max-width:480px){

.hero-content h1{

font-size:28px;

}

.transport-tab{

padding:14px 18px;

}

.search-container{

padding:20px;

}

}
