/* ==========================================
            GOOGLE FONT
========================================== */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

/* ==========================================
            ROOT VARIABLES
========================================== */

:root{

--primary:#4f8cff;
--secondary:#8b5cf6;
--success:#22c55e;
--danger:#ef4444;
--warning:#f59e0b;

--bg:#08111f;
--card:rgba(255,255,255,.05);
--border:rgba(255,255,255,.08);

--text:#ffffff;
--muted:#cbd5e1;

--radius:24px;

}

/* ==========================================
            RESET
========================================== */

*{

margin:0;
padding:0;
box-sizing:border-box;
font-family:'Poppins',sans-serif;

}

html{

scroll-behavior:smooth;

}

body{

background:linear-gradient(180deg,#08111f,#111827);

color:var(--text);

overflow-x:hidden;

}

/* ==========================================
            SCROLLBAR
========================================== */

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#111827;

}

::-webkit-scrollbar-thumb{

background:linear-gradient(
180deg,
var(--primary),
var(--secondary)
);

border-radius:20px;

}

/* ==========================================
            LINKS
========================================== */

a{

text-decoration:none;
color:inherit;

}

/* ==========================================
            NAVBAR
========================================== */

.navbar{

position:fixed;

top:0;
left:0;

width:100%;

padding:18px 8%;

display:flex;

justify-content:space-between;

align-items:center;

background:rgba(8,17,31,.75);

backdrop-filter:blur(18px);

border-bottom:1px solid var(--border);

z-index:1000;

}

.logo{

display:flex;

align-items:center;

gap:12px;

font-size:1.3rem;

font-weight:700;

color:#fff;

}

.logo i{

font-size:28px;

color:var(--secondary);

}

.back-home{

padding:12px 22px;

border-radius:50px;

background:linear-gradient(
135deg,
var(--primary),
var(--secondary)
);

font-weight:600;

transition:.35s;

}

.back-home:hover{

transform:translateY(-3px);

box-shadow:0 12px 25px rgba(79,140,255,.35);

}

/* ==========================================
            HERO
========================================== */

.hero{

padding-top:170px;

padding-bottom:70px;

padding-inline:8%;

text-align:center;

}

.hero h1{

font-size:4rem;

font-weight:800;

margin-bottom:20px;

background:linear-gradient(
135deg,
#fff,
#8b5cf6
);

-webkit-background-clip:text;

-webkit-text-fill-color:transparent;

}

.hero p{

max-width:760px;

margin:auto;

font-size:18px;

line-height:1.9;

color:var(--muted);

}

/* ==========================================
        CALCULATOR SECTION
========================================== */

.calculator-section{

padding:30px 8% 70px;

}

.calculator-box{

max-width:900px;

margin:auto;

padding:40px;

background:var(--card);

border:1px solid var(--border);

border-radius:30px;

backdrop-filter:blur(20px);

box-shadow:0 20px 45px rgba(0,0,0,.30);

}

.calculator-box h2{

text-align:center;

font-size:2rem;

margin-bottom:35px;

display:flex;

justify-content:center;

align-items:center;

gap:12px;

}

.calculator-box h2 i{

color:var(--secondary);

}

/* ==========================================
            INPUT GROUP
========================================== */

.input-group{

margin-bottom:25px;

}

.input-group label{

display:block;

font-weight:600;

margin-bottom:12px;

font-size:15px;

}

.input-group input{

width:100%;

padding:18px;

border:none;

outline:none;

border-radius:18px;

background:rgba(255,255,255,.06);

border:1px solid var(--border);

color:#fff;

font-size:17px;

transition:.30s;

}

.input-group input:focus{

border-color:var(--secondary);

box-shadow:0 0 20px rgba(139,92,246,.20);

}

/* ==========================================
            GST BUTTONS
========================================== */

.gst-buttons{

display:grid;

grid-template-columns:repeat(5,1fr);

gap:15px;

}

.rate-btn{

padding:16px;

border:none;

cursor:pointer;

border-radius:16px;

background:rgba(255,255,255,.05);

border:1px solid var(--border);

color:#fff;

font-weight:700;

font-size:16px;

transition:.35s;

}

.rate-btn:hover{

transform:translateY(-3px);

border-color:var(--secondary);

}

.rate-btn.active{

background:linear-gradient(
135deg,
var(--primary),
var(--secondary)
);

border:none;

}

/* ==========================================
            MODE
========================================== */

.mode-options{

display:flex;

gap:30px;

flex-wrap:wrap;

}

.mode-options label{

display:flex;

align-items:center;

gap:10px;

cursor:pointer;

font-weight:600;

}

.mode-options input{

accent-color:var(--secondary);

width:18px;

height:18px;

}

/* ==========================================
            RESULTS SECTION
========================================== */

.results-section{

padding:20px 8% 60px;

}

.results-grid{

max-width:1400px;

margin:auto;

display:grid;

grid-template-columns:repeat(auto-fit,minmax(250px,1fr));

gap:25px;

}

.result-card{

background:var(--card);

border:1px solid var(--border);

border-radius:25px;

padding:30px;

text-align:center;

backdrop-filter:blur(18px);

transition:.35s;

}

.result-card:hover{

transform:translateY(-8px);

border-color:var(--secondary);

box-shadow:0 18px 35px rgba(0,0,0,.35);

}

.result-card i{

font-size:42px;

margin-bottom:18px;

color:var(--secondary);

}

.result-card h3{

font-size:16px;

font-weight:600;

color:var(--muted);

margin-bottom:12px;

}

.result-card h2{

font-size:2rem;

font-weight:800;

word-break:break-word;

}

.result-card.total{

background:linear-gradient(
135deg,
rgba(79,140,255,.15),
rgba(139,92,246,.18)
);

}

/* ==========================================
            CHART
========================================== */

.chart-section{

padding:10px 8% 70px;

}

.chart-box{

max-width:700px;

margin:auto;

padding:40px;

background:var(--card);

border:1px solid var(--border);

border-radius:30px;

backdrop-filter:blur(20px);

text-align:center;

}

.chart-box h2{

margin-bottom:30px;

font-size:2rem;

display:flex;

justify-content:center;

align-items:center;

gap:10px;

}

.chart-box h2 i{

color:var(--secondary);

}

#gstChart{

max-width:420px;

margin:auto;

}

/* ==========================================
            ACTION BUTTONS
========================================== */

.action-section{

padding:0 8% 70px;

}

.action-buttons{

max-width:1100px;

margin:auto;

display:grid;

grid-template-columns:repeat(auto-fit,minmax(180px,1fr));

gap:18px;

}

.action-buttons button{

padding:18px;

border:none;

border-radius:18px;

cursor:pointer;

background:linear-gradient(
135deg,
var(--primary),
var(--secondary)
);

color:#fff;

font-size:16px;

font-weight:700;

transition:.35s;

}

.action-buttons button:hover{

transform:translateY(-4px);

box-shadow:0 15px 28px rgba(79,140,255,.35);

}

.action-buttons button i{

margin-right:10px;

}

/* ==========================================
                FAQ
========================================== */

.faq-section{

padding:40px 8% 70px;

max-width:1000px;

margin:auto;

}

.faq-section h2{

text-align:center;

font-size:2.5rem;

margin-bottom:40px;

}

.faq{

padding:25px;

margin-bottom:22px;

border-radius:22px;

background:var(--card);

border:1px solid var(--border);

transition:.30s;

}

.faq:hover{

border-color:var(--secondary);

}

.faq h3{

margin-bottom:12px;

font-size:20px;

}

.faq p{

line-height:1.9;

color:var(--muted);

}

/* ==========================================
            ARTICLE
========================================== */

.article-section{

padding:20px 8% 80px;

max-width:1000px;

margin:auto;

}

.article-section h2{

font-size:2.6rem;

margin-bottom:25px;

}

.article-section p{

margin-bottom:22px;

font-size:17px;

line-height:2;

color:var(--muted);

}

/* ==========================================
            FOOTER
========================================== */

.footer{

padding:40px 8%;

text-align:center;

border-top:1px solid var(--border);

background:rgba(255,255,255,.03);

}

.footer p{

margin:8px 0;

color:var(--muted);

}

/* ==========================================
            LOADER
========================================== */

.loader{

position:fixed;

inset:0;

background:rgba(8,17,31,.95);

display:none;

justify-content:center;

align-items:center;

z-index:9999;

}

.spinner{

width:70px;

height:70px;

border:6px solid rgba(255,255,255,.10);

border-top:6px solid var(--secondary);

border-radius:50%;

animation:spin 1s linear infinite;

}

@keyframes spin{

100%{

transform:rotate(360deg);

}

}

/* ==========================================
            TOAST
========================================== */

.toast{

position:fixed;

bottom:30px;

right:30px;

padding:16px 24px;

background:linear-gradient(
135deg,
var(--primary),
var(--secondary)
);

color:#fff;

font-weight:600;

border-radius:15px;

opacity:0;

pointer-events:none;

transform:translateY(20px);

transition:.35s;

z-index:999;

}

.toast.show{

opacity:1;

transform:translateY(0);

}

/* ==========================================
        BACK TO TOP BUTTON
========================================== */

#topBtn{

position:fixed;

right:25px;

bottom:25px;

width:55px;

height:55px;

border:none;

border-radius:50%;

background:linear-gradient(
135deg,
var(--primary),
var(--secondary)
);

color:#fff;

font-size:20px;

cursor:pointer;

display:none;

box-shadow:0 15px 30px rgba(79,140,255,.35);

transition:.35s;

z-index:999;

}

#topBtn:hover{

transform:translateY(-5px) scale(1.08);

}

/* ==========================================
            MOBILE FIRST RESPONSIVE
========================================== */

/* ---------- Tablets ---------- */

@media (max-width:992px){

.hero{

padding-top:150px;

padding-left:5%;
padding-right:5%;

}

.hero h1{

font-size:3rem;

}

.hero p{

font-size:16px;

}

.navbar{

padding:18px 5%;

}

.calculator-section,
.results-section,
.chart-section,
.action-section,
.faq-section,
.article-section{

padding-left:5%;
padding-right:5%;

}

.calculator-box,
.chart-box{

padding:35px;

}

.results-grid{

grid-template-columns:repeat(2,1fr);

}

.action-buttons{

grid-template-columns:repeat(2,1fr);

}

}

/* ---------- Mobile ---------- */

@media (max-width:768px){

html{

font-size:15px;

}

.navbar{

flex-direction:column;

gap:15px;

padding:15px;

}

.logo{

font-size:1.1rem;

}

.back-home{

width:100%;

text-align:center;

}

.hero{

padding-top:180px;

padding-bottom:50px;

text-align:center;

}

.hero h1{

font-size:2.3rem;

}

.hero p{

font-size:15px;

line-height:1.8;

}

.calculator-box{

padding:25px;

border-radius:22px;

}

.calculator-box h2{

font-size:1.6rem;

}

.input-group{

margin-bottom:22px;

}

.input-group label{

font-size:14px;

}

.input-group input{

padding:16px;

font-size:16px;

}

.gst-buttons{

grid-template-columns:repeat(2,1fr);

gap:12px;

}

.rate-btn{

height:52px;

font-size:15px;

}

.mode-options{

flex-direction:column;

gap:16px;

}

.calculate-btn{

width:100%;

height:55px;

font-size:17px;

position:sticky;

bottom:15px;

z-index:100;

}

.results-grid{

grid-template-columns:1fr;

gap:18px;

}

.result-card{

padding:25px;

}

.result-card i{

font-size:34px;

}

.result-card h2{

font-size:1.7rem;

}

.chart-box{

padding:25px;

}

#gstChart{

max-width:260px;

margin:auto;

}

.action-buttons{

grid-template-columns:1fr;

gap:15px;

}

.action-buttons button{

width:100%;

height:55px;

}

.faq-section h2,
.article-section h2{

font-size:2rem;

}

.faq{

padding:22px;

}

.article-section p{

font-size:15px;

line-height:1.9;

}

.toast{

left:20px;

right:20px;

bottom:20px;

text-align:center;

}

#topBtn{

width:52px;

height:52px;

bottom:25px;

right:20px;

}

}

/* ---------- Small Phones ---------- */

@media (max-width:480px){

.hero{

padding-top:170px;

}

.hero h1{

font-size:2rem;

}

.hero p{

font-size:14px;

}

.calculator-box{

padding:20px;

}

.calculator-box h2{

font-size:1.4rem;

}

.input-group input{

font-size:15px;

padding:15px;

}

.gst-buttons{

grid-template-columns:1fr;

}

.rate-btn{

width:100%;

}

.mode-options label{

font-size:14px;

}

.result-card{

padding:20px;

}

.result-card h2{

font-size:1.45rem;

}

.chart-box{

padding:20px;

}

#gstChart{

max-width:220px;

}

.faq h3{

font-size:18px;

}

.faq p{

font-size:14px;

}

.article-section p{

font-size:14px;

}

.footer{

padding:30px 20px;

text-align:center;

}

}

/* ---------- Landscape ---------- */

@media (max-height:600px) and (orientation:landscape){

.hero{

padding-top:140px;

padding-bottom:40px;

}

.hero h1{

font-size:2.2rem;

}

}