:root {
  --bs-primary: #0052FF;
  --bs-primary-rgb: 0, 82, 255;
  --bs-body-font-family: 'Roboto', sans-serif;
  --whatsapp-color: #25D366;
  --navbar-height: 140px; /* Variável para a altura do menu */
}
/* CORREÇÃO FINAL DA ÂNCORA */
section[id] {
  scroll-margin-top: var(--navbar-height);
  position: relative; 
  overflow: hidden; 
}
.hero-waves {
  position: relative; background-color: #f8f9fa; padding: 6rem 0; display: flex; align-items: center; min-height: 90vh; overflow: hidden;
}
.hero-waves::before {
  content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--bs-primary); clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%); z-index: 0;
}
@media (min-width: 992px) {
  .hero-waves::before { clip-path: url(#wave-clip); }
}
.hero-content { position: relative; z-index: 1; color: #fff; }
.hero-content .display-4 { font-weight: 900; }
.hero-content .lead { color: rgba(255, 255, 255, 0.85); }
  
.section-title { font-weight: 700; color: #333; }
.navbar-dark .navbar-nav .nav-link.active { font-weight: 700; color: #fff; }
.navbar-brand { line-height: 1.2; }
.service-card { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.service-card:hover { transform: translateY(-5px); box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1); }
.service-card-disabled { opacity: 0.6; filter: grayscale(80%); pointer-events: none; position: relative; }
  
#projetos .carousel-inner { padding: 1rem 50px; }
.project-card .card-img-container { aspect-ratio: 16 / 10; overflow: hidden; }
.project-card .card-img-top { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.project-card:hover .card-img-top { transform: scale(1.05); }
#projetosCarousel .carousel-control-prev, #projetosCarousel .carousel-control-next { width: 50px; }
#projetosCarousel .carousel-control-prev-icon, #projetosCarousel .carousel-control-next-icon { filter: invert(1) grayscale(100) brightness(0.5); }
#projetosCarousel .carousel-indicators [data-bs-target] { background-color: #333; }
  
.modal-fullscreen { padding: 0 !important; }
.modal-fullscreen .modal-dialog { max-width: 100%; margin: 0; }
.modal-fullscreen .modal-content { height: 100vh; border-radius: 0; border: 0; }
.modal-fullscreen .modal-body { overflow-y: auto; background-color:#212529; }
.modal-fullscreen .modal-header { background-color: #212529; border-bottom: 1px solid #495057;}
.modal-fullscreen .modal-header .modal-title { color: #fff; }
.modal-fullscreen .modal-header .btn-close { filter: invert(1) grayscale(1) brightness(2);} 

.timeline { position: relative; padding: 2rem 0; }
.timeline::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 2px; height: 100%; background-color: #e9ecef; }
.timeline-item { position: relative; width: 50%; padding: 1rem 2rem; margin-bottom: 2rem; opacity: 0; transform: translateY(30px); transition: opacity 0.6s ease-out, transform 0.6s ease-out; }
.timeline-item.is-visible { opacity: 1; transform: translateY(0); }
.timeline-item:nth-child(odd) { left: 0; text-align: right; }
.timeline-item:nth-child(even) { left: 50%; text-align: left; }
.timeline-dot { content: ''; position: absolute; top: 24px; width: 16px; height: 16px; background-color: var(--bs-primary); border: 3px solid #f8f9fa; border-radius: 50%; z-index: 1; }
.timeline-item:nth-child(odd) .timeline-dot { right: -8px; }
.timeline-item:nth-child(even) .timeline-dot { left: -8px; }
.timeline-content { background-color: #fff; padding: 1.5rem; border-radius: 0.5rem; box-shadow: 0 0.25rem 0.5rem rgba(0,0,0,0.05); }
.timeline-date { font-weight: 500; color: var(--bs-primary); margin-bottom: 0.5rem; font-size: 0.9rem; }

.whatsapp-button { position: fixed; bottom: 25px; right: 25px; z-index: 1050; background-color: var(--whatsapp-color); color: #FFF; width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 2rem; box-shadow: 2px 2px 10px rgba(0,0,0,0.2); text-decoration: none; animation: pulse 2s infinite; }
.notification-badge { position: absolute; top: -5px; right: -5px; background-color: #ff0000; color: #FFF; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.8rem; font-weight: bold; border: 2px solid #FFF; opacity: 0; transform: scale(0); transition: opacity 0.3s ease, transform 0.3s ease; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7); } 70% { box-shadow: 0 0 0 15px rgba(37, 211, 102, 0); } 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); } }
  
.shape-container { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.shape { position: absolute; background-color: var(--bs-primary); opacity: 0.08; will-change: transform; }
.shape-circle { border-radius: 50%; }
.shape-losango { transform: rotate(45deg); }

/* Button Styles - Flat Design */
.btn {
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  font-size: 0.875rem;
  border-radius: 4px;
  padding: 0.875rem 2rem;
  transition: all 0.2s ease;
  border: none;
  position: relative;
  box-shadow: none;
}

.btn-primary {
  background: var(--bs-primary);
  color: #fff;
  border: none;
}

.btn-primary:hover {
  background: #0041cc;
  color: #fff;
}

.btn-primary:active {
  background: #003399;
}

.btn-outline-primary {
  border: 2px solid var(--bs-primary);
  color: var(--bs-primary);
  background: transparent;
}

.btn-outline-primary:hover {
  background: var(--bs-primary);
  color: #fff;
  border-color: var(--bs-primary);
}

.btn-light {
  background: #ffffff;
  color: var(--bs-primary);
  font-weight: 600;
  border: none;
}

.btn-light:hover {
  background: #f8f9fa;
  color: #0041cc;
}

.btn-outline-light {
  border: 2px solid rgba(255, 255, 255, 0.9);
  color: #fff;
  background: transparent;
}

.btn-outline-light:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: #fff;
  color: #fff;
}

.btn-sm {
  padding: 0.625rem 1.5rem;
  font-size: 0.75rem;
  border-radius: 3px;
}

.btn-lg {
  padding: 1.125rem 3rem;
  font-size: 0.95rem;
  border-radius: 5px;
}

.btn i {
  transition: transform 0.2s ease;
  margin-left: 0.5rem;
}

.btn:hover i.bi-arrow-right,
.btn:hover i.bi-box-arrow-up-right,
.btn:hover i.bi-arrow-up-short {
  transform: translateX(4px);
}

/* Footer hover effects */
footer a.hover-primary:hover {
  color: var(--bs-primary) !important;
  transition: color 0.3s ease;
}
*** End Patch
