/* Structural defaults. Page and component styles own their layouts and colours. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
body { margin: 0; font-family: "Cairo", Arial, sans-serif; line-height: 1.7; }
:where(button, input, select, textarea) { font: inherit; }
:where(button, summary, select) { cursor: pointer; }
:where(button:disabled, input:disabled, select:disabled) { cursor: not-allowed; }
:where(a) { color: inherit; text-decoration: none; }
:where(img, video) { max-inline-size: 100%; block-size: auto; vertical-align: middle; }
:where(svg) { vertical-align: middle; }
:where(h1, h2, h3, h4, p) { margin-block: 0 1rem; }
:where(h1, h2, h3, h4) { line-height: 1.4; }
:where(fieldset) { min-inline-size: 0; }
:where(textarea) { resize: vertical; }
:where(input, select, textarea) { min-inline-size: 0; }
:where(.container) { width: min(1180px, calc(100% - 32px)); margin-inline: auto; }
:where(.pill, .round-icon) { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
:where(.pill) { padding: 10px 18px; border: 1px solid transparent; text-align: center; }
:where(.round-icon) { inline-size: 44px; block-size: 44px; padding: 8px; }
:where(.ls-icon) { inline-size: 24px; block-size: 24px; flex-shrink: 0; }
:where(.visually-hidden, .sr-only) {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
/* Hidden controls and panels must stay out of layout, even inside flex/grid. */
[hidden] { display: none !important; }
.search-overlay:not(.open), .cart-drawer:not(.open), .lucky-modal:not(.open),
.scrim:not(.open) { display: none; }
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid #66001f; outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
