@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap");

:root {
  --font-family-default: "Montserrat", sans-serif;
  --max-width-default: 1200px;
  --section-spacing-default: clamp(3rem, 8vw, 6rem);
  --nav-spacing-default: clamp(3rem, 8vw, 6rem);
  --main-title-section: clamp();

  /* idvs-colors são as cores da identidade visual */
  --first-idvs-color: #0d1869;
  --second-idvs-color: #022044;
  --third-idvs-color: #95989c;
  --fourth-idvs-color: #f1f4f7;
  --icon-idvs-color: #0d6ee9;
  --text-idvs-color: #183751;
}

* {
  border: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: var(--font-family-default);
}

body {
  padding-top: 80px;
  scroll-behavior: smooth;
}

/* HEADER */
header {
  display: none;
}

/* BARRA DE NAVEGAÇÃO */
#barraDeNav {
  width: 100%;
  top: 0;
  position: fixed;
  padding: 0;
  background-color: #ffffff;
  z-index: 1000;
}

.container-navegacao-colapsada {
  display: flex;
  justify-content: center;
  width: 100%;
  border-bottom: 3.5px solid var(--icon-idvs-color);
}

.container-navegacao-colapsada>div {
  width: 90%;
  padding-block: 1rem;
}

.img-logo {
  height: 1.5rem;
}

.navbar-toggler {
  height: fit-content;
  padding: 0;
}

ion-icon.menu {
  color: #529dff;
  font-size: 2.5rem;
}

ul.navbar-nav {
  width: 80%;
  max-width: 300px;
  height: 100vh;
  position: fixed;
  top: 0;
  right: 0;
  background-color: #ffffff;
  box-shadow: 0px 4px 5px 0px rgba(0, 0, 0, 0.671);
  justify-content: space-between;
  overflow-y: scroll;
  overflow-x: hidden;
  gap: 6rem;
  z-index: 1001;
}

.container-links-nav {
  padding-top: 2rem;
}

a.nav-link {
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--second-idvs-color);
  padding: 1rem !important;
  white-space: nowrap;
}

a.nav-link:hover,
a.nav-link.active,
a.nav-link:focus,
a.nav-link.active:focus {
  color: var(--icon-idvs-color);
}

/* li:hover > ul.dropdown-menu {
  display: block;
  height: fit-content;
} */

ul.dropdown-menu {
  border: none;
  margin: 0;
  padding: 0 0 1.5rem 1rem;
}

#navbarSupportedContent>.navbar-nav>.container-links-nav>.nav-item.dropdown:hover>ul.dropdown-menu {
  display: block;
}

a.dropdown-item {
  font-weight: 500;
  color: var(--text-idvs-color);
  border-radius: 1rem;
}
a.dropdown-item:hover{
  color: var(--icon-idvs-color);
}
a.dropdown-item:focus {
  background-color: transparent;
}

ul .icones-redes-sociais {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  padding-bottom: 2rem;
}

.escurecer-fundo {
  position: fixed;
  height: 100%;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  z-index: 1000;
  display: block;
  top: 0;
}

/* SEÇÃO INICIAL */
.section-carousel {
  padding-bottom: var(--section-spacing-default);
  max-width: var(--max-width-default);
  margin-inline: auto;
}

#carouselHome > * {
  z-index: 0;
}

.carousel-caption {
  position: absolute;
  padding: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 95%;
}

.img-background-carousel-1,
.img-background-carousel-2,
.img-background-carousel-3 {
  height: 60vh;
  min-height: 500px;
  background-position: center;
  background-size: cover;
}

.img-background-carousel-1 {
  background-image: url(../assets/img/transoft_capa.png);
}

.img-background-carousel-2 {
  background-image: url(../assets/img/tecnomobile_capa.png);
}

.img-background-carousel-3 {
  background-image: url(../assets/img/mercado_na_rede_capa.png);
}

.container-barra-story {
  display: flex;
  justify-content: center;
  margin-top: 1rem;
}

.box-barra-story {
  width: 90%;
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 90%;
}

.barra-story-progresso,
.progresso {
  height: 0.3rem;
  border-radius: 10px;
}

.barra-story-progresso {
  background: rgba(255, 255, 255, 0.5);
  width: 100%;
}

.progresso {
  background: rgb(255, 255, 255);
  width: 0;

  animation: progredir 5s linear forwards;
}

.btn-story-play,
.btn-story-pause {
  background-color: #f0f0f0;
  mask-size: cover;
  mask-repeat: no-repeat;
  width: 1rem;
  height: 1rem;
  cursor: pointer;
}

.btn-story-play {
  mask-image: url(../assets/icons/icon_story_play.png);
}

.btn-story-pause {
  mask-image: url(../assets/icons/icon_story_pause.png);
}

.logo-carousel {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 30%;
  max-height: 150px;
  padding: 2.5rem 0;
}

.img-logo-carousel {
  width: 9rem;
}

/* .container-text-carousel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 5%;
}

.text-carousel {
  font-weight: 700;
  text-align: left;
  width: 60%;
  font-size: 1.5rem;
} */

.container-text-carousel {
  width: 90%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin: 0 auto;

  font-weight: 500;
  text-align: left;
}

.text-carousel {
  font-size: 1.5rem;
  width: 100%;
  text-align: center;
}

.btn-visitar-site {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  height: fit-content;
  font-family: var(--font-family-default);
  font-weight: 700;
  background-color: #29b63e;
  border-radius: 10px;
  border: none;
  padding: 0.5rem 1rem;
}

.container-control-carousel {
  height: 0;
  position: relative;
  display: flex;
  justify-content: space-evenly;
  bottom: 50px;
  gap: 0;
}

.grouping-btn-control {
  z-index: 1;
  text-align: center;
}

.btn-carousel-control,
.btn-carousel-control-active,
.btn-carousel-control:hover {
  border-radius: 100%;
  height: 6rem;
  width: 6rem;
}
.btn-carousel-control {
  background-color: var(--third-idvs-color);
}
.btn-carousel-control-active, 
.btn-carousel-control:hover {
  background-color: #f0f0f0;
}

.img-control-carousel {
  width: 4rem;
}

.img-control-carousel.ajuste {
  width: 4.5rem;
}

.grouping-btn-control > p {
  font-size: small;
}

/* SEÇÃO - SEJA BEM-VINDO */
.container-section-welcome {
  padding-block: var(--section-spacing-default);
  margin-top: var(--section-spacing-default);
  color: var(--text-idvs-color);
  max-width: var(--max-width-default);
  margin-inline: auto;
  
  gap: 3rem;
  display: flex;
  flex-direction: column-reverse;
}

.box-text-welcome {
  width: 90%;
  margin: 0 auto;
}

.box-text-welcome > h1 {
  text-align: center;
}

.video-intro {
  border-radius: 0;
  width: 100%;
  height: auto;
}

.btn-pause,
.btn-play {
  position: absolute;
  background-color: rgba(255, 255, 255, 0.603);
  mask-size: cover;
  bottom: 10%;
  left: 82%;
  height: 3rem;
  width: 3rem;
  cursor: pointer;
}
.btn-pause {
  mask-image: url(../assets/icons/icon_pause.png);
}
.btn-play {
  mask-image: url(../assets/icons/icon_play.png);
}

/* FORMULÁRIO DE CONTATO */
#contatos {
  background-color: #fff;
  color: var(--text-idvs-color);
  width: 100%;
  padding-block: var(--section-spacing-default);
  max-width: var(--max-width-default);
  scroll-margin-top: 100px;
  margin-inline: auto;
}

#contatos > div.container {
  width: 90%;
  max-width: var(--max-width-default);
  margin: 0 auto;
  background-color: #fff;
  color: var(--text-idvs-color);
  scroll-margin-top: 100px;
  padding-inline: 0;
}

#contatos a.btn-entrar-contato {
  width: fit-content;
  height: fit-content;
  display: flex;
  align-items: center;
  padding: .5rem 1rem;
  margin-block: 1rem;
  background-color: var(--icon-idvs-color);
  color: #ffffff;
  border-radius: 10px;
  font-weight: 600;
  text-decoration: none;
  border: 2px solid var(--icon-idvs-color);
}
#contatos a.btn-entrar-contato ion-icon {
  font-size: 1.5rem;
}

#contatos a.btn-entrar-contato:hover {
  color: var(--icon-idvs-color);
  background-color: transparent;
  border: 2px solid var(--icon-idvs-color);
}

.texto-consentimento {
  font-size: 14px;
  text-align: justify;
}

.texto-consentimento a {
  color: var(--text-idvs-color);
  font-weight: bolder;
  text-decoration: none;
}

#btnFaleConosco {
  font-family: var(--font-family-default);
  background-color: var(--icon-idvs-color);
  border: 3px solid var(--icon-idvs-color);
  color: #ffff;
  width: 100%;
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  border-radius: 50px;
  padding: 0.5rem 1rem;
  font-size: 1rem;
  font-weight: bold;
}
#btnFaleConosco:hover {
  color: var(--icon-idvs-color);
  background-color: transparent;
}

#contatos input[type="text"],
#contatos input[type="email"],
#contatos input[type="url"],
#contatos input[type="password"],
#contatos input[type="search"],
#contatos input[type="number"],
#contatos input[type="tel"],
#contatos input[type="range"],
#contatos input[type="date"],
#contatos input[type="month"],
#contatos input[type="week"],
#contatos input[type="time"],
#contatos input[type="datetime"],
#contatos input[type="datetime-local"],
#contatos input[type="color"],
#contatos textarea {
  padding: 8px;
}

#containerNotifications {
  position: fixed;
  max-width: 350px;
  padding-inline: 1em;
  max-height: 85vh;
  overflow-y: scroll;
  overflow-x: visible;
  scrollbar-width: none;
  bottom: 0;
  right: 0;
  margin-right: 10px;
  z-index: 1;
}

#alert-success, #alert-fail, #alert-warning {backdrop-filter: blur(10px);}

#alert-success {background-color: #5aec7038;}
#alert-warning {background-color: #ecd45a38;}
#alert-fail {background-color: #ff000038;}

#alert-success ion-icon, #alert-fail ion-icon, #alert-warning ion-icon {min-width: 40px;}


/* Adicionar no select ramo e estado essas classes para estilizá-los */
/* option {
    background-color: #f0f0f0;
}

.select-estado, .select-ramo {
    background-color: #f0f0f0;
    width: 19.1rem;
    height: 2.7rem;
    padding: 0.rem;
    border: 1px solid #ced4da;
    border-radius: .25rem;
    color: #696969;

    
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
} */

/* MAPA DA TRANSOFT */
#map {
  width: 100%;
  height: 30rem;
  position: relative;
}

.container-Botoes-Endereco {
  width: 100%;
  height: 65px;
  display: flex;
  justify-content: center;
  gap: 10px;
  background-color: rgba(0, 42, 90, 0.7);
  position: absolute;
  z-index: 999;
  padding: 8px 0px 8px 0px;
}

.bt-localizacao {
  background: transparent;
  border: 1px solid #fff;
  padding: 10px 20px 10px 20px;
  color: #fff;
  border-radius: 10px;
  margin-right: 15px;
  cursor: pointer;
  position: relative;
  height: 50px;
  width: 150px;
  font-size: 16px;
}

.bt-Localizacao-Selecionado {
  background-color: #fff;
  color: black;
}

/* RODAPÉ */
footer {
  width: 100%;
  position: relative;
  bottom: 0;
  color: var(--text-idvs-color);
  background-color: var(--fourth-idvs-color);
}

.container-footer {
  width: 90%;
  max-width: var(--max-width-default);
  margin: 0 auto;
  padding-top: var(--section-spacing-default);
  padding-bottom: 2rem;
  max-width: var(--max-width-default);
  margin-inline: auto;
}

.box-footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.logo-footer>img {
  width: 5rem;
  height: auto;
}

.texto-footer {
  display: flex;
  gap: 1rem;
  text-align: end;
}

.texto-footer>div>p {
  font-size: .8rem;
}

hr.footer-line {
  color: var(--text-idvs-color);
  height: 2px;
  border-radius: 50px;
  opacity: 1;
}

.footer-end {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}

.footer-end>p {
  text-align: center;
  font-size: .8rem;
}

.icones-redes-sociais {
  gap: 1rem;
}

.esfera-icones-redes-sociais {
  background-color: var(--text-idvs-color);
  border-radius: 100px;
  padding: 10px;

  display: flex;
  justify-content: center;
  align-items: center;
}

.esfera-icones-redes-sociais:hover {
  background-color: var(--icon-idvs-color);
}

ion-icon.logo-instagram,
ion-icon.logo-linkedin,
ion-icon.logo-youtube {
  color: #fff;
  font-size: 1.2rem;
}

/* ----------------------- Personalização do Bootstrap ----------------------- */

/* ----------------------- Classes Bootstrap Criadas ----------------------- */

.second-idvs-color {
  color: var(--second-idvs-color);
}

.fw-500 {
  font-weight: 500;
}

.text-idvs-color {
  color: var(--text-idvs-color);
}

/* ----------------------- Animações ----------------------- */
@keyframes subir {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.slide-animado {
  opacity: 0;
  transform: translateY(40px);
}

.slide-animado.ativo {
  animation: subir 1s ease-out forwards;
}

@keyframes progredir {
  from {
    width: 0%;
  }

  to {
    width: 100%;
  }
}

/* ---------------------------------- Responsividade do site ------------------------------------ */
/* Mobile (até 480px) XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/
@media (max-width: 480px) {
  #map {
    height: 23rem;
  }

  .container-Botoes-Endereco {
    height: 60px;
    display: flex;
  }

  .bt-localizacao {
    height: 40px;
    width: 145px;
    font-size: 15px;
  }
}

@media (min-width: 576px) {
  .container-control-carousel {
    justify-content: center;
    bottom: 4.5rem;
    gap: 2rem;
  }

  .btn-carousel-control,
  .btn-carousel-control-active,
  .btn-carousel-control:hover {
    height: 9rem;
    width: 9rem;
  }

  .img-control-carousel {
    width: 5rem;
  }
  .img-control-carousel.ajuste {
    width: 5.5rem;
  }

  .btn-pause,
  .btn-play {
    bottom: 10%;
    left: 82%;
    height: 5rem;
    width: 5rem;
  }

  .logo-footer>img {
    width: 10rem;
    height: auto;
  }
}

@media (min-width: 768px) {
  .container-section-welcome {
    width: 90%;
    margin: 0 auto;
    display: block;
  }

  .box-text-welcome {
    width: 100%;
    margin: 0;
  }

  .box-text-welcome > h1 {
    text-align: left;
  }

  .video-intro {
    border-radius: 15px;
    height: 20rem;
    width: auto;
    margin: 0 0 .5rem 2rem;
  }

  .btn-pause,
  .btn-play {
    position: absolute;
    background-color: rgba(255, 255, 255, 0.603);
    mask-size: cover;
    bottom: 10%;
    left: 82%;
    height: 3rem;
    width: 3rem;
    cursor: pointer;
  }
  .btn-pause {
    mask-image: url(../assets/icons/icon_pause.png);
  }
  .btn-play {
    mask-image: url(../assets/icons/icon_play.png);
  }
}

@media (min-width: 992px) {}

@media (min-width: 1200px) {
  body {
    padding: 0;
  }

  header {
    width: 100%;
    background-color: var(--second-idvs-color);
    color: #ffff;
  }

  .container-header {
    width: 90%;
    max-width: var(--max-width-default);
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-block: 1rem;
  }

  .container-telefone,
  .container-saa-email {
    display: flex;
    align-items: center;
  }

  .container-saa-email {
    gap: 3rem;
  }

  .btn-saa {
    text-align: center;
    font-weight: 600;
    border: 2px solid #fff;
    border-radius: 5px;
    color: #fff;
    text-decoration: none;
    padding-inline: 2rem;
    transition: background-color 300ms ease-in-out;
  }

  .btn-saa:hover {
    color: #fff;
    background-color: var(--icon-idvs-color);
    transition: background-color 400ms ease-in-out;
  }

  .container-telefone p,
  .container-saa-email p {
    font-size: 0.9rem;
    font-weight: 700;
    margin: 0;
  }

  .container-telefone button {
    background-color: transparent;
    color: #ffffff;
    font-weight: 600;
    border: 2px solid var(--icon-idvs-color);
    border-radius: 5px;
    padding-inline: .5rem;
    transition: background-color 300ms ease-in-out;
  }

  .container-telefone button:hover {
    background-color: var(--icon-idvs-color);
    color: #ffffff;
    font-weight: 600;

    transition: background-color 400ms ease-in-out;
  }

  .box-saa-email {
    display: flex;
    align-items: center;
  }

  ion-icon[name="mail-outline"] {
    color: var(--icon-idvs-color);
    font-size: 1.5rem;
    --ionicon-stroke-width: 50px;
  }

  ion-icon[name="call"] {
    font-size: 1.5rem;
    --ionicon-stroke-width: 50px;
  }

  #barraDeNav {
    position: static;
    width: 90%;
    max-width: var(--max-width-default);
    margin: 0 auto;
    padding-block: clamp(2rem, 8vw, 2rem);
    gap: 2rem;
    z-index: 0;
  }

  .container-navegacao-colapsada {
    width: fit-content;
    border-bottom: none;
  }

  .container-navegacao-colapsada>div {
    width: fit-content;
    padding-block: 0;
  }

  .img-logo {
    height: 1.7rem;
  }

  #navbarSupportedContent {
    width: 100%;
    display: flex;
    justify-content: end;
  }

  ul.navbar-nav {
    width: fit-content;
    max-width: none;
    height: 100%;
    position: static;
    box-shadow: none;
    overflow-y: visible;
    overflow-x: visible;
    z-index: 1;
  }

  .container-links-nav {
    display: flex;
    padding: 0;
  }

  a.nav-link {
    white-space: nowrap;
    font-weight: 700;
    font-size: 1rem;
    color: var(--second-idvs-color);
    padding-block: 1rem;
  }

  a.nav-link:hover,
  a.nav-link.active,
  a.nav-link:focus,
  a.nav-link.active:focus {
    color: var(--icon-idvs-color);
  }

  ul.dropdown-menu {
    border-radius: 1rem;
    /* border: 1px solid var(--third-idvs-color); */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1),
      0 4px 6px -2px rgba(0, 0, 0, 0.05);
    margin: 0;
    padding: 0;
  }

  .section-carousel {
    width: 90%;
  }

  .img-background-carousel-1,
  .img-background-carousel-2,
  .img-background-carousel-3 {
    border-radius: 15px;
  }
}