/* Brand primitives; inherited by every route. */
:root {
  --surface-page:#0a0a0a; --surface-card:#141414; --surface-panel:#191919;
  --text-primary:#f5f5f5; --text-secondary:#bdbdbd; --border-neutral:#424242;
  --accent:#a61f24; --accent-hover:#c52b31;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-6:24px; --space-8:32px; --space-12:48px; --space-18:72px; --space-24:96px;
  --radius-control:0px; --radius-card:0px; --radius-panel:0px; --radius-pill:0px;
  --page-max:none; --content-preferred:100%; --page-gutter:32px; --section-gap:72px;
  --sticky-header-height:88px; --red:var(--accent); --red-hover:var(--accent-hover);
  --gray:var(--text-secondary); --gray-light:var(--text-secondary); --radius:var(--radius-control);
}
body { background:var(--surface-page); color:var(--text-primary); font-size:16px; line-height:1.5; }
.container { width:100%; max-width:var(--page-max); margin-inline:auto; padding-inline:var(--page-gutter); }
/* Owner-directed square edges, including older component styles and vendor controls. */
*,*::before,*::after { border-radius:0!important; }
h1 { font-size:clamp(36px,4vw,56px); line-height:1.12; }
h2 { font-size:clamp(28px,3vw,40px); line-height:1.2; }
h3 { font-size:clamp(22px,2vw,28px); }
button,input,select,textarea { font:inherit; }
.btn { min-height:44px; border-radius:var(--radius-control); font-size:14px; letter-spacing:0; }
:focus-visible { outline:2px solid #fff; outline-offset:4px; }
.text-button { min-height:44px; border:0; background:transparent; color:var(--text-primary); text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.shop-field input,.shop-field select,.sort-control select { min-height:44px; padding:8px 12px; border:1px solid var(--border-neutral); border-radius:var(--radius-control); background:var(--surface-panel); color:var(--text-primary); }
.shop-dialog { border-radius:var(--radius-panel); }
.shop-dialog .dialog-top { position:sticky; top:0; z-index:5; background:#111; }
.quick-image { object-fit:contain; }
.quick-image.lifestyle { object-fit:cover; }
.header .icon-btn,.header .nav-dropdown-toggle { min-width:44px; min-height:44px; }
.header .nav-link,.header .nav-info > a { min-height:44px; display:inline-flex; align-items:center; }
.header .nav-link,.header .nav-link-sm { font-size:14px; }
.header .nav-left,.header .nav-right,.header .nav-info { gap:8px; }
.breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:14px; }
.footer a { display:inline-flex; align-items:center; min-height:44px; }
.header [aria-current="page"] { color:#fff; text-decoration:underline; text-decoration-color:#d9474b; text-underline-offset:8px; }
.cart-quantity button,.cart-remove { min-width:44px; min-height:44px; }
.cart-remove { font-size:14px; }
.cart-line img { width:86px; height:86px; object-fit:contain; background:var(--surface-card); }
.shop-help,.shop-notice,.cart-line-variant { font-size:14px; }
.search-content { display:grid; gap:24px; }
.search-content .btn { justify-self:start; }
@media(max-width:1023px) { :root { --page-gutter:24px; --section-gap:48px; } }
@media(max-width:767px) { :root { --page-gutter:16px; --section-gap:36px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
