.hero-marcas{
  position:relative; min-height:68vh; display:grid; place-items:center;
  background-image:
    linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,.55)),
    url('assets/marcas.jpg');
  background-size:cover; background-position:0% 80%; background-repeat:no-repeat;
  text-align:center; overflow:hidden;
}
.hero-marcas::after{
  content:"Sm";
  position:absolute; inset:auto 0 5% 0; margin:auto; width:100%; text-align:center;
  font-family:'Montserrat',sans-serif; font-weight:700; font-size:26vw; line-height:1;
  color:rgba(255,255,255,.05); z-index:0;
}
.hero-inner{ position:relative; z-index:1; padding:4rem 1.25rem; }
.hero-title{
  font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.5px;
  color:#fff; font-size:clamp(2rem,4vw,3.5rem); margin-bottom:.35rem;
}
.hero-sub{ color:var(--brand-yellow); font-size:clamp(1rem,2vw,1.35rem); }

/* Divider subtil */
.divider-soft{
  height:2px; border:0; margin:2.2rem 0 1.2rem;
  background:linear-gradient(to right, transparent, var(--brand-yellow), transparent);
  opacity:.6;
}

/* Título secção */
.section-title{ font-family:'Montserrat',sans-serif; font-weight:700; }

/* ===========================
   CAROUSEL MARCAS
   =========================== */
.marcas-carousel{ position:relative; }

/* Espaço lateral para não colidir com as setas */
.marcas-carousel .carousel-inner{ padding: 0 4rem; }

/* Setas com sombra suave e z-index acima do conteúdo */
.marcas-carousel .carousel-control-prev,
.marcas-carousel .carousel-control-next{
  width: 3rem;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.25));
  z-index: 2;
}

/* Indicadores fora do overlay (não sobrepõem logos) */
.marcas-carousel .carousel-indicators{
  position: static;
  margin: 0.75rem 0 0;
  gap: .5rem;
  z-index: 0;
 }
.marcas-carousel .carousel-indicators [data-bs-target]{
  background: var(--brand-yellow, #f1c40f);
  opacity:.45; width:8px; height:8px; border-radius:50%;
}
.marcas-carousel .carousel-indicators .active{ opacity:1; }

/* Layout dos logos com CSS Grid */
.brands-row{
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* desktop: 4 por slide */
  gap: 1.25rem;
  align-items: center;
  justify-items: center;
  min-height: 110px; /* respira para alturas diferentes de logos */
}

/* Cartões de logo */
.brand-col{ display:flex; align-items:center; justify-content:center; }
.brand-logo{
  max-height:72px;
  width:auto;
  object-fit:contain;
  opacity:.95;
  filter:none !important; /* Sempre a cores */
  transition:transform .18s ease, opacity .18s ease, box-shadow .18s ease;
}
.brand-logo:hover{ opacity:1; filter:none; transform:translateY(-2px) scale(1.03); }
.carousel-item{ padding:1rem 0; }

/* ===========================
   RESPONSIVO
   =========================== */
@media (max-width: 768px){
  .hero-inner{ padding:3.25rem 1rem; }
  .hero-marcas{
    min-height:56vh;
    background-image:
      linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,.55)),
      url('assets/marcas.jpg');
    background-size:auto 100%;
    background-position:center 85%;
    background-color:#0b0b0c;
  }
  .hero-marcas::after{ font-size:40vw; inset:auto 0 8% 0; }
}

/* Mobile: 2 logos por slide e menos padding para as setas */
@media (max-width: 767.98px){
  .marcas-carousel .carousel-inner{ padding: 0 2.5rem; }
  .brands-row{ grid-template-columns: repeat(2, 1fr); } /* 2 por slide */
  .brand-logo{ max-height:60px; }
}

/* Ajuste leve em desktop grande */
@media (min-width: 992px){
  .brand-logo{ max-height:72px; }
}
