/**
 * QAVEX storefronts — guard rules, loaded after every theme and trait.
 * Themes restyle buttons freely (uppercase, letter-spacing, bigger type);
 * these rules only make sure nothing spills out of a product card.
 */
.qs .qs-card { min-width: 0; }
.qs .qs-card-body { min-width: 0; }
.qs .qs-card-btns { min-width: 0; }
.qs .qs-card-btns .qs-btn { min-width: 0; max-width: 100%; width: 100%; box-sizing: border-box; justify-content: center; white-space: nowrap; overflow: hidden; }
.qs .qs-card-btns .qs-btn .icon, .qs .qs-card-btns .qs-btn svg { flex: none; }
.qs .qs-card-btns .qs-btn-t { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.qs .qs-btn-short { display: none; }
/* Narrow cards (two per row on phones, or slim columns): smaller, calmer buttons. */
@media (max-width: 600px) {
	.qs .qs-card-btns .qs-btn { font-size: 12px !important; letter-spacing: .02em !important; padding: 0 8px !important; gap: 6px !important; min-height: 38px; }
	.qs .qs-card-btns .qs-btn .icon, .qs .qs-card-btns .qs-btn svg { width: 15px !important; height: 15px !important; }
	.qs .qs-card-btns .qs-btn-long { display: none; }
	.qs .qs-card-btns .qs-btn-short { display: inline; }
}
/* Category tiles: long names wrap instead of widening the page. */
.qs .qs-tiles > * { min-width: 0; }
.qs .qs-tile-name { min-width: 0; }
.qs .qs-tile-name b { overflow-wrap: break-word; -webkit-hyphens: auto; hyphens: auto; }

/* Hero text stays readable on bright or busy photos. */
.qs .qs-hero:not(.qs-hero--plain) h1, .qs .qs-hero:not(.qs-hero--plain) p { text-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 2px 18px rgba(0, 0, 0, .25); }
@container qs (min-width: 641px) {
	:where(.qs) .qs-hero .qs-slides::after { background: linear-gradient(90deg, rgba(0, 0, 0, .66) 0%, rgba(0, 0, 0, .4) 45%, rgba(0, 0, 0, .06) 80%); }
}
/* Small icons in card details follow the text colour on dark bands. */
.qs .qs-section--latest .qs-card-body svg { color: currentColor; }
