

body .page-footer { background: #f7f7f7; padding: 0; }
body .page-footer > .footer.content { padding-top: 0; padding-bottom: 0; border: 0; min-height: 0; }
body .df-footer { padding-top: 64px; background: #f7f7f7; }
body .df-footer-main { max-width: 1150px; padding: 0 20px; margin: 0 auto; }
body .df-footer a:focus-visible { outline: 2px solid #f26522; outline-offset: 3px; }
body .df-footer-main,
body .df-footer-meta { font-family: "Montserrat",sans-serif; color: #262b35; box-sizing: border-box; }
body .df-footer-main *,
body .df-footer-meta * { box-sizing: border-box; }
body .df-footer-main h2,
body .df-footer-meta h2 { margin: 0 0 24px; color: #030406; font: 600 16px/20px "Montserrat",sans-serif; }
body .df-footer-main p,
body .df-footer-meta p,
body .df-footer-main ul,
body .df-footer-meta ul,
body .df-footer-main dl,
body .df-footer-main dd,
body .df-footer-meta dl,
body .df-footer-meta dd { margin: 0; padding: 0; }
body .df-footer-main ul,
body .df-footer-meta ul { list-style: none; }
body .page-footer .df-footer-main a { color: #262b35 !important; text-decoration: none; font: inherit; }
body .page-footer .df-footer-main a:hover { color: #f26522 !important; text-decoration: underline; }
body .df-footer-main { display: grid; gap: 32px; }
body .df-footer-brand { padding: 32px; background: #fff; box-shadow: 3px 3px 15px #0000001a; text-align: center; }
body .df-footer-brand > a { display: block; width: 210px; height: 70px; margin: 0 auto 20px; }
body .df-footer-brand img { display: block; width: 210px; height: 70px; object-fit: contain; }
body .df-footer-brand p { color: #262b35; font: 400 12px/15px "Montserrat",sans-serif; }
body .df-footer-nav { display: grid; gap: 32px; }
body .page-footer .df-footer-nav ul > li { margin: 0 0 8px; padding: 0; font: 400 14px/17px "Montserrat",sans-serif; }
body .page-footer .df-footer-nav ul > li:last-child { margin-bottom: 0; }
body .df-footer-contact dl { display: grid; gap: 16px; font: 400 14px/17px "Montserrat",sans-serif; }
body .df-footer-contact dt { margin: 0 0 7px; font-weight: 400; }
body .df-footer-contact dd { overflow-wrap: anywhere; }
body .df-footer-meta { max-width: 1150px; padding: 0 20px 40px; margin: 48px auto 0; }
body .df-footer-details,
body .df-footer-badges { display: grid; gap: 32px; }
body .df-footer-business { display: grid; align-content: start; gap: 39px; }
body .df-footer-business > div { display: flex; align-items: center; gap: 16px; }
body .df-footer-business dt { margin: 0; color: #030406; font: 600 16px/20px "Montserrat",sans-serif; }
body .df-footer-business dd { font: 400 12px/15px "Montserrat",sans-serif; }
body .df-footer-meta h2 { margin-bottom: 30px; white-space: nowrap; }
body .df-footer-payment ul { display: grid; grid-template-columns: repeat(4,47px); gap: 7px; }
body .df-footer-payment li { display: flex; align-items: center; justify-content: center; width: 47px; height: 31px; margin: 0; border: 1px solid #b9b9b9; border-radius: 3px; background: #fff; }
body .df-footer-payment img { display: block; object-fit: contain; max-width: 100%; }
body .df-footer-payment li.df-payment-boleto { color: #686868; font: 400 9px/9px "Montserrat",sans-serif; text-align: center; }
body .df-footer-security > img { display: block; width: 118px; height: 36px; object-fit: contain; margin-left: 17px; }
body .df-footer-shipping > img { display: block; width: 137px; height: 39px; object-fit: contain; }
body .df-footer-credits { margin-top: 32px; padding-top: 16px; border-top: 1px solid #5b5d5d; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; color: #979797; font: 400 12px/15px "Montserrat",sans-serif; }
body .df-footer-credits > div { display: flex; align-items: center; gap: 12px; }
body .df-footer-credits img { display: block; width: 75px; height: 15px; }
@media  (min-width: 768px) and (max-width: 1023px)  {body .df-footer-nav { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
body .df-footer-brand { max-width: 342px; margin: 0 auto; }
body .df-footer-badges { grid-template-columns: 210px 160px 138px; justify-content: space-between; gap: 16px; }}
@media  (min-width: 1024px)  {body .df-footer-main { grid-template-columns: 342px minmax(0,1fr); gap: 64px; }
body .df-footer-brand { min-height: 247px; }
body .df-footer-nav { display: flex; justify-content: space-between; gap: 24px; }
body .df-footer-categories { width: 152px; flex-shrink: 0; }
body .df-footer-institutional { width: 160px; }
body .df-footer-contact { width: 161px; }
body .df-footer-meta { margin-top: 137px; padding-bottom: 58px; }
body .df-footer-details { display: flex; justify-content: space-between; gap: 32px; }
body .df-footer-business { width: 300px; flex-shrink: 0; }
body .df-footer-badges { width: 663px; display: flex; justify-content: space-between; gap: 24px; }
body .df-footer-security { width: 160px; }
body .df-footer-shipping { width: 138px; }}
@media  (min-width: 1024px) and (max-width: 1199px)  {body .df-footer-main { grid-template-columns: 280px minmax(0,1fr); gap: 32px; }
body .df-footer-nav { gap: 20px; }
body .df-footer-business { width: 255px; }
body .df-footer-badges { flex: 1; gap: 16px; }}
body.cms-index-index .page-footer .footer.content .df-footer-brand > a { display: block; float: none; width: 210px; height: 70px; margin: 0 auto 20px; padding: 0; }
body .df-footer-payment li:nth-child(3) { background: #007ba0; border-color: #007ba0; }


/* Figma 4028:9714, 4028:9420, 4082:24281. Loaded after tema.css. */
body:not(.checkout-index-index) .page-header .df-support { position: relative; z-index: 102; }
body .df-support-toggle { display: flex; align-items: center; gap: 14px; padding: 0; border: 0; background: transparent; box-shadow: none; color: #262b35; font-family: Montserrat,sans-serif; text-align: left; }
body .page-header .df-support img.df-support-chevron { width: 7px; height: 4px; }
body .df-support-panel { position: absolute; z-index: 103; left: 0; top: 100%; width: 310px; box-sizing: border-box; background: #fff; padding: 20px; color: #141414; font: 400 14px/17px Montserrat,sans-serif; box-shadow: 0 3px 10px #00000012; }
body .df-support-panel[hidden] { display: none; }
body .df-support-panel a { font-weight: 700; color: #141414; text-decoration: none; }
body .df-support-panel .df-support-email { text-decoration: underline; }
body .df-support-panel > div { white-space: nowrap; }
body .df-support-toggle:focus-visible, body .df-support-panel a:focus-visible { outline: 2px solid #f26522; outline-offset: 3px; }
/* Native Magento dropdown becomes a fixed drawer; bindings and AJAX stay native. */
body.df-cart-open { overflow: hidden; }
.df-cart-backdrop { position: fixed; inset: 0; z-index: 9998; border: 0; padding: 0; margin: 0; background: rgba(0,0,0,.25); border-radius: 0; box-shadow: none; }
body .df-cart-backdrop:hover, body .df-cart-backdrop:focus { background: rgba(0,0,0,.25); border: 0; }
body:not(.checkout-index-index) .minicart-wrapper .mage-dropdown-dialog { position: fixed; inset: 0 0 0 auto; width: min(480px,100vw); height: 100vh; height: 100dvh; z-index: 9999; margin: 0; padding: 0; background: #fff; }
body .minicart-wrapper .block-minicart { position: static; width: 100%; min-width: 0; height: 100%; margin: 0; padding: 0; border: 0; box-shadow: none; font-family: Montserrat,sans-serif; box-sizing: border-box; }
body .minicart-wrapper .block-minicart::before, body .minicart-wrapper .block-minicart::after { display: none; }
body #minicart-content-wrapper { height: 100%; display: flex; flex-direction: column; }
body .minicart-wrapper .block-minicart .block-title { display: flex; align-items: center; justify-content: center; flex: 0 0 91px; box-sizing: border-box; margin: 0; padding: 10px 20px; border: 0; }
body .minicart-wrapper .block-minicart .block-title strong { display: flex; align-items: center; gap: 8px; color: #3f3f3f; font: 700 24px/29px Montserrat,sans-serif; }
body .minicart-wrapper .block-minicart .block-title strong::before { content: ''; width: 24px; height: 24px; background: url('../images/df-ui/cart.svg') center/contain no-repeat; }
body .minicart-wrapper .block-minicart .block-title .qty { display: none; }
body .minicart-wrapper .block-minicart .block-content { display: flex; flex-direction: column; min-height: 0; flex: 1; padding: 0 20px 32px; }
body .minicart-wrapper .block-minicart .block-content > .action.close { position: absolute; top: 33px; left: 20px; right: auto; width: 24px; height: 24px; margin: 0; padding: 0; border: 0; background: url('../images/df-ui/close.svg') center/24px no-repeat; }
body .minicart-wrapper .block-minicart .action.close::before { content: none; }
body .minicart-wrapper .block-minicart .minicart-items-wrapper { order: 0; flex: 1; min-height: 0; max-height: none; height: auto !important; overflow-y: auto; margin: 0; padding: 16px 0 20px; border: 0; }
body .minicart-wrapper .block-minicart .minicart-items { margin: 0; padding: 0; }
body .minicart-wrapper .block-minicart .minicart-items .product-item { padding: 0 0 24px; border: 0; }
body .minicart-wrapper .block-minicart .minicart-items .product-item > .product { display: flex; gap: 30px; position: relative; }
body .minicart-wrapper .block-minicart .minicart-items .product-item-photo { width: 117px; flex: 0 0 117px; float: none; }
body .minicart-wrapper .block-minicart .minicart-items .product-image-container { width: 117px !important; }
body .minicart-wrapper .block-minicart .minicart-items .product-image-photo { width: 117px; height: 95px; object-fit: contain; }
body .minicart-wrapper .block-minicart .minicart-items .product-item-details { flex: 1; min-width: 0; padding: 0; }
body .minicart-wrapper .block-minicart .minicart-items .product-item-name { display: block; margin: 0 20px 16px 0; font: 600 16px/21px Montserrat,sans-serif; }
body .minicart-wrapper .block-minicart .minicart-items .product-item-name a { color: #393939; }
body .minicart-wrapper .block-minicart .minicart-items .price { font: 600 24px/29px Montserrat,sans-serif; color: #141414; }
body .minicart-wrapper .block-minicart .minicart-items .details-qty { position: relative; display: flex; align-items: center; justify-content: space-between; width: 128px; height: 30px; box-sizing: border-box; margin-top: 8px; border: 1px solid #ccc; border-radius: 3px; padding: 0 8px; }
body .minicart-wrapper .block-minicart .details-qty > .label { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
body .minicart-wrapper .block-minicart input.cart-item-qty { width: 44px; height: 28px; margin: 0; padding: 0; border: 0; box-shadow: none; color: #666; font: 400 16px/20px Montserrat,sans-serif; text-align: center; appearance: textfield; }
body .minicart-wrapper .block-minicart input.cart-item-qty::-webkit-inner-spin-button { appearance: none; }
body .minicart-wrapper .block-minicart .df-qty-minus, body .minicart-wrapper .block-minicart .df-qty-plus { width: 24px; height: 28px; border: 0; padding: 0; background: transparent center/14px no-repeat; box-shadow: none; }
body .minicart-wrapper .block-minicart .df-qty-minus { background-image: url('../images/df-ui/minus.svg'); }
body .minicart-wrapper .block-minicart .df-qty-plus { background-image: url('../images/df-ui/plus.svg'); }
body .minicart-wrapper .block-minicart .update-cart-item { position: absolute; left: 136px; top: 0; margin: 0; min-height: 30px; }
body .minicart-wrapper .block-minicart .minicart-items .product.actions { margin: 0; }
body .minicart-wrapper .block-minicart .minicart-items .action.delete { position: absolute; right: 0; top: 0; width: 16px; height: 16px; background: url('../images/df-ui/trash.svg') center/contain no-repeat; }
body .minicart-wrapper .block-minicart .minicart-items .action.delete::before { content: none; }
body .minicart-wrapper .block-minicart .minicart-items .action.edit { font-size: 11px; }
body .minicart-wrapper .block-minicart .df-cart-summary { order: 3; flex: none; padding-top: 16px; }
body .minicart-wrapper .block-minicart .df-cart-summary .items-total { display: none; }
body .minicart-wrapper .block-minicart .subtotal { display: flex; justify-content: space-between; align-items: center; margin: 0 0 8px; }
body .minicart-wrapper .block-minicart .subtotal .label { font: 400 14px/20px Montserrat,sans-serif; color: #3f3f3f; }
body .minicart-wrapper .block-minicart .subtotal .amount .price { color: #141414; font: 600 24px/29px Montserrat,sans-serif; }
body .minicart-wrapper .block-minicart .df-cart-note { display: block; color: #3f3f3f; font: 400 14px/20px Montserrat,sans-serif; text-decoration: none; }
body .minicart-wrapper .block-minicart .df-cart-summary .actions { margin: 24px 0 0; }
body .minicart-wrapper .block-minicart .df-cart-summary .action.checkout { display: block; width: 100%; height: 49px; padding: 12px 10px; margin: 0; background: #f26522; color: #fff; border: 0; border-radius: 0; font: 700 18px/22px Montserrat,sans-serif; }
body .minicart-wrapper .block-minicart .block-content > .actions { display: none; }
body .minicart-wrapper .block-minicart .subtitle.empty { margin: 40px 0; text-align: center; font: 400 16px/24px Montserrat,sans-serif; }
body .minicart-wrapper .block-minicart .minicart-widgets { order: 2; }
body .minicart-wrapper .block-minicart :is(a,button,input):focus-visible { outline: 2px solid #f26522; outline-offset: 2px; }
/* Figma hero controls, using the existing Owl carousel. */
body.cms-index-index .banner-principal-desktop .owl-nav { display: block; margin: 0; }
body.cms-index-index .banner-principal-desktop .owl-nav button { position: absolute; top: calc(50% - 27px); width: 54px; height: 54px; padding: 0; margin: 0; border: 0; border-radius: 0; background: #333 url('../images/df-ui/hero-arrow.svg') center/18px 19px no-repeat; box-shadow: 0 2px 6px #00000026; }
body.cms-index-index .banner-principal-desktop .owl-nav button span { display: none; }
body.cms-index-index .banner-principal-desktop .owl-nav .owl-prev { left: max(20px,calc(50% - 604px)); }
body.cms-index-index .banner-principal-desktop .owl-nav .owl-next { right: max(20px,calc(50% - 587px)); transform: rotate(180deg); }
body.cms-index-index .banner-principal-desktop .owl-dots { position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); display: flex; gap: 4px; margin: 0; }
body.cms-index-index .banner-principal-desktop .owl-dots .owl-dot { width: 8px; height: 8px; padding: 0; margin: 0; border: 0; }
body.cms-index-index .banner-principal-desktop .owl-dots .owl-dot span { display: block; width: 8px; height: 8px; margin: 0; border-radius: 50%; background: #d9d9d9; }
body.cms-index-index .banner-principal-desktop .owl-dots .owl-dot.active span { background: #f26522; }
@media (max-width: 767px) {
 body .df-support-panel { left: 50%; transform: translateX(-50%); max-width: calc(100vw - 24px); }
 body .minicart-wrapper .block-minicart .minicart-items .product-item > .product { gap: 16px; }
 body .minicart-wrapper .block-minicart .minicart-items .product-item-photo { width: 85px; flex-basis: 85px; }
 body .minicart-wrapper .block-minicart .minicart-items .product-image-container, body .minicart-wrapper .block-minicart .minicart-items .product-image-photo { width: 85px !important; }
 body .minicart-wrapper .block-minicart .update-cart-item { left: 0; top: 34px; }
 body .minicart-wrapper .block-minicart .details-qty:has(.update-cart-item[style*="inline-block"]) { margin-bottom: 36px; }
}
body .df-cart-backdrop[hidden] { display: none; }

body.df-cart-open .whatsapp-fixo { visibility: hidden; }
body .minicart-wrapper .block-minicart .subtotal .label { display: block; }
body .minicart-wrapper .block-minicart .minicart-items .product { margin: 0; padding: 0; }
body .minicart-wrapper .block-minicart .minicart-items > .product-item { margin-left: 0; margin-right: 0; }
body .minicart-wrapper .block-minicart .product-image-container { max-width: 117px; }
body .minicart-wrapper .block-minicart .product-item-name a { text-decoration: none; }
body .minicart-wrapper .block-minicart input.cart-item-qty { background: transparent; border-radius: 0; }
body.cms-index-index .banner-principal-desktop .owl-dots { top: auto; height: 8px; }
body .df-cart-backdrop { z-index: 849; }
body:not(.checkout-index-index) .minicart-wrapper .mage-dropdown-dialog { z-index: 850; }
body.df-support-open::after { content: ''; position: fixed; inset: 0; z-index: 101; background: #0004; pointer-events: none; }
body .minicart-wrapper .block-minicart .subtotal .amount { font: 600 24px/29px Montserrat,sans-serif; color: #141414; }
body .minicart-wrapper .block-minicart .product-image-wrapper { height: 95px; padding-bottom: 0 !important; }
body .minicart-wrapper .block-minicart img.product-image-photo { width: 117px !important; height: 95px !important; object-fit: contain; }
body .minicart-wrapper .block-minicart .minicart-items .product::before, body .minicart-wrapper .block-minicart .minicart-items .product::after { content: none; }
body .minicart-wrapper .block-minicart .subtotal .label::after { content: none; }
body.cms-index-index .banner-principal-desktop .owl-nav.disabled { display: none; }


/* Figma header: automatic Magento categories, desktop only. */
.df-category-nav { display:none; }
@media (min-width:1024px) {
 body:not(.checkout-index-index) .nav-sections .df-native-navigation { display:none; }
 body:not(.checkout-index-index) .nav-sections,
 body:not(.checkout-index-index) .nav-sections-item-content { background:#333; }
 .nav-sections .df-category-nav {
  display:flex; align-items:center; gap:16px; height:60px; width:100%; max-width:1150px; padding:4px 20px; margin:0 auto; box-sizing:border-box;
  position:relative; z-index:90; font-family:Montserrat,sans-serif; color:#fff;
 }
 .df-category-nav ul { list-style:none; margin:0; padding:0; }
 .df-category-nav li { margin:0; padding:0; }
 .df-category-nav .df-menu-bar { display:flex; justify-content:space-between; align-items:stretch; flex:1; min-width:0; height:52px; }
 .df-category-nav .df-menu-item { position:relative; flex:0 0 auto; display:flex; align-items:center; }
 .df-category-nav .df-menu-item > a { display:flex; align-items:center; height:52px; padding:0 16px; color:#fff; font:600 14px/20px Montserrat,sans-serif; white-space:nowrap; text-decoration:none; }
 .df-category-nav .df-menu-item:has(.df-menu-toggle) > a { padding-right:5px; }
 .df-category-nav .df-menu-item > a:hover { color:#fff; }
 .df-category-nav .df-menu-all { flex:0 0 155px; position:relative; }
 .df-category-nav .df-menu-all-button { display:flex; align-items:center; gap:15px; width:155px; height:40px; padding:8px; margin:0; border:0; border-radius:0; background:#fff; box-shadow:none; color:#141414; font:600 14px/20px Montserrat,sans-serif; cursor:pointer; }
 .df-category-nav .df-menu-all-button::before { content:''; width:12px; height:10.501px; flex:none; background:url('../images/df-menu/bars.svg') center/contain no-repeat; }
 .df-category-nav .df-menu-all-button::after { content:''; width:26.193px; height:23.996px; margin-left:auto; flex:none; background:url('../images/df-menu/down.svg') center/contain no-repeat; }
 .df-category-nav .df-menu-all-button:disabled { cursor:default;opacity:1;background:#fff;color:#141414; }
 .df-category-nav .df-menu-toggle { width:20px; height:36px; padding:0; margin:0 3px 0 0; border:0; box-shadow:none; background:transparent url('../images/df-menu/down.svg') center/20px 18px no-repeat; filter:invert(1); cursor:pointer; }
 .df-category-nav .df-menu-panel { position:absolute; top:calc(100% + 4px); left:0; z-index:100; min-width:220px; width:max-content; max-width:min(360px,calc(100vw - 40px)); max-height:calc(100dvh - 170px); overflow:auto; padding:16px; box-sizing:border-box; background:#333; border-radius:0 0 4px 4px; }
 .df-category-nav .df-menu-all > .df-menu-panel { top:calc(100% + 10px); left:auto; right:0; }
 .df-category-nav .df-menu-tree { display:flex; flex-direction:column; gap:8px; }
 .df-category-nav .df-menu-tree a { display:block; color:#fff; font:400 12px/1.4 Montserrat,sans-serif; text-decoration:none; overflow-wrap:anywhere; }
 .df-category-nav .df-menu-tree a:hover { text-decoration:underline; }
 .df-category-nav .df-menu-tree details { margin:4px 0 0; }
 .df-category-nav .df-menu-tree summary { cursor:pointer; color:#fff; font:400 12px/1.4 Montserrat,sans-serif; }
 .df-category-nav .df-menu-tree details > ul { padding:8px 0 0 12px; }
 .df-category-nav :is(a,button,summary):focus-visible { outline:2px solid #f26522; outline-offset:2px; }
 .df-category-nav [hidden] { display:none !important; }
}
@media (min-width:1024px) {
 .df-category-nav .df-menu-item:has(.df-menu-toggle) > a { padding-right:16px; }
 .df-category-nav .df-menu-toggle { position:absolute; right:0; width:16px; margin:0; opacity:0; }
 .df-category-nav .df-menu-toggle:focus-visible { opacity:1; }
}
@media (min-width:1024px) { .df-category-nav .df-menu-extra { margin-top:16px; padding-top:12px; border-top:1px solid #666; } }
@media (min-width:1024px) {
 .df-category-nav .df-menu-tree li { position:relative; }
 .df-category-nav .df-menu-tree li:has(> details) { padding-right:22px; }
 .df-category-nav .df-menu-tree details { margin:0; }
 .df-category-nav .df-menu-tree summary { position:absolute; right:0; top:0; width:18px; height:18px; font-size:0; list-style:none; background:url('../images/df-menu/down.svg') center/18px 16px no-repeat; filter:invert(1); }
 .df-category-nav .df-menu-tree summary::-webkit-details-marker { display:none; }
 .df-category-nav .df-menu-tree details[open] > summary { transform:rotate(180deg); }
}


/* Figma: 6020:14454 (cards), 6024:16289 (PDP), 4028:9420 (minicart).
   Only presentation: prices, stock, discounts and checkout remain Magento data. */
body:not(.checkout-index-index) .page-header .minicart-wrapper .action.showcart .counter.qty {
 display:inline-flex;align-items:center;justify-content:center;width:22px;min-width:22px;max-width:none;height:22px;right:auto;bottom:auto;flex:none;padding:0 3px;border-radius:50%;background:#f26522;line-height:22px;
}
body:not(.checkout-index-index) .page-header .minicart-wrapper .action.showcart .counter.qty.empty {display:none}
body .page-header .minicart-wrapper .action.showcart .counter-label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
body .page-header .minicart-wrapper .action.showcart .counter-number {width:auto;line-height:22px;font-size:12px}
/* Do not hide a checkout action if a cached, native template is still present. */
body .minicart-wrapper .block-minicart .block-content > .actions:has(.checkout) {display:block;order:4;margin-top:24px}
body .minicart-wrapper .block-minicart .block-content {overflow:hidden}
body .minicart-wrapper .block-minicart .block-content > .items-total {display:none}
body .minicart-wrapper .block-minicart .block-content > .subtotal {order:3}
body .minicart-wrapper .block-minicart .df-cart-summary {width:100%;box-sizing:border-box;flex-shrink:0}
body .minicart-wrapper .block-minicart .minicart-items-wrapper {width:auto;box-sizing:border-box;flex:1 1 auto}
body .minicart-wrapper .block-minicart .minicart-items .product-item-name {min-height:42px;line-height:21px}
body .minicart-wrapper .block-minicart .minicart-items .product-item-pricing {display:block;text-align:left}
body .minicart-wrapper .block-minicart .product-item-pricing .price-container {display:block;padding:0;margin:0;text-align:left}
body .minicart-wrapper .block-minicart .details-qty {flex:none}
body .minicart-wrapper .block-minicart .details-qty .df-qty-minus,body .minicart-wrapper .block-minicart .details-qty .df-qty-plus {display:block;flex:0 0 24px;width:24px;height:28px;padding:0;margin:0;border:0;box-shadow:none;background:transparent center/14px 14px no-repeat}
body .minicart-wrapper .block-minicart .details-qty .df-qty-minus {background-image:url('../images/df-shopping/minus.svg')}
body .minicart-wrapper .block-minicart .details-qty .df-qty-plus {background-image:url('../images/df-shopping/plus.svg')}
body .minicart-wrapper .block-minicart .details-qty input.cart-item-qty {flex:0 0 44px;width:44px;max-width:44px;min-width:0}
body .minicart-wrapper .block-minicart .df-cart-summary .subtotal {width:100%;gap:16px;float:none;text-align:left}
body .minicart-wrapper .block-minicart .df-cart-summary .subtotal .amount {float:none;margin:0;text-align:right}
body .minicart-wrapper .block-minicart .df-cart-summary .action.checkout,
body .minicart-wrapper .block-minicart .block-content > .actions .action.checkout {width:100%;min-height:49px;border:0;border-radius:0;background:#f26522;color:#fff;font:700 18px/22px Montserrat,sans-serif;box-sizing:border-box;white-space:normal}
body .minicart-wrapper .block-minicart .action.checkout:hover {background:#df581b}
/* Product cards: stable dimensions in the logged-in state, including nested price widgets. */
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-info:has(.price):not(:has(.b2b-price-message)) {
 position:relative;display:flex;flex-direction:column;box-sizing:border-box;min-height:448px;margin:0;padding:0;border:0;background:#fff;transform:none;
}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-info:has(.price):not(:has(.b2b-price-message)) .product-item-details {
 position:relative;display:flex;flex-direction:column;box-sizing:border-box;min-height:208px;padding:8px 16px 16px;text-align:left;
}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-name {margin:0 0 8px;min-height:40px}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-photo {display:block;line-height:0}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-image-container {display:block}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-link {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font:600 16px/20px Montserrat,sans-serif;color:#393939;text-align:left}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .price-box {display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0 0 4px;text-align:left}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .price-box .old-price {order:-1;display:block;margin:0}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .price-box .special-price {margin:0}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .price-box .price {font:600 24px/29px Montserrat,sans-serif;color:#141414!important}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .price-box .old-price .price {font:400 12px/15px Montserrat,sans-serif;color:#929292!important;text-decoration:line-through}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .price-box .price-label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment {display:block;width:100%;float:none;margin:0;font:400 12px/15px Montserrat,sans-serif;text-align:left}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment .best-installment,
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment .best-installment strong {color:#5b5d5d!important;font:700 12px/15px Montserrat,sans-serif}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment .discounts,
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment .discounts strong {color:#929292!important;font:400 12px/15px Montserrat,sans-serif}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-info:has(.price):not(:has(.b2b-price-message)) .product-item-inner {
 display:block;position:static;width:100%;height:auto;clip:auto;overflow:visible;margin:8px 0 0;padding:0;border:0;background:none;box-shadow:none;opacity:0;pointer-events:none;transition:opacity 300ms ease;
}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-info:has(.price):not(:has(.b2b-price-message)):is(:hover,:focus-within) .product-item-inner {opacity:1;pointer-events:auto}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-actions {display:block;margin:0}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .actions-primary {display:block;width:100%}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .action.tocart {width:100%;min-height:46px;margin:0;padding:8px 4px;border:0;border-radius:0;background:#f26522;color:#fff;font:700 18px/22px Montserrat,sans-serif;text-transform:uppercase;box-sizing:border-box}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .action.tocart:hover {background:#df581b}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .actions-secondary {position:absolute;right:12px;top:-210px;z-index:4;display:block;width:auto;padding:0}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .actions-secondary .towishlist {display:block;width:22px;height:20px;padding:0;margin:0;background:transparent url('../images/df-pdp/favorite.svg') center/22px 20px no-repeat}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .actions-secondary .towishlist::before {content:none}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .action.tocompare {display:none}
/* PDP native buy form. */
body.catalog-product-view #maincontent .product-info-main .product-info-price {margin-bottom:16px}
body.catalog-product-view #maincontent .product-info-main .price-box {display:flex;flex-direction:column;gap:4px;margin:0 0 4px}
body.catalog-product-view #maincontent .product-info-main .price-box .old-price {order:-1;margin:0}
body.catalog-product-view #maincontent .product-info-main .price-box .special-price {margin:0}
body.catalog-product-view #maincontent .product-info-main .price-box .price-label {position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
body.catalog-product-view #maincontent .product-info-main .backendorf-installment {width:100%;margin:0;text-align:left;float:none}
body.catalog-product-view #maincontent .product-info-main .backendorf-installment :is(.best-installment,.best-installment strong,.discounts,.discounts strong) {color:#929292!important;font:600 14px/18px Montserrat,sans-serif}
body.catalog-product-view #maincontent .product-info-main .backendorf-installment .discounts ul {padding:0;margin:4px 0 0;list-style:none}
body.catalog-product-view #maincontent .product-info-main .wrap-collabsible {margin-top:8px}
body.catalog-product-view #maincontent .product-info-main .lbl-toggle {padding:0;font:400 12px/18px Montserrat,sans-serif;color:#929292}
body.catalog-product-view #maincontent .product-info-main .product-add-form form {margin:0}
body.catalog-product-view #maincontent .product-info-main .product-info-stock-sku:has(.stock.available) {display:none}
body.catalog-product-view #maincontent .product-info-main .box-tocart .fieldset {display:flex;align-items:flex-start;gap:16px;margin:0;padding:0}
body.catalog-product-view #maincontent .product-info-main .box-tocart .field.qty {width:81px;flex:0 0 81px;margin:0;padding:0}
body.catalog-product-view #maincontent .product-info-main .box-tocart .actions {display:block;flex:1 1 0;min-width:0;padding:0;margin:0}
body.catalog-product-view #maincontent .product-info-main .box-tocart .action.tocart {display:flex;width:100%;height:52px;min-height:52px;align-items:center;justify-content:center;margin:0;border:0;background:#f26522;font:700 20px/25px Montserrat,sans-serif}
body.catalog-product-view #maincontent .product-info-main #custom-qty {width:81px}
body.catalog-product-view #maincontent #custom-qty .df-pdp-quantity {display:grid;grid-template-columns:41px 29px;grid-template-rows:19px 19px;gap:4px 0;width:81px;min-height:51px;padding:4px 5px;box-sizing:border-box;box-shadow:0 3px 6px #0000001a;background:white}
body.catalog-product-view #maincontent #custom-qty input.qty {grid-column:1;grid-row:1/3;width:41px;height:43px;margin:0;padding:0;border:0;border-radius:0;background:white;font:600 18px/23px Montserrat,sans-serif;color:#202020;text-align:center;box-shadow:none;appearance:textfield}
body.catalog-product-view #maincontent #custom-qty input.qty::-webkit-inner-spin-button {appearance:none}
body.catalog-product-view #maincontent #custom-qty .input-group__button {width:29px;height:19px;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:#e4e4e4;color:#202020;box-shadow:none;font:400 12px/19px Montserrat,sans-serif;grid-column:2}
body.catalog-product-view #maincontent #custom-qty .input-group__button--increase {grid-row:1}
body.catalog-product-view #maincontent #custom-qty .input-group__button--decrease {grid-row:2}
body.catalog-product-view #maincontent #custom-qty .mage-error {grid-column:1/-1;font-size:11px}
body.catalog-product-view #maincontent .product-info-main .cal_title h2 {margin:0 0 8px;font:600 14px/19px Montserrat,sans-serif;color:#8e8e8e;text-transform:none}
body.catalog-product-view #maincontent .product-info-main > .block:has(.shipping-calculation) {padding:0;margin:0;border:0}
body.catalog-product-view #maincontent .product-info-main .shipping-calculation form {display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:8px;margin:0}
body.catalog-product-view #maincontent .product-info-main .shipping-calculation .fieldset {margin:0;padding:0;min-width:0;width:100%;max-width:none;float:none}
body.catalog-product-view #maincontent .product-info-main .shipping-calculation :is(.control,.input-text) {width:100%;max-width:none;margin:0}
body.catalog-product-view #maincontent .product-info-main .shipping-calculation .field {margin:0}
body.catalog-product-view #maincontent .product-info-main .shipping-calculation label[for^="zip-"] {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
body.catalog-product-view #maincontent .product-info-main .shipping-calculation .actions-toolbar {margin:0;padding:0}
body.catalog-product-view #maincontent .product-info-main .shipping-calculation .actions-primary {display:block;float:none;width:100%;margin:0;padding:0}
body.catalog-product-view #maincontent .product-info-main .shipping-calculation .calculate {width:92px;height:45px;padding:8px 4px;margin:0;border:0;border-radius:0;box-shadow:0 3px 6px #0000001a;background:#f2f4f5;color:#8e8e8e;font:600 14px/18px Montserrat,sans-serif;text-transform:uppercase}
body.catalog-product-view #maincontent .product-info-main .shipping-calculation-result-container {grid-column:1/-1;overflow:auto}
body.catalog-product-view #maincontent .df-pdp-share {display:flex;align-items:center;justify-content:space-between;margin:0 0 16px;font:400 12px/17px Montserrat,sans-serif;color:#8e8e8e}
body.catalog-product-view #maincontent .df-pdp-share-links {display:flex;align-items:center;gap:10px}
body.catalog-product-view #maincontent .df-pdp-share a,body.catalog-product-view #maincontent .df-pdp-share img {display:block;width:14px;height:14px}
body.catalog-product-view #maincontent .df-postcode-help {display:inline-flex;align-items:center;gap:4px;margin-top:8px;color:#8e8e8e;font:400 12px/16px Montserrat,sans-serif}
body.catalog-product-view #maincontent .df-postcode-help img {width:11px;height:11px}
@media(hover:none),(pointer:coarse){body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-info:has(.price):not(:has(.b2b-price-message)) .product-item-inner{opacity:1;pointer-events:auto}}
@media(max-width:767px){
 body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-link {font-size:14px}
 body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .price-box .price {font-size:21px}
 body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .action.tocart {font-size:14px}
 body .minicart-wrapper .block-minicart .minicart-items .product-image-photo {max-width:85px}
 body .minicart-wrapper .block-minicart .df-cart-summary .action.checkout {font-size:16px}
}
@media(prefers-reduced-motion:reduce){body #maincontent .product-item-inner{transition:none!important}}
/* SearchSuite remains responsible for suggestions, links and permitted prices. */
body .page-header .block-search {overflow:visible}
body .page-header #search_mini_form {position:relative}
body .page-header #searchsuite-autocomplete {position:absolute;top:calc(100% + 4px);left:0;right:0;width:100%;min-width:0;max-width:calc(100vw - 32px);max-height:min(520px,70dvh);overflow:auto;box-sizing:border-box;margin:0;padding:0;border:1px solid #e3e6ea;background:white;box-shadow:0 5px 18px #0000001a;z-index:200;font:400 12px/17px Montserrat,sans-serif;color:#393939}
body .page-header #searchsuite-autocomplete .title {display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:10px 12px;background:#f5f5f5;color:#393939;font:600 12px/17px Montserrat,sans-serif}
body .page-header #searchsuite-autocomplete .see-all {float:none;flex:none;color:#666;font:400 12px/17px Montserrat,sans-serif;text-decoration:underline}
body .page-header #searchsuite-autocomplete ul {margin:0;padding:0;list-style:none}
body .page-header #searchsuite-autocomplete #product > li {display:flex;align-items:flex-start;gap:12px;padding:12px;margin:0;border-bottom:1px solid #eee;box-sizing:border-box;min-height:96px;overflow:visible}
body .page-header #searchsuite-autocomplete #product > li:last-child {border:0}
body .page-header #searchsuite-autocomplete #product > li:hover,body .page-header #searchsuite-autocomplete #product > li:focus-within {background:#fafafa}
body .page-header #searchsuite-autocomplete .qs-option-image {flex:0 0 72px;width:72px;margin:0;float:none}
body .page-header #searchsuite-autocomplete .qs-option-image img {display:block;width:72px;height:72px;object-fit:contain}
body .page-header #searchsuite-autocomplete .qs-option-info {flex:1;min-width:0;width:auto;margin:0;padding:0;float:none;text-align:left}
body .page-header #searchsuite-autocomplete .qs-option-title {margin:0 0 8px;white-space:normal}
body .page-header #searchsuite-autocomplete .qs-option-title a {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:#393939;font:600 14px/19px Montserrat,sans-serif;text-decoration:none;overflow-wrap:anywhere}
body .page-header #searchsuite-autocomplete :is(.qs-option-reviews,.qs-option-sku,.qs-option-description,.qs-option-shortdescription) {display:none!important}
body .page-header #searchsuite-autocomplete .price-box {display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:0}
body .page-header #searchsuite-autocomplete .price {color:#141414!important;font:600 16px/20px Montserrat,sans-serif}
body .page-header #searchsuite-autocomplete .old-price {order:-1}
body .page-header #searchsuite-autocomplete .old-price .price {color:#929292!important;font:400 11px/15px Montserrat,sans-serif}
body .page-header #searchsuite-autocomplete #suggest li {padding:8px 12px;margin:0}
body .page-header #searchsuite-autocomplete #suggest a {color:#393939;white-space:normal}
body .page-header #searchsuite-autocomplete .no-result {padding:16px}
/* Stack native wishlist actions above the product image without clipping the slider. */
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-info {isolation:isolate}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-photo {position:relative;z-index:0}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-details {position:relative;z-index:2;overflow:visible}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-inner {overflow:visible}
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .actions-secondary .towishlist {position:relative;z-index:1}


body .page-header .customer-conta img.df-account-chevron { width: 7px; height: 4px; margin-left: 6px; flex: none; }

body .page-header .customer-conta .df-account-copy { flex: none; }


@media (max-width:767px) {
 /* O Figma traz so hamburguer, logo e carrinho. Conta e Central de Atendimento saem:
    o menu hamburguer ja lista Conta, Entrar e Criar Conta. */
 body:not(.checkout-index-index) .page-header .customer-conta,
 body:not(.checkout-index-index) .page-header .df-support { display:none; }

 /* Linha de cima: 70px, com os tres itens posicionados. */
 body:not(.checkout-index-index) .page-header .header.content {
   display:block; position:relative; padding:70px 0 0; }
 body:not(.checkout-index-index) .page-header .action.nav-toggle {
   position:absolute; left:16px; top:26px; width:24px; height:18px; margin:0; padding:0; }
 body:not(.checkout-index-index) .page-header .logo {
   position:absolute; left:50%; transform:translateX(-50%); top:13px; width:129px; height:44px; margin:0; /* centralizado: em 428 da os 141 do Figma e nao quebra em 360/390/414 */ }
 body:not(.checkout-index-index) .page-header .logo img {
   width:129px; height:44px; object-fit:contain; }
 body:not(.checkout-index-index) .page-header .minicart-wrapper {
   position:absolute; right:16px; left:auto; top:17px; width:40px; height:36px; margin:0; /* Figma x=372 em 428 = 16px da borda direita */ }

 /* Faixa #333 de largura total em y=70, altura 48, com o input de 396x32 dentro. */
 body:not(.checkout-index-index) .page-header .block-search {
   position:relative; float:none; width:100%; margin:0; padding:8px 16px;
   box-sizing:border-box; background:#333; }
 body:not(.checkout-index-index) .page-header .block-search .block-content,
 body:not(.checkout-index-index) .page-header .block-search .form.minisearch,
 body:not(.checkout-index-index) .page-header .block-search .field.search { margin:0; padding:0; }
 body:not(.checkout-index-index) .page-header .block-search input#search {
   box-sizing:border-box; height:32px; margin:0; padding:0 12px 0 54px; border:0;
   background:#efefef; border-radius:16px; box-shadow:none;
   color:#333; font:400 13px/32px Montserrat,sans-serif; }
 /* Lupa passa para a esquerda, 22x22 em x=32. Continua sendo o botao de enviar. */
 body:not(.checkout-index-index) .page-header .block-search .actions {
   display:block; position:absolute; left:16px; top:50%; transform:translateY(-50%);
   width:22px; height:22px; margin:0; padding:0; z-index:2; }
 body:not(.checkout-index-index) .page-header .block-search button.action.search {
   position:static; display:block; width:22px; height:22px; margin:0; padding:0;
   background:none; border:0; box-shadow:none; opacity:1; }
 body:not(.checkout-index-index) .page-header .block-search button.action.search::before {
   display:block; width:22px; height:22px; line-height:22px; font-size:18px; color:#333; }
}


@media (max-width:767px) {

 /* --- Dots do banner. Figma 6164:8515 Frame 118: 3 circulos de 7px, passo 14,
        centralizados, DENTRO do banner a 14px da base. Ativo #f26522, demais #fff. --- */
 body .mp-banner-slider .owl-carousel { position:relative; }
 /* O custom.css traz ".banner-principal-* .owl-theme .owl-nav.disabled + .owl-dots
    {position:initial}", especificidade (0,4,0). O seletor com o irmao adjacente abaixo
    chega a (0,4,1) e vence, sem !important. */
 body .mp-banner-slider .owl-theme .owl-nav.disabled + .owl-dots,
 body .mp-banner-slider .owl-theme .owl-nav + .owl-dots,
 body .mp-banner-slider .owl-dots {
   /* o style.css do Mageplaza fixa top:62%; com top e bottom juntos o top vence */
   position:absolute; left:0; right:0; top:auto; bottom:14px; z-index:3;
   display:flex; justify-content:center; align-items:center; gap:7px; height:7px; margin:0; padding:0; }
 body .mp-banner-slider .owl-dots .owl-dot,
 body .mp-banner-slider .owl-dots button.owl-dot {
   width:7px; height:7px; min-width:0; min-height:0; margin:0; padding:0; border:0;
   border-radius:50%; background:#fff; opacity:1; box-shadow:none; }
 body .mp-banner-slider .owl-dots .owl-dot span { display:none; }
 body .mp-banner-slider .owl-dots .owl-dot.active,
 body .mp-banner-slider .owl-dots button.owl-dot.active { background:#f26522; }

 /* --- Barra de beneficios. Figma Frame 301: 428x37, dois itens visiveis em
        x=11 e x=234 (gap 32). Os demais ficam fora do quadro: e carrossel. --- */
 body #df-beneficios { padding:40px 0 0; }
 body #df-beneficios .df-benefits-list {
   display:flex; grid-template-columns:none; gap:32px; height:37px; width:100%; max-width:none; margin:0;
   padding:0 11px; overflow-x:auto; overscroll-behavior-x:contain;
   /* sem o scroll-padding o snap encosta o 1o item em x=0 e anula o recuo de 11px */
   scroll-snap-type:x mandatory; scroll-padding:0 11px; -webkit-overflow-scrolling:touch;
   scrollbar-width:none; -ms-overflow-style:none; }
 body #df-beneficios .df-benefits-list::-webkit-scrollbar { display:none; }
 body #df-beneficios .df-benefit { flex:0 0 auto; scroll-snap-align:start; margin:0; }

 /* --- Menu lateral. Figma 6149:16204 Menu_Mobile (350x740). --- */
 body .nav-sections { width:350px; left:-350px; height:100dvh; }
 body .nav-open .page-wrapper { left:350px; }
 /* As abas "Menu" / "Conta" do Luma nao existem no Figma: o topo vira a barra laranja. */
 body .nav-sections .nav-sections-item-title { display:none; }
 body .nav-sections .nav-sections-item-content { margin:0; padding:0; float:none; }
 /* A barra de categorias do desktop e o rotulo "Categorias" tambem renderizam dentro
    do drawer; o Figma mostra so a lista. */
 body .nav-sections .df-category-nav { display:none; }
 body .nav-sections .navigation::before { content:none; }
 body .nav-sections .navigation { background:#fff; padding:0; }
 body .nav-sections .navigation .level0 { border:0; }
 body .nav-sections .navigation .level0 > .level-top {
   box-sizing:border-box; padding:13px 40px 13px 20px; border-bottom:1px solid #e5e5e5;
   background:#fff; color:#1c1c1c; font:400 15px/18px Montserrat,sans-serif; text-transform:none; }
 body .nav-sections .navigation .level0.parent > .level-top::after {
   content:''; position:absolute; right:20px; top:50%; width:10px; height:6px; margin-top:-3px;
   background:url('../images/df-ui/down.svg') center/10px 6px no-repeat; border:0; }
 body .nav-sections .navigation .level0 > .level-top > .ui-menu-icon { display:none; }

 /* Scrollbar do menu: trilho #ccc, polegar #f26522, 6px. */
 body .nav-sections { scrollbar-width:thin; scrollbar-color:#f26522 #ccc; }
 body .nav-sections::-webkit-scrollbar { width:6px; }
 body .nav-sections::-webkit-scrollbar-track { background:#ccc; border-radius:3px; }
 body .nav-sections::-webkit-scrollbar-thumb { background:#f26522; border-radius:3px; }

 /* Barras laranja injetadas pelo df-global.js */
 body .nav-sections .df-menu-top {
   display:flex; align-items:center; gap:15px; box-sizing:border-box;
   height:69px; padding:0 20px; background:#f26522; color:#fff; }
 body .nav-sections .df-menu-top .df-menu-user { flex:0 0 38px; width:38px; height:38px;
   font-size:34px; line-height:38px; text-align:center; }
 body .nav-sections .df-menu-top .df-menu-copy { display:flex; flex-direction:column; flex:1 1 auto;
   color:#fff; font:400 14px/17px Montserrat,sans-serif; text-decoration:none; }
 body .nav-sections .df-menu-top .df-menu-copy strong { font-weight:700; }
 body .nav-sections .df-menu-top .df-menu-close {
   flex:0 0 24px; width:24px; height:24px; padding:0; border:0; background:none;
   color:#fff; font-size:0; cursor:pointer; }
 body .nav-sections .df-menu-top .df-menu-close::before {
   content:'\00d7'; display:block; width:24px; height:24px; line-height:24px;
   font-size:26px; font-weight:300; text-align:center; }
 body .nav-sections .df-menu-foot {
   display:flex; align-items:center; justify-content:center; gap:14px; box-sizing:border-box;
   height:88px; margin-top:auto; background:#f26522; color:#fff;
   font:400 15px/18px Montserrat,sans-serif; text-decoration:none; }
 body .nav-sections .df-menu-foot strong { font-weight:700; }
 body .nav-sections .df-menu-foot img { width:24px; height:24px; }
 /* O drawer passa a ser coluna para o rodape encostar embaixo. */
 body .nav-sections .nav-sections-items { display:flex; flex-direction:column; min-height:100%; height:100%; }
 body .nav-sections .nav-sections-item-content { flex:1 1 auto; }
}


@media (max-width:767px) {
 body.cms-index-index #maincontent .df-vitrine-title {
   box-sizing:border-box; display:block; width:100%; height:45px; margin:0 0 16px;
   padding:10px 16px; background:#f26522; color:#fff;
   font:700 20px/24px Montserrat,sans-serif; text-align:left; }
}


@media (max-width:767px) {
 body .page-wrapper .page-bottom .block.newsletter,
 body .page-wrapper .block.newsletter { box-sizing:border-box; background:#333; padding:24px 20px; }
 body .block.newsletter .newsletterColunaEsquerda,
 body .block.newsletter .newsletterColunaDireita { width:100%; margin:0; padding:0; float:none; }
 body .block.newsletter .blocoTexto,
 body .block.newsletter .blocoTexto h4 {
   width:100%; margin:0 0 16px; padding:0; color:#fff; text-align:center;
   font:700 14px/20px Montserrat,sans-serif; }
 body .block.newsletter .content,
 body .block.newsletter form.form { width:100%; margin:0; padding:0; }
 body .block.newsletter .field,
 body .block.newsletter .fields { margin:0; }
 body .page-wrapper .block.newsletter input[type="text"],
 body .page-wrapper .block.newsletter input[type="email"] {
   box-sizing:border-box; height:38px; margin:0; padding:0 25px; border:0; border-radius:0;
   background:#fff; box-shadow:none; color:#333; font:400 13px/38px Montserrat,sans-serif; }
 body .block.newsletter input::placeholder { color:#b5b5b5; }
 /* Figma: botao claro com texto escuro, 108x38 - nao o verde atual. */
 body .page-wrapper .page-bottom .block.newsletter .action.primary,
 body .page-wrapper .block.newsletter .action.primary {
   box-sizing:border-box; width:108px; min-width:108px; height:38px; margin:12px auto 0;
   padding:0; border:0; border-radius:0; background:#f0f0f0; box-shadow:none;
   color:#333; font:400 14px/38px Montserrat,sans-serif; display:block; }
 body .page-wrapper .block.newsletter .action.primary:hover { background:#e4e4e4; color:#333; }
}


@media (max-width:767px) {
 /* O glifo do hamburguer e luma-icons 28px com line-height 40 dentro de uma caixa de
    18px, e o <a> do carrinho tem 28px encostado no topo de uma caixa de 36. As caixas
    ja estavam alinhadas (centro 35); o que desalinhava era o conteudo. */
 body:not(.checkout-index-index) .page-header .action.nav-toggle::before {
   display:block; width:24px; height:18px; font-size:24px; line-height:18px; text-align:center; }
 body:not(.checkout-index-index) .page-header .minicart-wrapper .action.showcart {
   display:flex; align-items:center; justify-content:flex-end; width:40px; height:36px;
   margin:0; padding:0; line-height:1; }
 body:not(.checkout-index-index) .page-header .minicart-wrapper .action.showcart::before {
   display:block; line-height:1; }

 /* Setas da vitrine: o Slick entrega quadrados de 60x60 em branco semitransparente por
    cima dos cards. Figma: 41x40 nas bordas, centradas na altura da imagem. */
 body.cms-index-index #maincontent .carrousel-destaques-home .slick-prev,
 body.cms-index-index #maincontent .carrousel-destaques-home .slick-next {
   width:41px; height:40px; margin:0; padding:0; border:0; border-radius:0; z-index:3;
   background:#fff url('../images/df-home/arrow.svg') center/16px 17px no-repeat;
   box-shadow:0 2px 6px #00000026; opacity:1; }
 body.cms-index-index #maincontent .carrousel-destaques-home .slick-prev { left:0; }
 body.cms-index-index #maincontent .carrousel-destaques-home .slick-next { right:0; transform:translateY(-50%) rotate(180deg); }
 body.cms-index-index #maincontent .carrousel-destaques-home .slick-prev::before,
 body.cms-index-index #maincontent .carrousel-destaques-home .slick-next::before { content:none; }
 body.cms-index-index #maincontent .carrousel-destaques-home .slick-arrow.slick-disabled { display:none; }
}


@media (max-width:767px) {
 body .linha-redes-sociais .titulo-redes-sociais,
 body .linha-redes-sociais .titulo-redes-sociais .midle {
   color:#2d2d2d; font:700 16px/21px Montserrat,sans-serif; }
 /* separador entre o texto e os icones, na largura do bloco */
 body .linha-redes-sociais .caixa-redes-sociais-titulo {
   border-bottom:1px solid #f1f1f1; padding-bottom:16px; }
 body .linha-redes-sociais .caixa-redes-sociais {
   display:flex; align-items:center; justify-content:center; gap:20px;
   width:auto; margin:16px auto 0; padding:0; }
 body .linha-redes-sociais .redesocial {
   display:flex; align-items:center; justify-content:center; box-sizing:border-box;
   width:40px; height:40px; margin:0; padding:0;
   border:1px solid #8e8e8e; border-radius:4px; background:#fff; }
 body .linha-redes-sociais .redesocial a {
   display:flex; align-items:center; justify-content:center; width:100%; height:100%;
   margin:0; padding:0; }
}



@media (max-width:767px) {
 body .rodape-redes-sociais .linha-redes-sociais .redes-sociais-rodape {
   display:block; width:calc(100% - 60px); max-width:344px; margin:0 auto;
 }
 body .rodape-redes-sociais .linha-redes-sociais .caixa-redes-sociais-titulo {
   width:100%; margin:16px 0 0; padding:0;
 }
 body .rodape-redes-sociais .linha-redes-sociais .titulo-redes-sociais {
   width:100%; margin:0; text-align:center;
 }
 body .rodape-redes-sociais .linha-redes-sociais .titulo-redes-sociais .midle {
   text-align:center;
 }
 body .page-wrapper .block.newsletter .newsletterColunaEsquerda .blocoTexto {
   width:100%; max-width:none; margin:0 0 16px; text-align:center;
 }
 body .page-wrapper .block.newsletter .newsletterColunaEsquerda .blocoTexto h4 {
   width:100%; margin:0 0 16px; text-align:center;
 }
}

/* A animacao inicia a cada abertura do dropdown nativo, inclusive apos display:none.
   O Magento continua responsavel por abrir, fechar e controlar o foco. */
@keyframes df-minicart-enter {
 from { transform:translateX(100%); }
 to { transform:translateX(0); }
}
@keyframes df-minicart-backdrop-enter {
 from { opacity:0; }
 to { opacity:1; }
}
@media (prefers-reduced-motion:no-preference) {
 body:not(.checkout-index-index) .minicart-wrapper.active .mage-dropdown-dialog {
   animation:df-minicart-enter 300ms cubic-bezier(.22,.61,.36,1) both;
 }
 body.df-cart-open .df-cart-backdrop:not([hidden]) {
   animation:df-minicart-backdrop-enter 220ms ease-out both;
 }
}

/* Normaliza o formulario em todas as larguras mobile, sem limitar mensagens de erro. */
@media (max-width:767px) {
 body .page-wrapper .block.newsletter .footer.content {
   width:100%; max-width:none; margin:0; padding:0;
 }
 body .page-wrapper .block.newsletter .newsletterColunaEsquerda .blocoTexto {
   max-width:330px; margin-left:auto; margin-right:auto;
 }
 body .page-wrapper .block.newsletter .newsletterColunaDireita form.form.subscribe {
   display:flex; flex-direction:column; box-sizing:border-box;
   width:100%; max-width:none; padding:12px; margin:0; gap:10px;
 }
 body .page-wrapper .block.newsletter form.form.subscribe > .field {
   box-sizing:border-box; width:100%; max-width:none; margin:0; padding:0; float:none;
 }
 body .page-wrapper .block.newsletter form.form.subscribe .control,
 body .page-wrapper .block.newsletter form.form.subscribe input {
   box-sizing:border-box; width:100%; max-width:none;
 }
 body .page-wrapper .block.newsletter form.form.subscribe > .actions {
   display:block; width:100%; margin:0; padding:0;
 }
 body .page-wrapper .block.newsletter form.form.subscribe .action.primary {
   margin:6px auto 0;
 }
}


.df-social-mobile-intro, .df-social-mobile-icon { display:none; }
@media (max-width:767px) {
 body .rodape-redes-sociais { display:block; padding:32px 20px; border:0; box-sizing:border-box; }
 body .rodape-redes-sociais .footer.content,
 body .rodape-redes-sociais .linha-redes-sociais { width:100%; margin:0; padding:0; border:0; }
 body .rodape-redes-sociais .linha-redes-sociais .redes-sociais-rodape { width:100%; max-width:344px; }
 body .rodape-redes-sociais .df-social-mobile-intro {
   display:flex; align-items:center; justify-content:center; gap:8px; width:100%;
   padding:0 0 16px; border-bottom:1px solid #f1f1f1; box-sizing:border-box;
 }
 body .df-social-mobile-intro > img { width:45px; height:39px; flex:none; }
 body .df-social-mobile-intro > div { min-width:0; display:flex; flex-direction:column; gap:6px; text-align:center; color:#202020; }
 body .df-social-mobile-intro strong { font:700 16px/1.3 Montserrat,sans-serif; }
 body .df-social-mobile-intro span { font:400 12px/1.4 Montserrat,sans-serif; }
 body .rodape-redes-sociais .df-social-mobile-intro ~ .caixa-redes-sociais-titulo { display:none; }
 body .rodape-redes-sociais .linha-redes-sociais .caixa-redes-sociais:not(.caixa-redes-sociais-titulo) { margin:16px auto 0; }
 body .rodape-redes-sociais .redesocial:has(.df-social-mobile-icon) { border:0; }
 body .rodape-redes-sociais .df-social-mobile-icon { display:block; width:40px; height:40px; max-width:none; }
 body .rodape-redes-sociais a:has(.df-social-mobile-icon) > i { display:none; }
 body .rodape-redes-sociais .redesocial .bi-youtube { font-size:20px; line-height:1; color:#000; }
 body .page-wrapper .block.newsletter { display:block; width:100%; padding:24px 20px; min-height:125px; box-sizing:border-box; }
 body .page-wrapper .block.newsletter .footer.content { display:flex; flex-direction:column; gap:16px; border:0; }
 body .page-wrapper .block.newsletter .newsletterColunaEsquerda,
 body .page-wrapper .block.newsletter .newsletterColunaDireita { display:block; width:100%; margin:0; padding:0; }
 body .page-wrapper .block.newsletter .newsletterColunaEsquerda .blocoTexto,
 body .page-wrapper .block.newsletter .newsletterColunaEsquerda .blocoTexto h4 {
   display:block; width:100%; max-width:none; height:auto; margin:0; padding:0;
   font:700 14px/1.4 Montserrat,sans-serif; text-align:center;
 }
 body .page-wrapper .block.newsletter .newsletterColunaDireita form.form.subscribe {
   display:flex; flex-direction:row; align-items:flex-start; gap:12px; width:100%; padding:0; margin:0;
 }
 body .page-wrapper .block.newsletter form.form.subscribe > .field.newsletter { flex:1 1 0; min-width:0; width:auto; }
 body .page-wrapper .block.newsletter form.form.subscribe > .actions { flex:0 0 108px; width:108px; }
 body .page-wrapper .block.newsletter form.form.subscribe .action.primary { margin:0; background:#fff; color:#141414; }
 body .page-wrapper .block.newsletter form.form.subscribe input[type="email"] { display:block; padding:0 25px; font-size:12px; }
 body .page-wrapper .block.newsletter form.form.subscribe input::placeholder { color:#b3b3b3; }
 body .page-wrapper .block.newsletter form.form.subscribe .control > label { display:block; margin:0; }
}


body .whatsapp-fixo { display:none !important; }
.df-newsletter-art { display:none; }
@media (min-width:768px) {
 body .rodape-redes-sociais { display:block; padding:24px 20px; border:0; }
 body .rodape-redes-sociais .footer.content,
 body .rodape-redes-sociais .linha-redes-sociais { margin:0 auto; padding:0; border:0; }
 body .rodape-redes-sociais .redes-sociais-rodape { display:block; width:max-content; max-width:100%; margin:0 auto; }
 body .rodape-redes-sociais .df-social-mobile-intro { display:flex; align-items:center; justify-content:center; gap:32px; }
 body .rodape-redes-sociais .df-social-mobile-intro > img { width:45px; height:39px; flex:none; }
 body .rodape-redes-sociais .df-social-mobile-intro > div { display:flex; flex-direction:column; gap:6px; text-align:center; color:#202020; }
 body .rodape-redes-sociais .df-social-mobile-intro strong { font:700 24px/29px Montserrat,sans-serif; }
 body .rodape-redes-sociais .df-social-mobile-intro span { font:400 16px/20px Montserrat,sans-serif; }
 body .rodape-redes-sociais .df-social-mobile-intro ~ .caixa-redes-sociais-titulo { display:none; }
 body .rodape-redes-sociais .caixa-redes-sociais:not(.caixa-redes-sociais-titulo) { display:flex; justify-content:center; align-items:center; gap:20px; margin:16px 0 0; padding:0; width:100%; }
 body .rodape-redes-sociais .redesocial { display:flex; align-items:center; justify-content:center; box-sizing:border-box; width:40px; height:40px; margin:0; padding:0; border:1px solid #8e8e8e; border-radius:4px; }
 body .rodape-redes-sociais .redesocial a { display:flex; align-items:center; justify-content:center; width:100%; height:100%; margin:0; padding:0; }
 body .rodape-redes-sociais .redesocial:has(.df-social-mobile-icon) { border:0; }
 body .rodape-redes-sociais .df-social-mobile-icon { display:block; width:40px; height:40px; max-width:none; }
 body .rodape-redes-sociais a:has(.df-social-mobile-icon) > i { display:none; }
 body .rodape-redes-sociais .redesocial .bi-youtube { font-size:20px; line-height:1; color:#000; }
 body .page-wrapper .block.newsletter { display:block; width:100%; padding:0 20px; background:#333; box-sizing:border-box; }
 body .page-wrapper .block.newsletter > .footer.content { display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; max-width:1110px; min-height:71px; margin:0 auto; padding:0; border:0; }
 body .page-wrapper .block.newsletter .newsletterColunaEsquerda { display:flex; align-items:center; gap:10px; width:auto; min-width:0; margin:0; padding:0; float:none; }
 body .page-wrapper .block.newsletter .newsletterColunaEsquerda .blocoTexto,
 body .page-wrapper .block.newsletter .newsletterColunaEsquerda .blocoTexto h4 { width:auto; margin:0; padding:0; color:#fff; font:400 16px/22px Montserrat,sans-serif; }
 body .page-wrapper .block.newsletter .newsletterColunaDireita { width:499px; max-width:50%; flex:none; margin:0; padding:0; float:none; }
 body .page-wrapper .block.newsletter .newsletterColunaDireita .content { width:100%; margin:0; }
 body .page-wrapper .block.newsletter form.form.subscribe { display:flex; align-items:flex-start; gap:11px; width:100%; padding:0; margin:0; }
 body .page-wrapper .block.newsletter form.form.subscribe > .field.newsletter { flex:1 1 0; min-width:0; width:auto; margin:0; padding:0; }
 body .page-wrapper .block.newsletter form.form.subscribe .control,
 body .page-wrapper .block.newsletter form.form.subscribe .control > label { display:block; width:100%; margin:0; }
 body .page-wrapper .block.newsletter input[type=email] { display:block; width:100%; height:42px; box-sizing:border-box; margin:0; border:0; border-radius:0; padding:0 20px; background:#fff; color:#2f2f2f; font:400 16px/42px Montserrat,sans-serif; }
 body .page-wrapper .block.newsletter form.form.subscribe > .actions { display:block; flex:0 0 128px; width:128px; margin:0; padding:0; }
 body .page-wrapper .block.newsletter .action.primary { display:block; width:128px; min-width:0; height:42px; margin:0; padding:0; border:0; border-radius:0; background:#f26522; color:#fff; font:700 16px/42px Montserrat,sans-serif; }
 body .page-wrapper .block.newsletter .action.primary:hover { background:#d95012; }
 body .df-newsletter-art { display:block; position:relative; width:100px; height:71px; flex:none; }
 body .df-newsletter-art .df-newsletter-envelope { position:absolute; width:74px; height:74px; left:0; top:0; }
 body .df-newsletter-art .df-newsletter-plane { position:absolute; width:74px; height:71px; left:31px; top:0; }
}
@media (min-width:768px) and (max-width:1100px) {
 body .df-newsletter-art { display:none; }
 body .page-wrapper .block.newsletter > .footer.content { padding:16px 0; }
}
@media (max-width:767px) {
 body.cms-index-index #maincontent { padding-bottom:0; }
 body.cms-index-index #maincontent > .columns > .column.main { padding-bottom:0; }
 body.cms-index-index #maincontent [data-pb-style="KIC1SL5"] .widget.block-static-block { margin-bottom:0; }
 body .df-footer { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:36px 24px; padding:36px 20px 24px; }
 body .df-footer-main, body .df-footer-nav, body .df-footer-meta, body .df-footer-details { display:contents; }
 body .df-footer-brand { grid-column:1 / -1; padding:32px 28px; min-height:313px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; }
 body .df-footer-brand > a { width:min(271px,100%); height:auto; margin:0; }
 body .df-footer-brand img { width:100%; height:auto; aspect-ratio:271 / 94; object-fit:contain; }
 body .df-footer-brand p { max-width:284px; color:#666; font:400 14px/1.4 Montserrat,sans-serif; }
 body .df-footer-categories { grid-column:1; grid-row:2; min-width:0; }
 body .df-footer-institutional { grid-column:2; grid-row:2; min-width:0; }
 body .df-footer-contact { grid-column:1; grid-row:3; min-width:0; }
 body .df-footer-business { grid-column:2; grid-row:3; gap:24px; min-width:0; }
 body .df-footer h2 { color:#141414; font:700 16px/1.4 Montserrat,sans-serif; margin:0 0 16px; }
 body .page-footer .df-footer-nav ul > li { font:400 14px/1.4 Montserrat,sans-serif; overflow-wrap:anywhere; }
 body .page-footer .df-footer-nav a { color:#979797 !important; }
 body .df-footer-contact dl { display:flex; flex-direction:column; gap:16px; font:400 14px/1.4 Montserrat,sans-serif; }
 body .df-footer-contact dl > div:has(a[href^="tel:"]) { order:-1; }
 body .df-footer-contact dt { color:#141414; font-weight:700; font-size:12px; margin-bottom:7px; }
 body .df-footer-business > div { display:block; }
 body .df-footer-business dt { color:#141414; font:700 16px/1.4 Montserrat,sans-serif; margin-bottom:4px; }
 body .df-footer-business dd { color:#a2a2a2; font:400 14px/1.4 Montserrat,sans-serif; overflow-wrap:anywhere; }
 body .df-footer-badges { grid-column:1 / -1; display:grid; grid-template-columns:auto auto; justify-content:center; align-items:center; gap:20px 28px; }
 body .df-footer-payment { grid-column:1 / -1; justify-self:center; }
 body .df-footer-payment ul { grid-template-columns:repeat(4,47px); }
 body .df-footer-badges h2 { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; }
 body .df-footer-shipping { grid-column:1; grid-row:2; }
 body .df-footer-security { grid-column:2; grid-row:2; }
 body .df-footer-security > img { margin:0; }
 body .df-footer-credits { grid-column:1 / -1; display:flex; flex-direction:column-reverse; align-items:center; gap:24px; margin:0; padding:0; border:0; text-align:center; }
 body .df-footer-credits > p { width:100%; border-top:1px solid #ddd; padding-top:24px; }
}

/* O tema desktop reexibe a chamada antiga; apenas a chamada nova deve ficar visivel. */
body .rodape-redes-sociais .df-social-mobile-intro ~ .caixa-redes-sociais-titulo { display:none !important; }
@media (min-width:768px) {
 body .page-wrapper .block.newsletter form.form.subscribe > .field.newsletter { max-width:none; }
}


body .page-wrapper .rodape-redes-sociais .linha-redes-sociais .redesocial a {
 border:0 !important; border-radius:0; box-shadow:none; min-height:0;
 height:100%; box-sizing:border-box;
}
/* Remove os fundos legados, que duplicavam a ilustracao nova no desktop. */
body .page-wrapper .block.newsletter .newsletterColunaEsquerda {
 background-image:none !important;
}
@media (min-width:1101px) {
 body .page-wrapper .block.newsletter .df-newsletter-art {
   height:71px; overflow:hidden;
 }
}


@media (min-width:1101px) {
 body .page-wrapper .block.newsletter {
   display:block; height:71px; min-height:71px; overflow:hidden;
 }
 body .page-wrapper .block.newsletter > .footer.content,
 body .page-wrapper .block.newsletter .newsletterColunaEsquerda {
   height:71px; min-height:71px; overflow:hidden;
 }
 body .page-wrapper .block.newsletter .df-newsletter-art {
   flex:0 0 105px; width:105px; height:71px; overflow:hidden;
 }
 body .page-wrapper .block.newsletter .newsletterColunaDireita {
   display:block;
 }
 body .page-wrapper .block.newsletter form.form.subscribe {
   align-items:flex-start !important;
 }
 body .page-wrapper .block.newsletter form.form.subscribe > .actions {
   align-self:flex-start !important; position:static !important;
   margin:0 !important; transform:none !important;
 }
 body .page-wrapper .block.newsletter form.form.subscribe .mage-error:not(input),
 body .page-wrapper .block.newsletter form.form.subscribe #newsletter-error {
   display:block; height:16px !important; min-height:0; margin:3px 0 0 !important; padding:0;
   overflow:hidden; color:#fff; font:400 12px/16px Montserrat,sans-serif;
   white-space:nowrap;
 }
}


@media (min-width:1101px) {
 body .page-wrapper .block.newsletter .df-newsletter-art {
   flex-basis:106px; width:106px;
 }
 body .page-wrapper .block.newsletter .df-newsletter-art .df-newsletter-envelope {
   left:4px; top:6px;
 }
 body .page-wrapper .block.newsletter .df-newsletter-art .df-newsletter-plane {
   left:32px; top:0;
 }
}




/* ---- Minicart: os itens se tocavam, sem folga nenhuma.
   O controle de quantidade de um item encostava no titulo do seguinte. ---- */
body .minicart-items .item.product.product-item {
    box-sizing: border-box !important;
    padding: 0 0 20px !important;
    margin: 0 0 20px !important;
    border-bottom: 1px solid #ececec !important;
}

body .minicart-items .item.product.product-item:last-child {
    margin-bottom: 0 !important;
    border-bottom: 0 !important;
}

body .minicart-items .item.product.product-item .product-item-name {
    display: block !important;
    margin-bottom: 4px !important;
}

body .minicart-items .item.product.product-item .details-qty {
    margin-top: 8px !important;
}


body.cms-index-index .banner-principal-desktop .owl-nav button {
    transition: background-color .15s ease !important;
}

body.cms-index-index .banner-principal-desktop .owl-nav button:hover,
body.cms-index-index .banner-principal-desktop .owl-nav button:focus-visible {
    background-color: #1a1a1a !important;
}



body.cms-index-index .banner-principal-desktop .owl-nav button:hover,
body.cms-index-index .banner-principal-desktop .owl-nav button:focus-visible,
body.cms-index-index .banner-principal-desktop .owl-nav button:active {
    background-color: #1a1a1a !important;
    background-image: url('../images/df-ui/hero-arrow.svg') !important;
    background-position: center center !important;
    background-size: 18px 19px !important;
    background-repeat: no-repeat !important;
    color: inherit !important;
}




/* Alias curto para o contexto dos cards, repetido nas regras abaixo:
   body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) */

/* ---- 1) O botao COMPRAR fica sempre na mesma linha ----
   Quando o produto tem parcelamento, o modulo Backendorf envolve o preco num
   .backendorf-installment de 67px; sem parcelamento sobra so o .price-box de
   29px, e tudo abaixo subia 30px (mobile) / 35px (desktop).
   No Figma o bloco "Nome e valores" e space-between com altura fill: o nome
   fica no topo e o preco encosta embaixo, logo acima do botao. Ancorando o
   bloco de preco, o botao cai sempre no mesmo lugar, com ou sem parcela. */
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-details > :is(.backendorf-installment, .price-box) {
    margin-top: auto !important;
}


body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-details > :is(.backendorf-installment, .price-box) {
    min-height: 54px !important;
}

@media (min-width: 768px) {
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-details > :is(.backendorf-installment, .price-box) {
        min-height: 74px !important;
    }
}

/* O .price-box sozinho traz margin-bottom: 8px e o bloco com parcelamento nao.
   Como os dois sao ancorados embaixo, essa margem subia um deles 8px. */
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-details > .price-box {
    margin-bottom: 0 !important;
}

/* O .price-box interno ao .backendorf-installment nao deve reancorar. */
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment .price-box {
    margin-top: 0 !important;
}

/* ---- 2) Proporcao do card ----
   Figma: card 186x364 (1 : 1,957). No desktop a grade e mais larga, entao
   mantemos a mesma razao em vez de uma altura fixa. */
/* O .discounts do modulo Backendorf acrescenta linhas que o Figma nao tem
   (e e o mesmo bloco que rendia "undefined" na PDP). Sem ele, o parcelamento
   volta a ser uma linha so, como no desenho, e o card encolhe para a proporcao
   certa sem precisar de altura forcada. */
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment .discounts,
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment .wrap-collabsible {
    display: none !important;
}

@media (max-width: 767px) {
    /* Altura minima menor: o conteudo define, e a grade estica as linhas para a
       mesma altura. Nao forcamos aspect-ratio, que faria o botao vazar do card. */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-info {
        min-height: 318px !important;
        height: 100% !important;
    }
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-details {
        min-height: 0 !important;
        flex: 1 1 auto !important;
        padding: 8px 10px 12px !important;
    }
}

@media (min-width: 768px) {
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-info {
        height: 100% !important;
    }
}

/* ---- 3) Imagem: 156x140 dentro de um card de 186 ----
   Ou seja, 83,9% da largura e razao 1,114 : 1 - nao quadrada, como esta hoje. */

body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-photo,
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-image-container {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-image-wrapper {
    display: block !important;
    position: relative !important;
    box-sizing: border-box !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    aspect-ratio: 156 / 140 !important;
    overflow: hidden !important;
}

body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-image-wrapper > :is(picture, img) {
    position: static !important;
    display: block !important;
    box-sizing: border-box !important;
    width: 83.9% !important;
    height: 100% !important;
    max-width: 83.9% !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    aspect-ratio: auto !important;
}

body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-image-wrapper > picture {
    min-height: 100% !important;
}

body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-image-wrapper picture > img {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    object-fit: contain !important;
    aspect-ratio: auto !important;
}

/* ---- 4) Tipografia, conforme o componente do Figma ---- */

/* Nome: Montserrat Regular 14 #393939 (estava 600 16px). */
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-link {
    font: 400 14px/19.6px Montserrat, sans-serif !important;
    color: #393939 !important;
}

/* Valor: Montserrat Bold 21 #202020 (estava 600 24px #141414). */
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .price-box .price {
    font: 700 21px/29px Montserrat, sans-serif !important;
    color: #202020 !important;
}

/* Valor antigo: Regular 12 #929292 riscado - ja correto, mantido explicito. */
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .price-box .old-price .price {
    font: 400 12px/16.8px Montserrat, sans-serif !important;
    color: #929292 !important;
    text-decoration: line-through !important;
}

/* Parcelamento: Regular 12 #666666 (estava Bold 12 #5B5D5D). */
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment,
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment .best-installment,
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment .best-installment strong {
    font: 400 12px/16.8px Montserrat, sans-serif !important;
    color: #666 !important;
}

/* ---- 5) Botao: altura 38 e Bold 16 (estava 46 e Bold 18) ---- */
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .action.tocart,
body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) :is(.df-consult-value, .df-catalog-consult) {
    box-sizing: border-box !important;
    min-height: 38px !important;
    height: 38px !important;
    padding: 8px 12px !important;
    font: 700 16px/22px Montserrat, sans-serif !important;
}


body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .action.tocart {
    overflow: hidden !important;
    text-overflow: clip !important;
}

@media (max-width: 767px) {
    /* Em 167px de largura "ADICIONANDO..." nao cabe em 16px; 14px tambem e mais
       proximo da proporcao do Figma (16px num card de 186). */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .action.tocart {
        padding-right: 6px !important;
        padding-left: 6px !important;
        font-size: 14px !important;
    }

    /* Em 167px de largura o rotulo "CONSULTAR VALOR" nao cabe em 16px. */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) :is(.df-consult-value, .df-catalog-consult) {
        font-size: 12px !important;
    }
}



/* Titulo da categoria: Montserrat Bold 21 #F26522 (estava 24px). */
body:is(.catalog-category-view, .catalogsearch-result-index) #maincontent .page-title,
body:is(.catalog-category-view, .catalogsearch-result-index) #maincontent .page-title span {
    font: 700 21px/27.3px Montserrat, sans-serif !important;
    color: #f26522 !important;
}

/* Breadcrumb: Regular 12 #666666, centralizado. */
body:is(.catalog-category-view, .catalogsearch-result-index) .breadcrumbs,
body:is(.catalog-category-view, .catalogsearch-result-index) .breadcrumbs :is(a, strong, span, li) {
    font: 400 12px/16.8px Montserrat, sans-serif !important;
    color: #666 !important;
}

@media (max-width: 767px) {
    body:is(.catalog-category-view, .catalogsearch-result-index) .breadcrumbs .items {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 4px !important;
    }
}

/* Contador de itens: Regular 14 #666666 (estava #696969). */
body:is(.catalog-category-view, .catalogsearch-result-index) #maincontent .toolbar-amount {
    font: 400 14px/19.6px Montserrat, sans-serif !important;
    color: #666 !important;
}

body .breadcrumbs .items,
body .breadcrumbs .item {
    align-items: center;
}

body .breadcrumbs .items {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body .breadcrumbs .item:not(:last-child)::after {
    position: static;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 8px;
    height: 1em;
    margin-left: 8px;
    line-height: 1;
    vertical-align: middle;
}

body .breadcrumbs .item strong {
    color: #393939;
    font-weight: 600;
}

body #maincontent .product-item-info {
    position: relative;
}

body #maincontent .df-discount-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    box-sizing: border-box;
    padding: 5px 9px;
    background: #f26522;
    color: #fff;
    font: 700 12px/18px Montserrat, sans-serif;
}

body #maincontent .product-item-info:has(.b2b-price-message) .stock.available {
    display: none !important;
}

body.df-price-hidden #maincontent .filter-options-item[hidden],
body.df-price-hidden #maincontent .sorter-options option[hidden] {
    display: none !important;
}

.block.newsletter .df-newsletter-status {
    box-sizing: border-box;
    width: 100%;
    margin: 0 0 12px;
    padding: 10px 14px;
    border: 1px solid #3f8f4f;
    background: #f2fbf4;
    color: #245d30;
    font: 500 13px/18px Montserrat, sans-serif;
}

.df-footer-contact a[href^="mailto:"] {
    white-space: nowrap;
}

.df-footer-credits > div,
.df-footer-platform {
    display: flex;
    align-items: center;
}

.df-footer-credits > div {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 12px 24px;
}

.df-footer-platform {
    gap: 8px;
    color: inherit;
    text-decoration: none;
}

.df-footer-platform img {
    display: block;
    width: 88px;
    height: 24px;
    object-fit: contain;
}

.block-minicart .action[hidden] {
    display: none !important;
}

@media (hover: hover) and (pointer: fine) {
    body #maincontent .product-item-info .actions-secondary .action.towishlist {
        opacity: 0;
        pointer-events: none;
        transition: opacity 180ms ease-out;
    }

    body #maincontent .product-item-info:is(:hover, :focus-within) .actions-secondary .action.towishlist {
        opacity: 1;
        pointer-events: auto;
    }
}

@media (max-width: 767px) {
    html.nav-open,
    body.nav-open {
        overflow: hidden !important;
    }

    body .nav-sections {
        position: fixed !important;
        top: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        z-index: 1000 !important;
        width: min(320px, calc(100vw - 32px)) !important;
        height: 100dvh !important;
        max-height: none !important;
        transform: translateX(-100%);
        overflow: hidden !important;
    }

    html.nav-open body .nav-sections,
    body.nav-open .nav-sections {
        transform: translateX(0);
    }

    body .nav-sections .nav-sections-items {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    body .nav-sections .nav-sections-item-content#store\.menu {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
    }

    body .nav-sections .navigation a,
    body .nav-sections .navigation span,
    body .nav-sections .navigation .level-top {
        font-family: Montserrat, sans-serif !important;
        font-size: 13px !important;
        line-height: 18px !important;
    }

    body #maincontent .df-discount-badge {
        top: 6px;
        left: 6px;
        min-height: 26px;
        padding: 4px 8px;
    }

    .df-footer-contact a[href^="mailto:"] {
        font-size: clamp(11px, 3.35vw, 13px);
    }

    .df-footer-credits > div {
        justify-content: center;
    }
}

/* Ordenacao: 186x33, borda 1px #CCCCCC, raio 2, padding 7/16. */
@media (max-width: 767px) {
    body:is(.catalog-category-view, .catalogsearch-result-index) #maincontent .toolbar-sorter select,
    body:is(.catalog-category-view, .catalogsearch-result-index) #maincontent .sorter-options {
        box-sizing: border-box !important;
        width: 186px !important;
        max-width: 100% !important;
        height: 33px !important;
        padding: 7px 16px !important;
        border: 1px solid #ccc !important;
        border-radius: 2px !important;
        font: 400 12px/16.8px Montserrat, sans-serif !important;
        color: #141414 !important;
    }
}


/* ============================================================
   v3.9 - Imagem do card quadrada no desktop
   A moldura vinha 156/140 (1,114:1). A partir de 768px ela passa a 1:1; a
   imagem dentro continua com os mesmos 83,9% de largura e object-fit contain,
   entao nada e cortado - so a moldura fica quadrada. No mobile nada muda.
   ============================================================ */
@media (min-width: 768px) {
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-image-wrapper {
        aspect-ratio: 1 / 1 !important;
    }
}

@media (min-width: 768px) {

/* Dentro do <picture> a imagem estava com position:absolute e top:28px, vindo
   de uma regra antiga do tema: ela descia 28px e era cortada embaixo pelo
   overflow da moldura (por isso a moldura quadrada ainda exibia uma faixa
   achatada). Voltando ao fluxo, a imagem ocupa a moldura inteira. */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-image-wrapper > picture {
        font-size: 0 !important;
        line-height: 0 !important;
    }


    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-image-wrapper picture > img {
        position: static !important;
        top: auto !important;
        left: auto !important;
    }
}


/* ============================================================
   v4.1 - Card do desktop conforme o componente do Figma
   Referencia: "Card de Produto - Principal" (6020:14454), 255 de largura:
     faixa da tag 28px (tag 63x28, Bold 14 branco sobre #F26522)
     imagem 255x212
     conteudo 208, padding 8px 16px 16px, espaco de 8px entre blocos
     nome     Montserrat SemiBold 16 #393939, duas linhas (40px)
     de       Montserrat Regular 12 #929292 riscado
     por      Montserrat SemiBold 24 #141414
     parcela  Montserrat Bold 12 #5B5D5D
     Pix      icone 12x12 + Montserrat Regular 12 #929292
     botao    223x46 sobre #F26522
   Tudo daqui para cima de 768px: o card do mobile tem desenho proprio.
   ============================================================ */
@media (min-width: 768px) {

    /* ---- imagem: 255x212, com a faixa de 28px da tag reservada acima ----
       Substitui o quadrado da v3.9: no componente a area da imagem e 255x212,
       e e a faixa da tag que completa os 240px do topo do card. */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-photo {
        padding-top: 28px !important;
    }

    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-image-wrapper {
        aspect-ratio: 255 / 212 !important;
    }

    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .df-discount-badge {
        box-sizing: border-box !important;
        top: 0 !important;
        left: 0 !important;
        height: 28px !important;
        min-width: 63px !important;
        padding: 2px 8px !important;
        font: 700 14px/1 Montserrat, sans-serif !important;
        color: #fff !important;
        background: #f26522 !important;
    }

    /* ---- conteudo ---- */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-details {
        padding: 8px 16px 16px !important;
    }

    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) :is(.product-item-name, .product-item-link) {
        font: 600 16px/20px Montserrat, sans-serif !important;
        color: #393939 !important;
    }

    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-name {
        max-height: 40px !important;
        overflow: hidden !important;
    }

    /* O rotulo "Preco Especial" nao existe no componente. */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .price-box .price-label {
        display: none !important;
    }

    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .old-price :is(.price, .price-wrapper) {
        font: 400 12px/15px Montserrat, sans-serif !important;
        color: #929292 !important;
        text-decoration: line-through !important;
    }

    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .special-price :is(.price, .price-wrapper) {
        font: 600 24px/29px Montserrat, sans-serif !important;
        color: #141414 !important;
    }

    /* O bloco de tipografia anterior deste arquivo deixou o parcelamento em
       Regular 12 #666; o componente pede Bold 12 #5B5D5D. Repetimos o mesmo
       desenho de seletor daquelas regras (com .backendorf-installment) para
       ter a mesma especificidade e, vindo depois, prevalecer. */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment .best-installment,
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment .best-installment :is(strong, span) {
        font: 700 12px/15px Montserrat, sans-serif !important;
        color: #5b5d5d !important;
    }

    /* ---- linha do Pix (criada pelo df-global.js) ---- */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .df-card-pix {
        display: flex !important;
        align-items: center !important;
        gap: 4px !important;
        margin-top: 4px !important;
        font: 400 12px/15px Montserrat, sans-serif !important;
        color: #929292 !important;
    }

    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .df-card-pix::before {
        content: "" !important;
        flex: 0 0 12px !important;
        width: 12px !important;
        height: 12px !important;
        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12.0045 12' fill='none'%3E%3Cpath d='M8.07057 8.71267L6.26412 6.90622C6.1981 6.8402 6.12008 6.8282 6.07807 6.8282C6.03606 6.8282 5.95804 6.8402 5.89203 6.90622L4.07957 8.71867C3.87552 8.92273 3.55744 9.25281 2.49518 9.25281L4.72173 11.4734C5.42391 12.1755 6.5642 12.1755 7.26637 11.4734L9.49893 9.24681C8.95279 9.24681 8.49668 9.13878 8.07057 8.71267Z' fill='%23929292'/%3E%3Cpath d='M4.07951 3.28133L5.89197 5.09378C5.93998 5.14179 6.012 5.1718 6.07801 5.1718C6.14403 5.1718 6.21605 5.14179 6.26406 5.09378L8.05851 3.29933C8.48462 2.85522 8.97074 2.75319 9.51687 2.75319L7.28432 0.526633C6.58214 -0.175544 5.44185 -0.175544 4.73968 0.526633L2.51312 2.74719C3.56939 2.74719 3.89347 3.09528 4.07951 3.28133Z' fill='%23929292'/%3E%3Cpath d='M11.4674 4.70966L10.117 3.35332H9.36084C9.03676 3.35332 8.71268 3.48535 8.49062 3.71941L6.69017 5.51986C6.52213 5.68791 6.30007 5.77193 6.07802 5.77193C5.86197 5.77193 5.63391 5.6819 5.46587 5.51986L3.65341 3.70141C3.42536 3.47335 3.11328 3.34131 2.7832 3.34131H1.90098L0.526632 4.72166C-0.175544 5.42384 -0.175544 6.56413 0.526632 7.2663L1.90098 8.64665H2.7892C3.11328 8.64665 3.42536 8.51462 3.65942 8.28656L5.47187 6.4741C5.63991 6.30606 5.86197 6.22204 6.08402 6.22204C6.30608 6.22204 6.52813 6.30606 6.69617 6.4741L8.50263 8.28056C8.73068 8.50861 9.04276 8.64065 9.37284 8.64065H10.129L11.4794 7.28431C12.1815 6.57613 12.1815 5.42384 11.4674 4.70966Z' fill='%23929292'/%3E%3C/svg%3E") !important;
        background-repeat: no-repeat !important;
        background-position: center center !important;
        background-size: 12px 12px !important;
    }

    /* O espaco entre a parcela e o Pix vem do margin-bottom: 20px que o modulo
       poe no .best-installment; no componente sao 4px. */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .backendorf-installment .best-installment {
        margin: 4px 0 0 !important;
    }

    /* ---- botao: 46px de altura, como no componente ---- */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) :is(.action.tocart, .product-item-inner .action.primary) {
        box-sizing: border-box !important;
        height: 46px !important;
        min-height: 46px !important;
        padding: 8px 16px !important;
    }
}

/* No mobile o card tem desenho proprio e nao traz a linha do Pix: o
   df-global.js cria o elemento em qualquer largura, entao ele so aparece
   do desktop para cima. */
@media (max-width: 767px) {
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .df-card-pix {
        display: none !important;
    }
}


/* ============================================================
   v4.3 - Respiro do bloco de redes e botao do card na mesma linha
   ============================================================ */

/* ---- 1) O vao antes de "Siga a DF Atacadista nas redes!" ----
   .rodape-redes-sociais somava margin 48px + padding 24px: 72px de branco em
   cima e outros 72 embaixo, antes mesmo do conteudo, que ja e centralizado
   dentro de 111px. Passa a 16 + 16, ou seja 32px de cada lado. */
body .rodape-redes-sociais {
    margin: 16px 0 !important;
    padding: 16px 0 !important;
}

/* ---- 2) O botao COMPRAR na mesma linha, com ou sem parcelamento ----
   O bloco de precos e ancorado embaixo (margin-top:auto) e tem altura minima
   para que o botao caia sempre no mesmo lugar. Com a linha do Pix da v4.1 o
   bloco cresceu e a altura minima ficou curta: 92px no desktop (era 74) e
   71px no mobile (era 54). Medido: cards com parcelamento davam 92 e 71.  */
@media (max-width: 767px) {
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-details > :is(.backendorf-installment, .price-box) {
        min-height: 71px !important;
    }
}

@media (min-width: 768px) {
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item-details > :is(.backendorf-installment, .price-box) {
        min-height: 92px !important;
    }
}


/* ============================================================
   v4.4 - "Compre tambem" com o mesmo padrao do card da home
   O bloco e um .block.upsell, que nao estava no contexto das regras do card:
   por isso a moldura, a tipografia e o botao saiam diferentes ali. O seletor
   de contexto deste arquivo passou a incluir .block.upsell (85 lugares), entao
   o mesmo desenho vale para a home, a categoria, o "Voce tambem pode gostar"
   e o "Compre tambem".
   ============================================================ */


/* ---- v4.6: o coracao de favoritos so no mobile ----
   No desktop o card nao leva o icone. */
@media (min-width: 768px) {
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item .action.towishlist,
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item .secondary-addto-links {
        display: none !important;
    }
}


/* ============================================================
   v4.8 - Card no mobile: texto do botao e lado da badge
   ============================================================ */
@media (max-width: 767px) {
    /* O botao vinha com line-height 22px num texto de 14px: quando a legenda
       ocupa duas linhas ("CONSULTAR VALOR") sobrava um vao grande entre elas.
       Nada mais do card muda - so o espacamento do texto. */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item :is(.action.tocart, .df-consult-value, .df-catalog-consult, .action.primary) {
        line-height: 1.15 !important;
    }

    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item :is(.action.tocart, .df-consult-value, .df-catalog-consult, .action.primary) > span {
        line-height: 1.15 !important;
    }

    /* A badge estava no canto superior esquerdo da imagem (left: 6px). */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item .df-discount-badge {
        left: auto !important;
        right: 6px !important;
    }
}


/* ============================================================
   v4.12 - Home mobile: setas do banner e transicao do menu lateral
   ============================================================ */
@media (max-width: 767px) {
    /* As setas existem no HTML mas estavam com 0x0. Voltam com o mesmo desenho
       do desktop, sobre as laterais do banner. */
    body.cms-index-index :is(.banner-principal-desktop, .banner-principal-mobile, .owl-carousel) > .owl-nav {
        display: block !important;
        position: static !important;
    }

    body.cms-index-index :is(.banner-principal-desktop, .banner-principal-mobile) .owl-nav button {
        box-sizing: border-box !important;
        position: absolute !important;
        top: 50% !important;
        z-index: 3 !important;
        width: 32px !important;
        height: 32px !important;
        margin: -16px 0 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background-color: #1a1a1a !important;
        background-image: url('../images/df-ui/hero-arrow.svg') !important;
        background-position: center center !important;
        background-size: 14px 15px !important;
        background-repeat: no-repeat !important;
        opacity: .85 !important;
    }

    body.cms-index-index :is(.banner-principal-desktop, .banner-principal-mobile) .owl-nav .owl-prev {
        left: 0 !important;
        right: auto !important;
    }

    body.cms-index-index :is(.banner-principal-desktop, .banner-principal-mobile) .owl-nav .owl-next {
        right: 0 !important;
        left: auto !important;
        transform: rotate(180deg) !important;
    }

    body.cms-index-index :is(.banner-principal-desktop, .banner-principal-mobile) .owl-nav button span {
        font-size: 0 !important;
    }

    /* O menu lateral desliza por transform, mas a transicao declarada era do
       "left" - por isso ele aparecia e sumia de uma vez. */
    body .nav-sections {
        transition: transform .28s ease, visibility .28s ease !important;
        will-change: transform !important;
    }

    /* A badge volta para o canto superior ESQUERDO da imagem. */
    body #maincontent :is(.carrousel-destaques-home,.products-grid,.block.related,.block.upsell) .product-item .df-discount-badge {
        left: 6px !important;
        right: auto !important;
    }
}


/* ---- v4.22: o menu deixa de passar por cima das sugestoes da busca ----
   Medido na home: as sugestoes (.searchsuite-autocomplete) pedem z-index 200,
   mas vivem dentro de .block-search, que e position: relative com z-index 4.
   Isso cria um contexto de empilhamento e prende tudo o que esta dentro no
   nivel 4 - nao adianta o 200 de dentro. A barra do menu (.nav-sections) esta
   em 90, e por isso passava por cima. Subir a caixa da busca acima de 90
   resolve na raiz, sem mexer no z-index das sugestoes. */
body .block-search,
body .header.content .block-search {
    z-index: 100 !important;
}


/* ============================================================
   v4.25 - Montserrat no site inteiro
   Levantei elemento por elemento em cinco paginas (home, categoria, PDP,
   carrinho e login): 364 ja estavam em Montserrat e 40 ficaram em Open Sans -
   o rotulo "Pesquisa", as setas do slick, a mensagem do carrinho, o label da
   newsletter e a descricao da categoria. Em vez de cacar regra por regra em
   arquivos que eu nao mantenho, a familia passa a ser declarada uma vez para
   tudo.
   Os icones nao entram: no tema eles sao desenhados em :before/:after, que tem
   font-family propria e nao e alcancada por uma regra de elemento. As classes
   de icone conhecidas ficam de fora por seguranca. */
body,
body *:not(i):not([class*="icon"]):not([class*="fa-"]):not([class*="glyph"]) {
    font-family: 'Montserrat', 'Open Sans', Arial, Helvetica, sans-serif !important;
}

/* ---- v4.25: o vao entre as vitrines da home (desktop) ----
   Medido: o titulo da vitrine tinha margin-top 48px MAIS 8px de padding, ou
   seja 56px do fim do carrossel ate o texto - e esse o "55px" que aparecia.
   Com 40px de margem + os mesmos 8px de padding, o espaco ate o texto fica em
   48px, que e o previsto no Figma e multiplo de 8. */
@media (min-width: 768px) {
    body.cms-index-index #maincontent .df-vitrine-title {
        margin-top: 40px !important;
    }
}


/* ---- v4.26: o respiro lateral de 39px na home mobile ----
   Medido a 390px, bloco a bloco:
     .column.main, titulos e carrosseis .... 15px de cada lado
     3 imagens de banner .................... 25px (coluna do Page Builder com
                                              margem de 10px)
     1 imagem de banner ..................... 20px (margem de 5px)
   Nenhum em 39. Os 15px sao o respiro da propria pagina; os 24px a mais entram
   aqui dentro, na coluna principal da home, e as margens das colunas do Page
   Builder sao zeradas para as imagens pousarem na mesma linha - 15 + 24 = 39. */
@media (max-width: 767px) {
    body.cms-index-index #maincontent .column.main {
        box-sizing: border-box !important;
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    body.cms-index-index #maincontent .pagebuilder-column {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}


/* ---- v4.27: o espaco embaixo dos banners da home (desktop) ----
   Medido a 1330px: o ultimo banner termina em y 3858 e a caixa dele vai ate
   3908 - 50px de margem no .block-static-block, o widget que embrulha os
   banners.

   So que esse espaco estava sendo contado DUAS vezes: os 50px do bloco mais os
   40px de margem do titulo da vitrine seguinte davam 90px, contra os 48px que
   separam as outras secoes. Zerando a margem do bloco, o espaco passa a vir so
   do titulo - 40px de margem + 8px de padding = os mesmos 48px do resto da
   pagina.

     banner -> titulo da vitrine ..... 90px  ->  48px ate o texto
     banner -> rodape social ......... 82px  ->  32px (o que o rodape ja tem)
*/
@media (min-width: 768px) {
    body.cms-index-index #maincontent .block-static-block {
        margin-bottom: 0 !important;
    }
}


/* ============================================================
   v4.28 - O CONSULTAR VALOR com a mesma cara em todas as vitrines

   O visual do botao (laranja, largura total, centralizado, 46px) esta no
   df-home.css, preso a "body.cms-index-index .carrousel-destaques-home". Fora
   da home so valiam as regras de altura e fonte daqui, entao ele saia como
   texto preto solto, encostado a esquerda - e o "Em estoque" aparecia junto,
   porque quem o esconde e outra regra de la.

   Aqui as mesmas propriedades sao repetidas para as demais vitrines. Os
   favoritos ficam de fora da regra que esconde o .product-item-inner: e nesse
   bloco que estao os botoes de editar e remover da lista.
   ============================================================ */
body:not(.cms-index-index) #maincontent :is(.products-grid, .block.related, .block.upsell, .owl-carousel) .df-consult-value {
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    width: 100% !important;
    margin-top: auto !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #f26522 !important;
    color: #fff !important;
    text-align: center !important;
    text-decoration: none !important;
}

body:not(.cms-index-index) #maincontent :is(.products-grid, .block.related, .block.upsell, .owl-carousel) .df-consult-value:focus-visible {
    outline: 2px solid #393939 !important;
    outline-offset: 3px !important;
}

/* O "Em estoque" e a mensagem de preco somem quando o botao esta no card, como
   ja acontece na home. A lista de desejos fica de fora: o .product-item-inner
   dela guarda os botoes de editar e remover. */
body:not(.cms-index-index) #maincontent :is(.products-grid:not(.wishlist), .block.related, .block.upsell, .owl-carousel) .product-item-info:has(.df-consult-value) :is(.b2b-price-message, .product-item-inner) {
    display: none !important;
}

/* A caixa de preco fica vazia nesses cards e ainda assim ocupava 92px, o que
   abria um vao entre o nome do produto e o botao. Ela so e escondida onde o
   botao existe - ou seja, nunca no card que mostra preco. */
body:not(.cms-index-index) #maincontent :is(.products-grid, .block.related, .block.upsell, .owl-carousel) .product-item-info:has(.df-consult-value) .price-box {
    display: none !important;
}

/* A altura e a fonte nao sao redeclaradas de proposito: elas ja vem da regra
   que este mesmo arquivo aplica as vitrines (38px e 16px), que e o que a home
   de fato renderiza. Repetir os 46px/18px do df-home.css deixaria o botao das
   outras vitrines MAIOR que o da home - foi o que a primeira tentativa fez. */


/* ---- v4.29: o titulo da pagina de categoria ----
   Estava Montserrat 21px/700 no laranja #f26522. O Figma pede 24px, bold e
   preto. A pagina de busca usa a regra antiga e nao foi tocada: o pedido era
   da categoria. */
body.catalog-category-view #maincontent .page-title,
body.catalog-category-view #maincontent .page-title span {
    font-family: 'Montserrat', Arial, sans-serif !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: #000000 !important;
}


/* ---- v4.31: as duas assinaturas do rodape no mesmo tamanho ----
   As caixas ja eram iguais: body .df-footer-credits img forca 75x15 nas duas.
   O problema e que elas nao tem a mesma proporcao de letra dentro da caixa.
   Medi a tinta de cada arquivo, coluna a coluna:

     logo-plataforma.svg  250x51  - as letras ocupam 54,9% da altura da caixa
     nairuz.svg            75x15  - as letras ocupam 91,3%

   Renderizadas as duas em 15px, as letras saem com 8,2px contra 13,7px - 1,67x
   de diferenca. Dai a Mageshop parecer menor.

   Agora cada caixa e dimensionada para que a LETRA de ambas meca ~11px:
     Mageshop  20px de altura -> 20 x 0,549 = 11,0px de letra (98px de largura,
               respeitando a proporcao 250/51 do arquivo)
     Nairuz    12px de altura -> 12 x 0,913 = 11,0px de letra (60px de largura) */
body .df-footer-credits img[src*="logo-plataforma"] {
    width: 98px !important;
    height: 20px !important;
    object-fit: contain !important;
}

body .df-footer-credits img[src*="nairuz"] {
    width: 60px !important;
    height: 12px !important;
    object-fit: contain !important;
}

/* ---- v4.31: o CONSULTAR VALOR no tamanho do Figma ----
   O desenho do botao esta no df-home.css e pede min-height 46px e fonte
   700 18px/22px. So que uma regra generica deste arquivo, feita para o
   .action.tocart, tambem alcanca o botao e o prende em 38px/16px - por isso
   ele saia menor e mais leve que no Figma. A regra do tocart fica como esta; o
   botao de consulta volta ao tamanho desenhado.
   A largura ja estava certa: o card do Figma tem 255px com 16px de recuo de
   cada lado, ou seja 223px de conteudo - exatamente o que o botao mede. */
body #maincontent :is(.carrousel-destaques-home, .products-grid, .block.related, .block.upsell, .owl-carousel) :is(.df-consult-value, .df-catalog-consult) {
    height: auto !important;
    min-height: 46px !important;
    font: 700 18px/22px Montserrat, sans-serif !important;
}

@media (max-width: 767px) {
    /* No mobile o card tem 136px de largura: em 18px o rotulo nao cabe. Os
       12px que ja valiam continuam. */
    body #maincontent :is(.carrousel-destaques-home, .products-grid, .block.related, .block.upsell, .owl-carousel) :is(.df-consult-value, .df-catalog-consult) {
        /* altura fixa, nao minima: com min-height a home fechava em 44px e a
           categoria em 40px, cada uma herdando um calculo diferente */
        height: 40px !important;
        min-height: 0 !important;
        font: 700 12px/16px Montserrat, sans-serif !important;
    }
}


/* ---- v4.32: o CONSULTAR VALOR da categoria aparece no hover ----
   O botao proprio da categoria (.df-catalog-consult) tinha o hover desenhado no
   df-catalog.css e saiu de cena junto com o bloco que o criava. O comportamento
   vem para o botao unico, com as mesmas medidas que o df-catalog.css usava:
   escondido por opacidade, revelado quando o card recebe o ponteiro ou o foco,
   e sempre visivel em tela de toque, onde hover nao existe.

   Vale para a grade da categoria e da busca. A lista de desejos fica de fora -
   ali o botao precisa estar sempre a vista.

   Junto, o .actions-primary volta a ser escondido: quem fazia isso era a regra
   :has(.df-catalog-consult) do df-catalog.css, que deixou de casar. */
body:is(.catalog-category-view, .catalogsearch-result-index) #maincontent .products-grid:not(.wishlist) .product-item-info:has(.df-consult-value) .actions-primary {
    display: none !important;
}

body:is(.catalog-category-view, .catalogsearch-result-index) #maincontent .products-grid:not(.wishlist) .df-consult-value {
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 300ms ease-out !important;
}

body:is(.catalog-category-view, .catalogsearch-result-index) #maincontent .products-grid:not(.wishlist) .product-item-info:is(:hover, :focus-within) .df-consult-value {
    opacity: 1 !important;
    pointer-events: auto !important;
}

@media (hover: none), (pointer: coarse) {
    body:is(.catalog-category-view, .catalogsearch-result-index) #maincontent .products-grid:not(.wishlist) .df-consult-value {
        opacity: 1 !important;
        pointer-events: auto !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body:is(.catalog-category-view, .catalogsearch-result-index) #maincontent .products-grid:not(.wishlist) .df-consult-value {
        transition: none !important;
    }
}
