/*========================================

            VARIABLES

========================================*/

:root{

--primary:#ff4d88;
--secondary:#ff9fc3;
--dark:#222;
--light:#fff;

--shadow:0 15px 35px rgba(0,0,0,.15);

}

*{

margin:0;
padding:0;
box-sizing:border-box;
font-family:"Poppins",sans-serif;

}

body{

background:linear-gradient(135deg,#fff5f9,#ffeaf2,#fff7fb);

background-size:400% 400%;

animation:bgMove 18s infinite;

overflow-x:hidden;

}

/*========================================

                HERO

========================================*/

.hero{

height:45vh;

background:url("../img/fondos/contador.jpg") center/cover;

position:relative;

display:flex;

justify-content:center;

align-items:center;

}

.overlay{

position:absolute;

inset:0;

background:rgba(0,0,0,.45);

backdrop-filter:blur(3px);

}

.hero-content{

position:relative;

z-index:5;

text-align:center;

color:white;

padding:20px;

}

.hero-content h1{

font-size:60px;

margin-bottom:20px;

}

.hero-content p{

font-size:22px;

max-width:750px;

line-height:1.8;

}

/*========================================

        CONTADOR

========================================*/

.contador-principal{

width:92%;

max-width:1400px;

margin:70px auto;

}

.contador-card{

background:white;

padding:45px;

border-radius:30px;

box-shadow:var(--shadow);

text-align:center;

}

.contador-card h2{

font-size:38px;

color:var(--primary);

margin-bottom:40px;

}

.contador-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(180px,1fr));

gap:25px;

}

.time-box{

background:linear-gradient(145deg,#fff,#ffeef5);

padding:30px;

border-radius:25px;

transition:.35s;

box-shadow:0 10px 25px rgba(0,0,0,.08);

}

.time-box:hover{

transform:translateY(-10px);

}

.time-box h1{

font-size:58px;

color:var(--primary);

margin-bottom:10px;

}

.time-box span{

font-size:18px;

color:#666;

}

/*========================================

            STATS

========================================*/

.stats{

width:92%;

max-width:1400px;

margin:auto;

display:grid;

grid-template-columns:repeat(auto-fit,minmax(250px,1fr));

gap:30px;

margin-bottom:80px;

}

.stat{

background:white;

padding:40px;

border-radius:25px;

text-align:center;

box-shadow:var(--shadow);

transition:.35s;

}

.stat:hover{

transform:scale(1.05);

}

.stat h2{

font-size:46px;

color:var(--primary);

margin-bottom:15px;

}

.stat p{

font-size:18px;

color:#666;

}

/*========================================

            TIMELINE

========================================*/

.timeline{

width:92%;

max-width:1000px;

margin:100px auto;

}

.timeline h2{

text-align:center;

font-size:42px;

color:var(--primary);

margin-bottom:60px;

}

.line{

position:relative;

padding-left:50px;

}

.line::before{

content:"";

position:absolute;

left:15px;

top:0;

bottom:0;

width:4px;

background:linear-gradient(var(--primary),var(--secondary));

}

.event{

position:relative;

margin-bottom:60px;

}

.circle{

position:absolute;

left:-46px;

top:10px;

width:28px;

height:28px;

background:var(--primary);

border-radius:50%;

box-shadow:0 0 20px rgba(255,77,136,.5);

}

.content{

background:white;

padding:25px;

border-radius:20px;

box-shadow:var(--shadow);

}

.content h3{

color:var(--primary);

margin-bottom:12px;

}

.content p{

color:#666;

}

/*========================================

            FRASE

========================================*/

.quote{

width:92%;

max-width:1100px;

margin:100px auto;

padding:70px;

background:linear-gradient(135deg,var(--primary),var(--secondary));

border-radius:35px;

text-align:center;

color:white;

box-shadow:var(--shadow);

}

.quote h2{

font-family:"Dancing Script",cursive;

font-size:48px;

line-height:1.8;

}

/*========================================

        BOTÓN SUBIR

========================================*/

.topBtn{

position:fixed;

right:30px;

bottom:30px;

width:55px;

height:55px;

border:none;

border-radius:50%;

background:var(--primary);

color:white;

font-size:22px;

display:none;

cursor:pointer;

box-shadow:var(--shadow);

transition:.3s;

}

.topBtn:hover{

transform:scale(1.1);

}

/*========================================

        ANIMACIONES

========================================*/

@keyframes bgMove{

0%{

background-position:0% 50%;

}

50%{

background-position:100% 50%;

}

100%{

background-position:0% 50%;

}

}

/*========================================

        RESPONSIVE

========================================*/

@media(max-width:900px){

.hero-content h1{

font-size:42px;

}

.hero-content p{

font-size:18px;

}

.quote h2{

font-size:36px;

}

}

@media(max-width:600px){

.hero{

height:40vh;

}

.hero-content h1{

font-size:34px;

}

.hero-content p{

font-size:16px;

}

.contador-card{

padding:25px;

}

.time-box h1{

font-size:42px;

}

.quote{

padding:40px 25px;

}

.quote h2{

font-size:28px;

}

}
/*========================================
        EFECTOS EXTRA
========================================*/

.show{
animation:fadeUp .8s ease;
}

@keyframes fadeUp{
from{
opacity:0;
transform:translateY(50px);
}
to{
opacity:1;
transform:translateY(0);
}
}

.confetti{
position:fixed;
top:-20px;
width:10px;
height:20px;
background:#ff4d88;
animation:fall linear forwards;
z-index:9999;
}

@keyframes fall{
to{
transform:translateY(110vh) rotate(720deg);
}
}

.floating-heart{
position:fixed;
bottom:-40px;
pointer-events:none;
animation:floatHeart linear forwards;
z-index:999;
}

@keyframes floatHeart{
0%{
transform:translateY(0) scale(.6);
opacity:0;
}
15%{
opacity:1;
}
100%{
transform:translateY(-120vh) scale(1.3);
opacity:0;
}
}