/* ============================================================
   945 CLUB — COMPONENT STYLES & LUXURY DESIGN SYSTEM
   ============================================================ */

/* Announcement Promo Bar */
.promo {
  background: var(--grey);
  color: var(--ink2);
  font-size: 12px;
  text-align: center;
  padding: 10px 44px;
  position: relative;
  border-bottom: 1px solid var(--hair);
}
.promo b { color: var(--ink); font-weight: 600; }
.promo a { color: var(--blue); text-decoration: none; }
.promo a:hover { text-decoration: underline; }
.promo .x {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: var(--ink2);
  padding: 4px 8px;
  cursor: pointer;
  transition: opacity .2s;
}
.promo .x:hover { opacity: .7; }
.promo.hide { display: none; }

/* Sticky Navbar with Safe Area Support & Directional Scroll Slide Transition */
.navbar {
  position: sticky;
  top: 0;
  z-index: 900;
  height: calc(60px + env(safe-area-inset-top, 0px));
  padding-top: env(safe-area-inset-top, 0px);
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1), background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
  will-change: transform;
}
.navbar.nav-hidden {
  transform: translateY(-100%);
}
.navbar.stuck {
  border-bottom-color: rgba(0, 0, 0, 0.12);
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}
.navin {
  max-width: 100%;
  width: 100%;
  margin: 0;
  height: 100%;
  padding: 0 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.logo {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-decoration: none;
  line-height: 1;
  user-select: none;
  flex-shrink: 0;
}
.logo-main {
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -.03em;
  color: var(--ink);
}
.logo-sub {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .35em;
  color: var(--ink2);
  text-transform: uppercase;
  margin-top: 1px;
}
.nlinks {
  display: flex;
  gap: 4px;
  align-items: center;
  justify-content: center;
  flex: 1;
  margin: 0 16px;
}
.nlink {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.015em;
  padding: 0 14px;
  height: 60px;
  display: flex;
  align-items: center;
  color: #111111;
  opacity: 0.88;
  transition: opacity .15s, color .15s;
  white-space: nowrap;
  border-bottom: none;
  text-decoration: none;
}
.nlink:hover, .nlink.active {
  opacity: 1;
  color: #000000;
  font-weight: 700;
}
.nicons {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  flex-shrink: 0;
}
.nav-search-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f5f5f7;
  border-radius: 100px;
  height: 38px;
  padding: 0 16px;
  color: #707072;
  font-size: 14px;
  font-weight: 400;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background .2s, border-color .2s, width .25s ease;
  width: 170px;
  user-select: none;
  margin-right: 4px;
}
.nav-search-bar:hover {
  background: #e8e8ed;
  color: #111111;
}
.nav-search-bar svg {
  color: #111111;
  flex-shrink: 0;
}
.nav-search-bar .search-placeholder {
  font-size: 14px;
  color: #707072;
  letter-spacing: -0.01em;
}
.nicon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  opacity: 1;
  cursor: pointer;
  border: none;
  background: none;
  color: #111111;
  transition: background 0.18s cubic-bezier(0.16, 1, 0.3, 1), transform 0.15s ease;
}
.nicon:hover {
  background: #f5f5f7;
  transform: scale(1.05);
}
.nicon:active {
  transform: scale(0.95);
}
.nicon svg {
  width: 22px;
  height: 22px;
  stroke-width: 2.1;
  transition: transform 0.15s ease;
}
#accountBtn {
  width: auto;
  min-width: 44px;
  height: 44px;
  padding: 0 4px;
  border-radius: 980px;
}
.user-avatar-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #f5f5f7;
  padding: 7px 16px;
  border-radius: 980px;
  font-size: 14px;
  font-weight: 600;
  color: #111111;
  white-space: nowrap;
  border: 1px solid rgba(0, 0, 0, 0.06);
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.user-avatar-tag:hover {
  background: #e8e8ed;
  border-color: rgba(0, 0, 0, 0.12);
}
.user-avatar-tag svg {
  width: 18px !important;
  height: 18px !important;
  stroke-width: 2.2 !important;
}
.header-user-name {
  font-size: 14px;
  font-weight: 600;
  color: #111111;
  letter-spacing: -0.01em;
}
.badge {
  position: absolute;
  top: 1px;
  right: 1px;
  background: #111113;
  color: #ffffff;
  font-size: 11px;
  font-weight: 800;
  min-width: 18px;
  height: 18px;
  border-radius: 980px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4.5px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.22);
  pointer-events: none;
}
.burger {
  display: none;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: none;
  background: none;
  color: #111111;
  border-radius: 50%;
}
.burger:hover {
  background: #f5f5f7;
}

/* Apple-Style Mega Menu (Always sits cleanly underneath navbar) */
.mega {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 890;
  background: #ffffff;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s var(--ease);
  box-shadow: 0 24px 48px rgba(0,0,0,0.08);
}
.mega.open { max-height: 480px; }
.megain {
  max-width: 1024px;
  margin: 0 auto;
  padding: 28px 24px 34px;
  display: flex;
  gap: 48px;
}
.mega-col-primary {
  flex: 0 0 240px;
}
.mega-col-secondary {
  flex: 0 0 190px;
}
.mega-eyebrow {
  display: block;
  font-size: 11px;
  color: #86868b;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.mega-list-primary {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mega-list-primary li a {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.35;
  color: var(--ink);
  text-decoration: none;
  transition: opacity .15s, color .15s;
  display: inline-block;
}
.mega-list-primary li a:hover {
  color: #0071e3;
}
.mega-list-secondary {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.mega-list-secondary li a {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.35;
  color: #707072;
  text-decoration: none;
  padding: 2px 0;
  transition: opacity .15s, color .15s;
  display: inline-block;
}
.mega-list-secondary li a:hover {
  color: #111113;
}

/* Fullscreen Search Overlay */
/* Fullscreen Advanced Search Overlay */
/* ================= APPLE-STYLE SLIDE-DOWN SEARCH OVERLAY & HALF-BLUR ================= */
.searchov {
  position: fixed;
  inset: 0;
  z-index: 950;
  background: rgba(0, 0, 0, 0.44);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.searchov:not(.open) {
  visibility: hidden;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.searchov.open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* White top sliding dropdown drawer */
.searchbox {
  background: #ffffff;
  width: 100%;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 20px 48px -12px rgba(0, 0, 0, 0.16), 0 1px 2px rgba(0, 0, 0, 0.04);
  padding: 34px 0 36px;
  transform: translateY(-100%);
  transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
}

.searchov.open .searchbox {
  transform: translateY(0);
}

.searchbox-inner {
  max-width: 680px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}

/* Search Input Bar (Clean, No Underline) */
.search-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 0;
  border-bottom: none;
}

.search-input-icon {
  color: #86868b;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}

.search-input-wrapper input {
  flex: 1;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: -0.015em;
  border: none;
  outline: none;
  background: transparent;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: #1d1d1f;
  padding: 0;
}

.search-input-wrapper input::placeholder {
  color: #86868b;
  font-weight: 400;
}

.search-clear-btn {
  background: #f4f4f6;
  border: 1px solid rgba(0, 0, 0, 0.06);
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9.5px;
  cursor: pointer;
  color: #737373;
  transition: all 0.15s ease;
}
.search-clear-btn:hover {
  background: #e5e5e7;
  color: #111113;
}

.search-cancel-btn {
  background: none;
  border: none;
  font-size: 13px;
  font-weight: 400;
  color: #0071e3;
  padding: 4px 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.15s ease;
  font-family: inherit;
}
.search-cancel-btn:hover {
  opacity: 0.7;
}
.search-close-icon {
  display: none;
}

/* Parsed Tags */
.search-parsed-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.search-parsed-pill {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  background: rgba(0, 113, 227, 0.08);
  color: #0071e3;
  padding: 3px 10px;
  border-radius: 980px;
  letter-spacing: .04em;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* Sections */
.search-sec-wrap {
  margin-top: 22px;
}
.search-sec-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.search-sec-title {
  font-size: 12px;
  font-weight: 400;
  color: #86868b;
  letter-spacing: 0;
  text-transform: none;
}
.btn-clear-recent {
  background: none;
  border: none;
  font-size: 11.5px;
  font-weight: 400;
  color: #0071e3;
  cursor: pointer;
  padding: 0;
  transition: opacity 0.15s ease;
}
.btn-clear-recent:hover {
  opacity: 0.75;
  text-decoration: underline;
}

/* Apple-Style Quick Links Vertical List */
.search-quick-links-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.search-quick-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5.5px 0;
  font-size: 13px;
  font-weight: 500;
  color: #1d1d1f;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.15s ease, transform 0.15s ease;
}
.search-arrow-icon {
  color: #86868b;
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  transition: transform 0.15s ease, color 0.15s ease;
}
.search-quick-link:hover {
  color: #0071e3;
}
.search-quick-link:hover .search-arrow-icon {
  color: #0071e3;
  transform: translateX(2px);
}
.search-quick-text {
  flex: 1;
}
.search-recent-remove {
  color: #86868b;
  font-size: 11px;
  padding: 2px 6px;
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.15s ease;
}
.search-recent-remove:hover {
  color: #ff3b30;
  background: rgba(255, 59, 48, 0.1);
}

/* Matching Products Grid */
.search-products-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  max-height: 420px;
  overflow-y: auto;
  padding-right: 4px;
}
.search-product-hit {
  display: flex;
  gap: 12px;
  align-items: center;
  background: var(--grey);
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--hair);
  cursor: pointer;
  transition: transform .2s, border-color .2s;
  text-decoration: none;
  color: inherit;
}
.search-product-hit:hover {
  border-color: var(--ink);
  transform: translateY(-2px);
}
.search-hit-img {
  width: 52px;
  height: 52px;
  object-fit: contain;
  flex-shrink: 0;
}
.search-hit-info {
  flex: 1;
  min-width: 0;
}
.search-hit-brand {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--ink2);
}
.search-hit-name {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.search-hit-price {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  margin-top: 2px;
}
.search-hit-orig {
  font-size: 11px;
  color: var(--ink2);
  text-decoration: line-through;
  margin-left: 4px;
  font-weight: 500;
}

/* ============================================================
   MOBILE MENU DRAWER (QUIET LUXURY & REFINED MINIMALISM)
   ============================================================ */
.msheet {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  z-index: 895;
  background: #ffffff;
  padding: 18px 20px 48px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.28s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.28s;
}
.msheet.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.msheet-inner {
  max-width: 480px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Member Auth Card (Refined Apple VIP Card) */
.msheet-auth-card {
  background: #fafafc;
  border-radius: 16px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}
.msheet-auth-card:active {
  background: #f2f2f5;
}
.msheet-auth-left {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.msheet-avatar-circle {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #111111;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.msheet-avatar-circle svg {
  width: 17px;
  height: 17px;
}
.msheet-auth-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.msheet-auth-greeting {
  font-size: 14px;
  font-weight: 700;
  color: #111111;
  font-family: 'Outfit', -apple-system, sans-serif;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.msheet-auth-sub {
  font-size: 11.5px;
  color: #86868b;
  margin-top: 1px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.msheet-auth-cta {
  background: #111111;
  color: #ffffff;
  border: none;
  border-radius: 980px;
  padding: 7px 15px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: background 0.2s, transform 0.15s;
  white-space: nowrap;
  flex-shrink: 0;
}
.msheet-auth-cta:active {
  transform: scale(0.96);
  background: #2b2b2b;
}

/* Primary Navigation Hub (Clean Editorial Accordion System) */
.msheet-nav-section {
  display: flex;
  flex-direction: column;
}
.msheet-discovery-bar {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
}
.discovery-strip-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 8px;
  background: var(--plate, #f6f6f9);
  border: 1px solid var(--hair, rgba(0, 0, 0, 0.06));
  border-radius: 12px;
  font-family: 'Outfit', -apple-system, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ink);
  cursor: pointer;
  transition: background 0.15s ease, transform 0.1s ease, border-color 0.15s ease;
}
.discovery-strip-btn:active {
  transform: scale(0.97);
  background: var(--surface-tertiary, #ebecee);
}
.msheet-links-list {
  display: flex;
  flex-direction: column;
  background: transparent;
  border: none;
  box-shadow: none;
}
.msheet-acc-item {
  border-bottom: 1px solid var(--hair, rgba(0, 0, 0, 0.06));
}
.msheet-acc-item:last-child {
  border-bottom: none;
}
.msheet-acc-header {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 4px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: color 0.15s ease;
}
.msheet-acc-header:active {
  color: var(--ink);
}
.msheet-item-text {
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -0.025em;
  font-family: 'Outfit', -apple-system, sans-serif;
  color: var(--ink);
  line-height: 1.2;
}
.msheet-chevron {
  color: var(--ink3, #8e8e93);
  flex-shrink: 0;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.2s ease;
}
.msheet-acc-item.open .msheet-chevron {
  transform: rotate(90deg);
  color: var(--ink);
}

/* Sale Header Styling */
.msheet-sale-left {
  display: flex;
  align-items: center;
  gap: 10px;
}
.msheet-sale-item .msheet-item-text {
  color: #ff3b30;
}
.msheet-badge-red {
  background: rgba(255, 59, 48, 0.08);
  color: #ff3b30;
  font-size: 10px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 980px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Submenu Accordion Panel (Silky Grid-Template-Rows Expand) */
.msheet-submenu {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.28s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.28s;
  overflow: hidden !important;
  visibility: hidden;
}
.msheet-acc-item:not(.open) .msheet-submenu {
  grid-template-rows: 0fr !important;
  overflow: hidden !important;
  visibility: hidden !important;
  max-height: 0 !important;
  pointer-events: none !important;
}
.msheet-acc-item.open .msheet-submenu {
  grid-template-rows: 1fr;
  visibility: visible;
  overflow: visible;
}
.msheet-submenu-inner {
  min-height: 0;
  overflow: hidden;
  padding: 0 4px 0 14px;
  border-left: 2px solid transparent;
  margin-left: 6px;
  margin-bottom: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
  transition: padding 0.28s cubic-bezier(0.16, 1, 0.3, 1), margin-bottom 0.28s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.28s;
}
.msheet-acc-item.open .msheet-submenu-inner {
  padding: 4px 4px 14px 14px;
  border-left-color: rgba(0, 0, 0, 0.08);
  margin-bottom: 6px;
}
.dark .msheet-acc-item.open .msheet-submenu-inner {
  border-left-color: rgba(255, 255, 255, 0.12);
}
.msheet-sub-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 4px;
  text-decoration: none;
  color: var(--ink2);
  font-family: 'Outfit', -apple-system, sans-serif;
  font-size: 15.5px;
  font-weight: 500;
  letter-spacing: -0.01em;
  transition: color 0.15s ease, transform 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}
.msheet-sub-link:active {
  color: var(--ink);
  transform: translateX(4px);
}
.msheet-sub-link.is-primary {
  font-weight: 700;
  color: var(--ink);
  font-size: 16px;
}
.msheet-sub-arrow {
  color: #8e8e93;
  font-family: inherit;
  font-weight: 500;
  margin-right: 8px;
  display: inline-block;
  transition: transform 0.15s ease, color 0.15s ease;
}
.msheet-sub-link:active .msheet-sub-arrow {
  transform: translateX(3px);
  color: #111111;
}
.msheet-sub-heading {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #8e8e93;
  padding: 12px 4px 4px;
}

/* Quick Utilities Grid (Refined Dual Minimal Cards) */
.msheet-tools-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding-top: 4px;
}
.msheet-tool-card {
  background: var(--plate, #fafafc);
  border: 1px solid var(--hair, rgba(0, 0, 0, 0.06));
  border-radius: 14px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  text-align: left;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  width: 100%;
}
.msheet-tool-card:active {
  background: var(--surface-tertiary, #f2f2f5);
  transform: scale(0.98);
}
.msheet-tool-card svg {
  color: var(--ink);
  flex-shrink: 0;
}
.msheet-tool-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.msheet-tool-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  font-family: 'Outfit', -apple-system, sans-serif;
  line-height: 1.2;
}
.msheet-tool-sub {
  font-size: 11px;
  color: var(--ink2);
  margin-top: 2px;
}

/* Footer Trust Guarantee */
.msheet-footer-info {
  text-align: center;
  padding: 12px 12px 0;
  font-size: 11px;
  color: #999999;
  line-height: 1.5;
  letter-spacing: -0.01em;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
}

/* ============================================================
   CINEMATIC FULL-SCREEN VIDEO HERO SECTION
   ============================================================ */
.hero-cinematic {
  position: relative;
  width: 100%;
  min-height: calc(100vh - var(--nav) - 38px);
  max-height: 900px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 50% 40%, #ffffff 0%, #f6f6f9 100%);
  overflow: hidden;
  padding: 40px 24px 60px;
}

.hero-cinematic.hero-fullscreen-video {
  min-height: calc(100vh - var(--nav));
  height: 88vh;
  max-height: 1000px;
  background: #000000;
  padding: 40px 24px 80px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
}

@media (min-height: 800px) {
  .hero-cinematic.hero-fullscreen-video {
    height: calc(100vh - var(--nav));
  }
}

.hero-video-container {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  overflow: hidden;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  contain: strict;
}

.hero-video-element {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  transform: translate3d(-50%, -50%, 0);
  -webkit-transform: translate3d(-50%, -50%, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  object-fit: cover;
  pointer-events: none;
  will-change: opacity;
  transition: opacity 0.6s ease-in-out;
}

.hero-video-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.35) 0%,
    rgba(0, 0, 0, 0.1) 35%,
    rgba(0, 0, 0, 0.3) 65%,
    rgba(0, 0, 0, 0.72) 100%
  );
  z-index: 2;
  pointer-events: none;
}

.hero-fullscreen-video .hero-content {
  position: relative;
  z-index: 3;
  text-align: center;
  max-width: 900px;
  margin: 0 auto;
  pointer-events: none;
  transition: opacity 0.35s ease, transform 0.35s ease;
}

.hero-fullscreen-video .hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #ffffff;
  margin-bottom: 14px;
  background: rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  padding: 6px 18px;
  border-radius: 980px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35);
}

.hero-fullscreen-video .hero-title {
  font-size: clamp(44px, 8.5vw, 98px);
  font-weight: 900;
  letter-spacing: -.045em;
  line-height: 0.94;
  color: #ffffff;
  text-transform: uppercase;
  margin-bottom: 14px;
  text-shadow: 0 4px 28px rgba(0, 0, 0, 0.7), 0 2px 4px rgba(0, 0, 0, 0.9);
}

.hero-fullscreen-video .hero-subtitle {
  font-size: clamp(15px, 2vw, 20px);
  font-weight: 500;
  letter-spacing: -.01em;
  color: rgba(255, 255, 255, 0.94);
  max-width: 640px;
  margin: 0 auto 26px;
  line-height: 1.4;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.7);
}

.hero-fullscreen-video .hero-actions {
  display: flex;
  gap: 14px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

.hero-fullscreen-video .hero-pill-primary {
  background: #ffffff;
  color: #000000;
  padding: 13px 32px;
  border-radius: 980px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .01em;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  pointer-events: auto;
}

.hero-fullscreen-video .hero-pill-primary:hover {
  background: #f5f5f7;
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 14px 40px rgba(255, 255, 255, 0.3);
}

.hero-pill-watch {
  background: #ffffff;
  color: #000000;
  padding: 13px 26px;
  border-radius: 980px;
  font-size: 15px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: auto;
}

.hero-pill-watch:hover {
  background: #f5f5f7;
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 14px 40px rgba(255, 255, 255, 0.3);
}

/* Bottom Center Carousel Dots */
.hero-dots-nav {
  position: absolute;
  bottom: 26px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 10;
  pointer-events: auto;
}

.hero-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.45);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-dot:hover {
  background: rgba(255, 255, 255, 0.85);
}

.hero-dot.active {
  background: #ffffff;
  width: 22px;
  border-radius: 11px;
}

/* Bottom Right Controls */
.hero-controls-bar {
  position: absolute;
  bottom: 22px;
  right: 36px;
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 10;
  pointer-events: auto;
}

.hero-circle-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.88);
  color: #111111;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
  transition: all 0.2s ease;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.hero-circle-btn:hover {
  background: #ffffff;
  transform: scale(1.08);
}

@media (max-width: 768px) {
  .hero-controls-bar {
    right: 16px;
    bottom: 16px;
  }
  .hero-dots-nav {
    bottom: 20px;
  }
  .hero-fullscreen-video .hero-eyebrow {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(18, 18, 18, 0.75);
    border: 1px solid rgba(255, 255, 255, 0.25);
  }
  .hero-circle-btn {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(255, 255, 255, 0.95);
  }
}

/* ============================================================
   SHOP YOUR WAY / EDITORIAL ENTRY GRID
   ============================================================ */
.shop-your-way-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.shop-card {
  position: relative;
  height: 380px;
  border-radius: 18px;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px;
  background: var(--ink);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.shop-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}
.shop-card-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease), filter .3s;
}
.shop-card:hover .shop-card-img {
  transform: scale(1.08);
}
.shop-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.75) 100%);
  pointer-events: none;
}
.shop-card-content {
  position: relative;
  z-index: 2;
}
.shop-card-tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.8);
  display: block;
  margin-bottom: 4px;
}
.shop-card-title {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -.02em;
  color: #fff;
  line-height: 1.1;
  margin-bottom: 8px;
}
.shop-card-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  opacity: 0.9;
}
.shop-card:hover .shop-card-btn {
  text-decoration: underline;
}

/* ============================================================
   SPOTLIGHT INTERACTIVE SHOWROOM & RAIL
   ============================================================ */
.spotlight-pills-wrap {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 12px;
  margin-bottom: 24px;
  scrollbar-width: none;
}
.spotlight-pills-wrap::-webkit-scrollbar { display: none; }
.spotlight-pill {
  padding: 9px 20px;
  border-radius: 980px;
  font-size: 14px;
  font-weight: 600;
  background: var(--grey);
  color: var(--ink);
  border: 1px solid var(--hair);
  cursor: pointer;
  white-space: nowrap;
  transition: all .2s;
}
.spotlight-pill.active, .spotlight-pill:hover {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
.spotlight-rail-wrap {
  overflow-x: auto;
  padding: 12px 0 24px;
  scrollbar-width: none;
}
.spotlight-rail-wrap::-webkit-scrollbar { display: none; }
.spotlight-rail {
  display: flex;
  gap: 20px;
  min-width: 100%;
}
.spotlight-card {
  flex: 0 0 320px;
  background: #fff;
  border: 1px solid var(--hair);
  border-radius: 20px;
  padding: 24px;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .3s;
}
.spotlight-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: 0 20px 44px rgba(0,0,0,0.08);
  border-color: rgba(0,0,0,0.15);
}
.spotlight-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.spotlight-card-badge {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--blue);
}
.spotlight-card-brand {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  color: var(--ink2);
}
.spotlight-card-img-wrap {
  width: 100%;
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 18px 0;
  overflow: hidden;
}
.spotlight-card-img {
  max-width: 90%;
  max-height: 160px;
  object-fit: contain;
  transition: transform .4s var(--ease);
}
.spotlight-card:hover .spotlight-card-img {
  transform: scale(1.1) rotate(-3deg);
}
.spotlight-card-title {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--ink);
  margin-bottom: 4px;
}
.spotlight-card-sub {
  font-size: 13px;
  color: var(--ink2);
  margin-bottom: 12px;
}
.spotlight-card-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--grey);
  padding-top: 12px;
}
.spotlight-card-price {
  font-size: 16px;
  font-weight: 800;
  color: var(--ink);
}

/* ============================================================
   BEYOND THE SHOE: APPAREL SHOWCASE
   ============================================================ */
#apparel .wrap {
  max-width: 1260px;
  width: 100%;
  padding: 0 clamp(16px, 2.4vw, 36px);
}
.apparel-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 395px));
  justify-content: center;
  gap: 16px;
}
.apparel-card {
  position: relative;
  height: 402px;
  border-radius: 16px;
  overflow: hidden;
  background: var(--grey);
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px 20px;
  border: 1px solid var(--hair);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.apparel-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.14);
}
.apparel-card-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease);
}
/* Individual card framing for optimal garment visibility */
.apparel-card.app-tshirts .apparel-card-img { object-position: center 18%; }
.apparel-card.app-hoodies .apparel-card-img { object-position: center 10%; }
.apparel-card.app-jackets .apparel-card-img { object-position: center 12%; }
.apparel-card.app-hoodies-jackets .apparel-card-img { object-position: center 12%; }
.apparel-card.app-shorts .apparel-card-img  { object-position: center 28%; }
.apparel-card.app-pants .apparel-card-img   { object-position: center 25%; }
.apparel-card.app-bras .apparel-card-img    { object-position: center 14%; }
.apparel-card.app-accessories .apparel-card-img { object-position: center 20%; }

/* Soft background tints for seamless loading and borders */
.apparel-card.app-tshirts { background: #faf8f5; }
.apparel-card.app-hoodies { background: #f8f6f0; }
.apparel-card.app-jackets { background: #f4f6f8; }
.apparel-card.app-hoodies-jackets { background: #f6f7f9; }
.apparel-card.app-shorts  { background: #f1f4f8; }
.apparel-card.app-pants   { background: #f5f5f5; }
.apparel-card.app-bras    { background: #f7f6f8; }
.apparel-card.app-accessories { background: #f5f6f8; }

.apparel-card:hover .apparel-card-img {
  transform: scale(1.05);
}
.apparel-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(15, 17, 21, 0) 0%,
    rgba(15, 17, 21, 0.02) 40%,
    rgba(15, 17, 21, 0.32) 68%,
    rgba(15, 17, 21, 0.82) 100%
  );
  pointer-events: none;
  transition: background .35s var(--ease);
}
.apparel-card:hover .apparel-card-overlay {
  background: linear-gradient(
    180deg,
    rgba(15, 17, 21, 0) 0%,
    rgba(15, 17, 21, 0.04) 36%,
    rgba(15, 17, 21, 0.40) 66%,
    rgba(15, 17, 21, 0.88) 100%
  );
}
.apparel-card-content {
  position: relative;
  z-index: 2;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.apparel-card-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.92);
  margin-bottom: 2px;
  display: block;
  text-shadow: 0 1px 4px rgba(0,0,0,0.5);
}
.apparel-card-title {
  font-family: 'Outfit', sans-serif;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: 1.15;
  color: #fff;
  margin-bottom: 6px;
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.apparel-card-sub {
  font-size: 14px;
  color: rgba(255,255,255,0.85);
  margin-bottom: 16px;
  text-shadow: 0 1px 4px rgba(0,0,0,0.4);
}
.apparel-card-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: rgba(255,255,255,0.22);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 6px 16px;
  border-radius: 980px;
  border: 1px solid rgba(255,255,255,0.35);
  transition: background .2s, color .2s, transform .2s;
}
.apparel-card:hover .apparel-card-btn {
  background: #fff;
  color: var(--ink);
  transform: translateX(3px);
}

/* Sections */
.sec { padding: 76px 0; }
.sec.tight { padding: 50px 0; }
.sec.grey { background: var(--grey); }
.sechead { margin-bottom: 32px; }
.sechead .h2 { margin-bottom: 6px; }
.sechead .row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

/* Luxury Section Kicker Badges */
.sechead-kicker {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #111113;
  background: #f4f4f7;
  border: 1px solid rgba(0, 0, 0, 0.06);
  padding: 5px 12px;
  border-radius: 999px;
  margin-bottom: 10px;
}
.sechead-kicker-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #0071e3;
  flex-shrink: 0;
}
.sechead-kicker-trending .sechead-kicker-dot {
  background: #10b981;
  box-shadow: 0 0 0 2.5px rgba(16, 185, 129, 0.22);
}

/* Luxury Section Action Links & Circular Arrow Controls */
.sechead-action-group {
  display: flex;
  align-items: center;
  gap: 12px;
}
.sechead-action-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13.5px;
  font-weight: 700;
  color: #111113;
  text-decoration: none;
  letter-spacing: -0.01em;
  padding: 8px 18px;
  border-radius: 980px;
  background: #f6f6f9;
  border: 1px solid rgba(0, 0, 0, 0.08);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.sechead-action-link:hover {
  background: #111113;
  color: #ffffff;
  border-color: #111113;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}
.sechead-action-link svg {
  transition: transform 0.2s ease;
}
.sechead-action-link:hover svg {
  transform: translateX(3px);
}
.arrows {
  display: flex;
  align-items: center;
  gap: 8px;
}
.arw {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: #ffffff;
  color: #111113;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}
.arw:hover {
  background: #111113;
  color: #ffffff;
  border-color: #111113;
  transform: scale(1.06);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}
.arw:active {
  transform: scale(0.96);
}

/* Matching Container for Trending (reduced by 30% for refined card sizing) */
#trending .wrap {
  max-width: 1260px;
  width: 100%;
  padding: 0 clamp(16px, 2.4vw, 36px);
}
@media (max-width: 768px) {
  #trending .wrap {
    padding: 0 14px;
  }
}
@media (max-width: 600px) {
  .sechead-action-group {
    width: 100%;
    justify-content: space-between;
    margin-top: 6px;
  }
  .sechead-action-link {
    font-size: 12.5px;
    padding: 6px 14px;
  }
  .arw {
    width: 34px;
    height: 34px;
  }
}

/* ============================================================
   SHOP BY BRAND SECTION (LUXURY 3D PEDESTAL STAGE)
   ============================================================ */
.brand-stage-sec {
  padding: 40px 0 54px;
  background: var(--surface, #f8f9fa);
  overflow: hidden;
}
.brand-stage-wrap {
  max-width: var(--max, 1240px);
  margin: 0 auto;
}
.brand-stage-box {
  position: relative;
  width: 100%;
  aspect-ratio: 852 / 382;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 16px 44px -8px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.04);
  background: #aabccb;
  border: 1px solid rgba(0, 0, 0, 0.08);
}
.brand-stage-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  user-select: none;
  -webkit-user-drag: none;
}
.stage-pedestal-link {
  position: absolute;
  border-radius: 16px;
  cursor: pointer;
  text-decoration: none;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 8px;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  outline: none;
  z-index: 2;
}
.stage-hover-glow {
  position: absolute;
  inset: 0;
  border-radius: 16px;
  background: radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 75%);
  opacity: 0;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
}
.stage-pedestal-link:hover {
  transform: translateY(-4px);
}
.stage-pedestal-link:hover .stage-hover-glow {
  opacity: 1;
}
.stage-brand-tag {
  position: absolute;
  top: -24px;
  background: rgba(15, 17, 21, 0.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 4px 11px;
  border-radius: 999px;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
  transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.18);
}
.stage-brand-tag .stage-arr {
  font-size: 12px;
  margin-left: 2px;
  opacity: 0.8;
}
.stage-pedestal-link:hover .stage-brand-tag {
  opacity: 1;
  transform: translateY(0);
}
.stage-pedestal-link:focus-visible {
  outline: 2px solid #0071e3;
  outline-offset: 3px;
}

/* Simple & Premium Explore All Products Button */
.stage-cta-btn {
  position: absolute;
  bottom: 6.8%;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 12px 28px;
  background: rgba(18, 20, 24, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #ffffff;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.28), 0 2px 6px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.18);
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  z-index: 5;
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s ease, box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s ease;
  white-space: nowrap;
  user-select: none;
}
.stage-cta-btn:hover {
  background: #1e222a;
  color: #ffffff;
  transform: translateX(-50%) translateY(-2px);
  border-color: rgba(255, 255, 255, 0.32);
  box-shadow: 0 14px 32px -4px rgba(0, 0, 0, 0.38), 0 0 20px rgba(255, 255, 255, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.28);
}
.stage-cta-arrow {
  display: inline-block;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.stage-cta-btn:hover .stage-cta-arrow {
  transform: translateX(3px);
}
.stage-cta-btn:active {
  transform: translateX(-50%) scale(0.98);
}
.stage-cta-btn:focus-visible {
  outline: 2px solid #0071e3;
  outline-offset: 3px;
}

/* Legacy Brands Grid Fallback */
.brands-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}
.brand-card {
  background: #ffffff;
  border-radius: 18px;
  border: 1px solid #eef0f4;
  padding: 22px 18px 18px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 380px;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease;
}
.brand-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 36px -6px rgba(0, 0, 0, 0.12), 0 8px 18px -4px rgba(0, 0, 0, 0.06);
  border-color: rgba(0, 0, 0, 0.12);
}
.brand-card-top { margin-bottom: 8px; }
.brand-badge {
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .08em;
  color: #00875a;
  text-transform: uppercase;
  display: block;
  margin-bottom: 6px;
}
.brand-title {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -.02em;
  margin: 0 0 4px;
  color: #0f1115;
  line-height: 1.1;
}
.brand-sub {
  font-size: 12px;
  color: #64748b;
  margin: 0;
  line-height: 1.35;
}
.brand-card-img-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 12px 0 14px;
  min-height: 140px;
  max-height: 150px;
}
.brand-card-img {
  width: 100%;
  max-height: 145px;
  object-fit: contain;
  border-radius: 8px;
  transition: transform .35s ease;
}
.brand-card:hover .brand-card-img {
  transform: scale(1.03);
}
.brand-card-bottom {
  display: flex;
  justify-content: center;
  align-items: center;
  border-top: 1px solid #edf0f3;
  padding-top: 14px;
  margin-top: auto;
}
.brand-card-bottom .lnk {
  font-size: 13px;
  font-weight: 700;
  color: #0071e3;
  text-align: center;
}

/* ============================================================
   SHOP BY PURPOSE (COMPACT CATEGORY GRID)
   ============================================================ */
.purpose-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.purpose-card {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  min-height: 220px;
  padding: 22px 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-decoration: none;
  color: inherit;
  border: 1px solid var(--hair);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .3s;
}
.purpose-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 32px rgba(0,0,0,.06);
  border-color: rgba(0,0,0,0.15);
}
.purpose-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--ink2);
  text-transform: uppercase;
}
.purpose-title {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -.02em;
  margin-top: 4px;
  color: var(--ink);
}
/* The image is absolutely positioned at right:-5% with width:65%, so its box
   starts at ~40% of the card. The text block was unconstrained and .purpose-desc
   used a fixed 160px cap that does not scale down as the card narrows, so the
   description ran under the shoe ("ZoomX, BOOST, NITR|", "Turf boots, jerseys &
   club|"). Constrain the TEXT COLUMN as a percentage instead, and lift it above
   the image. Card size, background, hover lift and image animation are untouched. */
.purpose-card > div {
  position: relative;
  z-index: 1;
  max-width: 54%;
}
.purpose-desc {
  font-size: 12px;
  color: var(--ink2);
  margin-top: 3px;
  max-width: 100%;
}
.purpose-img {
  position: absolute;
  right: -5%;
  bottom: 5%;
  width: 65%;
  max-height: 120px;
  object-fit: contain;
  filter: drop-shadow(0 8px 18px rgba(0,0,0,.1));
  transition: transform .4s var(--ease);
}
.purpose-card:hover .purpose-img {
  transform: scale(1.1) translateX(-6px) rotate(-2deg);
}
/* Purpose card — semantic background palette */
.purpose-card.pur-running    { background: #f2f0f8; } /* pale lavender */
.purpose-card.pur-basketball { background: #fdf0f0; } /* warm blush */
.purpose-card.pur-training   { background: #f0f7f2; } /* pale sage */
.purpose-card.pur-football   { background: #f0f3f7; } /* soft cool grey */
.purpose-card.pur-gym        { background: #faf8f2; } /* warm ivory */
.purpose-card.pur-lifestyle  { background: #f8f5ef; } /* light sand */
.purpose-card.pur-outdoor    { background: #f3f4f0; } /* pale stone */
.purpose-card.pur-slides     { background: #eff5fb; } /* soft pale blue */
/* Legacy fallbacks kept for any other uses */
.purpose-card.a { background: #f4f6fb; }
.purpose-card.b { background: #fbf8f2; }
.purpose-card.c { background: #f2f8f5; }
.purpose-card.d { background: #fdf4f4; }
.purpose-card.e { background: #f7f7fa; }

/* ============================================================
   TRENDING CAROUSEL & PRODUCT CARDS
   ============================================================ */
.railwrap { position: relative; }
.trend-rail {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 4px 24px 24px;
  margin: 0 -24px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.trend-rail::-webkit-scrollbar { display: none; }
.trend-rail .pcard {
  flex: 0 0 clamp(240px, 22vw, 290px);
  min-width: 0;
  scroll-snap-align: start;
}

/* ============================================================
   NEW DROPS & TOP PICKS: EDITORIAL CATEGORY SHOWCASE
   ============================================================ */
.trend-editorial-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 395px));
  justify-content: center;
  gap: 16px;
}
.trend-editorial-card {
  position: relative;
  height: 402px;
  border-radius: 16px;
  overflow: hidden;
  background: #0f1115;
  text-decoration: none;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px 20px;
  border: 1px solid var(--hair);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.trend-editorial-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.16);
}
.trend-editorial-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease);
}
.trend-card-shoes .trend-editorial-img {
  object-position: center center;
}
.trend-card-apparel .trend-editorial-img {
  object-position: center top;
}
.trend-card-accessories .trend-editorial-img {
  object-position: center 60%;
}
.trend-editorial-card:hover .trend-editorial-img {
  transform: scale(1.04);
}
.trend-editorial-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(12, 14, 18, 0) 0%,
    rgba(12, 14, 18, 0.04) 40%,
    rgba(12, 14, 18, 0.45) 72%,
    rgba(12, 14, 18, 0.88) 100%
  );
  pointer-events: none;
  transition: background .35s var(--ease);
}
.trend-editorial-card:hover .trend-editorial-overlay {
  background: linear-gradient(
    180deg,
    rgba(12, 14, 18, 0) 0%,
    rgba(12, 14, 18, 0.08) 36%,
    rgba(12, 14, 18, 0.52) 68%,
    rgba(12, 14, 18, 0.92) 100%
  );
}
.trend-editorial-content {
  position: relative;
  z-index: 2;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.trend-editorial-tag {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: 1.15;
  color: #fff;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.7);
  margin: 0;
}
.trend-editorial-title {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -.01em;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.88);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
  margin: 0;
}
.trend-editorial-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 6px 18px;
  border-radius: 980px;
  background: #fff;
  color: #0c0e12;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: -.01em;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
  margin-top: 4px;
  transition: transform .2s var(--ease), background .2s var(--ease), color .2s var(--ease);
}
.trend-editorial-btn svg {
  width: 11px;
  height: 11px;
  transition: transform .2s var(--ease);
}
.trend-editorial-card:hover .trend-editorial-btn {
  background: #f0f0f0;
  color: #000;
  transform: scale(1.04);
}
.trend-editorial-card:hover .trend-editorial-btn svg {
  transform: translateX(3px);
}

/* ============================================================
   PREMIUM NIKE PRODUCT CARD (WISHLIST, COLOR DOTS, SIZE HOVER)
   ============================================================ */
.pcard {
  background: transparent;
  border: none;
  padding: 0;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  position: relative;
  transition: transform .25s ease, opacity .2s ease;
  /* Removed content-visibility:auto — causes layout jump/stutter on scroll */
  contain: layout style;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  will-change: auto;
}
.pcard:hover {
  opacity: 0.97;
}
/* Suppress hover re-computation on all cards while page is scrolling */
body[style*="--scroll-pe"] .pcard {
  pointer-events: none;
}

.pcard-plate {
  background: #f6f6f8;
  border-radius: 16px;
  padding: 8px;
  position: relative;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  min-height: unset;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s ease;
}

/* Dual Image Media Stage */
.pcard-img-wrap {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pcard-art {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  /* Removed mix-blend-mode:multiply — forces GPU compositing per-card, heavy overdraw */
  transition: transform .35s cubic-bezier(0.16, 1, 0.3, 1);
  filter: none;
}
.pcard:hover .pcard-art {
  transform: scale(1.05);
}
.pcard-art-primary {
  opacity: 1;
  position: relative;
  z-index: 1;
}
.pcard-art-secondary {
  position: absolute;
  inset: 0;
  margin: auto;
  opacity: 0;
  z-index: 2;
  transform: scale(0.98);
}
.pcard:hover .pcard-art-primary.has-sec {
  opacity: 0;
}
.pcard:hover .pcard-art-secondary {
  opacity: 1;
  transform: scale(1.05);
}

/* Wishlist Heart Button (Top-Right Floating Circle) */
.pcard-wish-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  border: 1px solid rgba(0,0,0,0.04);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #111113;
  cursor: pointer;
  z-index: 6;
  transition: transform .2s ease, box-shadow .2s ease;
}
.pcard-wish-btn:hover {
  transform: scale(1.12);
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}
.pcard-wish-btn svg {
  width: 18px;
  height: 18px;
  stroke: #111113;
  stroke-width: 1.8;
  fill: none;
  transition: fill .2s ease, transform .2s ease;
}
.pcard-wish-btn.active svg {
  fill: #111113;
  stroke: #111113;
  transform: scale(1.08);
}

/* Product Tag (Exact Nike Burnt Orange) */
.pcard-tag-red {
  font-size: 14px;
  font-weight: 600;
  color: #9e3500;
  margin-top: 12px;
  line-height: 1.2;
}

/* Product Title */
.pname {
  font-size: 16px;
  font-weight: 600;
  color: #111113;
  margin-top: 3px;
  line-height: 1.3;
}

/* Product Subtitle / Description */
.pdesc {
  font-size: 15px;
  font-weight: 400;
  color: #707072;
  margin-top: 2px;
  line-height: 1.3;
}

/* Color Swatches and Dots */
.pcolor-swatches {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
}
.pcolor-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,0.15);
  display: inline-block;
  cursor: pointer;
  transition: transform .15s ease, border-color .15s ease;
}
.pcolor-dot:hover {
  transform: scale(1.25);
  border-color: #111113;
}
.pcolor-count-label {
  font-size: 13px;
  color: #707072;
  margin-left: 4px;
  font-weight: 400;
}

/* Price Details */
.pprice {
  font-size: 16px;
  font-weight: 600;
  color: #111113;
  margin-top: 8px;
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.pprice s {
  color: #707072;
  font-weight: 400;
  font-size: 14px;
}
.pcard-discount-tag {
  font-size: 11px;
  font-weight: 700;
  color: #007a3d;
  background: rgba(0,122,61,0.1);
  padding: 2px 6px;
  border-radius: 4px;
}

/* Card Footer with Add to Bag Button */
.pcard-footer {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
}
.pcard-footer .pprice {
  margin-top: 0;
}
.pcard-add-cart-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  height: 38px;
  padding: 0 14px;
  border-radius: 100px;
  background: #111113;
  color: #ffffff;
  border: 1px solid #111113;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: background .2s ease, transform .15s ease, box-shadow .2s ease;
  user-select: none;
}
.pcard-add-cart-btn:hover {
  background: #000000;
  box-shadow: 0 4px 12px rgba(0,0,0,0.18);
  transform: translateY(-1px);
}
.pcard-add-cart-btn:active {
  transform: scale(0.97);
}
.pcard-add-cart-btn svg {
  stroke-width: 2.2;
}

/* ============================================================
   OFFICIAL NIKE-STYLE PLP EXPERIENCE (IMAGES 3, 4, 5 ALIGNMENT)
   ============================================================ */
.plp-nike-section {
  display: block;
  padding: 16px 0 80px;
  background: #ffffff;
}
.wrap-wide {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 48px;
}
@media (max-width: 900px) {
  .wrap-wide { padding: 0 20px; }
}

/* Nike Breadcrumb */
/* Nike Breadcrumb & Back Navigation */
.nike-plp-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  font-size: 13px;
  font-weight: 500;
  color: #707072;
}

.nike-crumb-home {
  color: #707072;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.15s ease;
}
.nike-crumb-home:hover {
  color: #111111;
  text-decoration: underline;
}
.nike-crumb-sep {
  color: #cccccc;
  font-size: 11px;
}
.nike-crumb-current {
  color: #111111;
  font-weight: 600;
}

/* PLP Top Bar (Static Flow on Desktop) */
.nike-plp-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding: 8px 0 16px;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}
.nike-plp-title-wrap {
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.nike-plp-title {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #111113;
  margin: 0;
  line-height: 1.15;
}
.nike-plp-count {
  font-size: 14px;
  font-weight: 600;
  color: #707072;
  background: #f4f4f5;
  padding: 3px 10px;
  border-radius: 980px;
  letter-spacing: -0.01em;
}
.nike-plp-controls {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Luxury Filter Toggle Button Pill */
.nike-toggle-filters-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: #111113;
  background: #ffffff;
  border: 1px solid #e5e5e7;
  border-radius: 980px;
  padding: 7px 16px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  user-select: none;
  position: relative;
}
.nike-toggle-filters-btn:hover {
  background: #f5f5f7;
  border-color: #111113;
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
}
.nike-toggle-filters-btn:active {
  transform: scale(0.97);
}
.nike-toggle-filters-btn .nike-toggle-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #111113;
}

/* Luxury Custom Sort Selector (Apple / Nike Inspired) */
.nike-sort-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  user-select: none;
}
.nike-sort-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  background: #ffffff;
  border: 1px solid #e5e5e7;
  border-radius: 980px;
  padding: 5px 12px;
  height: 32px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: #111113;
  cursor: pointer;
  outline: none;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  font-family: inherit;
  white-space: nowrap;
}
.nike-sort-btn:hover {
  background: #f8f8fa;
  border-color: #111113;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}
.nike-sort-btn:focus-visible {
  border-color: #111113;
  box-shadow: 0 0 0 2px rgba(17, 17, 19, 0.15);
}
.nike-sort-chevron {
  color: #111113;
  transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  flex-shrink: 0;
}
.nike-sort-btn[aria-expanded="true"] .nike-sort-chevron {
  transform: rotate(180deg);
}

/* Dropdown Menu Box (Small, Compact, Luxury Glassmorphism) */
.nike-sort-dropdown {
  position: absolute;
  top: calc(100% + 5px);
  right: 0;
  min-width: 170px;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  padding: 4px;
  box-shadow: 0 10px 28px -4px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.04);
  z-index: 120;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px) scale(0.97);
  transform-origin: top right;
  transition: opacity 0.18s cubic-bezier(0.16, 1, 0.3, 1), transform 0.18s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.18s ease;
  pointer-events: none;
}
.nike-sort-dropdown.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* Dropdown Option Items */
.nike-sort-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 9px;
  font-size: 12px;
  font-weight: 500;
  color: #48484a;
  border-radius: 7px;
  cursor: pointer;
  transition: background 0.12s ease, color 0.12s ease;
  white-space: nowrap;
}
.nike-sort-option:hover {
  background: #f4f4f6;
  color: #111113;
}
.nike-sort-option.active {
  background: #f0f0f2;
  color: #111113;
  font-weight: 600;
}
.nike-sort-check {
  display: none;
  color: #111113;
  margin-left: 8px;
  flex-shrink: 0;
}
.nike-sort-option.active .nike-sort-check {
  display: block;
}

/* 2-Column Grid Layout */
.nike-plp-body {
  display: grid;
  grid-template-columns: 230px 1fr;
  gap: 36px;
  align-items: stretch; /* Allows sidebar to stick along the entire height of the product grid */
  transition: all 0.3s ease;
}
.nike-plp-body.filters-hidden {
  grid-template-columns: 0px 1fr;
  gap: 0;
}
.nike-plp-body.filters-hidden .nike-sidebar {
  opacity: 0;
  pointer-events: none;
  transform: translateX(-30px);
  width: 0;
  overflow: hidden;
  padding: 0;
}

/* ============================================================
   PREMIUM COMPACT NIKE-GRADE PLP FILTER SIDEBAR
   ============================================================ */
.nike-sidebar {
  position: sticky;
  top: calc(var(--nav) + 16px);
  align-self: flex-start;
  max-height: calc(100vh - var(--nav) - 32px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 14px;
  padding-bottom: 32px;
  /* Only transition opacity/width — animating 'top' triggers layout on every frame */
  transition: opacity 0.3s ease, width 0.3s ease;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.navbar.nav-hidden ~ #catalogView .nike-sidebar {
  top: 16px;
  max-height: calc(100vh - 32px);
}
.nike-sidebar::-webkit-scrollbar {
  display: none;
  width: 0;
}

/* Sidebar Top Header & Reset Button */
.nike-sidebar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 10px;
  margin-bottom: 4px;
  border-bottom: 1px solid #e5e5e7;
}
.nike-sidebar-title-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
}
.nike-sidebar-heading {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #111113;
}
.nike-active-filter-count {
  font-size: 10px;
  font-weight: 700;
  background: #111113;
  color: #ffffff;
  padding: 1px 6px;
  border-radius: 980px;
  line-height: 1.2;
}
.nike-reset-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #f4f4f5;
  border: 1px solid #e5e5e7;
  color: #111113;
  font-size: 12px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 980px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
  pointer-events: auto !important;
  user-select: none;
}
.nike-reset-btn:hover {
  background: #111113;
  color: #ffffff;
  border-color: #111113;
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(0,0,0,0.12);
}
.nike-reset-btn:active {
  transform: scale(0.96);
}
.nike-reset-btn svg {
  width: 11px;
  height: 11px;
  transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.nike-reset-btn:hover svg {
  transform: rotate(-180deg);
}
.nike-reset-btn.has-filters {
  background: #111113;
  color: #ffffff;
  border-color: #111113;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.nike-reset-btn.has-filters:hover {
  background: #2c2c2e;
  border-color: #2c2c2e;
}

.nike-sidebar-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.nike-sidebar-close-btn {
  display: none;
  background: #f4f4f5;
  border: none;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 700;
  color: #111113;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s ease;
}
.nike-sidebar-close-btn:hover {
  background: #e5e5ea;
}
.nike-sidebar-mobile-footer {
  display: none;
}
.nike-sidebar-body {
  display: block;
}

/* Accordion Filters (Compact & Refined) */
.nike-accordion-item {
  border-top: 1px solid #f0f0f2;
  padding: 8px 0;
}
.nike-accordion-item:first-of-type {
  border-top: none;
}
.nike-accordion-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  background: none;
  border: none;
  font-size: 13.5px;
  font-weight: 600;
  color: #111113;
  cursor: pointer;
  text-align: left;
  padding: 2px 0;
  transition: color 0.15s ease;
}
.nike-accordion-header:hover {
  color: #000000;
}
.nike-acc-icon {
  transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
  color: #707072;
  width: 12px;
  height: 12px;
}
.nike-accordion-item.open .nike-acc-icon {
  transform: rotate(180deg);
  color: #111113;
}
.nike-accordion-content {
  display: none;
  padding-top: 4px;
}
.nike-accordion-item.open .nike-accordion-content {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

/* Premium Custom Checkboxes (Compact 15px) */
.nike-checkbox-label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 3.5px 6px;
  margin: 0 -6px;
  border-radius: 6px;
  cursor: pointer;
  user-select: none;
  position: relative;
  transition: background 0.15s ease;
}
.nike-checkbox-label:hover {
  background: #f5f5f7;
}
.nike-checkbox-label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
}
.nike-custom-check {
  width: 15px;
  height: 15px;
  border-radius: 4px;
  border: 1.5px solid #d1d1d6;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.18s cubic-bezier(0.2, 0.8, 0.2, 1);
  box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}
.nike-checkbox-label:hover .nike-custom-check {
  border-color: #8e8e93;
}
.nike-checkbox-label input[type="checkbox"]:checked ~ .nike-custom-check {
  background: #111111;
  border-color: #111111;
  box-shadow: 0 2px 5px rgba(0,0,0,0.18);
}
.nike-custom-check svg {
  width: 9.5px;
  height: 9.5px;
  stroke: #ffffff;
  transform: scale(0);
  opacity: 0;
  transition: transform 0.18s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.15s ease;
}
.nike-checkbox-label input[type="checkbox"]:checked ~ .nike-custom-check svg {
  transform: scale(1);
  opacity: 1;
}
.nike-checkbox-text {
  font-size: 13px;
  font-weight: 400;
  color: #1d1d1f;
  line-height: 1.3;
  transition: color 0.15s ease, font-weight 0.15s ease;
  flex: 1;
}
.nike-checkbox-label input[type="checkbox"]:checked ~ .nike-checkbox-text {
  font-weight: 600;
  color: #000000;
}

/* Premium Compact Size Matrix */
.nike-size-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
  padding-top: 3px;
}
.nike-size-box {
  border: 1.2px solid #e5e5e7;
  border-radius: 6px;
  padding: 6px 3px;
  background: #ffffff;
  font-size: 12px;
  font-weight: 600;
  color: #1d1d1f;
  cursor: pointer;
  text-align: center;
  transition: all 0.18s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.nike-size-box:hover {
  border-color: #111113;
  background: #f8f8f9;
}
.nike-size-box.active {
  border-color: #111113;
  background: #111113;
  color: #ffffff;
  box-shadow: 0 3px 8px rgba(0,0,0,0.14);
  transform: translateY(-1px);
}

/* Active Filter Chips Bar Above PLP Grid */
.nike-active-chips-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0 0 16px;
  margin-bottom: 12px;
  border-bottom: 1px solid #f0f0f2;
}
.nike-active-chips-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.nike-active-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f4f4f5;
  border: 1px solid #e5e5e7;
  color: #111113;
  padding: 5px 12px;
  border-radius: 980px;
  font-size: 12.5px;
  font-weight: 550;
  cursor: pointer;
  transition: all 0.15s ease;
}
.nike-active-chip:hover {
  background: #e5e5ea;
  border-color: #d1d1d6;
}
.nike-active-chip-x {
  font-size: 11px;
  color: #707072;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgba(0,0,0,0.06);
  transition: all 0.15s ease;
}
.nike-active-chip:hover .nike-active-chip-x {
  background: #111113;
  color: #ffffff;
}
.nike-clear-all-chips-btn {
  background: none;
  border: none;
  color: #707072;
  font-size: 12.5px;
  font-weight: 600;
  text-decoration: underline;
  cursor: pointer;
  padding: 4px 8px;
  transition: color 0.15s ease;
  margin-left: 4px;
}
.nike-clear-all-chips-btn:hover {
  color: #ff3b30;
}

/* Nike 4-Column Product Grid (25% smaller card size for all categories) */
.nike-main-grid-wrap {
  width: 100%;
}
.catalog-grid.nike-plp-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px 14px;
  width: 100%;
  box-sizing: border-box;
}
@media (max-width: 1200px) {
  .catalog-grid.nike-plp-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px 12px;
  }
}
@media (max-width: 768px) {
  .nike-plp-body {
    grid-template-columns: 1fr;
    gap: 0;
    width: 100%;
    box-sizing: border-box;
  }
  .nike-sidebar {
    display: none;
  }
  .catalog-grid.nike-plp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 10px;
    width: 100%;
    box-sizing: border-box;
  }
}

/* Exact Nike Product Card Styling (PLP Grid) */
.nike-plp-grid .pcard,
.catalog-grid .pcard {
  height: 100%;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  flex: 0 1 auto;
  display: flex;
  flex-direction: column;
  background: transparent;
  border: none;
  padding: 0;
  border-radius: 14px;
  cursor: pointer;
  position: relative;
  transition: transform 0.2s ease, opacity 0.2s ease;
  box-shadow: none;
  box-sizing: border-box;
}
.nike-plp-grid .pcard-plate,
.pcard-plate {
  width: 100%;
  aspect-ratio: 1 / 1;
  background: #f6f6f8;
  border-radius: 14px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  box-sizing: border-box;
  transition: background 0.2s ease;
}
.nike-plp-grid .pcard-img-wrap,
.pcard-img-wrap {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.nike-plp-grid .pcard-art,
.pcard-art {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  mix-blend-mode: multiply;
  filter: none;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.nike-plp-grid .pcard:hover .pcard-art,
.pcard:hover .pcard-art {
  transform: scale(1.05);
}
.nike-plp-grid .pcard-wish-btn,
.pcard-wish-btn {
  top: 8px;
  right: 8px;
  width: 30px;
  height: 30px;
  /* Removed backdrop-filter:blur — one blur pass per card × hundreds of cards = GPU killer */
  background: rgba(255, 255, 255, 0.96);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.10);
  border: 1px solid rgba(0,0,0,0.06);
}
.nike-plp-grid .pcard-wish-btn svg,
.pcard-wish-btn svg {
  width: 15px;
  height: 15px;
}
.nike-plp-grid .pcard-tag-red,
.pcard-tag-red {
  font-size: 11px;
  font-weight: 700;
  color: #9e3500;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-top: 8px;
  height: 16px;
  line-height: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}
.nike-plp-grid .pname,
.pname {
  font-size: 13.5px;
  font-weight: 700;
  color: #111113;
  margin-top: 2px;
  height: 18px;
  line-height: 18px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}
.nike-plp-grid .pdesc,
.pdesc {
  font-size: 11.5px;
  font-weight: 400;
  color: #707072;
  margin-top: 1px;
  height: 16px;
  line-height: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}
.nike-plp-grid .pcolor-swatches,
.pcolor-swatches {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  height: 18px;
  line-height: 18px;
  box-sizing: border-box;
}
.nike-plp-grid .pcolor-dot,
.pcolor-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,0.15);
  flex-shrink: 0;
}
.nike-plp-grid .pcolor-count-label,
.pcolor-count-label {
  font-size: 11px;
  color: #707072;
  margin-left: 2px;
  white-space: nowrap;
}
.nike-plp-grid .pcard-footer,
.pcard-footer {
  margin-top: auto;
  padding-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  box-sizing: border-box;
}
.nike-plp-grid .pprice,
.pprice {
  font-size: 14px;
  font-weight: 700;
  color: #111113;
  height: 20px;
  line-height: 20px;
  margin-top: 0;
  display: flex;
  align-items: baseline;
  gap: 4px;
  white-space: nowrap;
}
.nike-plp-grid .pcard-add-cart-btn,
.pcard-add-cart-btn {
  height: 34px;
  font-size: 12px;
  font-weight: 600;
  border-radius: 980px;
  background: #111113;
  color: #ffffff;
  padding: 0 10px;
  gap: 4px;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #111113;
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
  box-sizing: border-box;
}
.nike-plp-grid .pcard-add-cart-btn:active,
.pcard-add-cart-btn:active {
  transform: scale(0.96);
  background: #333333;
}
.nike-plp-grid .prating,
.nike-plp-grid .pbrand,
.nike-plp-grid .qa {
  display: none;
}
.active-chips-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 12px 0 16px;
  border-bottom: 1px solid var(--hair);
  margin-bottom: 20px;
}
.active-chips-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.active-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 980px;
  background: var(--ink);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity .2s;
}
.active-chip:hover { opacity: 0.85; }
.active-chip-close { font-size: 11px; margin-left: 2px; }
.clear-all-chips-btn {
  background: transparent;
  border: none;
  font-size: 13px;
  font-weight: 600;
  color: #ff3b30;
  cursor: pointer;
  padding: 4px 8px;
}
.clear-all-chips-btn:hover { text-decoration: underline; }

/* Filter Quick Bar */
.filter-bar {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 14px;
  margin-bottom: 26px;
  scrollbar-width: none;
  align-items: center;
}
.filter-bar::-webkit-scrollbar { display: none; }
.filter-pill {
  background: var(--grey);
  border: 1px solid transparent;
  color: var(--ink);
  padding: 8px 16px;
  border-radius: 980px;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  transition: all .2s ease;
}
.filter-pill:hover { background: #e8e8ed; border-color: var(--hair); }
.filter-pill.active {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
  font-weight: 600;
}
.filter-divider {
  display: inline-block;
  width: 1px;
  height: 20px;
  background: var(--hair);
  margin: 0 4px;
}
.sort-select {
  padding: 8px 14px;
  border: 1px solid var(--hair);
  border-radius: 980px;
  background: #fff;
  font-size: 13px;
  font-weight: 500;
  outline: none;
  cursor: pointer;
  color: var(--ink);
}

.catalog-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  width: 100%;
  box-sizing: border-box;
}

/* ============================================================
   FILTER DRAWER MODAL OVERLAY & SLIDING PANEL
   ============================================================ */
.filter-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(6px);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s var(--ease), visibility .3s;
  display: flex;
  justify-content: flex-end;
}
.filter-drawer-overlay.open {
  opacity: 1;
  visibility: visible;
}
.filter-drawer-panel {
  width: min(440px, 92vw);
  height: 100%;
  background: #fff;
  box-shadow: -10px 0 40px rgba(0,0,0,0.15);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .35s var(--ease);
}
.filter-drawer-overlay.open .filter-drawer-panel {
  transform: translateX(0);
}
.filter-drawer-header {
  padding: 24px 24px 18px;
  border-bottom: 1px solid var(--hair);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.filter-drawer-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--ink);
}
.filter-drawer-sub {
  font-size: 13px;
  color: var(--ink2);
  margin-top: 2px;
}
.filter-drawer-close-btn {
  background: var(--grey);
  border: none;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  transition: background .2s;
}
.filter-drawer-close-btn:hover { background: #e0e0e6; }
.filter-drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}
.filter-section {
  padding-bottom: 24px;
  border-bottom: 1px solid var(--hair);
  margin-bottom: 24px;
}
.filter-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.filter-sec-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 12px;
}
.filter-chips-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.filter-chip-label {
  cursor: pointer;
}
.filter-chip-label input { display: none; }
.filter-chip-label span {
  display: inline-block;
  padding: 7px 14px;
  border-radius: 980px;
  background: var(--grey);
  border: 1px solid var(--hair);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  transition: all .2s;
}
.filter-chip-label input:checked + span {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
  font-weight: 600;
}
.filter-size-group-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--ink2);
  text-transform: uppercase;
  margin-bottom: 8px;
}
.filter-size-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.filter-size-box {
  cursor: pointer;
}
.filter-size-box input { display: none; }
.filter-size-box span {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  border-radius: 8px;
  background: var(--grey);
  border: 1px solid var(--hair);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  transition: all .2s;
}
.filter-size-box input:checked + span {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
.filter-checkbox-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.filter-check-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
}
.filter-check-item input {
  accent-color: var(--ink);
  width: 16px;
  height: 16px;
}
.filter-drawer-footer {
  padding: 18px 24px;
  border-top: 1px solid var(--hair);
  display: flex;
  gap: 12px;
  background: #fff;
}
.filter-drawer-footer button {
  flex: 1;
}
.brand-hero-content { flex: 1; }
.brand-hero-img {
  width: min(260px, 35%);
  max-height: 150px;
  object-fit: contain;
  filter: drop-shadow(0 10px 20px rgba(0,0,0,.08));
}

/* ============================================================
   COMPACT FIT FINDER CTA BANNER
   ============================================================ */
.fit-banner {
  background: #fff;
  border-radius: 24px;
  border: 1px solid var(--hair);
  padding: 44px 36px;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 36px;
  align-items: center;
}
.fit-banner-brands {
  display: grid;
  gap: 10px;
}
.fit-brand-badge {
  background: var(--grey);
  border-radius: 12px;
  padding: 12px 18px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  border: 1px solid var(--hair);
}

/* ============================================================
   TRUST & BENEFITS
   ============================================================ */
.trust {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  text-align: center;
}
.trust .t h5 {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -.01em;
  margin-bottom: 4px;
  color: var(--ink);
}
.trust .t p {
  font-size: 13px;
  color: var(--ink2);
  line-height: 1.4;
}
.trust .ic {
  width: 32px;
  height: 32px;
  margin: 0 auto 10px;
  color: var(--accent);
}

/* ============================================================
   FOOTER
   ============================================================ */
footer {
  background: var(--grey);
  padding: 48px 0 28px;
  font-size: 13px;
  color: var(--ink2);
  border-top: 1px solid var(--hair);
}
.fcols {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 28px;
  padding-bottom: 28px;
}
.fcols h6 {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.fcols ul { list-style: none; display: grid; gap: 9px; }
.fcols a:hover { text-decoration: underline; color: var(--ink); }
.frule {
  border-top: 1px solid var(--hair);
  padding-top: 18px;
  font-size: 12px;
  color: var(--ink2);
}
.fbot {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  border-top: 1px solid var(--hair);
  margin-top: 14px;
  padding-top: 14px;
  font-size: 12px;
}
.fbot .fl { display: flex; gap: 16px; flex-wrap: wrap; }

/* ============================================================
   PREMIUM PRODUCT DETAIL PAGE (PDP) & 3D VIEWER STYLING
   ============================================================ */
.pv-modal-card {
  max-width: 1040px;
  max-height: 92vh;
  overflow-y: auto;
  border-radius: 24px;
  padding: 34px;
  background: #fff;
  position: relative;
}
.pv-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 36px;
  align-items: start;
}
.pv-gallery {
  position: sticky;
  top: 0;
  align-self: start;
}
.pv-media-stage-wrap {
  position: relative;
  background: var(--grey);
  border-radius: 20px;
  overflow: hidden;
  height: 380px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--hair);
}
.pv-3d-toggle-btn {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 12;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(10px);
  padding: 6px 14px;
  border-radius: 980px;
  border: 1px solid rgba(0,0,0,0.08);
  font-size: 11px;
  font-weight: 700;
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: all .2s;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.pv-3d-toggle-btn:hover {
  background: var(--ink);
  color: #fff;
}
.pv-3d-toggle-btn.active {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.pv-photo-stage {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.pv-photo-stage img {
  max-width: 90%;
  max-height: 290px;
  object-fit: contain;
  filter: drop-shadow(0 14px 28px rgba(0,0,0,0.12));
  transition: transform .3s var(--ease);
}
.pv-photo-stage:hover img {
  transform: scale(1.04);
}
.pv-3d-canvas-container {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 6;
  background: radial-gradient(circle at center, #f5f5f7 0%, #e8e8ed 100%);
}
.pv-3d-controls-hint {
  position: absolute;
  bottom: 12px;
  left: 14px;
  right: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  color: var(--ink2);
  pointer-events: auto;
}
.pv-3d-reset-btn {
  background: rgba(255,255,255,0.85);
  border: 1px solid var(--hair);
  border-radius: 980px;
  padding: 3px 10px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}
.pv-thumbnails {
  display: flex;
  gap: 10px;
  margin-top: 14px;
  overflow-x: auto;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.pv-thumbnails::-webkit-scrollbar { display: none; }
.pv-thumb-btn {
  border: 2px solid transparent;
  background: var(--grey);
  border-radius: 10px;
  padding: 3px;
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color .2s;
}
.pv-thumb-btn.active {
  border-color: var(--ink);
}
.pv-gallery-footer-badges {
  display: flex;
  justify-content: space-between;
  margin-top: 12px;
  font-size: 11px;
  font-weight: 600;
  color: var(--ink2);
}

/* Header & Details */
.pv-brand {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  color: var(--ink2);
  text-transform: uppercase;
}
.pv-stock-status-pill {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 980px;
  background: rgba(52,199,89,0.12);
  color: #248a3d;
}
.pv-stock-status-pill.out {
  background: rgba(255,59,48,0.12);
  color: #ff3b30;
}
.pv-stock-status-pill.low {
  background: rgba(255,149,0,0.12);
  color: #d97706;
}
.pv-title {
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--ink);
  line-height: 1.15;
  margin: 6px 0;
}
.pv-pricing-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-top: 8px;
}
.pv-price {
  font-size: 26px;
  font-weight: 800;
  color: var(--ink);
}
.pv-original-price {
  font-size: 16px;
  color: var(--ink2);
  font-weight: 500;
}
.pv-tax-inclusive {
  font-size: 12px;
  color: var(--ink2);
  margin-top: 4px;
}
.pv-rating-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  font-size: 13px;
}

/* Variant Switcher */
.pv-variant-block {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--hair);
}
.pv-variant-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
}
.pv-label {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--ink2);
}
.pv-color-name {
  font-weight: 700;
  color: var(--ink);
}
.pv-variant-options {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.pv-variant-card {
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid var(--hair);
  background: var(--grey);
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: all .2s;
}
.pv-variant-card.active {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
.pv-variant-swatch-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,0.15);
}

/* Sizing Selector */
.pv-size-block {
  margin-top: 18px;
}
.pv-size-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.pv-size-guide-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--blue);
  text-decoration: none;
}
.pv-size-guide-btn:hover { text-decoration: underline; }
.pv-size-stock-hint {
  font-size: 12px;
  font-weight: 600;
  color: var(--ink2);
  margin-top: 8px;
}

/* Actions */
.pv-actions {
  display: flex;
  gap: 10px;
  margin-top: 22px;
  align-items: center;
}
.pv-wish-btn {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  border: 1px solid var(--hair);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all .2s;
  color: var(--ink2);
  flex-shrink: 0;
}
.pv-wish-btn:hover {
  border-color: #ff2d55;
  color: #ff2d55;
}
.pv-wish-btn.active {
  background: rgba(255,45,85,0.08);
  border-color: #ff2d55;
  color: #ff2d55;
}
.pv-wish-btn svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

/* Guarantees */
.pv-guarantees-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 22px;
  background: var(--grey);
  padding: 16px 18px;
  border-radius: 14px;
  border: 1px solid var(--hair);
}
.pv-guarantee-item {
  display: flex;
  align-items: center;
  gap: 12px;
}
.pv-guarantee-item svg {
  color: var(--ink);
  flex-shrink: 0;
}
.pv-guarantee-item strong {
  font-size: 12px;
  color: var(--ink);
  display: block;
}
.pv-guarantee-item p {
  font-size: 11px;
  color: var(--ink2);
  margin: 0;
}

/* Specs */
.pv-specs-section {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--hair);
}
.pv-specs-table {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
  font-size: 12px;
}
.pv-spec-cell {
  background: var(--grey);
  padding: 10px 14px;
  border-radius: 8px;
}
.pv-spec-cell span {
  display: block;
  font-size: 11px;
  color: var(--ink2);
}
.pv-spec-cell strong {
  color: var(--ink);
}

/* Reviews Breakdown */
.pv-reviews-section {
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid var(--hair);
}
.pv-reviews-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}
.pv-reviews-score-card {
  display: flex;
  gap: 20px;
  align-items: center;
  background: var(--grey);
  padding: 16px;
  border-radius: 12px;
  margin-bottom: 16px;
}
.pv-score-big {
  font-size: 36px;
  font-weight: 900;
  color: var(--ink);
  line-height: 1;
}
.pv-star-bars {
  flex: 1;
  display: grid;
  gap: 4px;
}
.pv-bar-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
}
.pv-bar-track {
  flex: 1;
  height: 6px;
  background: var(--hair);
  border-radius: 4px;
  overflow: hidden;
}
.pv-bar-fill {
  height: 100%;
  background: #f5a623;
  border-radius: 4px;
}
.pv-review-card {
  padding: 12px 0;
  border-bottom: 1px solid var(--hair);
  font-size: 13px;
}
.pv-review-card:last-child { border-bottom: none; }
.pv-review-top {
  display: flex;
  justify-content: space-between;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 4px;
}
.pv-review-date { font-size: 11px; color: var(--ink2); font-weight: 400; }
.pv-review-comment { color: var(--ink2); line-height: 1.4; }

/* Related Products Rail */
.pv-related-section, .pv-recently-viewed-section {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--hair);
}
.pv-related-title {
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--ink);
  margin-bottom: 12px;
}
.pv-related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 18px;
}
.pv-related-card {
  background: var(--grey);
  border-radius: 10px;
  padding: 10px;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: transform .2s;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.pv-related-card:hover { transform: translateY(-3px); }
.pv-related-img {
  width: 100%;
  height: 70px;
  object-fit: contain;
  margin-bottom: 6px;
}
.pv-related-name {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pv-related-price {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink2);
  margin-top: 2px;
}

/* ============================================================
   MINIMAL NIKE SINGLE-LINE FOOTER
   ============================================================ */
.nike-footer {
  padding: 36px 0 44px;
  background: #ffffff;
  border-top: 1px solid #e5e5e5;
  margin-top: 48px;
}
.nike-footer-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 32px;
  font-size: 12px;
  color: #707072;
}
.nike-footer-copy {
  color: #707072;
  font-size: 12px;
  letter-spacing: -0.01em;
  font-weight: 400;
}
.nike-footer-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 24px;
}
.nike-footer-link {
  color: #707072;
  text-decoration: none;
  font-size: 12px;
  font-weight: 400;
  transition: color 0.15s ease;
}
.nike-footer-link:hover {
  color: #111111;
  text-decoration: underline;
}
/* ============================================================
   CUSTOMER UNIFIED AUTH & 9-SECTION ACCOUNT PORTAL STYLES
   ============================================================ */
/* ================= LUXURY CUSTOMER AUTH MODAL ================= */
.auth-box {
  max-width: 380px;
  width: min(380px, 92vw);
  padding: 22px 24px 20px;
  border-radius: 20px;
  background: #ffffff;
  box-shadow: 0 24px 64px -12px rgba(0, 0, 0, 0.22), 0 0 1px 1px rgba(0, 0, 0, 0.04);
  position: relative;
  box-sizing: border-box;
}

.auth-header-wrap {
  text-align: center;
  margin-bottom: 14px;
}

.auth-brand-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #86868b;
  margin-bottom: 3px;
}

.auth-main-title {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: #111113;
  margin: 0 0 3px 0;
  line-height: 1.2;
}

.auth-main-subtitle {
  font-size: 12px;
  color: #737373;
  line-height: 1.35;
  margin: 0;
}

/* Precision Segmented Tabs */
.auth-nav-tabs {
  display: flex;
  background: #f4f4f6;
  padding: 3.5px;
  border-radius: 11px;
  margin-bottom: 15px;
  gap: 3px;
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.auth-nav-tab {
  flex: 1;
  padding: 7px 12px;
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  color: #737373;
  border: none;
  background: transparent;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1);
  font-family: inherit;
  user-select: none;
}

.auth-nav-tab:hover {
  color: #111113;
}

.auth-nav-tab.active {
  background: #ffffff;
  color: #111113;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08), 0 0 1px rgba(0, 0, 0, 0.04);
  font-weight: 600;
}

.auth-flow-step {
  animation: fadeInStep .22s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes fadeInStep {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Form Controls Inside Auth Box */
.auth-box .form-group {
  margin-bottom: 11px;
}

.auth-box .form-group label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #666666;
  margin-bottom: 4px;
}

.auth-field-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
}

.auth-field-header label {
  margin-bottom: 0 !important;
}

.auth-forgot-link {
  font-size: 11px;
  font-weight: 600;
  color: #737373;
  text-decoration: none;
  transition: color 0.15s ease;
}

.auth-forgot-link:hover {
  color: #111113;
  text-decoration: underline;
}

.auth-box .form-control {
  width: 100%;
  height: 36px;
  padding: 0 11px;
  border: 1px solid #e5e5e7;
  border-radius: 9px;
  font-size: 12px;
  color: #111113;
  background: #ffffff;
  box-sizing: border-box;
  font-family: inherit;
  transition: all 0.15s ease;
}

.auth-box .form-control:focus {
  border-color: #111113;
  outline: none;
  box-shadow: 0 0 0 3px rgba(17, 17, 19, 0.08);
}

.auth-box .form-control::placeholder {
  color: #a1a1a6;
  font-size: 11.5px;
}

/* Password Input & Show Button */
.auth-pwd-wrap {
  position: relative;
}

.auth-pwd-wrap .form-control {
  padding-right: 50px;
}

.btn-toggle-pwd {
  position: absolute;
  right: 7px;
  top: 50%;
  transform: translateY(-50%);
  background: #f4f4f6;
  border: 1px solid rgba(0, 0, 0, 0.05);
  border-radius: 5px;
  font-size: 10.5px;
  font-weight: 600;
  color: #555558;
  cursor: pointer;
  padding: 3px 7px;
  transition: all 0.15s ease;
  font-family: inherit;
}

.btn-toggle-pwd:hover {
  background: #e8e8ed;
  color: #111113;
}

/* Submit Button */
.auth-submit-btn {
  width: 100%;
  height: 38px;
  margin-top: 5px;
  border-radius: 9px;
  background: #111113;
  color: #ffffff;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  border: 1px solid #111113;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1);
}

.auth-submit-btn:hover {
  background: #27272a;
  border-color: #27272a;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.auth-submit-btn:active {
  transform: translateY(0);
}

/* Footer Switcher Note */
.auth-footer-note {
  text-align: center;
  margin-top: 12px;
  font-size: 11.5px;
  color: #737373;
}

.auth-text-link {
  background: none;
  border: none;
  color: #111113;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  font-size: 11.5px;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.15s ease;
}

.auth-text-link:hover {
  opacity: 0.75;
}

/* Terms & Inline Errors */
.auth-terms-box {
  margin: 6px 0 8px;
}

.auth-checkbox-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  color: #737373;
  cursor: pointer;
}

.auth-checkbox-label input[type="checkbox"] {
  accent-color: #111113;
  width: 13px;
  height: 13px;
  cursor: pointer;
  margin: 0;
}

.auth-checkbox-label a {
  color: #111113;
  text-decoration: underline;
}

.auth-inline-error {
  background: #fff2f2;
  border: 1px solid #ffcdd2;
  color: #d32f2f;
  font-size: 10.5px;
  padding: 4px 8px;
  border-radius: 6px;
  margin-top: 4px;
}

/* 9-Section Account Portal */
.account-portal-box {
  max-width: 780px;
  width: min(780px, 94vw);
  max-height: min(88vh, calc(100dvh - 36px));
  margin: auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  padding: 32px 36px;
  border-radius: 24px;
  background: #ffffff;
  box-shadow: 0 30px 80px rgba(0,0,0,0.22);
  box-sizing: border-box;
}
.account-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--hair);
  margin-bottom: 20px;
}
.account-badge {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  background: rgba(0,113,227,0.1);
  color: var(--blue);
  padding: 4px 10px;
  border-radius: 20px;
}
/* The tabs WRAP; they do not scroll sideways.

   This was `flex-wrap: nowrap` with `overflow-x: auto` and the scrollbar hidden
   on both engines. Eight pills need 821px and the strip is 708px wide, so
   Security and Settings sat past the right edge with nothing to indicate they
   were there -- no scrollbar, no fade, no arrows. On a trackpad you could swipe
   blindly to them; with a mouse the Security and Settings tabs were simply
   unreachable, and nothing on screen suggested they existed.

   Wrapping shows all eight at every width. A second row costs ~40px of a modal
   that already scrolls vertically; an unreachable tab costs the whole feature. */
.account-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-bottom: 12px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--hair);
}
.account-tab-btn {
  background: var(--grey, #f5f5f7);
  border: 1px solid transparent;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink2, #86868b);
  padding: 8px 16px;
  border-radius: 980px;
  cursor: pointer;
  white-space: nowrap;
  transition: all .2s ease;
}
.account-tab-btn:hover {
  color: var(--ink, #111111);
  background: #e8e8ed;
}
.account-tab-btn.active {
  background: #111111 !important;
  color: #ffffff !important;
  border-color: #111111 !important;
}

/* Order Cards */
.order-history-card {
  background: #ffffff;
  border: 1px solid var(--hair);
  border-radius: 16px;
  padding: 18px 20px;
  margin-bottom: 16px;
  transition: transform .2s, box-shadow .2s;
}
.order-history-card:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}
.order-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--hair);
  margin-bottom: 14px;
}
.order-id-label {
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
  display: block;
}
.order-date-label {
  font-size: 12px;
  color: var(--ink2);
}
.order-status-badge {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 4px 10px;
  border-radius: 20px;
  background: var(--grey);
  color: var(--ink);
}
.order-status-badge.status-confirmed, .order-status-badge.status-delivered {
  background: rgba(52,199,89,0.12);
  color: #28cd41;
}
.order-status-badge.status-processing, .order-status-badge.status-shipped {
  background: rgba(0,113,227,0.12);
  color: var(--blue);
}
.order-status-badge.status-cancelled {
  background: rgba(255,59,48,0.12);
  color: #ff3b30;
}
.order-item-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 8px 0;
}
.order-item-img {
  width: 48px;
  height: 48px;
  object-fit: contain;
  border-radius: 8px;
  background: var(--grey);
  flex-shrink: 0;
}
.order-item-info {
  flex: 1;
  min-width: 0;
}
.order-item-info h5 {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.order-item-info span {
  font-size: 11px;
  color: var(--ink2);
}
.order-item-price {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
}
.order-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid var(--hair);
  margin-top: 12px;
  font-size: 13px;
}

/* Account Portal Actions & Form Buttons */
.account-portal-box button[type="submit"],
.account-tab-content button[type="submit"],
.account-portal-box .btn-primary,
#btnBagCheckoutModal {
  padding: 13px 28px;
  border-radius: 980px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.01em;
  background: #111113;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.15);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  -webkit-tap-highlight-color: transparent;
}

.account-portal-box button[type="submit"]:hover,
.account-tab-content button[type="submit"]:hover,
.account-portal-box .btn-primary:hover,
#btnBagCheckoutModal:hover {
  background: #000000;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.26), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.account-portal-box button[type="submit"]:active,
.account-tab-content button[type="submit"]:active,
.account-portal-box .btn-primary:active,
#btnBagCheckoutModal:active {
  transform: scale(0.96) !important;
}

#accountSignOutBtn,
#btnRevokeAllSessions,
.account-portal-box .btn-secondary {
  padding: 8px 18px;
  border-radius: 980px;
  font-size: 13px;
  font-weight: 600;
  background: #f5f5f7;
  color: #111113 !important;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  -webkit-tap-highlight-color: transparent;
}

#accountSignOutBtn:hover,
#btnRevokeAllSessions:hover,
.account-portal-box .btn-secondary:hover {
  background: #e8e8ed;
  color: #000000 !important;
  border-color: rgba(0, 0, 0, 0.16);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
  transform: translateY(-1.5px);
}

#accountSignOutBtn:active,
#btnRevokeAllSessions:active,
.account-portal-box .btn-secondary:active {
  transform: scale(0.96) !important;
}

/* Empty Card */
.account-empty-card {
  text-align: center;
  padding: 48px 24px;
  background: var(--grey);
  border-radius: 18px;
  color: var(--ink2);
}
.account-empty-card svg {
  color: var(--ink2);
  margin-bottom: 12px;
}
.account-empty-card h4 {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 6px;
}
.account-empty-card p {
  font-size: 13px;
  margin: 0;
  max-width: 320px;
  margin-left: auto;
  margin-right: auto;
}

/* Saved Addresses */
.saved-address-card {
  background: var(--grey);
  border: 1px solid var(--hair);
  border-radius: 14px;
  padding: 16px 18px;
  margin-bottom: 12px;
  position: relative;
}
.saved-address-card.default {
  border-color: var(--blue);
  background: rgba(0,113,227,0.02);
}
.default-badge {
  font-size: 9px;
  font-weight: 800;
  color: var(--blue);
  background: rgba(0,113,227,0.12);
  padding: 2px 6px;
  border-radius: 4px;
  margin-left: 6px;
}
.btn-del-addr {
  background: none;
  border: none;
  color: var(--ink2);
  cursor: pointer;
  font-size: 14px;
  padding: 4px 8px;
  border-radius: 4px;
  transition: all .15s;
}
.btn-del-addr:hover {
  color: #ff3b30;
  background: rgba(255,59,48,0.1);
}

/* Wishlist Grid inside Account (25% smaller compact card grid) */
.account-wishlist-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px 12px;
  width: 100%;
  box-sizing: border-box;
}
@media (max-width: 900px) {
  .account-wishlist-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 10px;
  }
}
@media (max-width: 640px) {
  .account-wishlist-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 8px;
  }
}

.account-wishlist-grid .pcard {
  flex: none;
  background: transparent;
  border: none;
  padding: 0;
  border-radius: 0;
  display: flex;
  flex-direction: column;
}
.account-wishlist-grid .pcard-plate {
  aspect-ratio: 1 / 1;
  background: #f6f6f6;
  border-radius: 8px;
  overflow: hidden;
}
.account-wishlist-grid .pcard-wish-btn {
  top: 8px;
  right: 8px;
  width: 28px;
  height: 28px;
}
.account-wishlist-grid .pcard-tag-red {
  font-size: 11px;
  margin-top: 8px;
}
.account-wishlist-grid .pname {
  font-size: 13px;
  margin-top: 2px;
  line-height: 1.25;
}
.account-wishlist-grid .pdesc {
  font-size: 12px;
  margin-top: 2px;
}
.account-wishlist-grid .pprice {
  font-size: 13px;
  margin-top: 4px;
}
.account-wishlist-grid .pcolor-swatches {
  margin-top: 4px;
  gap: 4px;
}
.account-wishlist-grid .pcolor-dot {
  width: 10px;
  height: 10px;
}
.account-wishlist-grid .pcard-add-cart-btn {
  height: 32px;
  font-size: 11px;
  padding: 0 10px;
  margin-top: 6px;
}



/* ============================================================
   FOOTER — 945 CLUB
   Four columns over a bottom bar, with an oversized wordmark behind.
   Colours come from tokens.css only, so the footer tracks the rest of
   the theme instead of drifting to its own greys.
   ============================================================ */
.club-footer {
  position: relative;
  overflow: hidden;              /* crops the wordmark; no horizontal scroll */
  background: var(--surface-secondary);
  border-top: 1px solid var(--hair);
  color: var(--ink2);
  font-size: 14px;
}
.club-footer-inner {
  position: relative;
  padding: 64px 0 0;
}
.club-footer-grid {
  display: grid;
  grid-template-columns: 1.7fr repeat(3, 1fr);
  gap: 40px 32px;
  padding-bottom: 48px;
}

/* --- brand column --- */
.club-footer-logo {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 18px;
  text-decoration: none;
  color: var(--ink);
}
.club-footer-logo .logo-main {
  font-family: var(--font-display);
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1;
}
.club-footer-logo .logo-sub {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-tertiary);
}
.club-footer-blurb {
  max-width: 34ch;
  margin: 0 0 14px;
  line-height: 1.6;
  color: var(--ink2);
}
.club-footer-note {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--ink-tertiary);
}

/* --- link columns --- */
.club-footer-heading {
  margin: 0 0 16px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-tertiary);
}
.club-footer-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}
.club-footer-col a {
  color: var(--ink2);
  text-decoration: none;
  transition: color .18s ease;
}
.club-footer-col a:hover,
.club-footer-col a:focus-visible {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* --- bottom bar --- */
.club-footer-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 20px 0 22px;
  border-top: 1px solid var(--hair);
  font-size: 12.5px;
  color: var(--ink-tertiary);
}

/* --- oversized wordmark ---
   In normal flow BELOW the copyright bar, in a band of its own, so it never
   sits behind text. The negative bottom margin crops its descender space
   against the footer's own overflow:hidden, which is what gives it the
   half-cut look rather than floating in whitespace. */
.club-footer-mark {
  margin: 0 0 -0.2em;
  text-align: center;
  font-family: var(--font-display);
  font-size: clamp(60px, 15.5vw, 250px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 0.8;
  color: var(--ink);
  opacity: 0.06;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}



/* ===== PDP: colour name, description and specs =====
   The modal showed a title, a price and a size and nothing else -- not the
   style code the customer quotes to support, not the colourway name printed on
   the box, not what the thing actually is. */
/* A class that sets `display` outranks the user-agent's `[hidden]` rule, so
   these need to say it themselves or el.hidden does nothing. */
.pv-colour-line[hidden],
.pv-details-block[hidden] { display: none !important; }

.pv-colour-line {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 0 0 10px;
  font-size: 14px;
}
.pv-colour-label {
  color: var(--ink-secondary, #6e6e73);
}
.pv-colour-value {
  font-weight: 600;
  color: var(--ink-primary, #111113);
  /* Colourways run long -- "OLIVE GREY/BLACK-OFF NOIR-VARSITY RED" -- so let
     them wrap rather than push the panel wide. */
  overflow-wrap: anywhere;
}

.pv-details-block {
  margin: 18px 0 4px;
  padding-top: 18px;
  border-top: 1px solid var(--hair, rgba(0, 0, 0, .1));
}
.pv-details-copy {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-secondary, #6e6e73);
}
.pv-spec-list {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 6px 18px;
  margin: 0;
  font-size: 13px;
}
.pv-spec-list dt {
  color: var(--ink-secondary, #6e6e73);
}
.pv-spec-list dd {
  margin: 0;
  font-weight: 600;
  color: var(--ink-primary, #111113);
  overflow-wrap: anywhere;
}
/* The style code is a reference customers copy, so make it selectable-looking
   and monospaced rather than prose. */
.pv-spec-list dd.pv-spec-code {
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  letter-spacing: .01em;
}


/* ===== Consent bar =====
   Anchored to the bottom rather than covering the page: the visitor can still
   read what they came for while deciding, and both choices are equally weighted
   buttons, because a reject that is harder to find than an accept is not a
   free choice. */
.consent-bar[hidden] { display: none !important; }
.consent-bar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 9998;
  background: var(--surface-primary, #fff);
  border-top: 1px solid var(--hair, rgba(0,0,0,.12));
  box-shadow: 0 -6px 24px rgba(0,0,0,.07);
  padding: 16px 20px calc(16px + env(safe-area-inset-bottom, 0px));
}
.consent-inner {
  max-width: 1180px; margin: 0 auto;
  display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
}
.consent-copy { flex: 1 1 460px; min-width: 0; }
.consent-title {
  margin: 0 0 4px; font-size: 14px; font-weight: 700;
  color: var(--ink-primary, #111113);
}
.consent-body {
  margin: 0; font-size: 12.5px; line-height: 1.55;
  color: var(--ink-secondary, #6e6e73); max-width: 78ch;
}
.consent-body a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.consent-actions { display: flex; gap: 10px; flex: 0 0 auto; }
.consent-actions button {
  font: inherit; font-size: 13px; font-weight: 600;
  padding: 10px 22px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--ink-primary, #111113);
  transition: opacity .15s ease;
}
.consent-reject { background: transparent; color: var(--ink-primary, #111113); }
.consent-accept { background: var(--ink-primary, #111113); color: var(--surface-primary, #fff); }
.consent-actions button:hover { opacity: .82; }
.consent-actions button:focus-visible {
  outline: 2px solid var(--blue, #0071e3); outline-offset: 2px;
}
@media (max-width: 640px) {
  .consent-inner { gap: 14px; }
  .consent-actions { width: 100%; }
  .consent-actions button { flex: 1; }
}

/* ===== Delete account ===== */
.danger-zone {
  margin-top: 28px; padding-top: 20px;
  border-top: 1px solid var(--hair, rgba(0,0,0,.12));
}
.danger-zone h4 { font-size: 15px; font-weight: 700; margin: 0 0 6px; }
.danger-zone p {
  font-size: 13px; line-height: 1.55; color: var(--ink-secondary, #6e6e73);
  margin: 0 0 14px; max-width: 68ch;
}
.btn-danger-outline {
  font: inherit; font-size: 13px; font-weight: 600; padding: 9px 18px;
  border-radius: 999px; cursor: pointer;
  background: transparent; color: #c0392b; border: 1px solid #c0392b;
}
.btn-danger-outline:hover { background: rgba(192,57,43,.07); }
.btn-danger-outline:focus-visible { outline: 2px solid #c0392b; outline-offset: 2px; }
.delete-confirm {
  margin-top: 14px; padding: 16px; border-radius: 12px;
  border: 1px solid rgba(192,57,43,.35); background: rgba(192,57,43,.04);
}
.delete-confirm[hidden] { display: none !important; }
.delete-confirm ul { margin: 8px 0 12px; padding-left: 20px; font-size: 13px; line-height: 1.6; }
.delete-confirm input[type="text"] {
  width: 100%; max-width: 260px; padding: 9px 12px; font: inherit; font-size: 14px;
  border: 1px solid var(--hair, rgba(0,0,0,.2)); border-radius: 8px; margin-bottom: 12px;
}
.delete-confirm-actions { display: flex; gap: 10px; flex-wrap: wrap; }
