/* font weights:
300 - light
400 - regular
500 - medium
700 - bold
 */

body{
    background-color: #141414;
    font-family: "Inter", sans-serif;
    font-weight: 400;
    color: #faf9f6;
    position: relative;
    overflow-x: hidden;
}

:root{
    --font-body: clamp(0.95rem, 1.1vw, 1.15rem);
    --font-h3: clamp(1.2rem, 1.4vw, 1.5rem);
    --font-h2: clamp(1.8rem, 2.4vw, 2.8rem);
}

/* TÍTULOS PRINCIPAIS PADRONIZADOS */
.main-section-title{
    margin:0 0 3vh;
    font-size:var(--font-h2);
    font-weight:500;
    line-height:1.2;
}

section{
    scroll-margin-top:15vh;
}

/* ===========================
   BACKGROUND SIDE DECORATIONS
=========================== */

.side-decorations-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

.side-deco {
    position: absolute;
    width: 18vw;
    height: 70vh;
    background-image: url('../img/bg_elements/firula_3.png');
    background-size: auto 100%;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0.035;
    filter: none;
}

.side-deco.left {
    left: -7vw;
    transform: scaleX(1);
}

.side-deco.right {
    right: -7vw;
    transform: scaleX(-1);
}

/* Alternância visual ao longo da página */
.side-deco.deco-1 { top: 78vh; }
.side-deco.deco-2 { top: 168vh; }
.side-deco.deco-3 { top: 258vh; }
.side-deco.deco-4 { top: 348vh; }
.side-deco.deco-5 { top: 438vh; }
.side-deco.deco-6 { top: 528vh; }

@media (max-width:991px){
    .side-deco {
        width: 28vw;
        height: 58vh;
        opacity: 0.025;
    }

    .side-deco.left {
        left: -13vw;
    }

    .side-deco.right {
        right: -13vw;
    }

    .side-deco.deco-1 { top: 82vh; }
    .side-deco.deco-2 { top: 172vh; }
    .side-deco.deco-3 { top: 262vh; }
    .side-deco.deco-4 { top: 352vh; }
    .side-deco.deco-5 { top: 442vh; }
    .side-deco.deco-6 { top: 532vh; }
}


/* ===========================
   NAVBAR
=========================== */

.header-fixed{
    position: sticky;
    top: 0;
    z-index: 10000;
    background: #141414;
    width: 100%;
}

.navbar-custom{
    padding: 8px 20px;
    background:#141414;
}

.navbar-brand img{
    height: 6vh;
    width:auto;
}

.navbar-links{
    display:flex;
    align-items:center;
    gap:32px;
    background:#202020;
    padding-left: 20px;
    border-radius:50px;
}

.navbar-links p{
    margin:0;
    color:#faf9f6;
    font-size:0.95rem;
    font-weight:500;
    cursor:pointer;
    transition:.25s;
}

.navbar-links a{
    text-decoration: none;
    color: inherit;
    transition: .25s;
}

.navbar-links p:hover{
    color:#8aabec;
}

.contact-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:1vw;
    width:fit-content;
    height: 6.2vh;
    padding:0 0.6vw 0 1.6vw;
    background:#004a94;
    border:none;
    border-radius:50px;
    color:#faf9f6;
    font-weight:600;
    font-size:clamp(0.85rem, 1vw, 1.1rem);
    transition:.25s;
}

.contact-btn:hover{
    background:#0062c2;
}

.arrow-circle{
    width: 2.1vw;
    height: 2.1vw;
    min-width: 36px;
    min-height: 36px;
    border-radius:50%;
    display:flex;
    justify-content:center;
    align-items:center;
    background:#faf9f6;
}

.arrow-circle img{
    width:75%;
}

.line{
    background-color: #202020;
    height: 2px;
    width: 100%;
}

.navbar-links a.active p{
    color:#8AABEC;
    font-weight:600;
}

@media (max-width:991px){
    .navbar-brand img{
        height:4.5vh;
    }

    .navbar-custom{
        padding: 10px 0px;
    }
}

/* ===========================
   NAVBAR MOBILE
=========================== */

.menu-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.6);
    opacity:0;
    visibility:hidden;
    transition:.25s;
    z-index:9998;
}

.menu-overlay.active{
    opacity:1;
    visibility:visible;
}

@media (max-width:991px){
    .navbar-toggler{
        z-index:10001;
    }

    .navbar-collapse{
        position:fixed;
        top:0;
        right:-100%;
        width:min(340px,85vw);
        height:100vh;
        background:#202020;
        padding:7rem 2rem 2rem;
        transition:right .35s ease;
        display:block !important;
        overflow-y:auto;
        z-index:9999;
    }

    .navbar-collapse.open{
        right:0;
    }

    .navbar-links{
        width:100%;
        background:none;
        border-radius:0;
        padding:0;
        display:flex;
        flex-direction:column;
        align-items:flex-start;
        gap:2rem;
    }

    .navbar-links a{
        width:100%;
        text-decoration:none;
    }

    .navbar-links p{
        font-size:1.2rem;
    }

    .navbar-links .contact-btn{
        width:100%;
        justify-content:space-between;
        margin-top:1rem;
    }

    body.menu-open{
        overflow:hidden;
    }
}

.navbar-toggler{
    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:2px solid #004A94;
    border-radius:50%;
    background:#202020;
    padding:0;
    transition:.25s;
}

.navbar-toggler:hover{
    background:#004A94;
}

.navbar-toggler:focus{
    box-shadow:0 0 0 .25rem rgba(0,74,148,.35);
}

.navbar-toggler-icon{
    filter:invert(1);
}

/* ===========================
   CONTENT
=========================== */

.content{
    max-width: 1670px;
    width: calc(100% - 13vw);
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

@media (max-width: 991px){
    .content{
        margin: 0 6.4vw;
    }
}

/* ===========================
   BANNER
=========================== */

.hero{
    width:100%;
    height:70vh;
    border-radius:3rem;
    overflow:hidden;
    background-image: url('/img/bkg.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #343434;
}

.hero-overlay{
    width:100%;
    height:100%;
    padding:0 6vw;
    display:flex;
    align-items:center;
    border-radius:3rem;
    background: linear-gradient(
    90deg,
    rgba(0,0,0,.85) 0%,
    rgba(0,0,0,.75) 35%,
    rgba(0,0,0,.55) 60%,
    rgba(0,0,0,.30) 80%,
    rgba(0,0,0,0) 100%
    );
}

.hero-logo{
    height:30vh;
    width:auto;
}

.hero-text{
    display:flex;
    flex-direction:column;
    gap:4vh;
    margin-left: 5vw;
}

.hero h1{
    color:#FAF9F6;
    font-size:var(--font-h2);
    font-weight:700;
    margin:0;
}

.hero p{
    color:#FAF9F6;
    font-size:var(--font-body);
    font-weight:300;
    margin:0;
    max-width:32vw;
}

.hero p .medium{ font-weight:500; }
.hero p .bold{ font-weight:700; }

@media (max-width:991px){
    .hero{ height:78vh; }
    .hero-overlay{ padding:0 1.5vw; text-align:center; }
    .hero-logo{ height: 20vh; margin-bottom:4vh; margin-top: 2vh; }
    .hero-text{ align-items:center; gap: 4vh; margin-left: 0; }
    .hero p{ max-width:100%; }
    .hero-text h1{ font-size: 1.6rem; }
    .hero-text p{ font-size: 1.1rem; }
}

/* ===========================
   QUEM SOMOS
=========================== */

.quem-somos{ margin:10vh 0; }
.quem-somos .main-section-title{ margin-bottom:4vh; }
.text-card{ background:#202020; border:none; border-radius:3rem; color:#faf9f6; }
.text-card .card-body{ padding:5vh 4vw; }
.text-card p{ font-weight:300; font-size:var(--font-body); text-align:justify; margin-bottom:3vh; }
.text-card p:last-child{ margin-bottom:0; }
.text-highlight{ color:#8aabec; font-weight:500; }

/* ===========================
   O QUE FAZEMOS   
=========================== */

.o-que-fazemos{ margin:10vh 0; position: relative; }

.o-que-fazemos p{ text-align: left !important; }

.service-card{
    height:100%;
    background:#202020;
    border-radius:3rem;
    padding:3.5vh 2vw;
    display:flex;
    flex-direction:column;
}

.service-header{
    display:flex;
    align-items:center;
    gap:1.5vw;
    margin-bottom:2.5vh;
}

.service-icon{
    width:5vw;
    height:5vw;
    min-width:60px;
    min-height:60px;
    border-radius:50%;
    background:#004a94;
    display:flex;
    justify-content:center;
    align-items:center;
    flex-shrink:0;
}

.service-icon img{
    width:68%;
    height:68%;
    object-fit:contain;
}

.service-header h3{
    margin:0;
    color:#faf9f6;
    font-size:var(--font-h3);
    font-weight:500;
}

.service-card p{
    margin:0;
    font-size:var(--font-body);
    font-weight:300;
    text-align:justify;
    color:#faf9f6;
}

/* ===========================
   ATUAÇÃO
=========================== */

.atuacao{ margin:10vh 0; }

.modalidades-card{ width:40vw; min-width:300px; }
.operation-list{ margin:0; padding-left:1.2rem; }
.operation-list li{ margin-bottom:1.2vh; font-size:var(--font-body); font-weight:300; }

.sector-list{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:1.2vh;
}
.sector-list li{
    display:flex;
    align-items:center;
    gap:1vw;
    margin:0;
    font-size:var(--font-body);
    font-weight:300;
    color:#faf9f6;
}
.sector-list img{
    width:2.2vw;
    min-width:32px;
    height:2.2vw;
    min-height:32px;
    object-fit:contain;
    flex-shrink:0;
}

.mapa-card{ overflow:hidden; }
.map-description{ font-size:var(--font-body); font-weight:300; margin-bottom:3vh; }
.world-map{ display:block; width:80%; margin:auto; height:auto; }
.countries{ display:flex; align-items:center; gap:1vw; margin-top:4vh; }
.countries img{ width:2.2vw; min-width:34px; }
.countries p{ font-size:var(--font-body); font-weight:300; margin: 0; }

@media (max-width:991px){
    .modalidades-card{ width:100%; min-width:unset; }
    .world-map{ width:100%; }
    .countries{ gap:4vw; }
    .countries img{ width:8vw; }
    .sector-list{ gap:1.5vh; }
    .sector-list li{ gap:3vw; }
    .sector-list img{ width:8vw; height:8vw; min-width:34px; min-height:34px; }
}

/* ===========================
   METODOLOGIA
=========================== */

.metodologia{ margin:10vh 0; }

.metodologia-intro{ margin-bottom:6vh; }

.timeline{
    position:relative;
    margin-left:7vw;
    padding-left:7vw;
    border-left:.5vw solid #faf9f6;
}
.timeline-item{ position:relative; margin-bottom:4vh; }
.timeline-marker{
    position:absolute;
    left:calc(-8vw - 0.7vw);
    top:2.2vw;
    width:3vw;
    height:3vw;
    min-width:18px;
    min-height:18px;
    background:#202020;
    border:.5vw solid #faf9f6;
    border-radius:50%;
}
.timeline-item .service-card{ margin-left:1vw; }
.timeline-arrow{
    position:absolute;
    left:-1.555vw;
    bottom:0vw;
    width:2.7vw;
    height:2.7vw;
    min-width:18px;
    min-height:18px;
    border-right:.5vw solid #FAF9F6;
    border-bottom:.5vw solid #FAF9F6;
    transform:rotate(45deg);
}

@media (max-width:991px){
    .timeline{ margin-left:18px; padding-left:38px; border-left:4px solid #FAF9F6; }
    .timeline-item{ margin-bottom:3.5vh; }
    .timeline-item .service-card{ margin-left:8px; }
    .timeline-marker{ left:-55px; top:34px; width:30px; height:30px; min-width:22px; min-height:22px; border:4px solid #FAF9F6; background:#202020; }
    .timeline-arrow{ width:22px; height:22px; left:-13px; bottom:0; border-right:4px solid #FAF9F6; border-bottom:4px solid #FAF9F6; transform:rotate(45deg); }
}

/* ===========================
   NOSSA EQUIPE
=========================== */

.nossa-equipe{ margin:10vh 0; display:flex; flex-direction:column; gap:4vh; }
.nossa-equipe .main-section-title{ margin:0; }
.nossa-equipe p{ margin-bottom:3vh; }

/* ===========================
   ONDE GERAMOS VALOR
=========================== */

.value-list{
    margin-top:2vh;
    display:flex;
    flex-direction:column;
    gap:2.6vh;
}

.value-group{
    margin:0;
}

.value-group h4{
    margin:0 0 1rem;
    color:#FAF9F6;
    font-size:var(--font-h3);
    font-weight:500;
    line-height:1.3;
}

.value-group ul{
    margin:0;
    padding-left:1.2rem;
    color:#FAF9F6;
}

.value-group li{
    margin-bottom:.55rem;
    font-size:var(--font-body);
    font-weight:300;
    line-height:1.5;
}

.value-group li:last-child{
    margin-bottom:0;
}

/* ===========================
   NOSSO DIFERENCIAL
=========================== */

.nosso-diferencial{ margin:10vh 0; }

.intro-card{ margin-bottom:4vh; }
.intro-card p{ margin:0; padding:0; font-size:var(--font-body); font-weight:300; text-align:justify; }
.suporte-pos-texto { text-align: left !important; }

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

.cta{ margin:10vh 0; }
.cta .service-card{ padding:4vh 3vw; }
.cta h2{ margin:0; font-weight:500; font-size:var(--font-h2); }
.cta p{ margin-bottom:3vh; text-align: left; font-size:var(--font-body); }
.cta .contact-btn{ align-self:flex-start; margin-top: 2vh; }

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

.footer{
    width:100%;
    background:#202020;
    padding:4vh 5vw;
    position: relative;
    overflow: visible;
}

.footer-content{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:4vw;
    position: relative;
    z-index: 1;
}

.footer-info{ display:flex; flex-direction:column; gap:1.5vh; }
.footer h2{ margin-bottom:2vh; font-size:var(--font-h3); font-weight:700; }
.footer-brand{ font-weight:700; }
.footer-reg{
    display:inline-block;
    font-size:.45em;
    line-height:1;
    vertical-align:baseline;
    position:relative;
    top:-0.08em;
    margin-left:.12em;
    font-weight:400;
    white-space:nowrap;
}

.content-line{ display:flex; align-items:center; gap:.8vw; }
.content-line img{ width:26px; height:26px; object-fit:contain; flex-shrink:0; }
.content-line p{ margin:0; font-size:var(--font-body); font-weight:500; word-break:break-word; }

.rotated-line{
    width:.15vw;
    height:22px;
    background:#faf9f6;
    margin:0 .3vw;
    transform: rotate(30deg);
}

.footer-logo{ height:130px; width:auto; }
.footer a{ color: inherit; }
.footer-copy-btn{ overflow-wrap:anywhere; word-break:break-word; background:none; border:none; padding:0; margin:0; color:inherit; font:inherit; text-align:left; cursor:pointer; transition:.2s; }
.footer-copy-btn:hover{ color:#8AABEC; }

@media (max-width:991px){
    .footer{ width:100vw; max-width:100vw; overflow:hidden; }
    .footer-content{ flex-direction:column-reverse; align-items:flex-start; }
    .content-line{ gap:12px; }
    .rotated-line{ margin:0 4px; }
    .footer-logo{ height: 0; width: 0; }
}

/* ===========================
   CONTACT MODAL
=========================== */

.contact-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.6);
    display:flex;
    justify-content:center;
    align-items:center;
    opacity:0;
    visibility:hidden;
    transition:.25s;
    z-index:99999;
}

.contact-overlay.active{ opacity:1; visibility:visible; }
.contact-modal{ width:40vw; background:#202020; border:2px solid #5d5d5d; border-radius:2rem; padding:2.5rem; position:relative; }
.contact-modal h2{ margin-bottom:2rem; text-align:center; font-size:var(--font-h2); font-weight:500; }
.close-modal{ position:absolute; right:20px; top:18px; background:none; border:none; color:white; font-size:2rem; cursor:pointer; }
.contact-card{ border:2px solid #5d5d5d; border-radius:1.3rem; padding:1.2rem 1.5rem; margin-bottom:1.2rem; }
.contact-card:last-child{ margin-bottom:0; }
.contact-title{ display:flex; align-items:center; gap:1rem; margin-bottom:1rem; }
.contact-title img{ width:34px; }
.contact-title h3{ margin:0; font-size: var(--font-h3); }
.contact-buttons{ display:flex; gap:1rem; flex-wrap:wrap; }

.contact-action{ display:flex; align-items:center; justify-content:center; gap:.6rem; border-radius:100px; text-decoration:none; cursor:pointer; transition:.25s; }
.contact-action.primary{
    display:inline-flex;
    align-items:center;
    width:45%;
    height: 6.2vh;
    padding:0 0.4vw 0 1.2vw;
    background:#004a94;
    border:none;
    border-radius:50px;
    color:#FAF9F6;
    font-weight:600;
    font-size:clamp(0.75rem, 0.95vw, 1.1rem);
    transition:.25s;
}
.contact-action.primary span{ flex:1; text-align:left; }
.contact-action.primary:hover{ background:#0062c2; }

.copy-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0.8vw;
    width:45%;
    height: 6.2vh;
    padding:0 0.4vw 0 1.2vw;
    background:#141414;
    border:none;
    border-radius:50px;
    color:#FAF9F6;
    font-weight:600;
    font-size:clamp(0.75rem, 0.95vw, 1.1rem);
    transition:.25s;
}
.copy-btn:hover{ background:#252525; }
.copy-btn span{ flex:1; text-align:left; }

.copy-circle{
    width:2.1vw;
    height:2.1vw;
    min-width:32px;
    min-height:32px;
    border-radius:50%;
    background:#FAF9F6;
    display:flex;
    justify-content:center;
    align-items:center;
    flex-shrink:0;
}
.copy-circle img{ width:50%; height:50%; object-fit:contain; }

.copy-toast{
    position:fixed;
    left:50%;
    bottom:2rem;
    transform:translateX(-50%) translateY(30px);
    background:#202020;
    color:#FAF9F6;
    border:2px solid #8AABEC;
    border-radius:999px;
    padding:.9rem 1.6rem;
    font-size:1rem;
    font-weight:500;
    opacity:0;
    pointer-events:none;
    transition:.3s ease;
    z-index:999999;
}
.copy-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

@media (max-width:991px){
    .contact-modal{ width:92vw; max-width:none; padding:1.2rem; border-radius:1.25rem; }
    .contact-modal h2{ font-size:1.45rem; line-height:1.3; margin-bottom:1.4rem; padding-right:2rem; }
    .close-modal{ right:14px; top:12px; font-size:1.6rem; }
    .contact-card{ padding:1rem; margin-bottom:1rem; border-radius:1rem; }
    .contact-title{ gap:.8rem; margin-bottom:1rem; }
    .contact-title img{ width:24px; height:auto; }
    .contact-title h3{ margin:0; font-size:1.15rem; line-height:1.3; }
    .contact-buttons{ display:flex; flex-direction:column; gap:.8rem; }
    .contact-action.primary, .copy-btn{ width:100%; height:54px; padding:0 .5rem 0 1rem; font-size:.95rem; }
    .arrow-circle, .copy-circle{ width:34px; height:34px; min-width:34px; min-height:34px; margin-left:auto; }
    .copy-toast{ width:calc(100vw - 40px); max-width:320px; bottom:20px; padding:.8rem 1rem; font-size:.9rem; text-align:center; }
}

/* ===========================
   EXPANDABLE CARD
=========================== */

.expand-btn{ display:none; }

@media (max-width:991px){
    .expandable-card{ position:relative; overflow:hidden; max-height:320px; transition:max-height .45s ease; }
    .expandable-card.expanded{ max-height:2000px; }
    .expandable-card::after{
        content:"";
        position:absolute;
        left:0; right:0; bottom:70px;
        height:110px;
        background:linear-gradient(rgba(32,32,32,0), rgba(32,32,32,.15), rgba(32,32,32,.45), rgba(32,32,32,.75), #202020);
        pointer-events:none;
        transition:.3s;
    }
    .expandable-card.expanded::after{ opacity:0; }
    .expand-btn{
        display:block;
        position:absolute;
        left:0; right:0; bottom:0;
        height:70px;
        border:none;
        background:#202020;
        color:#8AABEC;
        font-size:1rem;
        font-weight:500;
        cursor:pointer;
        transition:.25s;
    }
    .expand-btn:hover{ color:#B8CBFF; }
    .expandable-card.expanded .expand-btn{
        position:relative;
        display:block;
        width:fit-content;
        margin:2vh auto 0;
        left:auto; right:auto; bottom:auto;
        height:auto;
        padding:0;
        background:transparent;
    }
}

/* MOBILE TYPOGRAPHY HARMONIZATION */
@media (max-width:991px){
    .service-card p,
    .text-card p,
    .intro-card p,
    .value-group li,
    .operation-list li{
        font-size: 0.95rem;
        line-height: 1.6;
    }

    .service-header h3,
    .value-group h4{
        font-size: 1.15rem;
    }
    
    .contact-btn{
        font-size:0.95rem;
    }
}
/* ===========================
   AJUSTES FINAIS - CONTEÚDO E RESPONSIVIDADE
=========================== */

/* Fundo decorativo: ícones discretos nas laterais, alternando ao longo da página */
.side-deco{
    width:18vw;
    height:70vh;
    background-size:100% 100%;
    background-position:center;
    background-repeat:no-repeat;
    opacity:.035;
}
.side-deco.left{
    left:0;
    transform:none;
    background-image:url('../img/bg_elements/bkg_left.png');
}
.side-deco.right{
    right:0;
    transform:none;
    background-image:url('../img/bg_elements/bkg_right.png');
}

@media (max-width:991px){
    .side-deco{
        width:26vw;
        height:58vh;
        opacity:.028;
    }
    .side-deco.left{ left:0; }
    .side-deco.right{ right:0; }
}

/* Quem somos: evita espaçamento artificial entre palavras em telas estreitas */
.quem-somos .text-card p{
    text-align:left;
    hyphens:none;
    word-spacing:normal;
}

/* O que fazemos: justificativa apenas onde há texto suficiente para isso */
.o-que-fazemos > .row > div:nth-child(1) .service-card p,
.o-que-fazemos > .row > div:nth-child(2) .service-card p{
    text-align:justify !important;
    text-justify:inter-word;
    hyphens:auto;
    -webkit-hyphens:auto;
    overflow-wrap:normal;
}

/* Onde geramos valor: duas colunas no desktop */
.value-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:4vw;
    row-gap:3vh;
    align-items:start;
}

@media (max-width:991px){
    .value-list{
        grid-template-columns:1fr;
        column-gap:0;
        row-gap:2.6vh;
    }
}

/* Metodologia: os dois primeiros blocos solicitados ficam alinhados à esquerda */
.timeline-item:nth-child(1) .service-card p,
.timeline-item:nth-child(2) .service-card p{
    text-align:left;
    hyphens:none;
    word-spacing:normal;
}

/* Nosso Diferencial - Suporte pós-projeto: justificar sem espaçamento excessivo */
.suporte-pos-texto{
    text-align:justify !important;
    text-justify:inter-word;
    hyphens:auto;
    -webkit-hyphens:auto;
    overflow-wrap:normal;
}

/* CTA: texto destacado dividido em dois parágrafos e justificado */
.cta .cta-details{
    text-align:justify;
    text-justify:inter-word;
    hyphens:auto;
    -webkit-hyphens:auto;
    overflow-wrap:normal;
}

/* Rodapé: logo + QR Code, ambos visíveis em desktop e mobile */
.footer-visuals{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:1.5vw;
    flex-shrink:0;
}

.footer-logo,
.footer-qr{
    width:110px;
    height:110px;
    object-fit:contain;
    display:block;
}

.footer-qr-link{
    display:block;
    line-height:0;
}

@media (max-width:991px){
    .footer-content{
        flex-direction:column;
        align-items:stretch;
    }

    .footer-visuals{
        align-self:flex-end;
        gap:12px;
        margin-top:2.5vh;
    }

    .footer-logo,
    .footer-qr{
        width:92px;
        height:92px;
    }
}

/* Rodapé: ® 2022 menor, regular e alinhado pela linha superior do texto */
.footer-reg{
    font-size:.42em;
    font-weight:400;
    line-height:1;
    vertical-align:top;
    position:relative;
    top:.02em;
    margin-left:.12em;
}


/* ===== Ajustes finais solicitados ===== */

/* Textos justificados somente quando há comprimento suficiente; evita espaçamento artificial. */
.text-card p,
.service-card p,
.intro-card p,
.map-description {
    word-spacing: normal;
    hyphens: auto;
    -webkit-hyphens: auto;
}

/* Metodologia: alinhamento à esquerda dos quatro blocos. */
.metodologia .timeline-item .service-card p {
    text-align: left !important;
    word-spacing: normal;
    hyphens: none;
}

/* Atuação Global: título sem ícone, alinhado com o texto da seção. */
.mapa-card .global-title{
    margin:0 0 3vh;
    padding:0;
    font-size:var(--font-h2);
    font-weight:500;
    line-height:1.2;
    text-align:left;
}
.mapa-card .map-description{
    text-align:left;
    margin-left:0;
}

/* Nosso Diferencial: título sem ícone e padronizado com os demais títulos principais. */
.intro-card > .main-section-title{
    margin:0 0 3vh;
    padding:0;
    font-size:var(--font-h2);
    font-weight:500;
    line-height:1.2;
    text-align:left;
}
.intro-card > p{
    text-align:left;
}

/* Onde geramos valor: duas colunas equilibradas no desktop, com separação uniforme entre blocos. */
.value-list{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:4vw;
    row-gap:0;
    align-items:start;
}
.value-column{
    display:flex;
    flex-direction:column;
    gap:2.25rem;
    min-width:0;
}
.value-column .value-group{
    margin:0 !important;
    padding:0 !important;
}
.value-group h4{
    margin:0 0 1rem;
}
.value-group li:last-child{
    margin-bottom:0;
}

/* Garantia de comportamento consistente em celular. */
@media (max-width:991px){
    .main-section-title,
    .mapa-card .global-title,
    .intro-card > .main-section-title{
        font-size:1.8rem;
        line-height:1.2;
    }

    .value-list{
        grid-template-columns:1fr;
        column-gap:0;
        row-gap:0;
    }
    .value-column{
        gap:2rem;
    }
    .value-column + .value-column{
        margin-top:2rem;
    }

    .metodologia .metodologia-intro p,
    .metodologia .timeline-item .service-card p,
    .intro-card > p,
    .mapa-card .map-description{
        text-align:left !important;
        word-spacing:normal;
        hyphens:none;
        -webkit-hyphens:none;
    }
}

/* Rodapé: QR à esquerda, logo à direita; QR exatamente 2px maior. */
.footer-visuals {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    margin-left: auto;
}
.footer-visuals .footer-logo {
    width: 110px !important;
    height: 110px !important;
    object-fit: contain;
}
.footer-visuals .footer-qr {
    width: 112px !important;
    height: 112px !important;
    object-fit: contain;
    display: block;
}
.footer-qr-link {
    line-height: 0;
    display: block;
}
@media (max-width:991px) {
    .footer-content {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    .footer-visuals {
        align-self: flex-end;
        margin-top: 2.5vh;
        gap: 12px;
    }
    .footer-visuals .footer-logo {
        width: 92px !important;
        height: 92px !important;
    }
    .footer-visuals .footer-qr {
        width: 94px !important;
        height: 94px !important;
    }
}

/* =========================================================
   AJUSTE FINAL — ONDE GERAMOS VALOR
   Espaçamento uniforme entre blocos e padronização dos títulos.
========================================================= */

/* Cada título de bloco fica exatamente 1px acima do texto dos subtítulos
   e utiliza o mesmo peso tipográfico em toda a seção. */
.value-group h4 {
    margin: 0 0 1rem !important;
    font-size: calc(var(--font-body) + 1px) !important;
    font-weight: 700 !important;
    line-height: 1.3;
    color: #FAF9F6;
}

/* Uma separação visual uniforme entre o último subtítulo de um bloco
   e o título do bloco seguinte. */
.value-column {
    gap: 1.5rem !important;
}

.value-group + .value-group {
    margin-top: 0 !important;
}

@media (max-width: 991px) {
    .value-column {
        gap: 1.5rem !important;
    }

    .value-group h4 {
        font-size: calc(0.95rem + 1px) !important;
        line-height: 1.3;
    }
}
