/* ===============================
   GRANADOS CONTADORES
   style.css
=============================== */

.mobile-toggle{

    display:none;

    flex-direction:column;

    gap:6px;

    cursor:pointer;

}

.mobile-toggle span{

    width:30px;

    height:3px;

    background:#fff;

    border-radius:5px;

}



:root{

    --primary:#2f5d50;
    --primary-light:#4b8b74;
    --secondary:#8fa76d;
    --accent:#c7d9b7;

    --dark:#54e0b4;
    --dark2:#17382d;
    --dark3:#1b4435;
    --white:#ffffff;
    --text:#dfe8e4;
    --gray:#aab7b2;
    --radius:18px;

    --shadow:
        0 10px 40px rgba(0,0,0,.35);

}

*{

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

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Manrope',sans-serif;
    background:var(--dark);
    color:var(--text);
    overflow-x:hidden;

}

/* ===============================
BACKGROUND
=============================== */

.background{

    position:fixed;

    inset:0;

    overflow:hidden;

    z-index:-10;

    background:

    radial-gradient(circle at 10% 20%,rgba(47,93,80,.25),transparent 40%),

    radial-gradient(circle at 90% 30%,rgba(143,167,109,.18),transparent 35%),

    radial-gradient(circle at 60% 90%,rgba(52,117,96,.20),transparent 35%),

    linear-gradient(180deg,#050d0b,#07120f,#091712,#07120f);

}

.grid-background{

    position:fixed;

    inset:0;

    opacity:.08;

    background-image:

        linear-gradient(#ffffff22 1px, transparent 1px),

        linear-gradient(90deg,#ffffff22 1px, transparent 1px);

    background-size:60px 60px;

    z-index:-9;

}


/* ===============================
CONTAINER
=============================== */
.container{
    width:100%;
    max-width:1280px;
    margin:0 auto;
    box-sizing:border-box;
    padding:0 20px;
}

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

header{

    position:fixed;

    width:100%;

    top:0;

    left:0;

    z-index:100;

    backdrop-filter:blur(18px);

    background:rgba(7,17,14,.65);

    border-bottom:1px solid rgba(255,255,255,.05);

}

header .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    height:88px;

}

.logo{

    height:110px;

}

nav ul{

    display:flex;

    gap:35px;

    list-style:none;

}

nav a{

    text-decoration:none;

    color:white;

    font-size:15px;

    transition:.3s;

}

nav a:hover{

    color:var(--secondary);

}

.cliente-btn{

    background:linear-gradient(
    135deg,
    var(--primary),
    var(--secondary));

    color:white;

    padding:14px 26px;

    border-radius:50px;

    cursor:pointer;

    transition:.3s;

}

.cliente-btn:hover{

    transform:translateY(-3px);

}

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

.hero{

    min-height:100vh;

    display:grid;

    grid-template-columns:1fr 1fr;

    align-items:center;

    gap:80px;

    padding-top:120px;

}

.hero span{

    color:var(--secondary);

    letter-spacing:4px;

    font-size:13px;

}

.hero h1{

    font-size:68px;

    line-height:1.1;

    margin:25px 0;

}

.hero h1 strong{

    color:var(--secondary);

}

.hero p{

    color:var(--gray);

    font-size:19px;

    line-height:1.8;

    max-width:620px;

}

/* ===============================
BOTÕES
=============================== */

.buttons{

    margin-top:45px;

    display:flex;

    gap:20px;

}

.btn-primary{

    text-decoration:none;

    color:white;

    background:linear-gradient(
    135deg,
    var(--primary),
    var(--secondary));

    padding:18px 34px;

    border-radius:50px;

    transition:.35s;

}

.btn-primary:hover{

    transform:translateY(-4px);

    box-shadow:0 15px 35px rgba(79,128,105,.35);

}

.btn-secondary{

    text-decoration:none;

    color:white;

    border:1px solid rgba(255,255,255,.15);

    padding:18px 34px;

    border-radius:50px;

    transition:.35s;

}

.btn-secondary:hover{

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

}

/* ===============================
DASHBOARD
=============================== */

.dashboard{

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

    backdrop-filter:blur(25px);

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

    border-radius:25px;

    padding:35px;

    box-shadow:var(--shadow);

}

.dashboard h3{

    margin-bottom:30px;

}

.chart{

    height:220px;

    border-radius:18px;

    background:

    linear-gradient(
    180deg,
    rgba(143,167,109,.25),
    transparent),

    repeating-linear-gradient(
    90deg,
    transparent,
    transparent 38px,
    rgba(255,255,255,.05) 39px);

}

.numbers{

    display:flex;

    justify-content:space-between;

    margin-top:30px;

}

.numbers strong{

    font-size:28px;

    color:var(--secondary);

}

/* ===============================
SEÇÕES
=============================== */

section{

    padding:110px 0;

}

.title{

    margin-bottom:70px;

}

.title span{

    color:var(--secondary);

    letter-spacing:4px;

    font-size:13px;

}

.title h2{

    margin-top:18px;

    font-size:46px;

    line-height:1.2;

}

/* ===============================
ABOUT
=============================== */

.about-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

}

.about-grid h3{

    font-size:34px;

    margin-bottom:30px;

}

.about-grid p{

    color:var(--gray);

    line-height:1.9;

    margin-bottom:25px;

}

.stats{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:25px;

}

.stat{

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

    border:1px solid rgba(255,255,255,.06);

    border-radius:18px;

    padding:35px;

}

.stat h2{

    font-size:48px;

    color:var(--secondary);

}

/* ===============================
SERVIÇOS
=============================== */

.services{

    display:grid;

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

    gap:30px;

}

.services article{

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

    border-radius:20px;

    border:1px solid rgba(255,255,255,.05);

    padding:45px;

    transition:.35s;

}

.services article:hover{

    transform:translateY(-8px);

    border-color:var(--secondary);

}

.services i{

    font-size:45px;

    color:var(--secondary);

    margin-bottom:25px;

}

.services h3{

    font-size:24px;

}

/* ===============================
TIMELINE
=============================== */

.line{

    display:grid;

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

    gap:30px;

    margin-top:70px;

}

.timeline-item{

    text-align:center;

}

.year{

    width:120px;

    height:120px;

    margin:0 auto 25px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:linear-gradient(135deg,#2f5d50,#8fa76d);

    color:#fff;

    font-size:30px;

    font-weight:700;

    transition:.35s;

}

.timeline-item:hover .year{

    transform:translateY(-10px) scale(1.05);

    box-shadow:0 20px 40px rgba(143,167,109,.35);

}

.timeline-item h3{

    font-size:22px;

    margin-bottom:15px;

}

.timeline-item p{

    color:#aab7b2;

    line-height:1.7;

    font-size:15px;

}
/* ===============================
CTA
=============================== */

.cta{

    text-align:center;

}

.cta h2{

    font-size:54px;

}

.cta p{

    color:var(--gray);

    margin:30px auto;

    max-width:700px;

}

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

footer{

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

    padding:70px 0;

    text-align:center;

}

.footer-logo{

    height:200px;

}

.social{

    display:flex;

    justify-content:center;

    gap:18px;

    margin:35px 0;

}

.social a{

    width:58px;

    height:58px;

    display:flex;

    justify-content:center;

    align-items:center;

    border-radius:50%;

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

    color:#ffffff;

    font-size:22px;

    text-decoration:none;

    transition:all .35s ease;

}

.social a:hover{

    background:#8fa76d;

    color:#07110e;

    transform:translateY(-6px);

    box-shadow:0 15px 35px rgba(143,167,109,.35);

}

footer small{

    color:var(--gray);

}

/* ===========================
GLASS CARD
=========================== */

.glass-card{

    position:relative;

    overflow:hidden;

    border-radius:24px;

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

    backdrop-filter:blur(22px);

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

    box-shadow:
        0 25px 70px rgba(0,0,0,.45);

}

/* brilho */

.glass-card::before{

    content:"";

    position:absolute;

    width:250px;

    height:250px;

    background:rgba(143,167,109,.15);

    filter:blur(80px);

    right:-80px;

    top:-80px;

}

/* ========================= */

.dashboard-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:25px;

}

.online{

    width:14px;

    height:14px;

    border-radius:50%;

    background:#4bff7b;

    box-shadow:

    0 0 12px #4bff7b,

    0 0 30px #4bff7b;

}

/* ========================= */

.graph-area{

    display:flex;

    align-items:center;

    overflow:hidden;

    border-radius:16px;

}

.hero-photo{

    width:100%;

    aspect-ratio:3/2;

    object-fit:cover;

    border-radius:16px;

    display:block;

}

.graph-area svg{

    width:100%;

}

.graph-line{

    fill:none;

    stroke:url(#lineGradient);

    stroke-width:6;

    stroke-linecap:round;

    stroke-linejoin:round;

    stroke-dasharray:1200;

    stroke-dashoffset:1200;

    animation:drawGraph 3s ease forwards;

}

@keyframes drawGraph{

    to{

        stroke-dashoffset:0;

    }

}

/* ========================= */

.mini-cards{

    display:grid;

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

    gap:18px;

    margin-top:30px;

}

.mini-cards div{

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

    border:1px solid rgba(255,255,255,.05);

    border-radius:16px;

    padding:18px;

}

.mini-cards small{

    color:#9bb3aa;

}

.mini-cards strong{

    display:block;

    margin-top:10px;

    font-size:24px;

    color:#b9d89a;

}

/* ===================================
WHY
=================================== */

.subtitle{

    max-width:750px;

    margin-top:20px;

    color:#98aaa3;

    font-size:18px;

    line-height:1.8;

}

.why{

    position:relative;

}

.why-grid{

    display:grid;

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

    gap:35px;

    margin-top:60px;

}

.why-grid article{

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

    border:1px solid rgba(255,255,255,.05);

    border-radius:22px;

    padding:45px;

    transition:.45s;

    position:relative;

    overflow:hidden;

}

.why-grid article::before{

    content:"";

    position:absolute;

    width:180px;

    height:180px;

    background:rgba(143,167,109,.12);

    border-radius:50%;

    top:-90px;

    right:-90px;

    transition:.5s;

}

.why-grid article:hover{

    transform:translateY(-12px);

    border-color:#8fa76d;

    box-shadow:0 25px 60px rgba(0,0,0,.35);

}

.why-grid article:hover::before{

    transform:scale(1.5);

}

.icon-circle{

    width:75px;

    height:75px;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    margin-bottom:30px;

    background:linear-gradient(
    135deg,
    #2f5d50,
    #8fa76d);

}

.icon-circle i{

    color:white;

    font-size:28px;

}

.why-grid h3{

    margin-bottom:18px;

    font-size:24px;

}

.why-grid p{

    color:#9fb0aa;

    line-height:1.8;

}

.hero-content{
    padding-left:50px;
}

/* Ajustes Mobile */
@media(max-width:992px){

.mobile-toggle{
    display:flex;
}

.hero h1{
    font-size:44px;
}

.title h2{
    font-size:32px;
}

.about-grid h3{
    font-size:26px;
}

.cta h2{
    font-size:36px;
}

nav{
    display:none;
}

nav.active{
    display:block;
    width:100%;
}

nav.active ul{
    flex-direction:column;
    gap:18px;
    padding:20px 0;
}

.logo{
    height:70px;
}

.title,
.hero,
.about-grid,
.stats{
    grid-template-columns:1fr;
    text-align:center;
}

.hero > *,
.about-grid > *,
.stats > *,
.services > *,
.mini-cards > *,
.why-grid > *,
.line > *{
    min-width:0;
}

.title{
    display:flex;
    flex-direction:column;
    align-items:center;
}

.about-grid > div:first-child{
    display:flex;
    flex-direction:column;
    align-items:center;
}

.services,
.mini-cards,
.why-grid{
    text-align:center;
}

.services article,
.mini-cards > div,
.why-grid article{
    display:flex;
    flex-direction:column;
    align-items:center;
}

.hero{
    gap:40px;
    padding-left:20px;
    padding-right:20px;
}

.hero-content{
    display:flex;
    flex-direction:column;
    align-items:center;
}

.buttons{
    justify-content:center;
}

.hero-dashboard{
    width:100%;
    max-width:600px;
    margin:0 auto;
}

.services,
.mini-cards,
.why-grid{
    grid-template-columns:repeat(2,1fr);
}

.line{
    grid-template-columns:repeat(3,1fr);
}

}

@media (max-width:768px){
.hero-content{
    padding-left:0;
}
.container{
    padding:0 20px;
}
.why-grid article,
.services article{
    padding:25px;
}
.cliente-btn{
    width:100%;
    text-align:center;
    margin-top:15px;
}
.year{
    width:80px;
    height:80px;
    font-size:22px;
}

header .container{
    height:auto;
    flex-wrap:wrap;
    padding:12px 20px;
}

.logo{
    height:55px;
}

.services,
.mini-cards,
.why-grid,
.line{
    grid-template-columns:1fr;
}

.hero h1{
    font-size:36px;
}
}