:root {
  --rosa:#f9a1b7;
  --azul:#9cd3f2;
  --verde:#b3e59f;
  --amarelo:#f9e79f;
  --texto:#243242;
  --bg:#fafafa;
}

* { box-sizing:border-box; margin:0; padding:0; }
html, body {
  background: var(--bg);
  font-family: "Poppins", system-ui, sans-serif;
  color: var(--texto);
  scroll-behavior:smooth;
  overflow-x:hidden !important; /* impede o corte no mobile */
}

/* ---------------- TOPBAR ---------------- */
.topbar {
  background:linear-gradient(90deg,var(--rosa),var(--amarelo),var(--verde),var(--azul));
  color:#fff;
  text-align:center;
  padding:12px 0;
  font-weight:600;
  font-size:14px;
  letter-spacing:0.5px;
  position:fixed;
  top:0;
  left:0;
  width:100%;
  z-index:200;
}

/* ---------------- HEADER ---------------- */
header {
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 20px;
  box-shadow:0 2px 6px rgba(0,0,0,0.05);
  position:sticky;
  top:48px;
  z-index:150;
  width:100%;
  max-width:1280px;
  margin:0 auto;
  flex-wrap:wrap;
  gap:20px;
}

.logo-search {
  display:flex;
  align-items:center;
  gap:20px;
  flex:1;
  min-width:280px;
}

.logo img {
  height:52px;
  width:auto;
  border-radius:6px;
  cursor:pointer;
  transition:0.2s;
}
.logo img:hover { transform:scale(1.05); }

.search-bar {
  position:relative;
  flex:1;
}
.search-bar input {
  width:100%;
  padding:10px 40px 10px 14px;
  border:1px solid #ddd;
  border-radius:8px;
  font-size:15px;
  outline:none;
  transition:0.2s;
}
.search-bar input:focus {
  border-color:var(--azul);
  box-shadow:0 0 0 3px rgba(156,211,242,0.3);
}
.search-bar button {
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  border:none;
  background:none;
  font-size:18px;
  color:var(--texto);
  cursor:pointer;
}

nav {
  display:flex;
  align-items:center;
  gap:22px;
}
nav a {
  color:var(--texto);
  text-decoration:none;
  font-weight:600;
  font-size:15px;
  transition:0.2s;
}
nav a:hover { color:var(--azul); }

.cart-icon {
  font-size:22px;
  color:var(--texto);
  cursor:pointer;
  position:relative;
}
.cart-icon::after {
  content:'0';
  position:absolute;
  top:-6px;
  right:-8px;
  background:var(--rosa);
  color:#fff;
  font-size:11px;
  border-radius:50%;
  padding:2px 5px;
}

/* ---------------- Banner principal ---------------- */
.banner-container {
  width:100%;
  max-width:1280px;
  height:580px;
  overflow:hidden;
  position:relative;
  margin:0 auto;
  margin-top:4px;
  border-radius:12px;
}

.banner-slide {
  display:flex;
  width:300%;
  height:100%;
  animation: bannerMain 15s infinite;
}

.banner-slide img {
  width:33.333%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

@keyframes bannerMain {
  0%, 30% { transform:translateX(0); }
  35%, 65% { transform:translateX(-33.333%); }
  70%, 100% { transform:translateX(-66.666%); }
}

/* ---------------- Carrossel fino ---------------- */
.produtos-carousel-wrap {
  max-width:1280px;
  margin:40px auto 0;
  padding:0 20px;
}

.produtos-carousel {
  width:100%;
  height:160px;
  position:relative;
  overflow:hidden;
  border-radius:40px;
  box-shadow:0 6px 20px rgba(0,0,0,0.06);
  background:#fff;
  margin:0 auto;
}

.slides {
  display:flex;
  width:300%;
  height:100%;
  transition:transform .8s cubic-bezier(.2,.9,.2,1);
}

/* ---------------- Outras seções ---------------- */

.vantagens {
  display:flex;
  justify-content:space-around;
  align-items:center;
  text-align:center;
  padding:20px 20px;
  background:linear-gradient(90deg,var(--rosa),var(--amarelo),var(--verde),var(--azul));
  flex-wrap:wrap;
  gap:30px;
  max-width:1280px;
  margin:0 auto;
}

footer {
  text-align:center;
  padding:80px 20px 120px;
  color:#777;
  font-size:14px;
  border-top:1px solid #eee;
  max-width:1280px;
  margin:0 auto;
}

/* MOBILE FIX GERAL */
@media (max-width: 768px) {
  header {
    top:58px !important;
  }
  nav {
    gap:12px;
    font-size:14px;
  }
}
