/*
=========================================================
PRECISÃO CARIMBOS
DESIGN SYSTEM 2026
STYLE.CSS
PARTE 4A
=========================================================
*/


/* ======================================================
   ROOT / DESIGN TOKENS
====================================================== */


:root {

    --primary: #0B4F8A;
    --primary-dark: #083761;
    --primary-soft: #EAF4FF;
    --accent: #25D366;
    --background: #F8FAFD;
    --surface: #FFFFFF;
    --surface-dark: #0B1624;
    --text: #17212B;
    --text-soft: #687586;
    --border: #E5EBF2;
    --radius-sm: 12px;
    --radius-md: 22px;
    --radius-lg: 36px;
    --radius-xl: 48px;
    --shadow-sm:
        0 10px 30px rgba(0, 0, 0, .05);
    --shadow-md:
        0 25px 60px rgba(11, 79, 138, .12);
    --shadow-lg:
        0 40px 100px rgba(11, 79, 138, .18);
    --transition:
        .35s cubic-bezier(.4, 0, .2, 1);
    --container: 1240px;
}

/* ======================================================
RESET
====================================================== */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family:
        'Plus Jakarta Sans',
        sans-serif;


    background:

        radial-gradient(circle at top right,
            rgba(37, 211, 102, .06),
            transparent 30%),

        var(--background);


    color: var(--text);


    line-height: 1.6;


    overflow-x: hidden;


}




img {


    max-width: 100%;

    display: block;


}



a {


    text-decoration: none;

    color: inherit;


}



button {


    border: 0;

    background: none;

    cursor: pointer;


}



ul {


    list-style: none;


}






/* ======================================================
CONTAINER
====================================================== */


.container {


    width: min(92%,
            var(--container));


    margin: auto;


}







/* ======================================================
SECTIONS
====================================================== */


.section {


    padding: 120px 0;


}



.section-header {


    max-width: 760px;

    margin:

        0 auto 70px;

    text-align: center;


}



.section-header h2 {


    margin-top: 25px;


    font-size:
        clamp(2rem,
            4vw,
            3.2rem);


    line-height: 1.15;


    font-weight: 800;


}




.section-header p {


    margin-top: 25px;


    color: var(--text-soft);


    font-size: 1.08rem;


}






/* ======================================================
BADGE
====================================================== */


.badge {


    display: inline-flex;


    align-items: center;


    gap: 8px;


    padding:

        10px 20px;


    border-radius: 999px;


    background:

        var(--primary-soft);


    color:

        var(--primary);


    font-size: .85rem;


    font-weight: 700;


    letter-spacing: .05em;


    text-transform: uppercase;


}






/* ======================================================
BUTTONS
====================================================== */


.button {


    display: inline-flex;


    align-items: center;


    justify-content: center;


    gap: 12px;


    padding:

        16px 32px;


    border-radius: 999px;


    font-weight: 700;


    transition:

        var(--transition);


}



.button-primary {


    background:

        linear-gradient(135deg,
            var(--primary),
            var(--primary-dark));


    color: #fff;


    box-shadow:

        var(--shadow-md);


}



.button-primary:hover {


    transform:

        translateY(-4px);


    box-shadow:

        var(--shadow-lg);


}




.button-outline {


    background: #fff;


    border:

        1px solid var(--border);


}



.button-outline:hover {


    background:

        var(--primary);


    color: #fff;


}







/* ======================================================
HEADER
====================================================== */


.header {


    position: fixed;


    top: 0;


    width: 100%;


    z-index: 1000;


    padding: 22px 0;


    transition:

        var(--transition);


}



.header.scrolled {


    background:

        rgba(255, 255, 255, .75);


    backdrop-filter:

        blur(20px);


    box-shadow:

        var(--shadow-sm);


}




.header .container {


    display: flex;


    align-items: center;


    justify-content: space-between;


}



.brand img {
    height: 55px;
}

.navigation {
    display: flex;
    gap: 38px;
}




.navigation a {


    font-weight: 600;


    position: relative;


}



.navigation a::after {


    content: "";


    position: absolute;


    left: 0;


    bottom: -8px;


    width: 0;


    height: 2px;


    background:

        var(--primary);


    transition:

        var(--transition);


}



.navigation a:hover::after {


    width: 100%;


}






.menu-toggle {


    display: none;


    font-size: 2rem;


}








/* ======================================================
HERO
====================================================== */


.hero {


    min-height: 100vh;


    display: flex;


    align-items: center;


    position: relative;


    overflow: hidden;


}



.hero-background {


    position: absolute;


    inset: 0;


    background:

        radial-gradient(circle at 20% 20%,
            rgba(11, 79, 138, .15),
            transparent 30%);


}




.hero-layout {


    display: grid;


    grid-template-columns:

        1fr 1fr;


    gap: 80px;


    align-items: center;


}





.hero-content h1 {


    margin-top: 30px;


    font-size:

        clamp(3rem,
            6vw,
            5rem);


    line-height: 1.05;


    font-weight: 800;


}



.hero-description {


    margin:

        35px 0;


    color:

        var(--text-soft);


    font-size: 1.2rem;


    max-width: 580px;


}



.hero-actions {


    display: flex;


    gap: 18px;


    flex-wrap: wrap;


}





.metrics {


    display: flex;


    gap: 45px;


    margin-top: 70px;


}



.metrics strong {


    display: block;


    color:

        var(--primary);


    font-size: 2rem;


    line-height: 1;


}



.metrics span {


    color:

        var(--text-soft);


    font-size: .9rem;


}








.hero-media {


    position: relative;


}



.hero-media img {
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
}

.hero-card {
    position: absolute;
    background: rgba(255, 255, 255, .8);
    backdrop-filter: blur(15px);
    padding: 18px 25px;
    border-radius: var(--radius-md);
    font-weight: 700;
    box-shadow: var(--shadow-md);
}

.card-stamp {
    top: 50px;
    left: -30px;
}

.card-key {
    right: -30px;
    bottom: 50px;
}

/* ======================================================
   SOLUÇÕES
====================================================== */


.solutions {


    background:

        linear-gradient(180deg,
            transparent,
            #fff);


}



.solution {


    display: grid;


    grid-template-columns:

        1fr 1fr;


    gap: 90px;


    align-items: center;


    margin-bottom: 120px;


}




.solution-reverse {


    direction: rtl;


}



.solution-reverse .solution-content,
.solution-reverse .solution-media {


    direction: ltr;


}





.solution-category {


    display: inline-block;


    color:

        var(--primary);


    font-size: .85rem;


    font-weight: 800;


    letter-spacing: .12em;


    margin-bottom: 25px;


}



.solution h3 {


    font-size:

        clamp(2rem,
            3vw,
            2.8rem);


    line-height: 1.2;


    margin-bottom: 25px;


}



.solution p {


    color:

        var(--text-soft);


    font-size: 1.05rem;


    margin-bottom: 35px;


}



.check-list {


    display: flex;


    flex-direction: column;


    gap: 16px;


}



.check-list li {


    display: flex;


    align-items: center;


    gap: 12px;


    font-weight: 600;


}



.check-list i {
    color: var(--accent);
}

.solution-media {
    position: relative;
}

.solution-media::before {
    content: "";
    position: absolute;
    inset: -20px;
    background: var(--primary-soft);
    border-radius: var(--radius-xl);
    z-index: -1;
}



.solution-media img {


    border-radius:

        var(--radius-xl);


    box-shadow:

        var(--shadow-md);


}







/* ======================================================
MINI HIGHLIGHT
====================================================== */


.mini-highlight {


    display: flex;


    align-items: center;


    gap: 20px;


    margin-top: 40px;


}



.mini-highlight strong {


    font-size: 4rem;


    color:

        var(--primary);


    line-height: 1;


}



.mini-highlight span {


    max-width: 120px;


    color:

        var(--text-soft);


}








/* ======================================================
EMPRESA
====================================================== */


.company {


    background: #fff;


}



.split {


    display: grid;


    grid-template-columns:

        .8fr 1fr;


    gap: 100px;


    align-items: center;


}



.split h2 {


    font-size:

        clamp(2.5rem,
            4vw,
            3.5rem);


    line-height: 1.1;


}



.text-content {


    color:

        var(--text-soft);


    font-size: 1.1rem;


}



.text-content p+p {


    margin-top: 25px;


}








/* ======================================================
MÉTRICAS
====================================================== */


.metrics-section {


    padding-top: 60px;


}



.metrics-highlight {


    display: grid;


    grid-template-columns:

        repeat(4, 1fr);


    gap: 30px;


}



.metrics-highlight div {


    text-align: center;


    padding: 35px 20px;


    background:

        var(--surface);


    border-radius:

        var(--radius-md);


    box-shadow:

        var(--shadow-sm);


}



.metrics-highlight strong {


    display: block;


    font-size:

        3rem;


    color:

        var(--primary);


    font-weight: 800;


}



.metrics-highlight span {


    color:

        var(--text-soft);


}









/* ======================================================
DIFERENCIAIS
====================================================== */


.advantages {


    background: #fff;


}




.advantages-grid {


    display: grid;


    grid-template-columns:

        repeat(3, 1fr);


    gap: 30px;


}



.advantage {


    padding: 40px;


    background:

        var(--background);


    border-radius:

        var(--radius-md);


    transition:

        var(--transition);


}



.advantage:hover {


    transform:

        translateY(-8px);


    box-shadow:

        var(--shadow-md);


    background: #fff;


}



.advantage .icon {


    width: 60px;


    height: 60px;


    display: flex;


    align-items: center;


    justify-content: center;


    background:

        var(--primary-soft);


    color:

        var(--primary);


    border-radius:

        18px;


    font-size: 1.5rem;


    margin-bottom: 25px;


}



.advantage h3 {


    margin-bottom: 15px;


    font-size: 1.3rem;


}



.advantage p {


    color:

        var(--text-soft);


}







/* ======================================================
PROCESSO
====================================================== */


.process {


    background:

        linear-gradient(180deg,
            #fff,
            var(--background));


}




.process-grid {


    display: grid;


    grid-template-columns:

        repeat(4, 1fr);


    gap: 25px;


}




.process-item {


    position: relative;


    padding: 35px;


    background: #fff;


    border-radius:

        var(--radius-md);


    box-shadow:

        var(--shadow-sm);


}



.process-item>span {


    display: flex;


    width: 55px;


    height: 55px;


    align-items: center;


    justify-content: center;


    background:

        var(--primary);


    color: #fff;


    border-radius: 50%;


    font-weight: 800;


    margin-bottom: 25px;


}



.process-item h3 {


    margin-bottom: 15px;


}



.process-item p {


    color:

        var(--text-soft);


}








/* ======================================================
RESPONSIVO
====================================================== */


@media(max-width:1100px) {


    .solution,
    .split {


        grid-template-columns: 1fr;


        gap: 50px;


    }


    .solution-reverse {


        direction: ltr;


    }



    .metrics-highlight {


        grid-template-columns:

            repeat(2, 1fr);


    }



    .advantages-grid {


        grid-template-columns:

            repeat(2, 1fr);


    }



    .process-grid {


        grid-template-columns:

            repeat(2, 1fr);


    }



}

/* ======================================================
   GALERIA
====================================================== */


.gallery {

    background: #fff;

}



.gallery-grid {


    display: grid;


    grid-template-columns:

        repeat(12, 1fr);


    grid-auto-rows: 220px;


    gap: 20px;


}



.gallery-item {


    position: relative;


    overflow: hidden;


    border-radius:

        var(--radius-md);


}



.gallery-item::after {


    content: "";


    position: absolute;


    inset: 0;


    background:

        linear-gradient(180deg,
            transparent,
            rgba(0, 0, 0, .35));


    opacity: 0;


    transition:

        var(--transition);


}



.gallery-item:hover::after {


    opacity: 1;


}



.gallery-item img {


    width: 100%;


    height: 100%;


    object-fit: cover;


    transition:

        .6s ease;


}



.gallery-item:hover img {


    transform:

        scale(1.08);


}



.gallery-large {


    grid-column:

        span 6;


    grid-row:

        span 2;


}



.gallery-tall {


    grid-column:

        span 3;


    grid-row:

        span 2;


}



.gallery-item:not(.gallery-large):not(.gallery-tall) {


    grid-column:

        span 3;


}







/* ======================================================
   DEPOIMENTOS
====================================================== */


.testimonials {


    background:

        linear-gradient(180deg,
            var(--background),
            #fff);


}



.testimonial-grid {


    display: grid;


    grid-template-columns:

        repeat(3, 1fr);


    gap: 30px;


}



.testimonial {


    background: #fff;


    padding: 40px;


    border-radius:

        var(--radius-md);


    box-shadow:

        var(--shadow-sm);


    transition:

        var(--transition);


}



.testimonial:hover {


    transform:

        translateY(-8px);


    box-shadow:

        var(--shadow-md);


}



.rating {


    color: #F5B301;


    font-size: 1.3rem;


    margin-bottom: 25px;


}



.testimonial p {


    color:

        var(--text-soft);


    margin-bottom: 30px;


    font-size: 1.05rem;


}



.testimonial footer {


    display: flex;


    align-items: center;


    gap: 15px;


}



.avatar {


    width: 48px;


    height: 48px;


    border-radius: 50%;


    background:

        var(--primary-soft);


    color:

        var(--primary);


    display: flex;


    align-items: center;


    justify-content: center;


    font-weight: 800;


}



.testimonial footer span {


    display: block;


    color:

        var(--text-soft);


    font-size: .9rem;


}








/* ======================================================
   FAQ
====================================================== */


.faq {


    background: #fff;


}



.faq-list {


    max-width: 850px;


    margin: auto;


    display: flex;


    flex-direction: column;


    gap: 18px;


}



.faq-item {


    background:

        var(--background);


    border-radius:

        var(--radius-md);


    padding: 25px 30px;


}



.faq-item summary {


    cursor: pointer;


    list-style: none;


    display: flex;


    justify-content: space-between;


    align-items: center;


    font-weight: 700;


    font-size: 1.05rem;


}



.faq-item summary::-webkit-details-marker {


    display: none;


}



.faq-item summary span {


    font-size: 1.8rem;


    color:

        var(--primary);


}



.faq-item p {


    margin-top: 20px;


    color:

        var(--text-soft);


}







/* ======================================================
   CTA FINAL
====================================================== */


.final-cta {


    background:

        linear-gradient(135deg,
            var(--primary),
            var(--primary-dark));


}



.cta-box {


    background:

        rgba(255, 255, 255, .08);


    border:

        1px solid rgba(255, 255, 255, .15);


    backdrop-filter:

        blur(20px);


    border-radius:

        var(--radius-xl);


    padding:

        70px;


    display: flex;


    align-items: center;


    justify-content: space-between;


    gap: 40px;


    color: #fff;


}



.cta-box .badge {
    background: rgba(209,52,63);
    color: #fff;
}

.cta-box h2 {
    font-size:
        clamp(2rem,
            4vw,
            3rem);
    line-height: 1.15;
    margin: 25px 0;
}

.cta-box p {
    opacity: .85;
    max-width: 600px;
}

.cta-actions {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.cta-box .button-primary {
    background: #fff;
    color: var(--primary);
}

/* ======================================================
   CONTATO
====================================================== */


.contact-layout {


    display: grid;


    grid-template-columns:

        .9fr 1.1fr;


    gap: 50px;


    align-items: stretch;


}



.contact-cards {


    display: flex;


    flex-direction: column;


    gap: 20px;


}



.contact-card {


    display: flex;


    gap: 20px;


    padding: 25px;


    background: #fff;


    border-radius:

        var(--radius-md);


    box-shadow:

        var(--shadow-sm);


}



.contact-card i {


    width: 50px;


    height: 50px;


    display: flex;


    justify-content: center;


    align-items: center;


    border-radius: 15px;


    background:

        var(--primary-soft);


    color:

        var(--primary);


    font-size: 1.3rem;


}



.contact-card h3 {


    margin-bottom: 5px;


}



.contact-card p {


    color:

        var(--text-soft);


}



.map {


    min-height: 500px;


}



.map iframe {


    width: 100%;


    height: 100%;


    min-height: 500px;


    border: 0;


    border-radius:

        var(--radius-xl);


}








/* ======================================================
   FOOTER
====================================================== */


.footer {


    background:

        #071421;


    color: #fff;


    padding:

        90px 0 30px;


}



.footer-grid {


    display: grid;


    grid-template-columns:

        1.5fr repeat(3, 1fr);


    gap: 50px;


}

.footer-brand img {
    height: 60px;
    margin-bottom: 25px;
    border: none;
}

.footer p,
.footer li {
    color:
        rgba(255, 255, 255, .65);
}

.footer-column h3 {
    margin-bottom: 25px;
}

.footer-column ul {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.social-links {
    display: flex;
    gap: 15px;
    margin-top: 25px;
}

.social-links a {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .1);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
}

.social-links a:hover {
    background: var(--primary);
}

.footer-bottom {
    margin-top: 60px;
    padding-top: 25px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    text-align: center;
}


/* ======================================================
   FLOATING BUTTONS
====================================================== */

.floating-whatsapp {
    position: fixed;
    right: 25px;
    bottom: 25px;
    width: 65px;
    height: 65px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    z-index: 999;
    box-shadow: 0 15px 40px rgba(37, 211, 102, .35);
    animation: pulse 2.5s infinite;
}

@keyframes pulse {

    0% {
        box-shadow: 0 0 0 0 rgba(37, 211, 102, .5);
    }

    70% {
        box-shadow: 0 0 0 20px rgba(37, 211, 102, 0);
    }

    100% {
        box-shadow: none;
    }

}

.back-to-top {
    position: fixed;
    right: 25px;
    bottom: 105px;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

@media(max-width:900px) {

    .navigation,
    .header .button-primary {
        display: none;
    }

    .menu-toggle {
        display: block;
    }

    .hero-layout,
    .contact-layout {
        grid-template-columns: 1fr;
    }

    .metrics {
        flex-wrap: wrap;
    }

    .testimonial-grid,
    .advantages-grid {
        grid-template-columns: 1fr;
    }

    .cta-box {
        flex-direction: column;
        text-align: center;
        padding: 45px 30px;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }

    .gallery-grid {
        grid-template-columns: 1fr 1fr;
        grid-auto-rows: 180px;
    }

    .gallery-large,
    .gallery-tall,
    .gallery-item:not(.gallery-large):not(.gallery-tall) {
        grid-column: span 1;
        grid-row: span 1;
    }
}

@media(max-width:560px) {

    .section {
        padding: 80px 0;
    }

    .hero-actions {
        flex-direction: column;
    }

    .metrics {
        flex-direction: column;
    }

    .gallery-grid {
        grid-template-columns: 1fr;
    }
}

@media(max-width:900px) {
    .navigation.active {
        display: flex;
        position: absolute;
        top: 90px;
        left: 0;
        right: 0;
        flex-direction: column;
        background: #fff;
        padding: 30px;
        border-radius: 0 0 25px 25px;
        box-shadow: var(--shadow-md);

    }
}