/* Reusable constraints for future catalog content, independent of merchant. */
.products,.stores,.directory-promoted-grid{min-width:0}
.product,.product-body,.compact-store-card,.sponsored-card,.deal-copy{min-width:0}
.product h3,.product .price,.product .saving,.top-saving strong,.compact-store-card strong,
.sponsored-card h3,.sponsored-card p,.deal-title,.deal-price,.mobile-submenu-title{overflow-wrap:anywhere}
.product{display:flex;flex-direction:column}
.product-body{display:flex;flex-direction:column;flex:1}
.product-action{margin-top:auto;padding-top:12px}
.product-photo{overflow:hidden;contain:layout paint}
.product-photo img{max-width:100%;max-height:100%;object-fit:contain}
.offer-pagination{grid-column:1/-1;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;padding:18px 0}
.offer-pagination button{min-height:44px}
.results-heading,.promotion-wizard-steps{scroll-margin-top:70px}
.mobile-menu-row{overflow-wrap:anywhere}
.mobile-menu-row small{flex-shrink:0}
.merchant-logo-frame{overflow:hidden}
.merchant-logo-frame img{object-fit:contain;max-width:100%}
.promotion-wizard-steps button{overflow-wrap:anywhere;min-width:0}
@media(max-width:740px){
 .mobile-header{padding-top:max(10px,env(safe-area-inset-top))}
 .mobile-menu-body{padding-bottom:max(35px,env(safe-area-inset-bottom))}
 .promotion-page input,.promotion-page textarea,.promotion-page select,.mobile-search input{font-size:16px}
 .results-heading{scroll-margin-top:64px}
 .product .price{font-size:clamp(16px,4.8vw,22px)}
 .offer-pagination{gap:8px;font-size:13px}
 .offer-pagination button{padding:10px 12px}
 .promotion-wizard-actions{position:relative;padding-bottom:env(safe-area-inset-bottom)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.fade{animation:none!important}}

html[data-private-test="true"]{--preview-offset:52px}
.promotion-wizard-steps{scroll-margin-top:calc(70px + var(--preview-offset,0px))}
.sponsored-card .sponsor-banner{object-fit:contain}
@media(max-width:740px){html[data-private-test="true"]{--preview-offset:88px}html[data-private-test="true"] .mobile-results-toolbar{top:var(--preview-offset)}}

@media(max-width:740px){#app .link-button,.footer>div a,.footer>div button{min-height:44px;display:inline-flex;align-items:center}.results-toolbar select{max-width:none}}

/* Final public UX refinements; retain existing theme tokens, including Black Friday. */
#app :is(a,button,input,select,textarea,summary):focus-visible,
#modal :is(a,button,input,select,textarea,summary):focus-visible,
.top :is(a,button,select,summary):focus-visible,
.mobile-header :is(a,button,input):focus-visible,
.mobile-panel :is(a,button,input,select,summary):focus-visible{
 outline:2px solid var(--blue);outline-offset:3px
}
.settings-card,.account-section,.account-section>div{min-width:0}
.settings-card p,.account-section h1,.account-section p,.breadcrumb{overflow-wrap:anywhere}
@media(max-width:740px){
 .browse-layout>.filter-sidebar:not(.store-mini-filters){display:none}
 .auth{margin:28px 14px;padding:26px 22px}
 .auth .links{gap:12px;flex-wrap:wrap;align-items:center}
}

.auth p,.auth .field label,.auth .error,.settings-card p{font-size:14px}
.auth .links,.auth .links a,.auth .link-button{font-size:13px}
.auth input{font-size:16px;min-height:46px}
.account-tabs a,.account-item .pills a{display:inline-flex;align-items:center;min-height:44px}
.account-tabs a.selected{border-color:var(--blue);color:var(--blue);background:var(--panel)}
.account-item>div{min-width:0}
.account-item .pills{display:flex;gap:8px;flex-wrap:wrap;max-width:100%}

.skip-link{position:fixed;top:8px;left:12px;z-index:1000;padding:12px 18px;border-radius:9px;background:var(--panel);color:var(--text);border:2px solid var(--blue);transform:translateY(-180%)}
.skip-link:focus{transform:none;outline:2px solid var(--blue);outline-offset:2px}
.top nav a,.nav-connect,.nav-signup,.user-menu>summary,.header-favorites{min-height:44px}
.top nav a{display:inline-flex;align-items:center}
.header-favorites{min-width:44px}

.product .favorite-button{min-width:44px;min-height:44px;flex-shrink:0}
.product-detail button,.promotion-page button,#app .link-button,.filter-sidebar .link-button,.active-filters button{min-height:44px}
.product-action .card-cta{min-width:0;white-space:normal;text-align:center}

.account-heading{align-items:flex-start;gap:16px;flex-wrap:wrap}
.account-heading>div{min-width:0;flex:1 1 200px}
.account-heading h1{font-size:clamp(26px,5vw,36px);line-height:1.25;margin-top:0;overflow-wrap:anywhere}
.account-heading>.outline{display:inline-flex;align-items:center;min-height:44px;flex:0 0 auto}
.account-tabs{font-size:13px}
.account-item small{font-size:13px;line-height:1.7}
.dialog-head>button{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:740px){#modal input,#modal select,#modal textarea{font-size:16px}}

/* Approved public desktop density; phones, touch-only screens and admin stay unscaled. */
@media(min-width:1024px) and (hover:hover) and (pointer:fine){
 html:not(:has(body.admin-view,body.admin-login)){zoom:.8}
 body:not(.admin-view):not(.admin-login) :is(button,select,summary,input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),.outline,.primary,.link-button){min-height:55px;min-width:55px}
 body:not(.admin-view):not(.admin-login) .top nav a,
 body:not(.admin-view):not(.admin-login) .auth-nav a{min-height:55px;display:inline-flex;align-items:center}
 body:not(.admin-view):not(.admin-login) :is(.homepage-partners,#directorySponsored) .sponsored-body .outline,
 body:not(.admin-view):not(.admin-login) .sponsor-description-toggle{min-height:55px}
}
