@import url('https://fonts.googleapis.com/css?family=Montserrat:400,700&display=swap');

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  list-style: none;
  font-family: 'Montserrat', sans-serif;
}

body {}

.header {
  background-color: #66b3bf;
  padding: 10px 0;
}

.navbar-brand {
  display: flex;
  align-items: center;
  height: 100%;
  /* Definir a altura para 100% do container do nav */
}

.navbar-brand img {
  max-width: 70px;
  /* Largura máxima da imagem */
  height: auto;
  /* Altura automática para manter a proporção da imagem */
}

/* CSS existente para as imagens dentro de .nav-logos */
.nav-logos img {
  margin-left: 10px;
  height: auto;
  /* Ajusta a altura automaticamente para manter a proporção da imagem */
}

/* CSS para os logos do Google e TripAdvisor */
.nav-logos .logo-google,
.nav-logos .logo-tripadvisor {
  width: 150px;
  /* Define a largura como 150px */
  max-width: none;
  /* Sobrescreve qualquer regra max-width anterior */
}

/* Aplica a altura máxima para os logos do Google, TripAdvisor e cadeado */
.nav-logos .logo-google,
.nav-logos .logo-tripadvisor,
.nav-logos .logo-lock {
  max-height: 45px;
  /* Define a altura máxima como 45px */
  width: auto;
  /* Ajusta a largura automaticamente para manter a proporção da imagem */
}



.footer {
  background-color: #eaeaea;
  padding: 20px 0;
  margin-top: 30px;
}

.copyright {
  font-size: 14px;
  color: #777;
}

.btn-active {
  background-color: white;
  /* Cor de fundo do botão ativo */
  color: #1c875b;
  /* Cor da fonte do botão ativo */
  font-size: 12px;
  border: 2px solid #1c875b;
}

/* Garanta que o Bootstrap não sobrescreva o estilo do botão ativo em estados como :hover ou :focus */
.btn-active:hover,
.btn-active:focus,
.btn-active:active,
.btn-active.active {
  border: 2px solid #1c875b;
  background-color: #1c875b;
  /* Um tom mais escuro de azul para o hover */
  color: #ffffff;
}

/* Media query específica para dispositivos móveis */
@media (max-width: 768px) {
  .btn-group-vertical>.btn {
    width: 100%;
    /* Define a largura dos botões para 80% em dispositivos móveis */
    margin-bottom: 20px;
    /* Espaçamento de 20px entre os botões em dispositivos móveis */
  }

  .btn-group-vertical {
    width: 100%;
    /* Ajusta a largura do grupo de botões para o contêiner em dispositivos móveis */
    flex-direction: column;
    /* Empilha os botões verticalmente em dispositivos móveis */
  }
}

/* Media query para telas maiores que 768px (tablets em paisagem e desktops) */
@media (min-width: 769px) {

  #dataPayment .details-title {
    flex-direction: row !important;
  }

  .btn-group-vertical>.btn {
    width: auto;
    /* Restaura a largura padrão dos botões */
    margin-bottom: 0;
    /* Remove o espaçamento entre botões */
  }

  .btn-group-vertical {
    flex-direction: row;
    /* Mantém os botões em linha no desktop */
    justify-content: start;
    /* Alinha os botões à esquerda */
  }
}



.btn-book {
  background-color: #E59318;
  /* Cor de fundo laranja */
  color: #ffffff;
  /* Cor da fonte do botão ativo */
  padding: 2px 16px 2px 16px;
  font-size: 14px;
}


.duration-title {
  font-size: 16px;
  color: #777;
}

/* Info block styling */
.opts-block {
  background-color: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 5px;
  padding: 15px;
  margin-bottom: 15px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  /* Espaçamento máximo entre itens, empurrando o último para o fundo */
  height: 100%;
  /* Certifique-se de que o bloco ocupa toda a altura disponível de seu container */
}


/* Info block styling */
.info-block {
  background-color: #ffffff;
  /* border-bottom: 1px solid #dee2e6; */
  border-radius: 5px;
}


/* Info block styling */
.info-block-red {
  background-color: #FFE3E3;
  border: 1px solid #dee2e6;
  border-radius: 5px;
  padding: 15px;
  margin-bottom: 15px;
}


/* Info block styling */
.info-block-gray {
  background-color: #FFFFFF;
  border: none;
  border-radius: 5px;
  padding: 15px;
  margin-bottom: 15px;
}


.details-block {
  background-color: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 5px;
  padding: 15px;
  margin-bottom: 15px;
}

.policy-block {
  margin-bottom: 15px;
}

.payment-total-value {
  width: 50%;
  text-align: right;
}

.location-title-school,
.location-title {
  font-weight: normal;
  font-size: 1rem;
  display: flex;
  align-items: center;
  color: black;
}

.location-title {
  background-color: #1c875b81;
}

.location-title i {
  margin-right: 10px;
}

.location-name {
  font-weight: bold;
  font-size: 18px !important;
}

.details-name {
  font-weight: 500;
  font-size: 22px;
  padding-left: 10px;
  padding-top: 20px;
  padding-bottom: 10px;
}


.receipt-details-title {
  font-weight: 600;
  font-size: 26px;
  padding-left: 10px;
  padding-bottom: 10px;
  padding-top: 15px;
}

.receipt-price {
  margin-left: 10px;
  font-size: 20px;
  /* Tamanho da fonte dos preços */
}

.receipt-total-title {
  font-weight: bold;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 26px;
  padding-left: 10px;
  padding-right: 10px;
}

.receipt-details-attendee {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 20px;
  padding-left: 10px;
  padding-right: 10px;
}


.receipt-details-policy {
  font-size: 20px;
  padding-left: 10px;
  padding-right: 10px;
  padding-bottom: 5px;
}


.receipt-subtitle {
  font-weight: 500;
  font-size: 22px;
  text-align: center;
}

.receipt-thanks {
  font-weight: 300;
  font-size: 22px;
  text-align: center;
}

.receipt-date {
  font-weight: 500;
  font-size: 20px;
  text-align: center;
  padding-bottom: 30px;
  color: #038B00;
}


.lesson-title {
  font-weight: 500;
  font-size: 22px;
  display: flex;
  align-items: center;
  color: #66b3bf;
  margin-left: 10px;
}

.lesson-title i {
  margin-right: 10px;
}


.activity-title {
  font-size: 1rem;
  display: flex;
  align-items: center;
}

.activity-icon {
  max-height: 24px;
  /* Define a altura máxima como 24px */
  width: auto;
  /* Ajusta a largura automaticamente para manter a proporção */
  margin-right: 10px;
  /* Adiciona um espaço entre a imagem e o texto */
}

.activity-name {
  font-weight: bold;
  font-size: 27px !important;
}

.lesson-info {
  font-size: 16px;
  color: #333;
}

img.activity-img-default {
  width: 100%;
}

.lesson-description {
  font-size: 0.875rem;
  color: #333;
}

.see-more {
  font-size: 14px;
  color: #66b3bf;
}

.option-price {
  text-decoration: none;
  font-size: 1rem;
  color: #66b3bf;
  padding-bottom: 2px;
  /* Espaçamento entre o texto e a linha */
  display: inline-block;
  /* Necessário para a borda aparecer corretamente */
}

.address {
  font-size: 0.875rem;
  color: #333;
}

.stunning-beach {
  font-size: 0.875rem;
  color: #333;
  margin-top: 10px;
}

.stunning-beach i {
  margin-right: 5px;
}

/* Colors */
.text-warning {
  color: #ffc107;
}



.equipment-title {
  font-size: 1rem;
  display: flex;
  align-items: center;
}

.equipment-icon {
  max-height: 24px;
  /* Define a altura máxima como 24px */
  width: auto;
  /* Ajusta a largura automaticamente para manter a proporção */
  margin-right: 10px;
  /* Adiciona um espaço entre a imagem e o texto */
}

.equipment-included,
.what-to-bring {
  font-weight: bold;
  font-size: 18px;
}

.included-items,
.bring-items {
  font-size: 1rem;
  color: #333;
}

.instructor-icon {
  max-height: 24px;
  /* Define a altura máxima como 24px */
  width: auto;
  /* Ajusta a largura automaticamente para manter a proporção */
}

.certified-instructor {
  font-weight: bold;
  font-size: 18px;
}

.instructor-info {
  font-size: 1rem;
  color: #333;
}


.shopping-icon {
  max-height: 24px;
  width: auto;
  margin-right: 10px;
}

.total-section h3,
.date-title,
.details-title {
  font-weight: bold;
  font-size: 1.55rem;
}

.city-tax {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.prices h3 {
  font-size: 1.2rem;
}

.warning-info-payment {
  font-weight: 400;
  font-size: 16px;
  margin-bottom: 1.5rem;
}


.payment-order-title {
  font-weight: 600;
  font-size: 1.25rem;
  /* Tamanho da fonte como nos outros títulos */
  margin-bottom: 1.5rem;
  text-align: center;
}

.order-payment-info {
  font-weight: 600;
  font-size: 24px;
  /* Tamanho da fonte como nos outros títulos */
  margin-bottom: 1.5rem;
  text-align: center;
}

.date-payment-title {
  font-weight: 500;
  font-size: 18px;
  /* Tamanho da fonte como nos outros títulos */
  margin-bottom: 0.5rem;
  text-align: center;
}


.date-payment-info {
  font-weight: 400;
  font-size: 16px;
  /* Tamanho da fonte como nos outros títulos */
  margin-bottom: 1.5rem;
  text-align: center;
}


.email-payment-title {
  font-weight: 500;
  font-size: 18px;
  /* Tamanho da fonte como nos outros títulos */
  margin-bottom: 0.5rem;
  text-align: center;
}


.email-payment-info {
  font-weight: 400;
  font-size: 16px;
  /* Tamanho da fonte como nos outros títulos */
  margin-bottom: 1.5rem;
  text-align: center;
}


.location-payment-title {
  font-weight: 500;
  font-size: 18px;
  /* Tamanho da fonte como nos outros títulos */
  margin-bottom: 0.5rem;
  text-align: center;
}


.location-payment-info {
  font-weight: 400;
  font-size: 16px;
  /* Tamanho da fonte como nos outros títulos */
  margin-bottom: 1.5rem;
  text-align: center;
}


.reservation-payment-title {
  font-weight: 500;
  font-size: 18px;
  /* Tamanho da fonte como nos outros títulos */
  margin-bottom: 0.5rem;
  text-align: center;
}


.reservation-payment-info {
  font-weight: 400;
  font-size: 16px;
  /* Tamanho da fonte como nos outros títulos */
  margin-bottom: 1.5rem;
  text-align: center;
}


.reservation-date-title {
  font-weight: 500;
  font-size: 18px;
  /* Tamanho da fonte como nos outros títulos */
  margin-bottom: 0.5rem;
  text-align: center;
}


.reservation-date-info {
  font-weight: 400;
  font-size: 16px;
  /* Tamanho da fonte como nos outros títulos */
  margin-bottom: 1.5rem;
  text-align: center;
}


.date-title {
  margin-bottom: 10px;
  /* Assegura espaço abaixo do título */
}


.check-badge-active {
  display: inline-block;
  width: 24px;
  background-color: #000000;
  color: white;
  padding: 0;
  /* Padding da badge de data */
  text-align: center;
  /* Texto centralizado na badge de data */
  font-size: 1rem;
  /* Tamanho da fonte na badge de data */
  border-radius: 1.25rem;
  /* Bordas arredondadas da badge de data */
  margin-right: 5px;
}

.check-badge-inactive {
  display: inline-block;
  width: 24px;
  background-color: rgb(0, 0, 0);
  color: #ececec;
  border: 1px solid #ffffff;
  padding: 0;
  /* Padding da badge de data */
  text-align: center;
  /* Texto centralizado na badge de data */
  font-size: 1rem;
  /* Tamanho da fonte na badge de data */
  border-radius: 1.25rem;
  /* Bordas arredondadas da badge de data */
  margin-right: 5px;
}


.step-container {
  position: relative;
  padding: 10px 0;
  display: flex;
  align-items: center;
}

.step-title {
  font-weight: bold;
  margin-left: 10px;
}

/* Linha à esquerda para os steps intermediários e finais */
.step-line-left {
  height: 2px;
  background-color: #ccc;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 70%;
  right: calc(100% + -50px);
}

.step-line-right {
  height: 2px;
  background-color: #ccc;
  position: absolute;
  top: 50%;
  transform: translateY(+50%);
  width: 70%;
  left: calc(100% + -50px);
}


/* Oculta a linha à esquerda para o primeiro step */
.first-step .step-line-left {
  display: none;
}

/* Responsividade para dispositivos móveis */
@media (max-width: 767px) {
  .step-container {
    flex-direction: column;
  }

  .step-title {
    margin-left: 0;
  }

  .step-line-right,
  .step-line-left {
    display: none;
  }

  .col-12 {
    /* margin-bottom: 15px; */
  }

  #dataPayment .details-title {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
}

.date-badge {
  min-width: 50px;
  /* Largura mínima da badge de data */
  padding: 5px;
  /* Padding da badge de data */
  text-align: center;
  /* Texto centralizado na badge de data */
  font-size: 1rem;
  /* Tamanho da fonte na badge de data */
  border-radius: 0.25rem;
  /* Bordas arredondadas da badge de data */
}

.time-text span {
  font-size: 16px;
  /* Tamanho da fonte para o horário */
  color: #777;
}


.date-badge span {
  font-size: 12px;
  /* Tamanho da fonte para o dia mes */
}

.datamonth {
  padding: 5px 0;
}

.select-btn {
  padding: 0.375rem 0.75rem;
  /* Padding para o botão */
  font-size: 1rem;
  /* Tamanho da fonte no botão */
  border: none;
  /* Remove a borda do botão */
  border-radius: 0.25rem;
  /* Bordas arredondadas para o botão */
  text-align: center;
  /* Texto centralizado no botão */
}

.selected-btn {
  background-color: #28a745 !important;
  padding: 0.375rem 0.75rem;
  /* Padding para o botão */
  font-size: 1rem;
  /* Tamanho da fonte no botão */
  border: none;
  /* Remove a borda do botão */
  border-radius: 0.25rem;
  /* Bordas arredondadas para o botão */
  text-align: center;
  /* Texto centralizado no botão */
  width: 80px;
}



/* Responsividade para telas pequenas */
@media (max-width: 768px) {
  .date-badge {
    margin-bottom: 10px;
    /* Espaço abaixo de cada item para telas menores */
    width: 50px
      /* Ocupam toda a largura disponível em telas menores */
  }
}


@media (max-width: 768px) {
  .select-btn {
    margin-bottom: 10px;
    /* Espaço abaixo de cada item para telas menores */
    width: 80px
      /* Ocupam toda a largura disponível em telas menores */
  }
}

.attendee-name,
.tax-fee,
.total-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 1rem;
  /* Tamanho da fonte dos detalhes */
}


.total-title .price {
  font-size: 1.5rem;
  color: #1c875b;
}

.price {
  font-size: 1rem;
  /* Tamanho da fonte dos preços */
}

.price_person {
  font-size: 13px;
}

.price-in-badge {
  font-size: 1.2rem;
}


/* Garantir que os inputs tenham bordas como na imagem */
.form-control {
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
}


.form-control.attendees-select {
  max-width: 70px;
  /* Define a largura máxima como 70px */
}


#datetimepicker1 {
  max-width: 320px;
}

/* Estilização para o container do datepicker */
.datepicker-container {
  position: relative;
  /* Para o posicionamento do ícone do calendário, se necessário */
}

/* Estilização para o input do datepicker */
.datepicker {
  cursor: pointer;
  /* Muda o cursor para indicar que o campo é clicável */
  background-color: #ffffff;
  /* Fundo branco para o input */
  border: 1px solid #ced4da;
  /* Borda como nos outros inputs */
  border-radius: 0.25rem;
  /* Arredondamento da borda */
  padding: 0.375rem 0.75rem;
  /* Padding interno */
  font-size: 1rem;
  /* Tamanho da fonte */
  line-height: 1.5;
  /* Altura da linha */
  width: 100%;
  /* Ocupar toda a largura disponível */
}

.form-check-label {
  display: block;
  /* Certifique-se de que a label ocupe toda a linha para o clique */
}

.attendee-number {
  display: block;
  /* Faz com que o label apareça em uma nova linha */
  font-weight: bold;
}

.add-on-image {
  width: 120px;
  /* Ajuste para o tamanho da sua imagem */
  height: auto;
  margin-right: 15px;
}

.add-on-name {
  font-size: 17px;
  font-weight: bold;
  text-transform: uppercase;
  /* Para caixa alta */
  margin-bottom: 0.5rem;
}

.add-on-description {
  color: #777;
  font-size: 14px;
  text-align: justify;
}

.btn-back {
  background-color: #1c875b;
  /* Cor de fundo laranja */
  color: white;
  /* Cor do texto branco */
  border: none;
  /* Sem borda */
  padding: 10px 20px;
  /* Padding para tamanho do botão */
  margin-top: 20px;
  /* Espaço acima do botão */
  border-radius: 5px;
  /* Bordas levemente arredondadas */
  align-self: flex-end;
  /* Alinhamento à direita dentro do flex container */
  cursor: pointer;
  /* Estilo do cursor para indicar clique */
  width: 40%;
}

.btn-back:hover,
.btn-back:focus {
  background-color: #66B3BF;
  color: #ffffff;
}

.btn-next-step {
  background-color: #1c875b;
  font-weight: 700;

  /* Cor de fundo laranja */
  color: white;
  /* Cor do texto branco */
  border: none;
  /* Sem borda */
  padding: 10px 20px;
  /* Padding para tamanho do botão */
  margin-top: 20px;
  /* Espaço acima do botão */
  border-radius: 5px;
  /* Bordas levemente arredondadas */
  align-self: flex-end;
  /* Alinhamento à direita dentro do flex container */
  cursor: pointer;
  /* Estilo do cursor para indicar clique */
  width: 40%;
}

.btn-next-step-mobile {
  background-color: #1c875b;
  /* Cor de fundo laranja */
  color: white;
  /* Cor do texto branco */
  border: none;
  /* Sem borda */
  padding: 10px 20px;
  /* Padding para tamanho do botão */
  margin-top: 20px;
  /* Espaço acima do botão */
  border-radius: 5px;
  /* Bordas levemente arredondadas */
  align-self: flex-end;
  /* Alinhamento à direita dentro do flex container */
  cursor: pointer;
  /* Estilo do cursor para indicar clique */
  width: 100%;
  font-weight: 700;
}

.btn-next-step i {
  margin-left: 5px;
  /* Espaço entre o texto do botão e o ícone */
}


.price-badge {
  color: #000 !important;
  background-color: transparent !important;
  font-size: 0.5rem !important;
  padding: 0.5rem;
  display: inline-block;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-bottom: 0.5rem;
}

.qty {
  width: 40px;
  text-align: center;
}

.quantity-selector button {
  /* border: none !important; */
  padding: 6px 12px;
}

.quantity-selector span {
  border-top: 1px solid #6c757d;
  border-bottom: 1px solid #6c757d;
  padding: 6px 12px;
}

.quantity-selector button:first-child {
  border-radius: 20px 0 0 20px;
}

.quantity-selector button:last-child {
  border-radius: 0 20px 20px 0;
}

@media(max-width: 995px) {
  #dataPayment .details-title {
    flex-direction: column !important;
  }
}

@media (min-width: 767px) {
  .btn-next-step-mobile {
    display: none;
  }
}


/* Estilos para dispositivos maiores (desktops) */
@media (max-width: 768px) {
  .desktop-logo-size {
    max-height: 80px;
  }

  .nav-logos .logo-google,
  .nav-logos .logo-tripadvisor,
  .nav-logos .logo-lock {
    max-height: 30px;
  }
}


@media (max-width: 767px) {
  .quantity-selector {
    justify-content: center;
    /* Centraliza o seletor de quantidade em dispositivos móveis */
  }

  .add-on-name {
    text-align: center;
  }

  .btn-next-step {
    display: none;
  }

  .price-summary-block {
    margin-left: 15px;
    margin-right: 15px;
  }

}



.map-size {
  width: 100%;
  height: auto;
}



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




/*alert*/
.alert-secondary {
  display: flex;
  align-items: center;
  background-color: #e2e3e5;
  /* Cor cinza claro */
  color: #383d41;
  /* Cor do texto */
}

.alert-secondary .fas {
  margin-right: 10px;
  /* Espaço entre o ícone e o texto */
}


/*Icons*/
.wave-icon {
  max-height: 24px;
  /* Define a altura máxima como 24px */
  width: auto;
  /* Ajusta a largura automaticamente para manter a proporção */
  margin-right: 5px;
  /* Adiciona um espaço entre a imagem e o texto */
}

.star-icon {
  max-height: 24px;
  /* Define a altura máxima como 24px */
  width: auto;
  /* Ajusta a largura automaticamente para manter a proporção */
  margin-right: 5px;
  /* Adiciona um espaço entre a imagem e o texto */
}

.info-icon {
  height: 16px;
  /* ou a altura que você deseja para o ícone */
  width: auto;
  /* para manter a proporção */
  margin-right: 5px;
  /* espaço entre o ícone e o texto */
}

.check-icon {
  max-height: 24px;
  /* Define a altura máxima como 24px */
  width: auto;
  /* Ajusta a largura automaticamente para manter a proporção */
  margin-right: 5px;
  /* Adiciona um espaço entre a imagem e o texto */
}

.lesson-icon {
  max-height: 54px;
  /* Define a altura máxima como 24px */
  width: auto;
  /* Ajusta a largura automaticamente para manter a proporção */
  margin-right: 15px;
  /* Adiciona um espaço entre a imagem e o texto */
}


.roboto-thin {
  font-family: "Montserrat", sans-serif;
  font-weight: 100;
  font-style: normal;
}

.roboto-light {
  font-family: "Montserrat", sans-serif;
  font-weight: 300;
  font-style: normal;
}

.roboto-regular {
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.roboto-medium {
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.roboto-bold {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.roboto-black {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-style: normal;
}

.roboto-thin-italic {
  font-family: "Montserrat", sans-serif;
  font-weight: 100;
  font-style: italic;
}

.roboto-light-italic {
  font-family: "Montserrat", sans-serif;
  font-weight: 300;
  font-style: italic;
}

.roboto-regular-italic {
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  font-style: italic;
}

.roboto-medium-italic {
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  font-style: italic;
}

.roboto-bold-italic {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-style: italic;
}

.roboto-black-italic {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-style: italic;
}

.btn-group-subsports {
  width: 98%;
  margin: 0 10px 15px 10px;
}

.btn-group-subsports button {
  margin-right: 3px;
}

.nav {
  width: 100%;
  margin-bottom: 10px;
}

.nav-item a {
  border-radius: 0.4rem;
  margin-right: 3px;
  border: 1px solid #fffefe;
  color: #000000;
  text-decoration: none;
  padding: 10px 12px !important;
}

.nav-item a.active {
  border-radius: none;
  background-color: #000000;
  color: white;
}

.bgGray {
  background: #EEEEEE
}

.legend {
  margin-bottom: 10px;
}

.square {
  width: 20px;
  height: 20px;
  display: inline-block;
}

.yellow {
  background-color: orange;
}

.blue {
  background-color: dodgerblue;
}

.green {
  background-color: green;
}

.required {
  color: red;
  /* Cor do asterisco */
}

/* Estilo do input quando estiver em foco */
.form-control:focus+.input-group-append .required {
  color: #ccc;
  /* Cor do asterisco quando o input está em foco */
}

.start-booking-title {
  padding: 11px;
  line-height: 2rem;
  padding-left: 17px;
  font-size: 18px;
}

#head-tab-product {
  width: 100%;
}

#tab-group-deus {
  display: flex !important;
  flex-direction: row;
  flex-wrap: wrap;
}

.country-selector {
  position: relative;
  width: 100%;
}

.span-flags {
  position: relative;
  cursor: pointer;
  padding: 6px 12px;
  background: #f8f9fa;
  border-left: 1px solid #ced4da;
}

.ul-flags-country {
  position: fixed;
  background-color: white;
  z-index: 9999;
  left: 50%;
  transform: translateX(-50%);
  width: 95%;
  max-width: 500px;
  max-height: 80vh;
  overflow-y: auto;
  border: 1px solid #ced4da;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
  padding: 12px 0;
  margin: 0;
  list-style: none;
  top: 50%;
  transform: translate(-50%, -50%);
  background: #ffffff;
}

.ul-flags-country::-webkit-scrollbar {
  width: 8px;
}

.ul-flags-country::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 4px;
}

.ul-flags-country::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 4px;
}

.ul-flags-country::-webkit-scrollbar-thumb:hover {
  background: #666;
}

.ul-flags-country li {
  padding: 12px 20px;
  font-size: 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
  background-color: #ffffff;
  border-bottom: 1px solid rgba(0,0,0,0.05);
}

.ul-flags-country li:last-child {
  border-bottom: none;
}

.ul-flags-country li:hover {
  background-color: #f8f9fa;
}

.ul-flags-country li.active {
  background-color: #f8f9fa;
}

#li-us {
  border-bottom: 2px solid #dee2e6;
  padding-bottom: 16px !important;
  margin-bottom: 12px !important;
  background-color: #ffffff;
}

#li-us:hover {
  background-color: #f8f9fa;
}

.img-flag-country {
  width: 32px;
  height: 24px;
  object-fit: cover;
  border-radius: 3px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.ul-flags-country li span {
  color: #333;
  font-weight: 500;
}

.ul-flags-country li span:last-child {
  color: #666;
  margin-left: auto;
  font-weight: normal;
}

.ul-flags-country::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
}

figure {
  margin: 0;
  display: flex;
  align-items: center;
}

.input-group-append .span-flags {
  display: flex;
  align-items: center;
  padding: 0.375rem 0.75rem;
  border-radius: 0 0.25rem 0.25rem 0;
}

.input-group-append .span-flags:hover {
  background-color: #e9ecef;
}

.bg-green {
  background-color: #1c875b;
  color: #FFF;
  font-weight: 700;
}

.bg-green:hover {
  color: #FFF;
  font-weight: 700;
}

.bg-black {
  background-color: black;
  color: white !important;
}

td.bg-black {
  background-color: black !important;
  color: white !important;
}

.btn-black {
  background-color: black;
  color: white !important;
  font-weight: 700;
}

.btn-orange {
  background-color: #FF9800;
  color: white !important;
}

.btn-orange:hover {
  background-color: #FFB74D;
  font-weight: 700;
}

.btn-green {
  background-color: #1c875b;
  color: white !important;
}

.btn-green:hover {
  background-color: #0096ed;
  font-weight: 700;
}

.btn.focus,
.btn:focus {
  outline: 0;
  box-shadow: 0 0 0 .2rem rgba(255, 255, 255, 0.25);
}

.add_for_all {
  border-radius: 5px;
  padding: 6px 8px;
  cursor: pointer;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type="number"] {
  -moz-appearance: textfield;
}


.bg-white {
  background-color: #FFFFFF;
}

.bg-orange-transp {
  background-color: #e5931826;
  opacity: 0.8;
}

.isCamp {
  border-bottom: 2px solid #28a745 !important;
}

.loading {
  cursor: not-allowed;
  opacity: 0.6;
}


.upSell_item {
  margin-bottom: 1rem !important;
  padding-bottom: 1rem !important;
}

.coupon-card-form-control {
  border-radius: .25rem;
  border: 1px solid #ced4da;
  padding: 0.375rem 0.75rem;
  width: 70% !important;
}

p.currency1step {
  font-weight: bold;
  padding-top: 1em;
  margin-bottom: 0;
}

p.duration1step {
  padding-top: 0;
  margin-bottom: 0;
}

#confirmationHeading,
#participantesHeading,
#paymentHeading,
#priceSummaryTitle {
  padding: 0 !important;
}

.sidebar-right {
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
}

.datamonth button {
  background-color: transparent;
  color: #FFF !important;
  border: 1px solid red;
  font-weight: 550;
}

.datamonth button:not(.disabled) {
  color: #0096ed !important;
  border: 1px solid #0096ed;
}

.datamonth button:hover {
  background-color: black;
  color: white !important;
}

.datamonth button.active {
  background-color: #0096ed !important;
  color: white !important;
  border: 1px solid white !important;
}


.btn.disabled {
  background-color: #6c757d;
  /* Cor de fundo cinza */
  color: #ffffff;
  /* Cor do texto branca */
  cursor: not-allowed;
  /* Cursor indicando que o botão está desativado */
  opacity: 0.65;
  /* Tornar o botão um pouco transparente */
  border: 1px solid #6c757d;
  /* Borda combinando com a cor de fundo */
  font-size: 0.65rem;
  /* Tamanho da fonte */
  pointer-events: none;
  /* Desativar todos os eventos de ponteiro */
}



/* --------- RICARDO CSS -------------*/
.fc td,
.fc th {
  padding: 0;
  vertical-align: middle;
  text-align: center;
  font-size: 13px;
  line-height: 3em;
  border-width: 3px;
}

th.fc-day-header {
  font-size: 15px;
}

.fc-ltr .fc-basic-view .fc-day-number {
  text-align: center;
  height: 2.3em;
}

.fc-day-number {
  cursor: pointer;
}

.fc-day-number:hover:not(.fc-past):not(.isCamp):not(.camp-not-available) {
  background-color: #0096ed !important;
  color: white !important;
}

.fc-past:not(.fc-today) {
  background-color: #c1c1c1ab !important;
  color: rgba(165, 164, 164, 0.884);
  cursor: not-allowed !important;
}

.camp-not-available{
  background-color: #c1c1c1 !important;
  color: white !important;
  cursor: not-allowed !important;
}

.camp-not-available:hover{
  background-color: #c1c1c1 !important;
  color: white !important;
  cursor: not-allowed !important;
}

.fc-basic-view .fc-body .fc-row {
  min-height: 2.3em !important;
  height: 3.3em !important;
}

.fc-future{
  align-items: center;
  justify-content: center;
  background-color: #1c875b;
  height: 2em;
  color: #fff;
}


.fc-today{
  align-items: center;
  justify-content: center;
  background-color: #1c875b !important;
  height: 2em;
  color: #fff;
}

.fc-unthemed .fc-divider,
.fc-unthemed .fc-popover,
.fc-unthemed .fc-row,
.fc-unthemed tbody,
.fc-unthemed td,
.fc-unthemed th,
.fc-unthemed thead {
  border-color: #fff;
}

.fc-center h2 {
  font-size: 1em;
  font-weight: bold;
  color: #343434;
  padding-top: 5px;
}

.fc-state-hover,
.fc-state-down,
.fc-state-active,
.fc-state-disabled,
button.fc-next-button,
button.fc-prev-button {
  color: #333333 !important;
  background-color: #fff;
  background: none;
  border: none;
  color: #000 !important;
  box-shadow: none;
}

.fc-toolbar {
  margin-bottom: 0;
  border-bottom: 1px solid #dadada;
}

h4.title-section {
  color: #000000;
  opacity: 0.8;
  margin-bottom: 11px;
  font-size: 1.0rem;
}

h4.attendees-question.title-section {
  border-bottom: 1px solid #cdcdcd;
  padding-bottom: 10px;
}

.btn.disabled {
  background-color: #cbcbcb;
  font-size: 0.55rem;
}

.selectHourAndDate {
  width: 100%;
  font-size: 0.75rem;
}

.dateSelected {
  background-color: #0096ed !important;
  font-weight: 700 !important;
  color: #FFF;
}

.datamonth {
  padding: 1;
}

/* .datamonth button {
  background-color: transparent;
  color: #004628 !important;
  border: 1px solid #004628;
} */

.datamonth button:hover {
  background-color: #0096ed;
  color: white !important;
}

@media (min-width: 1200px) {

  .container,
  .container-lg,
  .container-md,
  .container-sm,
  .container-xl {
    max-width: 1000px;
  }
}

div#timeBookingModalBody {
  gap: 5px;
  padding: 10px 0;
}

.sold-out-btn {
  background-color: #ff4d4d !important;
  color: #FFF !important;
  border: none !important;
  font-size: 1rem !important;
  font-weight: bold !important;
  cursor: not-allowed !important;
  opacity: 0.7 !important;
}

.fc-day-number.fc-other-month {
  opacity: inherit;
}

.fc-view-container {
  padding: 5px !important;
}

.card-header {
  padding: .5rem !important
}

.info-thumbs img.activity-img-default {
  width: 23%;
}