/* ====== Nossos Serviços (cards iguais) ====== */

/* Thumb com tamanho padronizado (16:9) */
.service-thumb {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    /* mantém proporção */
    overflow: hidden;
    border-top-left-radius: .25rem;
    border-top-right-radius: .25rem;
}

.service-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* preenche sem distorcer */
    display: block;
}

/* Card com altura uniforme e hover suave */
.service-card {
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .06);
    border: 0;
}

.service-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .15);
}

/* Títulos com altura fixa e clamp de linhas */
.service-title {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2;
    min-height: 3.0em;
    /* ~2 linhas */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    /* limita a 2 linhas */
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: .5rem;
}

/* Texto com altura consistente (5 linhas) */
.service-text {
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 6.5em;
    /* garante altura igual entre cards */
}

.section {
    padding-top: 1rem;
}

.padding-button {
    padding-bottom: 5rem;
}

.card-title-equal-height {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60px;
    line-height: 1.2 !important;
    text-align: center !important;
    font-size: 1.2rem !important;
    word-wrap: break-word;
}

.custom-img-blog {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2;
    min-height: 3.0em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: .5rem;
    color: #003a5d !important;

}

h3,
h2,
h1,
p {
    color: #003a5d;

}


.card-text {
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 9.5em;
}

.style-primary {
    background-color: #003a5d !important;
    color: #fff !important;
}

.style-primary h1 {
    color: #fff !important;
}

.style-primary h2,
h5 {
    color: #fff !important;
    font-family: "Noto Sans", Sans-serif;
    font-size: 25px;
    font-weight: 700;
    line-height: 37px;
}

@media (max-width: 576px) {
    .carousel-item {
        display: flex;
        /* Manter os itens em uma linha */
        justify-content: center;
        /* Centralizar horizontalmente */
    }

    .carousel-item>.row {
        display: flex;
        /* Manter a linha flexível */
        flex-direction: row;
        /* Direção da linha */
    }

    .carousel-item>.row>div {
        flex: 0 0 100%;
        /* Cada item ocupará 100% da largura no mobile */
        max-width: 100%;
        /* Impede que os itens excedam 100% */
    }

    div#navbarSupportedContent {
        padding-left: 0rem !important;
    }
}

.style-primary h1,
p {
    color: #fff !important;
}

.style-img-solucoes {
    border-radius: 7px;
}

.style-blog p {
    color: #003a5d !important;
}

.style-card-blog {
    height: 30rem;
}

.style-card-blog span {
    color: #003a5d;
}


.custom-color-footer {
    background-color: #265369;
}

.custom-padding-footer {
    padding-top: 20px;
    padding-bottom: 20px;
}

.custom-padding-footer p,
.custom-padding-footer a {
    color: #fff !important
}

.custom-text-footer p {
    color: #fff;
    font-size: 20px;
    line-height: 20px;
    font-weight: 400 !important;
    font-family: 'Raleway';
}

.custom-text-footer a {
    color: #fff;
    font-size: 20px;
    line-height: 20px;
    font-weight: 200 !important;
    font-family: 'Raleway';
}

.transparent-header #masthead {
    background: #ffffff !important;
}

.carousel-control-next,
.carousel-control-prev {
    width: 15% !important;
}

.style-sobre-nos p,
.style-nossos-pilares p {
    color: #265369 !important;
}

/* Seção Pilares */
.pillars {
    background: #f7fbfd;
    /* discreto, mais claro que o branco */
}

.pillar-card {
    background: #fff;
    border: 1px solid #e6eef3;
    border-radius: 1rem;
    padding: 24px;
    text-align: center;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.pillar-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 28px rgba(0, 58, 93, .12);
    border-color: #b9d9ea;
}

.pillar-icon {
    font-size: 2.6rem;
    line-height: 1;
    color: var(--bs-primary, #003a5d);
    display: inline-block;
    padding: 10px 12px;
    border-radius: 16px;
    background: rgba(0, 58, 93, .06);
}

/* títulos e textos mais legíveis */
.pillar-card h3 {
    color: #0b3047;
}

.pillar-card p {
    color: #4b6270;
}

/* Ajuste de espaçamento em telas menores */
@media (max-width: 576px) {
    .pillar-icon {
        font-size: 2.3rem;
    }

    .pillar-card {
        padding: 20px;
    }
}

.style-font-heigth p,
.style-font-heigth h2,
.style-font-heigth h1,
.style-font-heigthh3 {
    font-size: 3rem !important
}

.style-font-heigth span {
    font-size: 1.5rem;
}

.style-pilares h2 {
    color: #003a5d;
    font-size: 2rem;
}

.style-pilares h3 {
    font-size: 1.5rem;
}

.style-pilares p {
    color: #003a5d !important;
    font-size: 1rem;
}

.style-entregue-resultado h2 {
    font-size: 2rem;
}

.style-entregue-resultado h3 {
    font-size: 1.5rem;
    color: #fff !important;
}

.style-entregue-resultado p {
    font-size: 1rem;
    color: #fff !important;
}

.step-card {
    height: 100%;
}

.style-nossos-numeros h2 {
    color: #003a5d !important;
    font-size: 2rem;
}

.style-ultimos-dados h3,
.style-ultimos-dados p {
    color: #003a5d !important;

}

.style-ultimos-dados h3 {
    font-size: 2rem;
}

.style-ultimos-dados p {
    font-size: 1.5rem;
}

.content-container p {
    color: #003a5d !important;
}

.style-blog p {
    color: #003a5d !important;
}

button.carousel-control-prev:hover,
.carousel-control-next:hover {
    background-color: #ffffff00 !important;
}

.post-hero__content h1 {
    color: #fff !important;

}

.nossos-servicos h3 {
    font-size: 1.5rem;
    color: #003a5d !important;
}

.nossos-servicos p,
.nossos-servicos span {
    font-size: 1rem;
    color: #003a5d !important;
}

.nosso-processo p {
    color: #003a5d !important;
    font-size: 1rem;

}

.nosso-processo h3 {
    font-size: 1.3rem;
}

/* ===== Nosso Processo - estilo “cartões” com hover ===== */
.process-area {
    background: #f7fbfd
}

.process-card {
    background: #fff;
    border: 1px solid #e6eef3;
    border-radius: 1rem;
    padding: 22px 1px !important;
    height: 100%;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.process-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 28px rgba(0, 58, 93, .12);
    border-color: #b9d9ea;
}

.process-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 18px;
    background: rgba(0, 58, 93, .06);
    color: #003a5d;
    font-size: 1.5rem;
}

.process-card h3 {
    color: #0b3047
}

.process-card p {
    color: #4b6270
}

.style-informacoes-empresa {
    font-size: 1.5rem !important;
}

.ratio.ratio-21x9.mt-4.shadow-sm.rounded-3.overflow-hidden iframe {
    width: 100% !important;
    height: 20rem !important;
}

.style-onde-atuamos h3 {
    font-size: 1.5rem;
    color: #003a5d !important;
}

.style-onde-atuamos p,
.style-onde-atuamos a {
    font-size: 1rem;
    color: #003a5d !important;
}

#contato {
    background-color: #007bff;
    color: white;
}

#contato .btn {
    background-color: white;
    color: #007bff;
}

#contato .btn:hover {
    background-color: #0056b3;
    color: white;
}

.contact-page {
    padding: 2rem;
}

.contact-info {
    margin-bottom: 2rem;
}

.contact-info h2 {
    font-size: 1.8rem;
    color: #265369;
    margin-bottom: 1rem;
}

.contact-info p {
    font-size: 1rem;
    margin: 0.5rem 0;
    color: #333;
}

.contact-form-wrapper h2 {
    font-size: 1.8rem;
    color: #265369;
    margin-bottom: 1rem;
}

.contact-form-wrapper form {
    background: #f9f9f9;
    padding: 1.5rem;
    border-radius: 8px;
    border: 1px solid #ddd;
}

.contact-form-wrapper label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: bold;
    color: #333;
}

.contact-form-wrapper input,
.contact-form-wrapper textarea {
    width: 100%;
    padding: 0.8rem;
    margin-bottom: 1rem;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 1rem;
}

.contact-form-wrapper button {
    background-color: #265369;
    color: #fff;
    border: none;
    padding: 0.8rem 1.5rem;
    font-size: 1rem;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.contact-form-wrapper button:hover {
    background-color: #1d4e60;
}

.contact-page {
    padding: 1.5rem 2.5rem;
    background-color: #f4f6f9;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.contact-details,
.contact-details a {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 1rem;
    font-family: "Noto Sans", Sans-serif !important;
    color: #003a5d !important;
}

.contact-details li {
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    font-weight: 700;
    color: #003a5d;
    line-height: 37px !important;
}

.contact-details li i {
    color: #3498db;
    margin-right: 10px;
    font-size: 1.3rem;
}

.contact-info {
    padding: 2rem;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.contact-form-wrapper {
    padding: 2rem;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.contact-form-wrapper .form-group {
    margin-bottom: 1.5rem;
}

.contact-form-wrapper label {
    font-weight: 700;
    color: #003a5d;
    margin-bottom: 0.5rem;
    display: block;
    font-family: "Noto Sans", Sans-serif !important;
    font-size: 20px !important;
    line-height: 37px !important;
}

.contact-form-wrapper input,
.contact-form-wrapper textarea {
    border: 1px solid #ccc;
    border-radius: 8px;
    padding: 1rem;
    width: 100%;
    font-size: 1rem;
    background-color: #f9f9f9;
    font-family: "Noto Sans", Sans-serif !important;
}

.contact-form-wrapper input:focus,
.contact-form-wrapper textarea:focus {
    outline: none;
    border-color: #3498db;
    box-shadow: 0 0 8px rgba(52, 152, 219, 0.3);
}

.contact-form-wrapper button {
    background-color: #3498db;
    color: #ffffff;
    padding: 1rem;
    font-size: 1.2rem;
    border-radius: 5px;
    border: none;
    cursor: pointer;
    transition: background-color 0.3s ease;
    width: 100%;
    font-family: "Noto Sans", Sans-serif !important;
}

.contact-form-wrapper button:hover {
    background-color: #2980b9;
}

/* Responsividade */
@media (max-width: 768px) {
    .contact-page {
        padding: 2rem;
    }

    .contact-info,
    .contact-form-wrapper {
        padding: 1.5rem;
    }

    .section-title {
        font-size: 1.7rem;
    }

    .contact-details li {
        font-size: 0.9rem;
    }
}

.contact-page {
    margin-top: 1rem;
    margin-bottom: 1rem;
}


/* O item do carrossel NÃO tem altura fixa; quem manda é a imagem */
#bannerInicial .carousel-item {
  position: relative;
  height: auto !important;   /* tira o clamp/vh */
  min-height: 0 !important;
  overflow: visible;         /* nada é ocultado */
  background: #070e1b;       /* “barras” discretas se sobrar espaço */
  padding: 0;
}

/* Garante que a imagem ocupe a largura e mantenha proporção */
#bannerInicial .carousel-item > picture,
#bannerInicial .carousel-item > img {
  display: block;
  width: 100%;
}

#bannerInicial .carousel-item > picture > img,
#bannerInicial .carousel-item > img {
  width: 100% !important;
  height: auto !important;      /* mantém proporção — mostra TUDO */
  object-fit: unset !important; /* desliga cover/contain se herdado */
  object-position: center top !important; /* ancora no topo da arte */
  display: block;
}

/* Indicadores e setas (opcional) */
#bannerInicial .carousel-indicators { bottom: 12px; }
#bannerInicial .carousel-indicators li {
  width: 10px; height: 10px; border-radius: 50%; background: #fff; opacity: .5;
}
#bannerInicial .carousel-indicators .active { opacity: .95; }

#bannerInicial .carousel-control-prev,
#bannerInicial .carousel-control-next { width: 44px; }
#bannerInicial .carousel-control-prev-icon,
#bannerInicial .carousel-control-next-icon { filter: drop-shadow(0 2px 6px rgba(0,0,0,.45)); }


/* === Footer SPS Digital === */
.sps-footer{
  color:#E7F1F7;
  background:#0b3b52; /* azul escuro */
  margin-top:64px;
  font-size:15px;
  line-height:1.6;
}
.sps-footer a{ color:#E7F1F7; text-decoration:none; }
.sps-footer a:hover,
.sps-footer a:focus{ text-decoration:underline; }

.sps-footer__top{ padding:48px 0 24px; }
.sps-footer__bottom{
  background:#0a2e40; /* faixa inferior */
  padding:16px 0;
  border-top:1px solid rgba(255,255,255,.08);
}
.sps-footer__copy{ margin:0; opacity:.9; }

.sps-footer__logo img{ max-height:44px; width:auto; }
.sps-footer__pitch{ margin:12px 0 16px; opacity:.9; }

.sps-footer__title{
  color:#ffffff;
  font-size:16px;
  font-weight:700;
  letter-spacing:.2px;
  margin:4px 0 12px;
}
.sps-footer__menu,
.sps-footer__list{ list-style:none; margin:0; padding:0; }
.sps-footer__menu li + li,
.sps-footer__list li + li{ margin-top:8px; }
.sps-footer__list span{ opacity:.9; }

.sps-footer__social{
  list-style:none; margin:16px 0 0; padding:0; display:flex; gap:10px;
}
.sps-social{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:10px;
  background:#0e5a7a; /* azul médio */
  transition:transform .15s ease, background .15s ease;
}
.sps-social:hover{ transform:translateY(-2px); background:#11739c; }
.sps-social svg{ display:block; }

@media (max-width: 767.98px){
  .sps-footer__top{ padding:36px 0 8px; }
  .sps-footer__title{ margin-top:8px; }
}

/* Botão voltar ao topo */
.sps-backtop{
  position:fixed; right:16px; bottom:16px;
  width:42px; height:42px; border-radius:999px; border:none;
  background:#0e5a7a; color:#fff; font-weight:700;
  box-shadow:0 8px 18px rgba(0,0,0,.25);
  cursor:pointer; z-index:50;
  transition:transform .2s ease, background .2s ease, opacity .2s ease;
}
.sps-backtop:hover{ background:#11739c; transform:translateY(-2px); }
