body {
	padding-top: 83px; /* ajusta conforme a altura máxima da navbar + logo */
}
.logo-wrapper {
	display: flex;
	align-items: center;
	justify-content: center;
}
.logo-circle {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	overflow: hidden;
	border: 1px solid white; /* Contorno dourado */
	box-shadow: 0 0 12px rgba(0,0,0,0.2);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.logo-circle img {
	width: 100%;
	height: 100%;
	object-fit: cover; /* Garante proporção perfeita sem distorcer */
}
/* Hover elegante */
.logo-circle:hover {
	transform: scale(1.05);
	box-shadow: 0 0 20px rgba(0,0,0,0.3);
}

/* Responsivo */
@media (max-width: 768px) {
.logo-circle {
	width: 70px;
	height: 70px;
}
}



@media (max-width: 480px) {
.logo-circle {
	width: 60px;
	height: 60px;
}
}
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
 /* Banner original com partículas */
  .banner {
    width: 100%;
    height: 70vh;
    min-height: 300px;
    max-height: 600px;
    background: linear-gradient(to right, #20002c, #6f00ff, #0f0c29);
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    overflow: hidden;
    border-bottom: 5px solid #a6c1ee;
  }

  /* Container das partículas atrás do texto */
  #particles-js {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0; 
    left: 0;
    z-index: 0; /* atrás do texto */
  }

  .banner h1 {
    position: relative;
    color: #fff;
    font-size: 4rem;
    font-weight: 900;
    font-family: 'Montserrat', sans-serif;
    text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.4);
    text-align: center;
    animation: fadeIn 2s ease-in-out;
    margin-bottom: 20px;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    z-index: 1; /* texto à frente */
  }

  /* Efeito de reflexão do texto */
  .banner h1::after {
    content: attr(data-text);
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    color: rgba(255, 255, 255, 0.3);
    transform: scaleY(-1);
    filter: blur(3px);
    opacity: 0.4;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255,255,255,0.4), transparent);
    -webkit-background-clip: text;
    background-clip: text;
  }

  /* Subtítulo opcional, podes remover se quiseres */
  .banner-subtitle {
    position: relative;
    z-index: 1;
    color: #ddd;
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    font-size: 1.5rem;
    text-align: center;
    max-width: 600px;
    margin: 0 auto;
  }

.effect {
	position: absolute;
	width: 120px;
	height: 120px;
	sbackground: rgba(111, 0, 255, 0.4);
	background: rgba(255,255,255,0.40);
	border-radius: 50%;
	filter: blur(40px);
	animation: moveEffect 6s infinite alternate ease-in-out;
}
@keyframes moveEffect {
from {
transform: translate(-50%, -50%) scale(1);
}
to {
transform: translate(50%, 50%) scale(1.6);
}
}

@media (max-width: 768px) {
.banner h1 {
	font-size: 2rem;
}
}
/* Esconder a checkbox padrão */
input[type="checkbox"] {
	opacity: 0;
	position: absolute;
	width: 0;
	height: 0;
	margin: 0;
	padding: 0;
	pointer-events: none;
}
/* Estilo do label que envolve o checkbox */
.checkbox label {
	position: relative;
	padding-left: 35px;  /* espaço para o novo checkbox */
	cursor: pointer;
	user-select: none;
	font-size: 1.1rem;   /* aumenta o tamanho do texto para melhor legibilidade */
	color: #5a4d7a;      /* tom roxo/lilás suave */
	display: inline-block;
}
/* Caixa personalizada para o checkbox */
.checkbox label::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 28px;
	height: 28px;
	border-radius: 50%; /* círculo perfeito */
	border: 2.5px solid #7e6fb3; /* borda roxa */
	background: white;
	box-shadow: 0 0 5px rgba(126, 111, 179, 0.5);
	transition: background-color 0.3s, border-color 0.3s;
}
/* Quando a checkbox está marcada, alteramos o fundo e adicionamos um "check" */
input[type="checkbox"]:checked + label::before {
	background-color: #7e6fb3;
	border-color: #7e6fb3;
	box-shadow: 0 0 8px #9b8ade;
}
/* Ícone do check (usando pseudo-elemento) */
input[type="checkbox"]:checked + label::after {
	content: "";
	position: absolute;
	left: 9px;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
	width: 8px;
	height: 14px;
	border-right: 3px solid white;
	border-bottom: 3px solid white;
	opacity: 1;
}
/* Espaçamento entre checkbox */
.checkbox {
	margin-bottom: 12px;
	display: block;
}
/* Aumentar área clicável em dispositivos móveis */
input[type="checkbox"] + label {
	padding-left: 40px;
}
/* Hover para feedback */
.checkbox label:hover::before {
	border-color: #9b8ade;
	box-shadow: 0 0 10px #9b8ade;
}
/* Corrige a navbar sem sobrescrever o fixed-top */
.navbar {
	transition: all 0.3s ease-in-out;
	padding: 20px 0;
	z-index: 1030; /* valor alto do Bootstrap para fixed elements */
}
/* Logo wrapper permanece igual */
.logo-wrapper {
	position: relative;
	z-index: 1040; /* acima da navbar */
}
/* Logo redondo visível fora da navbar */
.logo-circle {
	width: 110px;
	height: 110px;
	border-radius: 50%;
	overflow: hidden;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
	position: absolute;
	top: -30px; /* destaque acima da barra */
	left: 15px;
	transition: all 0.3s ease-in-out;
}
/* Imagem interna */
.logo-circle img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Estado da navbar ao fazer scroll */
.navbar.shrink {
	padding: 8px 0;
}
/* Reduz ligeiramente o logotipo */
.navbar.shrink .logo-circle {
	width: 80px;
	height: 80px;
	top: -20px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
}
	
	
/* Navbar geral */
.navbar .container-fluid {
  padding-left: 20px;
  padding-right: 20px;
}

/* Logo visível fora da barra */
.logo-wrapper {
  position: relative;
  z-index: 1;
}

.logo-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
  position: absolute;
  top: -30px;
  left: 0;
  transition: all 0.3s ease-in-out;
}

.logo-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Botão do menu deve estar à direita */
.navbar-toggler {
  z-index: 10;
  position: relative;
  margin-left: auto;
}

/* Responsivo: encolher logo */
@media (max-width: 768px) {
  .logo-circle {
    width: 80px;
    height: 80px;
    top: -20px;
  }
}

	
	
	.floating-button-container {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 999;
}
	
	
	/* botoes catalogo*/
	
	.filtro-btn {
  background: linear-gradient(135deg, #5f0090, #a045e8);
  color: white;
  border: none;
  padding: 12px 24px;
  margin: 8px 10px 8px 0;
  border-radius: 30px;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 500;
  position: relative;
  overflow: hidden;
  z-index: 1;
  transition: transform 0.2s ease, box-shadow 0.3s ease;
		white-space: nowrap;       /* Evita quebra de texto dentro do botão */
}

.filtro-btn::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(255, 255, 255, 0.1);
  z-index: 0;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.filtro-btn:hover::before {
  opacity: 1;
}

.filtro-btn:hover {
  transform: scale(1.05);
  box-shadow: 0 4px 15px rgba(160, 69, 232, 0.5);
}

.filtro-btn.active {
  background: linear-gradient(135deg, #a045e8, #c084fc);
  box-shadow: 0 0 15px rgba(160, 69, 232, 0.7);
  transform: scale(1.06);
}


/* Botão principal */
.main-button {
  width: 60px;
  height: 60px;
  background: linear-gradient(145deg, #5f0090, #3a0061);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 30px;
  cursor: pointer;
  box-shadow: 0 0 15px rgba(95, 0, 144, 0.6);
  animation: pulse 2s infinite;
  transition: transform 0.3s ease;
}

@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(95, 0, 144, 0.6); }
  70% { box-shadow: 0 0 0 12px rgba(95, 0, 144, 0); }
  100% { box-shadow: 0 0 0 0 rgba(95, 0, 144, 0); }
}

.plus-icon {
  font-weight: bold;
  transform: rotate(0deg);
  transition: transform 0.3s;
}

.menu-open .plus-icon {
  transform: rotate(45deg);
}

/* Sub-botões */
.sub-button {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #1a1a2e;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  bottom: 5px;
  right: 5px;
  opacity: 0;
  transform: scale(0);
  transition: all 0.4s ease;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
}

.sub-button a {
  color: white;
  font-size: 18px;
}

.menu-open .sub-button {
  opacity: 1;
  transform: scale(1);
}

/* Cores por rede */
.whatsapp { background: #25D366; bottom: 70px; right: 0; }
.instagram { background: linear-gradient(45deg, #833ab4, #fd1d1d, #fcb045); bottom: 130px; right: 0; }
.facebook { background: #3b5998; bottom: 190px; right: 0; }
.email { background: #6c63ff; bottom: 250px; right: 0; }
.phone { background: #ff4b5c; bottom: 310px; right: 0; }

/* Animação ao pairar */
.sub-button:hover {
  animation: shine 1s ease-in-out infinite alternate, orbit 2s linear infinite;
  transform: scale(1.1);
}

/* Brilho pulsante */
@keyframes shine {
  0% {
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.2);
  }
  100% {
    box-shadow: 0 0 18px rgba(255, 255, 255, 0.5);
  }
}

/* Movimento de órbita suave */
@keyframes orbit {
  0% { transform: scale(1.1) rotate(0deg); }
  100% { transform: scale(1.1) rotate(360deg); }
}
	
	
	/* catalogo de produtos*/
	
	.catalogo-produtos {
  background: #fff;
  padding: 80px 20px;
}

.section-title {
  text-align: center;
  font-size: 2.7rem;
  margin-bottom: 40px;
  color: #333;
}

.filtro-container {
  text-align: center;
  margin-bottom: 40px;

	
	display: flex;
    flex-wrap: wrap;           /* Permite quebrar linha no mobile */
    gap: 8px;                  /* Espaço entre botões */
    justify-content: flex-start; /* Alinhado à esquerda */
    padding: 10px;
}

.filtro-btn {
  background: #61006e;
  color: white;
  border: none;
  padding: 10px 18px;
  margin: 5px;
  border-radius: 30px;
  cursor: pointer;
  transition: background 0.3s ease;
  font-size: 0.95rem;
	 white-space: nowrap; 
}

.filtro-btn:hover,
.filtro-btn.active {
  background: #a045e8;
}

/* Mobile — botões ocupam largura proporcional */
@media (max-width: 600px) {
    .filtro-container {
        justify-content: center; /* Centraliza no mobile */
    }
    .filtro-btn {
        flex: 1 1 auto;         /* Faz os botões adaptarem largura */
        text-align: center;
    }
}

.grelha-produtos {
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* 4 colunas no desktop */
  gap: 30px;
}

@media (max-width: 992px) { /* Tablets e ecrãs médios */
  .grelha-produtos {
    grid-template-columns: repeat(2, 1fr); /* 2 colunas */
  }
}

@media (max-width: 576px) { /* Telemóveis e ecrãs pequenos */
  .grelha-produtos {
    grid-template-columns: 1fr; /* 1 coluna */
  }
}


.produto-card {
  background: #f9f9f9;
 
  border-radius: 14px;
  box-shadow: 0 0 10px rgba(0,0,0,0.08);
  overflow: hidden;
  text-align: center;
  transition: transform 0.3s ease;
  cursor: pointer;
  height: 340px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.produto-card:hover {
  transform: scale(1.03);
  box-shadow: 0 0 20px rgba(160, 70, 232, 0.2);
}

.produto-card img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-bottom: 1px solid #eee;
}

.produto-card h3 {
  font-size: 1rem;
  margin: 15px;
  color: #444;
}

	
	
	

	/* catalogo de moldes */
	
	.catalogo-section {
  padding: 80px 20px;
  background: radial-gradient(circle at top left, #3a004d, #100021);
  color: #fff;
}

.section-title {
  text-align: center;
  font-size: 2.7rem;
  margin-bottom: 10px;
  color: #fff;
}

.section-description {
  text-align: center;
  font-size: 1.2rem;
  margin-bottom: 40px;
  color: #ccc;
}

.filtro-container {
  text-align: center;
  margin-bottom: 30px;
}

.filtro-btn {
  background: #5f0090;
  color: white;
  border: none;
  padding: 10px 20px;
  margin: 0 10px 10px 0;
  border-radius: 30px;
  cursor: pointer;
  transition: background 0.3s ease;
}

.filtro-btn:hover,
.filtro-btn.active {
  background: #a045e8;
}

.grelha-moldes {
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* 4 colunas no desktop */
  gap: 30px;
}

@media (max-width: 992px) { /* Tablets e ecrãs médios */
  .grelha-moldes {
    grid-template-columns: repeat(2, 1fr); /* 2 colunas */
  }
}

@media (max-width: 576px) { /* Telemóveis e ecrãs pequenos */
  .grelha-moldes {
    grid-template-columns: 1fr; /* 1 coluna */
  }
}

/* NOVO: tamanho fixo e proporção controlada */
.molde-card {
  background: rgba(255, 255, 255, 0.06);
  border-radius: 16px;
  overflow: hidden;
  text-align: center;
  box-shadow: 0 0 20px rgba(200, 100, 255, 0.15);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  cursor: pointer;
  height: 340px; /* altura fixa */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Garantir imagem quadrada sem distorção */
.molde-card img {
  width: 100%;
  height: 200px; /* ou 60–70% da altura do card */
  object-fit: cover;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* Título bem ajustado */
.molde-card h3 {
  margin: 10px;
  font-size: 1.05rem;
  color: #fff;
}
	
	
	/* modo noite */

/* Botão flutuante modo noite */
.modo-btn {
  position: fixed;
  bottom: 20px;
  left: 20px;
  background: #5f0090;
  color: white;
  border: none;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  font-size: 20px;
  cursor: pointer;
  z-index: 999;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  transition: background 0.3s ease, transform 0.3s ease;
}

.modo-btn:hover {
  background: #a045e8;
  transform: scale(1.1);
}

/* Tema escuro */
body.dark-mode {
  background-color: #0d0d0d;
  color: #ddd;
}

body.dark-mode .catalogo-section,
body.dark-mode .catalogo-produtos,
body.dark-mode .banner {
  background: radial-gradient(circle at top left, #000, #1a1a1a);
}

body.dark-mode .produto-card,
body.dark-mode .molde-card {
  background: rgba(255, 255, 255, 0.05);
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.1);
}

body.dark-mode .filtro-btn {
  background: #333;
  color: #fff;
}

body.dark-mode .filtro-btn.active,
body.dark-mode .filtro-btn:hover {
  background: #888;
}

body.dark-mode .section-title {
  color: #fff;
}
	
	
	/* Secção de produto em modo escuro */
body.dark-mode .section {
  background-color: #121212;
  color: #ddd;
}

/* Cartões do acordeão */
body.dark-mode .card,
body.dark-mode .card-plain {
  background-color: #1e1e1e;
  color: #ddd;
  border: 1px solid #444;
  box-shadow: none;
}

/* Cabeçalhos do acordeão */
body.dark-mode .card-header {
  background-color: #292929;
  color: #ddd;
  border-bottom: 1px solid #444;
}

/* Links e ícones dentro do acordeão */
body.dark-mode .card-header a {
  color: #b594ff;
}

/* Corpo do acordeão */
body.dark-mode .card-body {
  color: #ccc;
}

/* Blockquote */
body.dark-mode .blockquote-primary {
  background-color: #2a2a2a;
  color: #b594ff;
  border-left: 5px solid #a045e8;
}

/* Carousel images (se quiseres efeito mais escuro) */
body.dark-mode .carousel-item img {
  filter: brightness(0.85);
  transition: filter 0.3s ease;
}

/* Carousel control buttons */
body.dark-mode .carousel-control-prev button,
body.dark-mode .carousel-control-next button {
  background-color: rgba(50, 50, 50, 0.7);
  color: #a045e8;
  border: none;
  transition: background-color 0.3s ease;
}
body.dark-mode .carousel-control-prev button:hover,
body.dark-mode .carousel-control-next button:hover {
  background-color: #a045e8;
  color: white;
}

/* Botão WhatsApp na secção */
body.dark-mode .btn-whatsapp {
  background-color: #1e7a38;
  box-shadow: 0 4px 12px rgba(10, 80, 20, 0.7);
  color: white;
}
body.dark-mode .btn-whatsapp:hover {
  background-color: #145826;
}

/* Pequenos ajustes de links */
body.dark-mode a,
body.dark-mode a:hover {
  color: #a67cff;
}

/* Ajustar texto secundário sob o botão WhatsApp */
body.dark-mode .btn-whatsapp + small {
  color: #999;
}


	
	.bg-roxo {
  background: linear-gradient(to right, #3a004d, #5f0090);
  color: white !important;
  transition: background 0.4s ease;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.navbar .nav-link,
.navbar .nav-link p {
  color: #fff !important;
}

 /* Preço destacado */
  .main-price {
    font-weight: 900;
    font-size: 2.8rem;
    color: #a045e8;
    margin-top: 15px;
    margin-bottom: 30px;
  }	
	
	 /* Botão WhatsApp */
  .btn-whatsapp {
    background-color: #25d366;
    border-radius: 30px;
    font-weight: 700;
    font-size: 1.2rem;
    padding: 14px 28px;
    box-shadow: 0 4px 10px rgba(37, 211, 102, 0.4);
    transition: background-color 0.3s ease;
    color: white;
    display: inline-flex;
    align-items: center;
  }
  .btn-whatsapp:hover {
    background-color: #1ebe5a;
    text-decoration: none;
    color: white;
  }
  .btn-whatsapp i {
    margin-right: 10px;
    font-size: 1.5rem;
  }
  /* Texto secundário sob o botão */
  .btn-whatsapp + small {
    display: block;
    margin-top: 8px;
    color: #bbb;
  }
  /* Layout responsivo */
  @media (max-width: 767.98px) {
    .carousel-item img {
      max-height: 250px;
    }
    .main-price {
      font-size: 2rem;
      margin-bottom: 20px;
    }
  }

.sobre-nos-section {
  padding: 80px 20px;
  background: radial-gradient(circle at top left, #f0e6ff, #fdfcff);
  color: #333;
  text-align: justify;
}

body.dark-mode .sobre-nos-section {
  background: radial-gradient(circle at top left, #1a1a1a, #0d0d0d);
  color: #ddd;
}

.sobre-nos-texto {
 
  margin: 0 auto;
  font-size: 1.15rem;
  line-height: 1.8;
  color: inherit;
}

.section-title {
  font-size: 2.5rem;
  margin-bottom: 30px;
  font-weight: bold;
  color: inherit;
}

/* Botão para fundos claros */
.btn-vermais {
    display: inline-block;
    padding: 10px 22px;
    background: linear-gradient(45deg, #7a00ff, #ff8df4);
    color: #fff;
    font-weight: bold;
    border: none;
    border-radius: 25px;
    cursor: pointer;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.btn-vermais:hover {
    transform: scale(1.05);
    box-shadow: 0 0 12px rgba(122, 0, 255, 0.6);
}

/* Botão para fundos escuros */
.btn-vermaism {
    display: inline-block;
    padding: 10px 22px;
    background: transparent;
    color: #ff8df4;
    font-weight: bold;
    border: 2px solid #ff8df4;
    border-radius: 25px;
    cursor: pointer;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}

.btn-vermaism:hover {
    background: rgba(255, 141, 244, 0.15);
    transform: scale(1.05);
    box-shadow: 0 0 12px rgba(255, 141, 244, 0.4);
}
