/* =====================================================
   PEDRO M. GASPAR
   STYLE.CSS
===================================================== */

/* RESET */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:'Poppins',sans-serif;
    background:#f8f9fb;
    color:#333;
    line-height:1.7;
    overflow-x:hidden;

}

img{
    display:block;
    width:100%;
}

a{
    text-decoration:none;
    color:inherit;
}

ul{
    list-style:none;
}


/*=====================================================

CORES

=====================================================*/

:root{

    --primary:#2563eb;
    --secondary:#0f172a;

    --white:#ffffff;

    --light:#f5f7fb;

    --text:#4b5563;

    --dark:#111827;

    --border:#e5e7eb;

    --radius:16px;

    --shadow:
        0 10px 30px rgba(0,0,0,.08);

}


/*=====================================================

CONTAINER

=====================================================*/

.container{

    width:90%;
    max-width:1200px;

    margin:auto;

}


/*=====================================================

HEADER

=====================================================*/

header{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    z-index:999;

    transition:.4s;

    padding:22px 0;

}

header.scrolled{

    background:#ffffff;

    box-shadow:0 3px 20px rgba(0,0,0,.08);

}

header .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.logo{

    font-size:30px;

    font-weight:700;

    color:white;

}

header.scrolled .logo{

    color:var(--secondary);

}

.logo span{

    color:var(--primary);

}


/*=====================================================

MENU

=====================================================*/

nav ul{

    display:flex;

    gap:35px;

}

nav a{

    color:white;

    font-weight:500;

    transition:.3s;

}

header.scrolled nav a{

    color:var(--secondary);

}

nav a:hover{

    color:var(--primary);

}

#menu-btn{

    display:none;

    font-size:28px;

    cursor:pointer;

}


/*=====================================================

HERO

=====================================================*/

#home{

 /*   position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;
/* imagem fundo background-image:url("https://images.unsplash.com/photo-1518770660439-4636190af475?auto=format&fit=crop&w=1800&q=80");*/
/*background-image:url("../images/fundo.jpg");*/

    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;

    background-image: url("../images/fundo.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;


}

.overlay{

    position:absolute;

    inset:0;

    background:rgba(15,23,42,.70);

}

.hero{

    position:relative;

    z-index:5;

    display:grid;

    grid-template-columns:1fr 420px;

    align-items:center;

    gap:70px;

}

.hero-text h3{

    color:#cbd5e1;

    font-size:24px;

    font-weight:400;

}

.hero-text h1{

    color:white;

    font-size:68px;

    line-height:1.1;

    margin:15px 0;

}

.hero-text h2{

    color:#93c5fd;

    font-size:28px;

    font-weight:500;

    margin-bottom:30px;

}

.hero-text p{

    color:#e2e8f0;

    font-size:18px;

    max-width:650px;

    margin-bottom:40px;

}

.hero-image img{

    width:100%;

    border-radius:50%;

    border:8px solid rgba(255,255,255,.15);

    box-shadow:0 25px 50px rgba(0,0,0,.35);

}


/*=====================================================

BOTÕES

=====================================================*/

.hero-buttons{

    display:flex;

    gap:20px;

}

.btn{

    display:inline-block;

    padding:16px 34px;

    border-radius:50px;

    background:var(--primary);

    color:white;

    font-weight:600;

    transition:.35s;

}

.btn:hover{

    transform:translateY(-3px);

    box-shadow:0 12px 25px rgba(37,99,235,.35);

}

.btn-outline{

    background:transparent;

    border:2px solid white;

}

.btn-outline:hover{

    background:white;

    color:var(--secondary);

}
/*=====================================================

TÍTULOS DAS SECÇÕES

=====================================================*/

section{

    padding:100px 0;

}

.section-title{

    text-align:center;

    margin-bottom:70px;

}

.section-title h2{

    font-size:42px;

    color:var(--secondary);

    margin-bottom:15px;

}

.section-title p{

    color:var(--text);

    font-size:18px;

    max-width:700px;

    margin:auto;

}


/*=====================================================

SOBRE MIM

=====================================================*/

#about{

    background:var(--white);

}

.about-grid{

    display:grid;

    grid-template-columns:380px 1fr;

    gap:60px;

    align-items:center;

}

.about-image img{

    border-radius:var(--radius);

    box-shadow:var(--shadow);

}

.about-text h3{

    font-size:32px;

    margin-bottom:25px;

    color:var(--secondary);

}

.about-text p{

    margin-bottom:20px;

    color:var(--text);

    font-size:17px;

}


/*=====================================================

PROJETOS

=====================================================*/

#projects{

    background:var(--light);

}

.project-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));

    gap:35px;

}

.project-card{

    background:white;

    border-radius:var(--radius);

    overflow:hidden;

    box-shadow:var(--shadow);

    transition:.35s;

}

.project-card:hover{

    transform:translateY(-10px);

}

.project-card img{

    height:220px;

    object-fit:cover;

}

.project-content{

    padding:30px;

}

.project-content h3{

    font-size:28px;

    color:var(--secondary);

    margin-bottom:18px;

}

.project-content p{

    color:var(--text);

    margin-bottom:25px;

}

.project-link{

    color:var(--primary);

    font-weight:600;

    display:inline-flex;

    align-items:center;

    gap:10px;

    transition:.3s;

}

.project-link:hover{

    gap:16px;

}


/*=====================================================

CONTACTO

=====================================================*/

#contact{

    background:white;

}

.contact-box{

    max-width:700px;

    margin:auto;

    text-align:center;

}

.contact-box>a{

    display:inline-flex;

    align-items:center;

    gap:15px;

    font-size:22px;

    font-weight:600;

    color:var(--secondary);

    margin-bottom:45px;

}

.contact-box>a i{

    color:var(--primary);

    font-size:30px;

}

.social-links{

    display:flex;

    justify-content:center;

    gap:20px;

}

.social-links a{

    width:60px;

    height:60px;

    border-radius:50%;

    background:var(--light);

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:24px;

    color:var(--secondary);

    transition:.3s;

}

.social-links a:hover{

    background:var(--primary);

    color:white;

    transform:translateY(-6px);

}
/*=====================================================

FOOTER

=====================================================*/

footer{

    background:var(--secondary);

    color:white;

    padding:35px 0;

    text-align:center;

}

footer p{

    font-size:15px;

    letter-spacing:.5px;

    color:#cbd5e1;

}


/*=====================================================

BOTÃO VOLTAR AO TOPO

=====================================================*/

#topBtn{

    position:fixed;

    right:25px;

    bottom:25px;

    width:52px;

    height:52px;

    border:none;

    border-radius:50%;

    background:var(--primary);

    color:white;

    font-size:18px;

    cursor:pointer;

    display:flex;

    justify-content:center;

    align-items:center;

    box-shadow:0 10px 25px rgba(37,99,235,.35);

    transition:.3s;

    opacity:0;

    visibility:hidden;

    z-index:999;

}

#topBtn.show{

    opacity:1;

    visibility:visible;

}

#topBtn:hover{

    transform:translateY(-5px);

}


/*=====================================================

ANIMAÇÕES

=====================================================*/

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

.hero-text,
.hero-image,
.section-title,
.about-grid,
.project-card,
.contact-box{

    animation:fadeUp .9s ease;

}


/*=====================================================

RESPONSIVO TABLET

=====================================================*/

@media(max-width:992px){

.hero{

    grid-template-columns:1fr;

    text-align:center;

}

.hero-image{

    order:-1;

}

.hero-image img{

    max-width:320px;

    margin:auto;

}

.hero-text p{

    margin:auto auto 35px;

}

.hero-buttons{

    justify-content:center;

}

.about-grid{

    grid-template-columns:1fr;

    text-align:center;

}

.about-image img{

    max-width:420px;

    margin:auto;

}

}


/*=====================================================

RESPONSIVO MOBILE

=====================================================*/

@media(max-width:768px){

header{

    padding:18px 0;

}

#menu-btn{

    display:block;

    color:white;

}

header.scrolled #menu-btn{

    color:var(--secondary);

}

nav{

    position:absolute;

    top:100%;

    left:0;

    width:100%;

    background:white;

    display:none;

    box-shadow:0 10px 20px rgba(0,0,0,.08);

}

nav.active{

    display:block;

}

nav ul{

    flex-direction:column;

    gap:0;

}

nav li{

    border-bottom:1px solid #eee;

}

nav a{

    display:block;

    color:var(--secondary);

    padding:18px;

}

.hero-text h1{

    font-size:46px;

}

.hero-text h2{

    font-size:22px;

}

.hero-text p{

    font-size:16px;

}

.hero-buttons{

    flex-direction:column;

}

.btn{

    width:100%;

    text-align:center;

}

.section-title h2{

    font-size:34px;

}

.about-text h3{

    font-size:28px;

}

.project-content{

    padding:22px;

}

.contact-box>a{

    font-size:18px;

    flex-direction:column;

}

.social-links{

    flex-wrap:wrap;

}

}


/*=====================================================

SMARTPHONES PEQUENOS

=====================================================*/

@media(max-width:480px){

.logo{

    font-size:24px;

}

.hero{

    gap:35px;

}

.hero-image img{

    max-width:240px;

}

.hero-text h1{

    font-size:36px;

}

.hero-text h2{

    font-size:20px;

}

.hero-text h3{

    font-size:20px;

}

section{

    padding:70px 0;

}

.project-card img{

    height:190px;

}

#topBtn{

    width:46px;

    height:46px;

    right:18px;

    bottom:18px;

}

}
/*======================================
ANIMAÇÕES AO SCROLL
======================================*/

.hidden{

    opacity:0;

    transform:translateY(40px);

    transition:all .8s ease;

}

.visible{

    opacity:1;

    transform:translateY(0);

}