@charset "UTF-8";

/*=====Versão Mobile Fisrt =====*/

/*=====fontes=====*/
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

/*=====Variaves Cores e Fontes===== */
    :root{
        --cor01:#051a26;
        --cor02:#007854;
        --cor03:#ffffff;
        --cor04:#063433;
        --cor05:#36d8c3;
        --cor06:#12ff90;
        --cor-card01:#051a26;
        --cor-card02:#233941;
        --cor-card03:#0b212c;
        --font-principal: "Montserrat", sans-serif;
    }

/*=====Configuração Global=====*/
    *{
        margin: 0px;
        padding: 0px;
        font-family: var(--font-principal);
        box-sizing: border-box;
    }
    body{
        background-color: var(--cor01);
        scroll-behavior: smooth;
        transition: background-color 0.6s ease, color 0.6s ease;
    }
    main{
        display: block;
        margin: auto;
        width: 90vw;
        line-height: 1.3em;
    }
    section{
        display: block;
        margin: auto;
        /*height:auto;/*calc(100vh - 90px); /* considera header de 90px */
        width: 320px;
    }
    /* evita que o header fixe cubra a seção ao fazer scroll para âncoras */
    section, [id] {
        scroll-margin-top: 100px; /* ajuste para a altura do seu header (90px) + margem */
    }
    /* transição visual para links de navegação */
    div#Menu-nav a,
    footer nav a {
        transition: color 0.25s ease, opacity 0.25s ease;
        will-change: color, opacity;
    }
    div#Menu-nav a:focus,
    div#Menu-nav a:active,
    div#Menu-nav a:hover {
        color: var(--cor03);
        opacity: 0.95;
    }
    div#Contato a:focus,
    div#Contato a:active,
    div#Contato a:hover {
        color: var(--cor03);
        opacity: 0.95;
    }
    h1{
        font-size:1em;
    }

    strong{
        color: var(--cor06);
    }
    a{
        text-decoration: none;
    }
    img{
        width: 300px;
    }
    /*=====CSS HERADER=====*/
    header{
        display: flex;
        justify-content: space-between;
        height: 100px;
        width: 100%;
        padding: 10px 0;
        position: fixed;
        z-index: 1000;
        transition: background-color 0.3s ease;
    }
    header.transparent {
        background-color: rgba(5, 26, 38, 0.532);
    }
    header > div{
        display: flex;
        align-items: center;
    }
    /* =====Logo====== */
    div#logo-cl{
        display: flex;
        align-items: center;
        margin-left: 30px;
    }
    div#logo-cl > span{
        position: relative;
        background-color: var(--cor03);
        width: 10px;
        height: 30px;
        border-radius: 7px; 
    }
    #span-01{
        position: absolute;
        top: 7.5px;
    }
    #span-02{
        position: absolute;
        top: -7.5px;
    }
    /* =====Portfólio===== */
    div#Portifolio-CL{
        display: block;
        align-items: center;
        color: var(--cor03);
        margin-left: 20px;
        font-size: clamp(1.8rem, 2vw, 1rem);
    }
    div#Portifolio-CL strong{
        color: var(--cor06);
    }
/*=====Menu Hanburque=====*/
    #menu-toggle{
    display:none;
    }
    #menu-btn {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        position: absolute;
        top: 15px;
        right: 20px;
        z-index: 1002;
        }
    .menu-btn{
        width: 30px;
        height: 22px;
        cursor: pointer;
        z-index: 1002;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        margin-top: 25px;
        margin-right: 10px;
    }
    .menu-btn span{
        display: block;
        height: 3px;
        width: 100%;
        background-color: var(--cor03);
        border-radius: 3px;
        transition: 0.3s;
    }
    #menu-btn {
        display: flex; /* padrão: escondido */
        position: absolute;
        top: 15px;
        right: 20px;
        z-index: 1002;
    }
    .slide-menu{
        position: absolute;
        top: -130px;
        width: 90vw;
        min-height: 70px;
        background-image: linear-gradient(to right, var(--cor-card01),var(--cor-card02),var(--cor-card03), var(--cor-card01));
        color: var(--cor03);
        transition: top 1s ease;
        z-index: 1001;
        box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.414);
        
    }
    .slide-menu > ul{
        text-align: center;
        padding: 8px;
    }
    .slide-menu a{
        line-height: 1.8em;
        color: var(--cor03);
        border-radius: 10px;
        padding: 8px;
        font-size: clamp(1rem, 1vw, 1rem);
    }
    .slide-menu a:hover{
        color: var(--cor03);
        transition: background-color 0.3s, color 0.3s;
        box-shadow: inset 0px 0px 10px rgba(0, 0, 0, 0.414);
    }
    .overlay{
        position: fixed;
        top: 0;
        left: 0;
        max-width: 50px;
        background: rgba(0,0,0,0.3);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s ease;
        z-index: 1000;
    }
    #menu-toggle:checked ~ .slide-menu {
        top: 60px;
    }
    #menu-toggle:checked ~ .overlay {
        opacity: 1;
        pointer-events: auto;
    }
    #menu-toggle:checked + .menu-btn span:nth-child(1){
        transform: rotate(45deg) translatey(13px);
        background: white;
    }
    #menu-toggle:checked + .menu-btn span:nth-child(2){
        opacity: 0;
    }
    #menu-toggle:checked + .menu-btn span:nth-child(3){
        transform:rotate(-45deg) translatey(-13px);
        background: white;
    }
/*=====Fim Menu Hamburque*/
/*=====Esconder o Menu=====*/
    div#Menu-nav, div#Contado {
        display: none
    }
    /*=====SECTION HOME=====*/
    section#home{
        position: relative;
        padding-top: 90px;
    }
    div#img-01 {
        position: relative;
    }
    div#img-01 >img{
        position: relative;
        top: 50%;
        left: 50%;
        transform: translate(-50%, 0%);
        width: 200px;
    }
    div#coteudo-01{
        position: relative;
    }
    div#coteudo-01 > h1{
        font-size: clamp(1.3rem, 2vw, 1rem);
        color: var(--cor03);
        text-align: center;
        padding-top: 20px;
    }
    div#coteudo-01 > p{
        font-size: clamp(1rem, 1vw, 1rem);
        padding-top: 20px;
        text-align: center;
        color: var(--cor03);
    }
    /*===== EFEITO DE DIGITAÇÃO=====*/
    strong.typing{/* Definindo estilo para o efeito de digitação */
        display: inline-flex;/* Impedindo quebra de linha */
        white-space: nowrap;/* Impedindo quebra de linha */
        overflow: hidden;/* Ocultando o texto que ultrapassa o limite */
        border-right: 0.12em solid var(--cor05);/* Cursor do efeito de digitação */
        animation: 
            typing 3s steps(25, end) 1s infinite alternate,
            blink-caret 0.7s step-end infinite;/* Efeito de piscar o cursor */
    }
    @keyframes blink-caret{
        from, to{border-color: transparent;}/* Impedindo quebra de linha */
        50%{border-color: var(--cor03);}/* Cor do cursor */
    }
    @keyframes typing{
        from{width: 0ch;}/* Início do efeito de digitação */
        to{width: 25ch;}/* Fim do efeito de digitação */
    }
    /*=====Termino da digitação=====*/
    div#logo-social{
        display: flex;
        justify-content: center;
        text-align: center;
        gap: 15px;
        padding-top: 20px;
    }
    div#logo-social img {
        width: 30px;
        border-radius: 5px;
    } 
    div#logo-social span img{
        width: 140px;
    }
    div#logo-social img:hover{
        box-shadow:  3px 0px 8px rgba(18, 255, 144, 0.200);
    }
/*=====SECTION SERVIÇOS=====*/
    section#Servicos{
        display: block;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding-top: 60px;
    }
    section#Servicos > h2 {
        flex: 0 0 auto;
        margin: 0 0 8px 0;
        padding: 0 6px;
        text-align: center;
        color: var(--cor03);
        font-size: clamp(1.5rem, 2vw, 1.6rem);
    }
    section#Servicos > p {
        flex: 0 0 auto;
        margin: 0 12px 0;
        padding: 20px 6px 6px 6px;
        text-align: center;
        color: var(--cor03);
        font-size: clamp(1rem, 1vw, 1rem);
    }
    div#cards-servicos{
        display: flex;
        flex-direction: column;
        gap: 20px;
        padding-top: 20px;
        width: 300px;
        margin: auto;
    }
    div.card-servicos{
        display: flex;
        flex-direction: column;
        justify-content: center;
        background-image: linear-gradient(to right, var(--cor-card01),var(--cor-card02),var(--cor-card03), var(--cor-card01));
        height: 320px;
        padding: 10px;
        border-radius: 10px;
        box-shadow: 0 6px 15px rgba(0,0,0,0.35);
        width: 300px;
    }
    div.card-servicos >h3{
        color: var(--cor03);
        font-size: clamp(1.1rem, 2vw, 1rem);
        text-align: center;
        padding-top: 20px;
    }
    div.card-servicos >p{
        color: var(--cor03);
        padding-top: 20px;
        text-align: left;
        font-size: clamp(1rem, 1vw, 1rem);
        height: 100px;
    }
    div.card-servicos >ul{
        padding-left: 20px;
        padding-top: 20px;
        color: var(--cor03);
    }
    div.card-servicos >hr{
        border: none; /* remove borda padrão */
        border-top: 2px dotted rgba(255,255,255,0.15); /* linha pontilhada — ajuste cor/alpha conforme necessário */
        margin-top: 20px;  
    }
    div.preco-solicitar{
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-top: 20px;
    }
    p.preco-servicos{
        color: var(--cor03);
        font-size:clamp(1rem, 1vw, 1rem);
        font-weight: bold;
    }
    p.solicitar-servicos{
        position: relative;
        overflow: hidden;
        border: 0px solid rgba(0, 0, 0, 0);
        padding: 8px;
        border-radius: 8px;
        background-image: linear-gradient(to right, var(--cor04), var(--cor02));
    }
    p.solicitar-servicos >a{
        font-size:clamp(1rem, 1vw, 1rem);
        color: var(--cor03);
        font-weight: bold;
    }
    p.solicitar-servicos::after{
        content: '';
        position: absolute;
        left: 0;
        bottom: -2px;
        width: 0;
        height: 2px;
        border-bottom: 2px solid var(--cor06);
        border-radius: 10px;
        transition: width 0.3s ease;
    }
    p.solicitar-servicos:hover::after{
        width: 100%;
        background-color: var(--cor03);
    }
    p.solicitar-servicos:hover{
        background-image: linear-gradient(to right, var(--cor02), var(--cor04));
        transition: background-image 0.3s ease;
    }
    /*=====SECTION PORTFOLIOS=====*/
    section#Portifolios{
        display: block;
        flex-direction: column;
        padding-top: 60px;
        align-items: center;
        justify-content: center;
    }
    section#Portifolios > h2 {
        flex: 0 0 auto;
        margin: 0 0 8px 0;
        padding: 0 6px;
        text-align: center;
        color: var(--cor03);
        font-size: clamp(1.5rem, 2vw, 1.6rem);
    }
    section#Portifolios > p {
        flex: 0 0 auto;
        margin: 0 12px 0;
        padding: 20px 6px 6px 6px;
        text-align: center;
        color: var(--cor03);
        font-size: clamp(1rem, 1vw, 1rem);
    }
    div#cards-portifolios{
        display: flex;
        flex-direction: column;
        gap: 20px;
        margin-top: 20px;
        width: 300px;
        margin: auto;
    }
    div.card-portifolios{
        display: flex;
        flex-direction: column;
        justify-content: center;
        background-image: linear-gradient(to right, var(--cor-card01),var(--cor-card02),var(--cor-card03), var(--cor-card01));
        width: 300px;
        padding: 0px;
        box-shadow: 0 6px 15px rgba(0,0,0,0.35);
        border-radius: 10px;
        overflow: hidden;
    }
    div.card-portifolios >img{
        width: 300px;
    }
    div.card-portifolios >h3{
        color: var(--cor03);
        font-size: clamp(1rem, 2vw, 1.5rem);
        padding: 10px 10px 0px 10px;
    }
    div.card-portifolios >p{
        color: var(--cor03);
        text-align: left;
        font-size:clamp(1rem, 1vw, 1rem);
        margin-top: 10px;
        height: 70px;
        line-height: 1.3em;
        padding: 10px 10px 0px 10px;
    }
    div.card-portifolios a{
        position: relative;
        overflow: hidden;
        text-decoration: none;
        color: var(--cor06);
        font-size: clamp(1rem, 2vw, 1.2rem);
        font-weight: bold;
        padding-top: 20px;
    }
    p.ver-projeto >a{
        position: relative;
        overflow: hidden;
    }
    p.ver-projeto >a::after{
        content: '';
        position: absolute;
        left: 0;
        bottom: -4px;
        width: 0;
        height: 1px;
        border-bottom: 1px solid var(--cor06);
        transition: width 0.3s ease;
    }
    p.ver-projeto >a:hover::after{
        width: 82%;
        background-color: var(--cor06);
    }
    p.ver-projeto >a:hover{
        color: var(--cor03);
        transition: background-image 0.3s ease;
    }
    /*=====SECTION PROCESSO====*/
    section#Processos{
        display: block;
        flex-direction: column;
        padding-top: 60px;
        align-items: center;
        justify-content: center;
    }
    section#Processos > h2 {
        flex: 0 0 auto;
        margin: 0 0 8px 0;
        padding: 0 6px;
        text-align: center;
        color: var(--cor03);
        font-size: clamp(1.5rem, 2vw, 1.6rem);
    }
    div.processos{
        display: grid;
        grid-template-columns: 320px; 
        gap: 32px;
        align-items: start;
        justify-content: space-around;
        margin-top: 10px;
    }
    div.processos > ol{
        list-style: none;
        padding: 0;
        margin: 0;
        counter-reset: passos;
        width: 100%;
    }
    div.processos > ol > li{
        position: relative;
        display: block;
        padding: 8px 8px 8px 55px;
        margin: 18px 0;
        border: 0px transparent black;
        border-radius: 10px;
        background-image: linear-gradient(to right, var(--cor-card01),var(--cor-card03),var(--cor-card02), var(--cor-card01));
        box-shadow: 0 6px 12px rgba(0,0,0,0.18);
        font-size:clamp(1rem, 1vw, 1rem);
        line-height: 1.3em;
        color: var(--cor03);
        cursor: default;
        transition: transform 220ms ease, box-shadow 220ms ease, background 220ms ease;
        overflow: hidden;
        }
    /* marcador circular numerado */
    div.processos > ol > li::before{
        content: counter(passos);
        counter-increment: passos;
        position: absolute;
        left: 16px;
        top: 50%;
        transform: translateY(-50%);
        width: 25px;
        height: 25px;
        border-radius: 20%;
        background: var(--cor06);
        color: var(--cor01);
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 700;
        box-shadow: 0 2px 6px rgba(0,0,0,0.25);
        font-size: 0.95rem;
    }
    /* hover / foco para acessibilidade */
    div.processos > ol > li:hover,
    div.processos > ol > li:focus-within,
    div.processos > ol > li:focus {
        transform: translateY(-6px);
        box-shadow: 0 10px 22px rgba(0,0,0,0.28);
        outline: none;
    }
    /* suportar navegação por teclado */
    div.processos > ol > li:focus-visible {
        outline: 3px solid rgba(54,216,195,0.18);
    }
    /* variações visuais opcionais */
    div.processos > ol > li.pri{ /* se usar classes pri/seg */
        background-image: linear-gradient(to right, var(--cor-card01),var(--cor-card02),var(--cor-card03), var(--cor-card01));
    }
    div.processos > ol > li.seg{
        background-image: linear-gradient(to right, var(--cor-card01),var(--cor-card03),var(--cor-card02), var(--cor-card01));
    }
    div#img-2 > img{
        display: flex;
        width: 100%;
        width: 320px;
        object-fit:contain;
        margin: auto;
        order: 2;  
    }
    /*=====SECTION PRECOS====*/
    section#Precos{
        display: block;
        flex-direction: column;
        padding-top: 60px;
        align-items: center;
        justify-content: center;
    }
    section#Precos > h2 {
        flex: 0 0 auto;
        margin: 0 0 8px 0;
        padding: 0 6px;
        text-align: center;
        color: var(--cor03);
        font-size: clamp(1.5rem, 2vw, 1.6rem);
    }
    section#Precos > p {
        flex: 0 0 auto;
        margin: 0 12px 0;
        padding: 20px 6px 6px 6px;
        text-align: center;
        color: var(--cor03);
        font-size: clamp(1rem, 1vw, 1rem);
    }
    div#cards-precos{
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
        gap: 20px;
        align-items: start;
        margin-top: 20px;
        width: 100%;
        padding: 0 6px;
    }
    div.card-precos{
        display: flex;
        flex-direction: column;
        justify-content: center;
        background-image: linear-gradient(to right, var(--cor-card01), var(--cor-card02), var(--cor-card03), var(--cor-card01));
        padding: 10px;
        box-shadow: 0 8px 22px rgba(0,0,0,0.35);
        border-radius: 10px;
        width: 100%;
        min-height: 240px;
        transition: transform 220ms ease, box-shadow 220ms ease;
    }
    div.card-precos:hover{
        transform: translateY(-8px);
        box-shadow: 0 18px 40px rgba(0,0,0,0.44);
    }
    div.card-precos >h3{
        color: var(--cor03);
        font-size: clamp(1.3rem, 1vw, 1rem);
        padding: 10px 10px 0px 10px;
    }
    div.card-precos >p{
        color:  rgba(255,255,255,0.92);
        text-align: left;
        font-size:clamp(1.3rem, 1vw, 1rem);
        line-height: 1.3em;
        padding: 10px 10px 0px 10px;
    }
    div.card-precos >ul{
        padding: 0px 0px 0px 30px;
        color: var(--cor03);
        line-height: 1.5em;
        font-size:clamp(1rem, 1vw, 1rem);
    }
    /*=====SECTION CONTATOS====*/
    section#Contato{
        display: block;
        flex-direction: column;
        padding-top: 60px;
        align-items: center;
        justify-content: center;
    }
    section#Contato > h2 {
        flex: 0 0 auto;
        margin: 0 0 8px 0;
        padding: 0 6px;
        text-align: center;
        color: var(--cor03);
        font-size: clamp(1.5rem, 2vw, 1.6rem);
    }
    section#Contato > p {
        flex: 0 0 auto;
        margin: 0 12px 0;
        padding: 0 6px 6px 6px;
        text-align: center;
        color: var(--cor03);
        font-size: clamp(1rem, 1vw, 1rem);
    }
/* ===== FORMULÁRIO DE CONTATO ===== */
    .container {
        width: 320px;
        padding: 20px;
        background: linear-gradient(145deg, rgba(5,26,38,0.95), rgba(6,52,51,0.95));
        border-radius: 10px;
        box-shadow: 0 8px 32px rgba(0,0,0,0.25);
        backdrop-filter: blur(8px);
    }
    .form-input,
    .form-textarea {
        width: 100%;
        padding: 12px 16px;
        border: 1px solid rgba(255,255,255,0.1);
        border-radius: 10px;
        background: rgba(255,255,255,0.05);
        color: var(--cor03);
        font-size: 1rem;
        transition: all 0.3s ease; 
        margin-bottom: 20px;
    }
    .form-textarea {
        min-height: 120px;
        resize: vertical;
    }
    .form-input:focus,
    .form-textarea:focus {
        outline: none;
        border-color: var(--cor02);
        background: rgba(255,255,255,0.08);
        box-shadow: 0 0 0 3px rgba(0,120,84,0.15);
    }
    .form-button {
        position: relative;
        display: inline-block;
        padding: 12px 24px;
        background-image: linear-gradient(to right, var(--cor04), var(--cor02));
        color: var(--cor03);
        border: none;
        border-radius: 10px;
        font-size: 1rem;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.3s ease;
        box-shadow: 0 4px 12px rgba(0,0,0,0.2);
        width: 100%;
        overflow: hidden;
    }
    .form-button:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 16px rgba(0,0,0,0.3);
    }
    .form-button:active {
        transform: translateY(0);
    }
    /* Feedback visual para campos obrigatórios */
    .form-input:required + .form-label::after,
    .form-textarea:required + .form-label::after {
        content: "*";
        color: var(--cor05);
        margin-left: 4px;
    }
    @keyframes button-loading {
        to {
            transform: rotate(360deg);
        }
    }
    .form-button::after{
            content: '';
            position: absolute;
            left: 0;
            bottom: -2px;
            width: 0;
            height: 2px;
            border-bottom: 2px solid var(--cor06);
            border-radius: 10px;
            transition: width 0.3s ease;
        }
    .form-button:hover::after{
            width: 100%;
            background-color: var(--cor03);
        }
    .form-button:hover{
            background-image: linear-gradient(to right, var(--cor02), var(--cor04));
            transition: background-image 0.3s ease;
        }
    /* ...existing code... */
    div#imagens{
        display: flex;
        justify-content: center;
        align-items: center;
        width: 300px;
        gap: 2px;
        margin: auto;
    }
    div#imagens > img#img-3{
        width: 230px;
    }
    div#imagens  img#img-4{
        width: 30px;
        border-radius: 50%;
        box-shadow: 2px 3px 8px rgba(0, 0, 0, 0.54);
    }
/*===RODAPÉ=====*/
    footer {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100%;
        color: var(--cor03);
        padding: 0px 0px 30px 0;
        font-size: clamp(.7rem, 1vw, 1rem);
        gap: 10px;   
        margin-top: 20px;
    }
    footer strong >a{
        color: var(--cor06);
    }
    footer nav ul {
        display: flex;
        gap: 10px;
    }
    footer nav ul li {
        display: block;
    }
    footer nav ul li a {
        color: var(--cor03);
    }
