/* assets/css/app.css — Main theme stylesheet */

/* ─── Base ──────────────────────────────────────────────── */
* {
  box-sizing: border-box;
}

/* Inline SVGs sit on the text baseline and leave descender space below,
   which makes icon wrappers taller and throws off flex centering. */
svg {
  display: block;
}

span:has(> svg) {
  line-height: 0;
}

html {
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: var(--color-border) var(--color-bg-default);
}

body {
  font-family: var(--font-secondary);
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
  background-color: var(--color-bg-default);
  margin: 0;
  -webkit-font-smoothing: antialiased;
}

body.no-scroll {
  overflow: hidden;
}

/* Lock scroll on html so body overflow does not trap position:fixed
   overlays under the sticky header (ask modal, etc.). */
html:has(body.ask-modal-open),
html:has(body.account-modal-open) {
  overflow: hidden;
}

body.ask-modal-open,
body.account-modal-open {
  overflow: visible;
}

.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-primary);
  margin: 0 0 var(--space-4);
  font-weight: var(--font-weight-regular);
}

a {
  text-decoration: none;
  color: inherit;
  transition: var(--transition-base);
}

ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* ─── Shared button ─────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-3) var(--space-6);
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 0;
  border: 1px solid var(--color-primary);
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast);
}

.btn--dark {
  background-color: #000;
  color: #fff;
}

.btn--dark:hover,
.btn--dark:focus-visible {
  background-color: #333;
  color: #fff;
  border-color: #333;
}

.btn--light {
  background-color: var(--color-bg-default);
  color: var(--color-primary);
  border-color: var(--color-primary);
}

.btn--light:hover,
.btn--light:focus-visible {
  background-color: var(--color-bg-light);
  color: var(--color-primary);
  border-color: var(--color-primary);
}

/* ─── Header shell (overrides fixed transparent header) ─── */
.site-header {
  position: relative;
  color: var(--color-text-black);
  background-color: var(--color-bg-default);
  padding: 0;
  border-bottom: none;
  mix-blend-mode: normal;
}

.site-header__sticky-sentinel {
  height: 1px;
  width: 100%;
  margin-bottom: -1px;
  pointer-events: none;
  visibility: hidden;
}

.site-header__sticky {
  background-color: var(--color-bg-default);
}

body.has-sticky-header .site-header {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
}

.site-header .site-branding img,
.site-header__sticky .site-branding img {
  filter: none;
}

/* --- Page transition loader --- */
.page-loading-overlay {
  position: fixed;
  inset: 0;
  /* Sit under the sticky header so the logo never changes stacking. */
  z-index: calc(var(--z-sticky) - 1);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg-default);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.page-loading-overlay.is-animated {
  transition:
    opacity var(--transition-base),
    visibility var(--transition-base);
}

html.page-loading,
body.page-loading {
  overflow: hidden;
}

.page-loading-overlay.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
}

body.page-loading .mobile-nav,
body.page-loading .shop-filters-drawer,
body.page-loading .search-drawer,
body.page-loading .search-drawer__overlay,
body.page-loading .cart-drawer,
body.page-loading .wishlist-drawer,
body.page-loading .settings-drawer,
body.page-loading .ask-modal,
body.page-loading .account-modal {
  visibility: hidden;
  pointer-events: none;
}

.page-loading-overlay__spinner {
  display: block;
  flex-shrink: 0;
  width: var(--space-10);
  height: var(--space-10);
  min-width: var(--space-10);
  min-height: var(--space-10);
  box-sizing: border-box;
  border: var(--stroke-focus) solid var(--color-text-black);
  border-right-color: transparent;
  border-radius: var(--radius-full);
  animation: spinner-rotate 0.55s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  .page-loading-overlay__spinner {
    animation-name: spinner-pulse;
    animation-duration: var(--transition-slow);
    animation-timing-function: ease-in-out;
    border-right-color: var(--color-text-black);
    opacity: 0.35;
  }
}

/* ─── Promo bar (marquee carousel) ──────────────────────── */
.promo-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: var(--color-bg-dark);
  color: var(--color-text-white);
  z-index: calc(var(--z-sticky) + 1);
  display: flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 28px;
  padding-top: env(safe-area-inset-top, 0px);
  overflow: hidden;
}

.promo-bar__viewport {
  flex: 1;
  overflow: hidden;
  min-width: 0;
}

.promo-bar__track {
  display: flex;
  width: max-content;
  animation: promo-marquee var(--promo-marquee-duration, 30s) linear infinite;
}

.promo-bar.is-paused .promo-bar__track {
  animation-play-state: paused;
}

@keyframes promo-marquee {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

.promo-bar__sequence {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.promo-bar__item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
  padding-inline-end: var(--space-2);
  white-space: nowrap;
}

.promo-bar__separator {
  font-size: var(--font-size-xs);
  line-height: 1;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.08em;
  padding-inline: var(--space-1);
}

.promo-bar__text,
.promo-bar__link,
.promo-bar__separator {
  color: var(--color-text-white);
  font-family: var(--font-mono);
}

.promo-bar__text,
.promo-bar__link {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.2;
}

.promo-bar__link {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.promo-bar__link:hover,
.promo-bar__link:focus-visible {
  opacity: 0.7;
}

.promo-bar__control {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-raised);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 var(--space-4) 0 var(--space-12);
  border: 0;
  background: linear-gradient(
    to right,
    transparent,
    var(--color-bg-dark) 45%,
    var(--color-bg-dark) 100%
  );
  color: inherit;
  cursor: pointer;
  transition: opacity var(--transition-fast);
}

@media (hover: hover) {
  .promo-bar__control {
    opacity: 0;
  }

  .promo-bar:hover .promo-bar__control,
  .promo-bar.is-paused .promo-bar__control,
  .promo-bar__control:focus-visible {
    opacity: 1;
  }
}

.promo-bar__control-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-white);
}

.promo-bar__control-svg {
  width: 10px;
  height: 12px;
}

.promo-bar__control-icon--play {
  display: none;
}

.promo-bar.is-paused .promo-bar__control-icon--pause {
  display: none;
}

.promo-bar.is-paused .promo-bar__control-icon--play {
  display: flex;
}

@media (prefers-reduced-motion: reduce) {
  .promo-bar__track {
    animation: none;
    transform: none;
    justify-content: center;
    width: 100%;
  }

  .promo-bar__sequence[aria-hidden="true"] {
    display: none;
  }

  .promo-bar__control {
    display: none;
  }
}

body:has(.promo-bar) #masthead {
  margin-top: var(
    --promo-bar-offset,
    calc(32px + env(safe-area-inset-top, 0px))
  );
  top: var(--promo-bar-offset, calc(32px + env(safe-area-inset-top, 0px)));
}

/* The promo bar is a sibling of the sticky header and sits at z-sticky + 1.
   Drawers rendered inside #masthead cannot escape that header stacking
   context, so they paint under the promo bar unless the header is raised. */
body.has-sticky-header:is(
    .settings-drawer-open,
    .drawer-cart-open,
    .drawer-wishlist-open
  )
  .site-header,
body.has-sticky-header:has(
    .settings-drawer.is-active,
    .cart-drawer.is-active,
    .wishlist-drawer.is-active,
    .search-drawer.is-active
  )
  .site-header,
body.has-sticky-header .site-header.search-active {
  z-index: var(--z-modal);
}

/* Keep the promo bar above page content when overlays open. --z-base lets
   product cards paint through it; overlays still sit at --z-overlay / --z-modal. */
body:has(
    .settings-drawer.is-active,
    .cart-drawer.is-active,
    .wishlist-drawer.is-active,
    .search-drawer.is-active,
    .search-drawer__overlay.is-active,
    .mobile-nav.is-active,
    .shop-filters-drawer.is-active,
    .sticky-atc-sheet.is-active,
    .product-gallery-lightbox.is-active,
    .review-lightbox.is-active,
    .promo-banner.is-active,
    .ask-modal.is-active,
    .account-modal.is-active
  )
  .promo-bar {
  z-index: var(--z-chrome);
}

/* Full-viewport modals sit outside #masthead, so the sticky header drops
   below the overlay while remaining above isolated page content. */
body.ask-modal-open .site-header,
body:has(.ask-modal.is-active) .site-header,
body.account-modal-open .site-header,
body:has(.account-modal.is-active) .site-header {
  z-index: var(--z-chrome);
}

/* Trap composited descendants (product images, hover layers, carousels)
   inside each band so they cannot paint through chrome or the previous section.
   Do not isolate .site-main — shop filters and other overlays live there. */
.hero,
.product-gallery,
.focus-grid,
.category-grid,
.shop-catalog-main,
.about-hero,
.about-created,
.about-story,
.about-mission,
.site-footer {
  position: relative;
  z-index: var(--z-base);
  isolation: isolate;
}

/* ─── Main header row ───────────────────────────────────── */
.main-header__container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: var(--space-4);
  max-width: 1650px;
  margin: 0 auto;
  padding: var(--space-4);
  position: relative;
}

.main-header__search {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  width: auto;
  max-width: none;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}

.main-header__branding {
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

.main-header__branding .custom-logo-link {
  display: block;
  line-height: 0;
  width: 120px;
  max-width: 100%;
  flex-shrink: 0;
}

.main-header__branding img,
.main-header__branding .custom-logo {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.main-header__logo-text {
  font-family: var(--font-secondary);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-black);
  line-height: var(--line-height-tight);
}

.main-header__actions {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: var(--space-6);
}

.main-header__cta {
  font-family: var(--font-mono);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: var(--letter-spacing-button);
  gap: var(--space-2);
  padding: var(--space-3);
  white-space: nowrap;
  cursor: pointer;
}

.main-header__cta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.main-header__cta-icon svg {
  width: var(--space-4);
  height: var(--space-4);
  display: block;
}

.main-header__locale {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 0;
  border: 0;
  background: none;
  font-family: var(--font-secondary);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-black);
  white-space: nowrap;
  cursor: pointer;
  transition: opacity var(--transition-fast);
}

.main-header__locale:hover,
.main-header__locale:focus-visible {
  opacity: 0.6;
}

.main-header__locale-flag {
  width: 26px;
  height: 26px;
  border-radius: 999px;
  object-fit: cover;
}

.main-header__locale-label::before {
  content: none;
}

.main-header__locale-flag + .main-header__locale-label::before {
  content: "•";
  margin-right: var(--space-1);
  color: var(--color-text-muted);
}

.main-header__action {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font-family: var(--font-secondary);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-black);
  text-decoration: none;
  transition: opacity var(--transition-fast);
  white-space: nowrap;
}

.main-header__action:hover,
.main-header__action:focus-visible {
  opacity: 0.6;
}

.main-header__action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.main-header__action-icon svg {
  width: 20px;
  height: 20px;
}

.menu-toggle {
  display: none;
}

.main-header__start {
  display: none;
}

.main-header__search-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--color-text-black);
  transition: opacity var(--transition-fast);
}

.main-header__search-toggle:hover,
.main-header__search-toggle:focus-visible {
  opacity: 0.6;
}

/* ─── Nav row ───────────────────────────────────────────── */
.nav-row {
  background-color: #fff;
}

.nav-row__menu {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-8);
  list-style: none;
  margin: 0;
  padding: var(--space-2);
}

.nav-row__menu > li > a {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-regular);
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--color-text-black);
  padding: var(--space-1) 0;
  transition:
    opacity var(--transition-fast),
    color var(--transition-fast);
}

.nav-row__menu > li > a:hover,
.nav-row__menu > li > a:focus-visible {
  opacity: 0.6;
}

/* ─── Search drawer ─────────────────────────────────────── */
.site-header.search-active {
  z-index: var(--z-modal);
}

.site-header.search-active .site-header__sticky {
  position: relative;
  z-index: var(--z-modal);
}

.search-drawer {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: 100%;
  z-index: var(--z-modal);
  background-color: var(--color-bg-default);
  visibility: hidden;
  opacity: 0;
  transform: translateY(calc(var(--space-2) * -1));
  transition:
    opacity var(--transition-base),
    transform var(--transition-base),
    visibility var(--transition-base);
  pointer-events: none;
}

.search-drawer.is-active {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.search-drawer__overlay {
  position: fixed;
  inset: 0;
  background-color: var(--color-overlay-dark);
  z-index: var(--z-overlay);
  visibility: hidden;
  opacity: 0;
  transition:
    opacity var(--transition-base),
    visibility var(--transition-base);
  pointer-events: none;
}

.search-drawer__overlay.is-active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

@media (min-width: 1025px) {
  .overlay-backdrop.is-active.overlay-ready,
  .is-active > .overlay-backdrop.overlay-ready {
    cursor:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='24' r='24' fill='%23000'/%3E%3Cpath d='M18 18L30 30M30 18L18 30' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")
        24 24,
      pointer;
  }
}

.search-drawer__body {
  max-height: min(70vh, 40rem);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--color-border) transparent;
}

.search-drawer__container {
  max-width: var(--space-max);
  margin: 0 auto;
  padding: var(--space-6) var(--space-10) var(--space-8);
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.search-drawer__input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.search-drawer__input {
  width: 100%;
  height: 2.5rem;
  padding: 0 var(--space-4);
  border: 1px solid var(--color-border-input);
  background-color: var(--color-bg-default);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  color: var(--color-text-black);
  outline: none;
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
}

.search-drawer__input::-webkit-search-decoration,
.search-drawer__input::-webkit-search-cancel-button,
.search-drawer__input::-webkit-search-results-button,
.search-drawer__input::-webkit-search-results-decoration {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}

.search-drawer__input::-ms-clear {
  display: none;
  width: 0;
  height: 0;
}

.search-drawer__input::placeholder {
  color: var(--color-text-placeholder);
}

.search-drawer__input:focus {
  border-color: var(--color-text-black);
}

.search-drawer__clear {
  position: absolute;
  top: 50%;
  right: var(--space-4);
  transform: translateY(-50%);
  padding: 0;
  border: 0;
  background: transparent;
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--letter-spacing-label);
  text-transform: uppercase;
  color: var(--color-text-muted);
  cursor: pointer;
  transition: opacity var(--transition-fast);
}

.search-drawer__clear:hover,
.search-drawer__clear:focus-visible {
  opacity: 0.6;
}

.search-drawer__input-wrapper.has-clear .search-drawer__input {
  padding-right: var(--space-12);
}

.search-drawer__close {
  display: none;
}

.search-drawer__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.search-drawer__loading,
.search-drawer__empty {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.search-drawer:not(.has-query) .search-drawer__results {
  display: none;
}

.search-drawer__results {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.search-drawer__label {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.1em;
  line-height: var(--line-height-tight);
  text-transform: uppercase;
  color: var(--color-text-black);
}

.search-drawer__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.search-drawer__tag {
  display: inline-flex;
  align-items: center;
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--color-border-input);
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-text-black);
  transition:
    border-color var(--transition-fast),
    background-color var(--transition-fast);
}

.search-drawer__tag:hover,
.search-drawer__tag:focus-visible {
  border-color: var(--color-text-black);
  background-color: var(--color-bg-light);
}

.search-drawer__tag--action {
  appearance: none;
  background-color: var(--color-bg-light);
  cursor: pointer;
}

.search-drawer__trending {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.search-drawer__results-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--space-4);
}

.search-drawer__product {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  text-decoration: none;
  color: var(--color-text-black);
}

.search-drawer__product-image {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.search-drawer__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: var(--space-2);
}

.search-drawer__img--secondary {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity var(--transition-base);
}

.search-drawer__product:hover .search-drawer__img--secondary,
.search-drawer__product:focus-visible .search-drawer__img--secondary {
  opacity: 1;
}

.search-drawer__product-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.search-drawer__product-name {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
}

.search-drawer__product-price {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-black);
}

.search-drawer__product-price .amount {
  font-weight: inherit;
}

/* ─── Shared panel header (drawers + modals) ────────────── */
.panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  flex-shrink: 0;
  padding: var(--space-2) var(--space-4);
}

.panel-header__title {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
  text-transform: uppercase;
}

.panel-header__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-8);
  height: var(--space-8);
  padding: 0;
  border: 0;
  border-radius: var(--radius-full);
  background-color: var(--color-black);
  color: var(--color-text-white);
  cursor: pointer;
  flex-shrink: 0;
  transition:
    opacity var(--transition-fast),
    transform var(--transition-fast);
}

.panel-header__close:hover,
.panel-header__close:focus-visible {
  opacity: 0.75;
}

.panel-header__close:active {
  transform: scale(0.97);
}

.panel-header__close-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.panel-header__close-icon svg {
  width: var(--space-4);
  height: var(--space-4);
}

@media (prefers-reduced-motion: reduce) {
  .panel-header__close:active {
    transform: none;
  }
}

/* ─── Settings drawer (currency / language) ─────────────── */
.settings-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  max-width: 28.125rem;
  height: 100%;
  z-index: var(--z-modal);
  background-color: var(--color-bg-default);
  color: var(--color-text-black);
  visibility: hidden;
  transform: translateX(100%);
  transition:
    transform var(--transition-base),
    visibility var(--transition-base);
  display: flex;
  flex-direction: column;
}

.settings-drawer.is-active {
  visibility: visible;
  transform: translateX(0);
}

.settings-drawer__overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--color-overlay-heavy);
  z-index: var(--z-overlay);
  visibility: hidden;
  opacity: 0;
  transition:
    opacity var(--transition-base),
    visibility var(--transition-base);
  pointer-events: none;
}

.settings-drawer__overlay.is-active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.settings-drawer__form {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  padding: 0 var(--space-4) var(--space-4);
  flex: 1;
}

.settings-drawer__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.settings-drawer__label {
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-black);
}

.settings-drawer__select-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.settings-drawer__select-flag {
  position: absolute;
  left: var(--space-3);
  width: 1.25rem;
  height: 1.25rem;
  border-radius: var(--radius-sm);
  object-fit: contain;
  pointer-events: none;
  z-index: var(--z-chrome);
}

.settings-drawer__select {
  width: 100%;
  height: 2.75rem;
  padding: 0 var(--space-10) 0 var(--space-10);
  border: 1px solid var(--color-border-input);
  background-color: var(--color-bg-default);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  color: var(--color-text-black);
  appearance: none;
  -webkit-appearance: none;
  outline: none;
  border-radius: 0;
}

.settings-drawer__select-wrap--language .settings-drawer__select {
  padding-left: var(--space-3);
}

.settings-drawer__select:focus {
  border-color: var(--color-text-black);
}

.settings-drawer__select-chevron {
  position: absolute;
  right: var(--space-3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  color: var(--color-text-black);
}

.settings-drawer__select-chevron svg {
  width: 1rem;
  height: 1rem;
}

.settings-drawer__note {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
  line-height: var(--line-height-base);
}

.settings-drawer__save {
  width: 100%;
  margin-top: auto;
  text-transform: uppercase;
  cursor: pointer;
}

body.settings-drawer-open {
  overflow: hidden;
}

/* ─── Ask modal ─────────────────────────────────────────── */
.ask-modal {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-6);
  visibility: hidden;
  pointer-events: none;
}

.ask-modal.is-active {
  visibility: visible;
  pointer-events: auto;
}

.ask-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: var(--color-overlay-heavy);
  opacity: 0;
  transition: opacity var(--transition-base);
}

.ask-modal.is-active .ask-modal__overlay {
  opacity: 1;
}

.ask-modal__dialog {
  position: relative;
  z-index: var(--z-raised);
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 28.125rem;
  height: 36rem;
  max-height: calc(100dvh - var(--space-12));
  background-color: var(--color-bg-default);
  color: var(--color-text-black);
  box-shadow: var(--shadow-md);
  opacity: 0;
  transform: scale(0.96) translateY(var(--space-4));
  transform-origin: center;
  transition:
    opacity var(--transition-base),
    transform var(--transition-base);
}

.ask-modal.is-active .ask-modal__dialog {
  opacity: 1;
  transform: scale(1) translateY(0);
}

.ask-modal__body {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.ask-modal__messages {
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.ask-modal__welcome {
  margin: auto 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-3);
  padding: var(--space-4) 0;
}

.ask-modal__welcome[hidden] {
  display: none;
}

.ask-modal__welcome-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-12);
  height: var(--space-12);
  color: var(--color-text-black);
}

.ask-modal__welcome-icon svg {
  width: var(--space-8);
  height: var(--space-8);
}

.ask-modal__welcome-title {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
  text-transform: uppercase;
}

.ask-modal__welcome-text {
  margin: 0;
  max-width: 18rem;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-base);
  color: var(--color-text-muted);
}

.ask-modal__suggestions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-2);
  width: 100%;
  margin-top: var(--space-3);
}

.ask-modal__suggestion {
  width: 100%;
  padding: var(--space-3) var(--space-4);
  border: var(--stroke-hairline) solid var(--color-border);
  background-color: var(--color-bg-default);
  color: var(--color-text-black);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-base);
  text-align: left;
  cursor: pointer;
  transition:
    background-color var(--transition-fast),
    border-color var(--transition-fast),
    transform var(--transition-fast);
}

.ask-modal__suggestion:hover,
.ask-modal__suggestion:focus-visible {
  background-color: var(--color-bg-light);
  border-color: var(--color-text-black);
}

.ask-modal__suggestion:active {
  transform: scale(0.97);
}

.ask-modal__message {
  display: flex;
  max-width: 85%;
}

.ask-modal__message--user {
  align-self: flex-end;
}

.ask-modal__message--assistant {
  align-self: flex-start;
}

.ask-modal__bubble {
  margin: 0;
  padding: var(--space-3) var(--space-4);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-base);
}

.ask-modal__message--user .ask-modal__bubble {
  background-color: var(--color-black);
  color: var(--color-text-white);
}

.ask-modal__message--assistant .ask-modal__bubble {
  background-color: var(--color-bg-muted);
  color: var(--color-text-black);
}

.ask-modal__composer {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-shrink: 0;
  padding: var(--space-4) var(--space-4)
    calc(var(--space-5) + env(safe-area-inset-bottom, 0px));
  border-top: var(--stroke-hairline) solid var(--color-border-light);
}

.ask-modal__input {
  flex: 1;
  min-width: 0;
  height: 2.75rem;
  padding: 0 var(--space-4);
  border: var(--stroke-hairline) solid var(--color-border-input);
  background-color: var(--color-bg-default);
  color: var(--color-text-black);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  outline: none;
  border-radius: 0;
}

.ask-modal__input::placeholder {
  color: var(--color-text-placeholder);
}

.ask-modal__input:focus {
  border-color: var(--color-text-black);
}

.ask-modal__send {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 0;
  background-color: var(--color-black);
  color: var(--color-text-white);
  cursor: pointer;
  transition:
    opacity var(--transition-fast),
    transform var(--transition-fast);
}

.ask-modal__send:hover,
.ask-modal__send:focus-visible {
  opacity: var(--opacity-hover);
}

.ask-modal__send:active:not(:disabled) {
  transform: scale(0.97);
}

.ask-modal__send:disabled {
  opacity: var(--opacity-disabled);
  cursor: default;
}

.ask-modal__send-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ask-modal__send-icon svg {
  width: var(--space-5);
  height: var(--space-5);
  display: block;
}

@media (max-width: 768px) {
  .ask-modal {
    padding: 0;
    align-items: stretch;
    justify-content: stretch;
  }

  .ask-modal__dialog {
    max-width: none;
    height: 100%;
    max-height: none;
    height: 100dvh;
    box-shadow: none;
    transform: translateY(var(--space-8));
  }

  .ask-modal.is-active .ask-modal__dialog {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ask-modal__overlay,
  .ask-modal__dialog {
    transition: opacity var(--transition-fast);
    transform: none;
  }

  .ask-modal.is-active .ask-modal__dialog {
    transform: none;
  }

  .ask-modal__suggestion:active,
  .ask-modal__send:active:not(:disabled) {
    transform: none;
  }
}

/* ─── Account modal ─────────────────────────────────────── */
.account-modal {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-6);
  visibility: hidden;
  pointer-events: none;
}

.account-modal.is-active {
  visibility: visible;
  pointer-events: auto;
}

.account-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: var(--color-overlay-heavy);
  opacity: 0;
  transition: opacity var(--transition-base);
}

.account-modal.is-active .account-modal__overlay {
  opacity: 1;
}

.account-modal__dialog {
  position: relative;
  z-index: var(--z-raised);
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 26.25rem;
  max-height: calc(100dvh - var(--space-12));
  background-color: var(--color-bg-default);
  color: var(--color-text-black);
  box-shadow: var(--shadow-md);
  opacity: 0;
  transform: scale(var(--scale-hidden)) translateY(var(--space-4));
  transform-origin: center;
  transition:
    opacity var(--transition-base),
    transform var(--transition-base);
}

.account-modal.is-active .account-modal__dialog {
  opacity: 1;
  transform: scale(1) translateY(0);
}

.account-modal__body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: var(--space-4);
}

.account-modal__notices {
  margin-bottom: var(--space-4);
}

.account-modal__notices .woocommerce-error,
.account-modal__notices .woocommerce-message,
.account-modal__notices .woocommerce-info {
  margin: 0 0 var(--space-3);
  padding: var(--space-3) var(--space-4);
  list-style: none;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-base);
}

.account-modal__notices .woocommerce-error {
  background-color: var(--color-bg-light);
  color: var(--color-error);
  border: var(--stroke-hairline) solid var(--color-error);
}

.account-modal__notices .woocommerce-message,
.account-modal__notices .woocommerce-info {
  background-color: var(--color-bg-light);
  color: var(--color-text-black);
  border: var(--stroke-hairline) solid var(--color-border);
}

.account-modal__panel[hidden] {
  display: none;
}

.account-modal__subtitle {
  margin: 0 0 var(--space-6);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-base);
  color: var(--color-text-muted);
}

.account-modal__form {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.account-modal__form .form-row {
  margin: 0;
  float: none;
  width: 100%;
}

.account-modal__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin: 0;
}

.account-modal__label {
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-label);
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.account-modal__field input[type="text"],
.account-modal__field input[type="email"],
.account-modal__field input[type="password"],
.account-modal__password input {
  width: 100%;
  min-height: 2.75rem;
  padding: 0 var(--space-4);
  border: var(--stroke-hairline) solid var(--color-border-input);
  border-radius: var(--radius-none);
  background-color: var(--color-bg-default);
  color: var(--color-text-black);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-regular);
  outline: none;
  transition: border-color var(--transition-fast);
}

.account-modal__field input:focus,
.account-modal__password:focus-within input {
  border-color: var(--color-text-black);
}

.account-modal__password {
  position: relative;
  display: flex;
  align-items: center;
}

.account-modal__password input {
  padding-right: var(--space-12);
}

.account-modal__password-toggle {
  position: absolute;
  right: var(--space-2);
  z-index: var(--z-raised);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--color-text-muted);
  cursor: pointer;
  transition:
    color var(--transition-fast),
    transform var(--transition-fast);
}

.account-modal__password-toggle:hover,
.account-modal__password-toggle:focus-visible {
  color: var(--color-text-black);
}

.account-modal__password-toggle:active {
  transform: scale(var(--scale-press));
}

.account-modal__password-icon svg {
  width: var(--space-5);
  height: var(--space-5);
}

.account-modal__password-icon[hidden] {
  display: none;
}

.account-modal__field input::-ms-reveal,
.account-modal__field input::-ms-clear,
.account-modal .show-password-input {
  display: none !important;
}

.account-modal__remember {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  cursor: pointer;
}

.account-modal__remember input {
  width: var(--space-4);
  height: var(--space-4);
  margin: 0;
  accent-color: var(--color-black);
  cursor: pointer;
}

.account-modal__btn,
.account-modal button.account-modal__btn.button,
.account-modal button.account-modal__btn.woocommerce-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.75rem;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-none);
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-button);
  line-height: var(--line-height-tight);
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast),
    opacity var(--transition-fast),
    transform var(--transition-fast);
}

.account-modal__btn:active,
.account-modal button.account-modal__btn.button:active {
  transform: scale(var(--scale-press));
}

.account-modal__btn--solid,
.account-modal button.account-modal__btn--solid.button,
.account-modal button.account-modal__btn--solid.woocommerce-button {
  background-color: var(--color-black);
  color: var(--color-text-white);
  border: var(--stroke-hairline) solid var(--color-black);
}

.account-modal__btn--solid:hover,
.account-modal__btn--solid:focus-visible,
.account-modal button.account-modal__btn--solid.button:hover,
.account-modal button.account-modal__btn--solid.button:focus-visible {
  opacity: var(--opacity-hover);
  background-color: var(--color-black);
  color: var(--color-text-white);
}

.account-modal__btn--outline {
  background-color: var(--color-bg-default);
  color: var(--color-text-black);
  border: var(--stroke-hairline) solid var(--color-black);
}

.account-modal__btn--outline:hover,
.account-modal__btn--outline:focus-visible {
  background-color: var(--color-bg-light);
}

.account-modal__cta {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-top: var(--space-6);
  text-align: center;
}

.account-modal__cta-prompt {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

@media (max-width: 768px) {
  .account-modal {
    padding: 0;
    align-items: stretch;
    justify-content: stretch;
  }

  .account-modal__dialog {
    max-width: none;
    max-height: none;
    height: 100dvh;
    box-shadow: none;
    transform: translateY(var(--space-8));
  }

  .account-modal.is-active .account-modal__dialog {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .account-modal__overlay,
  .account-modal__dialog {
    transition: opacity var(--transition-fast);
    transform: none;
  }

  .account-modal.is-active .account-modal__dialog {
    transform: none;
  }

  .account-modal__btn:active,
  .account-modal__password-toggle:active {
    transform: none;
  }
}

/* ─── Hero (split carousel) ─────────────────────────────── */
.hero {
  display: block;
  overflow: hidden;
  min-height: unset;
  align-items: unset;
  justify-content: unset;
  text-align: left;
  color: inherit;
}

.hero__slides {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  width: 100%;
  overflow: hidden;
}

.hero__slide {
  grid-row: 1;
  grid-column: 1;
  width: 100%;
  visibility: hidden;
  pointer-events: none;
  transform: translate3d(100%, 0, 0);
  transition: transform 450ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: var(--z-base);
}

.hero__slide.is-active {
  visibility: visible;
  pointer-events: auto;
  transform: translate3d(0, 0, 0);
  z-index: var(--z-chrome);
}

.hero__slide.is-slide-from-left,
.hero__slide.is-slide-out-left {
  visibility: visible;
  transform: translate3d(-100%, 0, 0);
}

.hero__slide.is-slide-from-right,
.hero__slide.is-slide-out-right {
  visibility: visible;
  transform: translate3d(100%, 0, 0);
}

.hero__slide.is-no-transition {
  transition: none;
}

/* Homepage split hero */
.hero .hero__slide {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: min(65vh, 35rem);
  min-height: min(60vh, 30rem);
}

.hero .hero__panel {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-4);
  min-height: 0;
  overflow-y: auto;
}

.hero .hero__panel-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  width: 100%;
  max-width: 520px;
}

.hero .hero__media {
  position: relative;
  overflow: hidden;
  height: 100%;
  min-height: 0;
  background-color: var(--color-bg-dark);
}

.hero .hero__media::after {
  content: none;
}

.hero .hero__media-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.hero .hero__script {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--font-size-md);
  line-height: 1;
  text-transform: uppercase;
  color: var(--color-text-black);
}

.hero .hero__title {
  margin: 0;
  font-family: var(--font-primary);
  font-size: clamp(46px, 4.5vw, 72px);
  font-weight: 800;
  line-height: 0.98;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--color-text-black);
  max-width: 520px;
}

.hero .hero__text {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: 15px;
  line-height: 1.6;
  color: var(--color-text-secondary);
  max-width: 480px;
}

.hero .hero__actions {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-wrap: wrap;
}

.hero__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-bg-default);
  border: 1px solid var(--color-border-light);
  cursor: pointer;
  color: var(--color-text-black);
  z-index: var(--z-raised);
  transition: border-color var(--transition-fast);
}

.hero__arrow svg {
  width: 26px;
  height: 26px;
}

.hero__arrow:hover {
  border-color: var(--color-text-black);
}

.hero__arrow--prev {
  left: 0;
}

.hero__arrow--next {
  right: 0;
}

.hero__pause {
  position: absolute;
  top: 0;
  right: 0;
  width: 2.75rem;
  height: 2.75rem;
  display: grid;
  place-items: center;
  background-color: var(--color-bg-default);
  border: var(--stroke-hairline) solid var(--color-border-light);
  cursor: pointer;
  color: var(--color-text-black);
  z-index: var(--z-raised);
  transition:
    border-color var(--transition-fast),
    transform var(--transition-fast);
}

.hero__pause:hover {
  border-color: var(--color-text-black);
}

.hero__pause:active {
  transform: scale(var(--scale-press));
}

.hero__pause-icon {
  grid-area: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  transition:
    opacity var(--transition-fast),
    transform var(--transition-fast);
}

.hero__pause-icon svg {
  width: var(--space-5);
  height: var(--space-5);
  display: block;
}

.hero__pause-icon--play {
  opacity: 0;
  transform: scale(var(--scale-hidden));
}

.hero__pause[aria-pressed="true"] .hero__pause-icon--pause {
  opacity: 0;
  transform: scale(var(--scale-hidden));
}

.hero__pause[aria-pressed="true"] .hero__pause-icon--play {
  opacity: 1;
  transform: scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .hero__pause,
  .hero__pause-icon {
    transition: opacity var(--transition-fast);
  }

  .hero__pause:active {
    transform: none;
  }

  .hero__pause-icon--play {
    transform: none;
  }
}

.hero:has(.hero__dots) .hero__panel {
  padding-bottom: var(--space-12);
}

@property --hero-timer-progress {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}

.hero__dots {
  --hero-timer-progress: 0;
  --hero-timer-duration: 0ms;
  position: absolute;
  left: 0;
  bottom: var(--space-6);
  z-index: var(--z-raised);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  width: 50%;
  margin: 0;
  padding: 0;
  pointer-events: none;
}

.hero__dots .carousel-dot {
  position: relative;
  flex-shrink: 0;
  width: var(--space-3);
  height: var(--space-2);
  padding: 0;
  border: 0;
  border-radius: var(--radius-full);
  background-color: var(--color-border);
  cursor: pointer;
  pointer-events: auto;
  appearance: none;
  transition:
    width 450ms cubic-bezier(0.25, 0.46, 0.45, 0.94),
    background-color var(--transition-base),
    transform var(--transition-fast);
}

.hero__dots .carousel-dot::before {
  content: "";
  position: absolute;
  inset: calc(var(--space-3) * -1);
}

.hero__dots .carousel-dot.is-active {
  width: var(--space-8);
}

.hero__dots .carousel-dot__fill {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  pointer-events: none;
}

.hero__dots .carousel-dot__fill::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-color: var(--color-text-black);
  transform: translate3d(calc((var(--hero-timer-progress) - 1) * 100%), 0, 0);
  opacity: 0;
}

.hero__dots .carousel-dot.is-active .carousel-dot__fill::after {
  opacity: 1;
}

.hero__dots.is-timer-running {
  transition: --hero-timer-progress var(--hero-timer-duration) linear;
}

.hero__dots .carousel-dot:active {
  transform: scale(0.97);
}

.hero__dots .carousel-dot:focus-visible {
  outline: var(--stroke-focus) solid var(--color-text-black);
  outline-offset: var(--space-1);
}

/* ─── Shop by category ──────────────────────────────────── */
.category-grid {
  max-width: var(--space-max);
  margin: var(--space-10) auto;
  padding: 0;
  background-color: #fff;
}

.category-grid__container {
  max-width: var(--space-max);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.category-grid__heading {
  margin: 0;
  text-align: center;
  font-family: var(--font-primary);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-black);
}

.category-grid__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-6);
}

.category-grid__link {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  text-align: center;
  text-decoration: none;
}

.category-grid__image {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background-color: var(--color-card-bg);
  transition: opacity var(--transition-fast);
}

.category-grid__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.category-grid__link:hover .category-grid__image,
.category-grid__link:focus-visible .category-grid__image {
  opacity: 0.9;
}

.category-grid__label {
  display: block;
  margin: 0;
  font-family: var(--font-secondary);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-black);
}

/* ─── In Focus ──────────────────────────────────────────── */
.focus-grid {
  --focus-grid-cols: 3;
  --focus-grid-gap: var(--space-6);
  max-width: var(--space-max);
  margin: var(--space-16) auto;
  padding: 0;
}

.focus-grid__container {
  max-width: var(--space-max);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.focus-grid__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
}

.focus-grid__heading {
  margin: 0;
  font-family: var(--font-primary);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-black);
}

.focus-grid__arrows {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-shrink: 0;
  margin-inline-start: auto;
}

.focus-grid__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg-default);
  border: 1px solid var(--color-border-light);
  cursor: pointer;
  color: var(--color-text-black);
  padding: var(--space-1);
  transition:
    border-color var(--transition-fast),
    transform var(--transition-fast),
    opacity var(--transition-fast);
}

.focus-grid__arrow svg {
  width: 26px;
  height: 26px;
}

.focus-grid__arrow:disabled,
.focus-grid__arrow.is-disabled {
  opacity: var(--opacity-disabled);
  cursor: default;
}

.focus-grid__arrow:active:not(:disabled) {
  transform: scale(0.97);
}

@media (hover: hover) and (pointer: fine) {
  .focus-grid__arrow:hover:not(:disabled) {
    border-color: var(--color-text-black);
  }
}

.focus-grid__carousel-wrapper {
  position: relative;
  width: 100%;
}

.focus-grid__list {
  list-style: none;
  margin: 0;
  padding: 0 0 var(--space-2);
  display: flex;
  gap: var(--focus-grid-gap);
  align-items: stretch;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

.focus-grid__list::-webkit-scrollbar {
  display: none;
}

.focus-grid__item {
  min-width: 0;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.focus-grid__list > .focus-grid__item {
  flex: 0 0
    calc(
      (100% - (var(--focus-grid-cols) - 1) * var(--focus-grid-gap)) /
        var(--focus-grid-cols)
    );
}

.focus-grid__scrollbar {
  display: none;
  position: relative;
  width: 100%;
  height: var(--space-1);
  margin-top: var(--space-5);
  background: var(--color-border);
  overflow: hidden;
}

.focus-grid__scrollbar-progress {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 25%;
  background: var(--color-text-black);
}

.focus-grid__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  height: 100%;
  gap: var(--space-6);
}

.focus-grid__image {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background-color: var(--color-card-bg);
  transition: opacity var(--transition-fast);
}

.focus-grid__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

a.focus-grid__image:hover,
a.focus-grid__image:focus-visible {
  opacity: var(--opacity-hover);
}

a.focus-grid__image:focus-visible {
  outline: var(--stroke-focus) solid var(--color-text-black);
  outline-offset: var(--space-1);
}

.focus-grid__copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1 1 auto;
  width: 100%;
}

.focus-grid__tagline {
  margin: 0 0 var(--space-2);
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--letter-spacing-wide);
  line-height: var(--line-height-tight);
  text-transform: uppercase;
  color: var(--color-text-black);
}

.focus-grid__title {
  margin: 0 0 var(--space-3);
  font-family: var(--font-primary);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-label);
  line-height: var(--line-height-tight);
  text-transform: uppercase;
  color: var(--color-text-black);
}

.focus-grid__text {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-base);
  color: var(--color-text-secondary);
}

.focus-grid__cta {
  margin-top: auto;
  min-width: var(--space-18);
  padding: var(--space-3) var(--space-8);
}

.focus-grid__cta:active {
  transform: scale(0.97);
}

@media (max-width: 768px) {
  .focus-grid__cta {
    min-width: 0;
    width: 100%;
  }
}

/* ─── Product gallery restyle ───────────────────────────── */
.product-gallery {
  --product-gallery-cols: 4;
  --product-gallery-gap: var(--space-6);
  max-width: var(--space-max);
  margin: var(--space-16) auto;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.product-gallery__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
}

.product-gallery__intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  flex: 1 1 auto;
  min-width: 0;
}

.product-gallery__eyebrow {
  margin: 0;
  font-family: var(--font-primary);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
  color: var(--color-text-black);
}

.product-gallery__description {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-base);
  color: var(--color-text-muted);
}

.product-gallery__header:has(.product-gallery__intro) {
  align-items: flex-start;
}

.product-gallery__heading,
.product-gallery__title {
  margin: 0;
  font-family: var(--font-primary);
  font-size: clamp(24px, 2.4vw, 34px);
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
}

.product-gallery__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.product-gallery__nav {
  border-bottom: 1px solid var(--color-border-light);
  overflow: hidden;
}

.product-gallery__tabs {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-8);
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.product-gallery__tabs::-webkit-scrollbar {
  display: none;
}

.product-gallery__tab {
  flex-shrink: 0;
}

.product-gallery__tab-link {
  display: block;
  margin: 0;
  padding: 0 0 12px;
  appearance: none;
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  font-family: var(--font-secondary);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: var(--line-height-tight);
  text-transform: uppercase;
  color: var(--color-text-placeholder);
  text-decoration: none;
  cursor: pointer;
  transition:
    color var(--transition-fast),
    border-color var(--transition-fast);
}

.product-gallery__tab.is-active .product-gallery__tab-link,
.product-gallery__tab-link[aria-selected="true"] {
  color: var(--color-text-black);
  border-bottom-color: var(--color-text-black);
}

.product-gallery__item {
  position: relative;
}

.product-gallery__image-wrapper {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.product-gallery__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-gallery__img--secondary {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity var(--transition-slow);
}

.product-gallery__item:hover .product-gallery__img--secondary,
.product-gallery__item:focus-within .product-gallery__img--secondary {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .product-gallery__img--secondary {
    transition: none;
  }
}

.product-gallery__wishlist {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  z-index: var(--z-raised);
  width: 2.25rem;
  height: 2.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  color: var(--color-text-black);
  pointer-events: auto;
  transition: opacity var(--transition-fast);
}

.product-gallery__wishlist-icon svg {
  width: 20px;
  height: 20px;
}

.product-gallery__wishlist-icon--on {
  display: none;
}

.product-gallery__wishlist.is-active .product-gallery__wishlist-icon--off {
  display: none;
}

.product-gallery__wishlist.is-active .product-gallery__wishlist-icon--on {
  display: inline-flex;
}

.product-gallery__carousel-wrapper {
  position: relative;
  width: 100%;
}

.product-gallery__carousel {
  display: flex;
  gap: var(--product-gallery-gap);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  padding-bottom: var(--space-2);
}

.product-gallery__carousel::-webkit-scrollbar {
  display: none;
}

.product-gallery__carousel.is-loading {
  opacity: var(--opacity-hover);
  pointer-events: none;
}

.product-gallery__carousel.is-dragging,
.focus-grid__list.is-dragging {
  scroll-snap-type: none;
  scroll-behavior: auto;
  -webkit-overflow-scrolling: auto;
}

.product-gallery__item {
  min-width: 0;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.product-gallery__carousel > .product-gallery__item {
  flex: 0 0
    calc(
      (100% - (var(--product-gallery-cols) - 1) * var(--product-gallery-gap)) /
        var(--product-gallery-cols)
    );
}

.product-gallery__all-link {
  color: var(--color-text-black);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-size: 13px;
  border-bottom: 1px solid currentColor;
}

.product-gallery__arrows {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-shrink: 0;
  margin-inline-start: auto;
}

.product-gallery__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-bg-default);
  border: 1px solid var(--color-border-light);
  cursor: pointer;
  color: var(--color-text-black);
  padding: var(--space-1);
  transition:
    border-color var(--transition-fast),
    transform var(--transition-fast),
    opacity var(--transition-fast);
}

.product-gallery__arrow svg {
  width: 26px;
  height: 26px;
}

.product-gallery__arrow:disabled,
.product-gallery__arrow.is-disabled {
  opacity: var(--opacity-disabled);
  cursor: default;
}

.product-gallery__arrow:active:not(:disabled) {
  transform: scale(0.97);
}

@media (hover: hover) and (pointer: fine) {
  .product-gallery__arrow:hover:not(:disabled) {
    border-color: var(--color-text-black);
  }
}

.product-gallery__scrollbar {
  display: none;
  position: relative;
  width: 100%;
  height: var(--space-1);
  margin-top: var(--space-5);
  background: var(--color-border);
  overflow: hidden;
}

.product-gallery__scrollbar-progress {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 25%;
  background: var(--color-text-black);
}

/* product card: badge + info stack + add-to-bag */
.product-gallery__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.product-gallery__item .product-gallery__link {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  flex: 1 1 auto;
  height: auto;
}

.product-gallery__badge {
  position: absolute;
  top: var(--space-3);
  left: var(--space-3);
  z-index: var(--z-raised);
  display: inline-block;
  padding: var(--space-1) var(--space-2);
  background-color: var(--color-bg-default);
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-black);
}

.product-gallery__info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1);
}

.product-gallery__brand {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-black);
}

.product-gallery__name {
  margin: 0;
  font-size: var(--font-size-sm);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0.01em;
  line-height: 1.4;
  text-transform: uppercase;
}

.product-gallery__desc {
  margin: 0;
  font-size: 12px;
  color: var(--color-text-muted);
  letter-spacing: 0;
  text-align: left;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}

.product-gallery__rating {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}

.product-gallery__stars {
  position: relative;
  display: inline-flex;
  color: var(--color-text-black);
}

.product-gallery__stars-row {
  display: inline-flex;
  gap: 1px;
}

.product-gallery__stars-row svg {
  width: 12px;
  height: 12px;
}

.product-gallery__stars-row--base {
  opacity: 0.3;
}

.product-gallery__stars-row--fill {
  position: absolute;
  inset: 0;
  overflow: hidden;
  width: var(--rating-pct, 0%);
}

.product-gallery__stars-row--fill svg {
  flex-shrink: 0;
}

.product-gallery__rating-count {
  font-family: var(--font-secondary);
  font-size: 11px;
  color: var(--color-text-muted);
}

.product-gallery__add-to-bag {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-weight: 600;
  letter-spacing: var(--letter-spacing-button);
  text-transform: uppercase;
  width: 100%;
  margin: 0;
  padding: var(--space-3) var(--space-4);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  box-sizing: border-box;
}

.product-gallery__shop-all {
  display: flex;
  justify-content: center;
}

.product-gallery__shop-all-link {
  cursor: pointer;
  text-decoration: none;
  box-sizing: border-box;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast),
    transform 160ms ease-out;
}

.product-gallery__shop-all-link:active {
  transform: scale(0.97);
}

/* ─── Footer ────────────────────────────────────────────── */
.site-footer {
  background-color: var(--color-bg-dark);
  color: var(--color-text-on-dark);
  padding: 0 0 var(--space-6);
  overflow-anchor: none;
}

.site-footer__container {
  padding: 0 var(--space-4);
}

.footer-mission {
  padding: 5rem 0 1.875rem;
  color: var(--color-text-white);
}

.footer-mission__text {
  margin: 0;
  max-width: 54rem;
  font-family: var(--font-primary);
  font-size: clamp(1.375rem, 3.5vw, 1.875rem);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tightest);
  text-align: left;
  color: var(--color-text-white);
}

.footer-top {
  padding: 0 0 var(--space-12);
  border-top: 1px solid var(--color-border-inverse);
}

.footer-content {
  display: grid;
  grid-template-columns: minmax(15rem, 2.4fr) repeat(2, minmax(0, 1fr));
  gap: var(--space-12) var(--space-10);
  margin: 0 auto;
  padding-top: var(--space-12);
  align-items: start;
}

.footer-column {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.footer-column--brand {
  gap: var(--space-4);
}

.footer-column--links {
  gap: var(--space-5);
}

.footer-logo,
.footer-logo .custom-logo-link {
  display: inline-flex;
  align-items: flex-start;
  text-decoration: none;
  width: fit-content;
  max-width: 100%;
}

.footer-logo .custom-logo {
  display: block;
  width: min(100%, 18rem);
  height: auto;
  filter: brightness(0) invert(1);
}

.footer-logo--text {
  font-family: var(--font-primary);
  font-size: 1.875rem;
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  color: var(--color-text-white);
}

.footer-credit {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-tight);
  color: var(--color-text-white);
  letter-spacing: normal;
  text-transform: uppercase;
}

.footer-credit-badge {
  margin: 0;
  display: flex;
  align-items: center;
}

.footer-credit-badge__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  text-decoration: none;
  transition: opacity var(--transition-fast);
  background-color: var(--color-text-white);
  padding: var(--space-1) var(--space-2);
}

.footer-credit-badge__link:hover,
.footer-credit-badge__link:focus-visible {
  opacity: 0.9;
}

.footer-credit-badge__label {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  color: var(--color-text-black);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.footer-credit-badge__mark {
  width: 18px;
  height: auto;
  opacity: 0.9;
  transition: opacity var(--transition-fast);
  filter: brightness(0) invert(0);
}

.footer-credit-badge__link:hover .footer-credit-badge__mark,
.footer-credit-badge__link:focus-visible .footer-credit-badge__mark {
  opacity: 1;
}

.footer-credit-badge__pulse {
  width: 0.4em;
  height: 0.4em;
  border-radius: var(--radius-full);
  background-color: var(--color-black);
  animation: footer-credit-pulse 1.5s ease-in-out infinite;
}

@keyframes footer-credit-pulse {
  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.4;
  }
}

.footer-support-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  margin: 0;
  color: var(--color-text-white);
  text-decoration: none;
  font-family: var(--font-secondary);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  transition: opacity var(--transition-fast);
}

.footer-support-link:hover,
.footer-support-link:focus-visible {
  opacity: 0.75;
}

.footer-support-link__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--space-8);
  height: var(--space-8);
  border-radius: var(--radius-full);
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--color-text-white);
}

.footer-support-link__svg {
  display: block;
  width: var(--space-6);
  height: var(--space-6);
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.footer-links a {
  color: var(--color-text-on-dark);
  text-decoration: none;
  font-family: var(--font-secondary);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  transition: color var(--transition-fast);
}

.footer-links a:hover,
.footer-links a:focus-visible {
  color: var(--color-text-white);
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
  padding: var(--space-5) 0 0;
  border-top: 1px solid var(--color-border-inverse);
}

.footer-bottom__legal {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--space-5);
  min-width: 0;
}

.footer-legal {
  display: contents;
}

.footer-legal__links {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--space-5);
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-legal__links li {
  margin: 0;
  line-height: 1;
}

.footer-legal__links a {
  color: var(--color-text-on-dark);
  text-decoration: none;
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  line-height: 1;
  display: inline-block;
  transition: color var(--transition-fast);
  text-transform: uppercase;
}

.footer-legal__links a:hover,
.footer-legal__links a:focus-visible {
  color: var(--color-text-white);
}

.footer-copyright {
  color: var(--color-text-on-dark);
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-regular);
  line-height: 1;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  text-transform: uppercase;
}

.footer-social {
  display: flex;
  gap: var(--space-4);
  margin: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.footer-social__link {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-on-dark);
  transition: color var(--transition-fast);
  text-decoration: none;
}

.footer-social__link:hover,
.footer-social__link:focus-visible {
  color: var(--color-text-white);
}

.footer-social__icon svg {
  width: var(--space-5);
  height: var(--space-5);
}

@media (max-width: 1024px) {
  .site-footer__container {
    padding: 0 var(--space-4);
  }

  .footer-legal__links {
    flex-direction: row;
    align-items: flex-start;
    gap: var(--space-3);
  }

  .footer-legal__links a,
  .footer-copyright {
    font-size: var(--font-size-xs);
  }

  .footer-content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-10) var(--space-8);
  }

  .footer-column--brand {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
  }

  .footer-logo .custom-logo {
    width: min(100%, 14rem);
  }
}

@media (max-width: 768px) {
  .footer-mission {
    padding: var(--space-8) 0 var(--space-6);
  }

  .footer-top {
    padding-bottom: var(--space-8);
  }

  .footer-content {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-8) var(--space-6);
    padding-top: var(--space-8);
  }

  .footer-column--brand {
    grid-column: 1 / -1;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-5);
  }

  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-10);
  }

  .footer-bottom__legal {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
  }

  .footer-social {
    justify-content: flex-start;
  }
}

@media (max-width: 480px) {
  .footer-content {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .footer-links a,
  .footer-support-link {
    font-size: var(--font-size-md);
  }

  .footer-social__icon svg {
    width: var(--space-8);
    height: var(--space-8);
  }
}

/* ─── Responsive ────────────────────────────────────────── */
@media (max-width: 1024px) {
  .main-header__container {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
  }

  .main-header__start {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    justify-self: start;
    grid-column: 1;
    grid-row: 1;
  }

  .main-header__search {
    display: none;
  }

  .main-header__branding {
    position: static;
    transform: none;
    justify-self: center;
    grid-column: 2;
    grid-row: 1;
  }

  .main-header__branding .custom-logo-link {
    width: 120px;
  }

  .main-header__logo-text {
    font-size: 18px;
    letter-spacing: 0.02em;
  }

  .main-header__actions {
    justify-self: end;
    margin-left: 0;
    gap: var(--space-4);
    grid-column: 3;
    grid-row: 1;
  }

  .desktop-only {
    display: none !important;
  }

  .menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: var(--color-text-black);
  }

  .menu-toggle .header-icon svg,
  .main-header__search-toggle .main-header__action-icon svg {
    width: 22px;
    height: 22px;
  }

  .nav-row {
    display: none;
  }

  .search-drawer__body {
    max-height: calc(100dvh - 4.5rem);
  }

  .search-drawer__container {
    padding: var(--space-4) var(--space-4) var(--space-6);
  }

  .search-drawer__results-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
  }

  .search-drawer__close {
    position: fixed;
    right: var(--space-4);
    bottom: max(var(--space-5), env(safe-area-inset-bottom, 0px));
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: var(--radius-full);
    background-color: var(--color-black);
    color: var(--color-text-white);
    cursor: pointer;
    z-index: var(--z-modal);
    box-shadow: var(--shadow-md);
  }

  .search-drawer__close-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .search-drawer__close-icon svg {
    width: 1.5rem;
    height: 1.5rem;
  }

  .search-drawer:not(.is-active) .search-drawer__close {
    display: none;
  }

  .promo-bar {
    min-height: 32px;
  }

  .promo-bar__text,
  .promo-bar__link {
    font-size: 11px;
    line-height: 1.15;
  }

  .promo-bar__control {
    padding-inline: var(--space-3) var(--space-3);
  }

  .hero .hero__slide {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    height: auto;
    min-height: unset;
  }

  .hero .hero__media {
    order: -1;
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 6;
  }

  .hero .hero__panel {
    padding: var(--space-6) var(--space-4);
  }

  .hero .hero__panel-inner {
    align-items: center;
    text-align: center;
  }

  .hero .hero__actions {
    justify-content: center;
  }

  .hero .hero__script {
    font-size: 16px;
  }

  .hero .hero__title {
    font-size: clamp(26px, 8vw, 38px);
  }

  .hero__arrow,
  .hero__pause {
    display: none;
  }

  .hero:has(.hero__dots) .hero__panel {
    padding-bottom: var(--space-12);
  }

  .hero__dots {
    width: 100%;
    bottom: var(--space-2);
  }

  .product-gallery {
    gap: var(--space-4);
    padding: var(--space-8) var(--space-6);
    --product-gallery-cols: 2.35;
    --product-gallery-gap: var(--space-4);
  }

  .focus-grid {
    --focus-grid-cols: 2.35;
    --focus-grid-gap: var(--space-4);
  }

  .category-grid__list {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: var(--space-2);
  }

  .category-grid__list::-webkit-scrollbar {
    display: none;
  }

  .category-grid__item {
    flex: 0 0 40vw;
    scroll-snap-align: start;
  }
}

@media (max-width: 768px) {
  .hero .hero__slide {
    grid-template-rows: minmax(0, 1fr) auto;
    height: calc(100svh - 4.5rem);
    min-height: unset;
  }

  body:has(.promo-bar) .hero .hero__slide {
    height: calc(100svh - 4.5rem - 28px - env(safe-area-inset-top, 0px));
  }

  .hero .hero__media {
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
  }

  .category-grid {
    padding: 0 var(--space-4);
  }

  .product-gallery {
    padding: var(--space-8) 0;
    --product-gallery-gap: var(--space-2);
    --product-gallery-card-basis: 85%;
  }

  .product-gallery__header,
  .product-gallery__nav,
  .product-gallery__shop-all {
    padding-inline: var(--space-4);
  }

  .product-gallery__nav {
    border-bottom: 0;
  }

  .product-gallery__carousel-wrapper {
    padding: 0;
    max-width: none;
  }

  .product-gallery__carousel {
    gap: var(--space-2);
    padding-inline: var(--space-4);
    scroll-padding-inline: var(--space-4);
    overscroll-behavior-x: contain;
  }

  .product-gallery__carousel > .product-gallery__item {
    flex: 0 0 var(--product-gallery-card-basis);
  }

  .focus-grid {
    padding: 0;
    --focus-grid-gap: var(--space-2);
    --focus-grid-card-basis: 85%;
  }

  .focus-grid__header {
    padding-inline: var(--space-4);
  }

  .focus-grid__carousel-wrapper {
    padding: 0;
    max-width: none;
  }

  .focus-grid__list {
    gap: var(--space-2);
    padding-inline: var(--space-4);
    scroll-padding-inline: var(--space-4);
    overscroll-behavior-x: contain;
  }

  .focus-grid__list > .focus-grid__item {
    flex: 0 0 var(--focus-grid-card-basis);
  }

  .focus-grid__container {
    gap: var(--space-6);
  }

  .focus-grid__arrows,
  .focus-grid__arrow {
    display: none;
  }

  .focus-grid__header:not(:has(.focus-grid__heading)) {
    display: none;
  }

  .focus-grid__scrollbar {
    display: block;
    width: auto;
    margin-inline: var(--space-4);
  }

  .product-gallery__heading,
  .product-gallery__title {
    font-size: clamp(1.375rem, 6vw, 1.75rem);
  }

  .product-gallery__tabs {
    gap: var(--space-5);
  }

  .product-gallery__arrows,
  .product-gallery__arrow {
    display: none;
  }

  .product-gallery__header:not(
    :has(
      .product-gallery__heading,
      .product-gallery__title,
      .product-gallery__intro
    )
  ) {
    display: none;
  }

  .product-gallery__scrollbar {
    display: block;
    width: auto;
    margin-inline: var(--space-4);
  }

  .product-gallery__desc {
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }

  .product-gallery__add-to-bag.btn {
    padding: var(--space-3);
    font-size: var(--font-size-2xs);
  }
}

@media (hover: hover) and (pointer: fine) {
  .hero__dots .carousel-dot:hover:not(.is-active) {
    background-color: var(--color-text-muted);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__slide {
    transform: none;
    opacity: 0;
    transition: opacity var(--transition-fast);
  }

  .hero__dots {
    --hero-timer-progress: 1;
  }

  .hero__dots.is-timer-running {
    transition: none;
  }

  .hero__dots .carousel-dot {
    transition:
      background-color var(--transition-fast),
      transform var(--transition-fast);
  }

  .hero__slide.is-active {
    opacity: 1;
    transform: none;
  }

  .hero__slide.is-slide-from-left,
  .hero__slide.is-slide-from-right,
  .hero__slide.is-slide-out-left,
  .hero__slide.is-slide-out-right {
    transform: none;
    opacity: 0;
  }

  .footer-credit-badge__pulse {
    animation: none;
  }

  .product-gallery__carousel {
    scroll-snap-type: x proximity;
    scroll-behavior: auto;
  }

  .product-gallery__item {
    scroll-snap-stop: normal;
  }

  .focus-grid__list {
    scroll-snap-type: x proximity;
    scroll-behavior: auto;
  }

  .focus-grid__item {
    scroll-snap-stop: normal;
  }
}

/* ─── Mobile navigation drawer (Cult Beauty style) ─────── */
.mobile-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  z-index: var(--z-modal);
  visibility: hidden;
  pointer-events: none;
}

.mobile-nav.is-active {
  visibility: visible;
  pointer-events: auto;
}

.mobile-nav__overlay {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity var(--transition-base);
  pointer-events: none;
}

.mobile-nav.is-active .mobile-nav__overlay {
  opacity: 1;
  pointer-events: auto;
}

.mobile-nav__content {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background-color: var(--color-bg-default);
}

.mobile-nav--drawer {
  z-index: var(--z-modal);
}

.mobile-nav--drawer .mobile-nav__overlay {
  background-color: var(--color-overlay-dark);
}

.mobile-nav--drawer .mobile-nav__content {
  position: absolute;
  top: 0;
  left: 0;
  width: min(100%, 26.25rem);
  max-width: 92vw;
  height: 100%;
  padding: 0;
  background-color: var(--color-bg-default);
  box-shadow: var(--shadow-md);
  transform: translateX(-100%);
  transition: transform var(--transition-base);
  z-index: var(--z-chrome);
}

.mobile-nav--drawer.is-active .mobile-nav__content {
  transform: translateX(0);
}

.mobile-nav--drawer .mobile-nav__toolbar {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
}

.mobile-nav--drawer .mobile-nav__home {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-8);
  height: var(--space-8);
  color: var(--color-text-black);
  transition: opacity var(--transition-fast);
}

.mobile-nav--drawer .mobile-nav__home:hover,
.mobile-nav--drawer .mobile-nav__home:focus-visible {
  opacity: 0.6;
}

.mobile-nav--drawer .mobile-nav__locale {
  display: inline-flex;
  align-items: center;
  margin: 0;
  justify-self: center;
  font-family: var(--font-secondary);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-black);
  white-space: nowrap;
}

.mobile-nav__locale-flag {
  width: 26px;
  height: 26px;
  border-radius: var(--radius-full);
  object-fit: cover;
  flex-shrink: 0;
}

.mobile-nav__locale-label {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-mono);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
}

.mobile-nav__locale-label::before {
  content: none;
}

.mobile-nav__locale-flag + .mobile-nav__locale-label::before {
  content: "•";
  margin: 0 var(--space-1);
  color: var(--color-text-black);
}

button.mobile-nav__locale {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

button.mobile-nav__locale:hover,
button.mobile-nav__locale:focus-visible {
  opacity: 0.6;
}

.mobile-nav--drawer .mobile-nav__locale-spacer {
  display: block;
}

.mobile-nav--drawer .mobile-nav__close {
  justify-self: end;
}

.mobile-nav--drawer .mobile-nav__toolbar-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.mobile-nav--drawer .mobile-nav__icon-svg {
  width: 1.375rem;
  height: 1.375rem;
}

.mobile-nav--drawer .mobile-nav__auth {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
  padding: var(--space-4);
  border-bottom: 1px solid var(--color-border-light);
}

.mobile-nav--drawer .mobile-nav__auth-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.75rem;
  padding: var(--space-3) var(--space-4);
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  appearance: none;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast);
}

.mobile-nav--drawer .mobile-nav__auth-btn--login {
  background-color: var(--color-black);
  color: var(--color-text-white);
  border: 1px solid var(--color-black);
}

.mobile-nav--drawer .mobile-nav__auth-btn--login:hover,
.mobile-nav--drawer .mobile-nav__auth-btn--login:focus-visible {
  background-color: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  color: var(--color-text-white);
}

.mobile-nav--drawer .mobile-nav__auth-btn--register {
  background-color: var(--color-bg-default);
  color: var(--color-text-black);
  border: 1px solid var(--color-black);
}

.mobile-nav--drawer .mobile-nav__auth-btn--register:hover,
.mobile-nav--drawer .mobile-nav__auth-btn--register:focus-visible {
  background-color: var(--color-bg-light);
}

.mobile-nav--drawer .mobile-nav__ask {
  padding: var(--space-4);
  border-bottom: var(--stroke-hairline) solid var(--color-border-light);
}

.mobile-nav--drawer .mobile-nav__ask-btn {
  width: 100%;
  gap: var(--space-2);
  cursor: pointer;
}

.mobile-nav__ask-label {
  font-family: var(--font-mono);
  font-size: var(--font-size-sm);
  font-weight: 500;
  letter-spacing: var(--letter-spacing-button);
  text-transform: uppercase;
}

.mobile-nav--drawer .mobile-nav__ask-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.mobile-nav--drawer .mobile-nav__ask-icon svg {
  width: var(--space-4);
  height: var(--space-4);
  display: block;
}

.mobile-nav--drawer .mobile-nav__body {
  flex: 1;
  overflow-y: auto;
  padding: 0;
}

.mobile-nav--drawer .mobile-nav__section {
  border-bottom: 1px solid var(--color-border-light);
  padding: var(--space-4) 0;
}

.mobile-nav--drawer .mobile-nav__menu {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  list-style: none;
  margin: 0;
  padding: 0 0 var(--space-2);
}

.mobile-nav--drawer .mobile-nav__item {
  margin: 0;
}

.mobile-nav--drawer .mobile-nav__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: 0 var(--space-4);
  font-family: var(--font-mono);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-base);
  color: var(--color-text-black);
  text-decoration: none;
  text-transform: none;
  letter-spacing: normal;
  text-transform: uppercase;
  transition: opacity var(--transition-fast);
}

.mobile-nav--drawer .mobile-nav__link:hover,
.mobile-nav--drawer .mobile-nav__link:focus-visible {
  opacity: 0.7;
}

.mobile-nav--drawer .mobile-nav__link-text {
  flex: 1;
}

.mobile-nav--drawer .mobile-nav__chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--color-text-muted);
}

.mobile-nav--drawer .mobile-nav__chevron-svg {
  width: 22px;
  height: 22px;
}

.mobile-nav--drawer .mobile-nav__footer {
  margin-top: auto;
  padding: var(--space-4);
  border-top: 1px solid var(--color-border-light);
}

.mobile-nav--drawer .mobile-navigation ul li,
.mobile-nav--drawer .mobile-secondary-menu li {
  margin-bottom: 0;
}

/* ─── Cart drawer & mini cart ───────────────────────────── */
.cart-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  max-width: 500px;
  height: 100%;
  height: 100dvh;
  z-index: var(--z-modal);
  background-color: var(--color-bg-default);
  color: var(--color-text-black);
  visibility: hidden;
  transform: translateX(100%);
  transition:
    transform var(--transition-base),
    visibility var(--transition-base);
  display: flex;
  flex-direction: column;
}

.cart-drawer.is-active {
  visibility: visible;
  transform: translateX(0);
}

.cart-drawer__overlay {
  position: fixed;
  inset: 0;
  background-color: var(--color-overlay-heavy);
  z-index: var(--z-overlay);
  visibility: hidden;
  opacity: 0;
  transition:
    opacity var(--transition-base),
    visibility var(--transition-base);
  pointer-events: none;
}

.cart-drawer__overlay.is-active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

body.drawer-cart-open .site-header,
body.drawer-wishlist-open .site-header,
body.settings-drawer-open .site-header {
  z-index: var(--z-modal);
}

@keyframes spinner-rotate {
  to {
    transform: rotate(360deg);
  }
}

@keyframes spinner-pulse {
  50% {
    opacity: 1;
  }
}

.cart-drawer__content {
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: var(--space-4);
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}

.cart-drawer__content.is-scrolling {
  scrollbar-color: var(--color-text-muted) var(--color-bg-default);
}

.cart-drawer__content::-webkit-scrollbar {
  width: var(--space-2);
}

.cart-drawer__content::-webkit-scrollbar-track {
  background-color: transparent;
}

.cart-drawer__content::-webkit-scrollbar-thumb {
  background-color: transparent;
  border-radius: var(--radius-full);
}

.cart-drawer__content.is-scrolling::-webkit-scrollbar-track {
  background-color: var(--color-bg-default);
}

.cart-drawer__content.is-scrolling::-webkit-scrollbar-thumb {
  background-color: var(--color-text-muted);
}

.cart-drawer__content.is-loading {
  opacity: var(--opacity-hover);
  pointer-events: none;
}

.cart-drawer__content:has(.mini-cart-loading) {
  display: flex;
  align-items: center;
  justify-content: center;
}

.cart-drawer__content.is-loading:has(.mini-cart-loading) {
  opacity: 1;
}

.cart-drawer__content:has(.mini-cart-empty) {
  padding-bottom: var(--space-4);
}

.cart-drawer__empty {
  margin: 0;
  padding: var(--space-12) var(--space-4);
  text-align: center;
  color: var(--color-text-muted);
  font-size: var(--font-size-base);
}

/* Drawer-nav sheet variant */
body.has-drawer-nav .cart-drawer--sheet {
  top: auto;
  right: 0;
  left: 0;
  bottom: var(--drawer-sheet-bottom, 0);
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: var(--drawer-sheet-max-height-dynamic, 70vh);
  transform: translateY(100%);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

body.has-drawer-nav .cart-drawer--sheet.is-active {
  transform: translateY(0);
}

body.has-drawer-nav .cart-drawer__overlay {
  display: none;
}

/* Mini cart list */
.woocommerce-mini-cart {
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce-mini-cart__free-shipping {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding-bottom: var(--space-4);
  margin-bottom: var(--space-4);
  border-bottom: 1px solid var(--color-border-light);
}

.woocommerce-mini-cart__free-shipping-message {
  margin: 0;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-black);
  line-height: var(--line-height-base);
  text-transform: uppercase;
  font-family: var(--font-mono);
  text-align: center;
}

.woocommerce-mini-cart__free-shipping-track {
  display: block;
  width: 100%;
  height: 0.375rem;
  border: 0;
  border-radius: var(--radius-full);
  overflow: hidden;
  appearance: none;
  background-color: var(--color-bg-light);
}

.woocommerce-mini-cart__free-shipping-track::-webkit-progress-bar {
  background-color: var(--color-bg-light);
}

.woocommerce-mini-cart__free-shipping-track::-webkit-progress-value {
  background-color: var(--color-text-black);
}

.woocommerce-mini-cart__free-shipping-track::-moz-progress-bar {
  background-color: var(--color-text-black);
}

.drawer-item {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
  padding: var(--space-5) 0;
  border-bottom: var(--stroke-hairline) solid var(--color-border-light);
}

.drawer-item:last-child {
  border-bottom: 0;
}

.drawer-item__image {
  flex-shrink: 0;
  width: var(--space-15);
}

.drawer-item__image img {
  display: block;
  width: var(--space-15);
  height: var(--space-15);
  object-fit: cover;
}

.drawer-item__details {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.drawer-item__name {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
  text-decoration: none;
  text-transform: uppercase;
}

.drawer-item__name:hover,
.drawer-item__name:focus-visible {
  opacity: 0.7;
}

.drawer-item__details .variation {
  margin: 0;
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
}

.drawer-item__details .variation dt,
.drawer-item__details .variation dd {
  display: inline;
  margin: 0;
}

.drawer-item__details .variation dd p {
  margin: 0;
}

.drawer-item__price {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-regular);
  color: var(--color-text-black);
}

.drawer-item__price del {
  margin-right: var(--space-2);
  color: var(--color-text-muted);
  font-weight: var(--font-weight-regular);
  text-decoration: line-through;
}

.drawer-item__price ins {
  text-decoration: none;
  color: var(--color-text-black);
}

.drawer-item__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-top: var(--space-1);
}

.drawer-item__quantity {
  flex: 0 0 auto;
  max-width: 100%;
}

.drawer-item__quantity .quantity {
  width: auto;
  max-width: 100%;
}

.drawer-item__remove {
  padding: 0;
  border: 0;
  background: none;
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--letter-spacing-label);
  text-transform: uppercase;
  color: var(--color-text-muted);
  text-decoration: none;
  cursor: pointer;
  transition: color var(--transition-fast);
}

.drawer-item__remove:hover,
.drawer-item__remove:focus-visible {
  color: var(--color-text-black);
}

.drawer-item__remove.is-loading {
  opacity: var(--opacity-disabled);
  pointer-events: none;
}

.drawer-item__add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  height: var(--space-8);
  padding: 0 var(--space-4);
  border: var(--stroke-hairline) solid var(--color-border);
  background-color: var(--color-bg-default);
  color: var(--color-text-black);
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-label);
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--transition-fast);
}

.drawer-item__add:hover,
.drawer-item__add:focus-visible {
  background-color: var(--color-bg-light);
}

.drawer-item__add.is-loading {
  opacity: var(--opacity-disabled);
  pointer-events: none;
}

/* Quantity controls (mini cart + product page) */
.quantity.qty-styled {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  border: 1px solid var(--color-border);
  background-color: var(--color-bg-default);
}

.quantity.qty-styled .qty-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-text-black);
  font-size: var(--font-size-base);
  line-height: 1;
  cursor: pointer;
  transition: background-color var(--transition-fast);
}

.quantity.qty-styled .qty-btn:hover,
.quantity.qty-styled .qty-btn:focus-visible {
  background-color: var(--color-bg-light);
}

.quantity.qty-styled input.qty {
  width: 2.5rem;
  height: 2rem;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: center;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-black);
  appearance: textfield;
  -moz-appearance: textfield;
}

.quantity.qty-styled input.qty::-webkit-outer-spin-button,
.quantity.qty-styled input.qty::-webkit-inner-spin-button {
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
}

/* Mini cart footer */
.cart-drawer__content .woocommerce-mini-cart__footer,
.wishlist-drawer__content .wishlist-drawer__footer {
  position: sticky;
  bottom: 0;
  z-index: var(--z-raised);
  margin-top: var(--space-4);
  background-color: var(--color-bg-default);
}

.woocommerce-mini-cart__footer,
.wishlist-drawer__footer {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: var(--stroke-hairline) solid var(--color-border-light);
  transition: box-shadow var(--transition-base);
}

.woocommerce-mini-cart__footer--stuck {
  box-shadow: var(--shadow-md);
}

.woocommerce-mini-cart__total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  margin: 0;
}

.woocommerce-mini-cart__total-label {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-black);
}

.woocommerce-mini-cart__total-value {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-black);
}

.woocommerce-mini-cart__buttons {
  margin: 0;
}

.wishlist-drawer__buttons {
  margin: 0;
}

.woocommerce-mini-cart__buttons .button,
.wishlist-drawer__add-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  width: 100%;
  box-sizing: border-box;
  padding: var(--space-4) var(--space-6);
  border: var(--stroke-hairline) solid var(--color-text-black);
  background-color: var(--color-text-black);
  color: var(--color-text-white);
  font-family: var(--font-mono);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--letter-spacing-button);
  line-height: 1;
  text-transform: uppercase;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast);
}

.woocommerce-mini-cart__buttons .button:hover,
.woocommerce-mini-cart__buttons .button:focus-visible,
.wishlist-drawer__add-all:hover,
.wishlist-drawer__add-all:focus-visible {
  background-color: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  color: var(--color-text-white);
}

.wishlist-drawer__add-all.is-loading,
.wishlist-drawer__add-all:disabled {
  opacity: var(--opacity-disabled);
  pointer-events: none;
}

.woocommerce-mini-cart__checkout-icon,
.wishlist-drawer__add-all-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.woocommerce-mini-cart__checkout-icon svg,
.wishlist-drawer__add-all-icon svg {
  width: var(--space-4);
  height: var(--space-4);
  display: block;
}

.woocommerce-mini-cart__shipping-note {
  margin: var(--space-3) 0 0;
  font-size: var(--font-size-xs);
  line-height: var(--line-height-base);
  text-align: center;
  color: var(--color-text-muted);
  text-transform: uppercase;
  font-family: var(--font-mono);
}

.woocommerce-mini-cart__payment-options {
  margin-top: var(--space-4);
}

.woocommerce-mini-cart__payment-list {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.woocommerce-mini-cart__payment-item img {
  display: block;
  height: 1.5rem;
  width: auto;
  max-width: 2.75rem;
  object-fit: contain;
}

.woocommerce-mini-cart__empty-message {
  margin: 0;
  padding: var(--space-12) var(--space-4);
  text-align: center;
  font-size: var(--font-size-base);
  color: var(--color-text-muted);
}

.mini-cart-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
}

.mini-cart-loading__spinner {
  width: var(--space-10);
  height: var(--space-10);
  box-sizing: border-box;
  border: var(--stroke-focus) solid var(--color-text-black);
  border-right-color: transparent;
  border-radius: var(--radius-full);
  animation: spinner-rotate 0.55s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  .mini-cart-loading__spinner {
    animation-name: spinner-pulse;
    animation-duration: var(--transition-slow);
    animation-timing-function: ease-in-out;
    border-right-color: var(--color-text-black);
    opacity: var(--opacity-disabled);
  }
}

.mini-cart-empty {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  text-align: center;
  padding: var(--space-2) 0 0;
  max-width: 100%;
  min-width: 0;
}

.woocommerce-cart .mini-cart-empty {
  max-width: 75rem;
  margin: 0 auto;
  padding: var(--space-12) var(--space-4) var(--space-16);
}

.mini-cart-empty__hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
  padding: var(--space-3) 0 0;
}

.mini-cart-empty__graphic {
  width: var(--space-14);
  height: var(--space-14);
  margin: 0;
  border: var(--stroke-hairline) solid var(--color-text-black);
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-black);
}

.mini-cart-empty__bag-icon {
  display: block;
  width: var(--space-8);
  height: var(--space-8);
}

.mini-cart-empty__title {
  font-family: var(--font-secondary);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
  margin: 0;
}

.mini-cart-empty__subtext {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-base);
  color: var(--color-text-muted);
}

.mini-cart-empty__actions {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.mini-cart-empty__btn.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: calc(var(--space-20) + var(--space-6));
  max-width: 100%;
  margin: 0;
  padding: var(--space-3) var(--space-8);
  box-sizing: border-box;
  background: var(--color-text-black);
  color: var(--color-text-white);
  text-decoration: none;
  border-radius: var(--radius-full);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0;
  text-transform: none;
  border: 0;
  transition: opacity var(--transition-fast);
}

.mini-cart-empty__btn.button:hover,
.mini-cart-empty__btn.button:focus-visible {
  opacity: var(--opacity-hover);
  background: var(--color-text-black);
  color: var(--color-text-white);
}

.mini-cart-empty__trust {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  margin: 0;
  padding: var(--space-5) 0;
  border-top: var(--stroke-hairline) solid var(--color-border);
  text-align: center;
}

.mini-cart-empty__payments-label {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-black);
}

.mini-cart-empty__payments {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  justify-content: center;
  margin: 0;
  padding: 0;
}

.mini-cart-empty__payment-icon {
  height: var(--space-6);
  width: auto;
  max-width: var(--space-10);
}

.mini-cart-empty__section-title {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-black);
  text-align: left;
  letter-spacing: 0;
  text-transform: none;
}

.mini-cart-empty__recently-viewed {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin: 0;
  text-align: left;
}

.mini-cart-empty__recently-viewed[hidden] {
  display: none;
}

.mini-cart-empty__carousel {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.mini-cart-empty__carousel-track {
  display: flex;
  gap: var(--space-4);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.mini-cart-empty__carousel-track::-webkit-scrollbar {
  display: none;
}

.mini-cart-empty__product {
  flex: 0 0 calc(72% - var(--space-2));
  scroll-snap-align: start;
  scroll-snap-stop: always;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  text-decoration: none;
  color: inherit;
  min-width: 0;
}

.mini-cart-empty__product-image {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  background: var(--color-bg-light);
  overflow: hidden;
}

.mini-cart-empty__product-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.mini-cart-empty__product-body {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

.mini-cart-empty__product-title {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
  text-align: left;
}

.mini-cart-empty__product-description {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  line-height: var(--line-height-base);
  color: var(--color-text-muted);
  text-align: left;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}

.mini-cart-empty__product-price {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
  text-align: left;
}

.mini-cart-empty__product-price del {
  margin-right: var(--space-2);
  color: var(--color-text-muted);
  font-weight: var(--font-weight-regular);
  text-decoration: line-through;
}

.mini-cart-empty__product-price ins {
  text-decoration: none;
  color: var(--color-text-black);
  font-weight: var(--font-weight-medium);
}

.mini-cart-empty__carousel-controls {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

.mini-cart-empty__carousel-controls[hidden] {
  display: none;
}

.mini-cart-empty__carousel-nav {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-shrink: 0;
}

.mini-cart-empty__carousel-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-8);
  height: var(--space-8);
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-text-black);
  cursor: pointer;
  transition: opacity var(--transition-fast);
}

.mini-cart-empty__carousel-arrow:disabled {
  opacity: var(--opacity-disabled);
  cursor: default;
}

.mini-cart-empty__carousel-arrow-icon {
  display: block;
  width: var(--font-size-md);
  height: var(--font-size-md);
}

.mini-cart-empty__carousel-progress {
  position: relative;
  flex: 1;
  height: var(--space-1);
  background: var(--color-border);
  overflow: hidden;
}

.mini-cart-empty__carousel-progress-bar {
  display: block;
  height: 100%;
  background: var(--color-text-black);
  transition:
    margin-left var(--transition-fast),
    width var(--transition-fast);
}

.mini-cart-empty__categories {
  margin: var(--space-8) 0 var(--space-10);
  padding: var(--space-5) 0;
  text-align: left;
}

.mini-cart-empty__categories-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3) var(--space-2);
}

.mini-cart-empty__category {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  text-decoration: none;
  color: inherit;
  min-width: 0;
}

.mini-cart-empty__category-image {
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--color-bg-light);
}

.mini-cart-empty__category-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.mini-cart-empty__category-name {
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
  text-align: left;
  overflow-wrap: anywhere;
}

.mini-cart-empty__mission {
  margin: 0;
  padding-top: var(--space-1);
  padding-bottom: var(--space-8);
  font-family: var(--font-secondary);
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
  text-align: left;
}

@media (max-width: 26.25rem) {
  .mini-cart-empty__categories-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .mini-cart-empty__btn.button {
    min-width: 0;
    width: 100%;
  }
}

/* Cart badge (drawer nav bar) */
.cart-badge {
  position: absolute;
  top: -0.375rem;
  right: -0.375rem;
}

.cart-badge__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1rem;
  height: 1rem;
  padding: 0 var(--space-1);
  border-radius: var(--radius-full);
  background-color: var(--color-text-black);
  color: var(--color-text-white);
  font-size: 0.625rem;
  font-weight: var(--font-weight-bold);
  line-height: 1;
}

.cart-badge__count.is-empty {
  display: none;
}

.drawer-nav-bar__cart {
  position: relative;
}

/* Hide WooCommerce blockUI overlay during mini-cart AJAX */
body .blockUI.blockOverlay,
body .blockUI.blockMsg,
body .blockUI {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 48rem) {
  .cart-drawer {
    max-width: 100%;
  }

  .cart-drawer__content {
    padding: var(--space-3) var(--space-4);
  }

  .drawer-item__image,
  .drawer-item__image img {
    width: 4.5rem;
    height: 4.5rem;
  }
}

/* ─── Wishlist drawer ───────────────────────────────────── */
.main-header__wishlist-icon-wrap,
.main-header__bag-icon-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.main-header__wishlist-count,
.main-header__cart-count {
  position: absolute;
  top: calc(-1 * var(--space-1));
  right: calc(-1 * var(--space-1));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--space-4);
  height: var(--space-4);
  padding: 0 var(--space-1);
  border-radius: var(--radius-full);
  background-color: var(--color-text-black);
  color: var(--color-text-white);
  font-size: var(--font-size-2xs);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tightest);
}

.main-header__wishlist-count.is-empty,
.main-header__cart-count.is-empty {
  display: none;
}

.wishlist-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  max-width: 500px;
  height: 100%;
  height: 100dvh;
  z-index: var(--z-modal);
  background-color: var(--color-bg-default);
  color: var(--color-text-black);
  visibility: hidden;
  transform: translateX(100%);
  transition:
    transform var(--transition-base),
    visibility var(--transition-base);
  display: flex;
  flex-direction: column;
}

.wishlist-drawer.is-active {
  visibility: visible;
  transform: translateX(0);
}

.wishlist-drawer__overlay {
  position: fixed;
  inset: 0;
  background-color: var(--color-overlay-heavy);
  z-index: var(--z-overlay);
  visibility: hidden;
  opacity: 0;
  transition:
    opacity var(--transition-base),
    visibility var(--transition-base);
  pointer-events: none;
}

.wishlist-drawer__overlay.is-active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.wishlist-drawer__content {
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: var(--space-4);
  scrollbar-gutter: stable;
}

.wishlist-drawer__content.is-loading {
  opacity: var(--opacity-hover);
  pointer-events: none;
}

.wishlist-drawer__content:has(.wishlist-loading) {
  display: flex;
  align-items: center;
  justify-content: center;
}

.wishlist-drawer__content.is-loading:has(.wishlist-loading) {
  opacity: 1;
}

.wishlist-drawer__content:has(.wishlist-empty) {
  padding-bottom: var(--space-4);
}

body.has-drawer-nav .wishlist-drawer--sheet {
  top: auto;
  right: 0;
  left: 0;
  bottom: var(--drawer-sheet-bottom, 0);
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: var(--drawer-sheet-max-height-dynamic, 70vh);
  transform: translateY(100%);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

body.has-drawer-nav .wishlist-drawer--sheet.is-active {
  transform: translateY(0);
}

body.has-drawer-nav .wishlist-drawer__overlay {
  display: none;
}

.wishlist-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
}

.wishlist-loading__spinner {
  width: var(--space-10);
  height: var(--space-10);
  box-sizing: border-box;
  border: var(--stroke-focus) solid var(--color-text-black);
  border-right-color: transparent;
  border-radius: var(--radius-full);
  animation: spinner-rotate 0.55s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  .wishlist-loading__spinner {
    animation-name: spinner-pulse;
    animation-duration: var(--transition-slow);
    animation-timing-function: ease-in-out;
    border-right-color: var(--color-text-black);
    opacity: var(--opacity-disabled);
  }
}

.wishlist-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.wishlist-empty {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  text-align: center;
  padding: var(--space-2) 0 0;
}

.wishlist-empty__hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
  padding: var(--space-3) 0 0;
}

.wishlist-empty__graphic {
  width: var(--space-14);
  height: var(--space-14);
  margin: 0;
  border: var(--stroke-hairline) solid var(--color-text-black);
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-black);
}

.wishlist-empty__icon {
  display: block;
  width: var(--space-8);
  height: var(--space-8);
}

.wishlist-empty__title {
  font-family: var(--font-secondary);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
  margin: 0;
}

.wishlist-empty__subtext {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-base);
  color: var(--color-text-muted);
}

.wishlist-empty__actions {
  display: flex;
  justify-content: center;
  width: 100%;
}

.wishlist-empty__btn.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: calc(var(--space-20) + var(--space-6));
  max-width: 100%;
  margin: 0;
  padding: var(--space-3) var(--space-8);
  box-sizing: border-box;
  background: var(--color-text-black);
  color: var(--color-text-white);
  text-decoration: none;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--letter-spacing-button);
  text-transform: uppercase;
}

@media (max-width: 48rem) {
  .wishlist-drawer {
    max-width: 100%;
  }

  .wishlist-drawer__content {
    padding: var(--space-3) var(--space-4);
  }
}

/* ─── Shop / category archive ───────────────────────────── */
.category-editorial-header__pill-icon svg,
.shop-filters-drawer-trigger__filters-icon svg {
  width: 1em;
  height: 1em;
  display: block;
}

.category-editorial-header {
  background: transparent;
  color: var(--color-text-black);
  padding: var(--space-6) 0;
  margin-top: 0;
}

.category-editorial-header__container {
  max-width: 100%;
  margin: 0;
  padding: 0 var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.category-editorial-header__title {
  margin: 0;
  font-family: var(--font-primary);
  font-size: clamp(var(--font-size-xl), 3.5vw, var(--font-size-2xl));
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--letter-spacing-tight);
  text-align: center;
}

.category-editorial-header__nav-row {
  display: flex;
  align-items: center;
  gap: var(--space-5);
  min-width: 0;
}

.category-editorial-header__nav-row--root {
  justify-content: flex-start;
}

.category-editorial-header__pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  flex-shrink: 0;
  min-height: 1.875rem;
  padding: 0 var(--space-4);
  border: 1px solid var(--color-border-dark);
  border-radius: var(--radius-full);
  color: var(--color-text-black);
  text-decoration: none;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  transition:
    border-color var(--transition-base),
    background-color var(--transition-base);
}

.category-editorial-header__pill:hover {
  border-color: var(--color-text-black);
}

.category-editorial-header__pill-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  width: var(--font-size-sm);
  height: var(--font-size-sm);
}

.category-editorial-header__subnav {
  min-width: 0;
  overflow: hidden;
}

.category-editorial-header__subnav-list {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}

.category-editorial-header__subnav-list::-webkit-scrollbar {
  display: none;
}

.category-editorial-header__subnav-item {
  flex-shrink: 0;
}

.category-editorial-header__subnav-link {
  display: inline-flex;
  align-items: center;
  min-height: var(--space-8);
  color: var(--color-text-black);
  text-decoration: none;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  white-space: nowrap;
  position: relative;
}

.category-editorial-header__subnav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--stroke-focus);
  background: transparent;
  transition: background-color var(--transition-base);
}

.category-editorial-header__subnav-link.is-active::after {
  background: currentColor;
}

.category-editorial-header__nav-row--root
  .category-editorial-header__subnav-link:not(.is-active) {
  color: var(--color-text-muted);
}

.category-editorial-header__nav-row--root
  .category-editorial-header__subnav-link:not(.is-active):hover {
  color: var(--color-text-black);
}

.category-editorial-header__nav-row--selected
  .category-editorial-header__subnav-link {
  color: var(--color-text-muted);
}

.category-editorial-header__nav-row--selected
  .category-editorial-header__subnav-link:hover {
  color: var(--color-text-black);
}

.category-editorial-header__subnav-link.is-pill {
  padding: 0 var(--space-4);
  border: 1px solid var(--color-border-dark);
  border-radius: var(--radius-full);
}

.category-editorial-header__subnav-link.is-pill::after {
  display: none;
}

.category-editorial-header__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}

.category-editorial-header__toolbar-start {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}

.category-editorial-header__filter {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 2.75rem;
  padding: 0 var(--space-5);
  border: 1px solid var(--color-text-black);
  border-radius: var(--radius-full);
  background: transparent;
  color: var(--color-text-black);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  cursor: pointer;
  transition:
    background-color var(--transition-base),
    color var(--transition-base);
}

.category-editorial-header__filter-icon {
  font-size: var(--font-size-md);
}

.category-editorial-header__filter-text--mobile {
  display: none;
}

.category-editorial-header__results {
  margin: 0;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
  color: var(--color-text-black);
  white-space: nowrap;
}

@media (min-width: 769px) {
  .category-editorial-header__filter-text--desktop {
    display: inline;
  }

  .category-editorial-header__nav-row--root {
    justify-content: center;
  }

  .category-editorial-header__nav-row--root
    .category-editorial-header__subnav-list::before,
  .category-editorial-header__nav-row--root
    .category-editorial-header__subnav-list::after {
    content: "";
    flex: 1 0 0;
  }
}

@media (max-width: 768px) {
  .category-editorial-header {
    padding: var(--space-3) 0;
    margin-top: var(--space-2);
  }

  .category-editorial-header__nav-row {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
  }

  .category-editorial-header__nav-row--root,
  .category-editorial-header__nav-row--selected {
    flex-direction: row;
    align-items: center;
    margin-left: calc(var(--space-4) * -1);
    margin-right: calc(var(--space-4) * -1);
    gap: var(--space-4);
  }

  .category-editorial-header__nav-row--root {
    justify-content: flex-start;
    padding-left: 0;
    padding-right: 0;
  }

  .category-editorial-header__nav-row--selected {
    padding-left: var(--space-4);
    padding-right: var(--space-4);
  }

  .category-editorial-header__nav-row--root .category-editorial-header__subnav,
  .category-editorial-header__nav-row--selected
    .category-editorial-header__subnav {
    width: auto;
    min-width: 0;
    flex: 1;
    overflow: hidden;
  }

  .category-editorial-header__nav-row--root
    .category-editorial-header__subnav-list,
  .category-editorial-header__nav-row--selected
    .category-editorial-header__subnav-list {
    justify-content: flex-start;
    gap: var(--space-5);
    padding-bottom: var(--space-1);
    -webkit-overflow-scrolling: touch;
  }

  .category-editorial-header__nav-row--root
    .category-editorial-header__subnav-list {
    padding-left: var(--space-4);
    padding-right: var(--space-4);
  }

  .category-editorial-header__filter-text--desktop {
    display: none;
  }

  .category-editorial-header__filter-text--mobile {
    display: inline;
  }

  .category-editorial-header__filter {
    gap: var(--space-2);
    min-height: auto;
    border: none;
    padding: 0;
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-nav);
  }

  .category-editorial-header__filter-icon {
    width: var(--font-size-sm);
    height: var(--font-size-sm);
    font-size: var(--font-size-sm);
  }

  .category-editorial-header__results {
    font-size: var(--font-size-2xs);
    color: var(--color-text-muted);
  }
}

.shop-filters-drawer-trigger {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  background: transparent;
  border: none;
  padding: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-wider);
  text-transform: uppercase;
  color: var(--color-text-black);
  cursor: pointer;
  touch-action: manipulation;
}

.shop-filters-drawer-trigger__filters-icon {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.shop-filters-drawer-trigger__text--desktop {
  display: none;
}

.shop-filters-drawer {
  display: block;
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0s linear var(--transition-base);
}

.shop-filters-drawer__overlay {
  position: absolute;
  inset: 0;
  background: var(--color-overlay-dark);
  opacity: 0;
  transition: opacity var(--transition-base);
}

.shop-filters-drawer__panel {
  position: absolute;
  inset: 0;
  transform: translateY(100%);
  transition: transform var(--transition-base);
  display: flex;
  flex-direction: column;
  background: var(--color-bg-default);
  will-change: transform;
  backface-visibility: hidden;
}

.shop-filters-drawer.is-active {
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

.shop-filters-drawer.is-active .shop-filters-drawer__overlay {
  opacity: 1;
}

.shop-filters-drawer.is-active .shop-filters-drawer__panel {
  transform: translateY(0);
}

.shop-filters-drawer__header {
  background: var(--color-bg-default);
}

.shop-filters-drawer__form {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.shop-filters-drawer__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: var(--space-4);
  background: var(--color-bg-default);
}

.shop-filters-drawer__section {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.shop-filters-drawer__section-title {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-black);
}

.shop-filters-drawer__options {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.shop-filters-drawer__option {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  cursor: pointer;
  touch-action: manipulation;
  user-select: none;
}

.shop-filters-drawer__option-label {
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
}

.shop-filters-drawer__option input {
  flex-shrink: 0;
  margin: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--color-border);
  background: var(--color-bg-default);
  transition:
    border-color var(--transition-fast),
    background-color var(--transition-fast);
}

.shop-filters-drawer__option--radio input {
  width: var(--space-5);
  height: var(--space-5);
  border-radius: var(--radius-full);
  position: relative;
}

.shop-filters-drawer__option--radio input:checked {
  border-color: var(--color-text-black);
  background: var(--color-bg-default);
}

.shop-filters-drawer__option--radio input:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: var(--space-2);
  height: var(--space-2);
  border-radius: var(--radius-full);
  background: var(--color-text-black);
}

.shop-filters-drawer__option--checkbox input {
  width: calc(var(--space-4) + var(--space-1));
  height: calc(var(--space-4) + var(--space-1));
  border-radius: var(--radius-sm);
  position: relative;
}

.shop-filters-drawer__option--checkbox input:checked {
  border-color: var(--color-text-black);
  background-color: var(--color-text-black);
}

.shop-filters-drawer__option--checkbox input:checked::after {
  content: "";
  position: absolute;
  top: 45%;
  left: 50%;
  width: var(--space-1);
  height: calc(var(--space-2) + var(--space-1));
  border: solid var(--color-text-white);
  border-width: 0 var(--stroke-focus) var(--stroke-focus) 0;
  transform: translate(-50%, -50%) rotate(45deg);
}

.shop-filters-drawer__option input:focus-visible {
  outline: var(--stroke-focus) solid var(--color-text-black);
  outline-offset: var(--stroke-focus);
}

.shop-filters-drawer__footer {
  flex-shrink: 0;
  padding: var(--space-4) var(--space-5)
    calc(var(--space-4) + env(safe-area-inset-bottom, 0px));
  background: var(--color-bg-default);
  border-top: 1px solid var(--color-border);
}

.shop-filters-drawer__submit {
  display: block;
  width: 100%;
  padding: var(--space-4) var(--space-6);
  border: none;
  border-radius: var(--radius-full);
  background: var(--color-text-black);
  color: var(--color-text-white);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-label);
  text-transform: uppercase;
  cursor: pointer;
  touch-action: manipulation;
  transition: opacity var(--transition-fast);
}

.shop-filters-drawer__submit:hover,
.shop-filters-drawer__submit:focus-visible {
  opacity: 0.88;
  outline: none;
}

.shop-filters-drawer__section--widgets {
  gap: var(--space-8);
}

.shop-filters-drawer__section--widgets .widget {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin: 0;
}

.shop-filters-drawer__section--widgets .widget-title {
  font-family: var(--font-secondary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--letter-spacing-wider);
  margin: 0;
  color: var(--color-text-muted);
  border-bottom: 1px solid var(--color-border);
  padding-bottom: var(--space-2);
}

.shop-catalog-layout {
  display: block;
}

@media (min-width: 769px) {
  .shop-filters-drawer-trigger {
    justify-content: center;
    gap: var(--space-2);
    border: 1px solid var(--color-text-black);
    border-radius: var(--radius-full);
    background: var(--color-bg-default);
    padding: var(--space-2) var(--space-4);
    font-size: var(--font-size-2xs);
    letter-spacing: var(--letter-spacing-button);
    min-height: auto;
    transition: none;
  }

  .shop-filters-drawer-trigger:hover,
  .shop-filters-drawer-trigger:focus-visible {
    background-color: var(--color-text-black);
    color: var(--color-text-white);
    outline: none;
  }

  .shop-filters-drawer-trigger__text--desktop {
    display: inline;
  }

  .shop-filters-drawer-trigger__text--mobile {
    display: none;
  }

  .shop-catalog-layout {
    display: grid;
    grid-template-columns: 0 minmax(0, 1fr);
    column-gap: 0;
    align-items: start;
    transition:
      grid-template-columns var(--transition-base),
      column-gap var(--transition-base);
  }

  body.shop-filters-open .shop-catalog-layout {
    grid-template-columns: min(17.5rem, 28vw) minmax(0, 1fr);
    column-gap: var(--space-3);
  }

  .shop-filters-drawer {
    position: static;
    inset: auto;
    visibility: visible;
    pointer-events: none;
    z-index: auto;
    opacity: 0;
    overflow: hidden;
    transition:
      opacity var(--transition-base),
      visibility 0s linear var(--transition-base);
  }

  .shop-filters-drawer.is-active {
    pointer-events: auto;
    opacity: 1;
    transition:
      opacity var(--transition-base),
      visibility 0s linear 0s;
  }

  .shop-filters-drawer__overlay {
    display: none;
  }

  .shop-filters-drawer__panel {
    position: static;
    inset: auto;
    width: min(17.5rem, 28vw);
    max-height: calc(100vh - var(--space-20));
    transform: none !important;
    display: flex;
    flex-direction: column;
    background: transparent;
    border-right: 1px solid transparent;
    transition: border-color var(--transition-base);
  }

  body.shop-filters-open .shop-filters-drawer__panel {
    border-right-color: var(--color-border);
  }

  .shop-filters-drawer__header {
    display: none;
  }

  .shop-filters-drawer__content {
    padding: var(--space-4);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .shop-filters-drawer__footer {
    padding: var(--space-4) var(--space-4) 0 0;
    border-top: 1px solid var(--color-border);
    background: transparent;
  }

  .products-grid-wrapper {
    min-width: 0;
    transition: transform var(--transition-base);
  }
}

@media (max-width: 768px) {
  .shop-filters-drawer-trigger {
    min-width: auto;
    border: none;
    padding: 0;
    font-size: var(--font-size-xs);
    color: var(--color-text-black);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-nav);
    justify-content: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .shop-catalog-layout,
  .shop-filters-drawer,
  .shop-filters-drawer__panel,
  .products-grid-wrapper,
  .shop-main-content ul.products {
    transition: none !important;
  }
}

.shop-main-content {
  max-width: 100%;
  margin: 0;
  padding: 0 0 var(--space-12);
}

.shop-catalog-main {
  min-width: 0;
  padding: 0 var(--space-4);
}

.shop-main-content ul.products {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--space-6) var(--space-4);
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: none;
}

.shop-main-content ul.products .product-gallery__item {
  padding: 0;
  flex: none;
  width: auto;
  min-width: 0;
}

.shop-main-content
  ul.products
  > li.product-gallery__item
  > .product-gallery__item {
  flex: 1;
  width: 100%;
  min-height: 100%;
}

.shop-main-content ul.products .product-gallery__image-wrapper {
  height: auto;
  aspect-ratio: 1 / 1;
}

.shop-main-content .woocommerce-info {
  margin: 0;
  padding: var(--space-8) 0;
  background: transparent;
  border: none;
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
}

.products-infinite-scroll {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-8) 0 var(--space-12);
}

.products-infinite-scroll__sentinel {
  width: 100%;
  height: var(--stroke-hairline);
}

.products-infinite-scroll__loader {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--color-text-muted);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--letter-spacing-nav);
  text-transform: uppercase;
}

.products-infinite-scroll__loader[hidden] {
  display: none;
}

.products-infinite-scroll__spinner {
  width: var(--space-5);
  height: var(--space-5);
  box-sizing: border-box;
  border: var(--stroke-focus) solid var(--color-border);
  border-top-color: var(--color-text-black);
  border-radius: var(--radius-full);
  animation: spinner-rotate 0.55s linear infinite;
  flex-shrink: 0;
}

.products-infinite-scroll__end {
  margin: 0;
  color: var(--color-text-muted);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--letter-spacing-nav);
  text-transform: uppercase;
}

.products-infinite-scroll__end[hidden] {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .products-infinite-scroll__spinner {
    animation-name: spinner-pulse;
    animation-duration: var(--transition-slow);
    animation-timing-function: ease-in-out;
    border-top-color: var(--color-text-black);
    opacity: var(--opacity-disabled);
  }
}

.shop-main-content .woocommerce-pagination {
  margin: var(--space-10) 0 0;
}

.shop-main-content .woocommerce-pagination ul.page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.shop-main-content .woocommerce-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--space-8);
  height: var(--space-8);
  padding: 0 var(--space-2);
  color: var(--color-text-black);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  text-decoration: none;
  border-radius: var(--radius-full);
}

.shop-main-content .woocommerce-pagination .page-numbers.current {
  background: var(--color-text-black);
  color: var(--color-text-white);
}

.shop-main-content .woocommerce-pagination a.page-numbers:hover {
  background: var(--color-bg-light);
}

@media (max-width: 1200px) {
  .shop-main-content ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .shop-main-content ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5) var(--space-3);
  }
}

/* ─── About page ────────────────────────────────────────── */
.about-page {
  background-color: var(--color-bg-default);
}

.about-hero {
  padding: clamp(var(--space-4), 2vw, var(--space-8)) 0 0;
  background-color: var(--color-bg-default);
}

.about-hero__container,
.about-created__container,
.about-mission__container,
.about-story__inner {
  max-width: var(--space-max);
  margin: 0 auto;
  padding: 0 var(--space-4);
}

.about-hero__frame,
.about-created__frame {
  position: relative;
  overflow: hidden;
  min-height: clamp(25rem, 87vh, 56.25rem);
}

.about-hero__media,
.about-hero__fallback,
.about-created__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.about-hero__media {
  display: block;
}

.about-hero__image,
.about-created__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.about-hero__video-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: var(--z-chrome);
}

.about-hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.about-hero__video.is-error {
  opacity: 0;
  pointer-events: none;
}

.about-hero__video--desktop {
  display: block;
}

.about-hero__video--mobile {
  display: none;
}

.about-hero__fallback {
  z-index: var(--z-base);
  transition: opacity var(--transition-slow);
}

.about-hero__media.is-playing .about-hero__fallback {
  opacity: 0;
}

.about-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.55) 0%,
    rgba(0, 0, 0, 0.15) 45%,
    transparent 100%
  );
  pointer-events: none;
  z-index: var(--z-chrome);
}

.about-hero__content {
  position: absolute;
  left: clamp(0.875rem, 3vw, 1.75rem);
  bottom: clamp(var(--space-6), 3vw, 1.75rem);
  z-index: var(--z-raised);
  max-width: min(43.75rem, 90%);
  color: var(--color-text-white);
}

.about-hero__heading {
  margin: 0 0 var(--space-3);
  font-family: var(--font-primary);
  font-size: clamp(var(--font-size-3xl), 5vw, 4.25rem);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tightest);
  letter-spacing: var(--letter-spacing-tight);
  color: var(--color-text-white);
}

.about-hero__subheading {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: clamp(var(--font-size-base), 2vw, var(--font-size-md));
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-tight);
  color: var(--color-text-white);
  opacity: var(--opacity-hover);
}

.about-hero__subheading p {
  margin: 0;
}

.about-hero__subheading p + p {
  margin-top: var(--space-4);
}

.about-hero__cta {
  margin-top: var(--space-6);
}

.about-hero__cta-link,
.about-created__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-6);
  border: var(--stroke-hairline) solid var(--color-bg-dark);
  border-radius: var(--radius-full);
  background-color: var(--color-bg-dark);
  color: var(--color-text-white);
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-tight);
  letter-spacing: 0;
  text-transform: none;
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast);
}

.about-hero__cta-link:hover,
.about-hero__cta-link:focus-visible {
  background-color: var(--color-text-white);
  color: var(--color-bg-dark);
  border-color: var(--color-text-white);
}

.about-hero__cta-icon,
.about-hero__icon {
  flex-shrink: 0;
  width: var(--space-5);
  height: var(--space-5);
}

.about-hero__video-control {
  position: absolute;
  top: clamp(var(--space-4), 2vw, var(--space-6));
  right: clamp(var(--space-4), 2vw, var(--space-6));
  z-index: var(--z-raised);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-10);
  height: var(--space-10);
  padding: 0;
  border: none;
  border-radius: var(--radius-full);
  background: transparent;
  color: var(--color-text-white);
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition:
    background-color var(--transition-fast),
    opacity var(--transition-fast);
}

.about-hero__video-control:hover,
.about-hero__video-control:focus-visible {
  background-color: rgba(0, 0, 0, 0.55);
}

.about-hero__video-control:focus-visible {
  outline: var(--stroke-focus) solid var(--color-text-white);
  outline-offset: var(--space-1);
}

.about-hero__video-control-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.about-hero__video-control-icon--play {
  display: none;
}

.about-hero__video-control.is-paused .about-hero__video-control-icon--pause {
  display: none;
}

.about-hero__video-control.is-paused .about-hero__video-control-icon--play {
  display: flex;
}

.about-hero__frame:has(.about-hero__video.is-error) .about-hero__video-control {
  display: none;
}

.about-mission {
  background-color: var(--color-bg-default);
}

.about-mission__text {
  margin: 0;
  max-width: 54rem;
  padding: var(--space-15) 0 var(--space-8);
  font-family: var(--font-primary);
  font-size: clamp(1.375rem, 3.5vw, 1.875rem);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tightest);
  text-align: left;
  color: var(--color-text-black);
}

.about-mission__text p {
  margin: 0;
}

.about-mission__text p + p {
  margin-top: var(--space-6);
}

.about-story {
  padding: var(--space-5) 0 var(--space-12);
}

.about-story__layout {
  display: grid;
  grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
  gap: 0.625rem;
}

.about-story__featured-media {
  overflow: hidden;
  aspect-ratio: 10 / 8;
  background-color: var(--color-border);
}

.about-story__featured-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.about-story__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.625rem;
  align-self: center;
  position: relative;
  z-index: var(--z-raised);
  margin-left: calc(-1 * clamp(var(--space-6), 3vw, 3.5rem));
}

.about-story__card {
  position: relative;
  display: block;
  aspect-ratio: 7 / 10;
  overflow: hidden;
  text-decoration: none;
  color: var(--color-text-white);
  background-color: var(--about-story-card-bg, var(--color-border));
}

.about-story__card-media,
.about-story__card-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.about-story__card-media {
  overflow: hidden;
}

.about-story__card-image {
  object-fit: cover;
  display: block;
  transition:
    filter var(--transition-base),
    transform var(--transition-base);
  transform: scale(1);
}

.about-story__card:hover .about-story__card-image {
  filter: blur(var(--space-1));
  transform: scale(1.1);
}

.about-story__card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.18) 45%,
    transparent 100%
  );
  pointer-events: none;
}

.about-story__card--solid .about-story__card-overlay {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.55) 0%, transparent 55%);
}

.about-story__card-text {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-raised);
  padding: var(--space-5) var(--space-4);
  font-family: var(--font-primary);
  font-size: clamp(1.125rem, 1.35vw, 1.375rem);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-tight);
  letter-spacing: -0.01em;
}

.about-story__featured-body {
  max-width: 1100px;
  padding-top: 1.75rem;
}

.about-created {
  padding: clamp(var(--space-12), 6vw, 6rem) 0
    clamp(var(--space-14), 8vw, 7.5rem);
  background-color: var(--color-bg-default);
}

.about-created__frame {
  margin: 0 0 clamp(var(--space-10), 5vw, var(--space-14));
}

.about-created__inner {
  max-width: 64rem;
}

.about-created__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(var(--space-5), 3vw, var(--space-8));
}

.about-created__heading,
.about-story__heading {
  margin: 0;
  font-family: var(--font-primary);
  font-size: clamp(var(--font-size-2xl), 4.5vw, 3.25rem);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tightest);
  letter-spacing: var(--letter-spacing-tight);
  color: var(--color-text-black);
}

.about-story__heading {
  margin: 0 0 var(--space-3);
}

.about-created__description,
.about-story__subheading {
  margin: 0;
  font-family: var(--font-secondary);
  font-size: clamp(var(--font-size-base), 1.6vw, var(--font-size-md));
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-base);
  color: var(--color-text-black);
}

.about-created__description p,
.about-story__subheading p {
  margin: 0;
}

.about-created__description p + p,
.about-story__subheading p + p {
  margin-top: var(--space-4);
}

.about-story__subheading {
  margin: 0 0 var(--space-6);
}

.about-created__cta:hover,
.about-created__cta:focus-visible {
  background-color: var(--color-bg-default);
  color: var(--color-text-black);
  border-color: var(--color-text-black);
}

.about-story__cta {
  line-height: 1;
}

@media (hover: hover) {
  .about-hero__video-control {
    opacity: 0;
  }

  .about-hero__frame:hover .about-hero__video-control,
  .about-hero__video-control:focus-visible,
  .about-hero__video-control.is-paused {
    opacity: 1;
  }
}

@media (max-width: 1024px) {
  .about-story__layout {
    grid-template-columns: 1fr;
  }

  .about-story__cards {
    margin-left: 0;
  }

  .about-story__featured-body {
    padding: var(--space-6) 0;
    max-width: none;
  }
}

@media (max-width: 768px) {
  .about-hero {
    padding-top: var(--space-3);
  }

  .about-hero__frame,
  .about-created__frame {
    min-height: clamp(21.25rem, 65vh, 37.5rem);
  }

  .about-hero__content {
    left: var(--space-5);
    bottom: 1.75rem;
    max-width: calc(100% - var(--space-10));
  }

  .about-hero__video--desktop {
    display: none;
  }

  .about-hero__video--mobile {
    display: block;
  }

  .about-created {
    padding: 0 0 var(--space-10);
  }

  .about-mission__text {
    padding: var(--space-8) 0 var(--space-6);
  }

  .about-story {
    --about-story-mobile-card-width: min(64vw, 18.75rem);
    --about-story-mobile-overlap: clamp(var(--space-6), 6vw, var(--space-12));
  }

  .about-story__layout {
    gap: 0;
  }

  .about-story__featured-media {
    aspect-ratio: 4 / 5;
  }

  .about-story__featured-body {
    padding: var(--space-5) 0;
  }

  .about-story__cards {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    margin-top: calc(-1 * var(--about-story-mobile-overlap));
    padding-bottom: var(--space-3);
    -ms-overflow-style: none;
    scrollbar-width: none;
  }

  .about-story__cards::-webkit-scrollbar {
    display: none;
  }

  .about-story__card {
    flex: 0 0 var(--about-story-mobile-card-width);
    scroll-snap-align: start;
  }

  .about-story__card-text {
    padding: var(--space-4) 0.875rem;
    font-size: var(--font-size-md);
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-hero__video {
    display: none;
  }

  .about-hero__fallback {
    opacity: 1;
  }

  .about-story__card-image,
  .about-hero__cta-link,
  .about-created__cta,
  .about-hero__video-control {
    transition: none;
  }
}

/* ─── Policy / legal pages ──────────────────────────────── */
.policy-page {
  background-color: var(--color-bg-default);
}

.policy-page__container {
  max-width: var(--space-max);
  margin: 0 auto;
  padding: 0 var(--space-4);
}

.policy-page__spacer {
  padding-top: 1.875rem;
  padding-bottom: var(--space-15);
}

.policy-page__article {
  max-width: 48rem;
  margin: 0 auto;
}

.policy-page__header {
  margin-bottom: var(--space-6);
}

.policy-page__title {
  margin: 0;
  font-family: var(--font-mono);
  font-size: clamp(var(--font-size-lg), 4vw, var(--font-size-xl));
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  color: var(--color-text-black);
  text-align: center;
  text-transform: uppercase;
}

.policy-page__content {
  color: var(--color-text-black);
  font-family: var(--font-secondary);
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
}

.policy-page__content > :first-child {
  margin-top: 0;
}

.policy-page__content > :last-child {
  margin-bottom: 0;
}

.policy-page__content h1,
.policy-page__content h2,
.policy-page__content h3,
.policy-page__content h4 {
  font-family: var(--font-primary);
  color: var(--color-text-black);
  line-height: var(--line-height-tight);
}

.policy-page__content h1 {
  margin: 0 0 var(--space-6);
  font-size: clamp(var(--font-size-2xl), 4vw, var(--font-size-3xl));
  font-weight: var(--font-weight-bold);
}

.policy-page__content h2 {
  margin: var(--space-10) 0 var(--space-4);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
}

.policy-page__content h3 {
  margin: var(--space-8) 0 var(--space-3);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
}

.policy-page__content p {
  margin: 0 0 var(--space-4);
}

.policy-page__content ul,
.policy-page__content ol {
  margin: 0 0 var(--space-4);
  padding-left: var(--space-6);
  list-style: revert;
}

.policy-page__content li {
  margin-bottom: var(--space-2);
}

.policy-page__content a {
  color: var(--color-text-black);
  text-decoration: underline;
  text-underline-offset: var(--space-1);
}

.policy-page__content a:hover,
.policy-page__content a:focus-visible {
  color: var(--color-text-muted);
}

.policy-page__content .page-links {
  margin-top: var(--space-8);
}

@media (max-width: 768px) {
  .policy-page__spacer {
    padding-bottom: var(--space-12);
  }
}

/* WhatsApp floating button */
.wcb-whatsapp {
  position: fixed;
  bottom: var(--space-6);
  left: var(--space-6);
  z-index: var(--z-dropdown);
}

.wcb-whatsapp-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--whatsapp-button-size);
  height: var(--whatsapp-button-size);
  background: var(--color-whatsapp);
  color: var(--color-text-white);
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-whatsapp);
  transition:
    transform var(--transition-fast),
    box-shadow var(--transition-fast),
    opacity var(--transition-base),
    visibility var(--transition-base);
}

.wcb-whatsapp-button:hover,
.wcb-whatsapp-button:focus-visible {
  color: var(--color-text-white);
  transform: translateY(var(--whatsapp-translate-hover));
  box-shadow: var(--shadow-whatsapp-hover);
}

.wcb-whatsapp-button__icon-wrap,
.wcb-whatsapp-button__icon {
  display: block;
  width: var(--whatsapp-icon-size);
  height: var(--whatsapp-icon-size);
}

.wcb-whatsapp-button:not(.is-visible) {
  opacity: 0;
  visibility: hidden;
}

.wcb-whatsapp-button.is-visible {
  opacity: 1;
  visibility: visible;
}

body.page-loading .wcb-whatsapp-button,
body.drawer-menu-open .wcb-whatsapp-button,
body.sticky-cart-visible .wcb-whatsapp-button,
body.sticky-atc-sheet-open .wcb-whatsapp-button,
body.drawer-cart-open .wcb-whatsapp-button,
body.drawer-wishlist-open .wcb-whatsapp-button,
body.settings-drawer-open .wcb-whatsapp-button,
body.ask-modal-open .wcb-whatsapp-button,
body.account-modal-open .wcb-whatsapp-button,
body.promo-banner-open .wcb-whatsapp-button,
body.shop-filters-open .wcb-whatsapp-button,
body.product-gallery-lightbox-open .wcb-whatsapp-button,
body:has(.search-drawer.is-active) .wcb-whatsapp-button,
body:has(.site-header.search-active) .wcb-whatsapp-button {
  display: none;
}

@media (max-width: 768px) {
  .wcb-whatsapp {
    bottom: var(--space-5);
    left: var(--space-4);
  }

  .wcb-whatsapp-button {
    width: var(--whatsapp-button-size-mobile);
    height: var(--whatsapp-button-size-mobile);
  }
}
