/* Ajustes exclusivos para telas de até 768px.
   Carregue este arquivo depois dos demais estilos personalizados. */
@media (max-width: 768px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
  }

  .ast-site-identity .site-title a { font-size: 32px; }

  /* Impede que containers desktop deixem faixas laterais ou criem scroll horizontal. */
  .site,
  .site-content,
  .ast-container,
  .ast-builder-grid-row-container,
  .ast-builder-grid-row,
  .entry-content,
  .elementor,
  .elementor-section,
  .elementor-container {
    max-width: 100%;
  }

  .home .entry-content > .elementor > .elementor-element:first-child,
  .home .entry-content > .elementor > .elementor-element:first-child > .elementor-container,
  .home .entry-content > .elementor > .elementor-element:first-child .elementor-widget-container {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
  }

  .home .entry-content > .elementor > .elementor-element:first-child img {
    display: block;
    width: 100% !important;
    max-width: none !important;
  }

  /* Menu Astra: painel integral, sem o contorno/overflow do botão de fechar. */
  .ast-mobile-popup-drawer,
  .ast-mobile-popup-inner,
  .ast-mobile-popup-content,
  .ast-mobile-popup-content .ast-builder-menu-mobile,
  .ast-mobile-popup-content .ast-builder-menu-mobile .main-header-menu {
    width: 100vw !important;
    max-width: 100vw !important;
  }

  .ast-mobile-popup-content {
    overflow-x: hidden !important;
  }

  .ast-mobile-popup-drawer .menu-toggle,
  .ast-mobile-popup-drawer .ast-mobile-popup-drawer-close,
  .ast-mobile-popup-drawer .ast-header-break-point .ast-mobile-menu-buttons-minimal.menu-toggle,
  .ast-mobile-popup-drawer .menu-toggle:focus,
  .ast-mobile-popup-drawer .menu-toggle:focus-visible,
  .ast-mobile-popup-drawer .ast-mobile-popup-drawer-close:focus,
  .ast-mobile-popup-drawer .ast-mobile-popup-drawer-close:focus-visible {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
  }

  .ast-mobile-popup-content .main-header-menu .menu-item > .menu-link,
  .ast-mobile-popup-content .main-header-menu .menu-item > .ast-menu-toggle {
    border: 0 !important;
    background: transparent !important;
  }

  .ast-mobile-popup-content .main-header-menu .menu-item > .ast-menu-toggle {
    border-left: 0 !important;
  }

  .ast-mobile-popup-content .main-header-menu .menu-item.current-menu-item > .menu-link,
  .ast-mobile-popup-content .main-header-menu .menu-item.ast-submenu-expanded > .menu-link {
    background: transparent !important;
    color: inherit !important;
    text-shadow: 0 1px 7px rgba(0, 0, 0, .24);
  }

  /* Sacola: painel fixo ocupa a viewport inteira e preserva cabeçalho e rodapé. */
  #astra-mobile-cart-drawer,
  #astra-mobile-cart-drawer .astra-cart-drawer-content {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    inset: 0 !important;
    transform: none !important;
  }

  #astra-mobile-cart-drawer .astra-cart-drawer-content {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }

  #astra-mobile-cart-drawer .woocommerce-mini-cart,
  #astra-mobile-cart-drawer .widget_shopping_cart_content {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  #astra-mobile-cart-drawer .astra-cart-drawer-footer {
    position: sticky;
    bottom: 0;
    flex: 0 0 auto;
    background: #fff;
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }

  /* Produto */
  .single-product .site-content .ast-container,
  .single-product .ast-article-single,
  .single-product div.product,
  .single-product .summary.entry-summary {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
  }

  .single-product .site-content .ast-container,
  .single-product .ast-article-single,
  .single-product div.product { padding-inline: 0 !important; }

  .single-product .summary.entry-summary { padding-inline: 20px !important; }
  .single-product .product_title { font-size: 20px; line-height: 1.28; }

  /* O breadcrumb superior é removido; apenas o movido para depois das miniaturas fica visível. */
  .single-product .ast-breadcrumbs-wrapper,
  .single-product .ast-breadcrumb-trail,
  .single-product .ast-woocommerce-breadcrumb,
  .single-product .pulsare-hidden-mobile-breadcrumb {
    display: none !important;
  }

  /* O breadcrumb passa a ficar sob as miniaturas, como no modelo de referência. */
  .single-product .woocommerce-breadcrumb {
    display: block !important;
    width: 100%;
    margin: 14px 0 20px !important;
    padding: 0 20px;
    overflow: hidden;
    color: #777;
    font-size: 10px;
    line-height: 1.3;
    letter-spacing: .035em;
    text-transform: uppercase;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .single-product .woocommerce-breadcrumb a,
  .single-product .woocommerce-breadcrumb .breadcrumb-last {
    display: inline;
    color: inherit;
  }

  .single-product .woocommerce-breadcrumb.pulsare-product-gallery-breadcrumb {
    display: block !important;
  }

  .single-product .price,
  .single-product .price .amount { display: block; }

  .single-product .summary .price > .amount,
  .single-product .summary .price > ins > .amount {
    font-size: 23px !important;
    line-height: 1.2;
  }

  .single-product .price small,
  .single-product .price .woocommerce-installments,
  .single-product .pulsare-parcelamento,
  .single-product .pulsare-parcelamento {
    display: inline-block !important;
    margin-top: 6px;
    font-size: 13px !important;
    font-weight: 400;
    line-height: 1.35;
    color: #777 !important;
  }

  .single-product .pulsare-parcelamento .sem-juros,
  .single-product .pulsare-parcelamento span,
  .single-product .pulsare-parcelamento strong {
    display: inline !important;
    font: inherit !important;
    color: inherit !important;
  }

  .pulsare-product-favorite-anchor { display: block !important; }
  .pulsare-favorite-btn {
    width: 34px !important;
    height: 34px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .pulsare-favorite-btn:hover,
  .pulsare-favorite-btn:focus,
  .pulsare-favorite-btn:active {
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  .pulsare-favorite-btn__icon { display: inline-flex; width: 26px; height: 26px; }
  .pulsare-favorite-btn__icon svg { width: 100%; height: 100%; fill: transparent; stroke: currentColor; }
  .pulsare-favorite-btn.is-active { color: #c8a96a !important; }
  .pulsare-favorite-btn.is-active .pulsare-favorite-btn__icon svg { fill: currentColor; }

  .single-product form.cart .single_add_to_cart_button {
    align-self: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center;
  }

  /* Rodapé: evita a quebra de palavras nos títulos das três colunas. */
  #colophon .widget-title,
  .site-footer .widget-title,
  .site-footer h1,
  .site-footer h2,
  .site-footer h3,
  .site-footer h4 {
    font-size: 12px !important;
    line-height: 1.25 !important;
    letter-spacing: .12em !important;
    overflow-wrap: normal;
    word-break: normal;
  }

  #colophon,
  #colophon p,
  #colophon a,
  .site-footer p,
  .site-footer a {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  /* Checkout: uma coluna, sem encolhimento do resumo e campos. */
  .woocommerce-checkout,
  .pulsare-checkout { width: 100% !important; overflow-x: hidden; }

  .pulsare-checkout { padding: 24px 16px !important; }
  .pulsare-checkout__container { display: flex !important; flex-direction: column !important; width: 100% !important; gap: 28px !important; }
  .pulsare-checkout__customer,
  .pulsare-checkout__sidebar,
  .pulsare-checkout__summary,
  .pulsare-checkout__sidebar-content,
  #customer_details,
  .pulsare-checkout #order_review { width: 100% !important; max-width: none !important; min-width: 0 !important; }

  .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr !important; gap: 16px !important; }
  .woocommerce-billing-fields__field-wrapper .form-row { width: 100% !important; float: none !important; }
  .pulsare-checkout .shop_table th,
  .pulsare-checkout .shop_table td { overflow-wrap: anywhere; }

  .pulsare-checkout__continue {
    display: block;
    width: 100%;
    margin-top: 24px;
    min-height: 52px;
    border: 0;
    background: #111;
    color: #fff;
    font: inherit;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .pulsare-checkout:not(.is-payment-step) .pulsare-checkout__sidebar { display: none !important; }
  .pulsare-checkout.is-payment-step .pulsare-checkout__customer { display: none !important; }

  .pulsare-checkout-topbar { overflow: hidden; }
  .pulsare-checkout-topbar__container {
    width: max-content;
    min-width: max-content;
    justify-content: flex-start;
    gap: 0;
    padding: 7px 0;
    animation: pulsare-checkout-marquee 18s linear infinite;
  }
  .pulsare-checkout-feature { flex: 0 0 auto; padding-right: 30px; }
  .pulsare-checkout-feature:not(:first-child) { padding-left: 30px; }

  .pulsare-checkout-main__container { padding: 20px 16px !important; grid-template-columns: 1fr auto 1fr; }
  .pulsare-checkout-logo { font-size: 25px !important; letter-spacing: 7px !important; }
  .pulsare-checkout-main__left,
  .pulsare-checkout-main__right { font-size: 0 !important; }
  .pulsare-checkout-main__left a { font-size: 10px !important; }
  .pulsare-checkout-progress__container { padding: 20px 12px !important; }
  .pulsare-step { min-width: 84px !important; gap: 8px; }
  .pulsare-step span { font-size: 10px !important; letter-spacing: .8px !important; }
  .pulsare-progress-line { min-width: 18px; }
}

@keyframes pulsare-checkout-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
