* {
    box-sizing: border-box;
    margin:0;
    padding: 0;
}

@font-face {
  font-family: 'acp-iconfont';
  src: url('../font/acp-iconfont.woff') format('woff')
}

.iconfont-bcs,
[class*=acp-] {
  font-family: acp-iconfont !important;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html {
  font-size: 62.5%; 
}

/* Variáveis de Cores */
:root {
    --primary-color: #3ab5e6;
    --secondary-color: #0d2833;
    --light-color: #ecfaff;
    --white-color:#ffffff;
    --lighter-color: #d9f4ff;
    --accent-color: #267999;
    --black-color:#0d2833;
  }

  a:link,
  a:visited {
    color: var(--primary-color);
    text-decoration: none;
  }
  
  /* Estilo Global */
  body {
    font-family: 'Roboto', sans-serif;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    color: var(--secondary-color);
    font-size: 1.7rem;
    background-color: var(--light-color);
  }

  p {
    line-height: 1.5;
  }

  .wrapper {
    max-width: 1600px;
    margin: 0 auto;
  }

  .main-section,
  .page-default {
    padding: 8rem 2.4rem 0;
  }

  .wp-block-heading{
    margin-top: 1.5rem;
  }

  ul.wp-block-list {
    padding-left: 2rem;
  }

  .headline-primary {
    font: 400 2.8rem 'Zen Dots', sans-serif;
    color: var(--secondary-color);
    text-align: center;
  }

  

  .headline-primary p {
    font-family: 'Roboto', sans-serif;
    color: var(--secondary-color);
    font-size: 1.8rem;
    margin-top: 1rem;
  }

  .headline-secondary {
    font: 400 2.8rem 'Zen Dots', sans-serif;
    color: var(--secondary-color);
  }

  .headline-secondary p {
    font-family: 'Roboto', sans-serif;
    font-size: 1.9rem;
  }

  
  .header {
    background-color: rgba(58, 181, 230, 0.9);
    padding: 1.6rem 2.4rem;
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 999;
  }

  .wrapper--header {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .wrapper--header .logo {
      width: 170px;
    }

    .wrapper--header .logo img {
      width: 100%;
      height: auto;
      display: block;
    }
  
  .menu-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }
  
  /* Botão Hamburger */
  .hamburger {
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 5px;
    position: relative;
    z-index: 1100;
    margin: 0px;
  }

  .svg-icon {
    width: 2em;
    height: 2em;
    }

    .svg-icon path,
    .svg-icon polygon,
    .svg-icon rect {
    fill:var(--light-color);;
    }

    .svg-icon circle {
    stroke: var(--light-color);;
    stroke-width: 1;
    }
  
  /* Menu */
  .menu {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: var(--primary-color);
    color: var(--light-color);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    padding: 0;
    margin: 0;
    list-style: none;
    transition: all 0.3s ease;
    z-index:9999999;
  }
  
  .menu.open {
    display: flex;
  }

  .menu li {
  list-style: none;
  }

  .menu li a {
    font-size: 3rem;
    color: var(--light-color);
    text-decoration: none;
    font-weight: 700;
    transition: color 0.3s ease;
  }

  .menu li a:hover {
    color: var(--black-color);
  }
  
  /* Hero Section */
  .hero {
    height: 100vh;
    position: relative;
    background: url('../img/image-hero3.webp') no-repeat center center/cover; /* Substitua pelo caminho da imagem */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 2rem;
    overflow: clip;
  }
  
  .hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(58, 181, 230, 0.9); /* Usando a cor primária com transparência */
    z-index: 1;
  }
  
  .hero-text {
    position: relative;
    z-index: 2;
    color: var(--white-color);
    margin: auto;
  }
  
  .hero-text h1 {
    font-size: 4rem;
    margin-top: .4rem;
  }
  
  .hero-text p {
    font-size: 1.8rem;
    font-weight: 300;
    letter-spacing: 1px;
  }

  .btn--text {
    position: relative;
    font-size:1.5rem ;
    bottom: 40px;
    z-index: 2;
    color: var(--white-color);
    cursor: pointer;
    margin-top: auto;
  }
  
  /********************************************
  --> QUEM SOMOS
  ********************************************/
/* Seção "Quem Somos" */

.about .container {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

.about .row {
  display: grid;
  grid-template-columns: 1fr 2fr;
  align-items: center;
  gap:44px
}

.about .col {
  flex: 1;
  min-width: 300px;
}

/* Coluna da Imagem */
.about .image img {
  width: 100%;
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/* Coluna do Texto */

.headline-secondary h2 {
  margin-bottom: 1rem;
}

.headline-secondary p {
  line-height: 1.6;
}

.highlights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 32px;
}

.highlights h3 {
  font: 400 1.5rem 'Zen Dots', sans-serif;
  color: var(--accent-color);
  margin-bottom: 0.5rem;
}

.highlights p {
  line-height: 1.4;
}

  
  
  /********************************************
  --> SERVIÇOS
  ********************************************/
/* Serviços */
.services {
    background-color: var(--light-color);
  }
  
  .services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin-top: 5rem;
  }
  
  .service-item {
    /* background-color: var(--lighter-color); */
    text-align: center;
    padding: 1.5rem;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
  }
  
  .service-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
  }
  
  .service-icon {
    width: 60px;
    height: 60px;
    margin-bottom: 1rem;
  }
  
  .service-item h3 {
    font: 400 1.5rem 'Zen Dots', sans-serif;
    color: var(--accent-color);
    margin-bottom: 0.5rem;
  }
  
  .service-item p {
    color:var(--secondary-color) ;
    line-height: 1.5;
  }
  
  
  /********************************************
  --> CONTACTOS
  ********************************************/

  /* Contactos */
.contacts {
  text-align: center;
}

.contacts-list {
  display: flex;
  align-items: baseline;
  gap: 5.6rem;
  justify-content: center;
  margin-top: 5.6rem;
}

.contacts-list li {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  list-style-type: none;
}

.contacts-list li a {
  display: flex;
  align-items: center;
  gap: 4px;
  color: var(--secondary-color);

}

.icon:before {
  content: "\f12b";
  font-size: 1.5rem;
  color: var(--accent-color);
}

.contacts-list .acp-house-car:before {
  content: "\e90f";
  font-size: 3rem;
  color: var(--accent-color);
}

.contacts-list .acp-calendar4:before {
  content: "\e902";
  font-size: 3rem;
  color: var(--accent-color);
}

.contacts-list .acp-headphones:before {
  content: "\e90b";
  font-size: 3rem;
  color: var(--accent-color);
}

.contacts-list .acp-mail-thin:before {
  content: "\e915";
  font-size: 3rem;
  color: var(--accent-color);
}

form {
  margin: 0 auto;
  position: relative; /* Necessário para o posicionamento absoluto dos steps */
  overflow: clip; /* Esconde passos fora do viewport */
}

fieldset {
  display: none; /* Ocultos por padrão */
  border: 1px solid var(--lighter-color);
  border-radius: 8px;
  padding: 1.5rem;
  background-color: var(--lighter-color);
  text-align: left;
}

fieldset.active {
  display: block; /* Exibe o passo ativo */
}

legend {
  font-size: 1.2rem;
  font-weight: bold;
  color: var(--secondary-color);
}

label {
  display: block;
  font-size: 1.5rem;
  color: var(--secondary-color);
  margin-bottom: 0.5rem;
}

.next-btn, .prev-btn {
  width: auto;
  margin-right: 1rem;
}

/* Estilo básico para os passos */
/* Configuração básica para os passos */
/* Estilo para os passos */
fieldset {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
}

fieldset.active {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
}

fieldset.hidden-left {
  transform: translateX(-100%);
}

fieldset.hidden-right {
  transform: translateX(100%);
}

/* Estilo geral do formulário */


button {
  margin-top: 1rem;
}


.form-info h3 {
  font: 400 1.8rem 'Zen Dots', sans-serif;
    color: var(--accent-color);
    margin-bottom: 0.5rem;
}
.form-info p {
  font-size: 1.6rem;
  margin-top:24px;
}

.form-marcacoes {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap:3rem;
  text-align: left;
  margin-top: 3.6rem;
}



  /********************************************
  --> FOOTER
  ********************************************/
  footer {
    text-align: center;
    padding: 1rem;
    background-color: var(--primary-color);
    color: var(--light-color);
    margin-top: 4rem;
  }

  /*Política de Cookies*/

    .cookie-drawer {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: var(--white-color);
    color: var(--black-color);
    padding: 2rem;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15);
    z-index: 2000;
    transform: translateY(100%);
    transition: transform 0.4s ease;
  }

  .cookie-drawer.visible {
    transform: translateY(0);
  }

  .cookie-content {
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    gap: 1rem;
    text-align: center;
  }

  .cookie-content p {
    text-align: left;
    font-size: 1.5rem;
  }

  .cookie-buttons {
    display: flex;
    justify-content: center;
    gap: 1rem;
  }

  .cookie-buttons button {
    padding: 1rem 2rem;
    border: none;
    border-radius: 4px;
    font-weight: bold;
    cursor: pointer;
    margin-top:0;
  }

  #accept-cookies {
    background-color: var(--primary-color);
    color: var(--white-color);
    margin-top:0;
  }

  #reject-cookies {
    border: 1px solid var(--primary-color);
    background: transparent;
    color: var(--primary-color);
    margin-top: 0;
  }

  .hidden {
    display: none;
  }

  
  /********************************************
  --> MOBILE
  ********************************************/

 @media (max-width: 1000px) {

    .main-section {
      padding: 4rem 1.6rem 0;
    }
    
    .about .row {
      grid-template-columns: 1fr;
    }
    
}

@media (max-width: 768px) {
  
    .form-marcacoes {
      grid-template-columns: 1fr;
    }

    .form-fields {
      margin-top: 3.2rem;
    }

    /**Serviços - animação cards**/
    .services-grid {
      display: flex;
      overflow-x: auto;
      flex-wrap: nowrap;
      gap: 1.6rem;
      padding: 2rem 1.6rem;
      scroll-snap-type: x mandatory;
      scroll-padding: 0 1.6rem;
      -webkit-overflow-scrolling: touch;
    }

        /* Estilo para navegadores WebKit (Chrome, Safari, Edge, iOS, Android) */
    .services-grid::-webkit-scrollbar {
      height: 0.2rem;
    }

    .services-grid::-webkit-scrollbar-track {
      background: transparent;
    }

    .services-grid::-webkit-scrollbar-thumb {
      background-color: rgba(38, 121, 153, 0.6); /* var(--accent-color) com opacidade */
      border-radius: 1rem;
      transition: background-color 0.3s ease;
    }

    /* Hover sobre a área de scroll (aumenta visibilidade) */
    .services-grid:hover::-webkit-scrollbar-thumb {
      background-color: rgba(38, 121, 153, 0.9);
    }

    /* Firefox */
    .services-grid {
      scrollbar-width: thin;
      scrollbar-color: rgba(38, 121, 153, 0.6) transparent;
    }


    .service-item {
      flex: 0 0 auto;
      width: 85%;
      max-width: 30rem;
      scroll-snap-align: center;
      background: var(--white-color);
      border-radius: 8px;
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    }

    .services {
      padding-left: 0;
      overflow-x: clip;
    }

    .cookie-content {
      flex-direction: column;
    }
}

@media (max-width: 450px) {

    body {font-size: 1.6rem;}

    .headline-primary {
      font: 400 2rem 'Zen Dots', sans-serif;
    }

    .headline-primary p {
      font-size: 1.8rem;
    }
    
    
    .headline-secondary {
      font: 400 2rem 'Zen Dots', sans-serif;
    }
    
    .headline-secondary p {
      font-size: 1.8rem;
    }

    .header {
  
      padding: 1.6rem 1.6rem;
    }
      
    .hero-text h1 {
        font: 400 2.5rem 'Zen Dots', sans-serif;
        letter-spacing: 0.04rem;
    }

    .hero-text p {
      font-size: 2rem;
      letter-spacing: 0.06rem;
    }

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

    .services-grid {
      margin-top: 2rem;
      padding: 2rem 1.6rem;
    }

    .service-item h3 {
      font: 400 1.4rem 'Zen Dots', sans-serif;
      margin-bottom: 0.5rem;
      letter-spacing: 0.07rem;
      line-height: 1.4;
    }

    .contacts-list {
      display: grid;
      grid-template-columns: 1fr 1fr;
      margin-top: 3.2rem;
    }

    .form-fields {
      margin-top: 0;
    }

    .form-info h3 {
      font: 400 1.9rem 'Zen Dots', sans-serif;
    }

    .contacts-list li a {
      font-size: 1.6rem;
    }

    .form-info p {
      font-size: 1.6rem;
    } 
    
    .btn--text {
      font-size:1.5rem ;
    }

    .cookie-content p {
      font-size: 1.3rem;
    }
}