/* Reserve image geometry before lazy images load. */
.product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.product-card,.catalog{min-width:0}
.product-card{overflow-wrap:anywhere}
.product-photo{position:relative;width:100%;aspect-ratio:1/1;min-width:0;min-height:0;flex:none;overflow:hidden}
.product-photo img{position:absolute;inset:4%;display:block;width:92%;height:92%;max-width:92%;max-height:92%;object-fit:contain}
.category-nav{overflow-x:auto;overflow-y:hidden;min-height:64px;scrollbar-width:none}
.category-nav::-webkit-scrollbar{display:none}
.category-nav button{flex:0 0 auto;white-space:nowrap;min-height:40px}
#load-more{overflow-anchor:none}
.drawer{height:100vh;height:100dvh;max-height:100dvh;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;visibility:hidden;pointer-events:none;transition:transform .2s ease,visibility .2s}
.drawer.open{visibility:visible;pointer-events:auto}
.drawer-head,.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.drawer-head button,.dialog-head button{min-width:44px;min-height:44px;border:0;background:transparent;font-size:24px}
.cart-row{grid-template-columns:0 minmax(0,1fr) 44px;align-items:center;overflow-wrap:anywhere}
.cart-row small{display:block;margin-top:6px}
.cart-row button{min-height:44px}
dialog{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior-y:contain}
html.pfu-scroll-locked{overflow:hidden}
body.pfu-scroll-locked{position:fixed;top:var(--pfu-scroll-top);left:0;right:0;width:100%;overflow:hidden}
@media(max-width:900px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:150px}
  body{min-width:0}
  main{width:100%;padding-inline:12px}
  input,select,textarea,.filters input,.filters select,#checkout-form input,#checkout-form textarea,.pfu-brand-search input,.topbar .search-box input{font-size:16px!important;line-height:1.4;min-width:0;max-width:100%}
  button,a{touch-action:manipulation}
  .topbar{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px}
  .topbar .pfu-header-brands{grid-column:1/-1;grid-row:1;justify-content:space-between;gap:10px}
  .topbar .search-box{grid-column:1;grid-row:2;min-width:0;max-width:100%}
  .topbar .search-box input{width:100%;padding:10px;flex:1 1 0}
  .topbar .search-box button,.topbar .cart-btn{padding:11px 14px;min-height:44px;white-space:nowrap}
  .topbar .cart-btn{grid-column:2;grid-row:2}
  .topbar .pfu-store-header b{font-size:22px}
  .topbar .pfu-store-header>img{width:45px;height:45px}
  .topbar .pfu-header-network{width:112px}
  .shop-layout{grid-template-columns:minmax(0,1fr);gap:22px}
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .product-card{padding:10px;min-height:350px}
  .product-card h3{font-size:15px;line-height:1.45;margin:10px 0}
  .product-card small{line-height:1.5}
  .product-bottom{flex-wrap:wrap;gap:10px;padding-top:14px}
  .product-bottom strong{font-size:19px;white-space:nowrap}
  .product-bottom .add{min-height:44px;padding:10px 12px;flex:1 0 auto}
  .filters{width:100%;min-width:0}
  .filters label{font-size:16px}
  .pfu-campaign-photo svg{animation:none;transform:none;will-change:auto}
  .pfu-campaign .pfu-motion{display:none}
  .pfu-campaign-bottom{min-height:0}
  .drawer{padding:16px 16px calc(20px + env(safe-area-inset-bottom,0px))}
  #checkout-form{padding:12px;gap:10px;min-width:0}
  #checkout-form input,#checkout-form textarea{padding:11px;border:1px solid #cbc4b8;border-radius:7px;min-height:44px;width:100%}
  .pfu-doc-header{flex-wrap:wrap;padding:12px;gap:10px}
  .pfu-doc-header .pfu-header-brands{width:100%;justify-content:space-between;gap:10px}
  .pfu-doc-logo.pfu-store-doc{flex-direction:row;gap:8px}
  .pfu-doc-header .pfu-header-network{width:112px}
  .pfu-store-doc img{width:45px}
  .pfu-store-doc b{font-size:20px}
  .pfu-doc{padding-inline:16px;min-height:55svh;overflow-wrap:anywhere}
  .pfu-footer-grid,.pfu-footer-grid>*{min-width:0}
  .pfu-footer-grid a{overflow-wrap:anywhere}
}
@media(max-width:360px){
  .topbar .pfu-store-header>img,.pfu-store-doc img{width:36px;height:36px}
  .topbar .pfu-store-header b,.pfu-store-doc b{font-size:18px}
  .pfu-header-brands>.pfu-header-network,.topbar .pfu-header-network,.pfu-doc-header .pfu-header-network{width:88px}
  .topbar .pfu-store-header{gap:6px}
  .product-bottom .add{width:100%}
}
@media(prefers-reduced-motion:reduce){.drawer{transition:none}}
