/* Mandrake Grifes V25 - correcoes finais de UX, responsividade e navegacao */
:root {
  --mg25-blue: #0b63f6;
  --mg25-ink: #101828;
  --mg25-muted: #667085;
  --mg25-line: #d7e1ef;
  --mg25-success: #087a55;
  --mg25-success-soft: #eefaf4;
  --mg25-menu-width: min(390px, 92vw);
}

/* Elimina os vazios criados pela soma de paddings das versoes anteriores. */
body.mg-page-bg main.mg-main {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding-top: 4px !important;
}
body.mg-page-bg main.mg-main > .mg-story-shell { order: 1 !important; padding-top: 4px !important; }
body.mg-page-bg main.mg-main > section:has(.mg-fashion-trust) { order: 2 !important; }
body.mg-page-bg main.mg-main > section:has(#produtosCarrossel) { order: 3 !important; }
.mg-store { padding-top: 6px !important; }
.mg-product-detail-main { padding-top: 8px !important; }
.mg-checkout-clean { padding-top: 8px !important; }

/* Destaques: uma pagina real do carrossel, com gesto nativo e snap preciso. */
#produtosCarrossel {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 16px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 3px 2px 14px !important;
  margin-inline: -2px !important;
  scroll-snap-type: x mandatory !important;
  scroll-padding-inline: 2px !important;
  overscroll-behavior-x: contain !important;
  scrollbar-width: none !important;
  touch-action: pan-x pan-y !important;
}
#produtosCarrossel::-webkit-scrollbar { display: none !important; }
#produtosCarrossel > .produto-card {
  display: flex !important;
  flex: 0 0 calc((100% - 48px) / 4) !important;
  flex-direction: column !important;
  width: calc((100% - 48px) / 4) !important;
  min-width: 0 !important;
  max-width: none !important;
  scroll-snap-align: start !important;
  scroll-snap-stop: always !important;
}
#produtosCarrossel > .produto-card > .relative {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
  background: #eef2f6 !important;
}
#produtosCarrossel .produto-img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center top !important;
}
#produtosCarrossel > .produto-card > :is(.p-4,.p-5) {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
}
#produtosCarrossel .produto-price-box {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
#produtosCarrossel .produto-price-box span.rounded-full {
  color: #08603f !important;
  background: #eaf9f1 !important;
  border: 1px solid #b4e7cc !important;
  box-shadow: none !important;
}
#prevBtn,#nextBtn {
  display: inline-flex !important;
  width: 44px !important;
  height: 44px !important;
  border-color: #c8d8ef !important;
  background: #fff !important;
  color: var(--mg25-blue) !important;
  box-shadow: 0 7px 18px rgba(16,24,40,.07) !important;
}
#prevBtn:disabled,#nextBtn:disabled { opacity: .36 !important; box-shadow: none !important; }
.mg25-carousel-progress {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 14px;
  margin-top: 8px;
}
.mg25-carousel-dot {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #c7d2e2;
  transition: width .2s ease, background .2s ease;
}
.mg25-carousel-dot.is-active { width: 22px; background: var(--mg25-blue); }

/* Desconto da sacola: bloco legivel, sem faixa azul saturada. */
#listaCarrinho .mg25-cart-discount,
#listaCarrinho .bg-primary-subtle {
  color: #17603f !important;
  background: var(--mg25-success-soft) !important;
  border: 1px solid #a9dfc3 !important;
  box-shadow: none !important;
}
#listaCarrinho .mg25-cart-discount-title,
#listaCarrinho .bg-primary-subtle > .fw-semibold.text-primary {
  display: block !important;
  width: auto !important;
  padding: 0 !important;
  color: #075f40 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  line-height: 1.35 !important;
}
#listaCarrinho .mg25-cart-discount :is(span,small,div) { text-shadow: none !important; }

/* Menu lateral consistente: ocupa toda a altura e preserva rotulos clicaveis. */
#slide-menu-inicio.mg-inicio-slide-menu,
#mg-shop-menu.mg-shop-menu {
  position: fixed !important;
  inset: 0 0 0 auto !important;
  display: flex !important;
  width: var(--mg25-menu-width) !important;
  height: 100dvh !important;
  max-height: none !important;
  flex-direction: column !important;
  overflow: hidden !important;
  padding: 0 !important;
  border: 0 !important;
  border-left: 1px solid var(--mg25-line) !important;
  border-radius: 24px 0 0 24px !important;
  background: #fff !important;
  color: var(--mg25-ink) !important;
  box-shadow: -24px 0 70px rgba(15,23,42,.22) !important;
  transform: translateX(105%) !important;
  z-index: 2147483002 !important;
}
#slide-menu-inicio.mg-inicio-slide-menu.open,
#mg-shop-menu.mg-shop-menu.open { transform: translateX(0) !important; }
#slide-menu-inicio .mg-inicio-menu-header,
#mg-shop-menu .mg-shop-menu-head {
  position: sticky !important;
  top: 0 !important;
  z-index: 2 !important;
  flex: 0 0 auto !important;
  padding: 20px !important;
  border-bottom: 1px solid var(--mg25-line) !important;
  background: #fff !important;
  color: var(--mg25-ink) !important;
}
#slide-menu-inicio .mg-inicio-menu-label,
#mg-shop-menu .mg-shop-menu-label { color: #47709f !important; opacity: 1 !important; }
#slide-menu-inicio .mg-inicio-menu-title,
#mg-shop-menu .mg-shop-menu-title { color: var(--mg25-ink) !important; opacity: 1 !important; }
#slide-menu-inicio .mg-inicio-close-menu,
#mg-shop-menu .mg-shop-close {
  color: var(--mg25-blue) !important;
  background: #edf5ff !important;
  border: 1px solid #cfe0f6 !important;
}
#slide-menu-inicio .mg-inicio-menu-list,
#mg-shop-menu .mg-shop-list {
  display: flex !important;
  min-height: 0 !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  gap: 8px !important;
  overflow-y: auto !important;
  padding: 14px 14px calc(20px + env(safe-area-inset-bottom,0px)) !important;
  background: #f8fafc !important;
}
#slide-menu-inicio .mg-inicio-menu-item,
#mg-shop-menu .mg-shop-item {
  display: flex !important;
  min-height: 50px !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 11px 13px !important;
  border: 1px solid #dce5f1 !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: var(--mg25-ink) !important;
  opacity: 1;
  visibility: visible !important;
}
#slide-menu-inicio .mg-inicio-menu-item span,
#mg-shop-menu .mg-shop-item span {
  display: inline !important;
  color: inherit !important;
  opacity: 1 !important;
  visibility: visible !important;
}
#slide-menu-inicio .mg-inicio-menu-item i,
#mg-shop-menu .mg-shop-item i { width: 22px !important; color: #6fa7ef !important; opacity: 1 !important; }
#slide-menu-inicio .mg-inicio-profile-box,
#mg-shop-menu .mg-shop-profile { background: #f5f9ff !important; }
#slide-menu-inicio .mg-inicio-cart-link,
#mg-shop-menu .mg-shop-cart { color: #fff !important; background: var(--mg25-blue) !important; border-color: var(--mg25-blue) !important; }
#slide-menu-inicio .mg-inicio-cart-link span,
#mg-shop-menu .mg-shop-cart span { color: #fff !important; }
#slide-menu-inicio .mg-inicio-logout,
#mg-shop-menu .mg-shop-logout { color: #b42318 !important; background: #fff5f4 !important; border-color: #ffd0cc !important; }
#overlay-inicio.mg-inicio-overlay,
#mg-shop-overlay.mg-shop-overlay {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(15,23,42,.48) !important;
  backdrop-filter: blur(3px) !important;
  z-index: 2147483001 !important;
}
#overlay-inicio:not(.mg-inicio-hidden),
#mg-shop-overlay:not(.mg-shop-hidden) { display: block !important; opacity: 1 !important; pointer-events: auto !important; }
body.mg25-menu-open { overflow: hidden !important; }

/* Login: campos sem sobreposicao e sem navegacao flutuante da loja. */
body.mg-auth-page { padding-bottom: 0 !important; overflow-x: hidden; }
body.mg-auth-page :is(#mgCleanBottomNav,#mgBottomNav,#mobileBottomNav,.mg-clean-bottom-nav,.mg-bottom-nav,.mg-mobile-bottom-nav,.mobile-bottom-nav,.bottom-nav,.mg-v8-bottom-nav,.mg-v7-bottom-nav,.mg-v6-bottom-nav,#mgChatLauncher,#mgChatPanel,#carrinhoFlutuante) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.mg-auth-page .input-wrap { position: relative !important; display: block !important; }
body.mg-auth-page .input-icon {
  position: absolute !important;
  top: 50% !important;
  left: 15px !important;
  width: 18px !important;
  margin: 0 !important;
  color: var(--mg25-blue) !important;
  line-height: 1 !important;
  transform: translateY(-50%) !important;
  z-index: 2 !important;
  pointer-events: none !important;
}
body.mg-auth-page .login-input {
  width: 100% !important;
  padding-left: 48px !important;
  padding-right: 16px !important;
  text-indent: 0 !important;
}
body.mg-auth-page .login-input.password-input { padding-right: 50px !important; }
body.mg-auth-page .toggle-password { right: 10px !important; left: auto !important; z-index: 3 !important; }

@media (max-width: 1023px) and (min-width: 761px) {
  #produtosCarrossel > .produto-card {
    flex-basis: calc((100% - 14px) / 2) !important;
    width: calc((100% - 14px) / 2) !important;
  }
}

@media (max-width: 760px) {
  body.mg-page-bg main.mg-main { padding-top: 2px !important; }
  body.mg-page-bg main.mg-main > .mg-story-shell { padding-top: 2px !important; }
  .mg-story-card { border-radius: 18px !important; }
  .mg-story-card .mg-story-empty-inner { padding: 13px !important; }
  .mg-story-content-box { padding: 9px !important; }
  .mg-store { padding-top: 4px !important; }

  .mg-products-panel { padding: 13px !important; }
  #produtosCarrossel { gap: 12px !important; padding-bottom: 12px !important; }
  #produtosCarrossel > .produto-card {
    flex-basis: 100% !important;
    width: 100% !important;
  }
  #produtosCarrossel > .produto-card > :is(.p-4,.p-5) { padding: 13px !important; }
  #produtosCarrossel .produto-nome { font-size: 16px !important; }
  #produtosCarrossel .produto-price-box .text-3xl { font-size: 23px !important; }

  #slide-menu-inicio.mg-inicio-slide-menu,
  #mg-shop-menu.mg-shop-menu {
    width: min(360px, 94vw) !important;
    border-radius: 22px 0 0 22px !important;
  }

  .mg-checkout-clean { padding-top: 5px !important; }
  #listaCarrinho .mg25-cart-discount,
  #listaCarrinho .bg-primary-subtle { padding: 8px !important; font-size: 11px !important; line-height: 1.45 !important; }

  body.mg-auth-page .login-shell { padding-bottom: 24px !important; }
}

@media (prefers-reduced-motion: reduce) {
  #produtosCarrossel { scroll-behavior: auto !important; }
  .mg25-carousel-dot { transition: none !important; }
}
