/* SOLS storefront UI. Tokens: storefront-tokens.css. Spacing follows a 4/8px scale. */

/* ---------- Base ---------- */
html.sols-lock { overflow: hidden; }
body.sols { background: var(--sols-bg); color: var(--sols-text); font-family: var(--sols-font); font-size: 15px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
body.sols h1, body.sols h2, body.sols h3, body.sols h4 { color: var(--sols-text); font-family: var(--sols-font); letter-spacing: -0.01em; }
:where(body.sols) a { color: inherit; }
body.sols #main, body.sols #wrapper { background: var(--sols-bg); }
.sols-shell { box-sizing: border-box; width: 100%; max-width: var(--sols-container); margin-inline: auto; padding-inline: var(--sols-gutter); }
.sols-page { padding-bottom: var(--sols-section); }
.sols-muted { color: var(--sols-muted); }
.sols-center { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px 24px; margin-top: 32px; }
.sols-icon { flex: none; }
.sols a:focus-visible, .sols button:focus-visible, .sols input:focus-visible, .sols select:focus-visible, .sols summary:focus-visible, .sols [tabindex]:focus-visible {
  outline: 2px solid var(--sols-accent); outline-offset: 2px; box-shadow: none;
}

/* ---------- Buttons, links, chips, badges ---------- */
.sols-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; margin: 0; padding: 0 20px; border: 1px solid var(--sols-cta); border-radius: 10px;
  color: #fff; background: var(--sols-cta); font: 600 14px/1 var(--sols-font); text-transform: none; letter-spacing: 0;
  text-decoration: none; cursor: pointer; transition: background-color 150ms ease, border-color 150ms ease;
}
.sols-btn:hover { color: #fff; background: var(--sols-cta-hover); border-color: var(--sols-cta-hover); }
.sols-btn[disabled] { opacity: 0.6; cursor: progress; }
.sols-btn--outline { color: var(--sols-text); background: var(--sols-surface); border-color: var(--sols-line); }
.sols-btn--outline:hover { color: var(--sols-text); background: var(--sols-surface); border-color: var(--sols-text); }
.sols-btn--light { color: var(--sols-text); background: #fff; border-color: #fff; }
.sols-btn--light:hover { color: var(--sols-text); background: #f1f1f1; border-color: #f1f1f1; }
.sols-btn--block { flex: 1; }
.sols-link { display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; color: var(--sols-text); font: 600 14px/1.4 var(--sols-font); text-decoration: none; cursor: pointer; min-height: 32px; margin: 0; text-transform: none; letter-spacing: 0; }
.sols-link:hover { color: var(--sols-accent-text); }
.sols-eyebrow { display: block; margin: 0 0 8px; color: var(--sols-accent-text); font-size: 13px; font-weight: 600; }
.sols-eyebrow--light { color: #FDBA74; }
.sols-chip {
  display: inline-flex; align-items: center; gap: 6px; min-height: 40px; margin: 0; padding: 0 16px;
  border: 1px solid var(--sols-line); border-radius: 999px; color: var(--sols-text); background: var(--sols-surface);
  font: 500 14px/1 var(--sols-font); text-transform: none; letter-spacing: 0; cursor: pointer; white-space: nowrap;
}
.sols-chip:hover { border-color: #C9CED8; }
.sols-chip[aria-selected="true"] { color: #fff; background: var(--sols-text); border-color: var(--sols-text); }
.sols-chip--active { min-height: 32px; padding: 0 10px 0 12px; font-size: 13px; background: var(--sols-accent-soft); border-color: #FED7AA; color: var(--sols-accent-text); }
.sols-badge {
  position: absolute; top: 12px; left: 12px; z-index: 2; padding: 4px 8px; border-radius: 6px;
  color: var(--sols-text); background: var(--sols-surface); font-size: 12px; font-weight: 600; line-height: 1.2;
  box-shadow: 0 0 0 1px var(--sols-line);
}
.sols-badge--sale { color: var(--sols-accent-text); background: var(--sols-accent-soft); box-shadow: none; }
.sols-pill { display: inline-flex; padding: 4px 8px; border-radius: 6px; color: var(--sols-accent-text); background: var(--sols-accent-soft); font-size: 12px; font-weight: 600; }
.sols-icon-btn {
  position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px; min-height: 44px; margin: 0; padding: 0;
  border: 0; border-radius: 10px; color: var(--sols-text); background: transparent; cursor: pointer;
}
.sols-icon-btn:hover { background: var(--sols-image); color: var(--sols-text); }

/* ---------- Header ---------- */
body.sols #header, body.sols .header-wrapper { background: var(--sols-surface); }
body.sols #header { position: sticky; top: 0; z-index: 50; height: auto !important; }
body.sols .header-wrapper { box-shadow: none; }
.sols-header { position: relative; z-index: 2; border-bottom: 1px solid var(--sols-line); background: var(--sols-surface); }
body.sols .header-bg-container { display: none; }
.sols-header__row { display: flex; align-items: center; gap: 24px; min-height: 68px; }
.sols-logo { display: inline-flex; align-items: baseline; gap: 2px; color: var(--sols-text); font: 800 26px/1 var(--sols-font); letter-spacing: 0.04em; text-decoration: none; }
.sols-logo:hover { color: var(--sols-text); }
.sols-logo__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--sols-accent); }
.sols-logo--light, .sols-logo--light:hover { color: #fff; }
.sols-header__search { flex: 1; max-width: 560px; margin-inline: auto; }
.sols-header__actions { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.sols-header__menu-btn { display: none; }
.sols-header__mobile-search { display: none; padding-bottom: 12px; }
.sols-cart-count, .sols-wish-count {
  position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px;
  color: #fff; background: var(--sols-text); font-size: 11px; font-weight: 700; line-height: 18px; text-align: center;
}
.sols-cart-count[data-count="0"] { background: #98A2B3; }
.sols-search { position: relative; display: flex; align-items: center; margin: 0; }
.sols-search input[type="search"] {
  width: 100%; height: 44px; margin: 0; padding: 0 48px 0 16px; border: 1px solid var(--sols-line); border-radius: 10px;
  background: var(--sols-bg); box-shadow: none; color: var(--sols-text); font: 400 14px/1 var(--sols-font);
}
.sols-search input[type="search"]:focus { border-color: var(--sols-text); background: #fff; }
.sols-search button { position: absolute; right: 2px; display: grid; place-items: center; width: 40px; height: 40px; min-height: 40px; margin: 0; padding: 0; border: 0; border-radius: 8px; background: transparent; color: var(--sols-muted); cursor: pointer; }
.sols-search button:hover { color: var(--sols-text); }
.sols-nav ul { display: flex; align-items: center; gap: 4px; margin: 0 auto; list-style: none; }
.sols-nav li { position: relative; margin: 0; }
.sols-nav a, .sols-nav__toggle {
  display: inline-flex; align-items: center; gap: 4px; min-height: 44px; margin: 0; padding: 0 12px; border: 0; background: none;
  color: var(--sols-text); font: 500 14px/1 var(--sols-font); text-transform: none; letter-spacing: 0; text-decoration: none; cursor: pointer;
}
.sols-nav a:hover, .sols-nav__toggle:hover { color: var(--sols-accent-text); }
.sols-nav > ul > li:first-child > a { padding-left: 0; }
.sols-nav__menu { position: absolute; top: 100%; left: 0; z-index: 60; display: block !important; min-width: 200px; padding: 8px !important; border: 1px solid var(--sols-line); border-radius: var(--sols-r-md); background: #fff; box-shadow: var(--sols-shadow-lift); }
.sols-nav__menu[hidden] { display: none !important; }
.sols-nav__menu a { display: flex; width: 100%; padding: 0 12px; border-radius: 8px; }
.sols-nav__menu a:hover { background: var(--sols-bg); }
.sols-nav__toggle[aria-expanded="true"] .sols-icon { transform: rotate(180deg); }

/* Drawer */
.sols-drawer { position: fixed; inset: 0; z-index: 1000; }
.sols-drawer__backdrop { position: absolute; inset: 0; background: rgba(16, 24, 40, 0.4); opacity: 0; transition: opacity 180ms ease; }
.sols-drawer__panel { position: absolute; top: 0; bottom: 0; left: 0; width: min(86vw, 360px); overflow-y: auto; padding: 16px; background: #fff; transform: translateX(-100%); transition: transform 180ms ease; }
.sols-drawer.is-open .sols-drawer__backdrop { opacity: 1; }
.sols-drawer.is-open .sols-drawer__panel { transform: none; }
.sols-drawer__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.sols-drawer__title { margin: 0; font-size: 18px; font-weight: 700; }
.sols-drawer__nav, .sols-drawer__brands { margin: 0; padding: 0; list-style: none; }
.sols-drawer__nav > li { margin: 0; border-bottom: 1px solid var(--sols-line); }
.sols-drawer__nav a { display: flex; align-items: center; min-height: 48px; color: var(--sols-text); font-weight: 500; text-decoration: none; }
.sols-drawer__label { display: block; padding-top: 12px; color: var(--sols-muted); font-size: 13px; font-weight: 600; }
.sols-drawer__brands { display: grid; grid-template-columns: 1fr 1fr; padding-bottom: 8px; }
.sols-drawer__brands li { margin: 0; }

/* ---------- Sections & grid ---------- */
.sols-section { margin-top: var(--sols-section); }
.sols-section__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 20px; }
.sols-section__head h2 { margin: 0; font-size: clamp(22px, 2.4vw, 28px); font-weight: 700; line-height: 1.2; }
.sols-section__head p { margin: 4px 0 0; color: var(--sols-muted); }
.sols-section__head--center { flex-direction: column; align-items: center; text-align: center; }
.sols-grid { display: grid; gap: 20px; }
.sols-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sols-grid--shop { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sols-grid__item { min-width: 0; }
.sols-grid__item[hidden] { display: none; }

/* ---------- Product card ---------- */
.sols-card { position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid var(--sols-line); border-radius: var(--sols-r-lg); background: var(--sols-surface); transition: box-shadow 180ms ease, transform 180ms ease; }
.sols-card:hover, .sols-card:focus-within { box-shadow: var(--sols-shadow-lift); }
.sols-card__media { position: relative; aspect-ratio: 1 / 1; margin: 8px 8px 0; overflow: hidden; border-radius: var(--sols-r-md); background: var(--sols-image); }
.sols-card__image-link { display: block; width: 100%; height: 100%; }
.sols-card__img { display: block; width: 100%; height: 100%; margin: 0; object-fit: contain; transition: transform 300ms ease; }
.sols-card:hover .sols-card__img { transform: scale(1.04); }
.sols-card.is-sold-out .sols-card__img { opacity: 0.55; }
.sols-wish {
  position: absolute; top: 8px; right: 8px; z-index: 3; display: grid; place-items: center; width: 40px; height: 40px; min-height: 40px; margin: 0; padding: 0;
  border: 0; border-radius: 50%; color: var(--sols-text); background: rgba(255, 255, 255, 0.92); box-shadow: 0 0 0 1px var(--sols-line); cursor: pointer;
}
.sols-wish:hover { color: var(--sols-accent-text); background: #fff; }
.sols-wish.is-active { color: var(--sols-accent); }
.sols-wish.is-active svg { fill: currentColor; }
.sols-card__body { display: flex; flex: 1; flex-direction: column; gap: 4px; padding: 12px 16px 16px; }
.sols-card__brand { margin: 0; color: var(--sols-muted); font-size: 12px; font-weight: 600; letter-spacing: 0.02em; text-transform: uppercase; }
.sols-card__title { margin: 0; font-size: 15px; font-weight: 600; line-height: 1.35; }
.sols-card__title a { color: var(--sols-text); text-decoration: none; }
.sols-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.sols-card__meta { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--sols-muted); font-size: 13px; }
.sols-card__swatches { display: inline-flex; gap: 3px; }
.sols-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--dot); box-shadow: inset 0 0 0 1px rgba(16, 24, 40, 0.18); }
.sols-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: auto 0 0; padding-top: 6px; }
.sols-card__now { font-size: 16px; font-weight: 700; }
.sols-card__price del, .sols-buy__price del { color: var(--sols-muted); font-size: 13px; font-weight: 400; }

/* ---------- Homepage hero ---------- */
.sols-hero { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 16px; padding-top: 24px; }
.sols-hero__main { position: relative; display: flex; align-items: center; min-height: 360px; overflow: hidden; padding: 40px; border-radius: var(--sols-r-xl); background: #ECEEF2; }
.sols-hero__copy { position: relative; z-index: 1; max-width: 46%; }
.sols-hero__title { margin: 0 0 12px; font-size: clamp(30px, 3.6vw, 44px); font-weight: 800; line-height: 1.08; }
.sols-hero__body { margin: 0 0 24px; color: #475467; font-size: 15px; }
.sols-hero__img { position: absolute; right: 2%; top: 50%; width: 50%; max-width: 440px; translate: 0 -50%; height: auto; transform: rotate(-8deg); filter: drop-shadow(0 18px 18px rgba(16, 24, 40, 0.12)); pointer-events: none; }
.sols-hero__side { display: grid; grid-template-rows: 1fr 1fr; gap: 16px; }
.sols-hero__card { position: relative; display: flex; align-items: flex-start; min-height: 172px; overflow: hidden; padding: 20px 24px; border-radius: var(--sols-r-xl); color: var(--sols-text); text-decoration: none; transition: box-shadow 180ms ease; }
.sols-hero__card:hover { color: var(--sols-text); box-shadow: var(--sols-shadow-lift); }
.sols-hero__card--neutral { background: var(--sols-surface); border: 1px solid var(--sols-line); }
.sols-hero__card--accent { background: var(--sols-accent-soft); }
.sols-hero__card-copy { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; max-width: 60%; }
.sols-hero__card-title { margin-bottom: 12px; font-size: 20px; font-weight: 700; line-height: 1.2; }
.sols-hero__card img { position: absolute; right: -6%; bottom: 4%; width: 58%; height: auto; transform: rotate(-10deg); pointer-events: none; transition: transform 250ms ease; }
.sols-hero__card:hover img { transform: rotate(-10deg) translateY(-3px); }

/* Brands */
.sols-brands { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.sols-brands li { margin: 0; }
.sols-brand { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 96px; padding: 12px; border: 1px solid var(--sols-line); border-radius: var(--sols-r-lg); background: var(--sols-surface); color: var(--sols-text); text-align: center; text-decoration: none; transition: border-color 150ms ease, box-shadow 150ms ease; }
.sols-brand:hover { color: var(--sols-text); border-color: var(--sols-text); box-shadow: var(--sols-shadow); }
.sols-brand__name { font-size: 20px; font-weight: 800; letter-spacing: -0.01em; }
.sols-brand--adidas .sols-brand__name { font-weight: 700; letter-spacing: 0.01em; }
.sols-brand--converse .sols-brand__name, .sols-brand--asics .sols-brand__name { letter-spacing: 0.08em; }
.sols-brand__count { color: var(--sols-muted); font-size: 12px; }

/* Tabs */
.sols-tabs { display: flex; justify-content: center; gap: 8px; margin: 0 0 24px; overflow-x: auto; scrollbar-width: none; }
.sols-tabs::-webkit-scrollbar { display: none; }
.sols-empty-inline { margin: 24px 0 0; color: var(--sols-muted); text-align: center; }

/* Collection banner */
.sols-collection { position: relative; display: flex; align-items: center; min-height: 220px; overflow: hidden; padding: 32px 40px; border-radius: var(--sols-r-xl); background: #1F2329; color: #fff; text-decoration: none; }
.sols-collection:hover { color: #fff; }
.sols-collection__copy { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; max-width: 420px; }
.sols-collection__title { margin-bottom: 8px; font-size: clamp(22px, 2.6vw, 30px); font-weight: 800; line-height: 1.15; }
.sols-collection__body { margin-bottom: 20px; color: #D0D5DD; }
.sols-collection__art { position: absolute; top: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: flex-end; gap: 0; width: 58%; pointer-events: none; }
.sols-collection__art img { width: 40%; height: auto; margin-left: -6%; transform: rotate(-10deg); filter: drop-shadow(0 14px 14px rgba(0, 0, 0, 0.35)); }
.sols-collection__art img:nth-child(2) { transform: rotate(-4deg) translateY(-14px); }

/* ---------- Breadcrumb ---------- */
.sols-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 20px 0 12px; list-style: none; color: var(--sols-muted); font-size: 13px; }
.sols-breadcrumb li { margin: 0; }
.sols-breadcrumb li + li::before { content: "/"; margin-right: 4px; color: #C0C5CE; }
.sols-breadcrumb a { color: var(--sols-muted); text-decoration: none; }
.sols-breadcrumb a:hover { color: var(--sols-text); }
.sols-breadcrumb [aria-current] { color: var(--sols-text); }

/* ---------- Shop ---------- */
.sols-shop__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.sols-shop__head h1 { margin: 0; font-size: clamp(24px, 3vw, 32px); font-weight: 800; }
.sols-shop__head p { margin: 2px 0 0; }
.sols-search--inline { width: min(100%, 380px); }
.sols-search--inline input[type="search"] { background: var(--sols-surface); }
.sols-shop__layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: start; }
.sols-filters { position: sticky; top: 132px; max-height: calc(100vh - 148px); overflow-y: auto; border: 1px solid var(--sols-line); border-radius: var(--sols-r-lg); background: var(--sols-surface); }
.sols-filters__head, .sols-filters__foot { display: none; }
.sols-filters__form { margin: 0; }
.sols-filter { border-bottom: 1px solid var(--sols-line); }
.sols-filter:last-child { border-bottom: 0; }
.sols-filter summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 0 16px; font-size: 14px; font-weight: 600; list-style: none; cursor: pointer; }
.sols-filter summary::-webkit-details-marker { display: none; }
.sols-filter[open] summary .sols-icon { transform: rotate(180deg); }
.sols-filter__body { display: grid; gap: 2px; margin: 0; padding: 0 12px 12px; border: 0; }
.sols-filter__body--grid { grid-template-columns: repeat(4, 1fr); gap: 6px; padding-inline: 16px; }
.sols-check { display: flex; align-items: center; gap: 10px; min-height: 36px; margin: 0; padding: 0 4px; border-radius: 6px; font-size: 14px; font-weight: 400; cursor: pointer; }
.sols-check:hover { background: var(--sols-bg); }
.sols-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--sols-text); }
.sols-size-check { position: relative; margin: 0; cursor: pointer; }
.sols-size-check input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.sols-size-check span { display: grid; place-items: center; height: 40px; border: 1px solid var(--sols-line); border-radius: 8px; font-size: 13px; font-weight: 500; }
.sols-size-check input:checked + span { color: #fff; background: var(--sols-text); border-color: var(--sols-text); }
.sols-size-check input:focus-visible + span { outline: 2px solid var(--sols-accent); outline-offset: 2px; }
.sols-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; min-height: 44px; margin-bottom: 16px; }
.sols-toolbar__filter { display: none; }
.sols-chips { display: flex; flex: 1; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.sols-chips__clear { min-height: 32px; font-size: 13px; text-decoration: underline; }
.sols-sort { display: flex; align-items: center; gap: 8px; margin: 0 0 0 auto; color: var(--sols-muted); font-size: 13px; font-weight: 500; }
.sols-sort select { width: auto; height: 44px; margin: 0; padding: 0 36px 0 12px; border: 1px solid var(--sols-line); border-radius: 10px; background-color: var(--sols-surface); box-shadow: none; color: var(--sols-text); font: 500 14px var(--sols-font); }
.sols-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 56px 24px; border: 1px dashed #D0D5DD; border-radius: var(--sols-r-lg); background: var(--sols-surface); color: var(--sols-muted); text-align: center; }
.sols-empty[hidden] { display: none; }
.sols-empty h2 { margin: 8px 0 0; font-size: 20px; }
.sols-empty p { max-width: 380px; margin: 0 0 12px; }

/* ---------- Product page ---------- */
.sols-pdp { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.sols-gallery { position: sticky; top: 132px; padding: 12px; border: 1px solid var(--sols-line); border-radius: var(--sols-r-xl); background: var(--sols-surface); }
.sols-gallery__main { position: relative; overflow: hidden; border-radius: var(--sols-r-lg); background: var(--sols-image); }
.sols-gallery__zoom { display: block; width: 100%; margin: 0; padding: 0; border: 0; background: none; cursor: zoom-in; }
.sols-gallery__zoom img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.sols-gallery__zoom-icon { position: absolute; right: 12px; bottom: 12px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px var(--sols-line); }
.sols-gallery__thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.sols-gallery__thumbs li { margin: 0; }
.sols-gallery__thumbs button { display: block; width: 100%; margin: 0; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: 10px; background: var(--sols-image); cursor: pointer; min-height: 0; }
.sols-gallery__thumbs button[aria-current="true"] { border-color: var(--sols-accent); }
.sols-gallery__thumbs img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.sols-buy__brand { color: var(--sols-muted); font-size: 13px; font-weight: 600; letter-spacing: 0.02em; text-transform: uppercase; text-decoration: none; }
.sols-buy__brand:hover { color: var(--sols-text); }
.sols-buy__title { margin: 4px 0 4px; font-size: clamp(26px, 3vw, 34px); font-weight: 800; line-height: 1.15; }
.sols-buy__meta { margin: 0 0 16px; color: var(--sols-muted); font-size: 14px; }
.sols-buy__price { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 12px; }
.sols-buy__now { font-size: 26px; font-weight: 800; }
.sols-buy__price del { font-size: 16px; }
.sols-buy__short { margin: 0 0 20px; color: #475467; }
.sols-option { position: relative; margin: 0 0 20px; padding: 0; border: 0; }
.sols-option legend { margin-bottom: 10px; padding: 0; font-size: 14px; font-weight: 600; }
.sols-option legend strong { font-weight: 500; color: #475467; }
.sols-option__guide { position: absolute; top: -6px; right: 0; font-size: 13px; }
.sols-colors { display: flex; flex-wrap: wrap; gap: 8px; }
.sols-color { position: relative; margin: 0; cursor: pointer; }
.sols-color input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.sols-color__swatch { display: block; width: 64px; height: 64px; overflow: hidden; border: 2px solid var(--sols-line); border-radius: 12px; background: var(--sols-image); }
.sols-color__swatch img { display: block; width: 100%; height: 100%; object-fit: contain; }
.sols-color input:checked + .sols-color__swatch { border-color: var(--sols-text); }
.sols-color input:focus-visible + .sols-color__swatch { outline: 2px solid var(--sols-accent); outline-offset: 2px; }
.sols-sizes { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 8px; }
.sols-size { min-height: 48px; margin: 0; padding: 0 4px; border: 1px solid var(--sols-line); border-radius: 10px; color: var(--sols-text); background: var(--sols-surface); font: 500 14px/1 var(--sols-font); text-transform: none; letter-spacing: 0; cursor: pointer; }
.sols-size:hover:not([disabled]) { border-color: var(--sols-text); }
.sols-size.is-selected { color: #fff; background: var(--sols-text); border-color: var(--sols-text); }
.sols-size[disabled] { color: #98A2B3; background: var(--sols-bg); text-decoration: line-through; cursor: not-allowed; }
.sols-option__hint { min-height: 20px; margin: 8px 0 0; color: var(--sols-muted); font-size: 13px; }
.sols-field-error { margin: 4px 0 0; color: #B42318; font-size: 13px; font-weight: 600; }
.sols-buy__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.sols-buy__actions .sols-btn { min-height: 52px; }
.sols-qty { display: inline-flex; align-items: center; height: 52px; border: 1px solid var(--sols-line); border-radius: 10px; background: var(--sols-surface); }
.sols-qty button { display: grid; place-items: center; width: 44px; height: 50px; min-height: 0; margin: 0; padding: 0; border: 0; background: none; color: var(--sols-text); cursor: pointer; }
.sols-qty input[type="number"] { width: 44px; height: 50px; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; font: 600 15px var(--sols-font); text-align: center; -moz-appearance: textfield; }
.sols-qty input::-webkit-outer-spin-button, .sols-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.sols-wish--large { position: static; width: 52px; height: 52px; min-height: 52px; border-radius: 10px; box-shadow: 0 0 0 1px var(--sols-line); }
.sols-info { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border: 1px solid var(--sols-line); border-radius: var(--sols-r-lg); background: var(--sols-surface); }
.sols-info li { display: flex; gap: 12px; margin: 0; padding: 14px 16px; font-size: 13px; color: var(--sols-muted); }
.sols-info li + li { border-top: 1px solid var(--sols-line); }
.sols-info strong { display: block; color: var(--sols-text); font-size: 14px; }
.sols-pdp-details { margin-top: var(--sols-section); border-top: 1px solid var(--sols-line); }
.sols-pdp-details details { border-bottom: 1px solid var(--sols-line); }
.sols-pdp-details summary { display: flex; align-items: center; justify-content: space-between; min-height: 60px; font-size: 17px; font-weight: 700; list-style: none; cursor: pointer; }
.sols-pdp-details summary::-webkit-details-marker { display: none; }
.sols-pdp-details details[open] summary .sols-icon { transform: rotate(180deg); }
.sols-prose { max-width: 760px; padding-bottom: 20px; color: #344054; }
.sols-specs { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 0 0 20px; }
.sols-specs div { padding: 12px 16px; border-radius: var(--sols-r-md); background: var(--sols-surface); border: 1px solid var(--sols-line); }
.sols-specs dt { color: var(--sols-muted); font-size: 12px; font-weight: 600; }
.sols-specs dd { margin: 2px 0 0; font-size: 14px; font-weight: 500; }
.sols-sticky-buy { display: none; }
.sols-lightbox { width: min(92vw, 860px); max-width: none; padding: 16px; border: 0; border-radius: var(--sols-r-xl); background: var(--sols-image); }
.sols-lightbox::backdrop { background: rgba(16, 24, 40, 0.6); }
.sols-lightbox img { display: block; width: 100%; height: auto; }
.sols-lightbox__close { position: absolute; top: 8px; right: 8px; background: #fff; }
.sols-lightbox__prev, .sols-lightbox__next { position: absolute; top: 50%; background: #fff; transform: translateY(-50%); }
.sols-lightbox__prev { left: 8px; }
.sols-lightbox__prev .sols-icon { transform: rotate(90deg); }
.sols-lightbox__next { right: 8px; }
.sols-lightbox__next .sols-icon { transform: rotate(-90deg); }

/* ---------- Dialog, table, toast ---------- */
.sols-dialog { width: min(92vw, 560px); max-width: none; max-height: 86vh; padding: 24px; border: 0; border-radius: var(--sols-r-xl); background: #fff; color: var(--sols-text); box-shadow: var(--sols-shadow-lift); }
.sols-dialog::backdrop { background: rgba(16, 24, 40, 0.45); }
.sols-dialog__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.sols-dialog__head h2 { margin: 0; font-size: 20px; }
.sols-table-wrap { overflow-x: auto; margin: 12px 0; }
.sols-table { width: 100%; margin: 0; border-collapse: collapse; font-size: 14px; }
.sols-table th, .sols-table td { padding: 8px 10px; border-bottom: 1px solid var(--sols-line); text-align: left; }
.sols-table thead th { color: var(--sols-muted); font-size: 12px; font-weight: 600; text-transform: none; letter-spacing: 0; }
.sols-toast { position: fixed; left: 50%; bottom: 24px; z-index: 2000; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; max-width: min(92vw, 460px); padding: 12px 16px; border-radius: var(--sols-r-md); background: var(--sols-text); color: #fff; font-size: 14px; box-shadow: var(--sols-shadow-lift); opacity: 0; transform: translate(-50%, 8px); transition: opacity 180ms ease, transform 180ms ease; }
.sols-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
.sols-toast a { color: #FDBA74; font-weight: 600; text-decoration: underline; }

/* ---------- Footer ---------- */
body.sols .sols-footer-wrapper { background: #171717; }
.sols-footer { padding: 56px 0 24px; background: #171717; color: #D0D5DD; font-size: 14px; }
.sols-footer__inner { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 32px; }
.sols-footer__brand p { max-width: 340px; margin: 12px 0 16px; color: #D0D5DD; }
.sols-footer__contact { display: grid; gap: 4px; font-style: normal; color: #D0D5DD; }
.sols-footer__contact a { color: #fff; }
.sols-footer__col h2 { margin: 0 0 12px; color: #fff; font-size: 14px; font-weight: 700; }
.sols-footer__col ul { margin: 0; padding: 0; list-style: none; }
.sols-footer__col li { margin: 0; }
.sols-footer__col a { display: inline-flex; align-items: center; min-height: 36px; color: #D0D5DD; text-decoration: none; }
.sols-footer__col a:hover { color: #fff; }
.sols-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-top: 40px; padding-top: 20px; border-top: 1px solid #2E3238; color: #98A2B3; font-size: 13px; }
.sols-footer__bottom p { margin: 0; }
.sols-footer__demo { max-width: 640px; }
body.sols .back-to-top { display: none !important; }

/* ---------- Cart & checkout (classic WooCommerce) ---------- */
body.sols.woocommerce-cart #content, body.sols.woocommerce-checkout #content { padding-top: 24px; }
body.sols .woocommerce-cart-form, body.sols .cart_totals, body.sols form.checkout .col2-set, body.sols #order_review, body.sols .woocommerce-order { border: 1px solid var(--sols-line); border-radius: var(--sols-r-lg); background: var(--sols-surface); padding: 20px; }
body.sols .cart_totals, body.sols #order_review { box-shadow: none; }
body.sols table.shop_table { border: 0; }
body.sols table.shop_table th { color: var(--sols-muted); font-size: 12px; font-weight: 600; letter-spacing: 0; text-transform: none; }
body.sols .shop_table .product-name a { color: var(--sols-text); font-weight: 600; }
body.sols .shop_table dl.variation { margin: 4px 0 0; color: var(--sols-muted); font-size: 13px; }
body.sols .shop_table dl.variation dt, body.sols .shop_table dl.variation dd { display: inline; margin: 0; }
body.sols .shop_table dl.variation dd p { display: inline; margin: 0; }
body.sols .shop_table .product-thumbnail img { width: 88px; height: 88px; object-fit: contain; border-radius: 10px; background: var(--sols-image); }
body.sols .button, body.sols button.button, body.sols input.button, body.sols .checkout-button, body.sols #place_order {
  min-height: 48px; border: 1px solid var(--sols-cta); border-radius: 10px; background: var(--sols-cta) !important; color: #fff !important; font: 600 15px/1 var(--sols-font); text-transform: none; letter-spacing: 0;
}
body.sols .button:hover, body.sols #place_order:hover { background: #000 !important; }
body.sols button[name="update_cart"] { color: var(--sols-text) !important; background: var(--sols-surface) !important; border-color: var(--sols-line); }
body.sols .woocommerce-form-coupon-toggle, body.sols .coupon { display: none !important; }
body.sols .sols-hidden-field { display: none !important; }
body.sols form.checkout input.input-text, body.sols form.checkout textarea, body.sols form.checkout select { min-height: 44px; border: 1px solid var(--sols-line); border-radius: 10px; box-shadow: none; font: 400 15px var(--sols-font); }
body.sols form.checkout label { font-size: 14px; font-weight: 600; text-transform: none; letter-spacing: 0; }
body.sols .woocommerce-error, body.sols .woocommerce-message, body.sols .woocommerce-info { border-radius: var(--sols-r-md); }
body.sols .woocommerce-error { border: 1px solid #FECDCA; background: #FEF3F2; color: #912018; }
.sols-demo-note { margin: 0 0 16px; padding: 12px 16px; border-radius: var(--sols-r-md); background: var(--sols-accent-soft); color: #7C2D12; font-size: 13px; }
.sols-confirm { margin-bottom: 24px; padding: 28px; border-radius: var(--sols-r-xl); background: var(--sols-surface); border: 1px solid var(--sols-line); }
.sols-confirm__eyebrow { margin: 0; color: var(--sols-accent-text); font-weight: 600; }
.sols-confirm h2 { margin: 4px 0 8px; font-size: 26px; }
.sols-confirm p { color: var(--sols-muted); }
.sols-empty--cart { margin: 24px 0; }
body.sols .payment_methods li label { font-weight: 600; }
body.sols .wc_payment_method .payment_box { background: var(--sols-bg); border-radius: 10px; font-size: 13px; }

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
  .sols-brands { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1023px) {
  .sols-hero { grid-template-columns: 1fr; }
  .sols-hero__side { grid-template-columns: 1fr 1fr; grid-template-rows: none; }
  .sols-grid--4, .sols-grid--shop { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sols-shop__layout { grid-template-columns: 1fr; }
  .sols-toolbar__filter { display: inline-flex; }
  .sols-toolbar__filter[data-count]:not([data-count="0"])::after { content: attr(data-count); display: inline-grid; place-items: center; min-width: 20px; height: 20px; margin-left: 4px; border-radius: 999px; background: var(--sols-text); color: #fff; font-size: 11px; }
  .sols-filters { position: fixed; inset: 0 auto 0 0; z-index: 1000; display: flex; flex-direction: column; width: min(92vw, 380px); max-height: none; border: 0; border-radius: 0; transform: translateX(-105%); visibility: hidden; transition: transform 180ms ease, visibility 0s linear 180ms; box-shadow: var(--sols-shadow-lift); }
  .sols-filters.is-open { transform: none; visibility: visible; transition: transform 180ms ease; }
  .sols-filters.is-open::before { content: ""; position: fixed; inset: 0 0 0 100%; width: 100vw; background: rgba(16, 24, 40, 0.4); }
  .sols-filters__head { display: flex; align-items: center; justify-content: space-between; padding: 8px 8px 8px 16px; border-bottom: 1px solid var(--sols-line); }
  .sols-filters__title { margin: 0; font-size: 18px; font-weight: 700; }
  .sols-filters__form { flex: 1; overflow-y: auto; }
  .sols-filters__foot { display: grid; grid-template-columns: 1fr 1.4fr; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--sols-line); }
  .sols-pdp { grid-template-columns: 1fr; gap: 24px; }
  .sols-gallery { position: static; }
  .sols-footer__inner { grid-template-columns: 1fr 1fr; }
  .sols-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 849px) {
  .sols-header__row { gap: 8px; min-height: 60px; }
  .sols-header__menu-btn { display: inline-grid; margin-left: -10px; }
  .sols-header__search, .sols-nav, .sols-header__actions > a:first-child { display: none; }
  .sols-header__mobile-search { display: block; }
  .sols-logo { font-size: 22px; }
}

@media (max-width: 767px) {
  body.sols { font-size: 14px; }
  .sols-grid { gap: 12px; }
  .sols-grid--4, .sols-grid--shop { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sols-hero { padding-top: 16px; }
  .sols-hero__main { flex-direction: column; align-items: stretch; min-height: 0; padding: 24px 20px 0; }
  .sols-hero__copy { max-width: none; }
  .sols-hero__img { position: static; width: 84%; margin: 8px auto 0; translate: none; transform: rotate(-6deg); }
  .sols-hero__side { grid-template-columns: 1fr; }
  .sols-hero__card { min-height: 132px; }
  .sols-hero__card img { width: 46%; }
  .sols-brands { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .sols-brand { min-height: 72px; }
  .sols-brand__name { font-size: 17px; }
  .sols-tabs { justify-content: flex-start; margin-inline: calc(var(--sols-gutter) * -1); padding-inline: var(--sols-gutter); }
  .sols-card__media { margin: 6px 6px 0; }
  .sols-card__body { padding: 10px 12px 12px; }
  .sols-card__title { font-size: 14px; }
  .sols-card__now { font-size: 15px; }
  .sols-card__meta > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .sols-collection { flex-direction: column; align-items: stretch; min-height: 0; padding: 24px 20px 0; }
  .sols-collection__art { position: static; width: 100%; justify-content: center; margin-top: 8px; }
  .sols-shop__head { align-items: stretch; flex-direction: column; }
  .sols-search--inline { width: 100%; }
  .sols-toolbar { gap: 8px; }
  .sols-chips { order: 3; flex-basis: 100%; }
  .sols-sort span { display: none; }
  .sols-gallery__thumbs { grid-template-columns: repeat(5, 1fr); gap: 6px; }
  .sols-buy__actions { display: grid; grid-template-columns: auto 1fr auto; }
  .sols-sticky-buy { position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px var(--sols-gutter) calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--sols-line); background: #fff; transform: translateY(110%); transition: transform 180ms ease; }
  .sols-sticky-buy.is-visible { transform: none; }
  .sols-sticky-buy div { display: flex; flex-direction: column; min-width: 0; }
  .sols-sticky-buy__name { overflow: hidden; color: var(--sols-muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
  .sols-sticky-buy__price { font-weight: 700; }
  body.single-product .sols-footer { padding-bottom: 96px; }
  .sols-footer__inner { grid-template-columns: 1fr 1fr; gap: 24px; }
  .sols-toast { bottom: 84px; }
}

@media (max-width: 359px) {
  .sols-grid--4, .sols-grid--shop { grid-template-columns: 1fr; }
  .sols-footer__inner { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .sols *, .sols *::before, .sols *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* Specificity guards against Flatsome/base heading and button rules. */
body.sols .sols-footer__col h2 { color: #fff; }
body.sols .sols-search button { background: transparent !important; color: var(--sols-muted) !important; box-shadow: none !important; }
body.sols .sols-search button:hover { color: var(--sols-text) !important; }
body.sols .sols-option legend, body.sols .sols-specs dt, body.sols .sols-specs dd { text-transform: none; letter-spacing: 0; border: 0; }
body.sols .sols-option legend { display: block; width: auto; float: left; margin: 0 0 10px; font-size: 14px; }
body.sols .sols-option > :not(legend):not(.sols-option__guide) { clear: both; }
body.sols .sols-option__guide { position: static; float: right; min-height: 24px; color: var(--sols-text); text-decoration: underline; text-underline-offset: 3px; }
body.sols .sols-specs dd { font-weight: 500; }
body.sols .woocommerce-shipping-destination { display: none; }

/* Cart/checkout polish */
.sols-page-title { margin: 0 0 20px; font-size: clamp(24px, 3vw, 32px); font-weight: 800; }
body.sols .has-border, body.sols .checkout .has-border { border: 1px solid var(--sols-line) !important; border-radius: var(--sols-r-lg); }
body.sols .cart_totals .shop_table thead th, body.sols .cart_totals > h2 { border: 0 !important; padding-left: 0; font-size: 14px; letter-spacing: 0; }
body.sols .ux-quantity { display: inline-flex; align-items: center; border: 1px solid var(--sols-line); border-radius: 10px; overflow: hidden; background: #fff; }
body.sols .ux-quantity .ux-quantity__button { width: 36px; min-height: 40px; margin: 0; border: 0 !important; background: #fff !important; color: var(--sols-text) !important; box-shadow: none !important; font-size: 16px; }
body.sols .ux-quantity input.qty { width: 40px; min-height: 40px; margin: 0; border: 0 !important; box-shadow: none; text-align: center; }
body.sols .woocommerce-privacy-policy-text p { color: var(--sols-muted); font-size: 12px; }
body.sols .woocommerce-checkout h3, body.sols .woocommerce-checkout #order_review_heading { font-size: 16px; letter-spacing: 0; text-transform: none; }
body.sols .sols-breadcrumb ol { margin-left: 0; }
body.sols .quantity { display: inline-flex; align-items: center; border: 1px solid var(--sols-line); border-radius: 10px; overflow: hidden; background: #fff; }
body.sols .quantity input.minus, body.sols .quantity input.plus { width: 36px; min-height: 40px; margin: 0; padding: 0; border: 0 !important; border-radius: 0; background: #fff !important; color: var(--sols-text) !important; box-shadow: none !important; font-size: 16px; }
body.sols .quantity input.qty { width: 40px; min-height: 40px; margin: 0; border: 0 !important; box-shadow: none; text-align: center; }
body.sols .cart_totals thead th, body.sols .cart_totals thead tr, body.sols .cart_totals table thead * { border: 0 !important; outline: 0 !important; box-shadow: none !important; padding-left: 0; }
body.sols .button, body.sols .checkout-button, body.sols #place_order { display: inline-flex; align-items: center; justify-content: center; gap: 8px; line-height: 1.2; padding-top: 0; padding-bottom: 0; }

/* =====================================================================
   Header (FootWear layout): dark utility bar + single main row
   ===================================================================== */
.sols-topbar { background: #141414; color: #E4E7EC; font-size: 12px; }
.sols-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 36px; }
body.sols .sols-topbar .sols-nav ul { display: flex; gap: 0; margin: 0; padding: 0; }
body.sols .sols-topbar .sols-nav > ul > li + li::before { content: ""; display: inline-block; width: 1px; height: 12px; margin: 0 2px; background: #3F444B; vertical-align: middle; }
body.sols .sols-topbar .sols-nav > ul > li { display: flex; align-items: center; }
body.sols .sols-topbar .sols-nav a, body.sols .sols-topbar .sols-nav__toggle { min-height: 36px; padding: 0 12px; color: #E4E7EC; font-size: 12px; font-weight: 500; }
body.sols .sols-topbar .sols-nav > ul > li:first-child > a { padding-left: 0; }
body.sols .sols-topbar .sols-nav a:hover, body.sols .sols-topbar .sols-nav__toggle:hover { color: #fff; }
body.sols .sols-topbar .sols-nav__menu a { min-height: 40px; color: var(--sols-text); font-size: 14px; }
.sols-topbar__right { display: flex; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; }
.sols-topbar__right li { display: flex; align-items: center; margin: 0; }
.sols-topbar__right li + li::before { content: ""; width: 1px; height: 12px; margin: 0 12px; background: #3F444B; }
.sols-topbar__right a, .sols-topbar__right span { color: #E4E7EC; text-decoration: none; }
.sols-topbar__right a:hover { color: #fff; }
.sols-header__row { min-height: 76px; }
.sols-header__search { max-width: 620px; }
body.sols .sols-header .sols-search input[type="search"] { height: 46px; border-radius: 999px; padding-left: 22px; background: #fff; }
.sols-header__divider { width: 1px; height: 24px; margin: 0 8px; background: var(--sols-line); }
.sols-header__cart { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 8px; color: var(--sols-text); font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.sols-header__cart:hover { color: var(--sols-accent-text); }
.sols-header__cart .sols-cart-count { position: static; min-width: 0; height: auto; padding: 0; background: none !important; color: inherit; font-size: inherit; line-height: inherit; }

/* =====================================================================
   Homepage (FootWear layout)
   ===================================================================== */
body.home.sols, body.home.sols #main, body.home.sols #wrapper { background: #fff; }
.fw-home { padding-bottom: 72px; }
.fw-pill {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; margin: 0; padding: 0 28px;
  border: 0; border-radius: 999px; color: #fff; background: var(--sols-cta); font: 600 14px/1 var(--sols-font); text-decoration: none; text-transform: none; letter-spacing: 0; cursor: pointer;
  transition: background-color 150ms ease;
}
.fw-pill:hover { color: #fff; background: #000; }
.fw-pill--light { color: var(--sols-text); background: #fff; }
.fw-pill--light:hover { color: var(--sols-text); background: #F2F3F5; }
.fw-center { display: flex; justify-content: center; gap: 12px; margin: 36px 0 0; }
.fw-center [hidden] { display: none; }
.fw-heading { max-width: 620px; margin: 0 auto 28px; text-align: center; }
.fw-heading h2 { margin: 0 0 12px; font-size: clamp(26px, 3.2vw, 44px); font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; }
.fw-heading p { margin: 0; color: #8A8F98; font-size: 15px; line-height: 1.6; }

/* Hero */
.fw-hero { display: grid; grid-template-columns: minmax(0, 1.68fr) minmax(0, 1fr); gap: 20px; padding-top: 24px; }
.fw-hero__feature, .fw-hero__promo { position: relative; min-height: 380px; overflow: hidden; border-radius: 20px; }
.fw-hero__feature { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); align-items: center; gap: 8px; padding: 40px 32px 40px 48px; background: #F4F4F4; }
.fw-hero__eyebrow { margin: 0 0 10px; color: #E8590C; font-size: 18px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.01em; }
body.sols .fw-hero__title { margin: 0 0 16px; font-size: clamp(32px, 3.4vw, 48px); font-weight: 800; line-height: 1.12; text-transform: uppercase; letter-spacing: -0.01em; }
.fw-hero__body { max-width: 340px; margin: 0 0 28px; color: #8A8F98; font-size: 14px; line-height: 1.6; }
.fw-hero__media img { display: block; width: 112%; max-width: none; height: auto; margin-left: -4%; filter: drop-shadow(0 18px 18px rgba(0, 0, 0, 0.12)); }
.fw-hero__promo { display: flex; flex-direction: column; align-items: flex-start; padding: 36px 32px; background: linear-gradient(135deg, #DFA27B 0%, #E9B796 55%, #F1CFB5 100%); }
body.sols .fw-hero__promo-title { position: relative; z-index: 1; max-width: 340px; margin: 0 0 14px; color: #fff; font-size: clamp(26px, 2.5vw, 36px); font-weight: 800; line-height: 1.15; text-transform: uppercase; }
.fw-hero__promo-body { position: relative; z-index: 1; max-width: 250px; margin: 0 0 24px; color: rgba(255, 255, 255, 0.94); font-size: 13px; line-height: 1.6; }
.fw-hero__promo .fw-pill { position: relative; z-index: 1; }
.fw-hero__promo-img { position: absolute; right: -18%; bottom: -10%; width: 82%; height: auto; transform: rotate(-14deg); opacity: 0.95; pointer-events: none; }

/* Deals rail */
.fw-deals { margin-top: 20px; }
.fw-deals__panel { padding: 20px 24px 24px; border-radius: 20px; background: #F4F4F4; }
.fw-deals__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
body.sols .fw-deals__head h2 { margin: 0; font-size: 20px; font-weight: 600; }
.fw-deals__pill { padding: 5px 12px; border-radius: 999px; color: #fff; background: #C2410C; font-size: 12px; font-weight: 600; white-space: nowrap; }
.fw-deals__viewport { position: relative; margin-right: -24px; }
.fw-deals__rail { display: grid; grid-auto-columns: 230px; grid-auto-flow: column; gap: 16px; margin: 0; padding: 2px 24px 4px 0; overflow-x: auto; list-style: none; scroll-snap-type: x mandatory; scrollbar-width: none; }
.fw-deals__rail::-webkit-scrollbar { display: none; }
.fw-deals__item { margin: 0; scroll-snap-align: start; }
.fw-deals__next { position: absolute; top: 40%; right: 12px; z-index: 4; display: grid; place-items: center; width: 40px; height: 40px; min-height: 40px; margin: 0; padding: 0; border: 1px solid var(--sols-line); border-radius: 50%; color: var(--sols-text); background: #fff; box-shadow: var(--sols-shadow); cursor: pointer; }
.fw-deals__next[hidden] { display: none; }

/* Card variants */
.sols-card--compact { border: 0; border-radius: 16px; box-shadow: none; }
.sols-card--compact .sols-card__media { aspect-ratio: 1 / 0.86; margin: 8px 8px 0; background: #F7F7F8; }
.sols-card--compact .sols-card__body { gap: 2px; padding: 10px 12px 14px; }
.sols-card--compact .sols-card__title { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.sols-card--compact .sols-card__meta { font-size: 12px; }
.sols-card--compact .sols-card__price { flex-direction: column-reverse; align-items: flex-start; gap: 0; padding-top: 4px; }
.sols-card--compact .sols-card__now { font-size: 16px; }
.sols-card--compact .sols-card__price del { font-size: 12px; }
.sols-card--compact .sols-card__brand { font-size: 11px; }
.sols-card--tile { border: 0; border-radius: 0; background: transparent; overflow: visible; }
.sols-card--tile:hover, .sols-card--tile:focus-within { box-shadow: none; }
.sols-card--tile .sols-card__media { aspect-ratio: 6 / 5; margin: 0; border-radius: 16px; background: #F4F4F4; }
.sols-card--tile .sols-badge { top: 14px; left: 16px; padding: 0; background: none; box-shadow: none; color: #C2410C; font-size: 14px; font-weight: 700; }
.sols-card--tile .sols-wish { top: 10px; right: 10px; width: 40px; height: 40px; background: transparent; box-shadow: none; }
.sols-card--tile .sols-wish:hover { background: #fff; }
.sols-card--tile .sols-card__body { gap: 3px; padding: 14px 2px 0; }
.sols-card--tile .sols-card__brand { display: none; }
.sols-card--tile .sols-card__title { font-size: 15px; font-weight: 500; }
.sols-card--tile .sols-card__now { font-size: 18px; font-weight: 600; }

/* Product grid + pill filters */
.fw-shop { margin-top: 72px; }
.fw-filters { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; margin: 0 0 32px; }
.fw-select { position: relative; display: inline-flex; align-items: center; margin: 0; }
.fw-select select {
  width: 170px; height: 46px; margin: 0; padding: 0 44px 0 22px; border: 1px solid transparent; border-radius: 999px;
  background: #F4F4F4; box-shadow: none; color: var(--sols-text); font: 500 14px var(--sols-font); cursor: pointer;
  -webkit-appearance: none; appearance: none; background-image: none;
}
.fw-select select:hover { border-color: #D0D5DD; }
.fw-select .sols-icon { position: absolute; right: 12px; width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: #fff; pointer-events: none; }
.fw-select.is-active select { border-color: var(--sols-text); background: #fff; }
.fw-filters__divider { width: 1px; height: 28px; margin: 0 10px; background: #D0D5DD; }
.fw-filters__more { display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 22px; border-radius: 999px; background: #F4F4F4; color: var(--sols-text); font-size: 14px; font-weight: 500; text-decoration: none; }
.fw-filters__more:hover { color: var(--sols-text); background: #ECECEE; }
.fw-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.fw-grid > [hidden] { display: none; }

/* Brand stores */
.fw-brands { margin-top: 80px; }
.fw-brands__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.fw-store[hidden] { display: none; }
.fw-store__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.fw-store__mark { display: grid; flex: none; place-items: center; width: 48px; height: 48px; border-radius: 10px; background: #F4F4F4; color: var(--sols-text); font-size: 20px; font-weight: 800; }
.fw-store__mark--nike { background: #171717; color: #fff; }
.fw-store__mark--adidas { background: #1F3C88; color: #fff; }
.fw-store__mark--new-balance { background: #C8312B; color: #fff; }
.fw-store__mark--converse { background: #2B2B2B; color: #fff; }
.fw-store__mark--puma { background: #E8590C; color: #fff; }
.fw-store__mark--asics { background: #23408E; color: #fff; }
.fw-store__meta { flex: 1; min-width: 0; }
body.sols .fw-store__meta h3 { margin: 0; font-size: 15px; font-weight: 700; }
.fw-store__meta p { margin: 2px 0 0; color: #8A8F98; font-size: 12px; }
.fw-store__visit { display: inline-flex; align-items: center; min-height: 40px; padding: 0 4px; color: var(--sols-text); font-size: 14px; font-weight: 600; text-decoration: none; }
.fw-store__visit:hover { color: #C2410C; }
.fw-store__thumbs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.fw-store__thumbs li { margin: 0; }
.fw-store__thumbs a { display: block; overflow: hidden; border-radius: 12px; background: #F4F4F4; }
.fw-store__thumbs img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 0.8; object-fit: contain; transition: transform 250ms ease; }
.fw-store__thumbs a:hover img { transform: scale(1.04); }

/* Dark banner */
.fw-banner { margin-top: 80px; }
.fw-banner__panel { position: relative; display: grid; min-height: 380px; place-items: center; overflow: hidden; border-radius: 20px; background: radial-gradient(ellipse at 50% 20%, #3A3A3A 0%, #181818 65%, #111 100%); text-align: center; }
.fw-banner__art { position: absolute; inset: 0; display: flex; align-items: center; justify-content: space-between; opacity: 0.22; filter: grayscale(1) brightness(1.4); pointer-events: none; }
.fw-banner__art img { width: 36%; height: auto; transform: rotate(-12deg); }
.fw-banner__art img:nth-child(2) { width: 30%; margin-top: -150px; transform: rotate(6deg); }
.fw-banner__copy { position: relative; z-index: 1; max-width: 720px; padding: 48px 24px; }
body.sols .fw-banner__copy h2 { margin: 0 0 16px; color: #fff; font-size: clamp(28px, 3.4vw, 46px); font-weight: 800; line-height: 1.12; text-transform: uppercase; }
.fw-banner__copy p { max-width: 520px; margin: 0 auto 28px; color: #B8BCC4; font-size: 14px; line-height: 1.6; }

/* Footer (FootWear layout) */
.sols-footer__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 48px; }
.sols-footer__links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
.sols-news { max-width: 460px; margin: 20px 0 16px; padding: 20px; border-radius: 14px; background: #232323; }
.sols-news__copy { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: start; }
body.sols .sols-news__title { margin: 0; color: #fff; font-size: 17px; font-weight: 600; line-height: 1.3; }
.sols-news__copy p { margin: 0; color: #98A2B3; font-size: 12px; line-height: 1.5; }
.sols-news__row { display: flex; align-items: center; gap: 12px; margin-top: 16px; }
body.sols .sols-news__row input[type="email"] { flex: 1; min-width: 0; height: 40px; margin: 0; padding: 0; border: 0; border-bottom: 1px solid #4A4F57; border-radius: 0; background: transparent; box-shadow: none; color: #fff; font: 400 14px var(--sols-font); }
.sols-news__row input::placeholder { color: #8A8F98; }
.sols-news__row .fw-pill { min-height: 40px; padding: 0 20px; }
.sols-news__msg { min-height: 0; margin: 10px 0 0; color: #D0D5DD; font-size: 12px; }
.sols-news__msg:empty { display: none; }
.sols-news__msg.is-error { color: #FDA29B; }

@media (max-width: 1199px) {
  .fw-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fw-select select { width: 150px; }
}

@media (max-width: 1023px) {
  .fw-hero { grid-template-columns: 1fr; }
  .fw-hero__promo { min-height: 260px; }
  .fw-hero__promo-img { width: 48%; right: -6%; bottom: -14%; }
  .fw-brands__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sols-footer__inner { grid-template-columns: 1fr; }
}

@media (max-width: 849px) {
  .sols-topbar { display: none; }
  .sols-header__row { min-height: 60px; }
  .sols-header__actions .sols-header__wish, .sols-header__divider { display: none; }
  .sols-header__cart-text { font-size: 13px; }
}

@media (max-width: 767px) {
  .fw-home { padding-bottom: 48px; }
  .fw-hero { padding-top: 16px; gap: 12px; }
  .fw-hero__feature { grid-template-columns: 1fr; min-height: 0; padding: 28px 22px 16px; }
  .fw-hero__media { order: -1; }
  .fw-hero__media img { width: 92%; margin: 0 auto; }
  .fw-hero__eyebrow { font-size: 14px; }
  .fw-hero__promo { min-height: 240px; padding: 26px 22px; }
  .fw-hero__promo-img { width: 62%; right: -14%; bottom: -12%; }
  .fw-deals__panel { padding: 16px; }
  .fw-deals__viewport { margin-right: -16px; }
  .fw-deals__rail { grid-auto-columns: 62%; gap: 12px; padding-right: 16px; }
  .fw-deals__next { display: none; }
  .fw-shop, .fw-brands, .fw-banner { margin-top: 56px; }
  .fw-filters { flex-wrap: nowrap; justify-content: flex-start; margin-inline: calc(var(--sols-gutter) * -1); padding-inline: var(--sols-gutter); overflow-x: auto; scrollbar-width: none; }
  .fw-filters::-webkit-scrollbar { display: none; }
  .fw-select select { width: 136px; }
  .fw-filters__divider { display: none; }
  .fw-filters__more { flex: none; }
  .fw-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
  .sols-card--tile .sols-badge { top: 10px; left: 12px; font-size: 12px; }
  .sols-card--tile .sols-card__title { font-size: 14px; }
  .sols-card--tile .sols-card__now { font-size: 16px; }
  .fw-brands__grid { grid-template-columns: 1fr; gap: 28px; }
  .fw-banner__panel { min-height: 320px; }
  .sols-footer__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sols-news__copy { grid-template-columns: 1fr; gap: 6px; }
}
.fw-heading { max-width: 780px; }
.fw-heading p { max-width: 520px; margin-inline: auto; }
.fw-hero__promo-img { right: -8%; bottom: -8%; width: 68%; }
body.sols .sols-news__row .fw-pill { background: #fff !important; color: #171717 !important; border: 0 !important; }
body.sols .sols-news__row .fw-pill:hover { background: #F2F3F5 !important; }
@media (max-width: 767px) { .fw-select select { width: auto; min-width: 116px; } }
@media (min-width: 768px) {
  .sols-toast { left: auto; right: 24px; transform: translateY(8px); }
  .sols-toast.is-visible { transform: none; }
}

/* Logo image */
.sols-logo img { display: block; width: auto; height: 42px; }
.sols-logo--light img { height: 44px; }
.sols-drawer__logo { display: block; width: auto; height: 30px; }
@media (max-width: 849px) { .sols-header .sols-logo img { height: 32px; } }
