:root {
  --primary:   #21325e;
  --accent:    #5052d4;
  --light-bg:  #ffffff;
  --neutral:   #ffffff;
  --dark:      #000000;
  --white:     #ffffff;
  --transition:0.3s ease;
  --radius:    8px;
  --font-base: 'Montserrat', sans-serif;
}

/* Reset & Base */
*, *::before, *::after {
  margin:0; padding:0; box-sizing:border-box;
}
body {
  font-family: var(--font-base);
  color: var(--dark);
  background: var(--light-bg);
  line-height: 1.5;
  overflow-x: hidden;
}
.container {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}

/* Header Fixo */
.site-header {
  position: fixed;
  top:0; left:0; right:0;
  height:60px;
  background: var(--primary);
  display:flex; align-items:center;
  z-index:1000;
  box-shadow:0 2px 4px rgba(0,0,0,0.1);
}
.header-inner {
  display:flex; justify-content:space-between; align-items:center;
  width:100%;
}
.logo img { height:40px; margin-left:1rem }
.menu ul {
  list-style:none;
  display:flex;
  gap:2rem;
  margin-right:1rem;
}
.menu a {
  color: var(--white);
  text-decoration:none;
  font-weight:600;
  transition: color var(--transition);
}
.menu a:hover { color: var(--accent) }

/* Hambúrguer */
.hamburger {
  display:none;
  position:absolute;
  top:1rem; right:1rem;
  width:30px; height:30px;
  flex-direction:column;
  justify-content:space-around;
  background:none; border:none;
  cursor:pointer;
  z-index:1100;
}
.hamburger span {
  display:block;
  width:100%; height:3px;
  background:var(--white);
  border-radius:2px;
  transition:transform var(--transition), opacity var(--transition);
  transform-origin:center center;
}
.hamburger.active span:nth-child(1) {
  transform: translateY(9px) rotate(50deg);
}
.hamburger.active span:nth-child(2) { opacity:0 }
.hamburger.active span:nth-child(3) {
  transform: translateY(-11px) rotate(-50deg);
}

/* ————— Hero “30 Anos” ————— */
.hero {
  padding: 6rem 0 4rem;
  background: var(--light-bg);
  text-align: center;
}
.hero-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.hero-line {
  flex: 1;
  height: 1px;
  background: var(--accent);
  max-width: 120px;
}
.hero-subtitle {
  font-size: 0.85rem;
  color: var(--accent);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.hero h1 {
  font-size: 2.8rem;
  color: var(--primary);
  margin: 0.5rem 0 1rem;
  animation: fadeInUp 0.6s both;
}
.hero p {
  max-width: 700px;
  margin: 0 auto 2rem;
  color: #555;
  line-height: 1.6;
  animation: fadeInUp 0.6s var(--transition) both;
}
.hero-dates {
  display: inline-flex;
  align-items: center;
  gap: 2rem;
  background: rgba(81,82,212, 0.1);
  padding: 0.75rem 2rem;
  border-radius: var(--radius);
  margin: 0 auto 2rem;
}
.hero-dates .year {
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--primary);
}
.hero-dates .dash {
  font-size: 1.2rem;
  color: var(--accent);
}

/* — Animations — */
@keyframes fadeInUp {
  from { opacity:0; transform:translateY(20px) }
  to   { opacity:1; transform:translateY(0) }
}

/* Serviços */
.features {
  padding: 4rem 0;
  background: var(--neutral);
}
.features .grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(280px,1fr));
  gap: 2rem;
}
.feature-card {
  background: var(--white);
  padding: 2rem;
  border-radius: var(--radius);
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
  transition: transform var(--transition);
}
.feature-card:hover { transform: translateY(-5px) }
.feature-card h3 { color: var(--primary); margin-bottom: .5rem }
.feature-card p { color: #666; font-size: .95rem }

/* Depoimentos */
.testimonials {
  padding:4rem 0;
  background: var(--light-bg);
  text-align:center;
}
.testimonials h2 { color: var(--primary); margin-bottom:2rem }
.carousel { position:relative; overflow:hidden }
.carousel-track { display:flex; transition:transform .5s ease-in-out }
.carousel-slide { min-width:100%; padding:0 2rem; box-sizing:border-box }
.testimonial-card {
  background: var(--neutral);
  padding:2rem;
  border-radius: var(--radius);
  box-shadow:0 4px 12px rgba(0,0,0,0.05);
  margin:0 auto;
  max-width:600px;
}
.testimonial-card p { font-style:italic; color:#444; margin-bottom:1rem }
.testimonial-card .author { font-weight:600; color:var(--primary) }
.carousel-control {
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(33,50,94,0.7); border:none; color:#fff;
  font-size:2rem; width:2.5rem; height:2.5rem; border-radius:50%;
  cursor:pointer; z-index:10;
}
.carousel-control.prev { left:1rem }
.carousel-control.next { right:1rem }

/* Contato */
.contact {
  padding:4rem 0;
  background: var(--light-bg);
  text-align:center;
}
.contact h2 { color: var(--primary); margin-bottom:1rem }
.contact p { color: #555; margin-bottom:2rem }

.tabs {
  display:inline-flex;
  background:#f0f4fa;
  border-radius:var(--radius);
  overflow:hidden;
  margin:1.5rem 0;
}
.tab {
  flex:1;
  padding:.75rem 1.5rem;
  background:transparent;
  border:none;
  font-weight:600;
  cursor:pointer;
  color:var(--dark);
  transition:background var(--transition);
}
.tab:not(.active):hover { background:rgba(33,50,94,0.05) }
.tab.active { background:#fff; color:var(--primary) }

.tab-contents .tab-content {
  display:none;
  background:#fff;
  padding:1.5rem;
  border-radius:var(--radius);
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
.tab-contents .tab-content.active { display:block }

.grid-form {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  margin-bottom:1rem;
}
.form-group {
  display:flex;
  flex-direction:column;
}
.form-group label {
  margin-bottom:.25rem;
  font-size:.9rem;
  color:#555;
}
.form-group input,
.form-group textarea {
  padding:.6rem .75rem;
  border:1px solid #ccc;
  border-radius:var(--radius);
  font-size:.95rem;
  transition:border var(--transition);
}
.form-group input:focus,
.form-group textarea:focus { border-color:var(--primary) }
.form-group.full { grid-column:1 / -1 }

.btn-submit {
  width:100%;
  padding:.75rem;
  background:var(--primary);
  color:var(--white);
  border:none;
  border-radius:var(--radius);
  font-weight:600;
  cursor:pointer;
  transition:filter var(--transition);
}
.btn-submit:hover { filter:brightness(1.1) }

/* Footer */
.site-footer {
  background: var(--primary);
  color: var(--white);
  text-align:center;
  padding:2rem 0;
}
.site-footer a { color:var(--white); text-decoration:underline; font-size:.9rem }
.site-footer p { font-size:.85rem; margin-bottom:.5rem }

/* Equipe */
.team {
  background: var(--light-bg);
  padding: calc(3rem + 60px) 0 3rem;
  text-align:center;
}
.team h2 { color: var(--primary); font-size:2rem; margin-bottom:1.5rem }
.team img {
  max-width:100%;
  height:auto;
  border-radius:5%;
  box-shadow:0 4px 12px rgba(0,0,0,0.1);
}
.team p {
  max-width:90%;
  margin:2rem auto;
  line-height:1.8;
  color:#555;
}

/* Líderes */
.leaders-section {
  padding:4rem 0;
  background: var(--light-bg);
  text-align:center;
}
.leaders-section h2 { color:var(--primary); margin-bottom:2rem }
.leaders-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:2rem;
  align-items:start;
}
.leader-card {
  background: var(--white);
  padding:2rem;
  border-radius:var(--radius);
  box-shadow:0 4px 12px rgba(0,0,0,0.05);
  text-align:center;
}
.leader-card .leader-photo {
  width:100%;
  max-width:300px;
  height:auto;
  border-radius:var(--radius);
  margin:0 auto 1rem;
}
.leader-name {
  font-size:1.25rem;
  font-weight:600;
  color:var(--primary);
  margin:0.5rem 0 0.25rem;
}
.leader-role {
  font-size:1rem;
  font-weight:500;
  color:#555;
  margin:0 0 1rem;
}

/* Logos Carousel */
.logos-carousel {
  padding:4rem 0;
  background: var(--light-bg);
  text-align:center;
}
.logos-carousel h2 { color:var(--primary); margin-bottom:2rem }
.logos-carousel .carousel { position:relative; overflow:hidden }
.logos-carousel .carousel-track { display:flex; transition:transform .5s ease-in-out }
.logos-carousel .carousel-slide {
  min-width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
}
.logos-carousel img {
  max-height:80px;
  width:auto;
  object-fit:contain;
  margin:0 auto;
}
/* ajustes de tamanhos extras… */
/* … */

/* Responsividade */
@media (max-width:992px) {
  .hero h1 { font-size:2.5rem }
  .features .grid { gap:1.5rem }
}
@media (max-width:768px) {
  .hamburger { display:flex }
  .menu { display:none }
  .menu.active {
    display:block;
    position:absolute;
    top:60px; left:0; width:100%;
    background:var(--primary);
    padding:1rem 0;
  }
  .menu.active ul {
    flex-direction:column;
    align-items:center;
    gap:1rem;
  }
  .hero h1 { font-size:2rem }
  .btn-primary,
  .btn-submit { width:100%; text-align:center }
  .grid-form { grid-template-columns:1fr }
}

/* ============================
   Seção combinada “30 Anos + Vídeo”
   ============================ */
.hero.video-combined {
  background: var(--light-bg);
  padding-top: 6rem;
  padding-bottom:4rem;
}
.hero.video-combined .video-block {
  background: var(--white);
  margin: 3rem auto 0;
  padding: 2rem;
  border-radius: var(--radius);
  max-width: 900px;
  box-shadow:0 4px 12px rgba(0,0,0,0.1);
}
.hero.video-combined .video-title {
  color: var(--primary);
  text-align:center;
  margin-bottom:1.5rem;
  font-size:1.75rem;
  opacity:0;
  animation: fadeInUp 0.6s both;
  animation-delay: var(--transition);
}
/* fundo preto somente atrás do vídeo */
.hero.video-combined .video-container {
  background: #000;
  padding-radius: var(--radius);
  width:100%;
  margin:0 auto;
  border-radius: var(--radius);
}
.hero.video-combined .responsive-video {
  width:100%;
  aspect-ratio:16/9;
  border-radius: var(--radius);
  box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}
/* Compensa o header fixo ao usar âncoras */
.hero.video-combined {
  scroll-margin-top: 60px; /* altura do header */
}
