/* ==========================================================================
   dual-tema.css  -  o fontes.css mais as 23 folhas do tema, num ficheiro so.
   Gerado a 2026-08-17 pela Dash Digital. A ORDEM E EXACTAMENTE a mesma do
   enqueue antigo, para a cascata nao mudar.

   ATENCAO, a licao que custou uma homepage partida: antes de juntar, VERIFICAR
   QUE CADA FOLHA TEM AS CHAVETAS EQUILIBRADAS. O formulario.css tinha um
   @media por fechar. Sozinho nao fazia mal, porque o browser fecha os blocos
   no fim de cada ficheiro; juntas, as sete folhas seguintes cairam dentro
   desse @media e desapareceram acima de 768px.

   CORRECCAO de 2026-08-17: este cabecalho dizia que o comando de regeracao do
   functions.php "recusa-se a gerar" sem verificar as chavetas. NAO e verdade,
   o comando so concatena. A verificacao faz-se A MAO antes de regerar, com o
   contador de chavetas da armadilha 23 do manual, que ignora os comentarios.

   Ultima regeracao: 2026-08-17, troca das quatro fontes que nao existiam
   (Monserrat e Poppins) e do Arial do rodape, todas para Montserrat ou
   Open Sans.
   ========================================================================== */


/*@DUAL-FICHEIRO:fontes.css@*/
/* ==========================================================================
   As fontes do site, alojadas aqui e nao no Google.
   Gerado a 2026-08-17 pela Dash Digital.

   PORQUE. Vinham de fonts.googleapis.com, que ia buscar os ficheiros a
   fonts.gstatic.com: duas ligacoes a dominios de fora no caminho critico,
   e a fonte a chegar depois da primeira pintura. O texto aparecia na letra
   do sistema e depois trocava para a Montserrat, e essa troca empurrava
   tudo o que estava abaixo. Media-se: CLS de 0,018.

   SAO VARIABLE FONTS: um ficheiro cobre os pesos 400 a 700, que sao os
   quatro que o site usa (400, 500, 600, 700). O italico NAO se descarrega:
   confirmou-se nas 26 paginas que nao ha um unico elemento em italico.

   Os unicode-range ficam como o Google os tinha: o browser so vai buscar o
   latin-ext se aparecer um caracter que o latin nao tenha.
   ========================================================================== */

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/montserrat-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/montserrat-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/open-sans-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/open-sans-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/*@DUAL-FICHEIRO:header.css@*/
/* CSS Custom Properties */
:root {
  --primary-color: #9A2686;
  --primary-dark: #9A2686;
  --text-primary: #333333;
  --text-secondary: #666666;
  --text-light: #999999;
  --background-primary: #f2f2f2;
  --background-secondary: #f8f9fa;
  --background-tertiary: #f5f5f5;
  --border-color: #e5e7eb;
  --shadow-light: 0 2px 4px rgba(0, 0, 0, 0.05);
  --shadow-medium: 0 4px 12px rgba(0, 0, 0, 0.1);
  --shadow-heavy: 0 8px 25px rgba(0, 0, 0, 0.15);
  --border-radius: 8px;
  --border-radius-large: 12px;
  --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --container-max-width: 1518px;
  --header-height: 80px;
  --header-height-mobile: 70px;

  /* --- Sistema de layout, Dash Digital 15/08/2026 (Fase 1) ---------------
     --conteudo-max: a largura util que o Figma desenhou (1518 da tela menos
     2x95 de margem). --gutter: 6.25vw e exactamente 95/1518, a proporcao do
     desenho, por isso a margem acompanha o ecra em vez de ser sobra do
     max-width. As regras que usam estes tokens estao no layout.css. */
  --conteudo-max: 1328px;
  --gutter: clamp(20px, 6.25vw, 96px);

  /* --- Escala tipografica, Dash Digital 16/08/2026 (Fase 3) --------------
     Sete degraus, em vez dos 58 valores distintos que o tema tinha. Os
     quatro maiores sao fluidos: acompanham o ecra em vez de partirem em
     mais linhas quando a largura util baixou de 1518 para 1328 na Fase 1.
     A 1440px ou mais todos chegam ao topo, por isso no ecra do Luis
     (1521) os valores sao inteiros: 14 / 16 / 18 / 22 / 28 / 40 / 50.
     As regras que usam estes tokens estao no layout.css, dentro de
     @media (min-width: 1024px): abaixo disso nada muda, o telemovel e a
     Fase 7. */
  --txt-sm:   0.875rem;                          /* 14px */
  --txt-base: 1rem;                              /* 16px */
  --txt-lg:   1.125rem;                          /* 18px */
  --txt-xl:   clamp(1.25rem, 1.45vw, 1.375rem);  /* 20 -> 22 */
  --txt-2xl:  clamp(1.5rem,  2.05vw, 1.75rem);   /* 24 -> 28 */
  --txt-3xl:  clamp(1.75rem, 2.9vw,  2.5rem);    /* 28 -> 40 */
  --txt-4xl:  clamp(2.25rem, 3.6vw,  3.125rem);  /* 36 -> 50 */
  --letra-titulo: -0.32px;   /* o espacamento de referencia, era 1 de 8 */

  /* --- Ritmo vertical, Dash Digital 16/08/2026 (Fase 4) -----------------
     Quatro degraus, em vez dos 22 valores distintos que as 26 paginas
     usavam entre seccoes (0, 16, 20, 30, 40, 42, 50, 60, 64, 70, 72, 78,
     80, 82, 86, 90, 92, 94, 96, 100, 128 e 192px).
     Os dois maiores sao fluidos e chegam ao topo a partir dos ~1510px,
     por isso no ecra do Luis (1521) os valores sao inteiros: 24/40/56/80.
     O 80 e a ancora: era ja o valor mais usado do site, por isso as
     seccoes grandes ficam como estavam e sao as desalinhadas que vem ter
     com elas. As regras estao no layout.css, dentro de
     @media (min-width: 1024px). */
  --esp-sm: 1.5rem;                        /* 24px, dentro de um bloco */
  --esp-md: 2.5rem;                        /* 40px, titulo -> conteudo */
  --esp-lg: clamp(2.5rem, 3.7vw, 3.5rem);  /* 40 -> 56, seccao normal */
  --esp-xl: clamp(3.5rem, 5.3vw, 5rem);    /* 56 -> 80, seccao de destaque */
}
/* Estilos gerais */

  .border-test {
    border: solid 1px red;
  }

  body {
    font-family: 'Montserrat', sans-serif;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background-color: #f2f2f2;
  }

  main {
      padding: 0;
  }



  /* Header */
  .header-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1518px;
    margin: 0 auto;
    padding: 0 20px;
  }

  /* Logo */
  .logo-container {
    display: flex;
    align-items: center;
  }

  .logo {
    height: 40px;
    margin-right: 15px;
  }

  .logo-text h1 {
    margin: 0;
    font-size: 24px;
    color: #333;
  }

  .logo-text .tagline {
    font-size: 14px;
    color: #777;
  }

  /* Botão de menu hambúrguer */
  .mobile-menu-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: #333;
    margin-left: auto;
    padding: 5px;
  }

  .mobile-menu-toggle.active {
    color: #9A2686;
  }

  /* Navegação */

  .nav-menu-container {
    display: flex;
    justify-content: end;
    align-items: center;
    gap: 50px;
    flex-grow: 1;
  }

  .nav-menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
  }

  .nav-menu ul {
    display: flex;
    gap: 20px;
  }

  .dropdown i {
    font-size: 12px;
    margin-left: 5px;
  }

  .nav-menu a {
    text-decoration: none;
    color: #333;
    font-weight: 500;
    display: flex;
    align-items: center;
  }

  .nav-menu a:hover {
    color: #9A2686;
  }

  /* 47 anos */
  .years-badge {}

  .years-badge img,
  .years-badge svg {
    width: 100%;
    height: auto;
    display: block;
  }
/* Reset and Base Styles */
*,
*::before,
*::after {
  box-sizing: border-box;
}

a {
  text-decoration: none;
  color: inherit;
}

/* Mobile Menu Toggle */
.menu-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 1001;
  transition: var(--transition);
}
.mobile-menu-image {
  width: 100%;
  background-color: #f2f2f2;
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
}

.mobile-menu-image img {
  max-width: 160px;
  height: auto;
  display: inline-block;
  height: auto;
}

.menu-toggle__line {
  width: 24px;
  height: 2px;
  background-color: var(--text-primary);
  transition: var(--transition);
  transform-origin: center;
}

.menu-toggle__line:not(:last-child) {
  margin-bottom: 4px;
}

.menu-toggle.active .menu-toggle__line:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.menu-toggle.active .menu-toggle__line:nth-child(2) {
  opacity: 0;
}

.menu-toggle.active .menu-toggle__line:nth-child(3) {
  transform: rotate(-45deg) translate(7px, -6px);
}

/* Navigation */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: #00000027;
  /*backdrop-filter: blur(5px); */
  transform: translateX(-100%);
  transition: var(--transition);
  overflow-y: auto;
  z-index: 999;
}

.nav__container {
  height: 400px;
  background-color: var(--background-primary);
 /* border-radius: 25px;*/
  margin-top: -16px;
  background: #f2f2f2;
}



.nav__list {
  list-style: none;
  padding: 0;
  /* background: #f2f2f2; */
}

.nav__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem;
  font-weight: 500;
  transition: var(--transition);
  min-height: 56px;
}

.nav__link:hover,
.nav__link:focus {
  background-color: var(--background-secondary);
  color: var(--primary-color);
}

.nav__link--active {
  color: var(--primary-color);
  background-color: var(--background-secondary);
}

.nav__dropdown-icon {
  font-size: 0.875rem;
  transition: var(--transition);
}

.nav__item.active .nav__dropdown-icon {
  transform: rotate(180deg);
}

/* Mega Dropdown */
.mega-dropdown {
  max-height: 0;
  overflow: hidden;
  background-color: var(--background-tertiary);
  transition: max-height 0.3s ease-out;
}

.mega-dropdown.active {
  max-height: 1000px;
  transition: max-height 0.5s ease-in;
}

.mega-dropdown__grid {
  display: grid;
  gap: 10px !important;
  border-radius: 10px;
  background: #f2f2f2;
}

.mega-dropdown__item {
  display: flex;
  align-items: center;
  padding: 0.75rem 1rem 0.75rem 2rem;
  transition: var(--transition);
  background: #ececec;
}

.mega-dropdown__item:hover,
.mega-dropdown__item:focus {
  background-color: #9A2686;
  color: #fff;
}

.mega-dropdown__item:hover i,
.mega-dropdown__item:focus i {
  color: #fff;
}

.mega-dropdown__icon {
  width: 20px;
  height: 20px;
  margin-right: 0.75rem;
  color: var(--primary-color);
  flex-shrink: 0;
}

.mega-dropdown__text {
  font-size: 0.875rem;
  line-height: 1.4;
}

.botao-assistencia-tecnica {
  display: none;
}

.years-badge {
  display: none;
}
@media (min-width: 1024px) {
  .mobile-menu-image {
    display: none;
  }
}

/* Tablet Styles */
@media (min-width: 768px) {
  :root {
    --header-height-mobile: var(--header-height);
  }

  .container {
    padding: 0 2rem;
  }

  .hero__buttons {
    flex-direction: row;
  }

  .mega-dropdown__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
    padding: 1rem;
  }

  .mega-dropdown__item {
    padding: 1rem;
    border-radius: var(--border-radius);
    border-bottom: none;
  }

  .anniversary-badge {
    right: 2rem;
    padding: 0.75rem;
  }

  .anniversary-badge__years {
    font-size: 2rem;
  }

  .anniversary-badge__text {
    font-size: 0.875rem;
  }
}

/* Desktop Styles */
@media (min-width: 1024px) {
  .menu-toggle {
    display: none;
  }

  .nav {
    width: auto;
    position: static;
    transform: none;
    height: auto;
    background: none;
    overflow: visible;
    background-color: transparent !important;
  }

  .nav__container {
    height: auto;
    border-radius: 0;
    margin-top: 0;
    background: none;
  }

  .nav__list {
    display: flex;
    align-items: center;
    padding: 0;
    gap: 0.5rem;
  }

  .nav__item {
    position: relative;
    border-bottom: none;
  }

  .nav__link {
    padding: 0.75rem 1rem;
    min-height: auto;
    white-space: nowrap;
  }

  .nav__link--active {
    background: none;
    border-bottom: 2px solid var(--primary-color);
  }

  .nav__dropdown-icon {
    margin-left: 0.5rem;
  }

  .mega-dropdown {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background-color: var(--background-primary);
    min-width: 600px;
    max-width: 800px;
    box-shadow: var(--shadow-heavy);
    border-radius: var(--border-radius-large);
    opacity: 0;
    visibility: hidden;
    max-height: none;
    overflow: visible;
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
    transform: translateX(-50%) translateY(-10px);
    z-index: 1000;
  }

  .nav__item:hover .mega-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
  }

  .mega-dropdown.active {
    max-height: none;
  }

  .mega-dropdown__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    padding: 1.5rem;
  }

  .mega-dropdown__item {
    padding: 1rem;
    border-radius: var(--border-radius);
    border-bottom: none;
  }

  .botao-assistencia-tecnica {
    display: block;
    border-radius: 25px;
    text-align: center;
    border: 1px solid var(--border-color);
    padding: 15px 27px;
	  font-size: 16px !important;
	font-weight:600 !important;
	  background: #e9e9e9;
    color: #333;
	  
  }
  .botao-assistencia-tecnica:hover {
    background-color: var(--primary-color);
    color: #FFF;
  }

  .mobile-assistence {
    display: none;
  }

  .years-badge {
    display: block;
  }

  .hero__container {
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
  }

  .hero__content {
    order: 1;
  }

  .hero__image {
    order: 2;
  }

  .hero__title {
    font-size: clamp(2.5rem, 4vw, 3.5rem);
  }
}

/* Large Desktop */
@media (min-width: 1200px) {
  .container {
    padding: 0 3rem;
  }

  .mega-dropdown {
    min-width: 700px;
    max-width: 900px;
  }
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* High Contrast Mode */
@media (prefers-contrast: high) {
  :root {
    --shadow-light: 0 2px 4px rgba(0, 0, 0, 0.3);
    --shadow-medium: 0 4px 12px rgba(0, 0, 0, 0.4);
    --shadow-heavy: 0 8px 25px rgba(0, 0, 0, 0.5);
  }
}

/* Print Styles */
@media print {
  .header,
  .menu-toggle,
  .nav,
  .anniversary-badge {
    display: none;
  }
}


/* ---------- sticky menu ---------- */



.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: transparent;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.site-header.is-scrolled {
  background: var(--background-primary);
  box-shadow: var(--shadow-medium);    
}


@media (max-width: 1023px) {
  .nav { z-index: 999; }
  .menu-toggle { z-index: 1200; }
}


body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
	
	.nav__container{
		height: auto;
		margin-top: -29px;
	}
}



.nav__dropdown-icon { color: currentColor; }

@media (min-width: 1024px) {
  /* TOPO (sem scroll) -> branco */
  body.header-white-top .site-header:not(.is-scrolled) .nav__link { 
    color: #fff !important; 
  }
  body.header-white-top .site-header:not(.is-scrolled) .nav__link:hover,
  body.header-white-top .site-header:not(.is-scrolled) .nav__link:focus {
    color: #fff !important;
    background-color: rgba(255,255,255,0.08);
  }
  body.header-white-top .site-header:not(.is-scrolled) .nav__link--active {
    border-bottom-color: #fff !important;
  }
  body.header-white-top .site-header:not(.is-scrolled) .nav__dropdown-icon {
    color: #fff !important;
  }
}

/* Hamburguer branco no topo nessas páginas (mobile/desktop) */
body.header-white-top .site-header:not(.is-scrolled) .menu-toggle__line { 
  background-color: #fff; 
}

/* Transições suaves (opcional) */
.nav__link,
.nav__dropdown-icon,
.menu-toggle__line { transition: color .2s ease, background-color .2s ease; }

/* Alternância de logos (robusto) */
.logo-link { display: inline-flex; align-items: center; }
/* O logotipo aparecia esmagado. O .logo tinha height fixo e nenhum width, e
   como os <img> traziam o atributo width, a largura ficava presa ao valor do
   atributo enquanto a altura vinha daqui: 160x40 em computador (18% de
   deformacao) e 235x30 em telemovel (130%). O width: auto repoe a proporcao.
   A regra passou a estar dentro do .site-header porque o rodape tambem tem um
   <div class="logo"> e estava a apanhar este height sem precisar dele.
   Dash Digital, 2026-08-15. */
.site-header .logo {
  height: 44px;
  width: auto;
}

@media (max-width: 767px) {
  .site-header .logo {
    height: 32px;
  }
}

/* Por padrão (todas as páginas): mostra o default e esconde o alt */
.logo--default { display: inline-block !important; }
.logo--alt    { display: none !important; }

/* Páginas com body.header-white-top: TOPO (sem scroll) -> mostra o alt, esconde o default */
body.header-white-top .site-header:not(.is-scrolled) .logo--alt    { display: inline-block !important; }
body.header-white-top .site-header:not(.is-scrolled) .logo--default{ display: none !important; }

/* Em SCROLL nessas páginas -> volta ao default */
body.header-white-top .site-header.is-scrolled .logo--alt     { display: none !important; }
body.header-white-top .site-header.is-scrolled .logo--default { display: inline-block !important; }



/* ---------- fixed menu ---------- */

/* O bloco '.site-header { position: fixed; top: 0; left: 0; width: 100%;
   z-index: 1000; background: transparent; transition: ... }' que estava aqui
   era uma copia exacta do da linha 551 e foi removido a 15/08/2026 pela Dash
   Digital. Nao muda nada: as duas regras eram identicas ate ao byte. */

.site-header.is-scrolled {
  background: var(--background-primary);
  box-shadow: var(--shadow-medium);    
}





.nav.is-open {
  transform: translateX(0);
}

.menu-toggle.is-active .menu-toggle__line:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.menu-toggle.is-active .menu-toggle__line:nth-child(2) {
  opacity: 0;
}

.menu-toggle.is-active .menu-toggle__line:nth-child(3) {
  transform: rotate(-45deg) translate(7px, -6px);
}


/* Espaço para compensar o header fixed */
#page {
  padding-top: var(--header-height);
}

@media (max-width: 767px) {
  #page {
    padding-top: var(--header-height-mobile);
  }
}

/* Como o header é fixed, não deve ser empurrado pelo padding do #page */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
}

/* Quando estás logado no WordPress */
body.admin-bar #page {
  padding-top: calc(var(--header-height) + 32px);
}

@media (max-width: 782px) {
  body.admin-bar #page {
    padding-top: calc(var(--header-height-mobile) + 46px);
  }
}
/* Fase 1, Dash Digital 15/08/2026: abaixo de 1024px o gutter volta aos 15px de
   hoje, para o telemovel e o tablet ficarem exactamente na mesma. O telemovel
   e a Fase 7 do PLANO-DESKTOP-UX. */
@media (max-width: 1023px) {
  :root { --gutter: 15px; }
}

/*@DUAL-FICHEIRO:footer.css@*/
/* MOBILE-FIRST STYLES - Matching the mobile image
   ---------------------------------------------------------------------------
   ALTERADO a 15/08/2026 pela Dash Digital, com decisao do Luis Fonseca.
   O rodape tinha 25px de conteudo de navegacao com 100px de vazio por cima e
   70px por baixo, e quatro titulos que pareciam cabecalhos de coluna sem nada
   debaixo. As colunas passaram a ter os seus links e os espacos foram fechados.
   Medicoes do antes em REGISTO-UX.md, ponto A14.
   --------------------------------------------------------------------------- */
.dualinfor-footer {
  font-family: 'Open Sans', sans-serif;
  background-color: #1C1C1C;
  color: #ffffff;
  padding: 30px 30px 20px;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
}

/* LOGO SECTION - Mobile */
.logo-social {
  display: flex;
  flex-direction: row;
  align-items: center;
  /* Sem este flex-wrap, o bloco precisava de 405px e em ecras de 375px os icones
     do YouTube e do Facebook ficavam fora do ecra, sem barra de scroll para la
     chegar. Medido a 15/08/2026. Dash Digital. */
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 36px;
}

.logo {
  display: flex;
  align-items: center;
}

.logo img {
  max-width: 180px;
  height: auto;
}

/* SOCIAL ICONS - Mobile (horizontal row) */
.social-icons {
  display: flex;
  align-items: center;
}

/* 44x44 e o minimo recomendado para um alvo de toque (WCAG 2.2, 2.5.8).
   Estavam a 40x40. Dash Digital, 2026-08-15. */
.social-icons a {
  color: #ffffff;
  font-size: 24px;
  text-decoration: none;
  transition: color 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
}

.social-icons a:hover {
  color: #cccccc;
}

/* HORARIO - estava como 6a caixa de uma grelha de 5 colunas e caia sozinho numa
   segunda linha. Passou para junto do logotipo. Dash Digital, 2026-08-15. */
.footer-horario h3 {
  color: #ffffff;
  font-size: 16px;
  font-weight: bold;
  margin: 0 0 6px;
}

.footer-horario p {
  color: #cfcfcf;
  font-size: 14px;
  margin: 0;
  line-height: 1.4;
}

/* LOCATIONS SECTION - Mobile (vertical stack) */
.locations-grid {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-bottom: 40px;
}

.location {
  text-align: left;
}

.location h3 {
  color: #ffffff;
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 12px;
  margin-top: 0;
}

.location p {
  color: #ffffff;
  margin: 6px 0;
  line-height: 1.4;
  font-size: 14px;
  text-align: start;
}

.location .mb-4 {
  margin-bottom: 15px;
}

.location .note {
  font-size: 12px;
  color: #999999;
  font-style: italic;
  margin-top: 10px;
}

/* NAVIGATION SECTIONS - Mobile (vertical stack) */
.nav-sections {
  display: flex;
  flex-direction: column;
  gap: 28px;
  margin-bottom: 36px;
}

.nav-section {
  text-align: left;
}

.nav-section h3 {
  color: #ffffff;
  font-size: 16px;
  font-weight: bold;
  margin: 0 0 14px;
}

.nav-section ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.nav-section li {
  margin: 0;
  padding: 0;
}

/* O style.css tem um 'a { all: unset }' que apaga tudo, por isso estas
   propriedades tem de ser repostas aqui. Dash Digital, 2026-08-15. */
.nav-section a {
  color: #cfcfcf;
  text-decoration: none;
  font-size: 14px;
  line-height: 1.4;
  display: inline-block;
  padding: 3px 0;
  transition: color 0.2s ease;
}

.nav-section a:hover {
  color: #ffffff;
}

/* DIVIDER LINE */
.footer-divider {
  width: 100%;
  height: 1px;
  background-color: #444444;
  margin: 30px 0;
}

/* LEGAL LINKS - Mobile (vertical stack) */
.legal-links {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-bottom: 30px;
  text-align: left;
}

.legal-links a {
  color: #ffffff;
  text-decoration: none;
  font-size: 14px;
  transition: color 0.3s ease;
}

.legal-links a:hover {
  color: #cccccc;
}

.legal-links .separator {
  display: none;
}

/* COPYRIGHT - Mobile */
.copyright {
  text-align: left;
  font-size: 13px;
  color: #ffffff;
  margin-top: 20px;
}

/* TABLET STYLES - 768px and up */
@media (min-width: 768px) {
  .multimac-footer {
    padding: 50px 0 30px;
  }

  .container {
    padding: 0 40px;
  }

  /* Locations Grid - 2 columns */
  .locations-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 36px;
    margin-bottom: 48px;
  }

  /* Logo and Social - Side by side */
  .logo-social {
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    gap: 30px;
    padding: 36px 0;
    margin-bottom: 40px;
  }

  /* O horario encosta a direita, a preencher o vazio dessa linha */
  .footer-horario {
    margin-left: auto;
    text-align: right;
  }

  /* Navigation - 2 columns */
  .nav-sections {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 36px;
    margin-bottom: 40px;
  }

  /* Legal links horizontal with separators */
  .legal-links {
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0;
    text-align: center;
  }

  .legal-links .separator {
    display: inline;
    margin: 0 15px;
    color: #666666;
  }

  .legal-links a {
    margin: 5px 0;
  }

  .copyright {
    text-align: center;
    font-size: 14px;
    padding-top: 20px;
    margin-top: 0;
  }
}

/* DESKTOP STYLES - 1024px and up */
@media (min-width: 1024px) {
  .multimac-footer {
    padding: 60px 0 30px;
  }

  /* Locations Grid - 3 columns */
  .locations-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    margin-bottom: 56px;
  }

  .location h3 {
    font-size: 22px;
    margin-bottom: 20px;
  }

  .location p {
    font-size: 15px;
  }

  /* Logo and Social */
  .logo-social {
    padding: 40px 0;
    margin-bottom: 48px;
  }

  .logo img {
    max-width: 250px;
  }

  .social-icons {
    gap: 2px;
  }

  .social-icons a {
    font-size: 28px;
    width: 48px;
    height: 48px;
  }

  .footer-horario h3 {
    font-size: 18px;
  }

  .footer-horario p {
    font-size: 15px;
  }

  /* Navigation - 4 colunas, uma por familia de conteudo */
  .nav-sections {
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    margin-bottom: 48px;
  }

  .nav-section h3 {
    font-size: 18px;
    margin-bottom: 18px;
  }

  .nav-section a {
    font-size: 15px;
  }

  .legal-links a {
    font-size: 15px;
  }

  .copyright {
    font-size: 15px;
    padding-top: 30px;
  }
}

/* LARGE DESKTOP STYLES - 1200px and up */
@media (min-width: 1200px) {
  /* Locations Grid - 5 columns, uma por delegacao, tudo numa linha */
  .locations-grid {
    grid-template-columns: repeat(5, 1fr);
    gap: 40px;
  }

  .location h3 {
    font-size: 20px;
  }

  .location p {
    font-size: 14px;
  }

  .nav-sections {
    gap: 48px;
  }
}

/* EXTRA LARGE SCREENS - 1400px and up */
@media (min-width: 1400px) {
  .locations-grid {
    gap: 48px;
  }

  .nav-sections {
    gap: 56px;
  }
}

/* UTILITY CLASSES */
.mb-4 {
  margin-bottom: 1rem;
}

/* ACCESSIBILITY IMPROVEMENTS */
@media (prefers-reduced-motion: reduce) {
  .social-icons a,
  .legal-links a,
  .nav-section a {
    transition: none;
  }
}

/* FOCUS STYLES FOR ACCESSIBILITY
   Fundo escuro, por isso o contorno e branco e nao o magenta da marca. */
.social-icons a:focus-visible,
.legal-links a:focus-visible,
.nav-section a:focus-visible,
.location a:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

/* PRINT STYLES */
@media print {
  .multimac-footer {
    background-color: transparent !important;
    color: #000000 !important;
  }

  .location,
  .nav-section h3,
  .nav-section a,
  .legal-links a,
  .copyright {
    color: #000000 !important;
  }

  .social-icons {
    display: none;
  }
}




.prr-bar {
  background-color: #ffffff;
  border-top: 1px solid #e0e0d8;
  padding: 16px 24px;
}

.prr-bar-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.prr-text {
  font-size: 13px;
  color: #555;
  line-height: 1.5;
  margin: 0;
  max-width: 560px;
}

.prr-logos {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-shrink: 0;
}

.prr-logos a {
  display: flex;
  align-items: center;
}

.prr-logos img {
  height: 35px;
  width: auto;
  object-fit: contain;
  transition: opacity 0.2s ease;
}

.prr-logos a:hover img {
  opacity: 0.7;
}

@media (max-width: 900px) {
  .prr-bar-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
}

@media (max-width: 480px) {
  .prr-bar {
    padding: 16px;
  }

  .prr-logos {
    gap: 16px;
  }
.prr-logos a:nth-child(1) img { height: 25px; }
.prr-logos a:nth-child(2) img { height: 33px; }
.prr-logos a:nth-child(3) img { height: 25px; }
}

/*@DUAL-FICHEIRO:card.css@*/
/* Reset e base */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Montserrat", sans-serif;
  background-color: #f2f2f2;
  line-height: 1.4;
  color: #333;
}
.container-principal {
  max-width: 1400px;
  margin: 0 auto;
  padding: 20px 20px;
}

/* Header Section */
.card-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: stretch;
  height: 100%;
}
.card-content,
.card-image {
  display: flex;
  flex-direction: column;
  justify-content: start;
  height: 100%;
}
.header-reverse {
  direction: rtl;
}

.header-reverse .card-content,
.header-reverse .card-image {
  direction: ltr;
}

.card-image img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 20px;
  object-fit: cover;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}


.card-secondary-image img {
  width: 100%;
  height: 330px; 
  display: block;
  border-radius: 20px;
  object-fit: cover;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.card-secondary-image {
  margin-top: 20px; 
}
.card-content {
    padding: 40px 20px 0 20px;
    box-sizing: border-box;
    justify-content: space-between;
}

.card-title {
    font-family: "Montserrat", sans-serif;
    font-size: 50px;
    font-weight: 600;
    color: #1c1c1c;
    margin-bottom: 20px;
    line-height: normal;
    letter-spacing: -2.35px;
}

.card-description {
    font-family: "Open Sans", sans-serif;
    font-size: 22px;
    font-weight: 500;
    color: #1c1c1c;
    margin-bottom: 30px;
    line-height: 150%;
    letter-spacing: -0.16px;
}

.card-buttons {
  display: flex;
  gap: 15px;
  flex-wrap: nowrap;
  flex-direction: row;
}

.btn-primary {
  background-color: #9a2686;
  color: white;
  padding: 10px 15px;
  border: none;
  border-radius: 30px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s ease;
}

.btn-primary:hover {
  background-color: #7a1f6b;
  transform: translateY(-2px);
}

.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background-color: transparent;
  color: #9a2686;
  padding: 5px 15px;
  border: 2px solid #9a2686;
  border-radius: 30px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.3s ease;
}

.btn-secondary:hover {
  background-color: #9a2686;
  color: white;
  transform: translateY(-2px);
}

.btn-primary,
.btn-secondary {
  white-space: nowrap;
}

.arrow-icon {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

/* Content Section */
.content-section {
  text-align: center;
}

.section-heading {
    font-family: 'Montserrat';
    font-size: 50px;
    font-weight: 600;
    color: #1c1c1c;
    margin-bottom: 30px;
    line-height: 118%;
    letter-spacing: -0.16px;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
}
.section-description {
    font-family: 'Open Sans';
    font-size: 22px;
    font-weight: 500;
    color: #1c1c1c;
    margin-bottom: 2rem;
    line-height: 150%;
    letter-spacing: -0.8px;
}

.hero-image {
  width: 100%;
  height: 400px;
  border-radius: 20px;
  object-fit: cover;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
}

@media (max-width: 1024px) {
  .card-section {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .card-content {
    padding-left: 0;
    padding-right: 0;
    text-align: center;
    /* Um item de grelha tem min-width: auto por omissao e por isso pode crescer
       para alem da sua coluna. Sem este min-width: 0, o bloco saia 23px para
       fora do ecra em telemovel nas paginas /gavetas-inteligentes/,
       /solucoes-visuais/ e /digitalizadores/, e o titulo, o texto e o botao
       apareciam cortados do lado esquerdo. Medido a 15/08/2026. Dash Digital. */
    min-width: 0;
    max-width: 100%;
  }

  .card-title {
    font-size: 2rem;
  }

  .card-description {
    font-size: 1rem;
  }

  .card-buttons {
    justify-content: center;
    flex-wrap: wrap;
  }

  .card-image {
    display: none;
  }

  .card-secondary-image img {
    height: auto;
  }

  .header-images {
    display: none;
  }
}
@media (max-width: 768px) {
  .btn-primary {
    text-align: center !important;
    align-items: center !important;
    justify-content: center !important;
  }
}

/*@DUAL-FICHEIRO:benefits-section.css@*/
.section-full-bg {
  background-color: #1c1c1c;
  width: 100%;
  padding: 50px 0;
}

.section-container {
  max-width: 1500px;
  margin: 0 auto;
  padding: 60px 20px;
}

.section-header {
  text-align: left;
  margin-bottom: 60px;
}

.section-title {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 24px;
  color: white;
  max-width: 70%;
}

.section-subtitle {
    font-family: 'Montserrat';
    font-size: 20px;
    color: #ffffff;
    line-height: 150%;
    letter-spacing: -0.8px;
    max-width: 800px;
}

.section-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 24px;
}

/* Quando houver exatamente 6 cards, força para 3 colunas */
.section-grid:has(> :nth-child(6):last-child) {
  grid-template-columns: repeat(3, 1fr);
}

.section-card {
  background-color: #241d22;
  border: 2px solid #9a2686;
  border-radius: 20px;
  padding: 32px 24px;
  position: relative;
  transition: transform 0.3s ease;
}

.section-card:hover {
  transform: translateY(-4px);
}

.section-card-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
}

.section-card-icon svg {
  width: 24px;
  height: 24px;
  fill: white;
}

.section-card-title {
    font-family: 'Montserrat';
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 20px;
    color: white;
    line-height: 120%;
    letter-spacing: -0.24px;
}

.section-card-list {
    list-style: none;
    color: #FFFBFB;
    font-size: 18px;
    font-weight: 500;
    line-height: 150%;
}

.section-card-list li {
    font-size: 18px;
    color: #FFFFFF;
    margin-bottom: 12px;
    padding-left: 16px;
    position: relative;
    line-height: 150%;
    letter-spacing: -0.8px;
}

.section-card-list li::before {
  content: "•";
  color: #ffffff;
  font-weight: bold;
  position: absolute;
  left: 0;
}

.section-cta-card {
  background-color: #2f1e2c;
  border: 2px solid #9a2686;
  border-radius: 16px;
  padding: 32px 24px;
  position: relative;
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  min-height: 200px;
}

.section-cta-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 32px rgba(154, 38, 134, 0.3);
}

.section-cta-title {
  font-size: 28px;
  font-weight: 700;
  color: white;
  line-height: 130%;
  margin-bottom: 16px;
}

.section-cta-icon {
  position: absolute;
  top: 24px;
  right: 24px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.section-cta-icon svg {
  width: 20px;
  height: 20px;
  fill: #9a2686;
}

.mobile-btn {
  display: none;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .section-grid {
    grid-template-columns: repeat(2, 1fr);
  }

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

@media (max-width: 768px) {
  .section-container {
    padding: 40px 16px;
  }

  .section-grid {
    display: flex;
    flex-direction: row;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 16px;
    padding-bottom: 20px;
  }

  .section-grid::-webkit-scrollbar {
    display: none;
    /* esconde scroll em mobile */
  }

  .section-title {
    font-size: 2rem;
    text-align: center;
    max-width: none;
  }

  .section-header {
    margin-bottom: 40px;
  }

  .section-card {
    padding: 24px 20px;
    min-width: 320px;
    height: auto;
  }
  .section-card-list p {
  text-align: center;
}

  .section-cta-card {
    display: none;
  }

  .mobile-btn {
    display: flex;
    justify-content: center;
    margin: 24px auto 0;
    margin-bottom: 40px;
  }

  .mobile-btn button {
    background-color: transparent;
    border: 2px solid #9a2686;
    border-radius: 8px;
    padding: 12px 24px;
    cursor: pointer;
    transition: all 0.3s ease;
  }

  .mobile-btn button:hover {
    background-color: #2f1e2c;
    transform: translateY(-4px);
    box-shadow: 0 8px 32px rgba(154, 38, 134, 0.3);
  }

  .mobile-btn button a {
    text-decoration: none;
    color: #ffffff;
    font-size: 1rem;
    font-weight: 600;
  }

  .mobile-btn button:hover a {
    color: #ffffff;
  }
}

/*@DUAL-FICHEIRO:features-section.css@*/
.products-features-section {
  max-width: 1500px;
  margin: 0 auto;
  padding: 40px 16px;
}

.section-title-features {
  margin-bottom: 40px;
}

.section-main-title {
  font-size: 3rem;
  font-weight: 700;
  color: #333;
  margin-bottom: 10px;
}

.section-description-features {
    font-family: 'open sans', sans-serif;
    font-size: 20px;
    color: #1c1c1c;
    max-width: 600px;
    line-height: 150%;
    margin: 0 auto;
}

.section-layout-desktop {
  display: none;
}

.section-scroll-table {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.section-scroll-wrapper {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  padding-bottom: 12px;
  scroll-snap-type: x mandatory;
}

.section-scroll-wrapper::-webkit-scrollbar {
  height: 8px;
}

.section-scroll-wrapper::-webkit-scrollbar-thumb {
  background-color: #ccc;
  border-radius: 10px;
}

.section-table-column {
  flex: 0 0 80%;
  background-color: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  scroll-snap-align: start;
}

.section-table-header {
    background-color: #f0e2ee;
    padding: 16px;
    font-weight: 600;
    text-align: start;
    border-radius: 12px 12px 0 0;
    font-size: 22PX;
    line-height: 20px;
}

.descricao .section-table-header {
  background-color: #d0d3e2;
}

.section-table-list {
  list-style: none;
  padding: 16px;
}

.section-table-list li {
    margin-bottom: 24px;
    font-size: 16px;
    display: flex;
    align-items: flex-start;
    line-height: 20px;
    color: #333333;
    position: relative;
    padding-bottom: 20px;
    border-bottom: 1px solid #e0e0e0;
}

.section-table-list li:last-child {
  margin-bottom: 0;
  border-bottom: none;
}

.check-icon {
  display: inline-block;
  background-color: #9a2686;
  color: white;
  font-weight: bold;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 1.4rem;
  margin-right: 10px;
  min-width: 22px;
  text-align: center;
}

@media (min-width: 1025px) {
  .section-scroll-table {
    display: none;
  }

  .section-layout-desktop {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 32px;
    align-items: flex-start;
  }

  .section-text-column {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .section-title-features {
    text-align: left;
    margin-bottom: 0;
  }

  .section-description-features {
    text-align: left;
    margin: 0;
  }

  .section-columns-wrapper {
    display: flex;
    gap: 24px;
  }

  .section-table-column {
    flex: 1;
    min-width: 350px;
  }
}
@media (max-width: 768px) {
  .section-table-column {
    flex: 1;
    min-width: 300px;
  }
  .section-title-features {
    text-align: center;
  }
  
}
/*@DUAL-FICHEIRO:section-testemunhos.css@*/
.section-testimonials {
  max-width: 1518px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 100px;
  padding: 40px 0;
}

.section-testimonials-header {
  flex: 0 0 350px;
  max-width: 500px;
}

.section-testimonials-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 50px;
    font-weight: 600;
    line-height: 120%;
    letter-spacing: -0.32px;
    color: #1C1C1C;
    margin-bottom: 25px;
}
.section-testimonials-subtitle {
    font-family: 'Open Sans', sans-serif;
    font-size: 20px;
    font-weight: 400;
    line-height: 150%;
    opacity: 100%;
    letter-spacing: -0.16px;
    color: #1c1c1c;
    margin-bottom: 25px;
}

.section-testimonials-navigation {
  display: flex;
  gap: 12px;
  margin-bottom: 40px;
}

.section-testimonials-nav-button {
  width: 45px;
  height: 45px;
  border-radius: 50%;
  border: 2px solid #ddd;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
	color:black;
	font-size: 15px;
}

.section-testimonials-nav-button:hover {
  border-color: #9a2686;
}

.section-testimonials-nav-button.active {
  /*background-color: #9a2686;
  border-color: #9a2686;*/
background: linear-gradient(90deg,rgb(41, 57, 146) 0%, rgb(154, 38, 134) 100%);
	color:white;
}

.section-testimonials-nav-button svg {
  width: 18px;
  height: 18px;
  fill: #666;
}

.section-testimonials-nav-button.active svg {
  fill: white;
}

.section-testimonials-content {
  flex: 1;
  position: relative;
  max-width: 600px;
}

.section-testimonials-carousel {
  overflow: hidden;
  border-radius: 16px;
  width: 100%;
}

.section-testimonials-cards {
  display: flex;
  transition: transform 0.3s ease;
}

.section-testimonials-card {
  min-width: 100%;
  background: linear-gradient(135deg, #9a2686 0%, #b83a9c 100%);
  display: flex;
  align-items: center;
  gap: 25px;
  height: 400px;
  position: relative;
  padding: 0 40px 0 0;
  border-radius: 16px;
}

.section-testimonials-avatar {
    width: 250px;
    height: 426px;
    border-radius: 25px;
    overflow: hidden;
    flex-shrink: 0;
}

.section-testimonials-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.section-testimonials-text {
  flex: 1;
  color: white;
}

.section-testimonials-quote {
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: 20px;
  font-weight: 400;
}

.section-testimonials-author {
    font-family: 'Montserrat';
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 4px;
}

.section-testimonials-role {
    font-family: 'Open Sans', sans-serif;
    font-size: 16px;
    opacity: 0.9;
    font-weight: 400;
}

.section-testimonials-quote-icon {
  position: absolute;
  top: 0;
  right: 25px;
  width: 100px;
  height: 100px;
  opacity: 0.3;
}

.section-testimonials-quote-icon svg {
  width: 100%;
  height: 100%;
  fill: white;
}

/* Mobile Styles */
@media (max-width: 768px) {
  .section-testimonials {
    flex-direction: column;
    gap: 30px;
    align-items: stretch;
	margin: 30px;
  }

  .section-testimonials-header {
    flex: none;
    max-width: none;
    text-align: center;
  }

  .section-testimonials-title {
    font-size: 28px;
    margin-bottom: 20px;
  }

  .section-testimonials-navigation {
    order: 2;
    justify-content: center;
    margin-top: 20px;
    margin-bottom: 0;
  }

  .section-testimonials-content {
    order: 1;
    max-width: none;
    width: 100%;
  }

  .section-testimonials-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 20px;
    gap: 0;
    min-height: auto;
    height: auto;
  }

  .section-testimonials-avatar {
    width: 100%;
    height: auto;
    overflow: hidden;
    flex-shrink: 0;
    margin: 0;
  }

  .section-testimonials-avatar img {
    width: 100%;
    height: 450px;
    object-fit: cover;
    display: block;
    border-radius: 20px;
  }

  .section-testimonials-text {
    color: white;
    text-align: left;
    padding: 25px;
  }

  .section-testimonials-quote {
    font-size: 15px;
    margin-bottom: 15px;
    line-height: 1.5;
  }

  .section-testimonials-author {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 4px;
  }

  .section-testimonials-role {
    font-size: 13px;
    opacity: 0.9;
    font-weight: 400;
  }

  .section-testimonials-quote-icon {
    display: none; /* Oculta o ícone no mobile */
  }
}

@media (max-width: 480px) {
  .section-testimonials-title {
    font-size: 28px;
  }

  .section-testimonials-card {
    padding: 0;
  }

  .section-testimonials-quote {
    font-size: 14px;
  }

  .section-testimonials-author {
    font-size: 18px;
  }

  .section-testimonials-role {
    font-size: 14px;
  }
}

/* Large desktop optimization */
@media (min-width: 1518px) {
  .section-testimonials {
    max-width: 1518px;
  }

  .section-testimonials-header {
    flex: 0 0 500px;
  }

  .section-testimonials-title {
        font-family: 'Montserrat';
        font-weight: 600;
        font-size: 50px;
        line-height: 120%;
        letter-spacing: -0.16px;
    }

  .section-testimonials-content {
    /*max-width: 650px;*/
	  max-width: 751px;
  }
}

/*@DUAL-FICHEIRO:solutions-section.css@*/
.section-solution-container {
  max-width: 1500px;
  margin: 0 auto;
  padding: 60px 20px;
}

.section-solution-header {
  margin-bottom: 40px;
}

.section-solution-title {
    font-size: 50px;
    font-weight: 600;
    color: #1c1c1c;
    margin-bottom: 20px;
    line-height: 120%;
    letter-spacing: -0.16px;
    max-width: 60%;
}

.section-solution-subtitle {
    font-family: 'Open Sans';
    font-size: 20px;
    color: #1c1c1c;
    max-width: 700px;
    letter-spacing: -0.8px;
    line-height: 150%;
    font-weight: 500;
}
.section-solution-content {
  display: flex;
  gap: 40px;
  align-items: stretch;
  justify-content: space-between;
}

.section-solution-content.flex-row-reverse {
  flex-direction: row-reverse;
}

.section-solution-cards {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.section-solution-card {
  background: #f6f6f6;
  border: 2px solid #9a2686;
  border-radius: 16px;
  padding: 30px;
  position: relative;
}

.section-solution-card-icon {
  width: 40px;
  height: 40px;
  margin-bottom: 20px;
}

.section-solution-card-icon svg,
.section-solution-card-icon img {
  width: 100%;
  height: 100%;
  stroke: #9a2686;
  fill: none;
  stroke-width: 2;
}

.section-solution-card-title {
    font-family: 'Montserrat';
    font-size: 28px;
    font-weight: 700;
    color: #1c1c1c;
    margin-bottom: 20px;
    line-height: 110%;
    letter-spacing: -0.16px;
}

.section-solution-card-list {
  list-style: none;
  padding-left: 0;
}

.section-solution-card-list li {
    font-family: 'Open Sans';
    font-weight: 500;
    color: #1c1c1c;
    font-size: 16px;
    margin-bottom: 12px;
    padding-left: 20px;
    position: relative;
    line-height: normal;
    letter-spacing: -0.8px;
}

.section-solution-card-list li:before {
  content: "•";
  color: #1c1c1c;
  font-weight: bold;
  position: absolute;
  left: 0;
}

.section-solution-image {
  flex: 0 0 400px;
  align-self: stretch;
  border-radius: 16px;
  overflow: hidden;
  display: flex;
}

.section-solution-image img {
  width: 100%;
  height: 100%;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .section-solution-content {
    flex-direction: column;
    gap: 30px;
  }

  .section-solution-image {
    width: 100%;
    height: auto;
  }

  .section-solution-image img {
    height: auto;
  }
}

@media (max-width: 768px) {
  .section-solution-container {
    padding: 40px 15px;
  }

  .section-solution-title {
    font-size: 36px;
    max-width: 100%;
    text-align: center;
  }

  .section-solution-cards {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .section-solution-card {
    padding: 25px;
  }

  .section-solution-card-title {
    font-size: 20px;
  }

  .section-solution-image {
    display: none;
  }
}

@media (max-width: 480px) {
  .section-solution-title {
    font-size: 28px;
    max-width: 100%;
    text-align: center;
  }

  .section-solution-subtitle {
    font-size: 16px;
  }

  .section-solution-card {
    padding: 20px;
  }

  .section-solution-card-title {
    font-size: 18px;
  }

  .section-solution-card-list li {
    font-size: 14px;
  }
}

/*@DUAL-FICHEIRO:complementary-section.css@*/
.section-complementary-container {
  max-width: 1500px;
  margin: 0 auto;
  padding: 60px 20px;
  position: relative;
}

.section-complementary-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
}

.section-complementary-left {
  padding-right: 40px;
}

.section-complementary-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 50px;
    font-weight: 600;
    color: #1c1c1c;
    line-height: 120%;
    margin-bottom: 30px;
    letter-spacing: -0.02em;
}

.section-complementary-services {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.section-complementary-service {
  border-bottom: 2px solid #9a2686;
  position: relative;
}

.section-complementary-service-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 15px;
}

.section-complementary-service-title {
    font-family: 'Montserrat';
    font-size: 22px;
    font-weight: 600;
    color: #1C1C1C;
    margin-bottom: 8px;
}
.section-complementary-service-description {
    font-size: 16px;
    font-weight: 500;
    color: #1c1c1c;
    line-height: 22px;
}

.section-complementary-right {
  position: relative;
  height: 600px;
}

.section-complementary-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20px;
}
/*
.section-complementary-cta {
  position: absolute;
  bottom: -50px;
  right: -15px;
  background: #293992;
  color: white;
  padding: 40px;
  border-radius: 20px;
  max-width: 260px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}   */

.section-complementary-cta {
  position: absolute;
  bottom: -50px;
  right: -15px;
  background: rgba(225, 225, 229, 0.6);
  color: white;
  padding: 40px;
  border-radius: 20px;
  max-width: 260px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(15px);
  color: #293992;
}

.section-complementary-cta-text {
    font-size: 22px;
    font-weight: 700;
    line-height: 130.1%;
    margin-bottom: 20px;
	color: white !important;
}
.section-complementary-arrow a {
  display: inline-block;
  text-decoration: none;
}

.section-complementary-cta-arrow {
  width: 40px;
  height: 40px;
  border: 2px solid white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  margin-left: auto;
}

.section-complementary-cta-arrow:hover {
  background-color: white;
}

.section-complementary-cta-arrow::after {
  content: "↗";
  font-size: 16px;
  font-weight: bold;
  color: white;
  transition: color 0.3s ease;
}

.section-complementary-cta-arrow:hover::after {
  color: #9a2686;
}

.btn-mobile {
  display: none;
}

/* Mobile Styles */
@media (max-width: 768px) {
  .section-complementary-container {
    padding: 40px 15px;
  }

  .section-complementary-content {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .section-complementary-left {
    padding-right: 0;
  }

  .section-complementary-title {
    font-size: 2.5rem;
    margin-bottom: 40px;
  }

  .section-complementary-services {
    gap: 30px;
  }

  .section-complementary-service {
    padding-bottom: 20px;
  }

  .section-complementary-service-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
  }

  .section-complementary-service-title {
    font-size: 1.3rem;
  }

  .section-complementary-arrow {
    width: 45px;
    height: 45px;
    margin-left: 0;
    align-self: flex-end;
  }

  .section-complementary-right {
    display: none;
  }

  .section-complementary-image {
    display: none;
  }

  .btn-mobile {
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    margin-top: 30px; 
}

.btn-mobile button {
    font-weight: 700; 
    color: white;
    border-radius: 25px;
    padding: 15px 30px;
    background-color: #293992;
    border: none;
}

.btn-mobile button:hover {
    transform: translateY(-2px);
}
}

@media (max-width: 480px) {
  .section-complementary-title {
    font-size: 2rem;
  }

  .section-complementary-service-title {
    font-size: 1.2rem;
  }

  .section-complementary-service-description {
    font-size: 0.9rem;
  }

  .section-complementary-right {
    height: 300px;
  }

  .section-complementary-cta {
    padding: 25px;
  }

  .section-complementary-cta-text {
    font-size: 1.1rem;
  }
}

/*@DUAL-FICHEIRO:doubt-section.css@*/
/* Main section container */
.section-doubt-container {
  max-width: 1518px;
  margin: 0 auto;
  padding: 40px 20px;
}

/* Header styles */
.section-doubt-header {
  margin-bottom: 40px;
}

.section-doubt-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 50px;
    font-weight: 600;
    color: #1c1c1c;
    max-width: 70%;
    line-height: 120%;
}

/* Content layout */
.section-doubt-content {
  display: flex;
  gap:100px;
}

/* Image container */
.section-doubt-image-container {
  flex: 1;
  border-radius: 20px;
  overflow: hidden;
  max-width: 550px;
}

.section-doubt-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* FAQ container */
.section-doubt-faq-container {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* FAQ item */
.section-doubt-faq-item {
  border-bottom: 1px solid #9a2686;
  padding-bottom: 20px;
}

/* FAQ header */
.section-doubt-faq-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  padding: 10px 0;
}

.section-doubt-faq-question {
    font-size: 32px;
    font-weight: 600;
    color: #1c1c1c;
    line-height: 45px;
    flex: 1;
}

/* Toggle button */
.section-doubt-faq-toggle {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #f2f2f2;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e0e0e0;
  cursor: pointer;
  flex-shrink: 0;
}

.section-doubt-faq-toggle svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #9a2686;
  stroke-width: 2;
}

/* FAQ answer */
.section-doubt-faq-answer {
    font-size: 18px;
    font-weight: 500;
    line-height: 28px;
    color: #1c1C1c;
    margin-top: 10px;
}

/* Responsive styles */
@media (max-width: 768px) {
  .section-doubt-content {
    flex-direction: column;
  }

  .section-doubt-image-container {
    display: none;
  }

  .section-doubt-title {
    font-size: 28px;
    max-width: none;
    text-align: center;
  }

  .section-doubt-faq-question {
    font-size: 22px;
  }
}

/*@DUAL-FICHEIRO:consultadoria-section-hero.css@*/
.section-hero-consultadoria {
  background-color: #f2f2f2;
  padding: 0 45px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.section-hero-consultadoria-container {
  max-width: 1500px;
  width: 100%;
  margin: 0 auto;
}

.section-hero-consultadoria-content {
  text-align: center;
  margin-bottom: 50px;
}

.section-hero-consultadoria-title {
    font-size: 50px;
    font-weight: 600;
    color: #1c1c1c;
    margin-bottom: 30px;
    line-height: normal;
    letter-spacing: -2.35px;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 30px;
}

.section-hero-consultadoria-subtitle {
    font-family: 'Open Sans';
    font-size: 22px;
    color: #1c1c1c;
    margin-top: 40px;
    margin-bottom: 40px;
    letter-spacing: -0.8px;
    line-height: 150%;
    max-width: 65%;
    margin-left: auto;
    margin-right: auto;
}

.section-hero-consultadoria-buttons {
  display: flex;
  gap: 20px;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
}

.section-hero-consultadoria-btn {
  padding: 8px 20px;
  border-radius: 50px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  border: 2px solid #9a2686;
}

.section-hero-consultadoria-btn-primary {
  background-color: #9a2686;
  color: white;
}

.section-hero-consultadoria-btn-primary:hover {
  background-color: #7d1f6b;
  transform: translateY(-2px);
}

.section-hero-consultadoria-btn-secondary {
  background-color: transparent;
  color: #9a2686;
}

.section-hero-consultadoria-btn-secondary:hover {
  background-color: #9a2686;
  color: white;
  transform: translateY(-2px);
}

.section-hero-consultadoria-arrow {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

.section-hero-consultadoria-image-container {
  width: 100%;
/*  max-width: 1000px;*/
  margin: 0 auto;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

.section-hero-consultadoria-image {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  
}

/* NOVO LAYOUT: título e botões à esquerda, parágrafo à direita */
.section-hero-consultadoria-content.titulo-botoes-paragrafo {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  text-align: left;
  flex-wrap: wrap;
}

.section-hero-consultadoria-content.titulo-botoes-paragrafo
  .section-hero-consultadoria-left {
  flex: 1;
  min-width: 300px;
}

.section-hero-consultadoria-content.titulo-botoes-paragrafo
  .section-hero-consultadoria-right {
  flex: 1;
  min-width: 300px;
	  padding-top: 5%;
}

.section-hero-consultadoria-content.titulo-botoes-paragrafo
  .section-hero-consultadoria-buttons {
  justify-content: flex-start;
  margin-top: 20px;
}

/* Mobile Responsiveness */
@media (max-width: 768px) {
  .section-hero-consultadoria {
    padding: 40px 15px;
    min-height: auto;
  }

  .section-hero-consultadoria-title {
    margin-left: auto;
    font-size: 2.2rem;
    margin-bottom: 20px;
  }

  .section-hero-consultadoria-subtitle {
    font-size: 1.1rem;
    margin-bottom: 30px;
  }

  .section-hero-consultadoria-buttons {
    flex-direction: column;
    gap: 15px;
    width: 100%;
  }

  .section-hero-consultadoria-btn {
    width: 100%;
    max-width: 300px;
    justify-content: center;
    padding: 18px 25px;
    margin-left: 0;
  }

  .section-hero-consultadoria-content {
    margin-bottom: 40px;
  }

  .section-hero-consultadoria-image-container {
    border-radius: 15px;
  }

  .section-hero-consultadoria-image {
    min-height: 250px;
    object-fit: cover;
  }
  .section-hero-consultadoria-content.titulo-botoes-paragrafo {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .section-hero-consultadoria-content.titulo-botoes-paragrafo
    .section-hero-consultadoria-left,
  .section-hero-consultadoria-content.titulo-botoes-paragrafo
    .section-hero-consultadoria-right {
    width: 100%;
    max-width: 800px;
    text-align: center;
  }

  /* REORDENAR os elementos para: título → parágrafo → botões */
  .section-hero-consultadoria-left {
    order: 1;
  }

  .section-hero-consultadoria-right {
    order: 2;
  }

  .section-hero-consultadoria-buttons {
    order: 3;
    justify-content: center;
    margin-top: 30px;
  }
}

@media (max-width: 480px) {
  .section-hero-consultadoria-title {
    font-size: 1.8rem;
  }

  .section-hero-consultadoria-subtitle {
    font-size: 1rem;
    max-width: 100%;
  }

  .section-hero-consultadoria-btn {
    font-size: 0.85rem;
    padding: 10px 20px;
  }
}

/* Ensure image loads properly on all devices */
@media (max-width: 768px) {
  .section-hero-consultadoria-image {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    max-width: 100% !important;
  }
}

/*@DUAL-FICHEIRO:hero-section-secondary.css@*/
.section-hero-secundario {
    display: flex;
    gap: 60px;
    align-items: center;
    justify-content: center;
    max-width: 1500px;
    margin: 0 auto;
    padding: 80px 20px;
    border-radius: 24px;
    background-color: #f2f2f2;
    flex-direction: row;
  }

  .section-hero-secundario.image-right {
    flex-direction: row-reverse;
  }

  .hero-secundario-img,
  .hero-secundario-text {
    flex: 1;
  }

  .hero-secundario-img img {
    width: 100%;
    height: auto;
    border-radius: 20px;
  }
.hero-secundario-text h2 {
    font-family: 'Montserrat';
    font-size: 50px;
    font-weight: 600;
    line-height: 118%;
    color: #1c1c1c;
    letter-spacing: -0.16px;
    max-width: 500px;
	margin-bottom: 20px;
}

.hero-secundario-text p {
    font-family: 'Open Sans';
    font-size: 22px;
    line-height: 150%;
    letter-spacing: -0.8px;
    font-weight: 500;
    color: #1c1c1c;
	max-width: 550px;
}
  @media (max-width: 900px) {
    .section-hero-secundario {
      flex-direction: column !important;
      padding: 20px;
      gap: 30px;
      text-align: center;
    }
  }
/*@DUAL-FICHEIRO:consultadoria-solutions.css@*/
.section-dark-wrapper {
  background-color: #1c1c1c;
  padding: 80px 0;
}

.section-dark-content {
  max-width: 1518px;
  margin: 0 auto;
  padding: 0 20px;
  color: #ffffff;
}

.section-container-solutions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
}

/* ESQUERDA */
.section-left {
  display: flex;
  flex-direction: column;
}

.section-title {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 50px;
    font-weight: 600;
    line-height: 118%;
    letter-spacing: -0.8px;
    margin-bottom: 40px;
    max-width: 80%;
}

.section-image {
  flex: 1;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
}

.section-image img {
  width: auto;
  height: auto;
  object-fit: cover;
}

/* DIREITA */
.section-right {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.section-text {
    font-size: 20px;
    font-weight: 500;
    line-height: 150%;
    text-align: left;
    margin-top: 40px;
    margin-bottom: 40px;
    color: #FFFDFD;
}

.cards-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.card {
    background-color: rgba(154, 38, 134, 0.06);
    border: 2px solid #C05AFF;
    border-radius: 16px;
    height: auto;
    min-width: 350px;
    padding: 30px 30px;
    display: flex
;
    flex-direction: column;
    gap: 10px;
}

.card-icon {
  font-size: 2rem;
  color: #9a2686;
}

.card-title-solutions {
    font-size: 28px;
    font-weight: 700;
    line-height: 110%;
    color: #ffffff;
}

.card-description-solutions {
    font-size: 18px;
    font-weight: 500;
    color: #fffff;
}

/* Responsive */
@media (max-width: 1024px) {
  .section-title {
    font-size: 2.8rem;
  }

  .section-container-solutions {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

@media (max-width: 768px) {
  .section-container-solutions {
    grid-template-columns: 1fr;
  }

  .section-text {
    text-align: center;
  }

  .cards-grid {
    grid-template-columns: 1fr;
  }

  .section-title {
    font-size: 2.4rem;
    max-width: none;
    text-align: center;
  }

  .section-image {
    display: none;
  }
  .section-right {
    gap: 10px;
  }
}

/*@DUAL-FICHEIRO:consultadoria-carousel.css@*/
.se-consultadoria-solutions-carousel {
  background-color: #1c1c1c;
  min-height: 100vh;
  padding: 60px 20px;
}

.se-consultadoria-solutions-carousel__container {
  max-width: 1518px;
  margin: 0 auto;
}

.se-consultadoria-solutions-carousel__content {
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.se-consultadoria-solutions-carousel__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
}

.se-consultadoria-solutions-carousel__title {
    font-family: 'Montserrat';
    font-size: 50px;
    font-weight: 600;
    line-height: 120%;
    letter-spacing: -0.32px;
    color: #ffffff;
}



.se-consultadoria-solutions-carousel__description {
    font-family: 'Open Sans';
    font-size: 20px;
    line-height: 150%;
    color: #ffffff;
    letter-spacing: -0.8px;
    align-self: center;
}
.se-consultadoria-solutions-carousel__carousel-container {
  position: relative;
  overflow: hidden;
}

.se-consultadoria-solutions-carousel__carousel-track {
  display: flex;
  gap: 24px;
  transition: transform 0.3s ease;
}

.se-consultadoria-solutions-carousel__card {
    background-color: rgba(154, 38, 134, 0.06);
    flex: 0 0 400px;
    border: 1px solid #C05AFF;
    border-radius: 12px;
    padding: 32px 24px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-height: 280px;
}

.se-consultadoria-solutions-carousel__card-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.se-consultadoria-solutions-carousel__card-icon svg {
  width: 32px;
  height: 32px;
}

.se-consultadoria-solutions-carousel__card-title {
    font-family: 'Montserrat';
    font-size: 28px;
    font-weight: 700;
    color: #ffffff;
    line-height: 110%;
    letter-spacing: -0.16px;
    margin-bottom: 8px;
}

.se-consultadoria-solutions-carousel__card-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.se-consultadoria-solutions-carousel__card-list li {
    font-family: 'Open Sans';
    font-size: 18px;
    font-weight: 500;
    line-height: normal;
    color: #FFFFFF;
    position: relative;
    padding-left: 16px;
}

.se-consultadoria-solutions-carousel__card-list li::before {
  content: "•";
  color: #ffffff;
  position: absolute;
  left: 0;
  top: 0;
}

.se-consultadoria-solutions-carousel__navigation {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 40px;
}

.se-consultadoria-solutions-carousel__nav-btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid #404040;
  background-color: transparent;
  color: #cccccc;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

.se-consultadoria-solutions-carousel__nav-btn:hover {
  background-color: #9a2686;
  border-color: #9a2686;
  color: #ffffff;
}

.se-consultadoria-solutions-carousel__nav-btn--next {
  background-color: #9a2686;
  border-color: #9a2686;
  color: #ffffff;
}

/* Mobile Styles */
@media (max-width: 768px) {
  .se-consultadoria-solutions-carousel {
    padding: 40px 16px;
  }

  .se-consultadoria-solutions-carousel__content {
    gap: 40px;
  }

  .se-consultadoria-solutions-carousel__header {
    grid-template-columns: 1fr;
    gap: 32px;
    text-align: center;
  }

  .se-consultadoria-solutions-carousel__title {
    font-size: 32px;
  }

  .se-consultadoria-solutions-carousel__description {
    font-size: 16px;
  }

  .se-consultadoria-solutions-carousel__carousel-track {
    gap: 16px;
  }

  .se-consultadoria-solutions-carousel__card {
    flex: 0 0 260px;
    padding: 24px 20px;
    min-height: 260px;
  }

  .se-consultadoria-solutions-carousel__card-title {
    font-size: 18px;
  }

  .se-consultadoria-solutions-carousel__card-list li {
    font-size: 13px;
  }
}

@media (max-width: 480px) {
  .se-consultadoria-solutions-carousel__title {
    font-size: 28px;
  }

  .se-consultadoria-solutions-carousel__description {
    font-size: 15px;
  }

  .se-consultadoria-solutions-carousel__card {
    flex: 0 0 240px;
    padding: 20px 16px;
  }
}

/*@DUAL-FICHEIRO:carousel-empresas.css@*/
.section-carrosel-empresas {
  max-width: 1500px;
  margin: 30px auto;
  text-align: center;
}

.section-carrosel-empresas-title {
    font-size: 50px;
    font-weight: 600;
    color: #1c1c1c;
    margin-bottom: 40px;
    line-height: 118%;
    letter-spacing: -0.32px;
}
.section-carrosel-empresas-container {
  position: relative;
  overflow: hidden;
  padding: 0 20px;
}

.section-carrosel-empresas-wrapper {
  display: flex;
  transition: transform 0.3s ease;
  gap: 20px;
}

.section-carrosel-empresas-card {
  flex: 0 0 auto;
  width: 220px;
  border-radius: 12px;
  padding: 30px 20px 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  min-height: 180px;
}

.section-carrosel-empresas-logo {
  height: 60px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  margin-bottom: 20px;
}

.section-carrosel-empresas-button {
    background-color: #9a2686;
    color: white;
    border: none;
    border-radius: 25px;
    /*padding: 8px 5px;
    font-size: 18px;*/
	font-size: 15px;
  padding: 10px 18px 10px 18px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    min-width: 120px;
    justify-content: center;
}

.section-carrosel-empresas-button:hover {
  background-color: #7d1f6b;
  transform: translateY(-1px);
	color:white;
}

.section-carrosel-empresas-button:hover::after {
  transform: translateX(3px);
}

/* Desktop layout */
@media (min-width: 1024px) {
  .section-carrosel-empresas-wrapper {
    justify-content: center;
    flex-wrap: nowrap;
  }

  .section-carrosel-empresas-card {
    width: 200px;
  }
}

/* Tablet layout */
@media (max-width: 1023px) and (min-width: 768px) {
  .section-carrosel-empresas-wrapper {
    justify-content: flex-start;
  }

  .section-carrosel-empresas-card {
    width: 200px;
  }
}

/* Mobile layout */
@media (max-width: 767px) {
  .section-carrosel-empresas-title {
    font-size: 2rem;
    margin-bottom: 30px;
  }

  .section-carrosel-empresas-container {
    padding: 0 10px;
  }

  .section-carrosel-empresas-card {
    width: 180px;
    padding: 25px 15px 20px;
    min-height: 160px;
  }

  .section-carrosel-empresas-logo {
    height: 50px;
    margin-bottom: 15px;
  }

  .section-carrosel-empresas-button {
    font-size: 13px;
    min-width: 110px;
    padding: auto;
  }
}

/* Very small screens */
@media (max-width: 480px) {
  .section-carrosel-empresas-title {
    font-size: 2.75rem;
  }

  .section-carrosel-empresas-card {
    width: 160px;
  }
}

/*@DUAL-FICHEIRO:consultadoria-complementary-section.css@*/
.section-solutions-consultadoria {
  background-color: #f2f2f2;
  padding: 80px 0;
}

.section-solutions-consultadoria__container {
  max-width: 1518px;
  margin: 0 auto;
  padding: 0 20px;
}

.section-solutions-consultadoria__content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
}

.section-solutions-consultadoria__left {
  padding-right: 20px;
}

.section-solutions-consultadoria__title {
    font-size: 50px;
    font-weight: 600;
    line-height: 120%;
    color: #1C1C1C;
    letter-spacing: -0.8px;
    margin-bottom: 40px;
    max-width: 500px;
}

.section-solutions-consultadoria__services {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.section-solutions-consultadoria__service-item {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 25px 0;
  border-bottom: 1px solid #9a2686;
}

.section-solutions-consultadoria__service-item:last-child {
  border-bottom: 1px solid #9a2686;
}

.section-solutions-consultadoria__service-content {
  flex: 1;
}

.section-solutions-consultadoria__service-title {
    font-family: 'Montserrat';
    font-size: 22px;
    font-weight: 600;
    color: #1c1c1c;
    margin-bottom: 8px;
}

.section-solutions-consultadoria__service-description {
  font-size: 0.95rem;
  color: #666;
  line-height: 1.5;
}

.section-solutions-consultadoria__service-icon {
  cursor: pointer;
}

.section-solutions-consultadoria__right {
  position: relative;
}

.section-solutions-consultadoria__images-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 20px;
  height: 100%;
}

.section-solutions-consultadoria__right {
  height: 100%;
  display: flex;
  align-items: stretch;
}

.section-solutions-consultadoria__image-large {
  grid-column: span 2;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.section-solutions-consultadoria__image-small {
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
}

.section-solutions-consultadoria__image-large img,
.section-solutions-consultadoria__image-small img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Responsive Design */
@media (max-width: 768px) {
  .section-solutions-consultadoria__content {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .section-solutions-consultadoria__images-grid {
    grid-template-columns: 1fr;
  }
  .section-solutions-consultadoria__title {
    font-size: 2.5rem;
    text-align: center;
  }
  .section-solutions-consultadoria__image-small {
   display: none;
  }

  .section-solutions-consultadoria__image-large {
    display: none;
  }
}

/*@DUAL-FICHEIRO:formulario.css@*/
  /* ------ Estrutura Forms ------ */
.form-wrapper {
  background: linear-gradient(180deg, #9a2686 0%, #353791 100%);
  border-radius: 40px 40px 0 0;
  padding: 80px 60px;
  /*max-width: 1518px; */
	width: 100%;
  margin: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  color: white;
  gap: 60px;
}

.form-wrapper-contacto {
	  background: linear-gradient(180deg, #9A2686 0%, #000000 100%);
  border-radius: 40px 40px 0 0;
  padding: 80px 60px;
  /*max-width: 1518px; */
	width: 100%;
  margin: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  color: white;
  gap: 60px;
	
}

  /* ------------------------------------ */

.form-left h2 {
 font-size: 70px;
  font-weight: 600;
  line-height: 80px;
  margin-bottom: 40px;
}

.form-left p {
font-size: 22px;
  line-height: 28px;
  margin-bottom: 20px;
  font-weight: 500;
  font-family: open sans;
	width: 495px;
}
.form-left {
    padding: 50px 50px 0 60px;
}

.form-left p:last-child {
  /*font-style: italic;
  font-size: 16px;
  opacity: 0.8;*/
}

form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

label {
  font-size: 14px;
  margin-bottom: 6px;
  color: white;
}

input,
select,
textarea {
  padding: 16px;
  border-radius: 8px;
  border: none;
  font-size: 16px;
  background-color: #fff;
  color: #333;
  width: 100%;
  box-shadow: inset 0 0 0 2px #ddd;
}

select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg fill='gray' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 18px;
  padding-right: 40px;
}

textarea {
  resize: vertical;
  min-height: 120px;
}

button {
  background: #fff;
  color: #9a2686;
  font-weight: 700;
  padding: 16px;
  font-size: 16px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  margin-top: 10px;

}



.button-form-contacto {
  background: #fff;
  color: #9a2686;
  font-weight: 700;
  padding: 16px;
  font-size: 16px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  margin-top: 10px;
  width: 30%;
}

.button-form-contacto-azul {
  background: #293992;
  color: white;
  font-weight: 600;
  padding: 16px;
  font-size: 20px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  margin-top: 10px;
  width: 30%;
  line-height: 24px;
}



button:hover {
  background: #f1f1f1;
}

@media (max-width: 1024px) {
  .form-wrapper {
    grid-template-columns: 1fr;
    padding: 60px 40px;
  }
	
 .form-wrapper-contacto {
    grid-template-columns: 1fr;
    padding: 60px 40px;
  }

  .form-left h2 {
    font-size: 36px;
  }
}

@media (max-width: 768px) {
  .form-wrapper {
    padding: 40px 20px;
    border-radius: 20px;
  }
	
  .form-wrapper-contacto {
    padding: 40px 20px;
    border-radius: 20px;
  }
	
	
  .form-left h2 {
    font-size: 28px;
	line-height: 120%;
  }

.form-left p {
        font-size: 16px;
        width: 100%;
        line-height: 22px;
        font-weight: 500;
    }
	
	.button-form-contacto {	
	width:100%;
  }
	
	.button-form-contacto-azul{	
	width:100%;
  }
	


/* A chaveta abaixo fecha o @media (max-width: 768px) aberto mais acima, e
   faltava desde sempre. Sozinho, o ficheiro funcionava: o browser fecha os
   blocos por si no fim de cada folha. Mas ao juntar as folhas num ficheiro
   so, as sete que vinham a seguir caiam todas dentro desse @media e deixavam
   de existir acima de 768px. Foi assim que a homepage apareceu partida em
   computador a 17/08/2026, e em telemovel nao, porque abaixo de 768px o CSS
   aplicava-se todo. (Dash Digital) */
}

/*@DUAL-FICHEIRO:assistencia-tecnica.css@*/
/* ATENCAO: aqui estava "html { scroll-behavior: smooth; }". Como este ficheiro e
   carregado em TODAS as paginas do site, essa regra partia todas as ancoras: a
   animacao do scroll suave era cancelada a meio pelo carregamento tardio das
   imagens e o visitante ficava onde estava. Medido a 15/08/2026: o botao "Peca
   Assistencia Tecnica Agora" descia 199px quando o formulario estava a 4076px.
   Substituido por scroll-margin-top, que da folga para o cabecalho fixo de 80px.
   Dash Digital, 15/08/2026. */
:target,
#formulario {
  scroll-margin-top: 100px;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Technical Support Section */
.technical-support-section {
  padding: 5rem 0;
  background: #1c1c1c;
  color: white;
}

.support-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
}

.support-image img {
  width: 100%;
  border-radius: 15px;
}

.support-text h2 {
    font-family: "Montserrat", sans-serif;
    font-size: 50px;
    font-weight: 600;
    max-width: 630px;
    margin-bottom: 1.5rem;
    line-height: normal;
    letter-spacing: -2.35px;
    color: #ffffff;
}

.support-text p {
    font-size: 22px;
    max-width: 630px;
    line-height: 150%;
    opacity: 70%;
    letter-spacing: -0.8px;
    color: #ffffff;
}

/* Services Section */
.services-section {
  padding: 5rem 2rem;
  background: #f2f2f2;
}

.services-header {
  text-align: center;
  margin-bottom: 4rem;
}

.services-header h2 {
    font-size: 50px;
    font-weight: 600;
    margin-bottom: 1rem;
    line-height: 118%;
    letter-spacing: -0.32px;
    color: #0d0e02;
}

.services-header p {
    font-size: 22px;
    color: #1c1c1c;
    line-height: 150%;
    max-width: 550px;
    letter-spacing: -0.8px;
    margin: 0 auto;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  gap: 2rem;
}

.service-card {
  background: #f7f0f8;
  padding: 2.5rem 2rem;
  border-radius: 25px;
  border: 2px solid #e1c4e8;
  text-align: left;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  box-shadow: none;
  transition: none;
}

.service-card:hover {
  transform: none;
}

.service-icon {
  margin: 0 0 1.5rem 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  flex-shrink: 0;
}

.service-icon svg {
  display: block;
  fill: white;
  margin: 0 auto;
}

.service-card h3 {
    font-size: 22px;
    font-weight: 600;
    line-height: 120%;
    letter-spacing: -0.32px;
    margin-bottom: 1rem;
    color: #1c1c1c;
    text-align: left;
}

.service-card p {
    color: #1c1c1c;
    line-height: 150%;
    font-weight: 500;
    max-width: none;
    text-align: left;
    font-size: 18px;
    letter-spacing: -0.8px;
    opacity: 70%;
}

/* Why Choose Section */
.why-choose-section-assistencia-tecnica {
  padding: 5rem 0;
  background: #f2f2f2;
}

.why-choose-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: flex-start;
}

.why-choose-text h2 {
    font-size: 50px;
    font-weight: 600;
    line-height: 120%;
    letter-spacing: -0.8px;
    max-width: 450px;
    margin-bottom: 2rem;
    color: #1c1c1c;
}

.benefits-list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.benefit-item {
  position: relative;
  border-bottom: 1px solid #9a2686;
}

.benefit-item h3 {
    font-family: 'Montserrat';
    font-size: 28px;
    line-height: 110%;
    font-weight: 600;
    letter-spacing: -0.16px;
    color: #1c1c1c;
    margin-bottom: 0.5rem;
}
.benefit-item p {
    font-family: 'Open Sans';
    font-size: 18px;
    letter-spacing: -0.8px;
    color: #1c1c1c;
    line-height: normal;
}

.why-choose-image img {
  width: 100%;
  border-radius: 15px;
}

/* Process Section */
.process-section {
  padding: 6rem 0;
  background-color: #f2f2f2;
}

.process-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 4rem;
  flex-wrap: wrap;
  gap: 1.5rem;
}

.process-header h2 {
    font-family: 'Montserrat';
    font-size: 50px;
    font-weight: 600;
    color: #1c1c1c;
    line-height: 120%;
    letter-spacing: -0.16px;
    flex-basis: 45%;
    margin: 0;
}
.process-header p {
    font-family: 'Open Sans';
    font-size: 20px;
    font-weight: 500;
    color: #1c1c1c;
    line-height: 150%;
    flex-basis: 45%;
    margin: 0;
    letter-spacing: -0.8px;
    padding-top: 0.5rem;
}
.process-steps {
  display: flex;
  border: 1px solid #c05aff;
  border-radius: 16px;
  overflow: hidden;
}

.process-step {
  background-color: #ffe5fb;
  padding: 2rem 2.5rem;
  flex: 1;
  border-right: 1px solid #c05aff;
  text-align: left;
}

.process-step:last-child {
  border-right: none;
}

.process-step h3 {
    font-size: 28px;
    font-weight: 700;
    color: #1c1c1c;
    line-height: 110%;
    letter-spacing: -0.16px;
    margin-top: 0;
    margin-bottom: 1rem;
}

.process-step p {
    font-size: 18px;
    color: #1c1c1c;
    line-height: normal;
    letter-spacing: -0.8px;
    margin-bottom: 0;
}

/* Equipment Section */
.equipment-section {
  background-color: #f2f2f2;
  padding: 4rem 0;
}

.container {
  max-width: 1500px;
  margin: 0 auto;
  padding: 0 1rem;
}

.equipment-section {
  padding: 4rem 1rem;
}

.equipment-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
}

.equipment-text h2 {
    color: #1c1c1c;
    font-size: 50px;
    font-weight: 600;
    line-height: 130%;
    letter-spacing: -0.16px;
    margin-bottom: 1rem;
}

.equipment-text p {
    color: #1c1c1c;
    font-size: 20px;
    line-height: 150%;
    letter-spacing: -0.8px;
    max-width: 500px;
    font-weight: 500;
}

.carousel-wrapper {
  position: relative;
  overflow: hidden;
}

.equipment-carousel {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  padding: 0 1rem;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.equipment-carousel::-webkit-scrollbar {
  display: none;
}

.equipment-card {
  flex: 0 0 300px;
  scroll-snap-align: center;
  background: #f7e6f3;
  border: 1px solid #9a2686;
  border-radius: 12px;
  padding: 1rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  text-align: left;
}

.equipment-card img {
  width: 100%;
  object-fit: contain;
  margin-bottom: 1rem;
}

.equipment-card h3 {
    font-size: 28px;
    line-height: 110%;
    font-weight: 600;
    letter-spacing: -0.16px;
    margin-bottom: 1rem;
}

.equipment-link {
    color: #1c1c1c;
    font-weight: 500;
    text-decoration: none;
    font-size: 18px;
    letter-spacing: -0.8px;
}

.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: linear-gradient(135deg, #9a2686, #5e0f4b);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  font-size: 1.2rem;
  z-index: 10;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  transition: background 0.2s;
}

#prev-arrow {
  left: -18px;
}

#next-arrow {
  right: -18px;
}

.carousel-arrow:hover {
  background: #7d1e6b;
}

/* Partnerships Section Support */
.partnerships-section {
  background: #f2f2f2;
  position: relative;
  z-index: 10;
}

.container {
  max-width: 1518px;
  margin: 0 auto;
  padding: 0 15px;
}

.partnerships-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: center;
}

.partnerships-text h2 {
  font-family: "Montserrat", sans-serif;
  font-size: 48px;
  font-weight: 700;
  margin-bottom: 1.5rem;
  color: #1c1c1c;
}

.partnerships-text p {
  font-family: "Open Sans", sans-serif;
  font-size: 20px;
  color: #1c1c1c;
  line-height: 1.6;
  margin-bottom: 2rem;
}

.partner-logos {
  display: flex;
  gap: 2rem;
  align-items: center;
}

.partner-logo-img {
  height: 40px;
  width: auto;
  filter: grayscale(100%);
  opacity: 0.7;
  transition: filter 0.3s ease, opacity 0.3s ease;
}

.partner-logo-img:hover {
  filter: grayscale(0%);
  opacity: 1;
}

.partnerships-images {
  display: flex;
  justify-content: center;
  align-items: center;
}

.partnerships-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 15px;
  object-fit: cover;
}

.mobile-image {
  display: none;
}

/* Final CTA Section */
.final-cta-section {
  padding: 5rem 0;
  background: #f2f2f2;
}

.final-cta-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  align-items: center;
}

.final-cta-text h2 {
    font-size: 50px;
    font-weight: 600;
    margin-bottom: 1.5rem;
    color: #1c1c1c;
    line-height: 120%;
    letter-spacing: -0.16px;
}

.final-cta-text p {
    color: #1c1c1c;
    line-height: 150%;
    font-weight: 500;
    margin-bottom: 2rem;
    font-size: 20px;
    letter-spacing: -0.8px;
    opacity: 100%;
}

.final-cta-buttons {
  display: flex;
  gap: 1rem;
  flex-wrap: nowrap;
}

.btn-primary-support {
  background: #293992;
  color: white;
  border: none;
  border-radius: 25px;
  padding: 0.5rem;
  gap: 0.5rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 14px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.btn-primary-support:hover {
  background: #1f2a70;
  transform: translateY(-2px);
}

.btn-secondary-outline {
  background: transparent;
  color: #1c1c1c;
  border: 2px solid #1c1c1c;
  border-radius: 25px;
  padding: 0.5rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 14px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.btn-secondary-outline:hover {
  background: #1c1c1c;
  color: white;
}

/* Responsive Design */
@media (max-width: 768px) {
  /* Process Section Mobile */
  .process-section {
    padding: 4rem 0;
  }

  .process-header {
    flex-direction: column;
    text-align: center;
    margin-bottom: 2rem;
  }

  .process-header h2 {
    font-size: 2rem;
    flex-basis: 100%;
    margin-bottom: 1rem;
  }

  .process-header p {
    font-size: 0.95rem;
    flex-basis: 100%;
    padding-top: 0;
  }

  .process-steps {
    flex-direction: column;
    border: none;
  }

  .process-step {
    border-right: none;
    border-bottom: 1px solid #c05aff;
    border-radius: 12px;
    margin-bottom: 1rem;
    border: 1px solid #c05aff;
  }

  .process-step:last-child {
    border-bottom: 1px solid #c05aff;
    margin-bottom: 0;
  }

  /* Equipment Section Mobile */
  .equipment-section {
    padding: 3rem 0;
  }

  .equipment-text h2 {
    font-size: 1.8rem;
  }

  .equipment-card {
    flex: 0 0 90%;
  }
  .equipment-link {
    display: none;
  }
  /* Services Section Mobile */
  .services-section {
    padding: 4rem 1rem;
  }

  .services-header h2 {
    font-size: 2rem;
  }

  .service-card {
    padding: 2rem 1.5rem;
    flex: 0 0 90%; /* Make card take up 90% of the container width */
    scroll-snap-align: center; /* Snap to center */
  }

  /* Sections */
  .support-content,
  .why-choose-content,
  .contact-content,
  .equipment-content,
  .final-cta-content {
    grid-template-columns: 1fr;
    gap: 2rem;
    text-align: center;
  }
  .final-cta-image img {
    width: 100%;
    max-width: 400px; /* Limit image size on mobile */
    margin: 0 auto;
    border-radius: 15px;
  }

  .final-cta-buttons {
    justify-content: center;
  }

  .services-grid {
    display: flex; /* Change from grid to flex */
    overflow-x: auto; /* Allow horizontal scrolling */
    scroll-snap-type: x mandatory; /* Enable scroll snapping */
    gap: 1rem; /* Adjust gap between cards */
    padding-bottom: 1rem; /* Add some padding at the bottom */
    scrollbar-width: none; /* Hide scrollbar for Firefox */
    -ms-overflow-style: none; /* Hide scrollbar for IE/Edge */
  }

  .services-grid::-webkit-scrollbar {
    display: none; /* Hide scrollbar for Chrome, Safari, and Opera */
  }

  .equipment-carousel {
    flex-direction: row;
    overflow-x: auto;
  }

  .equipment-card {
    min-width: auto;
    flex: 0 0 90%;
  }
}

@media (max-width: 480px) {
  .container {
    padding: 0 15px;
  }

  .header-container {
    padding: 10px 15px;
  }

  .hero-content-support h1 {
    font-size: 1.75rem;
  }

  .hero-content-support p {
    font-size: 1rem;
  }

  /* Process Section Extra Small */
  .process-section {
    padding: 3rem 0;
  }

  .process-header h2 {
    font-size: 1.75rem;
  }

  .process-step {
    padding: 1.5rem 1rem;
  }

  .process-step h3 {
    font-size: 1.1rem;
  }

  .process-step p {
    font-size: 0.9rem;
  }

  /* Equipment Section Extra Small */
  .equipment-text h2 {
    font-size: 1.5rem;
  }

  .equipment-text p {
    font-size: 1rem;
  }

  .equipment-card {
    flex: 0 0 95%;
    padding: 1.25rem;
  }

  .equipment-card h3 {
    font-size: 1rem;
    min-height: 35px;
  }

  /* Services Section Extra Small */
  .services-header h2 {
    font-size: 1.75rem;
  }

  .service-card {
    padding: 1.5rem 1rem;
    flex: 0 0 95%; /* Adjust card width for extra small screens */
  }

  .service-card h3 {
    font-size: 1.1rem;
  }

  .service-card p {
    font-size: 0.95rem;
  }

  /* Why Choose Section Extra Small */
  .why-choose-text h2 {
    font-size: 1.75rem;
  }

  .benefit-item h3 {
    font-size: 1rem;
  }

  .benefit-item p {
    font-size: 0.9rem;
  }

  /* Partnerships Section Extra Small */
  .partnerships-content {
    display: flex;
    flex-direction: column;
  }

  .desktop-image {
    display: none;
  }

  .mobile-image {
    display: block;
    width: 100%;
    margin: 1.5rem 0;
    order: 2;
  }

  .partnerships-text {
    order: 1;
    width: 100%;
  }

  .partnerships-text h2 {
    font-size: 40px;
    text-align: center;
    margin-bottom: 1.5rem;
  }

  .partnerships-text p {
    font-size: 22px;
    text-align: center;
    margin-top: 3rem;
    margin-bottom: 3rem;
    order: 3;
    line-height: 1.4;
  }

  .partner-logos {
    order: 4;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 1.5rem;
    margin-top: 1.5rem;
  }

  /* Final CTA Section Extra Small */
  .final-cta-text h2 {
    font-size: 1.75rem;
  }

  .final-cta-text p {
    font-size: 1rem;
  }

  .final-cta-buttons {
    flex-direction: column;
    align-items: stretch;
  }

  .btn-primary-support,
  .btn-secondary-outline {
    padding: 0.8rem 1.5rem;
    font-size: 0.9rem;
  }

  .mobile-nav-header,
  .mobile-nav {
    padding: 15px;
  }
}
@media (min-width: 992px) {
  .container {
    padding: 0 1.5rem;
  }

  .equipment-content {
    grid-template-columns: 350px 1fr;
    gap: 4rem;
    align-items: center;
  }

  .equipment-text {
    text-align: left;
  }

  .equipment-carousel {
    margin: 0;
    padding: 0;
    scroll-snap-type: none;
  }

  .equipment-card {
    flex-basis: calc((100% / 3) - 1rem);
    min-width: 400px;
  }
  .equipment-card img {
    min-height: 300px;
    max-width: 100%;
  }

  /* Show the arrows on desktop */
  .carousel-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    background-color: white;
    border: 1px solid #ddd;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    font-size: 24px;
    font-weight: bold;
    color: #333;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transition: all 0.2s ease;
  }
  .carousel-arrow:hover {
    background-color: #8b5cf6;
    color: white;
    border-color: #8b5cf6;
  }
  #prev-arrow {
    left: -22px;
  }
  #next-arrow {
    right: -22px;
  }
  .partnerships-content {
    display: flex;
    flex-direction: column;
  }

  .desktop-image {
    display: none;
  }

  .mobile-image {
    display: block;
    width: 100%;
    margin: 1.5rem 0;
    order: 2;
  }

  .partnerships-text {
    order: 1;
    width: 100%;
  }

  .partnerships-text h2 {
    font-size: 40px;
    text-align: center;
    margin-bottom: 1.5rem;
  }

  .partnerships-text p {
    font-size: 22px;
    text-align: center;
    margin-top: 3rem;
    margin-bottom: 3rem;
    order: 3;
    line-height: 1.4;
  }

  .partner-logos {
    order: 4;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 1.5rem;
    margin-top: 1.5rem;
  }
}
/* Additional responsive adjustments */
@media (max-width: 1024px) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .process-steps {
    grid-template-columns: repeat(2, 1fr);
  }

  .process-header h2 {
    font-size: 2.2rem;
  }

  .equipment-text h2 {
    font-size: 1.8rem;
    text-align: center;
  }

  .equipment-card {
    flex: 0 0 45%;
    min-width: 300px;
  }

  .why-choose-text h2 {
    font-size: 1.8rem;
  }
  .final-cta-text h2 {
    font-size: 2rem;
  }
}

/* Tablet specific breakpoint */
@media (max-width: 992px) and (min-width: 769px) {
  .process-header {
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }

  .process-header h2 {
    flex-basis: 100%;
    margin-bottom: 1rem;
  }

  .process-header p {
    flex-basis: 100%;
    max-width: 600px;
    margin: 0 auto;
  }

  .process-steps {
    flex-direction: column;
    border: none;
  }

  .process-step {
    border-right: none;
    border-bottom: 1px solid #c05aff;
    border-radius: 12px;
    margin-bottom: 1rem;
    border: 1px solid #c05aff;
  }

  .process-step:last-child {
    border-bottom: 1px solid #c05aff;
    margin-bottom: 0;
  }

  .equipment-card {
    flex: 0 0 calc(50% - 0.5rem);
  }
  .final-cta-content {
    grid-template-columns: 1fr;
    gap: 2rem;
    text-align: center;
  }
  .final-cta-image img {
    width: 100%;
    max-width: 400px; /* Limit image size on mobile */
    margin: 0 auto;
    border-radius: 15px;
  }

  .final-cta-buttons {
    justify-content: center;
  }
}
@media (min-width: 1024px) {
  .equipment-content {
    grid-template-columns: 1fr 2fr;
  }

  .equipment-text {
    text-align: left;
  }
}

/* --- HERO SECTION STYLES --- */
#dualinfor-page.dualinfor-site {
  background-color: #2a1a4c;
  background-image: url(../img/img-assistenciatecnica/header2.png), url("../img/img-assistenciatecnica/header.png");
  background-size: cover;
  background-position: center;
  position: relative;
  overflow-x: clip;
	margin-top: -5%;
  height: 718px;
}
.dualinfor-hero-section {
  color: #fff;
  text-align: center;
  padding: 5rem 1.5rem 6rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: calc(90vh - var(--dualinfor-header-height));
}

.dualinfor-hero-title {
    font-size: 50px;
    font-weight: 600;
    margin: 0;
    line-height: normal;
    letter-spacing: -2.35px;
}
.dualinfor-hero-subtitle {
    font-size: 50px;
    font-weight: 600;
    display: block;
    margin-top: 0.25rem;
    line-height: normal;
    letter-spacing: -2.35px;
}

.dualinfor-hero-description {
    font-size: 22px;
    line-height: 143%;
    max-width: 650px;
    margin: 1.5rem auto 2.5rem;
    opacity: 70%;
    letter-spacing: -0.16px;
    font-weight: 600;
}

.dualinfor-hero-buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.dualinfor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 5px;
  border-radius: 50px;
  font-weight: 600;
  font-size: 14px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border: 1px solid transparent;
  cursor: pointer;
}

.dualinfor-button-primary {
  background-color: #fff;
  color: #583391;
  padding-right: 18px;
  font-size: 14px;
}

.dualinfor-button-primary:hover {
  background-color: #f1f1f1;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.dualinfor-button-icon-wrapper {
  background-color: #9a2686;
  color: #fff;
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-left: 16px;
  font-size: 14px;
}

.dualinfor-button-secondary {
  background-color: transparent;
  color: #fff;
  border-color: #fff;
}

.dualinfor-button-secondary:hover {
  background-color: #fff;
  color: #583391;
}

@media (max-width: 768px) {
  .dualinfor-hero-section {
    padding: 3rem 1rem 4rem;
  }

  .dualinfor-hero-title {
    font-size: 1.75rem;
  }

  .dualinfor-hero-subtitle {
    font-size: 2.25rem;
  }

  .dualinfor-hero-description {
    font-size: 1rem;
  }

  .dualinfor-hero-buttons {
    flex-direction: column;
    gap: 1rem;
  }

  .dualinfor-button {
    width: 100%;
    max-width: 300px;
  }
}

/*@DUAL-FICHEIRO:produtos.css@*/
.container {
  max-width: 1518px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Unibind Hero Section */
.unibind-hero {
  padding: 5rem 2rem;
}

.unibind-container {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 3rem;
  max-width: 1280px;
  margin: 0 auto;
  align-items: center;
}

.unibind-left-column {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  height: 100%;
}

.text-content {
  flex-grow: 1;
}

.text-content h1 {
    font-family: 'Montserrat', sans-serif;
    font-size: 50px;
    font-weight: 600;
    letter-spacing: -2.35px;
}
.text-content h2 {
  font-family: 'Montserrat', sans-serif;
  font-size: 2rem;
  font-weight: 500;
  line-height: normal;
  color: #1c1c1c;
  margin-bottom: 0.5rem;
} 

.text-content p {
    font-family: 'Open Sans', sans-serif;
    font-size: 22px;
    line-height: 150%;
    letter-spacing: -0.16px;
    color: #1c1c1c;
    max-width: 90%;
    margin-bottom: 2.5rem;
}

.button-group {
  display: flex;
  flex-wrap: nowrap;
  gap: 1rem;
}

.btn {
    padding: 0.8rem 1.8rem;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
    transition: all 0.3s ease;
    display: inline-flex
;
    align-items: center;
    justify-content: center;
}

.btn-primary-produtos {
  background-color: #9a2686;
  color: white;
  border: 2px solid #9a2686;
}

.btn-primary-produtos:hover {
  background-color: #9a2686;
  transform: translateY(-2px);
}

.btn-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  background-color: white;
  color: #9a2686;
  border-radius: 50%;
  margin-left: 12px;
  font-weight: bold;
  font-size: 0.9rem;
}

.btn-secondary-produtos {
  background-color: transparent;
  color: #9a2686;
  border: 2px solid #9a2686 ! important;
}

.btn-secondary-produtos:hover {
  background-color: #9a2686;
  color: white;
}

.image-bottom-left {
  width: 100%;
}

.image-bottom-left img {
  width: 100%;
  height: auto;
  border-radius: 20px;
  object-fit: cover;
  display: block;
}

.unibind-right-column {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.main-image {
  width: 100%;
  height: auto;
  border-radius: 20px;
  object-fit: cover;
}

.overlay-card {
  position: absolute;
  bottom: -2rem;
  right: 0;
  width: 90%;
  max-width: 380px;
  padding: 1.5rem;
  background-color: rgba(225, 225, 229, 0.6);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.overlay-card h2 {
    font-family: 'Montserrat';
    font-size: 22px;
    line-height: 28px;
    font-weight: 700;
    margin-bottom: 1.5rem;
}

.card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.card-footer p {
    font-family: 'Open Sans';
    font-size: 20px;
    line-height: 145.1%;
    color: #1c1c1c;
}

.icon-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, #a3409a, #6c4297);
  color: white;
  text-decoration: none;
  transition: transform 0.3s ease;
  flex-shrink: 0;
}

.icon-button:hover {
  transform: scale(1.1);
}

/* Professional Identity Section */
.professional-identity {
  padding: 5rem 0;
}

.professional-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.25rem;
}

.professional-content h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: 50px;
    font-weight: 600;
    color: #1c1c1c;
    line-height: 118%;
    letter-spacing: -0.16px;
    max-width: 1300px;
}

.professional-content p {
    font-family: 'open sans', sans-serif;
    font-size: 22px;
    color: #1c1c1c;
    line-height: 150%;
    letter-spacing: -0.16px;
    margin-bottom: 1.5rem;
    max-width: 1080px;
}

.professional-image-showcase {
  width: 100%;
  height: auto;
  border-radius: 20px;
  overflow: hidden;
}

.professional-image-showcase img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 20px;
  object-fit: cover;
  padding: 0 250px;
}

/* Business Solutions Section */
.business-solutions {
  padding: 5rem 0;
}

.business-header {
  margin-bottom: 4rem;
  max-width: 1000px;
}
.business-header h2 {
    font-size: 50px;
    font-weight: 600;
    line-height: 120%;
    letter-spacing: -0.16px;
    margin-bottom: 0.5rem;
    color: #1c1c1c;
}

.business-header p {
    font-family: 'open sans', sans-serif;
    font-size: 20px;
    font-weight: 500;
    color: #1c1c1c;
    line-height: 150%;
}

.business-main-content {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 3rem;
  align-items: center;
}

.business-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 24px;
}

.business-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

.business-card {
  background: #ffffff;
  padding: 2rem;
  border-radius: 16px;
  border: 1px solid #eaeaea;
  text-align: left;
  transition: transform 0.3s, box-shadow 0.3s;
  border-color: #C05AFF;
}

.business-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.07);
}

.business-icon {
  margin-bottom: 1.5rem;
}

.business-icon svg {
  width: 40px;
  height: 40px;
}

.business-card h3 {
    font-size: 32px;
    font-weight: 700;
    line-height: 110%;
    letter-spacing: -0.8px;
    margin-top: 0;
    margin-bottom: 0.75rem;
    color: #1c1c1c;
}
.business-card p {
    font-size: 20px;
    font-weight: 500;
    line-height: normal;
    letter-spacing: -0.8px;
    margin-top: 0;
    margin-bottom: 0.75rem;
    color: #1c1c1c;
}
/* Responsive Design */
@media (max-width: 768px) {
  .professional-identity {
    /* Reduce padding on smaller screens */
    padding: 3rem 0;
  }

  .professional-content {
    /* Apply the background image and gradient to the container */
    background-image: url("../img/img-produtos/cadernizacao.png");
    background-size: cover;
    background-position: center;

    /* Make it look like a card */
    border-radius: 20px;
    padding: 3rem 1.5rem;
    min-height: 400px;

    /* Vertically center the text */
    justify-content: center;
  }

  /* Change text color to white to be readable */
  .professional-content h2,
  .professional-content p {
    color: #ffffff;
    margin-bottom: 1rem;
  }

  /* Optional: slightly smaller heading on mobile */
  .professional-content h2 {
    font-size: 1.75rem;
  }

  /* Hide the original image container on mobile, as it's no longer needed */
  .professional-image-showcase {
    display: none;
  }

  .image-bottom-left {
    display: none; /* Hide the image on smaller screens */
  }

  .card-footer {
    display: none;
  }

  /* Unibind Hero */
  .unibind-hero {
    padding: 4rem 1rem;
  }

  .unibind-container {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .unibind-left-column {
    order: 1; /* Text content comes first */
    text-align: center;
  }
  .unibind-right-column {
    order: 2; /* Image content comes second */
  }

  .text-content p {
    max-width: 100%;
  }

  .button-group {
    justify-content: center; /* Center buttons horizontally */
  }

  .overlay-card {
    position: absolute;
    bottom: -90px;
    left: 50%;
    transform: translateX(-50%);
    width: 65%;
    max-width: 420px;
  }
 .overlay-card h2 {
    font-size: 1.1rem;
    color: #9a2686;
  }
  .text-content h1 {
    font-size: 3rem;
  }

  .business-main-content {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .business-header h2 {
    font-size: 2rem;
  }

  .business-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .container {
    padding: 0 15px;
  }

  .unibind-hero {
    padding: 3rem 1rem;
  }

  .text-content h1,h2 {
    font-size: 2rem;
    font-weight: 700;
  }
  .text-content p {
    font-size: 1rem;
  }

  .button-group {
    flex-direction: column;
    align-items: stretch;
  }

  .btn {
    padding: 0.75rem 1.5rem;
    font-size: 0.875rem;
    text-align: center;
  }

  .business-solutions {
    padding: 4rem 0;
  }
}

/*@DUAL-FICHEIRO:home.css@*/
/* Fix global - evita overflow em toda a página */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}

.container {
  max-width: 1518px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Hero Section */
.hero {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #ffffff;
  padding: 8rem 0 4rem;
  margin-top: 0;
  min-height: 80vh;
  align-items: center;
	  position: relative; 
}
.hero::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 350px;
  background: linear-gradient(to bottom, transparent 0%, #1a237e 100%);
  pointer-events: none;
  z-index: 2;
}

.hero-content-home {
  position: relative;
  z-index: 3;
}

.hero-content-home {
  display: flex;
  justify-content: flex-start; 
  align-items: center;
	min-height: 71vh;

}

.hero-text {
  max-width: 814px;
 /* padding-right: 2rem; */
}

.hero h1 {
    font-family: "Montserrat", sans-serif;
    color: #ffffff;
    font-size: 50px;
    font-weight: 600;
    line-height: 120%;
	letter-spacing: -0.8px;
    margin-bottom: 1.5rem;
}

.hero p {
    font-family: "Open Sans", sans-serif;
    color: #ffffff;
    font-size: 22px;
    opacity: 70%;
    margin-bottom: 2rem;
    letter-spacing: -0.16px;
    line-height: 120%;
	padding-right: 7rem;
}
.hero-buttons {
  display: flex;
  gap: 1rem;
}

.btn-primary-home {
  background: white;
  color: #9a2686;
  padding: 0.9rem;
  border: none;
  border-radius: 30px;
  font-weight: 700;
  font-size: 16px;
  justify-content: center;
  text-align: center;
  align-items: center;
  cursor: pointer;
  transition: all 0.3s;
  display: inline-flex;
  gap: 0.5rem;
}

.btn-primary-home:hover {
  background: white;
  color: #9a2686;
  transform: translateY(-2px);
}

.btn-secondary-home {
  background: transparent;
  color: white !important;
  padding: 0.9rem 1.9rem 0.9rem 1.9rem;
  border: 1px solid white;
  border-radius: 30px;
 font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  transition: all 0.3s;
}

.btn-secondary-home:hover {
  background: rgba(255, 255, 255, 0.3);
}

.hero-image img {
  width: 100%;
  border-radius: 15px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

/* Solutions Intro with Video 
.solutions-intro {
  background: linear-gradient(to bottom, #293992 60%, #1d1d22 80%);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: white;
  padding: 4rem 0;
  text-align: center;
}*/

.solutions-intro {
  background: linear-gradient(177deg, #1a237e 44%, #7b1fa2 100%);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: white;
  padding: 0em 0rem 4em 0em;
  text-align: center;
  margin-top: -2px; /* ← ADICIONAR ISTO */
}
.solutions-content-home {
  margin-bottom: 3rem;
}

.solutions-intro h2 {
    font-size: 50px;
    font-weight: 600;
    font-family: "Montserrat", sans-serif;
    margin-bottom: 1.5rem;
    line-height: 120%;
}

.solutions-intro p {
    font-size: 22px;
    font-family: "Open Sans", sans-serif;
    color: #ffffff;
    opacity: 70%;
    font-weight: 500;
    line-height: 150%;
    margin-bottom: 2rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}
.solutions-buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
  margin-bottom: 0;
}

/* Video Container within Solutions Section */
.solutions-intro .video-container {
  position: relative;
  background: #000;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 900px;
  margin: 0 auto;
}

.video-placeholder {
  position: relative;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
}
.video-placeholder img {
  width: 100%;
  height: 100%;
}
/* Remove the separate video section */
.video-section {
  display: none;
}



.video-container {
    position: relative;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 16px;
}

.video-container iframe {
    width: 100%;
    height: 100%;
    display: block;
}


/* Solutions Grid Section */
.solutions-grid-section {
  padding: 4rem 0 6rem;
  background: #f2f2f2;
}

.section-header-home {
  display: flex;
  flex-wrap: nowrap;
  gap: 4rem;
  align-items: flex-start;
  text-align: left;
  margin-bottom: 3rem;
  max-width: 1518px;
  margin-left: auto;
  margin-right: auto;
}

.section-tag {
    color: #9a2686;
    padding: 0.5rem 1.25rem;
    border-radius: 25px;
    font-size: 18px;
    font-weight: 700;
    line-height: 160%;
    display: inline-block;
    margin-bottom: 1.5rem;
    letter-spacing: -0.16px;
}

.section-header-home h2 {
    font-family: "Montserrat", sans-serif;
    font-size: 50px;
    font-weight: 600;
    margin-bottom: 1rem;
    color: #1f2937;
    line-height: 120%;
    opacity: 100%;
    letter-spacing: -0.8px;
    max-width: 600px;
}

.section-header-home p {
    font-family: 'Open Sans', sans-serif;
    font-size: 20px;
    font-weight: 400;
    opacity: 100%;
    color: #1C1C1C;
    max-width: 600px;
    line-height: 150%;
    letter-spacing: -0.16px;
    margin-top: 50px;
}
.solutions-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1518px;
  margin: 0 auto;
}

.solution-card {
  background: #fdf2f8;
  border: 1px solid #9a2686;
  border-radius: 20px;
  overflow: hidden;
  transition: all 0.3s ease;
  padding: 0;
  position: relative;
}

.solution-image {
  height: 180px;
  overflow: hidden;
  margin: 1rem 1rem 0 1rem;
  border-radius: 12px;
  background: #f3f4f6;
}

.solution-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.solution-content {
  padding: 1.25rem 1.5rem 1.75rem;
}

.solution-content h3 {
  font-family: 'Montserrat';
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: #1c1c1c;
    line-height: 110%;
    letter-spacing: -0.32px;
    opacity: 100%;
}

.solution-content p {
  color: #4b5563;
  margin-bottom: 1.25rem;
  line-height: 1.5;
  font-size: 0.9rem;
}

.solution-link {
    color: #1C1C1C;
    text-decoration: none;
    font-weight: 500;
    font-size: 18px;
    letter-spacing: -0.8px;
    display: inline-flex
;
    align-items: center;
    gap: 0.5rem;
    opacity: 100%;
    transition: all 0.3s 
ease;
}

.solution-link:hover {
  color: #9a2686;
}

.solution-link::after {
  content: "›";
  font-size: 1.2rem;
  transition: transform 0.3s ease;
}

.solution-link:hover::after {
  transform: translateX(3px);
}

/* CTA Card Styling */
.cta-card {
  background: transparent;
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  text-align: left;
  position: relative;
  overflow: hidden;
  grid-column: span 2;
  min-height: 280px;
  border: 2px solid #e879f9;
  border-radius: 20px;
}

.cta-card .solution-image {
  height: 100%;
  margin: 0;
  border-radius: 18px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}

.cta-card .solution-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 18px;
}

.cta-content {
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.cta-arrow {
  width: 60px;
  height: 60px;
  background: rgba(255, 255, 255, 0.2);
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  flex-shrink: 0;
}

.cta-arrow:hover {
  background: rgba(255, 255, 255, 0.3);
  border-color: rgba(255, 255, 255, 0.5);
  transform: scale(1.05);
}

.cta-arrow svg {
  width: 24px;
  height: 24px;
  color: white;
}

.cta-content .btn-primary-home {
  display: none;
}

/* Companies Section */
.companies-section {
  padding: 5rem 0;
  background: #f2f2f2;
}

.companies-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.companies-left h3 {
    font-family: 'Montserrat', sans-serif;
    font-size: 45px;
    font-weight: 600;
    margin-bottom: 2rem;
    color: #0D0E02;
    line-height: 118%;
    letter-spacing: -0.8px;
}

.company-logos {
  display: flex;
  align-items: center;
}

.company-logos img {
  width: 100%;
  max-width: 600px;
  height: auto;
}

.company-logo-link,
.handshake-link {
  display: inline-block;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.company-logo-link:hover,
.handshake-link:hover {
  transform: translateY(-2px);
  opacity: 0.9;
}

.company-logo-link img,
.handshake-link img {
  transition: transform 0.3s ease;
}

.company-logo-link:hover img,
.handshake-link:hover img {
  transform: scale(1.02);
}

.companies-right img {
  width: 100%;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

/* Remove old company logo styles */
.company-logo,
.company-logo-circle {
  display: none;
}

/* Partners Section */
.partners-section {
  background: #f2f2f2;
}

.partners-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.partners-left img {
  width: 113%;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.building-link {
  display: inline-block;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.building-link img {
  transition: transform 0.3s ease;
}

.partners-right h3 {
    font-family: 'Montserrat', sans-serif;
    font-size: 45px;
    font-weight: 600;
    margin-bottom: 2rem;
    color: #0D0E02;
    line-height: 118%;
    letter-spacing: -0.8px;
}

.partner-logos-grid {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.partner-row {
  display: flex;
  gap: 2rem;
  align-items: center;
  justify-content: flex-start;
}

.partner-logo-link {
  display: inline-block;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.partner-logo-link:hover {
  transform: translateY(-2px);
  opacity: 0.9;
}

.partner-logo-link img {
  max-width: 200px;
  object-fit: contain;
  border-radius: 12px;
  transition: all 0.3s ease;
}

/* Stats Section */
* { box-sizing: border-box; }

/* Stats Section - estilos principais */
.section-statistics {
  padding: 80px 0;
  background-color: #f2f2f2;
  overflow-x: hidden; 
}

.section-container {
  max-width: 1518px;
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
}

/* Layout: grid para desktop, áreas nomeadas para reordenar facilmente */
.section-content-wrapper-home {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  grid-template-areas: "cards text"; 
  min-width: 0; 
}

/* Áreas */
.section-cards-container { grid-area: cards; min-width: 0; }
.section-text-content   { grid-area: text;  min-width: 0; }

.section-cards-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}

/* Cards principais */
.section-card-home {
  padding: 30px 25px;
  border-radius: 15px;
  color: #ffffff;
  text-align: center;
  font-weight: 600;
  min-width: 0; 
}

/* cores originais */
.section-card-blue   { background-color: #293992; }
.section-card-purple { background-color: #9A2686; }

/* Número e texto dentro do card */
.section-card-number {
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: 8px;
  display: block;
}

.section-card-text {
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 1.3;
  text-transform: none;
}

/* Row das logos ISO - ocupa as 2 colunas do grid acima */
.section-iso-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  grid-column: 1 / -1;
  margin-top: 8px;
}

/* Cada cartão ISO */
.section-iso-card {
  background-color: #9A2686;
  padding: 25px 15px;
  border-radius: 15px;
  color: white;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 80px;
}

/* Estilo da imagem da ISO: círculo branco com logo centralizada */
.section-iso-card img {
  width: 100px;
  height: 100px;
  object-fit: contain;
  border-radius: 50%;
  display: block;
  padding: 8px;
}

/* Títulos / texto / botão mantidos */
.section-main-title {
  font-size: 2.8rem;
  font-weight: 700;
  color: #2c2c2c;
  margin-bottom: 1.5rem;
  line-height: 1.2;
}



/*   Menu Toggle */
/* ── Menu Toggle (Hambúrguer) ── */
.menu-toggle {
  display: none; /* só aparece em mobile */
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 4px;
  z-index: 1001;
  position: relative;
}

.menu-toggle__line {
  display: block;
  width: 24px;
  height: 2px;
  background-color: #ffffff; /* branco por defeito (sobre hero) */
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
  transform-origin: center;
}

/* Quando o header scrollou (fundo claro) → linhas escuras */
.site-header.is-scrolled .menu-toggle__line {
  background-color: #1c1c1c;
}

/* Quando o menu está aberto → X preto */
.menu-toggle.is-active .menu-toggle__line {
  background-color: #1c1c1c;
}

/* Animação para formar o X */
.menu-toggle.is-active .menu-toggle__line:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.menu-toggle.is-active .menu-toggle__line:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.menu-toggle.is-active .menu-toggle__line:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}





.btn-stats {
  background: #293992;
  color: #ffffff;
  padding: 0.875rem 2rem;
  border: none;
  border-radius: 25px;
  font-weight: 600 !important;
  font-size: 20px !important;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 0.9rem;
}

.btn-stats:hover {
  background: #5567c7!important;
  transform: translateY(-1px);
	color: white !important;
}

/* Segurança contra textos muito longos que podem forçar largura */
.section-card-home, .section-text-content, .section-iso-card {
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Responsive adjustments for stats */
@media (max-width: 768px) {
  .stats-left {
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
  }
  .stats-right {
    padding-left: 0;
    text-align: center;
  }
  .stats-right h3 {
    font-size: 1.75rem;
  }
  .companies-left h3 {
    font-size: 2.5rem;
    text-align: center;
  }
  .partners-right {
    max-width: 87%;
  }
  .partners-left img {
    width: 100% !important;
  }
  .container,
  .section-container {
    max-width: 100%;
    overflow-x: hidden;
  }
  .partners-content,
  .companies-content {
    grid-template-columns: 1fr !important;
    gap: 2rem;
  }
  .partners-section,
  .companies-section,
  .solutions-grid-section,
  .section-statistics {
    overflow-x: hidden;
  }
  .section-header-home {
    max-width: 100%;
    flex-direction: column;
    gap: 1rem;
  }
  .section-header-home h2,
  .section-header-home p {
    max-width: 100%;
  }

  /* Logos parceiros — fix overflow */
  .partner-logos-grid {
    display: flex !important;
    flex-direction: column !important;
    overflow-x: visible !important;
    gap: 1.5rem;
  }
  .partner-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
	align-items: center !important;    /* ← adiciona isto */
    gap: 1rem;
  }
  .partner-logo-link img {
    max-width: 130px !important;
    max-height: 60px !important;
    object-fit: contain;
  }
	 .section-iso-cards {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

  .section-iso-card {
    padding: 18px 8px;
    min-height: 64px;
  }

  .section-iso-card img {
    width: 70px;
    height: 70px;
    padding: 6px;
  }
	
}

@media (max-width: 480px) {
  .stats-top-row {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .iso-certifications {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
  }

  .iso-badge {
    min-height: 80px;
    padding: 1.25rem 0.75rem;
  }

  .iso-image {
    width: 60px;
    height: 60px;
    object-fit: contain;
    filter: brightness(0) invert(1);
  }

  .iso-full-image {
    max-width: 300px;
  }
	.partners-right{
		max-width: 87%;
	}
}

/* Blog Section */
.blog-section {
  padding: 5rem 0;
  background: #f2f2f2;
}

.blog-header {
  display: flex;
  align-items: flex-start;
  text-align: left;
  gap: 3rem;
  margin-bottom: 4rem;
  max-width: 1518px;
  margin-left: auto;
  margin-right: auto;
}

.blog-header h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: 50px;
    font-weight: 600;
    line-height: 120%;
    margin-bottom: 1rem;
    color: #333;
    max-width: 600px;
}

.blog-header p {
    font-family: 'Open Sans', sans-serif;
    font-size: 22px;
    margin-top: 30px;
    color: #1E1E1E;
    max-width: 600px;
    line-height: normal;
    opacity: 100%;
}
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-bottom: 3rem;
  max-width: 1518px;
  margin-left: auto;
  margin-right: auto;
}

.blog-card {
  background: white;
  border: 1px solid #9a2686;
  border-radius: 20px;
  overflow: hidden;
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
}

.blog-image-link {
  display: block;
  text-decoration: none;
}

.blog-image {
height: 439px;
	overflow: hidden;
  position: relative;
}

.blog-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.blog-content {
  padding: 2rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.blog-content h3 {
    font-family: 'Montserrat';
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 1.5rem;
    color: #1E1E1E;
    line-height: normal;
}

.blog-link {
    font-family: 'Open Sans';
    color: #1E1E1E;
    text-decoration: none;
    font-weight: 500;
    opacity: 100%;
    font-size: 22px;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: all 0.3s 
ease;
    margin-top: auto;
}

.blog-link:hover {
  color: #1E1E1E;
}

.blog-link svg {
    transition: transform 0.3s ease;
    border-radius: 30px;
    color: white;
    background: linear-gradient(to right, #9A2686, #293992);
}

.blog-link:hover svg {
  transform: translateX(3px);
}
.blog-cta {
  display: flex;
  justify-content: center;
  align-items: center;
  padding-top: 2rem;
}


@media (max-width: 480px) {
  .blog-content {
    padding: 1.25rem;
  }

  .blog-content h3 {
    font-size: 1rem;
  }
}

@media (max-width: 768px) {
  /* Header */
  .desktop-nav { display: none; }
  .right-nav { display: none; }
  .mobile-menu-btn { display: flex; }
  .header-container { padding: 15px 20px; height: 60px; }
  .logo { height: 30px; }

  /* Hero */
  .hero { padding: 6rem 0 3rem; min-height: 70vh; }
  .hero-text { max-width: 100%; padding-right: 0; text-align: center; }
  .hero h1 { font-size: 2rem; margin-top: 10% !important; }
  .hero p { padding-right: 0em !important; line-height: 144% !important; }
  .hero-buttons { flex-direction: column; align-items: center; }
  .hero-content-home { grid-template-columns: 1fr; gap: 2rem; }

  /* Solutions intro */
  .solutions-intro h2 { font-size: 1.75rem; }
  .solutions-buttons { flex-direction: column; align-items: center; }

  /* Solutions grid */
  .solutions-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 1rem;
    padding: 1rem;
    grid-template-columns: unset;
    max-width: 100%;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
  .solutions-grid::-webkit-scrollbar { display: none; }
  .solution-card { min-width: 100%; flex: 0 0 auto; scroll-snap-align: start; }
  .cta-card { display: none; }

  /* Section header */
  .section-header-home {
    max-width: 100%;
    flex-direction: column;
    flex-wrap: wrap;
    gap: 1rem;
    text-align: center;
  }
  .section-header-home h2,
  .section-header-home p { max-width: 100%; }

  /* Stats */
  .stats-left { width: 100%; max-width: 400px; margin: 0 auto; }
  .stats-right { padding-left: 0; text-align: center; }
  .stats-right h3 { font-size: 1.75rem; }
  .section-statistics { padding: 60px 0; overflow-x: hidden; }
  .section-container { padding: 0 16px; max-width: 100%; overflow-x: hidden; }
  .section-content-wrapper-home {
    grid-template-columns: 1fr;
    gap: 40px;
    grid-template-areas: "text" "cards";
  }
  .section-cards-grid { grid-template-columns: 1fr; gap: 15px; }
  .section-card-home { padding: 25px 20px; }
  .section-card-number { font-size: 1.8rem; }
  .section-card-text { font-size: 0.8rem; }
  .section-iso-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .section-iso-card { padding: 18px 8px; min-height: 64px; }
  .section-iso-card img { width: 70px; height: 70px; padding: 6px; }
  .section-main-title { font-size: 1.9rem; }
  .section-description { font-size: 0.95rem; }
  .btn-stats { display: block; margin: 0 auto; text-align: center; }

  /* Partners */
  .partners-content { grid-template-columns: 1fr !important; gap: 2rem; }
  .partners-section { overflow-x: hidden; }
  .partners-left img { display: none; }
  .partners-right { max-width: 100%; }
  .partners-right h3 { text-align: center; font-size: 35px; }
  .partner-logos-grid {
    display: flex !important;
    flex-direction: column !important;
    overflow-x: visible !important;
    gap: 1.5rem;
  }
  .partner-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 1rem;
    flex: unset;
  }
  .partner-logo-link {
    flex: 0 0 auto;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }
  .partner-logo-link img {
    max-width: 130px !important;
    max-height: 60px !important;
    object-fit: contain;
  }

  /* Companies */
  .companies-content { grid-template-columns: 1fr !important; gap: 2rem; }
  .companies-section { overflow-x: hidden; }
  .companies-left h3 { font-size: 2.5rem; text-align: center; }
  .company-logos { justify-content: center; }

  /* Global overflow */
  .container { max-width: 100%; overflow-x: hidden; }
  .solutions-grid-section { overflow-x: hidden; }

  /* Blog */
  .blog-header { flex-direction: column; gap: 0; }
  .blog-header h2 { line-height: normal; font-size: 2.2rem; max-width: 100%; }
  .blog-header p { font-size: 1.5rem; max-width: 100%; }
  .blog-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .blog-image { height: 200px; }
  .blog-content { padding: 1.5rem; }
	 .section-cards-grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .section-card-home {
    padding: 25px 20px;
  }

  .section-card-number {
    font-size: 1.8rem;
  }

  .section-card-text {
    font-size: 0.8rem;
  }

  .section-iso-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .section-iso-card {
    padding: 18px 8px;
    min-height: 64px;
  }

  .section-iso-card img {
    width: 70px;
    height: 70px;
    padding: 6px;
  }
	
	
}



@media (max-width: 480px) {
  .container {
    padding: 0 15px;
  }
  .hero h1 {
    font-size: 1.75rem;
  }

  .stats-boxes {
    gap: 0.75rem;
  }

  .certifications {
    justify-content: center;
    gap: 0.75rem;
  }

  .cert-item {
    min-width: 70px;
    min-height: 70px;
    padding: 1rem 0.75rem;
  }

  .mobile-nav-header,
  .mobile-nav,
  .mobile-nav-footer {
    padding: 15px;
  }
}




/* ------------------------------- */

.hero--under-header {
  margin-top: calc(var(--header-height) * -1);

}

/* Versão Mobile: usar a altura mobile do header */
@media (max-width: 1023px) {
  .hero--under-header {
    margin-top: calc(var(--header-height-mobile) * -1);
  }
	.menu-toggle {
    display: flex;
  }
}

/* Com conta iniciada no WP (admin bar), compensa a barra de admin */
body.admin-bar .hero--under-header {
  margin-top: calc((var(--header-height) + 32px) * -1);
}
@media (max-width: 782px) {
  body.admin-bar .hero--under-header {
    margin-top: calc((var(--header-height-mobile) + 46px) * -1);
  }
}

/* Usar se a primeira section tiver pouco espaço no topo e o conteúdo ficar escondido pelo header,
   dá para compensar com padding-top igual à altura do header: */
/*
.hero--under-header {
  padding-top: calc(var(--header-height));
}
@media (max-width: 1023px) {
  .hero--under-header {
    padding-top: calc(var(--header-height-mobile));
  }
}
*/


/* ===========================================================================
   SECCAO DOS SERVICOS DE MARKETING DIGITAL
   Dash Digital, 15/08/2026. Implementa o node 530:9396 do Figma, que estava
   desenhado e nunca tinha sido feito. Cores tiradas do brandbook: o circulo do
   icone usa o gradiente oficial #293992 -> #9A2686.
   =========================================================================== */

.marketing-section {
  background-color: #1C1C1C;
  padding: 90px 24px 100px;
}

.marketing-container {
  max-width: 1200px;
  margin: 0 auto;
}

.marketing-title {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 600;
  line-height: 1.2;
  color: #ffffff;
  text-align: center;
  margin: 0 auto 56px;
  max-width: 820px;
}

.marketing-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.marketing-card {
  background: linear-gradient(160deg, rgba(41, 57, 146, 0.20), rgba(154, 38, 134, 0.14));
  border: 1px solid rgba(154, 38, 134, 0.55);
  border-radius: 16px;
  padding: 28px 24px 32px;
  min-width: 0;
}

.marketing-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  /* O gradiente oficial da marca: azul para magenta. */
  background: linear-gradient(135deg, #293992 0%, #9A2686 100%);
  color: #ffffff;
  font-size: 20px;
  margin-bottom: 22px;
}

.marketing-card__title {
  font-family: "Montserrat", sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  color: #ffffff;
  margin: 0 0 14px;
}

.marketing-card__text {
  font-size: 15px;
  line-height: 1.55;
  color: #b8b8b8;
  margin: 0;
}

.marketing-cta {
  display: flex;
  justify-content: center;
  margin-top: 48px;
}

/* O style.css tem um 'a { all: unset }' que apaga tudo, por isso o botao
   precisa de ter todas as propriedades escritas aqui. */
.marketing-button {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 30px;
  border-radius: 50px;
  background-color: #293992;
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.marketing-button:hover {
  background-color: #35459f;
}

/* Fundo escuro: o contorno de foco e branco, nao o magenta da marca. */
.marketing-button:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

@media (max-width: 1024px) {
  .marketing-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (max-width: 640px) {
  .marketing-section {
    padding: 64px 20px 72px;
  }

  .marketing-title {
    margin-bottom: 36px;
  }

  .marketing-grid {
    grid-template-columns: 1fr;
  }

  .marketing-button {
    width: 100%;
  }
}


/* ============================================================================
   CAPA DO VIDEO DA HOMEPAGE   (2026-08-18, Dash Digital)

   Decisao do Luis: o leitor do YouTube deixa de se carregar sozinho e passa a
   carregar-se so ao toque. Media 979 KB e 11 pedidos em todas as visitas a
   homepage, 45% do peso da pagina, medido nos relatorios do PageSpeed.

   A capa e o fotograma do proprio video, guardado no nosso servidor: o
   LiteSpeed entrega 39 KB em webp a quem o aceita e 86 KB em jpg aos outros.
   Nao ha um unico pedido ao YouTube ate alguem tocar em play.

   O botao ocupa a caixa toda do video, por isso o alvo de toque e de 345x194
   no telemovel, muito acima dos 44 px da norma.
   ============================================================================ */
.video-capa {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: #000;
  border-radius: inherit;
  overflow: hidden;
  position: relative;
  cursor: pointer;
}

.video-capa img {
  display: block;
  width: 100%;
  height: 100%;
  /* a caixa e 16/9 e o fotograma tambem, mas o cover garante que nunca deforma */
  object-fit: cover;
}

/* Veu escuro por cima do fotograma. Serve para o botao de play se destacar: sem
   ele o circulo ficava por cima da palavra "DINAMISMO" do proprio video e as
   duas coisas competiam. Comparado em imagem antes de ficar. */
.video-capa::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.28);
  z-index: 1;
}

.video-capa__play {
  z-index: 2;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  /* 88 px em computador, onde a caixa tem 900 px de largura, e 56 em telemovel,
     onde tem 345. Medido em imagem: a 72 px o botao lia-se pequeno no ecra
     grande. O alvo de toque nao depende disto, porque quem recebe o toque e o
     botao inteiro, que ocupa a caixa toda do video. */
  width: 88px;
  height: 88px;
  border-radius: 50%;
  /* o gradiente oficial da marca, azul para magenta */
  background: linear-gradient(135deg, #293992 0%, #9A2686 100%);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
  transition: transform 0.18s ease;
}

/* O triangulo branco e feito so com bordas, para nao pedir mais nenhum ficheiro
   ao servidor. O left de 54% compensa o peso visual do triangulo, que de outra
   forma parece encostado a esquerda dentro do circulo. */
.video-capa__play::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 54%;
  transform: translate(-50%, -50%);
  border-style: solid;
  border-width: 16px 0 16px 26px;
  border-color: transparent transparent transparent #ffffff;
}

.video-capa:hover .video-capa__play,
.video-capa:focus-visible .video-capa__play {
  transform: translate(-50%, -50%) scale(1.08);
}

.video-capa:focus-visible {
  outline: 3px solid #9A2686;
  outline-offset: 3px;
}

@media (max-width: 1023px) {
  .video-capa__play {
    width: 56px;
    height: 56px;
  }

  .video-capa__play::after {
    border-width: 10px 0 10px 16px;
  }
}

/*@DUAL-FICHEIRO:servicos-solucoes.css@*/
.container {
  max-width: 1500px;
  margin: 0 auto;
  padding: 0 20px;
}


/* Hero Section - Updated Layout */
.cybersecurity-hero {
  background: #f2f2f2;
  padding: 4rem 0;
  margin-top: 0;
}

.hero-content {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  margin: 0 auto;
  padding: 0 20px;
}

.hero-text-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: flex-start;
}

.hero-left h1 {
  font-family: 'Montserrat', sans-serif;
  font-size: 50px;
  font-weight: 600;
  line-height: 1.1;
  margin-bottom: 0.5rem;
  color: #333;
}

.hero-left h2 {
  font-family: 'Montserrat', sans-serif;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 2.5rem;
  color: #333;
}

.hero-buttons {
  display: flex;
  gap: 1rem;
  flex-wrap: nowrap;
  
}

.btn-primary-service {
  background: #9A2686;
  color: white;
  padding: 0.5rem 0.5rem;
  border: none;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.btn-primary-service {
  font-size: 1rem;
}

.btn-primary-service:hover {
  background: #9A2686;
  transform: translateY(-2px);
}

.btn-secondary-service {
  background: transparent;
  color: #9A2686;
  padding: 0.875rem 0.5rem;
  border: 2px solid #9A2686;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 14px;
}

.btn-secondary-service:hover {
  background: #9A2686;
  color: white;
  transform: translateY(-2px);
}

.hero-right {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  height: 100%;
  padding-top: 0;
}

.hero-description p {
    font-family: 'open sans', sans-serif;
    font-size: 22px;
    line-height: 150%;
    color: #1c1c1c;
    margin: 0;
    letter-spacing: -0.8px;
    font-weight: 500;
}
.hero-image {
  width: 100%;
  text-align: center;
}

.hero-image img {
  width: 100%;
  max-width: 100%;
  border-radius: 15px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

/* Responsive adjustments for hero */
@media (max-width: 768px) {
  .hero-text-section {
    grid-template-columns: 1fr;
    gap: 2rem;
    text-align: center;
  }

  .hero-left h1 {
    font-size: 2.5rem;
    text-align: center;
  }

  .hero-left h2 {
    font-size: 1.75rem;
    text-align: center; 
  }

  .hero-buttons {
    flex-wrap: wrap;
    text-align: center;
  }

  .hero-content {
    gap: 2rem;
  }
}

@media (max-width: 480px) {
  .hero-left h1 {
    font-size: 2rem;
  }

  .hero-left h2 {
    font-size: 1.5rem;
  }

  .hero-buttons {
    flex-direction: column;
    align-items: stretch;
  }

  .btn-primary-service,
  .btn-secondary-service {
    padding: 0.75rem 1.5rem;
    font-size: 0.875rem;
    text-align: center;
  }
}

/* Solutions Intro Section */
.solutions-intro-section {
  padding: 5rem 0;
  background: #f2f2f2;
}

.solutions-intro-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  margin-top: 100px;
}

.solutions-intro-right h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: 50px;
    font-weight: 600;
    line-height: 120%;
    letter-spacing: -0.16px;
    margin-bottom: 1rem;
    max-width: 600px;
    color: #1c1c1c;
}

.solutions-intro-right p {
    font-family: 'open sans', sans-serif;
    font-size: 22px;
    max-width: 550px;
    color: #1C1C1C;
    line-height: 150%;
    letter-spacing: -0.8px;
}
.solutions-intro-right strong {
  color: #333;
  font-weight: 600;
}

.solutions-intro-left img {
  width: 100%;
  border-radius: 15px;
}

/* Cybersecurity Solutions Section */
.cybersecurity-solutions {
  background: linear-gradient(135deg, #667eea 0%, #9A2686 100%);
  color: white;
  padding: 4rem 0;
  text-align: center;
}

.cybersecurity-solutions h2 {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  line-height: 1.2;
}

.cybersecurity-solutions p {
  font-size: 1.125rem;
  opacity: 0.9;
  margin-bottom: 2rem;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.6;
}

/* Why Choose Section */
.why-choose-section {
  padding: 5rem 0;
  background: #f2f2f2;
}

.why-choose-section h2 {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: #333;
  text-align: center;
}

.why-choose-section > .container > p {
  font-size: 1.125rem;
  color: #666;
  max-width: 800px;
  margin: 0 auto 4rem;
  text-align: center;
}

/* Responsive adjustments */
@media (max-width: 1024px) {
  .features-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}


/* Sectors Section */
.sectors-section {
  padding: 5rem 0;
  background: #3a3a3a;
  color: white;
}

.sectors-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: flex-start;
}

.sectors-left {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.sectors-text h2 {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  line-height: 1.2;
  color: white;
}

.sectors-text p {
  font-size: 1rem;
  opacity: 0.9;
  line-height: 1.6;
  margin-bottom: 0;
}

.sectors-image {
  border-radius: 15px;
  overflow: hidden;
  width: 100%;
  height: 400px; /* Fixed height to match the 2x2 grid */
}

.sectors-image img {
  width: 100%;
  height: 100%;
  border-radius: 20px;
  display: block;
}

.sectors-right {
  display: flex;
  align-items: center;
}

.sectors-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  width: 100%;
  height: 400px; /* Match the image height */
}

.sector-card {
  background: rgba(255, 255, 255, 0.05);
  border-radius: 15px;
  padding: 2rem;
  text-align: left;
  transition: transform 0.3s, background 0.3s;
  border: 2px solid #9A2686;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.sector-card:hover {
  transform: translateY(-5px);
  background: rgba(255, 255, 255, 0.1);
}

.sector-icon {
  margin-bottom: 1.5rem;
}

.sector-icon img {
  width: 50px;
  height: 50px;
  object-fit: contain;
}

.sector-card h3 {
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
  color: white;
  line-height: 1.3;
}

.sector-card p {
  opacity: 0.9;
  line-height: 1.5;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.8);
}
 .company-logos-strip img {
    max-width: 100%;
  }

/* Responsive adjustments for sectors */
@media (max-width: 768px) {
  .sectors-content {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .sectors-text h2 {
    font-size: 2rem;
  }

  .sectors-grid {
    grid-template-columns: 1fr;
    height: auto;
  }

  .sectors-image {
    height: 300px;
  }
  .solutions-intro-content {
    grid-template-columns: 1fr;
	  padding: 0;
  }
  .solutions-intro-right {
    order: 1;
  }

  .solutions-intro-left {
    order: 2;
  }
.solutions-intro-section {
    padding: 0;
}
  .hero-image {
  display: none;
}
.company-logos-strip img {
    display: none;
  }
}

@media (max-width: 480px) {
  .sectors-text h2 {
    font-size: 1.75rem;
  }

  .sector-card {
    padding: 1.5rem;
  }

  .sectors-image {
    height: 250px;
  }
}

/* Responsive adjustments for features table */
@media (max-width: 768px) {
  h2, p{
    text-align: center;
  }
  .features-content {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .table-header,
  .table-row {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .feature-desc {
    padding-left: 0;
    margin-top: 0.5rem;
  }

  .table-header {
    display: none;
  }

  .table-row {
    padding: 1rem;
    display: block;
  }

  .feature-name {
    margin-bottom: 0.5rem;
  }
}


/* Responsive adjustments for companies section */
@media (max-width: 768px) {
  .company-logos-strip img {
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  .container {
    padding: 0 15px;
  }

  .header-container {
    padding: 10px 15px;
  }

  .hero-text h1,
  .hero-text h2 {
    font-size: 1.75rem;
  }

  .cybersecurity-solutions h2,
  .why-choose-section h2 {
    font-size: 1.75rem;
  }

  .features-grid {
    grid-template-columns: 1fr;
  }

  .mobile-nav-header,
  .mobile-nav {
    padding: 15px;
  }

  .btn-primary-service,
  .btn-secondary-service {
    padding: 0.75rem 1.5rem;
    font-size: 0.875rem;
  }
}

/* Additional responsive adjustments */
@media (max-width: 1024px) {
  .features-grid {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  }
}

/*@DUAL-FICHEIRO:noticias.css@*/
.container {
  max-width: 1500px;
  margin: 0 auto;
  padding: 0 20px;
}

/* HERO: mostrar só o slide ativo */
.hero-slide { display: none; }
.hero-slide.active { display: block; }


/* Hero Banner */
.hero-banner {
  margin: 2rem 0;
}

.hero-banner .container {
  position: relative;
}

.hero-slide {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  height: 450px;
}

.hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-content-noticias {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
  padding: 3rem 2rem 2rem;
  color: white;
}

.hero-content-noticias h1 {
    font-family: 'Montserrat';
    font-size: 54px;
    font-weight: 600;
    line-height: 120%;
    max-width: 900px;
    margin-bottom: 1.5rem;
}
.hero-dots {
  position: absolute;
  bottom: 20px;
  right: 30px;
  display: flex;
  gap: 8px;
  z-index: 20;
}

.dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: all 0.3s ease;
}

.dot.active {
  background: #9a2686;
}

.dot:hover {
  background: rgba(255, 255, 255, 0.8);
}

/* Recent Articles */
.recent-articles {
  margin: 4rem 0;
}

.recent-articles h2 {
    font-family: 'Montserrat';
    font-size: 54px;
    line-height: 120%;
    font-weight: 600;
    margin-bottom: 2rem;
    color: #1c1c1c;
}

.articles-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-bottom: 2rem;
}

.small-articles {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

/* Removed box styles for article cards in recent-articles */
.article-card {
  background: transparent; /* Changed from white */
  border-radius: 0; /* Changed from 15px */
  overflow: hidden;
  box-shadow: none; /* Changed from 0 4px 20px rgba(0, 0, 0, 0.1) */
  transition: transform 0.3s, box-shadow 0.3s;
}

.article-card:hover {
  transform: none; /* Removed translateY(-5px) */
  box-shadow: none; /* Removed 0 8px 30px rgba(0, 0, 0, 0.15) */
}

.article-card.large {
  display: flex;
  flex-direction: column;
}

.article-card.small {
  display: flex;
  flex-direction: row;
  height: 180px;
}

.article-card.small img {
  width: 267px;
  height: 90%;
  object-fit: cover;
  flex-shrink: 0;
  border-radius: 10px; /* Adicionado para arredondar os cantos */
}

.article-card.featured {
  display: flex;
  flex-direction: row;
  align-items: center;
  margin-top: 2rem;
}

.article-card.featured img {
  width: 35rem;
  height: 200px;
  object-fit: cover;
  flex-shrink: 0;
  border-radius: 10px; /* Adicionado para arredondar os cantos */
}

.article-card img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  border-radius: 10px; /* Adicionado para arredondar os cantos */
}

.article-content {
  padding: 1.5rem;
  flex: 1;
  position: relative;
}

.article-meta {
    font-family: 'Open Sans';
    font-weight: 600;
    display: flex;
    gap: 0.5rem;
    margin-top: -1rem;
    line-height: 20px;
    margin-bottom: 0.5rem;
    font-size: 14px;
    color: #9a2686;
}
.article-meta .author {
  font-weight: 500;
}

.article-meta .date {
  color: #9a2686;
}

.article-card h3 {
    font-family: 'Montserrat';
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 7px;
    color: #1c1c1c;
    line-height: 32px;
    max-width: 550px;
}
.article-card p {
    font-family: 'Open Sans';
    font-size: 16px;
    color: #1c1c1c;
    line-height: 24px;
    margin-bottom: 5px;
}

.article-tags {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.tag {
    font-family: 'Open Sans';
    color: #9a2686;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
}

/* Specific styling for different categories */
.tag.categoria-x {
  color: #293992;
  background: #EAEDFF;
}

.tag.categoria-z {
  color: #9a2686;
  background: #FFE7FB;
}

.read-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  border-radius: 20px;
  text-decoration: none;
  transition: transform 0.2s ease-in-out;
}

.read-more:hover svg {
  transform: translateX(2px);
}

/* All Articles */
.all-articles {
  margin: 4rem 0;
}

.all-articles h2 {
	font-family: 'Montserrat';
    font-size: 54px;
    font-weight: 600;
    margin-bottom: 2rem;
    line-height: 120%;
    color: #1c1c1c;
}

.articles-grid-all {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-bottom: 3rem;
}

.articles-grid-all .article-card {
  display: flex;
  flex-direction: column;
}

.articles-grid-all .article-card img {
  height: 200px;
}

/* Specific styling for all-articles section to align arrows with text */
.articles-grid-all .article-content {
  position: relative;
  padding: 1.5rem;
}

.articles-grid-all .article-card h3 {
    font-family: 'Montserrat';
    font-size: 20px;
    line-height: 28px;
    font-weight: 600;
    display: flex
;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 7px;
}
.articles-grid-all .read-more {
  position: static;
  flex-shrink: 0;
  margin-top: 0;
  align-self: flex-start;
}

/* Pagination */
/* ===== Pagination (final, consistente) ===== */
.pagination{
  display:flex;
  justify-content:center; /* tudo no centro */
  align-items:center;     /* alinhamento vertical */
  gap: .5rem;
  margin-top: 3rem;
  flex-wrap: wrap;        /* evita quebrar feio em telas pequenas */
}

/* containers sem visual extra */
.pagination-btn,
.pagination-numbers{ display:flex; align-items:center; gap:.5rem; margin:0; padding:0; }

/* Mesma “caixa” para números e prev/next */
.pagination-number,
.pagination-btn a{
  box-sizing: border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:40px;             /**/
  line-height:1;
 /* border:1px solid #e5e7eb;
  border-radius:8px; 
  background:#fff;*/
  color:#374151;
  font-size:.875rem;
  font-weight:600;
  text-decoration:none;
  transition:all .2s ease;
	min-width: 40px;  
	padding: 0 .5rem; 
}

/* Larguras/paddings */
.pagination-number {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;                 /* alguns temas dão margin no button */
  vertical-align: middle;    /* por via das dúvidas */
}
.pagination-btn a{ vertical-align: middle; }          /* texto + ícone */
.pagination-btn a svg{ display:block; flex-shrink:0; }

.pagination-number::-moz-focus-inner { border: 0; padding: 0; }

/* Estados */
.pagination-number:hover,
.pagination-btn a:hover{ background:#f9fafb; border-color:#d1d5db; }
.pagination-number.active,
.pagination-number[disabled]{ background:#9a2686; border-color:#9a2686; color:#fff; cursor:default; }

/* Dots com a mesma altura */
.pagination-dots{
  box-sizing: border-box;
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px;
  color:#9ca3af; font-weight:700;
}

.pagination .active {
  position: static !important;
  top: 0 !important;
  transform: none !important;
  margin-top: 0 !important;
  box-shadow: none;
}


/* Responsive Design */
@media (max-width: 768px) {
  /* Hero */
  .hero-content-noticias h1 {
    font-size: 1.75rem;
  }

  /* Articles */
  .articles-grid {
    grid-template-columns: 1fr;
  }

  .small-articles {
    gap: 1rem;
  }

  .article-card.small {
    flex-direction: column;
    height: auto;
  }

  .article-card.small img {
    width: 100%;
    height: 200px;
  }

  .article-card.featured {
    flex-direction: column;
  }

  .article-card.featured img {
    width: 100%;
    height: 200px;
  }

   .articles-grid-all {
    display: flex;
    overflow-x: auto;
    gap: 1rem;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 1rem;
  }

  .articles-grid-all .article-card {
    flex: 0 0 80%; /* cada card ocupa 80% da largura da tela */
    scroll-snap-align: start;
  }
  /* Reset mobile styles for all-articles h3 */
  .articles-grid-all .article-card h3 {
    display: block;
  }

  .articles-grid-all .read-more {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
  }

  /* Pagination */
 .pagination{ gap:.75rem; }
}

@media (max-width: 480px) {
  .container {
    padding: 0 15px;
  }

  .hero-content-noticias h1 {
    font-size: 1.5rem;
  }
	.pagination-number{ min-width:36px; height:36px; font-size:.8125rem; }
  .pagination-btn a{ height:36px; padding:0 .75rem; }
}

/* Additional responsive adjustments */
@media (max-width: 1024px) {
  .articles-grid-all {
    grid-template-columns: repeat(2, 1fr);
  }
}

/*@DUAL-FICHEIRO:parcerias.css@*/
.container {
  max-width: 1500px;
  margin: 0 auto;
  padding: 0 20px;
}
/* Hero Section */
.top-image-container {
  width: 1200px;
  height: 387px;
  border-radius: 20px;
  margin: 0 auto;
  margin-bottom: 40px;
  overflow: hidden;
}

.top-image-container img {
  width: 100%;
  height: 100%;
}

.content-section-lexmark{
  display: flex;
  justify-content: center;
  align-items: start;
  gap: 20px;
  padding: 30px;
}

.text-content {
  max-width: 550px;
}

.h1-main {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  line-height: 129.1%;
  letter-spacing: -2.35px;
  font-size: 50px;
  display: block;
  margin-bottom: 10px;
  text-align: start;
}

.h1-sub {
  font-weight: 500; /* Medium */
  font-size: 40px;
  display: block;
  text-align: start;
}

.text-content p {
  font-family: "Open Sans", sans-serif;
  font-weight: 500; 
  font-size: 22px;
  color: #1c1c1c;
  opacity: 0.7;
  line-height: 150%;
  letter-spacing: -0.01em; 
  margin-bottom: 32px;
  width: 447px;
  text-align: start;
}

.cta-button {
  font-family: "Montserrat", sans-serif;
  font-weight: bold;
  font-size: 14px;
  background-color: #9a2686;
  color: #ffffff;
  border: none;
  padding: 15px 15px;
  border-radius: 50px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 35px;
  text-decoration: none;
  width: 418px;
  height: 20px;
  justify-content: center;
}

.cta-button .arrow {
  background-color: #fff;
  color: #9a2686;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.right-image-container {
  width: 713px;
  height: 401px;
  background-color: #ccc; 
  border-radius: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 24px;
}



/* Partnership Section */
.partnership-section {
  padding: 4rem 0;
  background: #2d2d2d;
  color: white;
}

.partnership-content {
  display: grid;
  grid-template-columns: 445px 1fr;
  gap: 4rem;
  align-items: flex-start;
  max-width: 1200px;
  margin: 0 auto;
}

.partnership-image {
  border-radius: 20px;
  overflow: hidden;
}

.partnership-image img {
  width: 100%;
  height: 700px;
}

.partnership-text {
  padding-top: 2rem;
}

.partnership-text h2 {
    font-family: 'Montserrat';
    font-size: 50px;
    font-weight: 600;
    margin-bottom: 2rem;
    line-height: 118%;
    letter-spacing: -0.32px;
    color: white;
}

.partnership-text p {
    font-family: 'Open Sans';
    font-size: 22px;
    line-height: 150%;
    color: #ffffff;
    letter-spacing: -0.8px;
    margin-bottom: 1.5rem;
}

.partnership-text p:last-child {
  margin-bottom: 0;
}

/* Responsive adjustments for partnership */
@media (max-width: 1024px) {
  .partnership-content {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .partnership-text h2 {
    font-size: 2.5rem;
  }

  .partnership-image img {
    height: 400px;
  }
}

@media (max-width: 768px) {
  .partnership-content {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .partnership-image img {
    height: auto;
  }

  .partnership-text {
    padding-top: 0;
  }

  .partnership-text h2 {
    font-size: 2rem;
  }
	
	/* Hero Section */
	.top-image-container {
    width: 100%;
    height: auto;
  }

  .top-image-container img {
    height: auto;
  }

  .right-image-container {
    display: none;
  }

  .content-section-lexmark {
    flex-direction: column;
    align-items: center;
  }

  .text-content {
    text-align: center;
    max-width: 100%;
  }
  .text-content p {
    text-align: center;
  }

  .h1-main {
    font-size: 28px;
	text-align: center;
  }

 .h1-sub {
    font-size: 28px;
	text-align: center;
}

  .cta-button {
    border: none;
    background-color: transparent;
    color: #9a2686;
    width: auto;
    gap: 5px;
  }

  .cta-button .arrow {
    background-color: transparent;
    color: #9a2686;
  }
}

@media (max-width: 480px) {
  .partnership-text h2 {
    font-size: 1.6rem;
  }

  .partnership-text {
    padding-top: 1rem;
  }
}

/* Features Section */
.features-section {
  padding: 4rem 0;
  background: #2d2d2d;
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.feature-card {
    background-color: #241d22;
    padding: 30px;
    border: 1px solid #9a2686;
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.3s;
}

.feature-card:hover {
  transform: translateY(-3px);
}

.feature-image img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.feature-content {
    font-family: 'Montserrat';
    font-size: 26px;
    line-height: 110%;
    font-weight: 600;
    color: #FFFFFF;
    letter-spacing: -0.16px;
    padding: 10px;
    text-align: center;
}

.feature-content h3 {
  color: white;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
}

/* Solutions Lexmark Section */
.solutions-lexmark-section {
  padding: 60px 20px;
  background: #f2f2f2;
}

.solutions-content {
  display: grid;
  grid-template-columns: 1fr 550px;
  gap: 4rem;
  align-items: flex-start;
}

.solutions-text h2 {
    font-size: 50px;
    font-weight: 600;
    margin-bottom: 1.5rem;
    color: #1c1c1c;
    line-height: 120%;
    letter-spacing: -0.16px;
	max-width: 700px
}
.solutions-text > p {
    font-family: 'Open Sans';
    font-weight: 500;
    color: #1c1c1c;
    margin-bottom: 2.5rem;
    font-size: 22px;
    line-height: 150%;
    letter-spacing: -0.8px;
	max-width: 550px
}

.solution-item {
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #9a2686;
}

.solution-item:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

.solution-item h3 {
    font-family: 'Montserrat';
    font-size: 22px;
    font-weight: 600;
    color: #1c1c1c;
    margin-bottom: 0.5rem;
}

.solution-item p {
    font-family: 'Open Sans';
    font-size: 16px;
    color: #1c1c1c;
    line-height: 22px;
	max-width: 550px
}

.solutions-image-container {
  position: relative;
}

.solutions-image {
  border-radius: 20px;
  position: relative;
}

.solutions-image img {
  width: 100%;
  height: auto;
  min-height: 500px;
  object-fit: cover;
}

.cta-box-overlay {
    position: absolute;
    bottom: -30px;
    right: -30px;
    background: rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(10px);
    -webkit-opacity: blur (10px);
    color: #9a2686;
    padding: 50px 20px;
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    box-shadow: 0 8px 32px rgba(91, 108, 244, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.3);
    max-width: 250px;
    height: 270px;
	z-index: 2;
}

.cta-box-overlay .cta-arrow {
    position: absolute;
    top: 15px;
    right: 15px;
    background: none;
    border: 2px solid #293992;
    color: white;
    cursor: pointer;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    flex-shrink: 0;
}
.cta-box-overlay .cta-arrow:hover {
  transform: scale(1.05);
}

.cta-box-overlay .cta-arrow svg {
    width: 24px;
    height: 24px;
    color: #293992;
}

.cta-box-overlay p {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    line-height: 130.1%;
    color: #293992;
    padding-right: 40px;
    margin-top: 10px;
}
/* Ocutando botão testemunhos */
.desktop-only {
    display: inline-flex;
}
.mobile-only {
    display: none;
}

/* Responsive adjustments for solutions */
@media (max-width: 1024px) {
  .solutions-content {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .solutions-text h2 {
    font-size: 2rem;
  }
}

@media (max-width: 768px) {
	
 .solution-item h3 {
    font-family: 'Montserrat';
    font-size: 20px;
    margin-bottom: 0.5rem;
    text-align: center;
}
  .solutions-text h2 {
    font-size: 1.8rem;
  }

  .solutions-image img {
    height: auto;
    min-height: 300px;
  }

  .cta-box-overlay {
   display: none;
  }
}

@media (max-width: 480px) {
  .solutions-text h2 {
    font-size: 1.6rem;
  }

  .solution-item {
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
  }

}

/* Statistics Lexmark Section */
.statistics-lexmark-section {
  padding: 1rem 0;
  background: #f2f2f2;
}

/* Statistics Content */
.statistics-content-lexmark {
  display: grid;
  grid-template-columns: 1fr 415px;
  gap: 3rem;
  align-items: flex-start;
}

.statistics-images-left {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  height: 100%;
}

.stat-image-top,
.stat-image-bottom {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
}

.stat-image-top {
  height: 300px;
}

.stat-image-bottom {
  height: 500px;
}

.stat-image-top img,
.stat-image-bottom img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.stats-cards-right {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.stat-card {
  padding: 2rem 1.5rem;
  border-radius: 20px;
  color: white;
  text-align: left;
  position: relative;
  flex: 1;
}

.stat-card.purple {
  background: linear-gradient(135deg, #9a2686, #293992);
	 padding: 2rem;
    border-radius: 20px;
    color: white;
    text-align: center;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 200px;
    max-height: 300px;
}

.stat-number {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  line-height: 1.1;
}

.stat-text {
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 0.5rem;
}

.stat-subtext {
    font-family: 'Open Sans';
    font-weight: 500;
    font-size: 22px;
    font-weight: 500;
    opacity: 0.9;
    line-height: normal;
}

/* Responsive adjustments for statistics */
@media (max-width: 1024px) {
  .statistics-content-lexmark {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .statistics-images-left {
    flex-direction: row;
    gap: 1rem;
    height: auto;
  }

  .stat-image-top,
  .stat-image-bottom {
    flex: 1;
    height: 220px;
  }

  .stats-cards-right {
    height: auto;
  }
}

@media (max-width: 768px) {
  .testimonial-card-lexmark {
    flex-direction: column;
    height: auto;
  }

  .testimonial-card-lexmark .testimonial-image {
    flex: none;
    height: 200px;
  }

  .statistics-images-left {
    flex-direction: column;
    gap: 1rem;
  }

  .stat-image-top,
  .stat-image-bottom {
    display: none;
  }

  .stats-cards-right {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 1rem;
  }

  .stat-card {
    flex: 1;
    min-width: 200px;
    padding: 1.5rem 1rem;
  }

  .stat-number {
    font-size: 1.4rem;
  }
	
	
	  /* Testemunhos Section */
	 .section-two-testimonials-title {
                font-size: 28px;
                margin-bottom: 35px;
            }

            .section-two-testimonials-carousel-wrapper {
                gap: 15px;
                padding: 0 30px;
            }

            .section-two-testimonials-nav-button {
                width: 40px;
                height: 40px;
            }

            .section-two-testimonials-nav-button svg {
                width: 16px;
                height: 16px;
            }

            .section-two-testimonials-card {
                flex-direction: column;
            }

            .section-testimonials-image {
                flex: 0 0 250px !important;
                min-height: 250px !important;
				overflow: visible;
            }

            .section-two-testimonials-content {
                padding: 35px 30px;
            }

            .section-two-testimonials-quote-icon {
                display: none;
            }

            .section-testimonials-quote {
                font-size: 18px !important;
				text-align: start !important;
                margin-bottom: 25px !important;
            }

            .section-two-testimonials-author {
                font-size: 18px;
            }

            .section-two-testimonials-role {
                font-size: 14px;
            }

            .desktop-only {
                display: none !important;
            }

            .mobile-only {
                display: flex !important;
                justify-content: center;
                gap: 12px;
                margin-top: 15px;
            }

            .gradient-btn {
                background: linear-gradient(90deg, rgb(41, 57, 146) 0%, rgb(154, 38, 134) 100%) !important;
                border: none !important;
                color: white !important;
            }

            .gradient-btn svg {
                fill: white !important;
            }
}

@media (max-width: 480px) {
  .stats-cards-right {
    flex-direction: column;
  }

  .stat-card {
    min-width: auto;
  }

  .stat-image-top,
  .stat-image-bottom {
    height: 180px;
  }
	/* Testemunhos Section */
	 .section-two-testimonials-title {
                font-size: 24px;
                margin-bottom: 30px;
            }

            .section-two-testimonials-carousel-wrapper {
                gap: 10px;
                padding: 0 30px !important;
            }

            .section-two-testimonials-nav-button {
                width: 35px;
                height: 35px;
            }

            .section-testimonials-image {
                flex: 0 0 220px !important;
                min-height: 300px !important;
				overflow: visible;
            }

            .section-two-testimonials-content {
                padding: 30px 25px;
            }

            .section-testimonials-quote {
                font-size: 14px;
                margin-bottom: 20px;
            }

            .section-two-testimonials-author {
                font-size: 16px;
            }

            .section-two-testimonials-role {
                font-size: 13px;
            }
	
}

/* About Lexmark Section */
.about-lexmark-section {
  padding: 4rem 0;
  background: #f2f2f2;
}

.about-content {
  display: grid;
  grid-template-columns: 1fr 800px;
  gap: 3rem;
  align-items: center;
}

.about-text h2 {
     font-family: 'Montserrat';
    font-size: 50px;
    font-weight: 600;
    margin-bottom: 1.2rem;
    color: #1c1c1c;
    letter-spacing: -2.35px;
    line-height: normal;
}

.about-text p {
     font-family: 'Open Sans';
    color: #1c1c1c;
    line-height: 157%;
    margin-bottom: 1.2rem;
    font-size: 22px;
    font-weight: 500;
}

.btn-lexmark-secondary {
    background: #293992;
    color: white;
    padding: 0.8rem 1.5rem;
    border-radius: 25px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s;
    font-size: 16px;
	display: inline-flex;
    align-items: center;
    gap: 10px;
}

.btn-lexmark-secondary:hover {
  background: #293992;
  color: white;
}
.btn-icon-lexmark img {
	background: white;
	color: #293992;
}
.about-image {
  border-radius: 15px;
  overflow: hidden;
}

.about-image img {
  width: 100%;
  height: 500px;
}

/* Responsive Design */
@media (max-width: 768px) {
  /* Hero */

  /* Sections */
  .partnership-content,
  .solutions-content,
  .statistics-content-lexmark,
  .about-content {
    grid-template-columns: 1fr 400px;
    gap: 2rem;
  }

  .features-grid {
    display: flex;            
    gap: 1rem;
    overflow-x: auto;         
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch; 
  }

  .features-grid > * {
    flex: 0 0 80%;              
    scroll-snap-align: start;  
  }
	
  .stats-cards-right {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 1rem;
  }

  .stat-card {
    flex: 1;
    min-width: 200px;
    text-align: center;
  }
	.about-text h2 {
    font-size: 28px;
}
	.about-text p {
		font-size: 16px;
		padding: 0 20px;
	}
	.btn-lexmark-secondary {
    display: flex;     
    margin: 0 auto;     
  }
	.about-image img {
    width: 100%;
    height: auto;
}
}

@media (max-width: 480px) {
  .container {
    padding: 0 15px;
  }

  .stats-cards-right {
    flex-direction: column;
  }
}

/* Additional responsive adjustments */
@media (max-width: 1024px) {
  .features-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .partnership-content {
    grid-template-columns: 1fr;
  }

  .solutions-content {
    grid-template-columns: 1fr;
  }

  .statistics-content-lexmark {
    grid-template-columns: 1fr;
  }

  .about-content {
    grid-template-columns: 1fr;
  }
}

/* Testemunhos section */
        .section-testimonials-two {
            max-width: 1500px;
            margin: 0 auto;
			padding: 30px 0;
        }

        .section-two-testimonials-title {
            font-family: 'Montserrat', sans-serif;
            font-size: 50px;
            font-weight: 600;
            line-height: 120%;
            letter-spacing: -0.16px;
            color: #1c1c1c;
            text-align: center;
            margin-bottom: 50px;
            max-width: 900px;
            margin-left: auto;
            margin-right: auto;
        }

        .section-two-testimonials-carousel-wrapper {
            position: relative;
            display: flex;
            align-items: center;
            gap: 30px;
        }

        .section-two-testimonials-nav-button {
            width: 50px;
            height: 50px;
            border-radius: 50%;
            border: 1px solid #1e1e1e;
            background: #f2f2f2;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.3s ease;
            flex-shrink: 0;
            z-index: 10;
        }

        .section-two-testimonials-nav-button:hover {
            background-color: #f2f2f2;
        }

        .section-two-testimonials-nav-button.active {
            background: linear-gradient(90deg, rgb(41, 57, 146) 0%, rgb(154, 38, 134) 100%);
            border: none;
        }

        .section-two-testimonials-nav-button svg {
            width: 20px;
            height: 20px;
            fill: #1e1e1e;
        }

        .section-two-testimonials-nav-button.active svg {
            fill: white;
        }

        .section-two-testimonials-carousel {
            flex: 1;
            overflow: hidden;
            border-radius: 20px;
        }

        .section-two-testimonials-cards {
            display: flex;
            transition: transform 0.4s ease;
        }

        .section-two-testimonials-card {
            min-width: 100%;
            display: flex;
            background: #9A2686;
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
        }

        .section-testimonials-image {
            flex: 0 0 25%;
            background-color: #9A2686;
            overflow: hidden;
        }

        .section-testimonials-image img {
            width: 100%;
            height: 100%;
        }

        .section-two-testimonials-content {
            flex: 1;
            background: #9A2686;
            padding: 50px 60px;
            position: relative;
            display: flex;
            flex-direction: column;
            justify-content: center;
        }

        .section-two-testimonials-quote-icon {
            position: absolute;
            top: 30px;
            right: 40px;
            width: 120px;
            height: 120px;
            opacity: 0.3;
        }

        .section-two-testimonials-quote-icon svg {
            width: 100%;
            height: 100%;
            fill: white !important;
        }


        element.style {}

        .section-testimonials-quote {
            font-family: 'Open Sans', sans-serif;
            font-size: 22px;
            line-height: 150%;
            color: white;
            margin-bottom: 30px;
            font-weight: 500;
            letter-spacing: -0.16px;
            max-width: 600px;
			opacity: 70%;
        }

        .section-two-testimonials-author {
            font-family: 'Montserrat', sans-serif;
            font-size: 22px;
            font-weight: 700;
            color: white;
            margin-bottom: 5px;
        }

        .section-two-testimonials-role {
            font-family: 'Open Sans', sans-serif;
            font-size: 16px;
            color: white;
            opacity: 100%;
            font-weight: 400;
        }

/* Tablet Styles */
        @media (max-width: 900px) {
            .section-two-testimonials-title {
                font-size: 32px;
                margin-bottom: 40px;
            }

            .section-two-testimonials-carousel-wrapper {
                gap: 20px;
            }

            .section-two-testimonials-nav-button {
                width: 45px;
                height: 45px;
            }

            .section-two-testimonials-content {
                padding: 40px 45px;
            }

            .section-testimonials-quote {
                font-size: 16px;
            }
        }

/*@DUAL-FICHEIRO:sobrenos.css@*/
.container {
  max-width: 1518px;
  margin: 0 auto;
  padding: 0 40px;
}

/* Background Overlay Images
.background-overlay {
  position: absolute;
  top: 120px;
  left: 0;
  width: 100%;
  height: calc(100vh - 120px);
  z-index: 1;
} */

.background-overlay {
  position: absolute;
  top: -6px;
  left: 0;
  width: 100%;
  height: 718px;
  z-index: 1;
}

.background-image-13,
.background-image-14 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.background-image-13 {
  z-index: 1;
}

.background-image-14 {
  z-index: 2;
  opacity: 0.85;
}

/* Image placeholders */
.image-placeholder {
  background: #f2f2f2;
  border-radius: 10px;
  width: 100%;
  height: 250px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  font-size: 14px;
}

.image-placeholder.small {
  height: 120px;
}

/* Hero Section */
.hero-section {
  background: transparent;
  color: white;
  padding: 12rem 0;
  text-align: center;
  position: relative;
  z-index: 10;
  min-height: 55vh;
}
.hero-content-sobre h1 {
    font-family: "Montserrat", sans-serif;
    font-size: 50px;
    font-weight: 600;
    margin-bottom: 1.5rem;
    line-height: normal;
    letter-spacing: -2.35px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
    max-width: 850px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}
.hero-content-sobre p {
    font-family: "Open Sans", sans-serif;
    font-size: 22px;
    opacity: 70%;
    font-weight: 500;
    max-width: 800px;
    margin: 0 auto;
    line-height: 150%;
    letter-spacing: -0.8px;
    color: #fffff;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

/* Innovation Section */
.innovation-section {
  padding: 5rem 0;
  background: #f2f2f2;
  position: relative;
  z-index: 10;
}

.innovation-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: flex-start;
}

.innovation-text {
  text-align: left;
}

.innovation-text h2 {
    font-size: 32px;
    font-weight: 600;
    font-family: "Montserrat", sans-serif;
    margin-bottom: 3rem;
    color: #1c1c1c;
    line-height: 124%;
	letter-spacing: -0.8px;
    max-width: 30rem;
    margin-top: 22px;
}

.innovation-text p {
    font-size: 22px;
    font-family: "Open Sans", sans-serif;
    color: #1c1c1c;
    line-height: 150%;
    letter-spacing: -0.8px;
    margin-bottom: 3rem;
}

.innovation-text p:last-child {
  margin-bottom: 0;
}

.innovation-image-desktop {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 15px;
  background-clip: padding-box;
  border: 2px solid transparent;
  background-origin: border-box;
}

.innovation-image-mobile {
  display: none;
}

.innovation-img {
  width: 100%;
  display: block;
  border-radius: 0px;
}


/* Mission Vision Values Section */
.mvv-section {
  padding: 5rem 0;
  background: #1a1a1a;
  color: white;
  position: relative;
  z-index: 10;
}

.mvv-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: flex-start; /* Alinha o conteúdo ao topo */
}

.mvv-image {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 15px;
  background-clip: padding-box;
  border: 2px solid transparent;
  background-origin: border-box;
}

.mvv-img {
  width: 100%;
  height: 900px;
  display: block;
  border-radius: 10px;
}

.mvv-text {
  display: flex;
  flex-direction: column;
  gap: 0; 
  text-align: left;
}

.mvv-item {
  display: flex;
  flex-direction: column;
  align-items: start;
  border-bottom: 1px solid #9a2686;
  text-align: start;
}

.mvv-item:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

.mvv-icon {
  flex-shrink: 0;
  margin-top: 30px;
}

.icon-circle {
  width: 50px;
  height: 50px;
  background: #9a2686;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
}

.mvv-custom-icon {
  width: 24px; 
  height: 24px;
  object-fit: contain;
  filter: brightness(0) invert(1); 
}

/* Ajuste para o SVG dentro do icon-circle, caso ainda existam outros */
.icon-circle svg {
  width: 24px;
  height: 24px;
  color: white; /* Garante que o SVG seja branco */
}

.mvv-content-text h3 {
    font-family: "Montserrat", sans-serif;
    font-size: 32px;
    font-weight: 600;
    line-height: 110%;
    margin-bottom: 10px;
    letter-spacing: -0.8px;
    color: white;
    margin-top: 8px;
}

.mvv-content-text p {
    font-family: "Open Sans", sans-serif;
    line-height: normal;
    opacity: 0.9;
    font-weight: 500;
    font-size: 20px;
    margin-bottom: 30px;
    margin-top: 30px;
}

.values-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 1rem;
}

.value-item {
    font-family: 'Open Sans';
    font-size: 18px;
    line-height: normal;
    letter-spacing: -0.16px;
}

.value-item strong {
  color: #ffffff;
}

/* Solutions Section */
.solutions-section {
  padding: 5rem 0;
  background: #f2f2f2; /* Fundo branco */
  position: relative;
  z-index: 10;
}

.solutions-header {
  display: grid;
  grid-template-columns: 1.5fr 1fr; /* Ajusta a proporção das colunas para a imagem */
  gap: 4rem; /* Espaço entre os dois blocos de texto */
  align-items: flex-start; /* Alinha o conteúdo ao topo */
  margin-bottom: 4rem; /* Espaço entre o cabeçalho e a grelha */
}

.solutions-header h2 {
    font-size: 50px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    color: #1c1c1c;
    text-align: left;
    line-height: 118%;
    /* letter-spacing: -0.16px; */
    margin-bottom: 0;
}
.solutions-header p {
    font-family: "Open Sans", sans-serif;
    font-size: 22px;
    color: #1c1c1c;
    letter-spacing: -0.16px;
    line-height: 150%;
    text-align: left;
    margin-top: 2rem;
}

.solutions-grid-sobre {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}

.solution-card {
  background: rgba(154, 38, 134, 0.06);
  border-radius: 20px;
  box-shadow: 0 0 0 1px rgba(154, 38, 134, 0.6), 0 5px 15px rgba(0, 0, 0, 0.05);
  text-align: left;
  padding: 2rem;
}

.solution-card:hover {
  transform: translateY(-5px);
}

.solution-icon .icon-circle {
  width: 50px;
  height: 50px;
  background: linear-gradient(110deg, #9a2686, #293992);
  border: 1px solid #e0e0e0;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  margin-left: 0;
}

.solution-icon .icon-circle svg {
  width: 24px;
  height: 24px;
  stroke: #9a2686;
  fill: none;
}
.solution-card h3 {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: #1c1c1c;
    line-height: 120%;
    letter-spacing: -0.32px;
}
.solution-card p {
    font-size: 16px;
    color: #1c1c1c;
    line-height: 150%;
    text-align: start;
}

.solution-card.solution-card.cta-card-sobre {
  background: #9a2686;
  color: white;
  box-shadow: none;
  border: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  padding: 2rem;
  position: relative;
}

.cta-content h3 {
    font-size: 28px;
    line-height: 130.1%;
    color: #ffffff;
    font-weight: 600;
    margin-bottom: 0;
    text-align: left;
}

.solution-card.cta-card-sobre .btn-primary {
  color: white;
  border: none;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  position: absolute;
  top: 0;
  right: 0;
  transition: transform 0.2s ease-in-out;
}

.solution-card.cta-card-sobre .btn-primary:hover {
  transform: scale(1.05); /* Efeito de escala ao passar o mouse */
}

.solution-card.cta-card-sobre .btn-primary svg {
  width: 24px; /* Garante que o SVG tenha o tamanho correto */
  height: 24px;
}

/* Excellence Section */
.excellence-section {
  padding: 5rem 0;
  background: #f2f2f2;
  position: relative;
  z-index: 10;
}

.excellence-content {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4rem;
  align-items: flex-start;
}

.excellence-left-column {
  display: flex;
  flex-direction: column;
  align-items: flex-start; /* Alinha o conteúdo à esquerda */
  max-width: 600px; /* Define a largura máxima para o bloco de texto e imagem */
}

.excellence-text {
  text-align: left;
  width: 100%; /* Garante que o texto preenche a largura máxima da coluna */
}

.excellence-text h2 {
    font-family: "Montserrat", sans-serif;
    font-size: 50px;
    font-weight: 600;
    margin-bottom: 1rem;
    color: #1c1c1c;
    letter-spacing: -0.16px;
    line-height: 120%;
}

.excellence-text p {
    font-family: "Open Sans", sans-serif;
    font-size: 20px;
    color: #1c1c1c;
    line-height: 150%;
    max-width: 600px;
}

.excellence-image {
  display: flex;
  justify-content: center;
  align-items: center;

  border-radius: 15px; /* Arredondar cantos */
  background-clip: padding-box;
  border: 2px solid transparent; /* Borda transparente inicial */

  background-origin: border-box;
  overflow: hidden; /* Garante que a imagem não vaze */
  width: 100%; /* Ocupa a largura total da coluna */
}

.excellence-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px; /* Arredondar cantos da imagem interna */
}

.excellence-image-mobile {
  display: none; /* Esconder para desktop */
}

.excellence-steps {
    font-weight: 500;
    font-size: 18px;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.step-item {
  border-bottom: 1px solid #9a2686;
  margin-bottom: 1.5rem;
}

.step-item h3 {
  font-size: 28px;
  font-weight: bold;
  color: #1c1c1c;
  margin-bottom: 0.5rem;
  margin-top: 6px;
  line-height: 110%;
}

.step-item p {
  color: #1c1c1c;
  line-height: 1.5;
  font-size: 18px;
}

/* Strategic Partnerships Section */
.partnerships-section {
  background: #f2f2f2;
  position: relative;
  z-index: 10;
}

.container {
  max-width: 1518px;
  margin: 0 auto;
  padding: 0 15px;
}

.partnerships-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: center;
}

.partnerships-text h2 {
    font-family: "Montserrat", sans-serif;
    font-size: 50px;
    font-weight: 600;
    line-height: 120%;
    margin-bottom: 1.5rem;
    color: #1c1c1c;
    text-align: start;
}
.partnerships-text p {
    font-family: "Open Sans", sans-serif;
    font-size: 20px;
    color: #1c1c1c;
    font-weight: 500;
    line-height: 150%;
    margin-bottom: 2rem;
    text-align: start;
}

.partner-logos {
  display: flex;
  /* Sem flex-wrap: wrap os logotipos pediam 515px numa caixa de 342px e ficavam
     cortados em telemovel. Medido a 15/08/2026. Dash Digital. */
  flex-wrap: wrap;
  gap: 2rem;
  align-items: center;
}

.partner-logo-img {
  height: 40px;
  width: auto;
  filter: grayscale(100%);
  opacity: 0.7;
  transition: filter 0.3s ease, opacity 0.3s ease;
}

.partner-logo-img:hover {
  filter: grayscale(0%);
  opacity: 1;
}

.partnerships-images {
  display: flex;
  justify-content: center;
  align-items: center;
}

.partnerships-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 15px;
  object-fit: cover;
}

.mobile-image {
  display: none;
}
/* Statistics Section */
.statistics-section {
  padding: 5rem 0;
  background: #f2f2f2;
  position: relative;
  z-index: 10;
}

.container {
  max-width: 1518px;
  margin: 0 auto;
  padding: 0 15px;
}

.statistics-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: start;
  margin-bottom: 3rem;
}

.stats-left {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.stat-card {
  padding: 2rem;
  border-radius: 20px;
  color: white;
  text-align: center;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 200px;
}

.stat-card.purple {
  background: linear-gradient(170deg, #293992, #9a2686);
}

.stat-number {
    font-family: "Montserrat", sans-serif;
    font-size: 50px;
    font-weight: 600;
    line-height: normal;
    margin-bottom: 10px;
}

.stat-text {
    font-family: 'Montserrat', sans-serif;
    font-size: 18px;
    font-weight: 500;
    line-height: normal;
}

.statistics-img-top {
  width: 100%;
  height: 200px;
  display: block;
  border-radius: 20px;
  object-fit: cover;
}

.statistics-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
}

.bottom-stat h3 {
    font-family: "Montserrat", sans-serif;
    font-size: 50px;
    font-weight: 600;
    line-height: normal;
    letter-spacing: -2.35px;
    margin-bottom: 1rem;
    color: #1c1c1c;
    position: relative;
}

.bottom-stat p {
    font-family: "Open Sans", sans-serif;
    font-weight: 500;
    font-size: 20px;
    color: #1c1c1c;
    letter-spacing: 0%;
    line-height: 208%;
    margin-bottom: 2rem;
}

.statistics-img-bottom {
  width: 100%;
  height: 700px;
  display: block;
  border-radius: 20px;
  object-fit: cover;
}

/* Media Query para Mobile */
@media screen and (max-width: 768px) {
  .innovation-content {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  
  .innovation-text {
    text-align: center;
  }
  
  .innovation-text h2 {
    font-size: 2.2rem;
    max-width: 100%;
    margin-bottom: 1.5rem;
    margin-top: 0;
  }
  
  .innovation-text p {
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
  }
  
  .innovation-image-desktop {
    display: none;
  }
  
  .innovation-image-mobile {
    display: block;
    margin: 1.5rem 0;
  }

  .innovation-img {
    border-radius: 10px;
  }
  .stats-left {
    order: 1;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
  
  .stats-right {
    order: 2;
  }
  
  .statistics-bottom {
    order: 3;
    grid-template-columns: 1fr;
  }
  
  .bottom-left {
    order: 2;
  }
  
  .bottom-right {
    order: 1;
  }
  
  .stat-number {
    font-size: 2rem;
  }
  
  .bottom-stat h3 {
    font-size: 1.8rem;
    margin-top: 1.5rem;
  }
  
  .bottom-stat p {
    font-size: 1rem;
  }
  .statistics-img-top {
 padding: 0 30px;
}
.statistics-img-bottom {
  display: none;
}
}

/* Testimonial Section */
.testimonial-section {
  padding: 5rem 0;
  background: white;
  position: relative;
  z-index: 10;
}

.testimonial-content {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 4rem;
  align-items: center;
}

.testimonial-left h2 {
  font-size: 2rem;
  font-weight: 700;
  color: #333;
}

.testimonial-card {
  background: #8b5cf6;
  border-radius: 15px;
  overflow: hidden;
  color: white;
  display: flex;
  min-height: 200px;
}

.testimonial-image {
  flex: 0 0 35%;
}

.testimonial-image .image-placeholder {
  height: 100%;
  border-radius: 0;
}

.testimonial-text {
  flex: 1;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.testimonial-text blockquote {
  font-size: 1rem;
  font-style: italic;
  margin-bottom: 1.5rem;
  line-height: 1.6;
  position: relative;
}

.testimonial-text blockquote::before {
  content: '"';
  font-size: 3rem;
  position: absolute;
  top: -1rem;
  right: 1rem;
  opacity: 0.3;
}

.testimonial-author strong {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 1rem;
}

.testimonial-author span {
  opacity: 0.8;
  font-size: 0.875rem;
}

/* Contact Section */
.contact-section {
  padding: 5rem 0;
  background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
  color: white;
  position: relative;
  z-index: 10;
}

.contact-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.contact-left h2 {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  line-height: 1.2;
}

.contact-left p {
  font-size: 1.125rem;
  opacity: 0.9;
  line-height: 1.6;
  margin-bottom: 1rem;
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  padding: 1rem;
  border: none;
  border-radius: 10px;
  font-size: 1rem;
  background: rgba(255, 255, 255, 0.9);
  color: #333;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  outline: none;
  background: white;
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.3);
}

.contact-form textarea {
  resize: vertical;
  min-height: 120px;
}

.contact-form button {
  margin-top: 1rem;
  align-self: flex-start;
  background: rgba(255, 255, 255, 0.2);
  color: white;
  padding: 0.875rem 2rem;
  border: 2px solid white;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 0.9rem;
}

.contact-form button:hover {
  background: white;
  color: #8b5cf6;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .container {
    padding: 0 30px;
  }

  .solutions-grid-sobre {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }

  .excellence-content {
    gap: 2rem;
  }

  .hero-content-sobre h1 {
    width: auto;
    padding-left: 0;
  }
}
@media (max-width: 992px) {
 .partnerships-content {
    display: flex;
    flex-direction: column;
  }

  .desktop-image {
    display: none;
  }

  .mobile-image {
    display: block;
    width: 100%;
    margin: 1.5rem 0;
    order: 2;
  }

  .partnerships-text {
    order: 1;
    width: 100%;
  }

  .partnerships-text h2 {
    font-size: 40px;
    text-align: center;
    margin-bottom: 1.5rem;
  }

  .partnerships-text p {
    font-size: 22px;
    text-align: center;
    margin-top: 3rem;
    margin-bottom: 3rem;
    order: 3;
    line-height: 1.4;
  }

  .partner-logos {
    order: 4;
    justify-content: center;
    /* Era nowrap, o que reforcava o transbordo em vez de o corrigir. */
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-top: 1.5rem;
  }
}

@media (max-width: 768px) {
  .container {
    padding: 0 20px;
  }

  h1 {
    font-size: 2.5rem;
  }
  h2 {
    font-size: 2rem;
  }

  .hero-section {
    padding: 6rem 0;
    min-height: auto;
  }

  .hero-content-sobre h1 {
    font-size: 2.2rem;
    padding-left: 0; 
    padding-right: 0;
  }

  .hero-content-sobre p {
    font-size: 1.1rem;
  }

  .innovation-content,
  .mvv-content,
  .partnerships-content,
  .statistics-content,
  .statistics-bottom,
  .testimonial-content,
  .contact-content,
  .solutions-header {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .innovation-text,
  .partnerships-text,
  .excellence-text,
  .solutions-header,
  .testimonial-left {
    text-align: center;
  }

  .innovation-text h2,
  .innovation-text p,
  .excellence-text h2,
  .excellence-text p,
  .bottom-stat p,
  .solutions-header h2,
  .solutions-header p {
    width: auto;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }
  .innovation-img {
    width: 100%;
    min-height: none !important;
  }
  .innovation-image,
  .mvv-image,
  .excellence-image {
    order: -1;
  }

  .mvv-img,
  .partnerships-img,
  .excellence-img {
    width: 100%;
  }

  .mvv-text {
    text-align: left;
  }

  .mvv-item {
    flex-direction: column;
    align-items: start;
    text-align: left;
    margin-bottom: 40px;
  }

  .mvv-icon {
    margin-top: 0;
  }

  .mvv-content-text h3,
  .mvv-content-text p {
    margin-top: 0.5rem;
    margin-bottom: 0.8rem;
    text-align: left;
  }

  .solutions-header p {
    font-size: 22px;
    margin-top: 1rem;
    text-align: center;
  }

  .solutions-grid-sobre {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 1.5rem;
    padding-bottom: 1rem;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .solution-card {
    flex: 0 0 auto;
    min-width: 280px;
    scroll-snap-align: start;
    max-width: 50px;
  }
  .excellence-left-column {
    order: 1;
  }

  .step-item {
    text-align: center;
  }

  .partner-logos {
    justify-content: center;
  }

  .statistics-content {
    margin-bottom: 3rem;
  }

  .stats-left {
    grid-template-columns: 1fr 1fr;
  }

  .bottom-stat h3{
    font-family: "Montserrat", sans-serif;
    font-size: 2.5rem;
    top: auto;
    margin-left: 0;
    position: static;
    text-align: center;
  }
  .bottom-stat p {
    font-family: "Open Sans", sans-serif;
    font-size: 1.4rem;
    top: auto;
    margin-left: 0;
    position: static;
    text-align: center;
  }

  .testimonial-card {
    flex-direction: column;
  }

  .values-grid {
    grid-template-columns: 1fr;
  }
   .excellence-content {
    grid-template-columns: 1fr;
    gap: 2rem;
    display: flex;
    flex-direction: column;
  }
  
  .excellence-left-column {
    order: 1;
    max-width: 100%;
  }
  
  .excellence-text {
    order: 1;
    text-align: center;
    margin-bottom: 1.5rem;
  }
  
  .excellence-text h2 {
    font-size: 2.3rem;
  }
  
  .excellence-text p {
    font-size: 1.5rem;
    max-width: 100%;
  }
  
  .excellence-image {
    order: 2;
    margin-bottom: 1.5rem;
  }
  
  .excellence-steps {
    order: 3;
  }
  
  .step-item {
    text-align: center;
    padding: 0 1rem;
  }
  
  .step-item h3 {
    font-size: 1.8rem;
    text-align: start;
  }
  
  .step-item p {
    font-size: 1.2rem;
    text-align: start;
}

}

@media (max-width: 480px) {
  .container {
    padding: 0 15px;
  }

  h1 {
    font-size: 2rem;
  }
  h2 {
    font-size: 1.8rem;
  }
  .hero-content-sobre p {
    font-size: 1.5rem;
  }

  .solutions-header h2 {
    font-size: 2.2rem;
  }
  .partnerships-content {
    display: flex;
    flex-direction: column;
  }

  .desktop-image {
    display: none;
  }

  .mobile-image {
    display: block;
    width: 100%;
    margin: 1.5rem 0;
    order: 2;
  }

  .partnerships-text {
    order: 1;
    width: 100%;
  }

  .partnerships-text h2 {
    font-size: 40px;
    text-align: center;
    margin-bottom: 1.5rem;
  }

  .partnerships-text p {
    font-size: 22px;
    text-align: center;
    margin-top: 3rem;
    margin-bottom: 3rem;
    order: 3;
    line-height: 1.4;
  }

  .partner-logos {
    order: 4;
    justify-content: center;
    /* Era nowrap, o que reforcava o transbordo em vez de o corrigir. */
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-top: 1.5rem;
  }
}






