/* Estilos gerais */

.border-test {
  border: solid 1px red;
}

body {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  background-color: #f2f2f2;
}
h2 {
  font-family: "Poppins", sans-serif;
}

p {
  font-family: "Funnel Display", sans-serif;
}

main section {
  max-width: 1500px;
  margin: 0 auto;
}

/* SEÇÃO HERO */
.hero-section {
  padding: 60px 100px 0;
  position: relative;
}
@media (max-width: 1400px) and (min-width: 1100px) {
  .hero-section {
    padding: 30px 20px;
  }
}
.home-main-container {
  display: flex;
  align-items: center;
  gap: 25px;
}

.hero-content {
  width: 50%;
}

.hero-content h1 {
  font-family: "Poppins", sans-serif;
  font-size: 54px;
  margin-bottom: 20px;
  line-height: 120%;
  color: #1c1c1c;
  font-weight: 600;
}

.hero-content p {
  font-family: "Funnel Display";
  font-size: 20px;
  font-weight: 400;
  line-height: auto;
  margin-bottom: 30px;
  color: #1c1c1c;
}

.hero-image {
  width: 50%;
  position: relative;
}

.hero-image img {
  width: 100%;
}

.floating-container {
  position: absolute;
  bottom: 3px;
  right: 0;
  width: 30%;
  height: 42%;
}

.floating-container img {
  max-width: 100%;
  height: 100%;
}

.hero-button-container {
  display: flex;
  gap: 20px;
  width: 100%;
  align-items: stretch;
}

.main-button-styles {
  display: inline-block;
  border-radius: 30px;
  transition: background-color 0.3s ease;
  border: none;
  cursor: pointer;
  padding: 15px 30px;
  font-size: 20px;
  font-weight: 400;
}

.hero-button-container .main-button-styles {
  flex: 1 1 0;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 12px 20px;
  border-radius: 30px;
  box-sizing: border-box;
  min-width: 0;
  text-decoration: none;
  cursor: pointer;
  font-weight: 400;
  font-family: "Funnel Display", sans-serif;
}

.primary-button {
  background-color: #dc6339;
  color: #fff;
  border: none;
}

.primary-button:hover {
  background-color: #e2e2e2;
  color: #000;
}

.secondary-button {
  padding: 12px 20px;
  font-size: 20px;
  color: black;
}

.secondary-button:hover {
  color: #fff;
  background-color: #dc6339;
}

.hero-button-container a.main-button-styles.secondary-button {
  background-color: #e2e2e2;
  border: 2px solid #e2e2e2;
  color: #1C1C1C;
}

.hero-button-container a.main-button-styles.secondary-button:hover {
  background: #dc6339;
  color: #fff;
  border: 2px solid #dc6339;
}
.hero-button-container a.main-button-styles.secondary-button:visited {
  color: none;
}

.discover-button {
  display: inline-block;
  border-radius: 25px;
  background-color: #dc6339;
  color: #fff;
  border: none;
  cursor: pointer;
  padding: 15px 30px;
  font-size: 16px !important;
  font-weight: 500;
  font-family: Poppins, sans-serif;
}

.discover-button a {
  font-family: Poppins, sans-serif;
  font-size: 16px !important;
}
.news-button {
  display: flex;
  justify-content: center;
  margin-top: 50px;
}
@media (min-width: 768px) {
  .news-button .primary-button.main-button-styles {
    background-color: #1c1c1c;
    color: #fff;
  }

  .news-button .primary-button.main-button-styles:hover {
    background-color: #e2e2e2;
    color: #1c1c1c;
  }
}
/* ============================================================
   BLOCO DE PROVA SOCIAL - os clientes da Multimac
   Instalado a 18/08/2026 e redesenhado no mesmo dia, depois de o ver no site.

   O que mudou face ao carrossel antigo, e porque:

   1. Saiu o "height: 150px" e entraram max-height e max-width. Os ficheiros
      estao normalizados pela area de tinta, ou seja todos com o mesmo peso
      visual; com altura fixa, o Century 21, que e comprido e baixo, ocupava
      meia fila sozinho e a Federacao Portuguesa de Futebol desaparecia.

   2. Saiu o "filter: grayscale(100%)". Nao fazia nada: os ficheiros ja vem em
      cinzento, com contraste de 4,0:1 medido contra este fundo.

   3. A animacao passou de 30s para 120s. Sao 40 imagens em vez de 12, e a
      mesma duracao fazia a tira passar quatro vezes mais depressa.

   4. A tira esbate-se nas duas pontas. Antes cortava a meio de um logotipo, o
      que parecia defeito; assim le-se como "ha mais", que e verdade: sao 20 e
      cabem 9 no ecra.
   ============================================================ */
.prova-social {
  background-color: #f2f2f2;
  padding: 56px 0 52px;
}

.prova-social-texto {
  max-width: 720px;
  margin: 0 auto 34px;
  padding: 0 24px;
  text-align: center;
}

/* O rotulo existe para distinguir este carrossel do das marcas representadas,
   que fica mais abaixo na mesma pagina e e visualmente igual. */
.prova-social-rotulo {
  font-family: "Poppins", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #dc6339;
  margin: 0 0 14px;
}

.prova-social-texto h2 {
  font-family: "Poppins", sans-serif;
  font-size: 30px;
  font-weight: 500;
  line-height: 125%;
  color: #1c1c1c;
  margin: 0 0 12px;
  text-wrap: balance;   /* parte em duas linhas equilibradas e nao com uma palavra sozinha */
}

.prova-social-frase {
  font-family: "Funnel Display", sans-serif;
  font-size: 16px;
  line-height: 155%;
  color: #4a4a4a;
  margin: 0;
  text-wrap: balance;
}

.carrossel-wrapper {
  overflow: hidden;
  width: 100%;
  padding: 6px 0;
  /* o esbatimento das pontas */
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 7%, #000 93%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 7%, #000 93%, transparent 100%);
}

.carrossel-container {
  display: flex;
  gap: 68px;
  animation: scroll-left 120s linear infinite;
  align-items: center;
}

.carrossel-container img {
  max-height: 52px;
  max-width: 116px;
  width: auto;
  height: auto;
  object-fit: contain;
  flex: none;
}

.prova-social-cta {
  text-align: center;
  margin: 34px 0 0;
}

.prova-social-cta a {
  font-family: "Poppins", sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: #dc6339;
  text-decoration: none;
  border-bottom: 1px solid rgba(220, 99, 57, 0.35);
  padding-bottom: 2px;
}

.prova-social-cta a:hover,
.prova-social-cta a:focus {
  border-bottom-color: #dc6339;
}

/* Animação */
@keyframes scroll-left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* Quem pediu menos movimento no sistema nao leva a tira a andar: fica parada e
   em varias linhas, com os mesmos logotipos e sem esbatimento, que ai so
   esconderia os das pontas. */
@media (prefers-reduced-motion: reduce) {
  .carrossel-wrapper {
    -webkit-mask-image: none;
    mask-image: none;
  }

  .carrossel-container {
    animation: none;
    flex-wrap: wrap;
    justify-content: center;
    gap: 38px 52px;
  }
}

@media (max-width: 768px) {
  .prova-social {
    padding: 40px 0 36px;
  }

  .prova-social-texto {
    margin-bottom: 26px;
  }

  .prova-social-rotulo {
    font-size: 11px;
    margin-bottom: 12px;
  }

  .prova-social-texto h2 {
    font-size: 22px;
  }

  .prova-social-frase {
    font-size: 15px;
  }

  .carrossel-wrapper {
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 10%, #000 90%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 10%, #000 90%, transparent 100%);
  }

  .carrossel-container {
    gap: 44px;
  }

  .carrossel-container img {
    max-height: 40px;
    max-width: 88px;
  }
}

/* SEÇÃO DE PRODUTOS */
.products-section {
  padding: 60px 0;
  overflow: hidden;
}

.products-section h2 {
  font-family: "Poppins", sans-serif;
  text-align: start;
  font-size: 45px;
  font-weight: 500;
  color: #1c1c1c;
  line-height: 120%;
  margin-bottom: 60px;
}

/* Carrossel horizontal */
.products-carousel {
  display: flex;
  gap: 36px;
  overflow-x: auto;
  scroll-behavior: smooth;
  padding-bottom: 10px;
  scrollbar-width: none;
}

.products-carousel::-webkit-scrollbar {
  display: none;
}

/* Card */
.product-card {
  position: relative;
  padding-bottom: 70px;
  flex: 0 0 600px;
  height: 470px;
  background-color: #fff;
  border-radius: 26px;
  overflow: hidden;
}

/* Imagem */
.product-card img {
  width: 100%;
  height: 230px;
  padding: 30px 30px 0 30px;
}

/* Conteúdo interno */
.card-content {
  padding: 0 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-bottom: 20px;
}

.card-content h3 {
  font-size: 26px;
  font-weight: 500;
  line-height: 120%;
  margin-bottom: 0;
}

.card-content p {
  font-size: 20px;
  font-weight: 400;
  margin-bottom: 25px;
  color: #1c1c1c;
}

/* Botão */
.card-button {
  position: absolute;
  bottom: 30px;
  left: 115px;
  transform: translateX(-50%);
  font-family: Poppins, sans-serif;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background-color: #dc6339;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  padding: 10px 20px;
  border-radius: 30px;
  transition: background-color 0.3s ease;
  align-self: flex-start;
}

/* SEÇÃO DE ESTATÍSTICAS */
.stats-section {
  padding: 40px 0;
  margin-bottom: 5%;
}

.stats-cards {
  display: flex;
  gap: 30px;
  padding: 0 20px;
}

.stats-card {
  background-color: #dc6339;
  color: #fff;
  padding: 30px;
  border-radius: 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
}

.stats-card-one {
  width: 30%;
  border-radius: 25px;
}

.stats-title {
  font-size: 55px;
  font-weight: 500;
}

.stats-subtitle {
  font-size: 22px;
  font-weight: 400;
}

/* SEÇÃO DE SOLUÇÕES DESTACADAS */
.section-tag {
  display: inline-block;
  background: #fff;
  padding: 6px 14px;
  border-radius: 20px;
  font-weight: 400;
  font-size: 20px;
  color: #1c1c1c;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}
.section-tag i {
  font-size: 0.8em;
  color: #dc6339;
  text-align: center;
  padding: 5px;
}
.section-header h2 {
  font-family: "Poppins", sans-serif;
  margin-bottom: 40px;
  font-size: 45px;
  line-height: 120%;
  color: #1c1c1c;
  font-weight: 500;
  text-align: left;
}
.section-header p {
  font-family: "Funnel Display", sans-serif;
  margin-bottom: 40px;
  font-size: 20px;
  color: #1c1c1c;
  font-weight: 400;
  text-align: left;
}

.section-header-full h2 {
  margin-bottom: 20px;
  font-size: 45px;
  font-weight: 500;
  text-align: left;
}

.solution-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-bottom: 40px;
}

.solution-card {
  min-width: 600px;
  border-radius: 30px;
  background: linear-gradient(135deg, #1c1c1c, #3c3c3c);
  color: #fff;
  flex-direction: column;
  padding: 20px;
}

.solution-card img {
  display: flex;
  margin: 20px 10px;
  padding: 10px;
  align-self: center;
}

.solution-content {
  padding: 20px;
  padding-top: 0px;
  flex: 1;
}

.solution-content h3 {
  font-family: "Poppins", sans-serif;
  font-size: 26px;
  line-height: 120%;
  margin-bottom: 10px;
  font-weight: 500;
}

.solution-content h2 {
  font-size: 40px;
  font-weight: bold;
  color: #333;
  margin-bottom: 10px;
  max-width: 60%;
}

.solution-content p {
  margin-bottom: 20px;
  font-size: 20px;
  font-weight: 400;
}

.learn-more i {
  margin-left: 5px;
}

.solution-grid {
  display: grid;
  grid-template-columns: 500px 1fr;
  align-items: start;
  gap: 75px;
}

/* AJUSTE DOS CARDS COMO CARROSSEL */
.solution-carousel {
  position: relative;
  overflow: hidden;
  width: 100%;
}

.solution-cards {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none; /* esconde a barra no Firefox */
}
.solution-cards::-webkit-scrollbar {
  display: none; /* esconde a barra no Chrome */
}

/* CONTROLES DO CARROSSEL */
.carousel-controls {
  display: flex;
  justify-content: flex-end;
  gap: 5px;
  margin-top: 20px;
}

.carousel-controls img {
  width: 40px;
  height: 40px;
  cursor: pointer;
  transition: transform 0.3s ease;
}
.controls-mobile {
  display: none;
}

/* SEÇÃO DE SOLUÇÕES TRANSFORMADORAS */
.transform-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px;
  margin-bottom: 50px;
}

.transform-item {
  border-bottom: solid 1px #dc6339;
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 20px 0;
}

.transform-item:last-child {
  grid-column: 1 / -1;
}

.transform-wrapper {
  flex: 1;
  padding-left: 0;
}

.transform-wrapper h3 {
  font-size: 24px;
  font-weight: 600;
  color: #1e1e1e;
}

.transform-wrapper p {
  font-family: "Funnel Display";
  color: #1e1e1e;
  font-size: 18px;
  font-weight: 400;
  line-height: 28px;
  margin: 0;
}

.item-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
}

/* Seção serviçoes disponiveis multimac */
.available-services-cards {
  width: 100%;
  padding: 60px 20px;
  text-align: center;
}

.available-services-cards h2 {
  font-family: "Poppins", sans-serif;
  color: #1c1c1c;
  font-size: 45px;
  font-weight: 500;
  line-height: 120%;
  margin-bottom: 40px;
}

.cards-container {
  display: flex;
  gap: 30px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 0 20px;
  margin-bottom: 35px;
  scroll-behavior: smooth;
}

.cards-container::-webkit-scrollbar {
  display: none;
}
.card-header {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-bottom: 15px;
}
.card-header h3 {
  margin: 0;
}

.card {
  position: relative;
  flex: 0 0 378px;
  border: 1px solid #ffa788;
  border-radius: 20px;
  padding: 22px;
  padding-bottom: 60px;
  text-align: left;
  scroll-snap-align: start;
}

.icon {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  margin-bottom: 15px;
}

.card h3 {
  font-family: "Poppins", sans-serif;
  font-size: 24px;
  font-weight: 600;
  color: #1c1c1c;
  margin-bottom: 10px;
  line-height: 130%;
}

.card p {
  font-family: "Funnel Display", sans-serif;
  color: #1c1c1c;
  font-size: 20px;
  font-weight: 400;
  margin-bottom: 20px;
}

.card button {
  position: absolute;
  bottom: 24px;
  left: 20px;
  background: #dc6339;
  color: #fff;
  border: none;
  border-radius: 25px;
  padding: 10px 20px;
  font-family: Poppins, sans-serif;
  font-size: 16px;
  font-weight: 400;
  cursor: pointer;
  transition: background 0.3s ease;
}
/* SEÇÃO DE PARCEIROS */
.partners-section {
  overflow: hidden;
}

.partners-wrapper {
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  justify-content: space-around;
  gap: 40px;
  margin: 0 auto;
}

.partners-image img {
  max-width: 500px;
  border-radius: 10px;
}

.partners-content {
  max-width: 620px;
}

.partners-content h2 {
  font-size: 45px;
  font-weight: 500;
  line-height: 118%;
  letter-spacing: -0.32px;
  margin-bottom: 40px;
}

/* ====== GRID DE LOGOS (DESKTOP) ====== */
.partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.partners-grid img {
  height: 80px;
  width: 180px;
  transition: transform 0.3s ease;
}

.partners-grid img:hover {
  transform: translateY(-3px);
}

/* ====== ESCONDER CARROSSEL NO DESKTOP ====== */
.partners-carousel {
  display: none;
}

/* SEÇÃO DE BLOG/DICAS */
.blog-section {
  padding: 60px 0;
  gap: 20px;
}

.blog-section .section-header {
  text-align: center;
}

.blog-section .section-header p {
  max-width: 900px;
  margin: 0 auto;
  color: #666;
}

.blog-text {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  width: 100%;
  margin-bottom: 40px;
}

.blog-text h2 {
  font-size: 50px;
  margin: 0;
  flex: 1;
  max-width: 900px;
  font-weight: 600;
  line-height: 120%;
}

.blog-text p {
  font-size: 20px;
  margin: 2.5% 0% 0% 0%;
  flex: 1;
  font-weight: 400;
  max-width: 900px;
  color: #1c1c1c;
}

.blog-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

.blog-card {
  background-color: #fff;
  border-radius: 20px;
  border: solid #dc6339 1px;
}

.blog-card > img {
  width: 100%;
  object-fit: cover;
}

.blog-content {
  display: flex;
  align-items: end;
  padding: 0 20px 20px 20px;
}

.blog-content h3 {
  font-size: 20px;
  width: 80%;
  font-weight: 600;
  color: #1e1e1e;
  max-width: 350px;
}

.learn-more {
  font-family: "Funnel Display", sans-serif;
  font-weight: 400;
  color: #1e1e1e;
  font-size: 20px;
  font-weight: 400;
}

.arrow-icon {
  border: 1px solid #1c1c1c;
  padding: 10px;
  border-radius: 25px;
  color: #1c1c1c;
  background: transparent;
}
/* RESPONSIVIDADE */

@media (max-width: 768px) {
  .hero-section {
    padding: 20px 0;
  }

  .hero-content {
    display: contents;
  }

  .hero-content h1 {
    order: 1;
    font-size: 26px;
    font-weight: 600;
    text-align: center;
  }

  .hero-image img {
    width: 100%;
  }

  .section-header h2 {
    font-size: 32px;
    font-weight: 600;
    line-height: 120%;
    text-align: center;
    padding: 0 40px;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
  }
  .section-header p {
    font-size: 16px;
    font-weight: 400;
    text-align: center;
    padding: 0 40px;
    align-items: center;
    justify-content: center;
    margin-bottom: 0px;
  }

  .hero-button-container {
    order: 3;
    flex-direction: column;
    align-items: center;
  }

  .controls-desktop {
    display: none;
  }
  .controls-mobile {
    display: flex;
    justify-content: center;
    gap: 5px;
    margin-top: 20px;
  }
  .section-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .section-header-full {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .section-tag {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 10px !important;
    border-radius: 25px;
    font-size: 20px;
    font-weight: 600;
  }
  .destaque .section-tag i {
    color: #1c1c1c;
  }
  .product-cards {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 16px;
    padding-bottom: 10px;
    padding: 0 20px;
  }

  .product-card {
    /* 19/08/2026: era min-width 80% com flex-basis auto, e o cartao crescia
       com o conteudo (media 1504px num ecra de 768). Largura fixa relativa. */
    flex: 0 0 85%;
    scroll-snap-align: start;
    height: auto;
  }
  .solution-cards {
    grid-template-columns: 1fr;
    padding: 0 20px;
  }

  .solution-card {
    min-width: 100%;
    max-width: 100%;
  }
  .solution-card img {
    width: 300px;
    height: 200px;
  }
  /* Section Parceiros */
  .partners-wrapper {
    flex-direction: column;
    text-align: center;
    gap: 20px;
  }

  .partners-content h2 {
    font-size: 28px;
    margin-bottom: 20px;
  }

  .partners-grid {
    display: none; /* esconder grid e mostrar carrossel */
  }

  .partners-image {
    order: 2;
    display: flex;
    justify-content: center;
  }

  .partners-image img {
    width: 100%;
    max-width: 350px;
    margin: 0 auto;
  }

  /* === CARROSSEL MOBILE === */
  .partners-carousel {
    display: block;
    margin-top: 20px;
    overflow: hidden;
    position: relative;
  }

  .carousel-track {
    display: flex;
    align-items: center;
    gap: 10px;
    animation: scrollInfinite 35s linear infinite;
  }

  .carousel-track img {
    height: 65px;
  }

  @keyframes scrollInfinite {
    0% {
      transform: translateX(0);
    }
    100% {
      transform: translateX(-50%);
    }
  }

  /* Seção serviços disponiveis Multimac */
  .available-services-cards h2 {
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 30px;
    text-align: center;
  }

  .cards-container {
    gap: 15px;
  }
  .card {
    flex: 0 0 344px;
  }
  .card-header {
    gap: 20px;
  }
  .card h3 {
    font-size: 22px;
    font-weight: 600;
  }
  .card p {
    font-size: 18px;
    font-weight: 500;
  }
}

@media (max-width: 640px) {
  .stats-cards {
    display: grid;
    grid-template-columns: 1fr;
    margin: 0 auto;
    width: 100%;
  }
.home-main-container {
  gap: 10px;
}
  .hero-content h1 {
    font-weight: 600;
    font-size: 26px;
    text-align: center;
    padding: 0 47px;
    line-height: 120%;
    margin-bottom: 0;
  }
  .hero-content p {
    order: 1;
    font-size: 16px;
    margin-bottom: 10px;
    text-align: center;
    padding: 0 30px;
  }

  .stats-cards {
    width: 100%;
    padding: 0 30px;
  }

  .stats-card {
    width: 100%;
  }

  .transform-grid {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 0 40px;
  }
  .transform-item {
    align-items: flex-end;
  }

  .produtos-dropdown {
    grid-template-columns: 1fr;
    width: 100%;
    left: 0;
  }

  .solution-card {
    text-align: left;
  }
  .products-section {
    padding: 10px;
  }

  .product-card {
    flex: 0 0 90%;
    height: auto;
  }
  .products-carousel {
    gap: 20px;
    padding: 0 20px;
  }

  .products-section h2 {
    font-family: "Poppins";
    font-size: 24px;
    font-weight: 500;
    line-height: 120%;
    text-align: center;
    padding: 0 40px;
    margin-bottom: 25px;
  }
 .card-content {
  margin-bottom: 0;
 }


  .section-header-full h2 {
    font-weight: 600;
    line-height: 124%;
    margin-bottom: 23px;
    padding: 0 40px;
    font-size: 30px;
    text-align: center;
  }

  .stats-title {
    font-size: 28px;
  }

  .stats-subtitle {
    font-size: 22px;
    text-align: center;
  }

  .home-main-container {
    flex-direction: column;
  }

  .main-button-styles {
    display: inline;
    font-size: 15px;
    text-align: center;
    margin: 0 auto;
  }
  .hero-content {
    width: 80%;
  }

  .hero-image {
    order: 2;
    width: 80%;
  }

  .blog-section {
    padding: 40px 20px;
  }

  /* Texto do blog (título e parágrafo) */
  .blog-text {
    flex-direction: column;
    gap: 15px;
    margin-bottom: 30px;
  }

  .blog-text h2 {
    font-size: 28px;
    /* Tamanho menor para mobile */
    text-align: center;
    width: 100%;
  }

  .blog-text p {
    font-size: 16px;
    text-align: center;
    width: 100%;
  }

  /* Cards do blog */
 .blog-cards {
    grid-template-columns: repeat(1, 1fr);
  }

  /* esconde o 3º card e qualquer outro além dele */
  .blog-card:nth-child(n+3) {
    display: none;
  }

  .blog-card {
    width: 100%;
    margin-bottom: 20px;
  }

  .blog-content {
    flex-direction: column;
    align-items: flex-end;
    padding: 15px;
  }

  .blog-content h3 {
    width: 100%;
    font-size: 18px;
    margin-bottom: 10px;
  }

  .blog-content > div {
    width: 100%;
  }

  .blog-card .fa-arrow-right {
    align-self: flex-end;
    margin-top: 15px;
    color: #000;
    font-size: 1rem;
  }
}

@media (max-width: 1024px) {
  .product-cards {
    grid-template-columns: repeat(4, 1fr);
  }
}
/* Responsividade para telas menores section parceiros*/
@media (max-width: 992px) {
  .solution-grid {
    grid-template-columns: 1fr;
  }

  .carousel-controls {
    justify-content: center;
    margin-bottom: 30px;
  }

  .partners-wrapper {
    flex-direction: column;
    text-align: center;
  }

  .partners-content {
    max-width: 90%;
  }

  .partners-content h2 {
    font-size: 28px;
    font-weight: 600;
  }

  .partners-grid {
    grid-template-columns: repeat(3, 1fr);
    justify-items: center;
  }

  .partners-grid img {
    height: 75px;
  }

  .partners-image img {
    max-width: 400px;
    padding: 20px;
  }
}

/* ====== RESPONSIVIDADE PARA TABLETS (entre 769px e 1024px) ====== */
@media (min-width: 769px) and (max-width: 1024px) {
  body {
    font-size: 90%;
  }

  h1,
  h2,
  h3 {
    font-size: 90%;
  }

  p,
  a,
  button,
  li {
    font-size: 90%;
  }
  .container {
    padding: 0 0px;
  }
  /* Hero */
  .hero-section {
    padding: 40px 20px;
  }
  .hero-content h1 {
    font-size: 30px;
  }
  .hero-content p {
    font-size: 16px;
  }
  .main-button-styles {
    font-size: 16px;
  }

  /* Produtos */
  .products-section h2 {
    font-size: 42px;
  }
  .product-info h3 {
    font-size: 22px;
  }
  .product-cards {
    grid-template-columns: repeat(4, 1fr);
  }
  .card-content h3 {
    font-size: 22px;
  }
  .card-content p {
    font-size: 18px;
    font-weight: 400;
  }
  /* Soluções */
  .section-header h2 {
    font-size: 42px;
  }
  .solution-content h3 {
    font-size: 22px;
  }
  .solution-content p {
    font-size: 18px;
  }
  .transform-grid {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 20px;
    column-gap: 100px;
  }
  /* Parceiros */
  .partners-wrapper {
    text-align: left;
    gap: 40px;
  }
  .partners-content h2 {
    font-size: 42px;
  }
  .partners-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .partners-grid img {
    height: 75px;
  }

  /* Blog */
  .blog-text h2 {
    font-size: 42px;
  }
  .blog-text p {
    font-size: 18px;
  }
  .blog-cards {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Estatísticas */
  .stats-title {
    font-size: 45px;
  }
  .stats-subtitle {
    font-size: 20px;
  }

  /* Transformações */
  .transform-wrapper h3 {
    font-size: 20px;
  }
  .transform-wrapper p {
    font-size: 16px;
  }
}


/* CARROSSEL PRODUTOS */
.products-carousel {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  padding: 10px 0 20px;

  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;

  -webkit-overflow-scrolling: touch; /* iOS */
  scrollbar-width: none; /* Firefox */
}

.products-carousel::-webkit-scrollbar {
  display: none; /* Chrome/Safari */
}



/* Opcional: cursor “grab” para desktop */
.products-carousel {
  cursor: grab;
}
.products-carousel.is-dragging {
  cursor: grabbing;
  user-select: none;
}
.products-carousel.is-dragging a,
.products-carousel.is-dragging img {
  pointer-events: none; /* evita clicar sem querer enquanto arrasta */
}



/* --- DRAG + SNAP (sem estragar dimensões existentes) --- */
.products-carousel{
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  cursor: grab;
}

.products-carousel.is-dragging{
  cursor: grabbing;
  user-select: none;
}

.products-carousel.is-dragging a,
.products-carousel.is-dragging img{
  pointer-events: none;
}

/* 19/08/2026: este bloco redefinia flex: 0 0 600px FORA de @media, no fim
   do ficheiro, e matava a regra movel (flex: 0 0 90% aos 640px). Era por isso
   que os cartoes ficavam cortados no telemovel. A largura vive nas regras de
   cima (600px em ecra grande, 90% em movel); aqui fica so o snap. */
.product-card{
  scroll-snap-align: start;
}



/* ==========================================================================
   BARRA DE ACAO EM TELEMOVEL: Ligar e Pedir orcamento. Dash Digital,
   18/08/2026, portada do dualinfor.pt. So existe abaixo de 1024 px.
   O HTML vem do multimac_barra_acao() no functions.php e o comportamento
   do assets/js/barra-acao.js.
   ========================================================================== */
.mm-barra { display: none; }

@media (max-width: 1023px) {

  .mm-barra {
    display: grid;
    /* O Ligar e mais curto que o Pedir orcamento: 38% chega para o rotulo
       e ambos ficam bem acima dos 44 px de alvo de toque. */
    grid-template-columns: 38% 1fr;
    gap: 8px;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    /* env(safe-area-inset-bottom) e a faixa dos iPhone com barra de gestos. */
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
    background: #fff;
    border-top: 1px solid rgba(28, 28, 28, 0.1);
    box-shadow: 0 -4px 16px rgba(28, 28, 28, 0.12);
    /* Um abaixo do botao do plugin de acessibilidade, que usa o maximo. */
    z-index: 2147483646;
    transition: bottom 0.25s ease;
  }

  /* Enquanto se preenche o formulario, a barra desce e sai da frente.
     Quem poe e tira a classe e o barra-acao.js, ao foco entrar e sair. */
  .mm-barra.mm-barra--oculta {
    bottom: -120px;
  }

  .mm-barra__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 52px;
    padding: 0 10px;
    border-radius: 10px;
    font-family: "Poppins", sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
  }

  .mm-barra__btn--ligar {
    color: #dc6339;
    background: #fff;
    border: 2px solid #dc6339;
  }

  .mm-barra__btn--ligar:active { background: rgba(220, 99, 57, 0.08); }

  .mm-barra__btn--orcamento {
    color: #fff;
    background: #dc6339;
    border: 2px solid transparent;
  }

  .mm-barra__btn--orcamento:active { opacity: 0.9; }

  .mm-barra__btn:focus-visible {
    outline: 3px solid #1c1c1c;
    outline-offset: 2px;
  }

  .mm-barra__icone {
    width: 19px;
    height: 19px;
    flex: 0 0 auto;
    fill: currentColor;
  }

  /* A barra e fixa e tapa o fim da pagina: devolve-se o espaco que ocupa. */
  body {
    padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px));
  }

  /* Uma coisa de cada vez no fundo do ecra: enquanto o aviso de cookies
     estiver visivel, a barra sai da frente. O :has() reage sozinho quando o
     plugin esconde o aviso; um browser antigo ignora a regra e nao piora. */
  body:has(#moove_gdpr_cookie_info_bar:not(.moove-gdpr-info-bar-hidden)) .mm-barra {
    display: none !important;
  }

  /* Os botoes do aviso de consentimento a 44 px, a mesma norma dos alvos
     de toque do resto do site. */
  #moove_gdpr_cookie_info_bar .mgbutton,
  #moove_gdpr_cookie_info_bar button {
    min-height: 44px !important;
  }
}
