/* CommercePro 3.6 mobile navigation isolation layer.
 * Loaded after theme CSS so every storefront theme receives the same usable drawer. */
.mobile-drawer,.mobile-nav-backdrop{display:none}
@media (max-width:900px){
  body.menu-open{overflow:hidden!important}
  body[class*="theme-"] .desktop-category-nav{display:none!important;visibility:hidden!important;pointer-events:none!important}
  body[class*="theme-"] .mobile-menu{display:flex!important;align-items:center!important;justify-content:center!important;flex-direction:column!important;gap:5px!important;position:relative!important;z-index:10002!important;width:46px!important;height:46px!important;min-height:46px!important;padding:0!important;border:1px solid #d8ddda!important;border-radius:9px!important;background:#fff!important;color:#111714!important;box-shadow:none!important;text-decoration:none!important}
  body[class*="theme-"] .mobile-menu span{display:block!important;width:20px!important;height:2px!important;margin:0!important;padding:0!important;border:0!important;border-radius:2px!important;background:#111714!important;transition:transform .2s ease,opacity .2s ease!important}
  body[class*="theme-"] .mobile-menu.active span:nth-child(1){transform:translateY(7px) rotate(45deg)!important}
  body[class*="theme-"] .mobile-menu.active span:nth-child(2){opacity:0!important}
  body[class*="theme-"] .mobile-menu.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)!important}
  .mobile-nav-backdrop{display:block;position:fixed!important;inset:0!important;z-index:10000!important;background:rgba(12,18,15,.48)!important;backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .2s ease}
  .mobile-nav-backdrop.open{opacity:1;pointer-events:auto}
  .mobile-nav-backdrop[hidden]{display:none!important}
  body[class*="theme-"] .mobile-drawer{display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;position:fixed!important;z-index:10001!important;top:0!important;right:0!important;bottom:0!important;left:auto!important;width:min(410px,94vw)!important;height:100dvh!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-left:1px solid #d8ddda!important;border-radius:0!important;background:#fff!important;color:#111714!important;box-shadow:-28px 0 72px rgba(0,0,0,.22)!important;transform:translate3d(104%,0,0)!important;visibility:hidden!important;opacity:0!important;overflow:hidden!important;transition:transform .25s ease,opacity .18s ease,visibility .25s!important;font-family:var(--font-body,Arial,sans-serif)!important;text-align:left!important}
  body[class*="theme-"] .mobile-drawer.is-open{transform:translate3d(0,0,0)!important;visibility:visible!important;opacity:1!important}
  body[class*="theme-"] .mobile-drawer-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;min-height:88px!important;padding:20px 22px 17px!important;margin:0!important;border:0!important;border-bottom:1px solid #dfe3e0!important;background:#fff!important;color:#111714!important}
  body[class*="theme-"] .mobile-drawer-head>div{display:grid!important;gap:3px!important;min-width:0!important}
  body[class*="theme-"] .mobile-drawer-head small{display:block!important;margin:0!important;font-size:10px!important;font-weight:750!important;line-height:1.2!important;letter-spacing:.16em!important;text-transform:uppercase!important;color:#707874!important}
  body[class*="theme-"] .mobile-drawer-head strong{display:block!important;margin:0!important;font:700 25px/1.08 var(--font-heading,var(--font-body,Arial,sans-serif))!important;letter-spacing:-.02em!important;color:#111714!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  body[class*="theme-"] .mobile-nav-close{display:grid!important;place-items:center!important;flex:0 0 42px!important;width:42px!important;height:42px!important;min-height:42px!important;margin:0!important;padding:0!important;border:1px solid #d8ddda!important;border-radius:50%!important;background:#fff!important;color:#111714!important;box-shadow:none!important;text-decoration:none!important;cursor:pointer!important}
  body[class*="theme-"] .mobile-nav-close svg{display:block!important;width:19px!important;height:19px!important;fill:none!important;stroke:#111714!important;stroke-width:1.8!important;stroke-linecap:round!important}
  body[class*="theme-"] .mobile-drawer-links{display:block!important;min-height:0!important;margin:0!important;padding:7px 22px 18px!important;overflow-y:auto!important;overflow-x:hidden!important;background:#fff!important;color:#111714!important}
  body[class*="theme-"] .mobile-drawer-links a{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:16px!important;width:100%!important;min-height:55px!important;margin:0!important;padding:0!important;border:0!important;border-bottom:1px solid #eceeec!important;border-radius:0!important;background:#fff!important;color:#111714!important;box-shadow:none!important;text-decoration:none!important;font:650 19px/1.2 var(--font-body,Arial,sans-serif)!important;letter-spacing:-.01em!important}
  body[class*="theme-"] .mobile-drawer-links a span{display:block!important;min-width:0!important;color:#111714!important;transform:none;transition:transform .15s ease!important}
  body[class*="theme-"] .mobile-drawer-links a b{display:block!important;font-size:10px!important;font-weight:750!important;letter-spacing:.1em!important;color:#8a918e!important}
  body[class*="theme-"] .mobile-drawer-links a:hover span{transform:translateX(5px)!important}
  body[class*="theme-"] .mobile-drawer-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:9px!important;margin:0!important;padding:15px 22px calc(17px + env(safe-area-inset-bottom))!important;border:0!important;border-top:1px solid #dfe3e0!important;background:#f5f6f4!important;color:#111714!important}
  body[class*="theme-"] .mobile-drawer-actions a,body[class*="theme-"] .mobile-drawer-actions button{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-height:47px!important;height:47px!important;margin:0!important;padding:0 12px!important;border:1px solid #ccd2ce!important;border-radius:7px!important;background:#fff!important;color:#111714!important;box-shadow:none!important;text-decoration:none!important;font:700 14px/1 var(--font-body,Arial,sans-serif)!important;cursor:pointer!important}
  body[class*="theme-"] .mobile-drawer-actions .cart-toggle,body[class*="theme-"] .mobile-drawer-actions .mobile-quote{grid-column:1/-1!important;background:#111714!important;color:#fff!important;border-color:#111714!important}
  body[class*="theme-"] .mobile-drawer-actions .cart-toggle b{display:grid!important;place-items:center!important;width:22px!important;height:22px!important;margin-left:7px!important;border-radius:50%!important;background:#fff!important;color:#111714!important}
}
@media (max-width:560px){
  body[class*="theme-"] .mobile-drawer{width:100vw!important}
  body[class*="theme-"] .mobile-drawer-head,body[class*="theme-"] .mobile-drawer-links,body[class*="theme-"] .mobile-drawer-actions{padding-left:18px!important;padding-right:18px!important}
  body[class*="theme-"] .mobile-drawer-actions{grid-template-columns:1fr!important}
  body[class*="theme-"] .mobile-drawer-actions .cart-toggle,body[class*="theme-"] .mobile-drawer-actions .mobile-quote{grid-column:auto!important}
}


/* CommercePro 4.5 — mobile compatibility guard loaded last. */
@media(max-width:900px){
  html,body{max-width:100%;overflow-x:hidden}
  body[class*="theme-"] main{min-width:0;max-width:100%}
  body[class*="theme-"] .site-head{height:auto!important;min-height:0!important;grid-template-columns:minmax(0,1fr) 46px!important;grid-auto-rows:auto!important;align-items:center!important}
  body[class*="theme-"] .site-head .cp-site-search{display:flex!important;align-items:center!important;min-width:0!important;max-width:100%!important}
  body[class*="theme-"] .site-head .cp-site-search input{width:100%!important;min-width:0!important;font-size:16px!important}
  body[class*="theme-"] input,body[class*="theme-"] select,body[class*="theme-"] textarea{font-size:16px}
  body[class*="theme-"] .product-grid,body[class*="theme-"] .featured-grid,body[class*="theme-"] .article-grid{min-width:0}
  body[class*="theme-"] .product-card,body[class*="theme-"] .article-card{min-width:0;max-width:100%}
  body[class*="theme-"] .product-title,body[class*="theme-"] .article-card h2,body[class*="theme-"] .article-card h3{overflow-wrap:anywhere}
  body[class*="theme-"] .hero,body[class*="theme-"] .page-hero,body[class*="theme-"] .catalog-hero{max-width:100%;overflow:hidden}
  body[class*="theme-"] .hero img,body[class*="theme-"] .cp-slide img{max-width:100%;height:auto}
  body[class*="theme-"] .checkout-layout,body[class*="theme-"] .catalog-layout,body[class*="theme-"] .product-detail,body[class*="theme-"] .article-shell,body[class*="theme-"] .request-layout,body[class*="theme-"] .support-layout{width:100%;max-width:100%;min-width:0}
  body[class*="theme-"] table{max-width:100%}
  body[class*="theme-"] .table-scroll,body[class*="theme-"] .cp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .search-live{left:0!important;right:0!important;top:calc(100% + 8px)!important;max-width:100%!important}
}
@media(max-width:640px){
  body[class*="theme-"] .site-head{padding:11px 12px 13px!important;gap:9px!important}
  body[class*="theme-"] .mobile-menu{width:44px!important;height:44px!important;min-height:44px!important;border-radius:10px!important}
  body[class*="theme-"] .product-grid,body[class*="theme-"] .featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px 11px!important}
  body[class*="theme-"] .product-info{padding-top:9px!important}.product-title{font-size:15px!important;min-height:0!important}
  body[class*="theme-"] .card-actions{gap:6px!important}.card-actions button,.card-actions>a{height:40px!important;min-height:40px!important}
  body[class*="theme-"] .page-hero,body[class*="theme-"] .catalog-hero{padding-left:16px!important;padding-right:16px!important}
  body[class*="theme-"] .page-hero h1,body[class*="theme-"] .page-hero.compact h1{font-size:clamp(34px,10vw,44px)!important;overflow-wrap:anywhere}
  body[class*="theme-"] .site-foot{padding-top:38px!important;padding-bottom:34px!important;gap:24px!important}
  body[class*="theme-"] .newsletter form,body[class*="theme-"] .newsletter-input-row{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  body[class*="theme-"] .newsletter input,body[class*="theme-"] .newsletter button{width:100%!important;min-height:46px!important}
  body[class*="theme-"] .compare-tray{width:calc(100% - 20px)!important;bottom:10px!important;grid-template-columns:1fr!important;gap:9px!important}
  body[class*="theme-"] .compare-tray-actions{justify-content:space-between!important}
}
@media(max-width:420px){
  body[class*="theme-"] .product-grid,body[class*="theme-"] .featured-grid{gap:18px 9px!important}
  body[class*="theme-"] .product-media{border-radius:min(var(--radius),6px)!important}
  body[class*="theme-"] .cart-item{grid-template-columns:72px minmax(0,1fr)!important;gap:11px!important}
  body[class*="theme-"] .cart-item img{width:72px!important;height:82px!important}.cart-item input{width:100%!important;max-width:92px!important}
}


/* CommercePro 4.7 — configurable app-style bottom navigation */
@media (max-width:760px){
  body.has-mobile-app-nav{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))!important}
  body.has-mobile-app-nav .site-foot{margin-bottom:0}
  .cp-mobile-app-nav{display:grid!important;grid-template-columns:repeat(var(--cp-mobile-nav-count,4),minmax(0,1fr));position:fixed;left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:9990;min-height:62px;padding:5px;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:14px;background:color-mix(in srgb,var(--paper,#fff) 94%,transparent);box-shadow:0 12px 38px rgba(16,24,40,.16);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  .cp-mobile-app-item{position:relative;display:flex!important;min-width:0;min-height:52px;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 3px;border:0!important;border-radius:10px!important;background:transparent!important;color:var(--muted)!important;text-decoration:none!important;font-size:10.5px!important;font-weight:700!important;line-height:1.1}
  .cp-mobile-app-item.is-active{background:color-mix(in srgb,var(--brand) 10%,var(--paper,#fff))!important;color:var(--brand)!important}
  .cp-mobile-app-icon{position:relative;display:grid;width:28px;height:25px;place-items:center}
  .cp-mobile-app-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .cp-mobile-app-icon b{position:absolute;top:-4px;right:-10px;display:grid;min-width:17px;height:17px;place-items:center;padding:0 4px;border:2px solid var(--paper,#fff);border-radius:9px;background:#c62828;color:#fff;font-size:9px;line-height:1;font-weight:800}
  .cp-mobile-app-label{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.has-mobile-app-nav .contact-fab{bottom:calc(88px + env(safe-area-inset-bottom,0px))!important}
  body.has-mobile-app-nav .back-to-top{bottom:calc(88px + env(safe-area-inset-bottom,0px))!important}
  body.has-mobile-app-nav.has-contact-fab.has-back-to-top .back-to-top{bottom:calc(142px + env(safe-area-inset-bottom,0px))!important}
  body.has-mobile-app-nav .compare-tray{bottom:calc(82px + env(safe-area-inset-bottom,0px))!important}
  .product-topic-links-after-actions{gap:6px;margin-top:10px;padding-top:10px}
  .product-topic-links-after-actions a{min-height:28px;padding:4px 8px;font-size:12px}
}
@media (max-width:390px){
  .cp-mobile-app-nav{left:6px;right:6px;bottom:calc(5px + env(safe-area-inset-bottom,0px));border-radius:12px;padding:4px}
  .cp-mobile-app-item{padding-inline:2px}.cp-mobile-app-label{font-size:9.8px}
}

/* 4.7 fixed-action collision guard: keep product sticky actions, Compare and floating tools above the app bar. */
@media (max-width:760px){
  .cp-mobile-app-nav{background:var(--paper,#fff);background:color-mix(in srgb,var(--paper,#fff) 94%,transparent)}
  body.page-view-product.has-mobile-app-nav{padding-bottom:calc(148px + env(safe-area-inset-bottom,0px))!important}
  body.page-view-product.has-mobile-app-nav .sticky-buy{bottom:calc(76px + env(safe-area-inset-bottom,0px))!important;z-index:9980!important}
  body.page-view-product.has-mobile-app-nav .compare-tray{bottom:calc(146px + env(safe-area-inset-bottom,0px))!important}
  body.page-view-product.has-mobile-app-nav .contact-fab{bottom:calc(152px + env(safe-area-inset-bottom,0px))!important}
  body.page-view-product.has-mobile-app-nav .back-to-top{bottom:calc(152px + env(safe-area-inset-bottom,0px))!important}
  body.page-view-product.has-mobile-app-nav.has-contact-fab.has-back-to-top .back-to-top{bottom:calc(206px + env(safe-area-inset-bottom,0px))!important}
}

/* CommercePro 5.0 — compact language/currency controls on phones. */
@media(max-width:900px){
  body[class*="theme-"] .site-head .cp-header-switchers{grid-column:1/-1!important;grid-row:3!important;width:100%!important;justify-content:flex-end!important;gap:7px!important;padding-top:1px!important}
  body[class*="theme-"] .cp-header-switchers .cp-locale-select>span,body[class*="theme-"] .cp-header-switchers .cp-currency-select>span{display:none!important}
  body[class*="theme-"] .cp-locale-select select,body[class*="theme-"] .cp-currency-select select{height:40px!important;min-width:94px!important;max-width:150px!important;font-size:14px!important;padding-left:10px!important;padding-right:30px!important;border-radius:6px!important;background-color:var(--paper,#fff)!important;color:var(--ink)!important}
  body[class*="theme-"] .cp-nav-switchers{margin:7px 0!important;padding:0 14px!important;justify-content:flex-end!important;overflow:visible!important}
  body[class*="theme-"] .cp-footer-switchers{justify-content:flex-start!important;gap:8px!important;padding-bottom:18px!important}
}
@media(max-width:480px){
  body[class*="theme-"] .site-head .cp-header-switchers{justify-content:stretch!important}
  body[class*="theme-"] .cp-header-switchers label{flex:1 1 0!important}
  body[class*="theme-"] .cp-header-switchers select{width:100%!important;max-width:none!important}
  body[class*="theme-"] .cp-nav-switchers{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body[class*="theme-"] .cp-nav-switchers label,body[class*="theme-"] .cp-nav-switchers select{width:100%!important;max-width:none!important}
}


/* CommercePro 5.7 — catalog filters become a compact mobile drawer. */
.cp-module-catalog-mobile-filter{display:none}.cp-catalog-filter-toggle,.cp-catalog-filter-close,.cp-catalog-filter-backdrop{display:none}
@media(max-width:900px){
  body[class*="theme-"].page-view-catalog .cp-module-catalog-mobile-filter{display:block!important}
  body[class*="theme-"].page-view-catalog .cp-catalog-layout{display:block!important;position:relative!important}
  body[class*="theme-"].page-view-catalog .cp-catalog-filter-toggle{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;width:100%!important;min-height:44px!important;margin:0 0 14px!important;padding:0 14px!important;border:1px solid color-mix(in srgb,var(--ink) 16%,var(--line))!important;border-radius:7px!important;background:var(--paper,#fff)!important;color:var(--ink)!important;font-weight:750!important;box-shadow:0 4px 16px rgba(15,23,42,.05)!important;cursor:pointer!important}
  body[class*="theme-"].page-view-catalog .cp-catalog-filter-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  body[class*="theme-"].page-view-catalog .cp-catalog-filters{display:flex!important;position:fixed!important;z-index:10021!important;top:0!important;right:0!important;bottom:0!important;left:auto!important;width:min(370px,92vw)!important;height:100dvh!important;max-width:none!important;margin:0!important;padding:18px 18px calc(24px + env(safe-area-inset-bottom,0px))!important;flex-direction:column!important;gap:10px!important;overflow-y:auto!important;overflow-x:hidden!important;border:0!important;border-left:1px solid var(--line)!important;background:var(--paper,#fff)!important;color:var(--ink)!important;box-shadow:-26px 0 70px rgba(15,23,42,.18)!important;transform:translate3d(104%,0,0)!important;visibility:hidden!important;transition:transform .24s ease,visibility .24s ease!important}
  body[class*="theme-"].page-view-catalog .cp-catalog-filters.is-open{transform:translate3d(0,0,0)!important;visibility:visible!important}
  body[class*="theme-"].page-view-catalog .cp-catalog-filter-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding-bottom:12px!important;margin-bottom:4px!important;border-bottom:1px solid var(--line)!important}
  body[class*="theme-"].page-view-catalog .cp-catalog-filter-head h3{margin:0!important;font-size:22px!important;line-height:1.2!important}
  body[class*="theme-"].page-view-catalog .cp-catalog-filter-close{display:grid!important;place-items:center!important;width:38px!important;height:38px!important;flex:0 0 38px!important;padding:0!important;border:1px solid var(--line)!important;border-radius:7px!important;background:var(--cream)!important;color:var(--ink)!important;cursor:pointer!important}
  body[class*="theme-"].page-view-catalog .cp-catalog-filter-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  body[class*="theme-"].page-view-catalog .cp-catalog-filter-backdrop{display:block!important;position:fixed!important;z-index:10020!important;inset:0!important;border:0!important;padding:0!important;background:rgba(15,23,42,.42)!important;backdrop-filter:blur(2px)!important;-webkit-backdrop-filter:blur(2px)!important;opacity:0!important;pointer-events:none!important;transition:opacity .2s ease!important}
  body[class*="theme-"].page-view-catalog .cp-catalog-filter-backdrop.is-open{opacity:1!important;pointer-events:auto!important}
  body[class*="theme-"].page-view-catalog .cp-catalog-filter-backdrop[hidden]{display:none!important}
  body.cp-catalog-filter-open{overflow:hidden!important}
}

/* CommercePro 5.7 — product-detail hard containment on narrow screens. */
@media(max-width:900px){
  body[class*="theme-"].page-view-product main{width:100%!important;max-width:100vw!important;overflow-x:clip!important}
  body[class*="theme-"].page-view-product .product-detail{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0 auto!important;padding-left:16px!important;padding-right:16px!important;gap:28px!important;overflow:clip!important}
  body[class*="theme-"].page-view-product .product-detail>*,
  body[class*="theme-"].page-view-product .gallery-stage-wrap,
  body[class*="theme-"].page-view-product .gallery-collection,
  body[class*="theme-"].page-view-product .product-buy,
  body[class*="theme-"].page-view-product .buy-form,
  body[class*="theme-"].page-view-product .product-configurator,
  body[class*="theme-"].page-view-product .addon-section,
  body[class*="theme-"].page-view-product .addon-fields,
  body[class*="theme-"].page-view-product .extra-option,
  body[class*="theme-"].page-view-product .variant-choice-grid,
  body[class*="theme-"].page-view-product .choice-grid,
  body[class*="theme-"].page-view-product .secondary-actions,
  body[class*="theme-"].page-view-product .micro-benefits{min-width:0!important;max-width:100%!important}
  body[class*="theme-"].page-view-product .gallery{width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;overflow:hidden!important}
  body[class*="theme-"].page-view-product .main-photo,
  body[class*="theme-"].page-view-product .gallery-collection figure,
  body[class*="theme-"].page-view-product .gallery-grid-zoom{width:100%!important;max-width:100%!important;min-width:0!important}
  body[class*="theme-"].page-view-product .gallery img{max-width:100%!important;height:auto!important}
  body[class*="theme-"].page-view-product .gallery-thumbs{width:100%!important;max-width:100%!important;grid-template-columns:repeat(auto-fit,minmax(64px,1fr))!important;overflow:hidden!important}
  body[class*="theme-"].page-view-product .gallery-thumbs button{width:100%!important;min-width:0!important;max-width:100%!important}
  body[class*="theme-"].page-view-product .product-buy h1,
  body[class*="theme-"].page-view-product .lead,
  body[class*="theme-"].page-view-product .breadcrumbs,
  body[class*="theme-"].page-view-product .variant-copy,
  body[class*="theme-"].page-view-product .choice-copy,
  body[class*="theme-"].page-view-product .addon-section-description,
  body[class*="theme-"].page-view-product .micro-benefits span{max-width:100%!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  body[class*="theme-"].page-view-product .detail-price,
  body[class*="theme-"].page-view-product .secondary-actions{flex-wrap:wrap!important}
  body[class*="theme-"].page-view-product .product-configurator .addon-section-heading{min-width:0!important;flex-wrap:wrap!important}
  body[class*="theme-"].page-view-product .product-configurator .addon-slider-controls{flex:0 0 auto!important}
  body[class*="theme-"].page-view-product .product-configurator input,
  body[class*="theme-"].page-view-product .product-configurator select,
  body[class*="theme-"].page-view-product .product-configurator textarea{max-width:100%!important;min-width:0!important}
}
@media(max-width:520px){
  body[class*="theme-"].page-view-product .product-detail{padding-left:12px!important;padding-right:12px!important;gap:22px!important}
  body[class*="theme-"].page-view-product .product-buy h1{font-size:clamp(32px,10vw,40px)!important;overflow-wrap:anywhere!important}
  body[class*="theme-"].page-view-product .buy-row{grid-template-columns:1fr!important;gap:9px!important}
  body[class*="theme-"].page-view-product .qty{width:100%!important;grid-template-columns:44px minmax(0,1fr) 44px!important;min-height:44px!important}
  body[class*="theme-"].page-view-product .buy-row>.button{width:100%!important;min-width:0!important;white-space:normal!important;padding-left:12px!important;padding-right:12px!important;text-align:center!important}
  body[class*="theme-"].page-view-product .secondary-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
  body[class*="theme-"].page-view-product .secondary-actions>a,
  body[class*="theme-"].page-view-product .secondary-actions>button{min-width:0!important;width:100%!important;text-align:center!important;white-space:normal!important}
  body[class*="theme-"].page-view-product .sticky-buy{max-width:100vw!important;gap:8px!important;padding-left:10px!important;padding-right:10px!important}
  body[class*="theme-"].page-view-product .sticky-buy>div{min-width:0!important;max-width:52%!important}
  body[class*="theme-"].page-view-product .sticky-buy .button{min-width:0!important;padding-left:12px!important;padding-right:12px!important;white-space:normal!important;text-align:center!important}
}

/* CommercePro 5.7 — additional product-page overflow hardening for rich content and galleries. */
@media(max-width:900px){
  body[class*="theme-"].page-view-product .product-rich-content,
  body[class*="theme-"].page-view-product .rich-content,
  body[class*="theme-"].page-view-product .prose{width:100%!important;max-width:100%!important;min-width:0!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  body[class*="theme-"].page-view-product .product-rich-content table,
  body[class*="theme-"].page-view-product .rich-content table{display:block!important;width:100%!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}
  body[class*="theme-"].page-view-product .product-rich-content iframe,
  body[class*="theme-"].page-view-product .rich-content iframe,
  body[class*="theme-"].page-view-product .product-rich-content video,
  body[class*="theme-"].page-view-product .rich-content video{width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:16/9}
  body[class*="theme-"].page-view-product .product-rich-content pre,
  body[class*="theme-"].page-view-product .rich-content pre,
  body[class*="theme-"].page-view-product .product-rich-content code,
  body[class*="theme-"].page-view-product .rich-content code{max-width:100%!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  body[class*="theme-"].page-view-product .product-topic-links,
  body[class*="theme-"].page-view-product .product-topic-links-after-actions{display:flex!important;max-width:100%!important;min-width:0!important;flex-wrap:wrap!important}
  body[class*="theme-"].page-view-product .product-topic-links a,
  body[class*="theme-"].page-view-product .product-topic-links-after-actions a{max-width:100%!important;min-width:0!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  body[class*="theme-"].page-view-product .addon-popup-card,
  body[class*="theme-"].page-view-product .commerce-modal-card,
  body[class*="theme-"].page-view-product .gallery-lightbox-card{max-width:calc(100vw - 24px)!important;min-width:0!important}
}
@media(max-width:650px){
  body[class*="theme-"].page-view-product .product-gallery.gallery-thumbs_left{display:block!important;width:100%!important;max-width:100%!important}
  body[class*="theme-"].page-view-product .gallery-thumbs_left .gallery-collection{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;max-height:none!important;width:100%!important;margin-top:10px!important;overflow:visible!important}
  body[class*="theme-"].page-view-product .gallery-thumbs_left .gallery-collection button{width:100%!important;height:auto!important;aspect-ratio:1!important;min-width:0!important}
  body[class*="theme-"].page-view-product .gallery-grid.gallery-mosaic{grid-template-columns:1fr 1fr!important}
  body[class*="theme-"].page-view-product .gallery-grid.gallery-mosaic .gallery-tile,
  body[class*="theme-"].page-view-product .gallery-grid.gallery-mosaic .gallery-tile:nth-child(5n+1),
  body[class*="theme-"].page-view-product .gallery-grid.gallery-mosaic .gallery-tile:nth-child(5n+2){grid-column:auto!important}
  body[class*="theme-"].page-view-product .product-configurator-head{grid-template-columns:minmax(0,1fr)!important}
  body[class*="theme-"].page-view-product .product-configurator .addon-tabs-nav{max-width:100%!important;overflow-x:auto!important;flex-wrap:nowrap!important;scrollbar-width:none!important}
  body[class*="theme-"].page-view-product .product-configurator .addon-tabs-nav::-webkit-scrollbar{display:none!important}
  body[class*="theme-"].page-view-product .product-configurator .addon-tabs-nav button{flex:0 0 auto!important;white-space:nowrap!important}
}

/* CommercePro 5.8 — root-level mobile product overflow containment.
   The 5.7 rules protected <main>, but fixed/off-canvas UI lives outside <main>.
   Keep floating tools, drawers, sticky commerce controls and product option content
   inside the visual viewport without masking legitimate internal horizontal scrollers. */
@media(max-width:900px){
  html{max-width:100%;overflow-x:clip}
  body[class*="theme-"].page-view-product{width:100%!important;max-width:100%!important;overflow-x:clip!important;overscroll-behavior-x:none}
  body[class*="theme-"].page-view-product main,
  body[class*="theme-"].page-view-product .product-detail,
  body[class*="theme-"].page-view-product .cp-page-module-shell{min-width:0!important;max-width:100%!important}

  /* Floating UI must never enlarge the root scrollable overflow area. */
  body[class*="theme-"].page-view-product .contact-fab,
  body[class*="theme-"].page-view-product .back-to-top{box-sizing:border-box!important;right:max(12px,env(safe-area-inset-right,0px))!important;width:46px!important;min-width:46px!important;max-width:46px!important;height:46px!important;min-height:46px!important;padding:0!important;display:grid!important;place-items:center!important;overflow:hidden!important;contain:layout paint!important}
  body[class*="theme-"].page-view-product .contact-fab span{display:none!important}
  body[class*="theme-"].page-view-product .contact-fab svg,
  body[class*="theme-"].page-view-product .back-to-top svg{width:19px!important;height:19px!important;flex:0 0 19px!important}
  body[class*="theme-"].page-view-product .sticky-buy,
  body[class*="theme-"].page-view-product .compare-tray,
  body[class*="theme-"].page-view-product .cp-mobile-app-nav{box-sizing:border-box!important;max-width:100vw!important}

  /* Off-canvas drawers are global siblings of <main>; explicitly contain their paint. */
  body[class*="theme-"].page-view-product .mobile-drawer,
  body[class*="theme-"].page-view-product .category-nav{max-width:100vw!important;contain:layout paint!important}

  /* Native fieldset/grid min-content behaviour is a common source of mobile overflow. */
  body[class*="theme-"].page-view-product fieldset,
  body[class*="theme-"].page-view-product .extra-option,
  body[class*="theme-"].page-view-product .addon-section,
  body[class*="theme-"].page-view-product .addon-fields,
  body[class*="theme-"].page-view-product .addon-section-heading,
  body[class*="theme-"].page-view-product .addon-section-heading>div,
  body[class*="theme-"].page-view-product .choice-grid,
  body[class*="theme-"].page-view-product .text-choice-grid,
  body[class*="theme-"].page-view-product .image-choice-grid,
  body[class*="theme-"].page-view-product .color-choice-grid,
  body[class*="theme-"].page-view-product .variant-choice-grid{min-inline-size:0!important;min-width:0!important;max-width:100%!important}
  body[class*="theme-"].page-view-product .customer-upload{grid-template-columns:auto minmax(0,1fr)!important;min-width:0!important;max-width:100%!important}
  body[class*="theme-"].page-view-product .customer-upload>*,
  body[class*="theme-"].page-view-product .customer-upload small{min-width:0!important;max-width:100%!important}
  body[class*="theme-"].page-view-product .addon-slider-controls{max-width:100%!important;flex-shrink:1!important}
  body[class*="theme-"].page-view-product .micro-benefits>*,
  body[class*="theme-"].page-view-product details,
  body[class*="theme-"].page-view-product summary{min-width:0!important;max-width:100%!important;overflow-wrap:anywhere!important}

  /* Keep anti-spam honeypots out of the root overflow calculation. */
  body[class*="theme-"].page-view-product .cp-hp,
  body[class*="theme-"].page-view-product .cp-subscribe-hp{position:fixed!important;left:0!important;top:0!important;width:1px!important;height:1px!important;min-width:0!important;clip-path:inset(50%)!important;overflow:hidden!important}
}
@supports not (overflow:clip){
  @media(max-width:900px){html,body[class*="theme-"].page-view-product{overflow-x:hidden!important}}
}

/* CommercePro 5.9: mobile floating controls can be disabled independently.
   Defaults are OFF on mobile because some browser/theme combinations count fixed FABs in the root scroll width. */
@media (max-width: 767px){
  body.mobile-contact-fab-disabled .contact-fab{display:none!important;visibility:hidden!important;pointer-events:none!important;inline-size:0!important;block-size:0!important;min-inline-size:0!important;min-block-size:0!important;max-inline-size:0!important;max-block-size:0!important;overflow:hidden!important;clip-path:inset(50%)!important;transform:none!important;box-shadow:none!important}
  body.mobile-back-to-top-disabled .back-to-top{display:none!important;visibility:hidden!important;pointer-events:none!important;inline-size:0!important;block-size:0!important;min-inline-size:0!important;min-block-size:0!important;max-inline-size:0!important;max-block-size:0!important;overflow:hidden!important;clip-path:inset(50%)!important;transform:none!important;box-shadow:none!important}
  body.mobile-contact-fab-disabled.mobile-back-to-top-enabled .back-to-top{bottom:calc(16px + env(safe-area-inset-bottom,0px))!important}
  body.page-view-product.mobile-contact-fab-disabled.mobile-back-to-top-enabled.has-mobile-app-nav .back-to-top{bottom:calc(96px + env(safe-area-inset-bottom,0px))!important}
}

/* CommercePro 6.0 — zero-offscreen mobile panels and product viewport lock.
   Closed drawers are no longer parked at translateX(104/105%). They stay inside the
   viewport and are truly hidden until JS opens them, preventing iOS/WebView from
   exposing a blank strip to the right during horizontal rubber-band gestures. */
@media (max-width:900px){
  html.cp-mobile-viewport,
  html.cp-mobile-viewport body.page-view-product{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    overscroll-behavior-x:none!important;
  }
  html.cp-mobile-viewport body.page-view-product{
    position:relative!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  html.cp-mobile-viewport body.page-view-product>.announce,
  html.cp-mobile-viewport body.page-view-product>.site-head,
  html.cp-mobile-viewport body.page-view-product>.cp-nav-switchers,
  html.cp-mobile-viewport body.page-view-product>main,
  html.cp-mobile-viewport body.page-view-product>.site-foot,
  html.cp-mobile-viewport body.page-view-product>.footnote{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  /* Hidden means zero paint/zero scroll contribution. */
  body[class*="theme-"] .mobile-drawer[hidden],
  body[class*="theme-"] .mini-cart[hidden]{display:none!important}

  /* When visible, keep the panel inside the viewport and reveal it with clipping,
     never by positioning the whole element to the right of the viewport. */
  body[class*="theme-"] .mobile-drawer:not([hidden]){
    transform:none!important;
    right:0!important;
    left:auto!important;
    width:min(410px,94vw)!important;
    max-width:100vw!important;
    clip-path:inset(0 0 0 100%)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    box-shadow:none!important;
    contain:layout paint!important;
    transition:clip-path .24s ease,opacity .18s ease,visibility .24s ease!important;
  }
  body[class*="theme-"] .mobile-drawer.is-open:not([hidden]){
    clip-path:inset(0)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    box-shadow:-28px 0 72px rgba(0,0,0,.22)!important;
  }

  body[class*="theme-"] .mini-cart:not([hidden]){
    transform:none!important;
    right:0!important;
    left:auto!important;
    width:min(420px,100vw)!important;
    max-width:100vw!important;
    clip-path:inset(0 0 0 100%)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    box-shadow:none!important;
    contain:layout paint!important;
    transition:clip-path .24s ease,opacity .18s ease,visibility .24s ease!important;
  }
  body[class*="theme-"] .mini-cart.open:not([hidden]){
    clip-path:inset(0)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    box-shadow:var(--shadow)!important;
  }

  /* Product-page fixed bars must use the containing viewport, never 100vw plus offsets. */
  body[class*="theme-"].page-view-product .sticky-buy{
    left:0!important;
    right:0!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    transform:none!important;
  }
  body[class*="theme-"].page-view-product .cp-mobile-app-nav{
    max-width:calc(100% - 20px)!important;
    box-sizing:border-box!important;
  }

  /* Defensive root children guard. Fixed overlays that are closed are already hidden;
     visible storefront sections may not exceed the document width. */
  body[class*="theme-"].page-view-product main,
  body[class*="theme-"].page-view-product main>*{
    min-width:0!important;
    max-width:100%!important;
  }
}
@media (max-width:560px){
  body[class*="theme-"] .mobile-drawer:not([hidden]){width:100%!important;max-width:100%!important}
  body[class*="theme-"] .mini-cart:not([hidden]){width:100%!important;max-width:100%!important}
}
@media(max-width:900px){
  body[class*="theme-"].page-view-product main *,
  body[class*="theme-"].page-view-product .product-detail *{min-width:0}
  body[class*="theme-"].page-view-product img,
  body[class*="theme-"].page-view-product video,
  body[class*="theme-"].page-view-product iframe,
  body[class*="theme-"].page-view-product canvas,
  body[class*="theme-"].page-view-product table{max-width:100%}
}
