/*==================================================
 People's Voice Voting Website
 style.css (Part 1)
==================================================*/

/*==========================
 GOOGLE FONT
==========================*/

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

/*==========================
 ROOT
==========================*/

:root{

--primary:#16a34a;
--primary-dark:#15803d;
--secondary:#22c55e;

--bg:#f4f7fb;
--card:#ffffff;

--text:#1e293b;
--text-light:#64748b;

--border:#e2e8f0;

--success:#16a34a;
--danger:#ef4444;

--shadow:0 15px 40px rgba(0,0,0,.08);

--radius:18px;

--transition:.35s;

}

/*==========================
 RESET
==========================*/

*{

margin:0;
padding:0;
box-sizing:border-box;

}

html{

scroll-behavior:smooth;

}

body{

font-family:'Poppins',sans-serif;

background:var(--bg);

color:var(--text);

line-height:1.7;

overflow-x:hidden;

}

/*==========================
 COMMON
==========================*/

.container{

width:min(1200px,92%);
margin:auto;

}

section{

padding:80px 0;

}

img{

max-width:100%;

display:block;

}

a{

text-decoration:none;

color:inherit;

}

ul{

list-style:none;

}

button{

cursor:pointer;

font-family:inherit;

border:none;

outline:none;

}

input{

font-family:inherit;

}

.section-title{

text-align:center;

margin-bottom:55px;

}

.section-title h2{

font-size:42px;

font-weight:700;

margin-bottom:12px;

}

.section-title p{

color:var(--text-light);

font-size:16px;

}

/*==========================
 HEADER
==========================*/

.header{

position:sticky;

top:0;

left:0;

width:100%;

z-index:999;

background:#ffffffdd;

backdrop-filter:blur(18px);

box-shadow:0 5px 20px rgba(0,0,0,.05);

}

.header .container{

height:78px;

display:flex;

align-items:center;

justify-content:space-between;

}

.logo{

display:flex;

align-items:center;

gap:12px;

font-size:24px;

font-weight:700;

color:var(--primary);

}

.logo i{

font-size:28px;

}

nav ul{

display:flex;

gap:32px;

}

nav a{

font-weight:500;

transition:.3s;

}

nav a:hover{

color:var(--primary);

}

#themeToggle{

height:48px;

width:48px;

border-radius:50%;

background:var(--primary);

color:#fff;

font-size:18px;

transition:.3s;

}

#themeToggle:hover{

transform:rotate(180deg);

}

/*==========================
 HERO
==========================*/

.hero{

padding-top:110px;

padding-bottom:70px;

}

.hero-grid{

display:grid;

grid-template-columns:1.2fr .8fr;

gap:45px;

align-items:center;

}

.badge{

display:inline-block;

padding:8px 18px;

background:#dcfce7;

color:var(--primary-dark);

border-radius:999px;

font-weight:600;

margin-bottom:22px;

}

.hero h1{

font-size:48px;

font-weight:800;

line-height:1.2;

margin-bottom:22px;

}

.hero p{

font-size:18px;

color:var(--text-light);

margin-bottom:32px;

max-width:620px;

}

.hero-info{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:20px;

}

.hero-info div{

background:var(--card);

padding:22px;

border-radius:var(--radius);

box-shadow:var(--shadow);

text-align:center;

transition:var(--transition);

}

.hero-info div:hover{

transform:translateY(-8px);

}

.hero-info h3{

font-size:18px;

margin-bottom:8px;

}

.hero-info p{

margin:0;

font-size:15px;

color:var(--primary);

font-weight:600;

}

/*==========================
 COUNTDOWN CARD
==========================*/

.countdown-card{

background:linear-gradient(135deg,#16a34a,#22c55e);

padding:35px;

border-radius:25px;

box-shadow:var(--shadow);

color:#fff;

}

.countdown-card h2{

text-align:center;

margin-bottom:28px;

font-size:30px;

}

.countdown{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:16px;

}

.countdown div{

background:rgba(255,255,255,.18);

border-radius:16px;

padding:22px 12px;

text-align:center;

backdrop-filter:blur(12px);

}

.countdown span{

display:block;

font-size:42px;

font-weight:700;

}

.countdown label{

font-size:15px;

opacity:.9;

}

/*==========================
 VOTING CARD
==========================*/

.vote-card{

background:var(--card);

padding:45px;

border-radius:25px;

box-shadow:var(--shadow);

max-width:700px;

margin:auto;

}

.vote-card h2{

font-size:36px;

margin-bottom:10px;

text-align:center;

}

.vote-card>p{

text-align:center;

color:var(--text-light);

margin-bottom:35px;

}

.option{

margin-bottom:18px;

}

.option label{

display:flex;

align-items:center;

gap:15px;

padding:18px 22px;

border:2px solid var(--border);

border-radius:15px;

transition:.3s;

cursor:pointer;

}

.option label:hover{

border-color:var(--primary);

background:#ecfdf5;

}

.option input{

width:22px;

height:22px;

accent-color:var(--primary);

}

.vote-btn{

width:100%;

margin-top:25px;

padding:18px;

background:var(--primary);

color:#fff;

font-size:18px;

font-weight:600;

border-radius:14px;

transition:.3s;

}

.vote-btn:hover{

background:var(--primary-dark);

transform:translateY(-2px);

}

.message{

margin-top:20px;

padding:16px;

border-radius:12px;

display:none;

}

.message.success{

display:block;

background:#dcfce7;

color:#166534;

}

.message.error{

display:block;

background:#fee2e2;

color:#991b1b;

}

/* ===== style.css Part 2 continues... ===== */
/*==================================================
 style.css (Part 2)
==================================================*/

/*==========================
 SUCCESS CARD
==========================*/

.status-section{

padding-top:20px;

padding-bottom:20px;

}

.success-card{

max-width:700px;

margin:auto;

background:#ecfdf5;

border:2px solid #22c55e;

padding:40px;

border-radius:24px;

text-align:center;

box-shadow:var(--shadow);

animation:fadeUp .6s ease;

}

.success-icon{

width:90px;

height:90px;

margin:auto;

border-radius:50%;

display:flex;

align-items:center;

justify-content:center;

background:#22c55e;

color:#fff;

font-size:42px;

margin-bottom:20px;

}

.success-card h2{

font-size:34px;

margin-bottom:15px;

}

.success-card p{

color:var(--text-light);

}

/*==========================
 RESULTS
==========================*/

.results-section{

background:#eef5fb;

}

.result-hidden{

max-width:800px;

margin:auto;

padding:60px;

background:#fff;

border-radius:25px;

text-align:center;

box-shadow:var(--shadow);

}

.result-hidden i{

font-size:60px;

color:var(--primary);

margin-bottom:20px;

}

.result-hidden h3{

font-size:32px;

margin-bottom:15px;

}

.result-hidden p{

font-size:17px;

color:var(--text-light);

}

.stats-grid{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:22px;

margin-bottom:40px;

}

.stat-card{

background:#fff;

border-radius:22px;

padding:30px;

text-align:center;

box-shadow:var(--shadow);

transition:.3s;

}

.stat-card:hover{

transform:translateY(-8px);

}

.stat-card h3{

font-size:17px;

margin-bottom:12px;

color:var(--text-light);

}

.stat-card h1{

font-size:42px;

color:var(--primary);

}

.charts{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:25px;

}

.chart-card{

background:#fff;

padding:25px;

border-radius:22px;

box-shadow:var(--shadow);

}

.chart-card canvas{

width:100%!important;

height:320px!important;

}

/*==========================
 FEATURES
==========================*/

.features{

background:#fff;

}

.feature-grid{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:28px;

}

.feature-box{

background:#f8fafc;

padding:35px;

border-radius:22px;

text-align:center;

transition:.35s;

box-shadow:0 10px 30px rgba(0,0,0,.05);

}

.feature-box:hover{

background:#fff;

transform:translateY(-10px);

box-shadow:var(--shadow);

}

.feature-box i{

font-size:45px;

color:var(--primary);

margin-bottom:18px;

}

.feature-box h3{

font-size:24px;

margin-bottom:14px;

}

.feature-box p{

color:var(--text-light);

font-size:15px;

}

/*==========================
 FOOTER
==========================*/

.footer{

background:#0f172a;

color:#fff;

padding-top:70px;

}

.footer-content{

text-align:center;

padding-bottom:40px;

}

.footer-content h2{

font-size:34px;

margin-bottom:15px;

}

.footer-content p{

color:#cbd5e1;

}

.footer-bottom{

border-top:1px solid rgba(255,255,255,.08);

padding:22px;

text-align:center;

color:#94a3b8;

font-size:15px;

}

/*==========================
 ANIMATIONS
==========================*/

@keyframes fadeUp{

0%{

opacity:0;

transform:translateY(40px);

}

100%{

opacity:1;

transform:translateY(0);

}

}

.vote-card,
.stat-card,
.feature-box,
.countdown-card,
.hero-info div{

animation:fadeUp .7s ease;

}

/*==========================
 DARK MODE
==========================*/

body.dark{

--bg:#0f172a;

--card:#1e293b;

--text:#f8fafc;

--text-light:#cbd5e1;

--border:#334155;

background:var(--bg);

color:var(--text);

}

body.dark .header{

background:#0f172ae8;

}

body.dark .feature-box{

background:#1e293b;

}

body.dark .results-section{

background:#111827;

}

body.dark .badge{

background:#14532d;

color:#bbf7d0;

}

/* ===== style.css Part 3 continues... ===== */
/*==================================================
 style.css (Part 3)
==================================================*/

/*==========================
 FORM STATES
==========================*/

.option input:checked + span{

font-weight:700;

color:var(--primary);

}

.option label:has(input:checked){

border-color:var(--primary);

background:#dcfce7;

}

body.dark .option label:has(input:checked){

background:#14532d;

}

/*==========================
 BUTTON EFFECTS
==========================*/

.vote-btn{

position:relative;

overflow:hidden;

}

.vote-btn::before{

content:"";

position:absolute;

top:0;

left:-120%;

width:120%;

height:100%;

background:rgba(255,255,255,.2);

transform:skewX(-25deg);

transition:.6s;

}

.vote-btn:hover::before{

left:120%;

}

/*==========================
 SCROLLBAR
==========================*/

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#e2e8f0;

}

::-webkit-scrollbar-thumb{

background:var(--primary);

border-radius:50px;

}

::-webkit-scrollbar-thumb:hover{

background:var(--primary-dark);

}

/*==========================
 SELECTION
==========================*/

::selection{

background:var(--primary);

color:#fff;

}

/*==========================
 FOCUS
==========================*/

input:focus,
button:focus{

outline:none;

box-shadow:0 0 0 4px rgba(22,163,74,.18);

}

/*==========================
 SPACING
==========================*/

.mt-1{margin-top:10px;}
.mt-2{margin-top:20px;}
.mt-3{margin-top:30px;}
.mt-4{margin-top:40px;}

.mb-1{margin-bottom:10px;}
.mb-2{margin-bottom:20px;}
.mb-3{margin-bottom:30px;}
.mb-4{margin-bottom:40px;}

.text-center{

text-align:center;

}

/*==========================
 RESPONSIVE
==========================*/

@media(max-width:1100px){

.hero-grid{

grid-template-columns:1fr;

}

.hero-info{

grid-template-columns:repeat(3,1fr);

}

.stats-grid{

grid-template-columns:repeat(2,1fr);

}

.charts{

grid-template-columns:1fr;

}

.feature-grid{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:768px){

.header .container{

height:auto;

padding:18px 0;

flex-direction:column;

gap:18px;

}

nav ul{

gap:18px;

flex-wrap:wrap;

justify-content:center;

}

.hero{

padding-top:60px;

}

.hero h1{

font-size:34px;

}

.hero p{

font-size:16px;

}

.hero-info{

grid-template-columns:1fr;

}

.countdown{

grid-template-columns:repeat(2,1fr);

}

.vote-card{

padding:28px;

}

.vote-card h2{

font-size:28px;

}

.section-title h2{

font-size:30px;

}

.stats-grid{

grid-template-columns:1fr;

}

.feature-grid{

grid-template-columns:1fr;

}

.chart-card canvas{

height:260px!important;

}

.footer-content h2{

font-size:28px;

}

}

@media(max-width:480px){

.container{

width:94%;

}

.logo{

font-size:20px;

}

.hero h1{

font-size:28px;

}

.badge{

font-size:13px;

}

.countdown span{

font-size:30px;

}

.countdown label{

font-size:13px;

}

.vote-btn{

font-size:16px;

padding:16px;

}

.success-card{

padding:25px;

}

.result-hidden{

padding:30px 20px;

}

.stat-card h1{

font-size:34px;

}

.feature-box{

padding:25px;

}

}

/*==========================
 PRINT
==========================*/

@media print{

.header,
.footer,
.vote-btn,
#themeToggle{

display:none!important;

}

body{

background:#fff;

color:#000;

}

.vote-card,
.stat-card,
.chart-card{

box-shadow:none;

border:1px solid #ccc;

}

}

/*==========================
 END OF FILE
==========================*/