/* ==========================================
   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;
}

html{
scroll-behavior:smooth;
}

body{

font-family:'Poppins',sans-serif;

background:
linear-gradient(
135deg,
#0f172a,
#1e3a8a,
#0ea5e9
);

min-height:100vh;

color:white;

overflow-x:hidden;
}

/* ==========================================
   BACKGROUND OVERLAY
========================================== */

.background-overlay{

position:fixed;

top:0;
left:0;

width:100%;
height:100%;

background:

radial-gradient(
circle at top left,
rgba(255,255,255,.12),
transparent 40%
),

radial-gradient(
circle at bottom right,
rgba(255,255,255,.08),
transparent 40%
);

pointer-events:none;

z-index:-1;
}

/* ==========================================
   NAVBAR
========================================== */

.navbar{

display:flex;

justify-content:space-between;

align-items:center;

padding:22px 8%;

backdrop-filter:blur(20px);

background:
rgba(255,255,255,.08);

border-bottom:
1px solid rgba(255,255,255,.1);
}

.logo{

display:flex;

align-items:center;

gap:12px;

font-size:26px;

font-weight:700;
}

.logo i{

font-size:30px;

color:#facc15;
}

.navbar nav{

display:flex;

gap:30px;
}

.navbar nav a{

text-decoration:none;

color:white;

font-weight:500;

transition:.3s;
}

.navbar nav a:hover{

color:#facc15;
}

/* ==========================================
   HERO
========================================== */

.hero{

padding:100px 20px;

text-align:center;
}

.hero h1{

font-size:70px;

font-weight:800;

margin-bottom:20px;
}

.hero p{

font-size:22px;

opacity:.9;

margin-bottom:40px;
}

/* ==========================================
   SEARCH BOX
========================================== */

.search-box{

max-width:700px;

margin:auto;

display:flex;

overflow:hidden;

border-radius:60px;

background:white;

box-shadow:
0 20px 50px rgba(0,0,0,.25);
}

.search-box input{

flex:1;

padding:20px;

border:none;

outline:none;

font-size:17px;
}

.search-box button{

width:180px;

border:none;

cursor:pointer;

font-weight:600;

background:
linear-gradient(
135deg,
#2563eb,
#06b6d4
);

color:white;

transition:.3s;
}

.search-box button:hover{

background:
linear-gradient(
135deg,
#1d4ed8,
#0891b2
);
}

/* ==========================================
   MAIN WEATHER CARD
========================================== */

.weather-main{

display:grid;

grid-template-columns:
1fr 1fr;

gap:40px;

padding:60px 8%;
}

.current-weather{

background:
rgba(255,255,255,.12);

backdrop-filter:blur(20px);

border:
1px solid rgba(255,255,255,.15);

padding:40px;

border-radius:30px;

text-align:center;
}

.current-weather h2{

font-size:34px;

margin-bottom:20px;
}

.current-weather img{

width:120px;
}

.current-weather h1{

font-size:90px;

font-weight:800;

margin:15px 0;
}

.current-weather p{

font-size:22px;
}
/* ==========================================
   WEATHER DETAILS
========================================== */

.weather-details{

display:grid;

grid-template-columns:
repeat(2,1fr);

gap:25px;
}

.detail-card{

background:
rgba(255,255,255,.12);

backdrop-filter:blur(20px);

border:
1px solid rgba(255,255,255,.15);

padding:30px;

border-radius:25px;

text-align:center;

transition:.3s;
}

.detail-card:hover{

transform:
translateY(-8px);

background:
rgba(255,255,255,.18);
}

.detail-card i{

font-size:40px;

margin-bottom:15px;

color:#facc15;
}

.detail-card h3{

margin-bottom:10px;

font-size:20px;
}

.detail-card p{

font-size:24px;

font-weight:700;
}

/* ==========================================
   FORECAST SECTION
========================================== */

.forecast-section{

padding:80px 8%;
}

.forecast-section h2{

text-align:center;

font-size:48px;

margin-bottom:50px;
}

.forecast-grid{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(180px,1fr));

gap:25px;
}

.forecast-card{

background:
rgba(255,255,255,.12);

backdrop-filter:blur(20px);

border:
1px solid rgba(255,255,255,.15);

border-radius:25px;

padding:25px;

text-align:center;

transition:.3s;
}

.forecast-card:hover{

transform:
translateY(-8px);
}

.forecast-card h3{

margin-bottom:15px;
}

.forecast-card img{

width:70px;

margin:10px 0;
}

.forecast-card p{

margin-top:10px;
}

/* ==========================================
   AIR QUALITY
========================================== */

.air-quality{

padding:80px 8%;
}

.air-quality h2{

text-align:center;

font-size:42px;

margin-bottom:40px;
}

.air-card{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(250px,1fr));

gap:25px;
}

.air-card div{

background:
rgba(255,255,255,.12);

backdrop-filter:blur(20px);

padding:35px;

border-radius:25px;

text-align:center;
}

.air-card h3{

margin-bottom:10px;
}

.air-card p{

font-size:32px;

font-weight:700;
}

/* ==========================================
   SUNRISE & SUNSET
========================================== */

.sun-section{

padding:60px 8%;

display:grid;

grid-template-columns:
repeat(2,1fr);

gap:30px;
}

.sun-card{

background:
rgba(255,255,255,.12);

backdrop-filter:blur(20px);

padding:40px;

border-radius:25px;

text-align:center;
}

.sun-card i{

font-size:50px;

margin-bottom:20px;

color:#facc15;
}

.sun-card h3{

margin-bottom:10px;
}

.sun-card p{

font-size:24px;

font-weight:700;
}
/* ==========================================
   HIGHLIGHTS SECTION
========================================== */

.highlights{

padding:80px 8%;
}

.highlights h2{

text-align:center;

font-size:48px;

margin-bottom:50px;
}

.highlight-grid{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(250px,1fr));

gap:25px;
}

.highlight-card{

background:
rgba(255,255,255,.12);

backdrop-filter:blur(20px);

border:
1px solid rgba(255,255,255,.15);

padding:35px;

border-radius:25px;

text-align:center;

font-size:20px;

font-weight:600;

transition:.3s;
}

.highlight-card:hover{

transform:
translateY(-10px);

background:
rgba(255,255,255,.18);

box-shadow:
0 15px 40px
rgba(0,0,0,.2);
}

/* ==========================================
   FOOTER
========================================== */

.footer{

margin-top:80px;

padding:50px 20px;

text-align:center;

background:
rgba(0,0,0,.2);

backdrop-filter:blur(20px);

border-top:
1px solid rgba(255,255,255,.1);
}

.footer-content h2{

font-size:32px;

margin-bottom:15px;
}

.footer-content p{

opacity:.85;

margin:10px 0;
}

/* ==========================================
   BACK TO TOP
========================================== */

#backToTop{

position:fixed;

right:25px;

bottom:25px;

width:60px;

height:60px;

border:none;

border-radius:50%;

background:
linear-gradient(
135deg,
#2563eb,
#06b6d4
);

color:white;

font-size:24px;

cursor:pointer;

display:none;

z-index:999;

box-shadow:
0 10px 30px
rgba(37,99,235,.4);

transition:.3s;
}

#backToTop:hover{

transform:
translateY(-5px)
scale(1.05);
}

/* ==========================================
   SCROLLBAR
========================================== */

::-webkit-scrollbar{

width:10px;
}

::-webkit-scrollbar-track{

background:#0f172a;
}

::-webkit-scrollbar-thumb{

background:#38bdf8;

border-radius:20px;
}

/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:1100px){

.weather-main{

grid-template-columns:1fr;
}

.sun-section{

grid-template-columns:1fr;
}

}

@media(max-width:768px){

.hero h1{

font-size:42px;
}

.hero p{

font-size:18px;
}

.navbar{

flex-direction:column;

gap:15px;
}

.navbar nav{

flex-wrap:wrap;

justify-content:center;
}

.search-box{

flex-direction:column;
}

.search-box button{

width:100%;

padding:18px;
}

.weather-details{

grid-template-columns:1fr;
}

.current-weather h1{

font-size:60px;
}

.forecast-section h2,
.air-quality h2,
.highlights h2{

font-size:32px;
}

}