/* ==========================
   RevScore™ Project Evaluator
   style.css
========================== */

:root{

--primary:#635BFF;
--primary-dark:#5146E5;
--secondary:#0F172A;

--text:#1F2937;
--muted:#6B7280;

--bg:#F8FAFC;
--card:#FFFFFF;

--border:#E5E7EB;

--success:#10B981;
--warning:#F59E0B;
--danger:#EF4444;

--radius:20px;

--shadow:
0 20px 50px rgba(15,23,42,.08);

}

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{

scroll-behavior:smooth;

}

body{

font-family:"Inter",sans-serif;

background:var(--bg);

color:var(--text);

overflow-x:hidden;

min-height:100vh;

position:relative;

}

/* ==========================
BACKGROUND
========================== */

.background{

position:fixed;

top:0;
left:0;

width:100%;
height:100%;

z-index:-1;

background:

radial-gradient(circle at top left,#EEF2FF 0%,transparent 40%),

radial-gradient(circle at bottom right,#F5F3FF 0%,transparent 40%),

linear-gradient(#FFFFFF,#F8FAFC);

}

/* ==========================
LAYOUT
========================== */

.container{

width:min(980px,92%);

margin:auto;

padding:60px 0;

}

/* ==========================
HEADER
========================== */

header{

display:flex;

justify-content:center;

margin-bottom:60px;

}

.logo{

display:flex;

align-items:center;

gap:16px;

}

.logo-icon{

width:58px;
height:58px;

border-radius:16px;

background:linear-gradient(
135deg,
#635BFF,
#8B5CF6
);

display:flex;

justify-content:center;
align-items:center;

font-size:26px;
font-weight:800;

color:white;

box-shadow:

0 20px 35px rgba(99,91,255,.35);

}

.logo h1{

font-size:30px;
font-weight:800;

}

.logo p{

font-size:14px;

color:var(--muted);

}

/* ==========================
HERO
========================== */

.hero{

text-align:center;

margin-bottom:50px;

}

.hero h2{

font-size:44px;

font-weight:800;

line-height:1.15;

max-width:700px;

margin:auto;

}

.hero p{

margin-top:18px;

font-size:19px;

color:var(--muted);

max-width:650px;

margin-left:auto;
margin-right:auto;

line-height:1.7;

}

/* ==========================
CARD
========================== */

.card{

background:rgba(255,255,255,.85);

backdrop-filter:blur(12px);

border:1px solid rgba(255,255,255,.5);

border-radius:var(--radius);

padding:40px;

box-shadow:var(--shadow);

overflow:hidden;

transition:.4s;

}

.card:hover{

transform:translateY(-2px);

}

/* ==========================
PROGRESS
========================== */

.progress-wrapper{

margin-bottom:35px;

}

.progress-top{

display:flex;

justify-content:space-between;

font-size:14px;

margin-bottom:12px;

color:var(--muted);

}

.progress-bar{

height:10px;

background:#E5E7EB;

border-radius:999px;

overflow:hidden;

}

.progress-fill{

width:16.66%;

height:100%;

background:linear-gradient(

90deg,

#635BFF,

#8B5CF6

);

transition:.4s ease;

}

/* ==========================
STEP
========================== */

.step{

display:none;

animation:fade .35s ease;

}

.step.active{

display:block;

}

.step h3{

font-size:28px;

margin-bottom:10px;

}

.step p{

color:var(--muted);

margin-bottom:30px;

line-height:1.6;

}

/* ==========================
OPTIONS
========================== */

.options{

display:grid;

gap:14px;

}

.options label{

display:flex;

align-items:center;

gap:16px;

padding:18px 22px;

border-radius:16px;

border:1px solid var(--border);

cursor:pointer;

transition:.25s;

background:white;

font-weight:500;

}

.options label:hover{

transform:translateY(-2px);

border-color:#635BFF;

box-shadow:

0 8px 20px rgba(99,91,255,.12);

}

.options input{

accent-color:#635BFF;

transform:scale(1.2);

}

/* selected */

.options input:checked + span{

font-weight:700;

}

/* ==========================
BUTTONS
========================== */

.buttons{

display:flex;

justify-content:space-between;

margin-top:45px;

}

button{

border:none;

cursor:pointer;

font-family:inherit;

transition:.25s;

}

#prevBtn{

background:#EEF2FF;

padding:14px 26px;

border-radius:12px;

font-weight:600;

color:#4F46E5;

}

#prevBtn:hover{

background:#E0E7FF;

}

#nextBtn{

padding:14px 34px;

border-radius:12px;

background:linear-gradient(

135deg,

#635BFF,

#5146E5

);

color:white;

font-weight:700;

box-shadow:

0 15px 35px rgba(99,91,255,.25);

}

#nextBtn:hover{

transform:translateY(-2px);

box-shadow:

0 18px 40px rgba(99,91,255,.35);

}

/* ==========================
RESULTS
========================== */

.hidden{

display:none;

}

.result-card{

background:white;

padding:60px;

border-radius:24px;

box-shadow:var(--shadow);

text-align:center;

margin-top:40px;

animation:fade .5s ease;

}

/* ==========================
SCORE CIRCLE
========================== */

.circle{

width:220px;

height:220px;

margin:auto;

border-radius:50%;

background:

conic-gradient(

#635BFF 0deg,

#8B5CF6 360deg

);

display:flex;

align-items:center;

justify-content:center;

box-shadow:

0 20px 50px rgba(99,91,255,.25);

}

.circle-inner{

width:180px;

height:180px;

border-radius:50%;

background:white;

display:flex;

justify-content:center;

align-items:center;

flex-direction:column;

}

.circle-inner span{

font-size:64px;

font-weight:800;

line-height:1;

}

.circle-inner small{

font-size:18px;

color:var(--muted);

margin-top:6px;

}

.result-card h2{

font-size:36px;

margin-top:30px;

}

.result-card p{

margin-top:15px;

color:var(--muted);

line-height:1.7;

}

/* ==========================
BREAKDOWN
========================== */

.breakdown{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:16px;

margin-top:40px;

}

.breakdown div{

background:#F9FAFB;

padding:18px;

border-radius:14px;

display:flex;

justify-content:space-between;

font-weight:600;

border:1px solid var(--border);

}

.breakdown strong{

color:#4F46E5;

}

/* ==========================
CTA
========================== */

.cta{

margin-top:45px;

}

.cta-button{

display:inline-block;

padding:18px 34px;

border-radius:14px;

text-decoration:none;

font-weight:700;

background:linear-gradient(

135deg,

#635BFF,

#5146E5

);

color:white;

transition:.25s;

box-shadow:

0 15px 35px rgba(99,91,255,.30);

}

.cta-button:hover{

transform:translateY(-2px);

}

#restart{

margin-top:25px;

background:none;

color:#635BFF;

font-weight:700;

}

/* ==========================
FOOTER
========================== */

footer{

margin-top:60px;

text-align:center;

font-size:14px;

color:var(--muted);

}

/* ==========================
ANIMATIONS
========================== */

@keyframes fade{

from{

opacity:0;

transform:translateY(12px);

}

to{

opacity:1;

transform:translateY(0);

}

}

/* ==========================
RESPONSIVE
========================== */

@media(max-width:900px){

.hero h2{

font-size:36px;

}

.result-card{

padding:40px;

}

.circle{

width:180px;
height:180px;

}

.circle-inner{

width:145px;
height:145px;

}

.circle-inner span{

font-size:48px;

}

}

@media(max-width:640px){

.container{

width:94%;

}

.card{

padding:24px;

}

.hero h2{

font-size:30px;

}

.hero p{

font-size:17px;

}

.breakdown{

grid-template-columns:1fr;

}

.buttons{

flex-direction:column;

gap:14px;

}

button{

width:100%;

}

.logo{

flex-direction:column;

text-align:center;

}

.step h3{

font-size:24px;

}

.options label{

padding:16px;

}

}
/* ===================================================
   RevScore™ Calculator v2
=================================================== */

.badge{

display:inline-block;

padding:8px 16px;

border-radius:999px;

background:#EEF2FF;

color:#4F46E5;

font-size:.8rem;

font-weight:700;

letter-spacing:.05em;

margin-bottom:18px;

}

.hero-features{

display:flex;

gap:20px;

justify-content:center;

flex-wrap:wrap;

margin-top:24px;

font-size:.95rem;

font-weight:500;

color:#555;

}

.primary{

background:#635BFF;

color:white;

border:none;

transition:.25s;

}

.primary:hover{

transform:translateY(-2px);

box-shadow:0 12px 28px rgba(99,91,255,.28);

}

.secondary-button{

display:inline-flex;

align-items:center;

justify-content:center;

padding:14px 26px;

border-radius:12px;

border:2px solid #635BFF;

text-decoration:none;

font-weight:600;

color:#635BFF;

background:white;

transition:.25s;

}

.secondary-button:hover{

background:#635BFF;

color:white;

}

.cta-box{

margin-top:40px;

padding:28px;

border-radius:20px;

background:linear-gradient(
135deg,
#F8F9FF,
#EEF2FF
);

text-align:center;

}

.cta-box h3{

margin-bottom:10px;

}

.cta-buttons{

display:flex;

justify-content:center;

gap:16px;

flex-wrap:wrap;

margin-top:22px;

}

/* ==========================
   Modal
========================== */

.modal{

position:fixed;

inset:0;

background:rgba(0,0,0,.65);

display:flex;

justify-content:center;

align-items:center;

backdrop-filter:blur(8px);

z-index:9999;

padding:20px;

}

.modal.hidden{

display:none;

}

.modal-card{

background:white;

border-radius:24px;

padding:42px;

width:100%;

max-width:520px;

box-shadow:

0 30px 70px rgba(0,0,0,.25);

animation:pop .25s ease;

}

@keyframes pop{

from{

opacity:0;

transform:translateY(20px) scale(.95);

}

to{

opacity:1;

transform:none;

}

}

.modal-icon{

width:74px;

height:74px;

margin:auto;

display:flex;

align-items:center;

justify-content:center;

border-radius:50%;

background:#EEF2FF;

font-size:34px;

margin-bottom:20px;

}

.modal-card h2{

text-align:center;

margin-bottom:12px;

}

.modal-card p{

text-align:center;

color:#666;

line-height:1.6;

margin-bottom:18px;

}

.modal-benefits{

margin:22px 0;

padding-left:18px;

color:#444;

line-height:2;

}

.modal-card input[type=text],

.modal-card input[type=email]{

width:100%;

padding:16px;

border:1px solid #DDD;

border-radius:12px;

margin-top:12px;

font-size:1rem;

transition:.2s;

}

.modal-card input:focus{

outline:none;

border-color:#635BFF;

box-shadow:

0 0 0 4px rgba(99,91,255,.12);

}

.checkbox{

display:flex;

align-items:flex-start;

gap:10px;

margin-top:18px;

font-size:.9rem;

color:#555;

line-height:1.5;

}

.checkbox input{

margin-top:4px;

}

.privacy{

font-size:.85rem;

color:#888;

margin-top:18px;

margin-bottom:18px;

}

.modal button{

width:100%;

padding:16px;

font-size:1rem;

border:none;

border-radius:12px;

cursor:pointer;

margin-top:8px;

}

.error-message{

margin-top:14px;

text-align:center;

font-size:.9rem;

color:#D32F2F;

min-height:20px;

}

/* ==========================
   Results
========================== */

.result-card{

animation:fadeUp .45s ease;

}

@keyframes fadeUp{

from{

opacity:0;

transform:translateY(25px);

}

to{

opacity:1;

transform:none;

}

}

/* ==========================
   Mobile
========================== */


@media(max-width:768px){

.hero-features{
    flex-direction:column;
    gap:10px;
}

.modal-card{
    padding:28px;
}

.cta-buttons{
    flex-direction:column;
}

.secondary-button,
.cta-button{
    width:100%;
}

.offer-list{
    grid-template-columns:1fr;
    max-width:320px;
}

.offer-card{
    padding:28px;
}

}

/* ===============================
   Toolkit Offer
================================ */

.offer-card{

    background:#fff;
    max-width:720px;
    margin:40px auto;
    padding:40px;
    border-radius:22px;
    box-shadow:0 20px 50px rgba(15,23,42,.08);
    border:1px solid #EEF2FF;

}

.offer-badge{

    display:inline-block;
    background:#635BFF;
    color:#fff;
    padding:7px 18px;
    border-radius:999px;
    font-size:14px;
    font-weight:700;
    margin-bottom:20px;

}

.offer-card h4{

    font-size:32px;
    margin-bottom:30px;
    color:#1F2937;

}

.offer-list{

    list-style:none;

    display:grid;

    grid-template-columns:repeat(2,minmax(220px,1fr));

    gap:16px 24px;

    padding:0;

    margin:30px auto 40px;

    max-width:560px;

    text-align:left;

}

.offer-list li{

    font-size:17px;
    color:#374151;
    font-weight:500;

}

.secondary-links{

    display:flex;

    justify-content:center;

    gap:28px;

    flex-wrap:wrap;

    margin-top:28px;

}

.secondary-links a{

    text-decoration:none;

    color:#635BFF;

    font-weight:600;

    transition:.2s;

}

.secondary-links a:hover{

    color:#5146E5;

}

.cta-box{

    background:linear-gradient(
        180deg,
        #F8F9FF 0%,
        #EEF2FF 100%
    );

    border-radius:24px;

    padding:50px;

    margin-top:50px;

}

.cta-box h3{

    font-size:40px;

    margin-bottom:20px;

}

.cta-box p{

    max-width:760px;

    margin:0 auto;

    line-height:1.8;

}