:root {
  --canvas: #ffffff;
  --canvas-strong: #fafafa;
  --surface: #ffffff;
  --surface-solid: #ffffff;
  --ink: #000000;
  --ink-soft: #111111;
  --ink-muted: #666666;
  --line: #e5e5e5;
  --line-strong: #000000;
  --accent: #000000;
  --accent-soft: rgba(0, 0, 0, 0.05);
  --shadow-soft: none;
  --shadow-strong: none;
  --radius-l: 0px;
  --radius-m: 0px;
  --radius-s: 0px;
  --radius-sm: 0px;
  --radius-full: 0px;
  --site-width: min(1440px, calc(100vw - 3rem));
  --site-width-wide: min(1680px, calc(100vw - 3rem));
  --header-offset: 80px;
  --display: "Manrope", sans-serif;
  --body: "Manrope", sans-serif;
  --font-heading: var(--display);
  --font-body: var(--body);

  /* Color System */
  --color-primary: var(--ink);
  --color-primary-soft: var(--ink-soft);
  --color-secondary: var(--accent);
  --color-white: #ffffff;
  
  /* Neutral scale */
  --color-neutral-50: #ffffff;
  --color-neutral-100: #faf9f6;
  --color-neutral-200: #e5e5e5;
  --color-neutral-300: #cccccc;
  --color-neutral-400: #999999;
  --color-neutral-500: #777777;
  --color-neutral-600: #555555;
  --color-neutral-700: #333333;
  --color-neutral-900: #000000;
  
  --color-surface: var(--surface-solid);
  --color-surface-on: var(--ink);
  --color-error: #a63f2f;

  /* Spacing Scale */
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  --space-4xl: 6rem;
  
  /* YSL Motion & Easing Tokens */
  --ease-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-slow: cubic-bezier(0.25, 1, 0.5, 1);
  --duration-ui: 0.6s;
  --duration-reveal: 1.2s;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html, body {
  overflow-x: clip;
}

html {
  /* scroll-behavior removed for Lenis */
}

body {
  margin: 0;
  min-height: 100%;
  background: #ffffff;
  color: var(--ink);
  font-family: var(--body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.menu-is-open {
  overflow: hidden;
}

body.ai-is-open {
  overflow: hidden;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.screen-reader-text:focus {
  background-color: var(--ink);
  color: var(--color-white);
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0,0,0,0.6);
  clip: auto !important;
  display: block;
  font-size: 14px;
  font-weight: 600;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

.site-shell {
  overflow: clip;
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 200;
  padding: 1.25rem 2rem;
  transition:
    background-color 240ms ease,
    border-color 240ms ease;
  border-bottom: 1px solid transparent;
}

.site-header.is-scrolled {
  background: #ffffff;
  border-bottom: 1px solid var(--line);
  box-shadow: none;
}

.site-header__inner,
.home-hero,
.section-heading--split,
.manifesto-strip,
.site-footer__inner,
.site-footer__meta,
.archive-toolbar,
.product-detail__layout,
.editorial-card__head,
.product-card__head,
.menu-panel__header,
.menu-panel__grid {
  display: grid;
  gap: 1.25rem;
}

.site-header__inner {
  width: var(--site-width-wide);
  margin: 0 auto;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 2rem;
}

.site-header__actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* Language Selector Dropdown */
.diva-lang-selector {
  position: relative;
  display: inline-block;
  margin-right: 0.5rem;
}
.diva-lang-selector__current {
  display: flex;
  align-items: center;
  gap: 4px;
  background: transparent;
  border: none;
  padding: 4px 8px;
  cursor: pointer;
  color: var(--ink);
  transition: opacity 0.3s ease;
}
.diva-lang-selector__current:hover {
  opacity: 0.7;
}
.diva-lang-selector__current img {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid rgba(0,0,0,0.1);
  display: block;
}
.diva-lang-selector__menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  background: var(--bg);
  list-style: none;
  margin: 0;
  padding: 8px 0;
  border-radius: 0;
  box-shadow: none;
  border: 1px solid var(--line);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 100;
  min-width: 120px;
}
.diva-lang-selector:hover .diva-lang-selector__menu,
.diva-lang-selector:focus-within .diva-lang-selector__menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.diva-lang-selector__menu li {
  margin: 0;
  padding: 0;
}
.diva-lang-selector__menu a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  color: var(--ink-muted);
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 500;
  font-family: var(--display);
  letter-spacing: 0.05em;
  transition: background 0.2s, color 0.2s;
}
.diva-lang-selector__menu a:hover {
  background: var(--surface);
  color: var(--ink);
}
.diva-lang-selector__menu a.is-active {
  font-weight: 700;
  color: var(--ink);
}
.diva-lang-selector__menu a.is-disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.diva-lang-selector__menu img {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid rgba(0,0,0,0.1);
}


.diva-icon-btn,
.diva-cart-trigger {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-surface-on);
  transition: transform 0.4s var(--ease-spring), color 0.3s ease;
  width: 44px;
  height: 44px;
  border-radius: 50%;
}

.diva-icon-btn:hover,
.diva-cart-trigger:hover {
  background: rgba(0, 0, 0, 0.04);
  transform: scale(1.05);
}

.diva-cart-badge {
  position: absolute;
  bottom: 4px;
  right: 0px;
  background: var(--color-surface-on);
  color: var(--color-surface);
  font-size: 0.65rem;
  font-weight: 700;
  height: 18px;
  min-width: 18px;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  line-height: 1;
  opacity: 0;
  transform: scale(0.5);
  transition: opacity 0.3s ease, transform 0.5s var(--ease-spring);
  pointer-events: none;
  border: 2px solid var(--color-surface);
}

.diva-cart-badge.is-visible {
  opacity: 1;
  transform: scale(1);
}


.site-branding__link {
  display: inline-flex;
  align-items: center;
}

.site-branding__mark,
.custom-logo-link img {
  width: auto;
  max-width: 180px;
  max-height: 48px;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.site-nav__link,
.menu-toggle,
.menu-panel__close,
.button,
.category-filter__link,
.site-footer__link,
.site-footer__tag,
.menu-panel__tag,
.section-heading__link {
  font-size: 0.72rem;
  letter-spacing: 0.28em;
  line-height: 1;
  text-transform: uppercase;
}

.site-nav__link,
.menu-toggle {
  color: var(--ink-soft);
}

.site-nav__link:hover,
.menu-toggle:hover,
.section-heading__link:hover,
.site-footer__link:hover,
.site-footer__tag:hover,
.category-filter__link:hover {
  color: var(--ink);
}

.site-nav__link,
.section-heading__link,
.site-footer__link {
  position: relative;
}
.site-nav__link::after,
.section-heading__link::after,
.site-footer__link::after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--duration-ui) var(--ease-expo);
}
.site-nav__link:hover::after,
.section-heading__link:hover::after,
.site-footer__link:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.site-nav__count {
  margin-left: 0.45rem;
  color: var(--accent);
}

.menu-toggle,
.menu-panel__close,
.ai-concierge__close {
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 0;
}

.menu-panel {
  position: fixed;
  inset: 0;
  z-index: 240;
  pointer-events: none;
}

.menu-panel__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 15, 12, 0.42);
  opacity: 0;
  transition: opacity 260ms ease;
}

.menu-panel__dialog {
  position: absolute;
  top: 0;
  right: 0;
  width: min(640px, 100vw);
  height: 100%;
  padding: clamp(2rem, 5vw, 3rem);
  background: rgba(250, 253, 250, 0.94);
  backdrop-filter: blur(24px);
  box-shadow: none;
  transform: translateX(100%);
  transition: transform 320ms cubic-bezier(0.16, 1, 0.3, 1);
}

.menu-panel.is-open {
  pointer-events: auto;
}

.menu-panel.is-open .menu-panel__backdrop {
  opacity: 1;
}

.menu-panel.is-open .menu-panel__dialog {
  transform: translateX(0);
}

.menu-panel__header {
  grid-template-columns: 1fr auto;
  align-items: end;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--line);
}

.menu-panel__grid {
  margin-top: 2rem;
}

.menu-panel__links,
.menu-panel__tags,
.site-footer__tags,
.home-hero__actions,
.home-hero__collections,
.category-filter,
.product-buybox__meta,
.product-buybox__meta-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.menu-panel__link {
  display: block;
  font-family: var(--display);
  font-size: clamp(2.1rem, 5vw, 4rem);
  line-height: 0.95;
  letter-spacing: -0.03em;
}

.site-main {
  position: relative;
  z-index: 1;
  width: var(--site-width-wide);
  margin: 0 auto;
  padding-top: var(--header-offset);
}

.home-hero,
.category-ribbon,
.editorial-section,
.manifesto-strip,
.archive-hero,
.shop-grid-section,
.product-detail {
  padding: clamp(4rem, 8vw, 8rem) 0;
}

.page-hero,
.page-content {
  padding: clamp(2rem, 4vw, 4rem) 0;
}

.home-hero {
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr);
  align-items: start;
  gap: clamp(2rem, 4vw, 3.25rem);
}

.home-hero__copy {
  max-width: 40rem;
  padding-top: clamp(1.25rem, 2vw, 2.25rem);
  display: grid;
  gap: 1.2rem;
}

.section-heading,
.hero-stage__caption,
.category-card__body,
.editorial-card__content,
.product-card__body,
.empty-state,
.ai-concierge__header,
.ai-concierge__form {
  display: grid;
  gap: 0.9rem;
}

.section-heading--center {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}

.hero-stage,
.arrival-card__link,
.editorial-card__link,
.category-card,
.product-card__link,
.page-content,
.empty-state,
.ai-concierge__panel {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-l);
  background: #ffffff;
  border: 1px solid var(--line);
  box-shadow: none;
}

.home-hero__title,
.section-heading__title,
.manifesto-strip__title,
.hero-stage__title,
.product-buybox__title,
.empty-state__title,
.ai-concierge__title {
  margin: 0;
  font-family: var(--display);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.home-hero__title {
  max-width: 11ch;
  font-size: clamp(2.9rem, 5.6vw, 5.35rem);
}

.section-heading__title,
.manifesto-strip__title,
.product-buybox__title,
.empty-state__title {
  font-size: clamp(1.85rem, 3.2vw, 3rem);
}

.product-buybox__title {
  max-width: 12ch;
  font-family: var(--body);
  font-size: clamp(1.5rem, 2.2vw, 2.2rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  text-wrap: pretty;
}

.section-heading__eyebrow,
.menu-panel__eyebrow,
.menu-panel__label,
.site-footer__eyebrow,
.site-footer__label,
.metric-card__label,
.arrival-card__eyebrow,
.hero-stage__eyebrow,
.product-card__eyebrow,
.product-buybox__eyebrow,
.meta-chip__label,
.empty-state__eyebrow,
.manifesto-strip__eyebrow,
.ai-concierge__eyebrow {
  margin: 0;
  color: var(--ink-muted);
  font-size: 0.72rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.section-heading__copy,
.home-hero__text,
.menu-panel__statement,
.site-footer__statement,
.hero-stage__summary,
.arrival-card__copy,
.product-buybox__excerpt,
.ai-concierge__message p {
  margin: 0;
  color: var(--ink-soft);
  font-size: clamp(1rem, 1.1vw, 1.05rem);
  line-height: 1.68;
}

.home-hero__text {
  max-width: 34rem;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.2rem;
  padding: 0.8rem 1.6rem;
  border-radius: 0;
  border: 1px solid var(--ink);
  font-size: 0.72rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  transition: background-color 220ms ease, color 220ms ease, border-color 220ms ease;
  cursor: pointer;
}

.button:hover {
  transform: none;
  box-shadow: none;
}

.button--primary,
.single_add_to_cart_button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  background: var(--ink);
  color: var(--color-white);
  border-color: var(--ink);
}

.button--primary:hover,
.single_add_to_cart_button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background: transparent;
  color: var(--ink);
  border-color: var(--ink);
}

.button--ghost,
.button--secondary,
.menu-panel__tag,
.site-footer__tag,
.category-filter__link {
  border-color: var(--line-strong);
  background: transparent;
  color: var(--ink);
}

.button--ghost:hover,
.button--secondary:hover,
.menu-panel__tag:hover,
.site-footer__tag:hover,
.category-filter__link:hover {
  background: var(--ink);
  color: var(--color-white);
  border-color: var(--ink);
}

.menu-panel__tag,
.site-footer__tag,
.category-filter__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: 0.7rem 1.2rem;
  border-radius: 0;
}

.home-hero__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.4rem;
  padding: 0.6rem 1.2rem;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition: all 0.2s ease;
}

.home-hero__tag:hover {
  background: var(--ink);
  color: var(--color-white);
  border-color: var(--ink);
}

.metric-card,
.meta-chip {
  min-width: 11rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}

.metric-card__value,
.meta-chip__value {
  display: block;
  margin-top: 0.45rem;
  color: var(--ink);
  font-size: 1.35rem;
  line-height: 1.1;
  font-weight: 700;
}

.meta-chip--wide {
  flex: 1 1 100%;
}

.hero-stage,
.category-card,
.product-card__link,
.arrival-card__link,
.editorial-card__link {
  display: block;
  padding: 1rem;
}

.hero-stage__frame,
.category-card__visual,
.product-card__media,
.arrival-card__media,
.editorial-card__media {
  overflow: hidden;
  border-radius: calc(var(--radius-l) - 10px);
  background: rgba(0, 0, 0, 0.08);
}

.hero-stage__frame {
  position: relative;
  aspect-ratio: 0.82;
}

.hero-stage__frame--empty,
.category-card__fallback {
  width: 100%;
  height: 100%;
  min-height: 15rem;
  background:
    radial-gradient(circle at top left, rgba(255, 255, 255, 0.56), transparent 35%),
    linear-gradient(135deg, rgba(123, 171, 155, 0.42), rgba(90, 121, 146, 0.14));
}

.hero-stage__wash {
  position: absolute;
  inset: auto 0 0;
  height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(18, 34, 36, 0.38) 100%);
}

.hero-stage__title {
  font-family: var(--body);
  font-size: clamp(1.3rem, 1.9vw, 1.7rem);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0;
  text-wrap: balance;
}

.hero-stage__price,
.arrival-card__price,
.product-card__price,
.product-buybox__price {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.55rem;
  align-items: baseline;
  color: var(--ink);
  font-family: var(--body);
  font-size: 1rem;
  font-style: normal;
  font-weight: 600;
  line-height: 1.4;
}

.hero-stage__price del,
.arrival-card__price del,
.product-card__price del,
.product-buybox__price del {
  color: var(--ink-muted);
  font-size: 0.88rem;
  font-weight: 500;
  text-decoration-thickness: 1px;
}

.hero-stage__price ins,
.arrival-card__price ins,
.product-card__price ins,
.product-buybox__price ins {
  color: var(--accent);
  text-decoration: none;
}

.hero-stage__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
}

.hero-stage__cta,
.product-card__cta {
  color: var(--ink-muted);
  font-size: 0.74rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.category-directory {
  padding: clamp(4rem, 8vw, 8rem) 0;
}

.category-directory__split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 2rem;
  min-height: 70vh;
}

.category-directory__list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}

.category-directory__link {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  font-family: var(--body);
  font-size: clamp(1.8rem, 3.5vw, 3.5rem);
  text-transform: uppercase;
  color: transparent;
  -webkit-text-stroke: 1px var(--ink-soft);
  text-decoration: none;
  transition: all 0.5s cubic-bezier(0.2, 0, 0.1, 1);
  line-height: 1;
  letter-spacing: 0.03em;
  font-weight: 500;
}

.category-directory__index {
  font-family: var(--body);
  font-size: 0.9rem;
  font-style: normal;
  color: var(--ink-soft);
  -webkit-text-stroke: 0;
  font-weight: 600;
  opacity: 0;
  transform: translateX(-10px);
  transition: all 0.4s ease;
}

.category-directory__arrow {
  font-family: var(--body);
  font-size: 2rem;
  font-style: normal;
  color: var(--ink);
  -webkit-text-stroke: 0;
  opacity: 0;
  transform: translateX(-20px);
  transition: all 0.4s ease;
  line-height: 0;
  margin-top: -3px;
}

.category-directory__link:hover,
.category-directory__list:not(:hover) .category-directory__link.is-active {
  color: var(--ink);
  -webkit-text-stroke: 0;
  transform: translateX(15px);
}

.category-directory__link:hover .category-directory__index,
.category-directory__link:hover .category-directory__arrow,
.category-directory__list:not(:hover) .category-directory__link.is-active .category-directory__index,
.category-directory__list:not(:hover) .category-directory__link.is-active .category-directory__arrow {
  opacity: 1;
  transform: translateX(0);
}

.category-directory__visuals {
  position: relative;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  aspect-ratio: 3 / 4;
  overflow: hidden;
}

.category-directory__visual {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  visibility: hidden;
  clip-path: inset(100% 0 0 0);
  transition: clip-path 0.8s cubic-bezier(0.77, 0, 0.175, 1), visibility 0.8s;
  z-index: 1;
}

.category-directory__visual.is-active {
  visibility: visible;
  clip-path: inset(0 0 0 0);
  z-index: 2;
}

.category-directory__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.1);
  transition: transform 1.2s cubic-bezier(0.2, 0, 0.1, 1);
}

.category-directory__visual.is-active img {
  transform: scale(1);
}

@media (max-width: 900px) {
  .category-directory__split {
    grid-template-columns: 1fr;
  }
  
  .category-directory__visuals {
    display: none;
  }
  
  .category-directory__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  
  .category-directory__link,
  .category-directory__link:nth-child(n) {
    font-size: 1.2rem;
    opacity: 1;
    transform: none !important;
    text-align: center;
    background: var(--nude-light);
    padding: 3rem 1rem;
    border: 1px solid rgba(0,0,0,0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 0;
    color: var(--ink);
    -webkit-text-stroke: 0;
    font-style: normal;
  }
  
  .category-directory__index,
  .category-directory__arrow {
    display: none;
  }
}

.category-card__title,
.arrival-card__title,
.product-card__title {
  margin: 0;
  font-family: var(--body);
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.category-card__title {
  font-size: 0.9rem;
}

.arrival-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-top: 3rem;
}

.arrival-grid > :nth-child(1) {
  grid-column: span 2;
  grid-row: span 2;
}

.arrival-grid > :nth-child(1) .arrival-card__title {
  font-size: clamp(1.8rem, 3vw, 2.6rem);
}

@media (max-width: 1024px) {
  .arrival-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .arrival-grid > :nth-child(1) {
    grid-column: span 2;
  }
}

@media (max-width: 640px) {
  .arrival-grid {
    grid-template-columns: 1fr;
  }
  .arrival-grid > * {
    grid-column: span 1 !important;
  }
}

/* CSS Native Smooth Hover Effects */
.arrival-card__media, .category-card__visual, .product-card__media {
  overflow: hidden;
}

.arrival-card__media img, .category-card__visual img, .product-card__image {
  transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}

.arrival-card:hover .arrival-card__media img, 
.category-card:hover .category-card__visual img, 
.product-card:hover .product-card__image {
  transform: scale(1.05);
}

.arrival-card__link {
  height: 100%;
}

.product-card__link {
  height: 100%;
}

.arrival-card__media {
  aspect-ratio: 0.84;
}

.arrival-card__content,
.product-card__body {
  padding-top: 1rem;
  display: grid;
  gap: 0.55rem;
}

.arrival-card__title,
.product-card__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.arrival-card__copy {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.manifesto-strip {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  margin-bottom: clamp(5rem, 8vw, 8rem);
  padding: clamp(1.5rem, 4vw, 2.25rem);
  border-radius: var(--radius-l);
  border: 1px solid rgba(0, 0, 0, 0.08);
  background:
    radial-gradient(circle at top left, rgba(148, 200, 180, 0.2), transparent 34%),
    rgba(255, 255, 255, 0.82);
  box-shadow: none;
}

.site-footer {
  width: var(--site-width-wide);
  margin: 0 auto;
  padding: 0 0 2.5rem;
}

.site-footer__inner {
  grid-template-columns: minmax(0, 1.3fr) auto auto;
  padding: 2rem clamp(1.2rem, 3vw, 2rem);
  border-radius: var(--radius-l);
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: none;
}

.site-footer__meta {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 1rem 0 0;
  color: var(--ink-muted);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.archive-toolbar {
  justify-items: end;
}

.category-filter__link.is-active {
  background: var(--ink);
  color: #fff8f1;
  border-color: var(--ink);
}

.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1rem, 2vw, 2.5rem);
  padding: 0;
  margin: 0;
  list-style: none;
}

@media (max-width: 1100px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .woocommerce ul.products {
    grid-template-columns: 1fr;
  }
}

/* Asymmetric Editorial Pattern */
@media (min-width: 1101px) {
  .woocommerce ul.products .product-card:nth-child(8n+1),
  .woocommerce ul.products .product-card:nth-child(8n+6) {
    grid-column: span 2;
    grid-row: span 2;
  }
  
  .woocommerce ul.products .product-card:nth-child(8n+1) .product-card__title,
  .woocommerce ul.products .product-card:nth-child(8n+6) .product-card__title {
    font-size: clamp(1.8rem, 2.5vw, 2.4rem);
  }
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  content: none;
}

.product-card {
  display: flex;
  flex-direction: column;
}

.product-card__media {
  position: relative;
  aspect-ratio: 0.82;
  overflow: hidden;
  background: var(--nude-light);
}

.product-card__price {
  font-family: var(--body);
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--ink-muted);
  margin-top: 0.15rem;
}


.hero-stage__image,
.category-card__visual img,
.arrival-card__media img,
.editorial-card__media img,
.product-gallery-stack__image,
.product-card__image,
.product-card__image-hover {
  transition: transform var(--duration-ui) var(--ease-expo), opacity var(--duration-ui) var(--ease-expo);
}

.page-content img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 900ms cubic-bezier(0.16, 1, 0.3, 1), opacity 0.5s ease;
}

.product-card__image-hover {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  z-index: 1;
}

.product-card__link:hover .product-card__image-hover {
  opacity: 1;
}

.has-js .product-card__image,
.has-js .category-card__visual img,
.has-js .arrival-card__media img {
  transform: scale(0.85);
  opacity: 0;
  transition: transform var(--duration-reveal) var(--ease-expo), opacity 0.8s ease;
  will-change: transform, opacity;
}

.has-js .product-card.is-in-view .product-card__image,
.has-js .category-card.is-in-view .category-card__visual img,
.has-js .arrival-card.is-in-view .arrival-card__media img {
  transform: scale(1);
  opacity: 1;
}

.hero-stage:hover .hero-stage__image,
.category-card:hover .category-card__visual img,
.arrival-card__link:hover .arrival-card__media img,
.editorial-card__link:hover .editorial-card__media img,
.product-card__link:hover .product-card__image,
.product-card__link:hover .product-card__image-hover {
  transform: scale(1.03);
}

.archive-pagination,
.archive-pagination .page-numbers,
.woocommerce-pagination ul.page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
  border: 0;
}

.archive-pagination .page-numbers a,
.archive-pagination .page-numbers span,
.woocommerce-pagination a,
.woocommerce-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.8rem;
  min-height: 2.8rem;
  padding: 0 0.9rem;
  border-radius: 0;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.46);
}

.product-detail {
  display: grid;
  gap: 1rem;
  padding-top: 0.7rem;
  padding-bottom: clamp(5rem, 8vw, 8rem);
}

.product-detail__layout {
  display: grid;
  gap: clamp(1.5rem, 4vw, 4rem);
  grid-template-columns: minmax(0, 62%) minmax(320px, 1fr);
  align-items: start;
}

@media (max-width: 900px) {
  .product-detail__layout {
    grid-template-columns: 1fr;
  }
}

.woocommerce-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 1.5rem 0;
  color: var(--ink-muted);
  font-size: 0.76rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.product-gallery-stack {
  display: flex;
  flex-direction: column;
  gap: clamp(0.5rem, 1vw, 1rem);
  width: 100%;
}

.product-gallery-stack__badges {
  position: absolute;
  top: var(--space-md);
  left: var(--space-md);
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.diva-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.3em 0.8em;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-radius: var(--radius-full);
  line-height: 1;
}

.diva-badge--sale {
  background: var(--color-error);
  color: var(--color-white);
  box-shadow: none;
}

.product-gallery-stack__frame {
  width: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: transparent;
}

.product-gallery-stack__frame--placeholder {
  min-height: 60vh;
}

.product-gallery-stack__image {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.product-buybox {
  position: sticky;
  top: calc(var(--header-offset) + 3rem);
}

.product-buybox__panel {
  padding: 0;

}

.product-buybox__excerpt {
  max-width: 30rem;
  font-size: 0.98rem;
  line-height: 1.58;
}

.product-buybox__main {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}

.product-buybox__main.has-drawer {
  grid-template-columns: 1fr;
  align-items: start;
}

.product-buybox__commerce {
  display: grid;
  gap: 0.95rem;
  min-width: 0;
}

.product-buybox__drawer {
  min-width: 0;
}

.product-buybox__drawer .product-accordion {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 100%;
}

.product-buybox__purchase {
  display: grid;
  gap: 0.8rem;
  margin: 1rem 0 0.95rem;
  padding: 0.9rem 0 1rem;
  border-top: 1px solid rgba(30, 24, 21, 0.08);
  border-bottom: 1px solid rgba(30, 24, 21, 0.08);
}

.product-buybox__purchase--supporting {
  margin-bottom: 0.7rem;
}

.product-buybox__purchase-group {
  display: grid;
  gap: 0.45rem;
}

.product-buybox__purchase-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.product-buybox__purchase-label {
  display: block;
  color: var(--ink-muted);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.product-buybox__purchase-hint {
  color: rgba(110, 126, 121, 0.92);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.product-buybox__purchase-values {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.product-buybox__purchase-option {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: 0.5rem 0.82rem;
  border: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.1;
  cursor: pointer;
  transition: all 200ms ease;
}

.product-buybox__purchase-option::after {
  display: none;
}

.product-buybox__purchase-option:hover {
  border-color: var(--ink);
}

.product-buybox__purchase-option.is-selected {
  border-color: var(--ink);
  background: var(--ink);
  color: #ffffff;
}

/* Color swatches */
.product-buybox__purchase-option--color {
  width: 2.4rem !important;
  height: 2.4rem !important;
  min-height: 2.4rem !important;
  padding: 0 !important;
  border-radius: 0 !important;
  border: 1px solid var(--line) !important;
  box-shadow: none;
  transition: all 200ms ease;
}

.product-buybox__purchase-option--color::after {
  display: none;
}

.product-buybox__purchase-option--color:hover {
  transform: none;
  border-color: var(--ink) !important;
}

.product-buybox__purchase-option--color.is-selected {
  outline: 1px solid var(--ink);
  outline-offset: 2px;
  border-color: var(--line) !important;
  background: inherit;
  color: inherit;
  transform: none;
  box-shadow: none;
}

.product-buybox__purchase-group.has-error .product-buybox__purchase-option:not(.is-selected) {
  border-color: rgba(185, 74, 58, 0.5);
}

.product-buybox__purchase-error {
  margin: 0;
  color: #a63f2f;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.45;
}

.product-buybox__form form.cart,
.product-buybox__form .variations_form {
  display: grid;
  gap: 0.8rem;
}

.product-buybox__form .variations {
  display: none !important;
  width: 100%;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
}

.product-buybox__form .variations_form--auto-picked .variations {
  display: none;
}

.product-buybox__form .variations tbody {
  display: grid;
  gap: 0.75rem;
}

.product-buybox__form .variations tr {
  display: grid;
  gap: 0.45rem;
}

.product-buybox__form .variations th,
.product-buybox__form .variations td {
  display: block;
  padding: 0;
  border: 0;
  text-align: left;
}

.product-buybox__form .variations .label label {
  display: block;
  color: var(--ink);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.product-buybox__form .reset_variations {
  display: none !important;
}

.product-buybox__form .single_variation {
  color: var(--ink-soft);
}

.product-buybox__form .single_variation p {
  margin: 0;
}

/* Hide variation price and description — we show our own */
.product-buybox__form .single_variation .woocommerce-variation-price,
.product-buybox__form .woocommerce-variation-description,
.product-buybox__form .variations_form--auto-picked .woocommerce-variation-description {
  display: none !important;
}

.product-buybox__form .woocommerce-variation-availability {
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-muted);
  line-height: 1.5;
}

.product-buybox__form .quantity {
  display: none !important;
}

.product-buybox__form input.qty,
.woocommerce-ordering select,
.variations select,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
textarea,
select {
  width: 100%;
  min-height: 3rem;
  padding: 0.8rem 0.95rem;
  border: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
}

.product-buybox__form .variations_button,
.product-buybox__form form.cart:not(.variations_form) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
}

.product-buybox__form .quantity {
  display: none !important; /* Hide quantity for luxury items */
}

.product-buybox__form .single_add_to_cart_button {
  min-height: 3.5rem;
  padding: 1rem 1.22rem;
  font-size: 0.8rem;
  letter-spacing: 0.15em;
  width: 100%;
  background: var(--ink);
  color: #fff;
  border: none;
  border-radius: 0;
  text-transform: uppercase;
  font-weight: 500;
  cursor: pointer;
  transition: opacity 0.3s ease;
}

.product-buybox__form .single_add_to_cart_button:hover {
  opacity: 0.8;
}

.product-buybox__trust {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  margin-top: 2rem;
  padding: 0;
  background: transparent;
  border: none;
}

.trust-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.trust-badge__icon {
  font-size: 0.95rem;
}

.trust-badge__text {
  color: var(--ink-soft);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.product-buybox__urgency {
  margin: 0.45rem 0 0;
  color: #a63f2f;
  font-size: 0.85rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.product-buybox__meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1rem;
  margin-top: 0.95rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(30, 24, 21, 0.08);
}

.product-buybox__meta-inline {
  display: inline-flex;
  align-items: baseline;
  gap: 0.45rem;
  min-width: 0;
}

.product-buybox__meta-inline-label {
  color: var(--ink-muted);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.product-buybox__meta-inline-value {
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.2;
}

.product-accordions {
  display: grid;
  gap: 0.8rem;
  margin-top: 1.1rem;
}

.product-accordion {
  border-top: 1px solid var(--line);
  background: transparent;
}

.product-accordion:last-child {
  border-bottom: 1px solid var(--line);
}

.product-accordion__toggle {
  width: 100%;
  padding: 1.2rem 0;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  font-size: 0.82rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink);
}

.product-accordion__heading-group {
  display: grid;
  gap: 0.24rem;
  justify-items: start;
  text-align: left;
}

.product-accordion__eyebrow {
  color: var(--ink-muted);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.product-accordion__heading {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
  text-transform: none;
}

.product-accordion__icon {
  position: relative;
  width: 0.8rem;
  height: 0.8rem;
}

.product-accordion__icon::before,
.product-accordion__icon::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 0.8rem;
  height: 1px;
  background: currentColor;
  transform: translate(-50%, -50%);
}

.product-accordion__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.product-accordion.is-open .product-accordion__icon::after {
  opacity: 0;
}

.product-accordion__content {
  padding: 0 0 1.5rem 0;
  color: var(--ink-soft);
  line-height: 1.8;
}

.product-accordion__content > :first-child {
  margin-top: 0;
}

.product-accordion__content > :last-child {
  margin-bottom: 0;
}

.product-accordion--drawer {
  background: transparent;
}

.product-accordion--drawer .product-accordion__toggle {
  padding: 1.2rem 0;
}

.product-accordion__content--drawer {
  max-height: clamp(13rem, 34vh, 21rem);
  overflow: auto;
  padding-right: 0.55rem;
}

.product-accordion__content--drawer::-webkit-scrollbar {
  width: 0.42rem;
}

.product-accordion__content--drawer::-webkit-scrollbar-thumb {
  border-radius: 0;
  background: rgba(0, 0, 0, 0.24);
}

.theme-product .site-main {
  padding-top: calc(var(--header-offset) - 0.8rem);
}

.theme-product .product-detail__intro {
  margin-bottom: -0.1rem;
}

.theme-product .product-buybox__title {
  max-width: 10.5ch;
  font-size: clamp(1.45rem, 2vw, 2.1rem);
  line-height: 0.96;
}

.theme-product .product-buybox__meta {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem 0.7rem;
}

.theme-product .product-buybox__price {
  font-size: 0.96rem;
}

.theme-product .product-buybox__price del {
  font-size: 0.8rem;
}

.theme-product .stock.in-stock {
  display: none !important;
}

.theme-product .product-buybox__purchase {
  margin-top: 0.9rem;
  margin-bottom: 0.78rem;
  padding-top: 0.8rem;
}

.theme-product .product-buybox__main {
  margin-top: 0.95rem;
}

.theme-product .product-buybox__main.has-drawer {
  grid-template-columns: 1fr;
  gap: 0.95rem;
}

.theme-product .product-buybox__drawer .product-accordion__heading {
  font-size: 0.96rem;
}

.theme-product .product-buybox__purchase-values {
  gap: 0.42rem;
}

.theme-product .product-buybox__purchase-option {
  min-height: 2.35rem;
  padding-inline: 0.82rem;
  font-size: 0.86rem;
}

.theme-product .product-buybox__meta-row {
  gap: 0.5rem 0.95rem;
}

.theme-product .product-buybox__meta-inline-label {
  font-size: 0.62rem;
}

.theme-product .product-buybox__meta-inline-value {
  font-size: 0.88rem;
}

.product-accordion__content h2 {
  margin-top: 0;
  font-family: var(--display);
  font-size: 1.5rem;
  line-height: 1;
  letter-spacing: -0.03em;
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
  margin: 0 0 1.2rem;
  padding: 1rem 1.25rem;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.5);
  color: var(--ink);
}

.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before {
  display: none;
}

.woocommerce table.shop_table,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout #customer_details {
  border-radius: 0;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.52);
  box-shadow: none;
  overflow: hidden;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  padding: 1rem;
  border-color: var(--line);
}

.single_add_to_cart_button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  background: transparent;
  color: var(--ink);
}

.page-content--posts {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding-inline: 0;
}

.page-content > *:first-child {
  margin-top: 0;
}

.page-content > *:last-child {
  margin-bottom: 0;
}

.page-content p,
.page-content li,
.page-content address {
  color: var(--ink-soft);
  line-height: 1.85;
}

.ai-concierge {
  position: fixed;
  right: clamp(1rem, 2vw, 1.4rem);
  bottom: max(1rem, env(safe-area-inset-bottom));
  z-index: 220;
  display: grid;
  justify-items: end;
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  pointer-events: none;
  transition:
    opacity 220ms ease,
    transform 220ms ease;
}

.ai-concierge::before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(242, 247, 243, 0.78);
  backdrop-filter: blur(6px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 220ms ease;
}

.ai-concierge.is-ready,
.ai-concierge.is-open {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
}

.ai-concierge.is-open::before {
  opacity: 1;
}

.ai-concierge__toggle {
  min-height: 3.15rem;
  padding: 0.85rem 1.05rem;
  border: 1px solid rgba(30, 24, 21, 0.18);
  border-radius: 0;
  background: rgba(30, 24, 21, 0.88);
  box-shadow: none;
  color: #fff8f1;
  cursor: pointer;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  line-height: 1;
  text-transform: uppercase;
  backdrop-filter: blur(14px);
  transition:
    transform 220ms ease,
    background-color 220ms ease,
    box-shadow 220ms ease;
}

.ai-concierge__toggle:hover {
  transform: translateY(-2px);
  background: rgba(30, 24, 21, 0.96);
}

.ai-concierge__panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.8rem);
  width: min(880px, calc(100vw - 2rem));
  padding: 1rem;
  border: 1px solid rgba(30, 24, 21, 0.1);
  background: #f8fcf9;
  box-shadow: none;
  opacity: 0;
  transform: translateY(14px) scale(0.98);
  pointer-events: none;
  transition:
    opacity 220ms ease,
    transform 220ms ease;
}

.ai-concierge.is-open .ai-concierge__panel {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.ai-concierge__header {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.9rem;
}

.ai-concierge__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: 1rem;
  align-items: start;
}

.ai-concierge__conversation {
  display: grid;
  gap: 0.9rem;
}

.ai-concierge__eyebrow,
.ai-concierge__toggle,
.ai-concierge__close {
  font-family: var(--body);
}

.ai-concierge__title {
  font-family: var(--body);
  font-size: clamp(1.1rem, 1.4vw, 1.35rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.28;
}

.ai-concierge__close {
  min-height: 2.55rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.34);
  color: var(--ink-soft);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  line-height: 1;
  text-transform: uppercase;
}

.ai-concierge__close:hover {
  color: var(--ink);
  border-color: var(--line-strong);
}

.ai-concierge__messages {
  display: grid;
  gap: 0.75rem;
  max-height: 320px;
  padding: 0.5rem 0;
  overflow: auto;
}

.ai-concierge__message {
  padding: 0.85rem 0.95rem;
  border-radius: 0;
  background: #ffffff;
  border: 1px solid rgba(24, 32, 34, 0.06);
}

.ai-concierge__message--assistant {
  background: #ebf4ef;
}

.ai-concierge__message--user {
  background: #f3f7fb;
}

.ai-concierge__message p {
  font-family: var(--body);
  font-size: 0.98rem;
  line-height: 1.62;
}

.ai-concierge__quick-replies {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 0.5rem;
}

.ai-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 0.8rem;
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid var(--line);
  border-radius: 0;
  color: var(--ink-soft);
  font-size: 0.8rem;
  font-family: var(--body);
  cursor: pointer;
  transition: all 180ms ease;
}

.ai-chip:hover {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}

.ai-concierge__form textarea {
  font-family: var(--body);
  min-height: 7.25rem;
  border: 1px solid rgba(30, 24, 21, 0.12);
  background: #fffdf9;
  resize: vertical;
}

.ai-concierge__recommendations {
  display: grid;
  gap: 0.85rem;
  padding-top: 0.15rem;
}

.ai-concierge__products-head {
  display: grid;
  gap: 0.45rem;
}

.ai-concierge__products-title {
  margin: 0;
  font-family: var(--body);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.02em;
}

.ai-concierge__products-grid {
  display: grid;
  gap: 0.75rem;
  max-height: 460px;
  overflow: auto;
  padding-right: 0.2rem;
}

.ai-product-card {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 0.8rem;
  padding: 0.7rem;
  border: 1px solid rgba(24, 32, 34, 0.08);
  border-radius: 0;
  background: rgba(255, 255, 255, 0.92);
  transition:
    transform 220ms ease,
    border-color 220ms ease,
    box-shadow 220ms ease;
}

.ai-product-card:hover {
  transform: translateY(-2px);
  border-color: rgba(0, 0, 0, 0.22);
  box-shadow: none;
}

.ai-product-card__media {
  overflow: hidden;
  border-radius: 0;
  aspect-ratio: 0.82;
  background: rgba(0, 0, 0, 0.08);
}

.ai-product-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.ai-product-card__body {
  display: grid;
  gap: 0.35rem;
  align-content: start;
  min-width: 0;
}

.ai-product-card__eyebrow,
.ai-product-card__price,
.ai-product-card__summary,
.ai-product-card__cta {
  margin: 0;
  font-family: var(--body);
}

.ai-product-card__eyebrow {
  color: var(--ink-muted);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.ai-product-card__title {
  margin: 0;
  font-family: var(--body);
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

.ai-product-card__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
  color: var(--accent);
  font-size: 0.95rem;
  font-weight: 700;
}

.ai-product-card__price-compare {
  color: var(--ink-muted);
  font-size: 0.78rem;
  font-weight: 500;
  text-decoration: line-through;
}

.ai-product-card__price-current {
  color: var(--accent);
  font-size: 0.95rem;
  font-weight: 700;
}

.ai-product-card__summary {
  color: var(--ink-soft);
  font-size: 0.8rem;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.ai-product-card__cta {
  color: var(--ink);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.has-js [data-reveal] {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
}

.has-js [data-reveal].is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition:
    opacity 760ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 760ms cubic-bezier(0.16, 1, 0.3, 1);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  [data-reveal] {
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 1180px) {
  :root {
    --site-width: min(100vw - 2rem, 100%);
    --site-width-wide: min(100vw - 2rem, 100%);
  }

  .site-nav {
    display: none;
  }

  .home-hero,
  .section-heading--split,
  .manifesto-strip,
  .site-footer__inner,
  .product-detail__layout {
    grid-template-columns: 1fr;
  }

  .archive-toolbar {
    justify-items: start;
  }

  .category-ribbon__track,
  .woocommerce ul.products,
  .arrival-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .product-buybox {
    position: static;
  }

  .product-buybox__main.has-drawer {
    grid-template-columns: 1fr;
  }

  .product-accordion__content--drawer {
    max-height: none;
    overflow: visible;
    padding-right: 0;
  }

  .theme-product .product-buybox__purchase-values {
    gap: 0.4rem;
  }
}

@media (max-width: 767px) {
  :root {
    --header-offset: 92px;
  }

  .site-header {
    padding: 0.9rem 1rem;
  }

  .site-header__inner {
    grid-template-columns: 1fr auto;
  }

  .site-branding__mark,
  .custom-logo-link img {
    max-width: 148px;
    max-height: 42px;
  }

  .home-hero__title {
    font-size: clamp(2.4rem, 12vw, 3.75rem);
  }

  .section-heading__title,
  .manifesto-strip__title,
  .empty-state__title,
  .ai-concierge__title {
    font-size: clamp(2.1rem, 11vw, 3rem);
  }

  .theme-product .product-buybox__title {
    font-size: clamp(1.55rem, 8vw, 2rem);
  }

  .category-ribbon__track,
  .woocommerce ul.products,
  .arrival-grid {
    grid-template-columns: 1fr;
  }

  .hero-stage__frame,
  .arrival-card__media,
  .editorial-card__media,
  .product-card__media {
    aspect-ratio: 0.86;
  }

  .product-gallery {
    grid-template-columns: 1fr;
  }

  .product-gallery__thumbs {
    order: 2;
    grid-auto-flow: column;
    grid-auto-columns: minmax(5.3rem, 6.3rem);
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 0.2rem;
  }

  .product-gallery__stage,
  .product-gallery__stage--placeholder {
    min-height: clamp(22rem, 58vh, 32rem);
  }

  .product-gallery__stage-image {
    max-height: min(52vh, 28rem);
  }

  .theme-product .site-main {
    padding-top: calc(var(--header-offset) - 0.25rem);
  }

  .theme-product .product-detail {
    padding-top: 0.35rem;
  }

  .theme-product .product-buybox__purchase-option {
    min-height: 2.2rem;
    padding-inline: 0.78rem;
    font-size: 0.82rem;
  }

  .theme-product .product-buybox__meta-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
  }

  .product-buybox__main,
  .theme-product .product-buybox__main.has-drawer {
    gap: 0.8rem;
  }

  .site-footer__meta {
    grid-template-columns: 1fr;
  }

  .ai-concierge {
    right: 1rem;
    left: 1rem;
    justify-items: stretch;
  }

  .ai-concierge__panel {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    width: auto;
    max-height: calc(100vh - 6rem);
    overflow: auto;
  }

  .ai-concierge__layout {
    grid-template-columns: 1fr;
  }

  .ai-concierge__toggle {
    justify-self: end;
  }
}

@media (max-width: 480px) {
  .ai-concierge {
    bottom: 5.5rem; /* Raised to prevent overlapping mobile product CTAs / bottom bar */
  }
  .ai-concierge__toggle {
    min-height: 2.8rem;
    padding: 0.7rem 0.9rem;
    font-size: 0.65rem;
    letter-spacing: 0.12em;
  }
}

/* ─── PREMIUM DIVA MINI-CART DRAWER ─────────────────────────────────────────── */

.diva-cart {
  position: fixed;
  inset: 0;
  z-index: 9000;
  pointer-events: none;
}

.diva-cart.is-open {
  pointer-events: auto;
}

/* Frosted backdrop */
.diva-cart__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 16, 14, 0.45);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity 400ms cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
}

.diva-cart.is-open .diva-cart__backdrop {
  opacity: 1;
}

/* Drawer panel */
.diva-cart__drawer {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(420px, 100vw);
  display: flex;
  flex-direction: column;
  background: #faf9f7;
  transform: translateX(100%);
  transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
  overflow: hidden;
}

.diva-cart.is-open .diva-cart__drawer {
  transform: translateX(0);
}

/* Header */
.diva-cart__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.6rem 1.4rem 1.2rem;
  border-bottom: 1px solid rgba(30, 24, 21, 0.08);
  flex-shrink: 0;
}

.diva-cart__header-inner {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.diva-cart__eyebrow {
  color: rgba(60, 50, 44, 0.5);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.diva-cart__title {
  margin: 0;
  font-family: var(--body);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--ink);
}

.diva-cart__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border: 1px solid rgba(30, 24, 21, 0.12);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  transition: background 180ms ease, border-color 180ms ease;
}

.diva-cart__close:hover {
  background: rgba(30, 24, 21, 0.06);
  border-color: rgba(30, 24, 21, 0.28);
}

/* Free shipping progress bar */
.diva-cart__free-shipping {
  padding: 0.9rem 1.4rem;
  background: rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  flex-shrink: 0;
}

.diva-cart__shipping-text {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--ink-muted);
  margin-bottom: 0.55rem;
  text-transform: uppercase;
}

.diva-cart__shipping-track {
  height: 3px;
  background: rgba(30, 24, 21, 0.1);
  border-radius: 0;
  overflow: hidden;
}

.diva-cart__shipping-fill {
  height: 100%;
  background: var(--ink);
  border-radius: 0;
  transition: width 600ms cubic-bezier(0.16, 1, 0.3, 1);
}

/* Scrollable body */
.diva-cart__body {
  flex: 1;
  overflow-y: auto;
  padding: 0.8rem 1.4rem;
  overscroll-behavior: contain;
}

.diva-cart__body::-webkit-scrollbar {
  width: 3px;
}

.diva-cart__body::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.24);
  border-radius: 0;
}

/* Cart items list */
.diva-cart__items {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.diva-cart__item {
  display: grid;
  grid-template-columns: 72px 1fr auto;
  gap: 0.85rem;
  align-items: start;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(30, 24, 21, 0.06);
}

.diva-cart__item-thumb {
  border-radius: 0;
  overflow: hidden;
  aspect-ratio: 0.82;
  background: rgba(0, 0, 0, 0.06);
}

.diva-cart__item-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.diva-cart__item-info {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}

.diva-cart__item-name {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.diva-cart__item-meta {
  margin: 0;
  font-size: 0.72rem;
  color: var(--ink-muted);
  letter-spacing: 0.03em;
}

.diva-cart__item-row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: 0.2rem;
}

.diva-cart__item-qty {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.diva-cart__item-price {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--ink);
}

.diva-cart__remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.8rem;
  height: 1.8rem;
  border: 0;
  background: transparent;
  color: rgba(30, 24, 21, 0.35);
  cursor: pointer;
  border-radius: 50%;
  transition: color 180ms ease, background 180ms ease;
  margin-top: 0.1rem;
  flex-shrink: 0;
}

.diva-cart__remove:hover {
  color: var(--ink);
  background: rgba(30, 24, 21, 0.06);
}

/* Empty / loading states */
.diva-cart__empty {
  padding: 2rem 0;
  text-align: center;
  color: var(--ink-muted);
  font-size: 0.9rem;
}

.diva-cart__loading {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem 0;
}

.diva-cart__spinner {
  width: 1.4rem;
  height: 1.4rem;
  border: 2px solid rgba(30, 24, 21, 0.12);
  border-top-color: var(--ink);
  border-radius: 50%;
  animation: diva-spin 700ms linear infinite;
}

@keyframes diva-spin {
  to { transform: rotate(360deg); }
}

/* Sticky footer */
.diva-cart__footer {
  flex-shrink: 0;
  padding: 1.2rem 1.4rem 1.6rem;
  border-top: 1px solid rgba(30, 24, 21, 0.08);
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  background: #faf9f7;
}

.diva-cart__subtotal {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.diva-cart__subtotal-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.diva-cart__subtotal-value {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.diva-cart__checkout-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 1.05rem 1.2rem;
  background: var(--ink);
  color: #fffaf2;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: opacity 200ms ease;
}

.diva-cart__checkout-btn:hover {
  opacity: 0.88;
  color: #fffaf2;
}

.diva-cart__view-cart {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem;
  color: var(--ink-muted);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 180ms ease;
}

.diva-cart__view-cart:hover {
  color: var(--ink);
}

/* Prevent body scroll when cart open */
body.cart-open {
  overflow: hidden;
}

/* ─── ADD-TO-CART BUTTON MICRO-ANIMATIONS ─────────────────────────────────── */
.single_add_to_cart_button {
  position: relative;
  overflow: hidden;
}

.single_add_to_cart_button.is-loading {
  color: transparent !important;
  pointer-events: none;
}

.single_add_to_cart_button.is-loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.15rem;
  height: 1.15rem;
  margin: -0.575rem 0 0 -0.575rem;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: diva-spin 600ms linear infinite;
}

.single_add_to_cart_button.is-added {
  background: rgba(0, 0, 0, 0.88) !important;
  color: #fff !important;
}

.single_add_to_cart_button.is-added::after {
  content: '✓';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  border: none;
  animation: none;
  width: auto;
  height: auto;
  margin: 0;
  border-radius: 0;
}

.diva-btn-spinner {
  display: none; /* No longer used — kept for safety */
}



/* ─── HEADER CART TRIGGER ─────────────────────────────────────────────────── */
[data-open-cart],
.diva-cart-trigger {
  cursor: pointer;
}

/* ─── MINI CART NOTICES ────────────────────────────────────────────────── */
.diva-cart-notices {
  width: 100%;
  margin-top: 1rem;
  margin-bottom: 1.5rem;
  animation: divaFadeIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes divaFadeIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* Hide old Woo UI */
body.theme-product .product-buybox__form .variations, body.theme-product .product-buybox__form .quantity, body.theme-product .product-buybox__form .reset_variations { display: none !important; }

/* 
==================================================
10. CHECKOUT
================================================== 
*/
.woocommerce-checkout .diva-checkout-layout {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

@media (min-width: 1024px) {
  .woocommerce-checkout .diva-checkout-layout {
    flex-direction: row;
  }
}

.diva-checkout-layout__main {
  flex: 1;
  padding: var(--space-xl) var(--space-md);
}

@media (min-width: 1024px) {
  .diva-checkout-layout__main {
    padding-right: 5%;
    padding-left: max(5%, calc((100vw - 1200px) / 2));
  }
}

.diva-checkout-header {
  margin-bottom: var(--space-xl);
}

.diva-checkout-header__title {
  font-size: 1.75rem;
  font-weight: 300;
  margin-bottom: var(--space-sm);
}

.diva-checkout-header__login {
  font-size: 0.875rem;
  color: var(--color-neutral-600);
}

.diva-checkout-header__login a {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Sidebar */
.diva-checkout-layout__sidebar {
  background-color: #fafafa;
  border-top: 1px solid var(--color-neutral-200);
  padding: var(--space-xl) var(--space-md);
}

@media (min-width: 1024px) {
  .diva-checkout-layout__sidebar {
    width: 44%;
    border-top: none;
    border-left: 1px solid var(--color-neutral-200);
    padding-left: 4%;
    padding-right: max(4%, calc((100vw - 1200px) / 2));
  }
  
  .diva-checkout-sidebar-inner {
    position: sticky;
    top: var(--space-xl);
  }
}

.diva-checkout-sidebar__title {
  display: none;
}

@media (max-width: 1023px) {
  .diva-checkout-sidebar__title {
    display: block;
    font-size: 1.25rem;
    margin-bottom: var(--space-md);
    border-bottom: 1px solid var(--color-neutral-200);
    padding-bottom: var(--space-sm);
  }
}

/* Coupon Notice Fix */
.woocommerce-form-coupon-toggle .woocommerce-info {
  background: transparent;
  color: var(--color-neutral-700);
  padding: 0;
  margin-bottom: var(--space-md);
  border: none;
}
.woocommerce-form-coupon-toggle .woocommerce-info a {
  color: var(--color-primary);
  text-decoration: underline;
}
.woocommerce-checkout form.checkout_coupon {
  border: 1px solid var(--color-neutral-200);
  padding: var(--space-md);
  border-radius: var(--radius-sm);
  margin-bottom: var(--space-xl);
  background: #fafafa;
}

/* Form Styling overrides for Woo */
.woocommerce-checkout form .form-row {
  margin-bottom: var(--space-md);
}

/* Make First/Last Name side-by-side */
.woocommerce-checkout .form-row-first {
  width: 48%;
  float: left;
}
.woocommerce-checkout .form-row-last {
  width: 48%;
  float: right;
}
.woocommerce-checkout .form-row-wide {
  clear: both;
}

.woocommerce-checkout form .form-row label {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-neutral-700);
  margin-bottom: 0.5rem;
}

/* Hide asterisk for required fields since we style them cleanly */
.woocommerce-checkout form .form-row label .required {
  color: var(--color-error);
  text-decoration: none;
}

.woocommerce-checkout form .form-row input.input-text,
.woocommerce-checkout form .form-row textarea,
.woocommerce-checkout form .form-row select,
.select2-container .select2-selection--single {
  width: 100%;
  padding: 0.875rem 1rem !important;
  background: var(--color-white) !important;
  border: 1px solid var(--color-neutral-300) !important;
  border-radius: var(--radius-sm) !important;
  font-size: 1rem !important;
  color: var(--color-primary) !important;
  height: auto !important;
  box-shadow: none;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.select2-container .select2-selection--single .select2-selection__rendered {
  padding: 0 !important;
  line-height: 1.5 !important;
}
.select2-container .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  top: 0 !important;
  right: 1rem !important;
}

.woocommerce-checkout form .form-row input.input-text:focus,
.woocommerce-checkout form .form-row textarea:focus,
.woocommerce-checkout form .form-row select:focus {
  outline: none;
  border-color: var(--color-primary) !important;
  box-shadow: none;
}

/* Review Order Table */
.woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
  padding: 1rem 0;
  border-bottom: 1px solid var(--color-neutral-200);
  text-align: left;
  vertical-align: middle;
}

.woocommerce-checkout-review-order-table thead {
  display: none;
}

/* Product Info Layout */
.woocommerce-checkout-review-order-table tbody td.product-name {
  display: flex;
  align-items: center;
  gap: 1rem;
  border-bottom: 1px solid var(--color-neutral-200);
}

.checkout-product-image {
  position: relative;
  width: 64px;
  height: 64px;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-neutral-200);
  background: var(--color-white);
  display: flex;
  align-items: center;
  justify-content: center;
}

.checkout-product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: calc(var(--radius-sm) - 1px);
}

.checkout-product-quantity {
  position: absolute;
  top: -8px;
  right: -8px;
  background: rgba(114, 114, 114, 0.9);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 500;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.checkout-product-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.checkout-product-title {
  font-weight: 500;
  font-size: 0.9375rem;
  color: var(--color-primary);
}

.woocommerce-checkout-review-order-table dl.variation {
  margin: 0;
  font-size: 0.75rem;
  color: var(--color-neutral-600);
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.5rem;
}

.woocommerce-checkout-review-order-table dl.variation p {
  margin: 0;
}
.woocommerce-checkout-review-order-table dl.variation dt {
  font-weight: 400;
  float: left;
  clear: left;
}
.woocommerce-checkout-review-order-table dl.variation dd {
  margin: 0;
  float: left;
}

.woocommerce-checkout-review-order-table tbody td.product-total {
  text-align: right;
  font-weight: 500;
  font-size: 0.9375rem;
}

/* Cart Subtotals */
.woocommerce-checkout-review-order-table tfoot th {
  font-weight: 400;
  color: var(--color-neutral-600);
  font-size: 0.9375rem;
}

.woocommerce-checkout-review-order-table tfoot td {
  text-align: right;
  font-weight: 500;
  font-size: 0.9375rem;
}

/* Fix shipping ul styles */
#shipping_method {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: right;
}
#shipping_method li {
  margin: 0;
}
#shipping_method input[type="radio"] {
  display: none; /* If only 1 option or handled by Woo natively */
}
#shipping_method label {
  display: inline;
  color: var(--color-neutral-700);
}

.woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout-review-order-table tfoot tr.order-total td {
  font-size: 1.25rem;
  color: var(--color-primary);
  border-bottom: none;
  padding-top: 1.5rem;
  font-weight: 600;
}

/* Payment Methods */
#payment {
  background: transparent;
  border-radius: 0;
}

#payment ul.payment_methods {
  padding: 0;
  border-bottom: 1px solid var(--color-neutral-200);
  margin-bottom: 1.5rem;
}

#payment ul.payment_methods li {
  list-style: none;
  padding: 1rem;
  background: var(--color-white);
  border: 1px solid var(--color-neutral-300);
  border-bottom: none;
  margin: 0;
}

#payment ul.payment_methods li:first-child {
  border-top-left-radius: var(--radius-md);
  border-top-right-radius: var(--radius-md);
}

#payment ul.payment_methods li:last-child {
  border-bottom: 1px solid var(--color-neutral-300);
  border-bottom-left-radius: var(--radius-md);
  border-bottom-right-radius: var(--radius-md);
}

#payment div.payment_box {
  padding: 1rem;
  background: var(--color-neutral-50);
  font-size: 0.875rem;
  color: var(--color-neutral-700);
  margin-top: 1rem;
  border-radius: var(--radius-sm);
}

#payment .place-order {
  padding: 1.5rem 0;
}

#payment .place-order .button {
  width: 100%;
  padding: 1.25rem;
  font-size: 1.125rem;
  font-weight: 600;
  background-color: var(--color-primary);
  color: var(--color-white);
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background-color var(--transition-fast);
}

#payment .place-order .button:hover {
  background-color: var(--color-secondary);
}

/* 
==================================================
11. FOOTER 4-COLUMN REWORK
================================================== 
*/
.site-footer {
  background-color: transparent;
  border-top: 1px solid var(--color-neutral-200);
  padding-top: var(--space-2xl);
  margin-top: var(--space-2xl);
}

.site-footer__inner--4col {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-md);
}

@media (min-width: 768px) {
  .site-footer__inner--4col {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .site-footer__inner--4col {
    grid-template-columns: 1.5fr 1fr 1fr 1.5fr;
    gap: var(--space-xl);
  }
}

.site-footer__col {
  display: flex;
  flex-direction: column;
}

.site-footer__logo h2 {
  margin-bottom: var(--space-md);
  color: var(--color-primary);
  font-family: var(--font-heading);
}

.site-footer__contact-list {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-md) 0;
  font-size: 0.875rem;
  color: var(--color-neutral-600);
  line-height: 1.6;
}

.site-footer__contact-list li {
  margin-bottom: var(--space-xs);
}

.site-footer__social {
  display: flex;
  gap: var(--space-sm);
  margin-top: var(--space-sm);
}

.social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: transparent;
  color: var(--color-primary);
  border: 1px solid var(--color-neutral-300);
  border-radius: 50%;
  transition: all var(--transition-fast);
}

.social-icon:hover {
  background-color: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
}

.site-footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.site-footer__links li {
  margin-bottom: var(--space-sm);
}

.site-footer__links a {
  font-size: 0.9375rem;
  color: var(--color-neutral-600);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.site-footer__links a:hover {
  color: var(--color-primary);
}

.site-footer__heading {
  font-size: 1.125rem;
  font-weight: 500;
  margin-bottom: var(--space-md);
  color: var(--color-primary);
  font-family: var(--font-heading);
}

.site-footer__newsletter-text {
  font-size: 0.875rem;
  color: var(--color-neutral-600);
  line-height: 1.6;
  margin-bottom: var(--space-md);
}

.newsletter-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

@media (min-width: 480px) {
  .newsletter-form {
    flex-direction: row;
  }
}

.newsletter-form input {
  flex: 1;
  padding: 0.875rem 1rem;
  border: 1px solid var(--color-neutral-300);
  border-radius: var(--radius-sm);
  font-size: 0.9375rem;
  background-color: var(--color-white);
}

.newsletter-form input:focus {
  outline: none;
  border-color: var(--color-primary);
}

.newsletter-form button {
  padding: 0.875rem 1.5rem;
  background-color: var(--color-primary);
  color: var(--color-white);
  border: none;
  border-radius: var(--radius-sm);
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color var(--transition-fast);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.newsletter-form button:hover {
  background-color: var(--color-secondary);
}

.site-footer__meta {
  margin-top: var(--space-2xl);
  padding: var(--space-xl) var(--space-md);
  border-top: 1px solid var(--color-neutral-200);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
  font-size: 0.75rem;
  color: var(--color-neutral-500);
  text-align: center;
}

/* 
==================================================
12. EDITORIAL PAGE TYPOGRAPHY
================================================== 
*/
.page .entry-header {
  text-align: center;
  padding: var(--space-2xl) var(--space-md);
  background-color: var(--color-neutral-50);
  margin-bottom: var(--space-xl);
}

.page .entry-title {
  font-size: 2.5rem;
  font-weight: 300;
  font-family: var(--font-heading);
  color: var(--color-primary);
  margin: 0;
}

.page .entry-content {
  max-width: 800px;
  margin: 0 auto;
  padding: 0 var(--space-md) var(--space-2xl) var(--space-md);
  color: var(--color-neutral-700);
  font-size: 1.0625rem;
  line-height: 1.8;
}

.page .entry-content h2 {
  font-size: 1.75rem;
  font-weight: 400;
  font-family: var(--font-heading);
  color: var(--color-primary);
  margin-top: var(--space-xl);
  margin-bottom: var(--space-sm);
  border-bottom: 1px solid var(--color-neutral-200);
  padding-bottom: var(--space-xs);
}

.page .entry-content h3 {
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--color-primary);
  margin-top: var(--space-md);
  margin-bottom: var(--space-xs);
}

.page .entry-content p {
  margin-bottom: var(--space-md);
}

.page .entry-content ul {
  margin-bottom: var(--space-md);
  padding-left: var(--space-md);
}

.page .entry-content li {
  margin-bottom: var(--space-xs);
}

.page .entry-content strong {
  color: var(--color-primary);
  font-weight: 600;
}

/* 
==================================================
13. CUSTOMER SERVICE LAYOUT (RINO PELLE STYLE)
================================================== 
*/
.customer-service-layout {
  padding: calc(var(--header-height, 120px) + var(--space-2xl)) var(--space-md) var(--space-2xl) var(--space-md);
  background-color: transparent;
}

.customer-service-layout__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xl);
}

@media (min-width: 1024px) {
  .customer-service-layout__inner {
    flex-direction: row;
    gap: 8%; /* Create wide space between sidebar and content */
  }
}

/* Sidebar Styling */
.customer-service-sidebar {
  width: 100%;
}

@media (min-width: 1024px) {
  .customer-service-sidebar {
    width: 250px;
    flex-shrink: 0;
    position: sticky;
    top: var(--space-2xl);
    align-self: flex-start;
  }
}

.customer-service-sidebar__heading {
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-neutral-400);
  margin-bottom: var(--space-md);
  display: none; /* Hide on desktop for ultra-minimal look */
}

@media (max-width: 1023px) {
  .customer-service-sidebar__heading {
    display: block;
  }
}

.customer-service-nav__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

@media (max-width: 1023px) {
  .customer-service-nav__list {
    flex-direction: row;
    overflow-x: auto;
    padding-bottom: var(--space-sm);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none; /* Hide scrollbar for clean look */
  }
  .customer-service-nav__list::-webkit-scrollbar {
    display: none;
  }
  .customer-service-nav__item {
    white-space: nowrap;
  }
}

.customer-service-nav__link {
  font-size: 0.9375rem;
  color: var(--color-neutral-700);
  text-decoration: none;
  padding-bottom: 2px; /* Space for underline */
  transition: color var(--transition-fast);
}

.customer-service-nav__link:hover {
  color: var(--color-primary);
}

.customer-service-nav__link.is-active {
  font-weight: 600;
  color: var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
}

/* Main Content Styling */
.customer-service-content {
  flex: 1;
  max-width: 800px;
}

.customer-service-article__header {
  border-bottom: 1px solid var(--color-neutral-200);
  padding-bottom: var(--space-lg);
  margin-bottom: var(--space-xl);
}

.customer-service-article__title {
  font-family: var(--font-heading);
  font-size: 3rem;
  font-weight: 300;
  color: var(--color-primary);
  margin: 0;
  letter-spacing: -0.02em;
}

.customer-service-article__body {
  font-size: 1.0625rem;
  line-height: 1.8;
  color: var(--color-neutral-700);
}

.customer-service-article__body h2 {
  font-family: var(--font-heading);
  font-size: 1.75rem;
  font-weight: 400;
  color: var(--color-primary);
  margin-top: var(--space-2xl);
  margin-bottom: var(--space-md);
}

.customer-service-article__body h2:first-child {
  margin-top: 0;
}

.customer-service-article__body h3 {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--color-primary);
  margin-top: var(--space-xl);
  margin-bottom: var(--space-sm);
}

.customer-service-article__body p {
  margin-bottom: var(--space-lg);
}

.customer-service-article__body ul {
  margin-bottom: var(--space-lg);
  padding-left: var(--space-lg);
}

.customer-service-article__body li {
  margin-bottom: var(--space-xs);
}

.customer-service-article__body strong {
  font-weight: 600;
  color: var(--color-primary);
}

/* 
==================================================
14. ELITE AWWWARDS HOME PAGE
================================================== 
*/
.elite-home {
  display: block;
  background-color: transparent;
}

/* Global Elite Components */
.elite-container {
  max-width: 1600px; /* Wider for editorial feel */
  margin: 0 auto;
  padding: 0 var(--space-lg);
}
.elite-container--narrow {
  max-width: 800px;
}
.elite-section-header {
  margin-bottom: var(--space-3xl);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-bottom: 1px solid var(--color-neutral-300);
  padding-bottom: var(--space-sm);
}
.elite-section-title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 300;
  color: var(--color-primary);
  margin: 0;
  letter-spacing: -0.02em;
}
.elite-link-subtle {
  font-size: 0.875rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-neutral-500);
  text-decoration: none;
  transition: color 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.elite-link-subtle:hover {
  color: var(--color-primary);
}

/* 1. Immersive Hero */
.elite-hero {
  position: relative;
  min-height: 100svh; /* Full viewport */
  width: 100%;
  margin-top: calc(-1 * var(--header-height, 120px)); /* Go under header */
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-neutral-900);
}

.elite-hero__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 110%; /* Extra height for parallax illusion */
  background-size: cover;
  background-position: center 30%;
  opacity: 0.8;
  animation: eliteSlowZoom 20s ease-out forwards;
}

@keyframes eliteSlowZoom {
  0% { transform: scale(1); }
  100% { transform: scale(1.08); }
}

.elite-hero__content {
  position: relative;
  z-index: 10;
  text-align: center;
  width: 100%;
  pointer-events: none;
}

.elite-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(3rem, 12vw, 10rem);
  font-weight: 700;
  line-height: 1;
  margin: 0;
  color: #ffffff;
  opacity: 1;
  letter-spacing: 0.25em;
  text-transform: uppercase;
}

.elite-hero__subtitle {
  font-family: var(--font-body);
  font-size: clamp(0.75rem, 1.5vw, 1rem);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.35em;
  color: var(--color-white);
  margin-top: var(--space-lg);
  opacity: 0.9;
}

.elite-hero__scroll-indicator {
  position: absolute;
  bottom: var(--space-2xl);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--color-white);
  opacity: 0.6;
  z-index: 10;
}
.elite-hero__scroll-indicator span {
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  margin-bottom: var(--space-sm);
}
.elite-hero__scroll-indicator .line {
  width: 1px;
  height: 60px;
  background: var(--color-white);
  animation: eliteScrollLine 2s infinite cubic-bezier(0.165, 0.84, 0.44, 1);
  transform-origin: top;
}

@keyframes eliteScrollLine {
  0% { transform: scaleY(0); }
  50% { transform: scaleY(1); transform-origin: top; }
  50.1% { transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}

/* 2. Macro-Typography Statement */
.elite-statement {
  padding: 15vh 0;
  background-color: transparent;
  overflow: hidden; /* Prevent horizontal scroll if single line is too wide */
}
.elite-statement__text {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 5vw, 4.5rem);
  font-weight: 300;
  line-height: 1.2;
  color: var(--color-primary);
  text-align: center;
  margin: 0 auto;
  max-width: 1200px;
}
.elite-statement__text em {
  font-style: italic;
  color: var(--color-neutral-500);
}
.elite-statement__text--single {
  white-space: nowrap;
  font-size: clamp(1.2rem, 3vw, 2.5rem); /* Refined, elegant size */
  letter-spacing: 0.15em;
  font-weight: 300;
}

/* 3. Bento Grid & Editorial Header */
.elite-bento-section {
  padding: 5vh 0 15vh 0;
}

.elite-editorial-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: var(--space-4xl);
  text-align: center;
}
.elite-editorial-header__eyebrow {
  font-family: var(--font-body);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.4em;
  color: var(--color-neutral-500);
  margin-bottom: var(--space-md);
}
.elite-editorial-header__title {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--ink);
  margin: 0;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}

.elite-editorial-header__line {
  display: none;
}

.elite-editorial-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2 columns on mobile/tablet */
  gap: var(--space-md);
  max-width: 1200px;
  margin: var(--space-xl) auto;
  padding: 0;
}

@media (min-width: 1024px) {
  .elite-editorial-grid {
    grid-template-columns: repeat(3, 1fr); /* 3 columns on desktop */
    gap: var(--space-xl) var(--space-lg);
    margin: var(--space-2xl) auto;
  }
}

.elite-editorial-item {
  display: flex;
  flex-direction: column;
  text-decoration: none;
}

.elite-editorial-item__image-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 3/4; /* Portrait fashion ratio */
  overflow: hidden;
  background-color: var(--color-neutral-100);
  border-radius: 0;
  box-shadow: none;
  transition: opacity 0.3s ease;
}

.elite-editorial-item__image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}

.elite-editorial-item:hover .elite-editorial-item__image-wrapper img {
  transform: scale(1.03);
}

.elite-editorial-item:hover .elite-editorial-item__image-wrapper {
  box-shadow: none;
  opacity: 0.95;
}

.elite-editorial-item__content {
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  margin-top: 0.75rem;
  padding: 0 2px;
}

.elite-editorial-item__count {
  font-family: var(--body), sans-serif;
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--ink-muted);
  letter-spacing: 0.1em;
}

.elite-editorial-item__title {
  font-family: var(--body), sans-serif;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  transition: opacity 0.3s ease;
}

.elite-editorial-item:hover .elite-editorial-item__title {
  opacity: 0.7;
}

/* 4. The Runway (Horizontal Scroll) */
.elite-runway-section {
  padding: 10vh 0 25vh 0;
  overflow: hidden;
}

.elite-runway {
  display: flex;
  gap: var(--space-2xl);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: var(--space-2xl); /* For shadow/overflow */
  /* Hide scrollbar */
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.elite-runway::-webkit-scrollbar {
  display: none;
}

.elite-runway__item {
  flex: 0 0 85vw; /* Almost full width on mobile */
  scroll-snap-align: center;
}

@media (min-width: 768px) {
  .elite-runway__item {
    flex: 0 0 45vw;
  }
}

@media (min-width: 1024px) {
  .elite-runway {
    gap: 4vw; /* Huge negative space */
  }
  .elite-runway__item {
    flex: 0 0 22vw;
    scroll-snap-align: start;
  }
}

/* Customizing the WooCommerce product within the runway */
.elite-runway__item .product {
  margin: 0 !important;
  width: 100% !important;
}
.elite-runway__item .woocommerce-LoopProduct-link img {
  border-radius: 0; /* Sharp, editorial edges */
  aspect-ratio: 3/4;
  object-fit: cover;
}
.elite-runway__item .woocommerce-loop-product__title {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 400;
  margin-top: var(--space-md);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.elite-runway__item .price {
  font-size: 0.875rem;
  color: var(--color-neutral-500);
}

/* 5. Deep Manifesto */
.elite-manifesto {
  padding: 15vh 0 20vh 0;
  text-align: center;
  background-color: var(--color-neutral-50);
}
.elite-manifesto__heading {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 300;
  color: var(--color-primary);
  margin-bottom: var(--space-xl);
}
.elite-manifesto__body {
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  line-height: 1.8;
  color: var(--color-neutral-600);
  margin-bottom: var(--space-2xl);
}
.elite-manifesto__body p {
  margin-bottom: var(--space-md);
}

.elite-button-outline {
  display: inline-block;
  padding: 1.2rem 3rem;
  border: 1px solid var(--color-primary);
  color: var(--color-primary);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  text-decoration: none;
  transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.elite-button-outline:hover {
  background-color: var(--color-primary);
  color: var(--color-white);
}

/* 
==================================================
15. ELITE CATALOG (SHOP/CATEGORY PAGE)
================================================== 
*/
.elite-catalog {
  display: block;
  padding-top: calc(var(--header-height, 120px) + var(--space-xl));
}

/* Macro Header */
.elite-catalog__header {
  text-align: center;
  padding: var(--space-3xl) 0 var(--space-2xl) 0;
}
.elite-catalog__title {
  font-family: var(--font-heading);
  font-size: clamp(3rem, 8vw, 6rem);
  font-weight: 300;
  color: var(--color-primary);
  margin: 0;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}
.elite-catalog__description {
  max-width: 600px;
  margin: var(--space-md) auto 0 auto;
  font-size: 1.125rem;
  color: var(--color-neutral-600);
  line-height: 1.6;
}

/* Utilities Toolbar */
.elite-catalog__toolbar {
  border-top: 1px solid var(--color-neutral-200);
  border-bottom: 1px solid var(--color-neutral-200);
  margin-bottom: var(--space-3xl);
  background-color: transparent;
}
.elite-catalog__toolbar-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--space-sm) var(--space-md);
}

.elite-filter-toggle {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  background: none;
  border: none;
  color: var(--color-primary);
  font-size: 0.875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  padding: var(--space-xs) 0;
  transition: opacity var(--transition-fast);
}
.elite-filter-toggle:hover {
  opacity: 0.7;
}

.elite-catalog__count {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-neutral-500);
}

/* Spacious Product Grid */
.elite-catalog__grid-wrapper {
  padding-bottom: var(--space-4xl);
}
/* Override Woo Defaults */
.elite-catalog ul.products {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl) var(--space-md);
  margin: 0;
  padding: 0;
  list-style: none;
}
.elite-catalog ul.products::before,
.elite-catalog ul.products::after {
  display: none; /* Remove Woo float clears */
}
.elite-catalog ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  clear: none !important;
}

@media (min-width: 768px) {
  .elite-catalog ul.products {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-2xl);
  }
}

@media (min-width: 1024px) {
  .elite-catalog ul.products {
    grid-template-columns: repeat(3, 1fr);
    gap: 4vw 3vw; /* Huge negative space */
  }
}

/* The Off-Canvas Drawer */
.elite-drawer {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  justify-content: flex-end;
  visibility: hidden;
  pointer-events: none;
}

.elite-drawer[aria-hidden="false"] {
  visibility: visible;
  pointer-events: auto;
}

.elite-drawer__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.4);
  opacity: 0;
  transition: opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
  backdrop-filter: blur(4px);
}

.elite-drawer[aria-hidden="false"] .elite-drawer__overlay {
  opacity: 1;
}

.elite-drawer__panel {
  position: relative;
  width: 100%;
  max-width: 400px;
  height: 100%;
  background-color: var(--color-white);
  box-shadow: none;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.elite-drawer[aria-hidden="false"] .elite-drawer__panel {
  transform: translateX(0);
}

.elite-drawer__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--space-lg);
  border-bottom: 1px solid var(--color-neutral-200);
}

.elite-drawer__title {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 300;
  margin: 0;
}

.elite-drawer__close {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-neutral-500);
  transition: color var(--transition-fast);
  padding: 0;
  display: flex;
  align-items: center;
}
.elite-drawer__close:hover {
  color: var(--color-primary);
}

.elite-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: var(--space-lg);
}

.elite-drawer__section {
  margin-bottom: var(--space-2xl);
}
.elite-drawer__section-title {
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-neutral-400);
  margin-bottom: var(--space-md);
  border-bottom: 1px solid var(--color-neutral-100);
  padding-bottom: var(--space-xs);
}

.elite-custom-sorting select {
  width: 100%;
  padding: 1rem;
  border: 1px solid var(--color-neutral-300);
  background-color: transparent;
  font-family: var(--font-body);
  font-size: 1rem;
  border-radius: var(--radius-sm);
  appearance: none; /* Needs custom arrow ideally, but ok for now */
}

.elite-drawer__empty {
  color: var(--color-neutral-500);
  font-style: italic;
  font-size: 0.9rem;
}

.elite-drawer__footer {
  padding: var(--space-md) var(--space-lg);
  border-top: 1px solid var(--color-neutral-200);
  background-color: var(--color-neutral-50);
}

.elite-button-solid {
  display: block;
  width: 100%;
  padding: 1.2rem;
  background-color: var(--color-primary);
  color: var(--color-white);
  border: none;
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  cursor: pointer;
  border-radius: var(--radius-sm);
  transition: background-color var(--transition-fast);
}
.elite-button-solid:hover {
  background-color: var(--color-neutral-900);
}

/* 
==================================================
16. ELITE HEADER & OVERLAYS (EXTREME PRO MODE)
================================================== 
*/

/* Smart Sticky Header */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background-color: transparent; /* Starts transparent for immersive hero */
  transition: background-color 0.4s ease, backdrop-filter 0.4s ease, border-bottom 0.4s ease;
  border-bottom: 1px solid transparent;
}

.site-header.is-scrolled {
  background-color: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--color-neutral-200);
}

/* Ensure text/icons in header are dark (override if needed on dark backgrounds, but standard is white bg so dark icons) */
.site-header.is-scrolled .site-branding__mark {
  filter: none; /* if it was inverted */
}

/* 1. Cinematic Full-Screen Menu */
.elite-menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  pointer-events: none;
}

.elite-menu-overlay[aria-hidden="false"] {
  visibility: visible;
  pointer-events: auto;
}

.elite-menu-overlay__bg {
  position: absolute;
  inset: 0;
  background-color: var(--color-neutral-900);
  transform: translateY(-100%);
  transition: transform 0.8s cubic-bezier(0.77, 0, 0.175, 1); /* Supreme smoothness */
}

.elite-menu-overlay[aria-hidden="false"] .elite-menu-overlay__bg {
  transform: translateY(0);
}

.elite-menu-overlay__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1600px;
  height: 100vh;
  padding: var(--space-3xl) var(--space-xl);
  display: flex;
  flex-direction: column;
  opacity: 0;
  transition: opacity 0.4s ease;
  transition-delay: 0s;
}

.elite-menu-overlay[aria-hidden="false"] .elite-menu-overlay__inner {
  opacity: 1;
  transition-delay: 0.4s; /* Wait for bg to drop down */
}

.elite-menu-overlay__close {
  align-self: flex-end;
  background: none;
  border: none;
  color: var(--color-white);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  transition: opacity var(--transition-fast);
}
.elite-menu-overlay__close:hover {
  opacity: 0.7;
}
.elite-menu-overlay__close .text {
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.elite-menu-overlay__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media (min-width: 1024px) {
  .elite-menu-overlay__content {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}

.elite-menu-overlay__label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-neutral-500);
  margin-bottom: var(--space-xl);
}

.elite-macro-menu {
  list-style: none;
  padding: 0;
  margin: 0;
}

.elite-macro-menu li {
  overflow: hidden; /* For the reveal animation */
  margin-bottom: var(--space-sm);
}

.elite-macro-link {
  display: inline-block;
  text-decoration: none;
}

.elite-macro-link__text {
  display: block;
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 3vw, 2.5rem); /* Sophisticated, readable size */
  font-weight: 300;
  line-height: 1.2;
  color: var(--color-white);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transform: translateY(100%);
  transition: transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.elite-menu-overlay[aria-hidden="false"] .elite-macro-link__text {
  transform: translateY(0);
  transition-delay: calc(0.4s + var(--delay, 0s)); /* Staggered reveal */
}

.elite-macro-link:hover .elite-macro-link__text {
  color: var(--color-neutral-400);
  font-style: italic; /* Editorial hover effect */
}

.elite-menu-overlay__meta {
  display: flex;
  gap: var(--space-3xl);
  margin-top: var(--space-3xl);
}

@media (min-width: 1024px) {
  .elite-menu-overlay__meta {
    margin-top: 0;
    padding-bottom: var(--space-xl);
  }
}

.elite-menu-meta-block .label {
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-neutral-500);
  margin-bottom: var(--space-sm);
}

.elite-menu-meta-block a {
  display: block;
  color: var(--color-white);
  text-decoration: none;
  font-size: 0.875rem;
  margin-bottom: var(--space-xs);
  transition: opacity var(--transition-fast);
}
.elite-menu-meta-block a:hover {
  opacity: 0.6;
}

/* 2. Premium Search Overlay */
.elite-search-overlay {
  position: fixed;
  inset: 0;
  z-index: 9998; /* Just below menu */
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

.elite-search-overlay[aria-hidden="false"] {
  visibility: visible;
  opacity: 1;
}

.elite-search-overlay__close {
  position: absolute;
  top: var(--space-2xl);
  right: var(--space-2xl);
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-neutral-900);
  transition: transform 0.4s ease;
}
.elite-search-overlay__close:hover {
  transform: rotate(90deg);
}

.elite-search-overlay__inner {
  width: 100%;
  max-width: 1000px;
  padding: 0 var(--space-lg);
  transform: translateY(20px);
  transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.elite-search-overlay[aria-hidden="false"] .elite-search-overlay__inner {
  transform: translateY(0);
}

.elite-search-overlay__label {
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-neutral-500);
  margin-bottom: var(--space-md);
}

.elite-search-form {
  position: relative;
  display: flex;
  align-items: center;
  border-bottom: 2px solid var(--color-neutral-900);
}

.elite-search-input {
  width: 100%;
  background: transparent;
  border: none;
  padding: var(--space-md) 0;
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 3vw, 2.5rem); /* Balanced search input */
  font-weight: 300;
  color: var(--color-neutral-900);
  outline: none;
}
.elite-search-input::placeholder {
  color: var(--color-neutral-300);
}

.elite-search-submit {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-neutral-900);
  padding: var(--space-sm);
  transition: color var(--transition-fast);
}
/* 
==================================================
17. ELITE SINGLE PRODUCT PAGE (SCROLLYTELLING)
================================================== 
*/
.elite-pdp {
  padding-top: var(--header-height, 80px); /* Push down below transparent/sticky header */
}

.elite-pdp__layout {
  display: flex;
  flex-direction: column;
}

@media (min-width: 1024px) {
  .elite-pdp__layout {
    display: grid;
    grid-template-columns: 55% 45%;
    gap: var(--space-4xl);
    align-items: start;
    max-width: 1800px;
    margin: 0 auto;
    padding: 0 var(--space-2xl);
  }
}

/* LEFT: Gallery */
.elite-pdp__gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4px;
  position: relative;
}

.elite-pdp__gallery-item {
  margin: 0;
}

.elite-pdp__gallery-item:first-child {
  grid-column: 1 / -1;
}

.elite-pdp__gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  display: block;
}

@media (max-width: 1023px) {
  .elite-pdp__gallery {
    display: flex;
    flex-direction: row;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none; /* Firefox */
    gap: 0;
  }
  
  .elite-pdp__gallery::-webkit-scrollbar {
    display: none; /* Safari and Chrome */
  }

  .elite-pdp__gallery-item {
    flex: 0 0 100%;
    scroll-snap-align: start;
  }
}

.elite-pdp__badge--sale {
  position: absolute;
  top: var(--space-lg);
  left: var(--space-lg);
  z-index: 10;
  background-color: var(--color-primary);
  color: var(--color-white);
  padding: var(--space-xs) var(--space-sm);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

/* RIGHT: Sticky Info */
.elite-pdp__info {
  padding: var(--space-xl);
}

@media (min-width: 1024px) {
  .elite-pdp__info {
    padding: 0;
    position: sticky;
    top: calc(var(--header-height, 80px) + var(--space-2xl));
    height: max-content;
    max-height: calc(100vh - var(--header-height, 80px) - var(--space-4xl));
    overflow-y: auto; /* Scroll info if it's too long, while gallery is separate */
    /* Hide scrollbar for clean look */
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
  .elite-pdp__info::-webkit-scrollbar {
    display: none;
  }
}

.elite-pdp__breadcrumbs {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-neutral-500);
  margin-bottom: var(--space-xl);
}
.elite-pdp__breadcrumbs a {
  color: var(--color-primary);
  text-decoration: none;
}
.elite-pdp__breadcrumbs .sep {
  margin: 0 var(--space-xs);
}

.elite-pdp__eyebrow {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-neutral-500);
  margin-bottom: var(--space-sm);
}

.elite-pdp__title {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2rem); /* Elegant product title */
  font-weight: 300;
  line-height: 1.2;
  color: var(--color-primary);
  margin-bottom: var(--space-md);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.elite-pdp__price {
  font-size: 1.5rem;
  font-weight: 400;
  margin-bottom: var(--space-lg);
}

.elite-pdp__urgency {
  font-size: 0.875rem;
  color: #d32f2f; /* Premium subtle red */
  margin-bottom: var(--space-xl);
}

/* Commerce Form Resets for Minimalist Look */
.elite-pdp__commerce {
  margin-bottom: var(--space-2xl);
  border-top: 1px solid var(--color-neutral-200);
  padding-top: var(--space-xl);
}
.elite-pdp__commerce .single_variation_wrap {
  margin-top: var(--space-lg);
}
.elite-pdp__commerce .button.alt {
  width: 100%;
  background-color: var(--color-primary);
  color: var(--color-white);
  padding: var(--space-md);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  border: none;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.elite-pdp__commerce .button.alt:hover {
  background-color: var(--color-neutral-700);
}

/* Trust Badges */
.elite-pdp__trust {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin-bottom: var(--space-2xl);
  padding: var(--space-lg);
  background-color: var(--color-neutral-50);
}
.elite-trust-item {
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-neutral-600);
}

/* Meta */
.elite-pdp__meta {
  margin-top: var(--space-2xl);
  font-size: 0.75rem;
  color: var(--color-neutral-500);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.elite-pdp__meta .label {
  color: var(--color-primary);
  margin-right: var(--space-xs);
}

/* Related Products */
.elite-pdp__related {
  margin-top: 15vh;
  border-top: 1px solid var(--color-neutral-200);
  padding-top: 10vh;
}

/* Silk-thread Custom Cursor */
.elite-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 10px;
  height: 10px;
  background-color: var(--ink);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  mix-blend-mode: difference;
  transform: translate3d(0, 0, 0);
  transition: width 0.3s ease, height 0.3s ease, background-color 0.3s ease;
  margin-top: -5px;
  margin-left: -5px;
  will-change: transform;
}

.elite-cursor.is-hover {
  background-color: transparent;
  border: 1px solid var(--ink);
  width: 30px;
  height: 30px;
  margin-top: -15px;
  margin-left: -15px;
}

@media (hover: none) {
  .elite-cursor {
    display: none !important;
  }
}


/* ═══════════════════════════════════════════════════════════════
   CATALOG PAGE v2 — Awwwards Elite + Psychology Layer
   ═══════════════════════════════════════════════════════════════ */

/* ── 1. Cinematic Header ──────────────────────────────────────── */
.catalog-header {
  position: relative;
  min-height: 36vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-top: calc(var(--header-offset) + 3rem);
  padding-bottom: 2.5rem;
  overflow: hidden;
  background: var(--canvas);
}

.catalog-header--has-image {
  min-height: 52vh;
  color: #fff;
}

.catalog-header__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 30%;
  transform: scale(1.06);
  transition: transform 8s ease-out;
  will-change: transform;
}

.catalog-header--has-image .catalog-header__bg {
  animation: catalogBgZoom 12s ease-out forwards;
}

@keyframes catalogBgZoom {
  from { transform: scale(1.08); }
  to   { transform: scale(1); }
}

.catalog-header__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(0,0,0,0.18) 0%,
    rgba(0,0,0,0.52) 100%
  );
}

.catalog-header__inner {
  position: relative;
  z-index: 2;
}

/* Breadcrumb */
.catalog-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 1.2rem;
  opacity: 0.7;
}

.catalog-header--has-image .catalog-breadcrumb {
  color: rgba(255,255,255,0.85);
}

.catalog-breadcrumb__link {
  transition: opacity 0.3s ease;
}

.catalog-breadcrumb__link:hover { opacity: 1; }

.catalog-breadcrumb__sep { opacity: 0.5; }

/* Macro Title */
.catalog-header__title {
  font-family: var(--display);
  font-size: clamp(3.2rem, 8vw, 9rem);
  font-weight: 300;
  letter-spacing: -0.02em;
  line-height: 0.92;
  margin: 0 0 1rem;
  color: inherit;
}

.catalog-header--has-image .catalog-header__title { color: #fff; }

/* Description */
.catalog-header__desc {
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--ink-muted);
  max-width: 480px;
  margin: 0 0 1.25rem;
}

.catalog-header--has-image .catalog-header__desc { color: rgba(255,255,255,0.8); }

/* Animated Count */
.catalog-header__meta {
  display: flex;
  align-items: baseline;
  gap: 0;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.6;
}

/* Scroll Cue */
.catalog-header__scroll-cue {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  animation: scrollCueBounce 2s ease-in-out infinite;
  opacity: 0.5;
}

.catalog-header--has-image .catalog-header__scroll-cue { color: #fff; }

@keyframes scrollCueBounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%       { transform: translateX(-50%) translateY(6px); }
}

/* ── 2. Trust Strip ───────────────────────────────────────────── */
.catalog-trust-strip {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 0.7rem 0;
  background: var(--canvas-strong);
}

.catalog-trust-strip__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.catalog-trust-item {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ink-muted);
  white-space: nowrap;
}

.catalog-trust-sep {
  color: var(--line-strong);
  opacity: 0.25;
  font-size: 1rem;
}

/* ── 3. Sub-category Chips ────────────────────────────────────── */
.catalog-subcats {
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}

.catalog-subcats__scroll {
  display: flex;
  gap: 0.5rem;
  padding: 0 var(--space-lg);
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  max-width: 1600px;
  margin: 0 auto;
}

.catalog-subcats__scroll::-webkit-scrollbar { display: none; }

.catalog-subcat-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 1rem;
  border: 1px solid var(--line);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  flex-shrink: 0;
}

.catalog-subcat-pill:hover {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}

.catalog-subcat-pill.is-active {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}

.catalog-subcat-pill__count {
  opacity: 0.55;
  font-size: 0.65rem;
}

/* ── 4. Sticky Toolbar ────────────────────────────────────────── */
.catalog-toolbar {
  position: sticky;
  top: var(--header-offset);
  z-index: 90;
  background: var(--canvas);
  border-bottom: 1px solid var(--line);
  transition: box-shadow 0.3s ease;
}

.catalog-toolbar.is-sticky {
  box-shadow: 0 4px 24px rgba(0,0,0,0.06);
}

.catalog-toolbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  gap: 1rem;
}

.catalog-toolbar__left,
.catalog-toolbar__right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

/* Filter Button */
.catalog-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.55rem 1rem;
  border: 1px solid var(--ink);
  background: transparent;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease;
  color: var(--ink);
}

.catalog-filter-btn:hover,
.catalog-filter-btn[aria-expanded="true"] {
  background: var(--ink);
  color: #fff;
}

/* View Toggle */
.catalog-view-toggle {
  display: flex;
  gap: 2px;
}

.catalog-view-btn {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
  color: var(--ink-muted);
  transition: color 0.2s ease, border-color 0.2s ease;
}

.catalog-view-btn:hover { color: var(--ink); }

.catalog-view-btn.is-active {
  color: var(--ink);
  border-color: var(--line);
}

/* Count + Sort */
.catalog-toolbar__count {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.catalog-sort-wrap select {
  appearance: none;
  background: transparent;
  border: 1px solid var(--line);
  padding: 0.45rem 2rem 0.45rem 0.75rem;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ink);
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpolyline points='1 1 5 5 9 1'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.6rem center;
}

/* ── 5. Grid Layout ───────────────────────────────────────────── */
.catalog-grid-wrapper {
  padding: var(--space-3xl) 0 var(--space-4xl);
}

/* Override default WooCommerce grid inside catalog-page */
.catalog-page ul.products {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3vw 2.5vw;
  margin: 0;
  padding: 0;
  list-style: none;
}

.catalog-page ul.products::before,
.catalog-page ul.products::after { display: none; }

.catalog-page ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  clear: none !important;
}

@media (min-width: 1024px) {
  .catalog-page ul.products {
    grid-template-columns: repeat(3, 1fr);
    gap: 4vw 3vw;
  }

  /* Asymmetric editorial rhythm — 1st + every 7th spans 2×2 */
  .catalog-page ul.products li.pcard:nth-child(7n+1) {
    grid-column: span 2;
    grid-row: span 2;
  }

  .catalog-page ul.products li.pcard:nth-child(7n+1) .pcard__media {
    aspect-ratio: 0.88;
  }

  .catalog-page ul.products li.pcard:nth-child(7n+1) .pcard__title {
    font-size: clamp(1.3rem, 2vw, 1.9rem);
  }
}

/* Wide view (2 columns) */
.catalog-page.view-wide ul.products {
  grid-template-columns: repeat(2, 1fr) !important;
}

.catalog-page.view-wide ul.products li.pcard:nth-child(7n+1) {
  grid-column: span 1 !important;
  grid-row: span 1 !important;
}

/* ── 6. Product Card (.pcard) ─────────────────────────────────── */
.pcard {
  display: flex;
  flex-direction: column;
  position: relative;
}

/* Media */
.pcard__media {
  position: relative;
  aspect-ratio: 0.82;
  overflow: hidden;
  background: var(--canvas-strong);
}

.pcard__image-link {
  display: block;
  width: 100%;
  height: 100%;
}

/* Images */
.pcard__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.9s cubic-bezier(0.16,1,0.3,1), opacity 0.5s ease;
  will-change: transform;
}

.pcard__image--main {
  z-index: 1;
}

.pcard__image--hover {
  z-index: 2;
  opacity: 0;
  transform: scale(1.04);
}

.pcard:hover .pcard__image--main {
  transform: scale(1.04);
}

.pcard:hover .pcard__image--hover {
  opacity: 1;
  transform: scale(1);
}

/* has-js reveal */
.has-js .pcard__image--main {
  transform: scale(0.96);
  opacity: 0;
}

.has-js .pcard.is-in-view .pcard__image--main {
  transform: scale(1);
  opacity: 1;
}

/* Badges */
.pcard__badges {
  position: absolute;
  top: 0.8rem;
  left: 0.8rem;
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.pcard__badge {
  display: inline-block;
  padding: 0.25rem 0.55rem;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1;
}

.pcard__badge--sale {
  background: #000;
  color: #fff;
}

.pcard__badge--new {
  background: #2a2a2a;
  color: #d4b896;
}

.pcard__badge--limited {
  background: #8b2e1a;
  color: #fff;
}

/* Wishlist */
.pcard__wishlist {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 10;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.9);
  border: none;
  cursor: pointer;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.3s ease, transform 0.3s ease, background 0.2s ease;
  backdrop-filter: blur(4px);
}

.pcard:hover .pcard__wishlist {
  opacity: 1;
  transform: translateY(0);
}

.pcard__wishlist.is-active,
.pcard__wishlist[aria-pressed="true"] {
  opacity: 1;
  transform: translateY(0);
  background: #fff;
}

.pcard__wishlist-icon--filled {
  display: none;
  color: #c0392b;
}

.pcard__wishlist[aria-pressed="true"] .pcard__wishlist-icon--empty { display: none; }
.pcard__wishlist[aria-pressed="true"] .pcard__wishlist-icon--filled { display: block; }

/* Quick-Add */
.pcard__quick-add {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 10;
  transform: translateY(100%);
  transition: transform 0.42s cubic-bezier(0.16,1,0.3,1);
}

.pcard:hover .pcard__quick-add {
  transform: translateY(0);
}

.pcard__quick-add-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
  padding: 0.85rem 1rem;
  background: rgba(0,0,0,0.88);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
  transition: background 0.2s ease;
  backdrop-filter: blur(4px);
  text-align: center;
}

.pcard__quick-add-btn:hover { background: #000; }

.pcard__quick-add-btn.is-loading {
  pointer-events: none;
  opacity: 0.7;
}

.pcard__quick-add-btn--view {
  background: rgba(0,0,0,0.75);
}

/* Body */
.pcard__body {
  padding: 0.9rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  flex: 1;
}

.pcard__eyebrow {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.pcard__title {
  font-family: var(--display);
  font-size: clamp(0.85rem, 1.1vw, 1rem);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.25;
  margin: 0;
}

.pcard__title-link {
  transition: opacity 0.3s ease;
}

.pcard__title-link:hover { opacity: 0.6; }

.pcard__price {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink-muted);
}

.pcard__price del {
  opacity: 0.45;
  margin-right: 0.35rem;
}

.pcard__price ins {
  text-decoration: none;
  color: #8b2e1a;
  font-weight: 600;
}

/* ── 7. Filter Drawer ─────────────────────────────────────────── */
.catalog-drawer {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  justify-content: flex-end;
  visibility: hidden;
  pointer-events: none;
}

.catalog-drawer[aria-hidden="false"] {
  visibility: visible;
  pointer-events: auto;
}

.catalog-drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.42);
  opacity: 0;
  transition: opacity 0.5s cubic-bezier(0.165,0.84,0.44,1);
  backdrop-filter: blur(3px);
}

.catalog-drawer[aria-hidden="false"] .catalog-drawer__overlay { opacity: 1; }

.catalog-drawer__panel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 400px;
  height: 100%;
  background: var(--canvas);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.55s cubic-bezier(0.165,0.84,0.44,1);
}

.catalog-drawer[aria-hidden="false"] .catalog-drawer__panel { transform: translateX(0); }

.catalog-drawer__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem;
  border-bottom: 1px solid var(--line);
}

.catalog-drawer__title {
  font-family: var(--display);
  font-size: 1.1rem;
  font-weight: 300;
  letter-spacing: 0.05em;
  margin: 0;
}

.catalog-drawer__close {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ink-muted);
  transition: color 0.2s ease;
}

.catalog-drawer__close:hover { color: var(--ink); }

.catalog-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: 1.5rem;
}

.catalog-drawer__section { margin-bottom: 2rem; }

.catalog-drawer__section-title {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin: 0 0 0.85rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--line);
}

.catalog-drawer__section .woocommerce-ordering select,
.catalog-drawer__section select {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--line);
  background: transparent;
  font-size: 0.85rem;
  color: var(--ink);
  cursor: pointer;
  appearance: none;
}

.catalog-drawer__empty {
  color: var(--ink-muted);
  font-size: 0.85rem;
  font-style: italic;
}

.catalog-drawer__footer {
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--line);
}

.catalog-btn-apply {
  width: 100%;
  padding: 1rem;
  background: var(--ink);
  color: #fff;
  border: none;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.catalog-btn-apply:hover { opacity: 0.8; }

/* ── 8. Empty State ───────────────────────────────────────────── */
.catalog-empty {
  text-align: center;
  padding: var(--space-4xl) 0;
}

.catalog-empty__symbol {
  font-size: 4rem;
  opacity: 0.15;
  margin: 0 0 1rem;
  font-family: var(--display);
}

.catalog-empty__text {
  font-size: 1rem;
  color: var(--ink-muted);
  margin: 0 0 1.5rem;
}

.catalog-empty__cta {
  display: inline-block;
  padding: 0.8rem 2rem;
  border: 1px solid var(--ink);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: background 0.3s ease, color 0.3s ease;
}

.catalog-empty__cta:hover {
  background: var(--ink);
  color: #fff;
}

/* ── 9. Quick-Add feedback ────────────────────────────────────── */
.pcard.is-added .pcard__quick-add-btn {
  background: #1a6b35;
  pointer-events: none;
}

/* ── 10. Responsive ───────────────────────────────────────────── */
@media (max-width: 767px) {
  .catalog-header { min-height: 40vw; padding-top: calc(var(--header-offset) + 1.5rem); }
  .catalog-trust-sep { display: none; }
  .catalog-trust-strip__inner { justify-content: flex-start; gap: 0.75rem 1.25rem; }
  .catalog-toolbar__count { display: none; }
  .catalog-page ul.products { grid-template-columns: repeat(2, 1fr); gap: 2.5vw; }
  .catalog-page ul.products li.pcard:nth-child(7n+1) {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .catalog-page ul.products { grid-template-columns: repeat(2, 1fr); gap: 3vw 2.5vw; }
}

/* ═══════════════════════════════════════════════════════════════
   PDP PREMIUM OVERRIDES — 5 critical refinements
   ═══════════════════════════════════════════════════════════════ */

/* ── 1. SALE BADGE — frosted typographic pill, not a cheap label ── */
.elite-pdp__badge--sale {
  /* Solid charcoal — always visible on light fashion product photos */
  background: #1a1a1a;
  color: #f5f0ea;
  border: none;
  /* Premium typography */
  font-family: var(--font-heading);
  font-size: 0.6rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.35em;
  text-indent: 0.35em;
  /* Layout */
  padding: 6px 14px;
  position: absolute;
  top: var(--space-lg);
  left: var(--space-lg);
  z-index: 10;
  border-radius: 0;
  line-height: 1;
}

/* ── 2. LUXURY PRICE DISPLAY ────────────────────────────────────── */
.elite-pdp__price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.6rem 0.8rem;
  margin-bottom: var(--space-lg);
  line-height: 1;
  /* Remove any WooCommerce default margin on the wrappers */
}

/* Sale price (ins) — primary, slightly warm, no underline */
.elite-pdp__price ins,
.elite-pdp__price ins .woocommerce-Price-amount {
  text-decoration: none;
  font-size: 1.375rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: #7a1c1c; /* Deep restrained crimson — prestigious, not garish */
}

/* Original price (del) — smaller, muted, clean strikethrough */
.elite-pdp__price del,
.elite-pdp__price del .woocommerce-Price-amount {
  font-size: 0.9375rem;
  font-weight: 300;
  letter-spacing: 0.03em;
  color: var(--color-neutral-400);
  text-decoration: line-through;
  text-decoration-color: var(--color-neutral-300);
  text-decoration-thickness: 1px;
}

/* Regular (non-sale) price */
.elite-pdp__price > .woocommerce-Price-amount {
  font-size: 1.375rem;
  font-weight: 300;
  letter-spacing: 0.04em;
  color: var(--color-primary);
}

/* ── 3. FIX GRID OVERFLOW — 55%+45%+gap overflows viewport ─────── */
@media (min-width: 1024px) {
  .elite-pdp__layout {
    /* Use fr so gap is subtracted from available space, not added on top */
    grid-template-columns: 55fr 45fr;
  }
}

/* ── 4. HIDE NATIVE WC VARIATIONS SELECT ────────────────────────── */
/* Custom purchase-option swatches (initCustomPurchaseOptions) handle the
   UI; the native <select> elements stay in DOM for WooCommerce JS but are
   visually removed entirely.                                           */
.elite-pdp__commerce .variations,
.elite-pdp__commerce table.variations {
  display: none !important;
}

/* Keep the price-update area and ATC button fully visible */
.elite-pdp__commerce .single_variation_wrap {
  display: block;
}

.elite-pdp__commerce .woocommerce-variation.single_variation {
  display: block;
}

/* Purchase option swatches — base styles if not already provided */
.elite-pdp__commerce [data-purchase-options] {
  margin-bottom: var(--space-xl);
}

/* ── 5. FABRIC & DETAILS ACCORDIONS ─────────────────────────────── */
.elite-pdp__details {
  margin-top: var(--space-2xl);
  padding-top: var(--space-sm);
  border-top: 1px solid var(--color-neutral-150, #e4e0dc);
}

/* Override gap on .product-accordions inside PDP — tight list, no floating gaps */
.elite-pdp__details .product-accordions {
  display: block;
  margin-top: 0;
}

/* Each accordion row */
.elite-pdp__details .product-accordion {
  border-top: none;
  border-bottom: 1px solid var(--color-neutral-150, #e4e0dc);
  background: transparent;
}

/* Remove redundant bottom border on last item (parent already handles top line) */
.elite-pdp__details .product-accordion:last-child {
  border-bottom: 1px solid var(--color-neutral-150, #e4e0dc);
}

/* Toggle button */
.elite-pdp__details .product-accordion__toggle {
  padding: var(--space-lg) 0;
  font-size: 0.6875rem;
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-primary);
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
}

/* ═══════════════════════════════════════════════════════════════════
   LUXURY ELEVATION LAYER — YSL / Prada reference standard
   
   Creative North Star:
   "Every piece is a quiet declaration — luxury for the woman who
    knows herself."
   
   IS:    austere · deliberate · intimate
   IS NOT: loud · promotional · generic
   ═══════════════════════════════════════════════════════════════════ */

/* ── TASK 10: Cormorant Garamond as display voice ────────────────
   Already loaded in setup.php — just unused. Cormorant's high
   contrast, ink-trap details, and classical proportions are the
   exact opposite of Manrope's friendly roundness. One token change,
   maximum editorial impact.                                          */
:root {
  --display: "Cormorant Garamond", "Cormorant", Georgia, serif;
  --font-heading: "Cormorant Garamond", "Cormorant", Georgia, serif;
}

/* ── TASK 13: Warm canvas — pure #fff is clinical ────────────────
   Prada, Celine, The Row all use a near-imperceptible warm cream.
   #fdfcfa is ~2% warm — product photos still look clean on it but
   the page no longer reads as a sterile white box.                   */
:root {
  --canvas: #fdfcfa;
  --color-neutral-50: #fdfcfa;
}

body {
  background-color: #fdfcfa;
}

/* ── TASK 11: Global typography refinements ──────────────────────
   YSL principle: headings serif + large, labels sans + tiny + tracked.
   The juxtaposition of extremes IS the luxury signal.               */

/* Display headings — Cormorant, light, generous leading */
h1, h2, h3,
.catalog-header__title,
.elite-pdp__title,
.elite-macro-link__text {
  font-family: var(--font-heading);
  font-weight: 300;
  font-style: normal;
  letter-spacing: 0.02em;
}

/* The catalog title: pure editorial power */
.catalog-header__title {
  font-size: clamp(3.5rem, 8vw, 7rem);
  font-weight: 300;
  line-height: 0.95;
  letter-spacing: -0.01em;
  text-transform: uppercase;
}

/* PDP title — larger, more commanding */
.elite-pdp__title {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-style: italic; /* Cormorant italic = pure luxury */
}

/* All uppercase micro-labels — the signature tracking */
.pcard__badge,
.pcard__eyebrow,
.catalog-trust-item span,
.catalog-toolbar__count,
.elite-pdp__breadcrumbs,
.elite-pdp__meta,
.elite-trust-item span,
.catalog-subcat-pill,
.catalog-drawer__section-title,
.product-accordion__toggle,
.elite-pdp__details .product-accordion__toggle,
.elite-pdp__urgency,
.diva-icon-btn,
.menu-toggle {
  letter-spacing: 0.25em;
  text-indent: 0.25em; /* compensate last character gap */
}

/* Catalog header subtitle */
.catalog-header__desc {
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 300;
  opacity: 0.7;
  text-indent: 0.18em;
}

/* Catalog header count */
.catalog-header__count {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2.5rem);
  font-weight: 300;
}

/* Product card title — Cormorant, gentle weight */
.pcard__title {
  font-family: var(--font-heading);
  font-size: clamp(0.95rem, 1.2vw, 1.1rem);
  font-weight: 400;
  font-style: italic;
  letter-spacing: 0.01em;
  line-height: 1.3;
}

/* Menu overlay macro-links — maximum editorial scale */
.elite-macro-link__text {
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 300;
  font-style: italic;
  letter-spacing: 0.02em;
  line-height: 1.05;
}

/* ── TASK 12: Remove quick-add — luxury brands don't sell on grids ─
   YSL, Prada, The Row: no add-to-cart on catalog. You explore.
   Force the product page click — this raises engagement AND AOV.    */
.pcard__quick-add {
  display: none !important;
}

/* Restore hover cursor as invite instead */
.pcard__media {
  cursor: pointer;
}

/* More breathing room under the card media for the title */
.pcard__body {
  padding: var(--space-md) 0 var(--space-xl);
}

/* ── TASK 13: Generous whitespace ────────────────────────────────
   Luxury is space. Remove density, add air.                         */

/* Catalog grid: more vertical gap between rows */
.catalog-page ul.products {
  gap: clamp(2.5rem, 5vw, 4rem) clamp(0.75rem, 2vw, 1.25rem);
}

/* Catalog header: taller, more cinematic */
.catalog-header {
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: var(--space-3xl);
}

/* Trust strip — remove icons, pure text only */
.catalog-trust-item svg {
  display: none;
}

.catalog-trust-item {
  font-size: 0.65rem;
  letter-spacing: 0.28em;
  text-indent: 0.28em;
  text-transform: uppercase;
  font-weight: 400;
  color: var(--color-neutral-600);
}

.catalog-trust-strip {
  padding: var(--space-lg) 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

/* ── TASK 14: Header refinements ────────────────────────────────
   Thin, invisible on scroll, typography matches system.             */
.site-header {
  padding: 1.5rem 2.5rem;
}

/* "Menu" label — tracked uppercase */
.menu-toggle span {
  font-size: 0.65rem;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  text-transform: uppercase;
  font-weight: 400;
}

/* Nav action icons — smaller, more refined */
.diva-icon-btn svg {
  width: 20px;
  height: 20px;
  stroke-width: 1.2;
}

.diva-cart-trigger svg {
  width: 20px;
  height: 20px;
  stroke-width: 1.2;
}

/* Scrolled header: warm, not clinical white */
.site-header.is-scrolled {
  background: rgba(253, 252, 250, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* ── TASK 14: PDP luxury refinements ────────────────────────────  */

/* Breadcrumbs — more discreet */
.elite-pdp__breadcrumbs {
  font-size: 0.6rem;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  opacity: 0.5;
  margin-bottom: var(--space-2xl);
}

/* Price — refined, slightly larger, more space below title */
.elite-pdp__header {
  margin-bottom: var(--space-2xl);
}

.elite-pdp__price {
  font-size: 1.1rem;
  margin-top: var(--space-md);
  letter-spacing: 0.06em;
}

/* Trust badges — text only, no icon, maximum elegance */
.elite-pdp__trust {
  background: none;
  padding: 0;
  border-top: 1px solid var(--line);
  padding-top: var(--space-lg);
  margin-bottom: var(--space-xl);
  gap: var(--space-xs);
}

.elite-trust-item {
  font-size: 0.6rem;
  letter-spacing: 0.25em;
  text-indent: 0.25em;
  text-transform: uppercase;
  color: var(--color-neutral-500);
  font-weight: 400;
}

/* Commerce section — more breathable */
.elite-pdp__commerce {
  padding-top: var(--space-2xl);
  margin-bottom: var(--space-xl);
}

/* Add to cart button — full-width, thin, tracked */
.elite-pdp__commerce .button.alt,
.elite-pdp__commerce button[type="submit"] {
  width: 100%;
  background: var(--ink);
  color: var(--canvas);
  border: none;
  padding: var(--space-md) var(--space-xl);
  font-family: var(--font-body);
  font-size: 0.65rem;
  font-weight: 400;
  letter-spacing: 0.35em;
  text-indent: 0.35em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.4s var(--ease-expo), color 0.4s var(--ease-expo);
  border-radius: 0;
}

.elite-pdp__commerce .button.alt:hover,
.elite-pdp__commerce button[type="submit"]:hover {
  background: var(--color-neutral-700);
}

/* Product card price — more discreet, let the image sell */
.pcard__price {
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: var(--color-neutral-600);
  font-weight: 300;
}

/* Catalog subcategory pills — more editorial */
.catalog-subcat-pill {
  font-size: 0.62rem;
  letter-spacing: 0.25em;
  text-indent: 0.25em;
  text-transform: uppercase;
  font-weight: 400;
  padding: 0.4rem 1.25rem;
}

/* Toolbar — cleaner */
.catalog-filter-btn span,
.catalog-filter-btn {
  font-size: 0.65rem;
  letter-spacing: 0.25em;
  text-indent: 0.25em;
  text-transform: uppercase;
  font-weight: 400;
}

/* Urgency text on PDP */
.elite-pdp__urgency {
  font-size: 0.6rem;
  letter-spacing: 0.22em;
  text-indent: 0.22em;
  text-transform: uppercase;
  color: var(--color-error);
  font-weight: 400;
}

/* ── Sale badge on catalog cards — refined ───────────────────────
   Keep solid but make it Cormorant italic for elegance             */
.pcard__badge--sale {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: lowercase;
  background: var(--ink);
  color: var(--canvas);
  padding: 3px 8px;
}

/* ── "New" badge — subtle gold-on-dark ───────────────────────────  */
.pcard__badge--new {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.1em;
}

/* ── Scroll cue on catalog header ────────────────────────────────  */
.catalog-header__scroll-cue svg {
  stroke-width: 0.8;
  opacity: 0.4;
}

/* ── Gallery image refinements for PDP ───────────────────────────
   First image: taller, more editorial                               */
.elite-pdp__gallery-item:first-child {
  aspect-ratio: 3/4;
}

.elite-pdp__gallery-item img {
  object-position: center 20%; /* fashion: show face/neckline, not waist */
}


/* ═══════════════════════════════════════════════════════════════════
   PRADA PDP REFERENCE — targeted corrections
   Reference: Prada product page, June 2026
   ═══════════════════════════════════════════════════════════════════ */

/* ── Product title: mixed case, NO uppercase ─────────────────────
   Prada: "Cotton bouclé crop top" — not "COTTON BOUCLÉ CROP TOP"
   Uppercase shouts. A luxury boutique whispers.                      */
.elite-pdp__title {
  text-transform: none;    /* override the earlier uppercase rule */
  font-style: italic;      /* Cormorant italic = editorial serif authority */
  font-size: clamp(1.5rem, 2.8vw, 2.25rem);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.15;
}

/* ── Gallery: warm neutral field behind product ──────────────────
   Prada uses #f5f4f2 approx — the product photo floats, not sits
   on a clinical white void.                                          */
.elite-pdp__gallery {
  background: #f2f0ed;
}

.elite-pdp__gallery-item {
  background: #f2f0ed;
}

/* Gallery item: Prada's left dots = scrollable thumbnails.
   Our vertically stacked layout: ensure clean uniform sizing.       */
.elite-pdp__gallery-item img {
  background: #f2f0ed;
  object-fit: contain;          /* show full garment, not cropped */
  object-position: center top;
  padding: 2rem;                /* breathing room around product */
}

.elite-pdp__gallery-item:first-child img {
  padding: 3rem 2.5rem;
}

/* ── Accordion sections: plain, like Prada's "Product details" ───
   Remove the icon pseudo-element styling in PDP context;
   just bare text toggle.                                            */
.elite-pdp__details .product-accordion__toggle {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-indent: 0.12em;
  text-transform: none;         /* mixed case like Prada */
  padding: var(--space-md) 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  opacity: 1;
}

.elite-pdp__details .product-accordion__toggle:hover {
  opacity: 0.5;
}

/* Remove the + icon — use a thin underline on hover instead */
.elite-pdp__details .product-accordion__icon {
  width: 10px;
  height: 10px;
}

/* ── Eyebrow label above title ───────────────────────────────────
   Prada: "ONLINE EXCLUSIVE" in tiny tracked caps above the name.
   We use the category label for this.                               */
.elite-pdp__breadcrumbs {
  font-size: 0.58rem;
  letter-spacing: 0.35em;
  text-indent: 0.35em;
  text-transform: uppercase;
  font-weight: 400;
  color: var(--color-neutral-500);
  margin-bottom: var(--space-sm);
  opacity: 1;
}

/* ── Price: clean, understated — Prada just shows "€ 1.350" ─────  */
.elite-pdp__price {
  font-size: 1rem;
  font-weight: 300;
  letter-spacing: 0.04em;
  color: var(--ink);
  margin-top: var(--space-sm);
  margin-bottom: var(--space-xl);
}

/* ── Wishlist button: top-right of image, like Prada ─────────────  */
.elite-pdp__gallery {
  position: relative;
}


/* ═══════════════════════════════════════════════════════════════════
   PRADA CATALOG REFERENCE — targeted catalog corrections
   Reference: prada.com catalog, June 2026
   ═══════════════════════════════════════════════════════════════════ */

/* ── 1. PRODUCT IMAGE BACKGROUND + CONTAIN ───────────────────────
   THE single most transformative change. Prada: every product on
   the same warm neutral field. No more white-on-white, no cropping.
   The garment is always fully visible. Editorial consistency.        */
.pcard__media {
  background: #f0eeeb;  /* warm neutral — matches product photo studios */
  overflow: hidden;
}

.pcard__image {
  object-fit: contain;
  object-position: center center;
  padding: 1rem;        /* breathing room — garment doesn't touch edges */
}

/* First (main) image and hover image both get consistent treatment */
.pcard__image--main,
.pcard__image--hover {
  object-fit: contain;
  object-position: center center;
  padding: 1rem;
  background: #f0eeeb;
}

/* Asymmetric featured card: same bg, slightly less padding for impact */
.catalog-page ul.products li.pcard:nth-child(7n+1) .pcard__image {
  padding: 1.5rem;
}

/* ── 2. PRODUCT TITLE: mixed case ────────────────────────────────
   Prada: "Embroidered poplin shirt" — normal case, intimate.
   Remove uppercase from whatever the earlier theme rules set.        */
.pcard__title {
  font-family: var(--font-heading);
  font-size: 0.9rem;
  font-weight: 400;
  font-style: italic;
  text-transform: none;  /* override any uppercase rules */
  letter-spacing: 0.01em;
  line-height: 1.3;
  color: var(--ink);
  margin: 0;
}

.pcard__title-link {
  color: var(--ink);
}

.pcard__title-link:hover {
  opacity: 0.6;
}

/* ── 3. PRICE: clean, same size as Prada ────────────────────────  */
.pcard__price {
  font-size: 0.82rem;
  font-weight: 300;
  color: var(--ink-muted);
  letter-spacing: 0.02em;
  margin-top: 0.25rem;
}

/* ── 4. SUBCATEGORY NAV: text + underline like Prada ────────────
   Replace pills with bare text links. Active = hairline underline.  */
.catalog-subcats {
  background: var(--canvas);
  border-bottom: 1px solid var(--line);
}

.catalog-subcats__scroll {
  display: flex;
  gap: 0;
  padding: 0 var(--space-2xl);
}

.catalog-subcat-pill {
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  text-transform: none;   /* mixed case like Prada */
  color: var(--ink-muted);
  padding: 0.9rem 1rem;
  border-bottom: 2px solid transparent !important;
  transition: color 0.2s, border-color 0.2s;
}

.catalog-subcat-pill:hover {
  color: var(--ink);
  border-bottom-color: var(--ink) !important;
  background: none !important;
}

.catalog-subcat-pill.is-active {
  color: var(--ink);
  border-bottom-color: var(--ink) !important;
  background: none !important;
  font-weight: 400;
}

.catalog-subcat-pill__count {
  font-size: 0.6rem;
  opacity: 0.5;
  margin-left: 0.3rem;
}

/* ── 5. TOOLBAR: clean like Prada "60 PRODUCTS · FILTERS · SORT" ─  */
.catalog-toolbar {
  border-bottom: 1px solid var(--line);
  background: var(--canvas);
}

.catalog-toolbar__count {
  font-size: 0.65rem;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  text-transform: uppercase;
}

/* ── 6. CATALOG GRID: 4 equal columns on desktop like Prada ─────
   Keep asymmetric feature card but tighten columns                  */
@media (min-width: 1200px) {
  .catalog-page ul.products {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* ── 7. CARD BODY: Prada-style — title left, price left, spare ──  */
.pcard__body {
  padding: 0.75rem 0 1.5rem;
  background: var(--canvas);
}

.pcard__eyebrow {
  font-size: 0.58rem;
  letter-spacing: 0.22em;
  text-indent: 0.22em;
  text-transform: uppercase;
  color: var(--color-neutral-500);
  margin-bottom: 0.2rem;
  display: block;
}

/* ── 8. BADGES: Prada has NONE — ours are minimal ───────────────
   Keep them but make them even smaller and more discreet.          */
.pcard__badges {
  top: 0.6rem;
  left: 0.6rem;
}

.pcard__badge {
  font-size: 0.55rem;
  padding: 2px 7px;
  letter-spacing: 0.18em;
  font-weight: 400;
}

/* ── 9. CATALOG HEADER: No giant hero on browse pages like Prada ─────────────────────────────────────────── */

/* ═══════════════════════════════════════════════════════════════════
   PRADA TYPE SCALE + CIRCULAR SWATCHES
   
   Observation: title was 2.25rem, price 1rem — ratio 2.25×.
   Prada's title "Cotton bouclé crop top" and price "€ 1.350"
   sit at roughly 1.5rem / 1.1rem — ratio ~1.35×.
   The hierarchy should whisper, not shout.
   ═══════════════════════════════════════════════════════════════════ */

/* ── PDP TITLE: intimate, not monumental ─────────────────────── */
.elite-pdp__title {
  font-size: clamp(1.1rem, 1.8vw, 1.5rem);  /* was 2.25rem max — halved */
  font-weight: 400;
  font-style: italic;
  text-transform: none;
  letter-spacing: 0.01em;
  line-height: 1.2;
  color: var(--ink);
}

/* ── PDP PRICE: proportional to title ────────────────────────── */
.elite-pdp__price ins,
.elite-pdp__price ins .woocommerce-Price-amount {
  font-size: 1.1rem;      /* was 1.375rem — closer to title scale */
  font-weight: 400;
  letter-spacing: 0.04em;
  color: #7a1c1c;
  text-decoration: none;
}

.elite-pdp__price del,
.elite-pdp__price del .woocommerce-Price-amount {
  font-size: 0.85rem;     /* slightly smaller, muted */
  font-weight: 300;
  color: var(--color-neutral-400);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}

.elite-pdp__price > .woocommerce-Price-amount {
  font-size: 1.1rem;
  font-weight: 300;
  color: var(--ink);
}

/* ── CIRCULAR COLOR SWATCHES — Prada style ────────────────────
   Override the !important square border-radius set earlier.
   Double-specificity selector to win the cascade.              */
.elite-pdp__commerce .product-buybox__purchase-option--color,
.product-buybox__purchase-option--color {
  border-radius: 50% !important;  /* circle */
  width: 1.75rem !important;
  min-width: 1.75rem !important;
  height: 1.75rem !important;
  min-height: 1.75rem !important;
  max-width: 1.75rem !important;
  max-height: 1.75rem !important;
  padding: 0 !important;
  border: 1.5px solid var(--line) !important;
}

.elite-pdp__commerce .product-buybox__purchase-option--color.is-selected,
.product-buybox__purchase-option--color.is-selected {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
  border-color: transparent !important;
}

/* ── SIZE SWATCHES: keep square but slim border ───────────────── */
.elite-pdp__commerce .product-buybox__purchase-option:not(.product-buybox__purchase-option--color) {
  border-radius: 0 !important;
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  font-weight: 400;
  min-width: 2.5rem;
  height: 2.5rem !important;
  min-height: 2.5rem !important;
  border: 1px solid var(--line) !important;
}

.elite-pdp__commerce .product-buybox__purchase-option:not(.product-buybox__purchase-option--color).is-selected {
  background: var(--ink) !important;
  color: var(--canvas) !important;
  border-color: var(--ink) !important;
}

/* ── SWATCH GROUP LABELS: "Color · Petal Pink" style ─────────── */
.product-buybox__group-label,
.product-buybox__purchase-group > label,
[data-purchase-options] .label,
.elite-pdp__commerce label {
  font-size: 0.6rem;
  letter-spacing: 0.25em;
  text-indent: 0.25em;
  text-transform: uppercase;
  font-weight: 400;
  color: var(--color-neutral-500);
  margin-bottom: 0.5rem;
  display: block;
}


/* ── FINAL SPACING OVERRIDE (beats all earlier .elite-pdp__commerce rules) */
.elite-pdp__commerce {
  padding-top: 1.25rem;
  margin-bottom: 0.75rem;
}

/* ── HIDE QUANTITY FIELD — luxury UX, no qty picker */
.woocommerce-variation-add-to-cart .quantity,
.woocommerce-variation-add-to-cart .input-text.qty,
.elite-pdp__commerce .quantity,
.elite-pdp__commerce .input-text.qty {
  display: none !important;
}

/* ── PRICE MARGIN — final override */
.elite-pdp__price {
  margin-bottom: 0.75rem !important;
  margin-top: 0.25rem !important;
}

/* ── SWATCH CONTAINER SPACING */
.elite-pdp__commerce .product-buybox__purchase {
  margin-top: 0 !important;
  padding-top: 0.5rem !important;
  border-top: none !important;
  border-bottom: none !important;
}

/* ── ATC BUTTON WRAPPER */
.elite-pdp__commerce .single_variation_wrap {
  margin-top: 0.75rem !important;
}

/* ── CATALOG ARCHIVE HERO */
.archive-hero {
  padding-top: 2.5rem !important;
  padding-bottom: 1.5rem !important;
}
.shop-grid-section {
  padding-top: 1.5rem !important;
}

/* =================================================================
   MOBILE PDP — 767px and below
   ================================================================= */
@media (max-width: 767px) {

  /* Swatch: lock to exact 28px circle */
  .elite-pdp__commerce .product-buybox__purchase-option--color,
  .product-buybox__purchase-option--color {
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    border-radius: 50% !important;
    padding: 0 !important;
  }

  /* Size button on mobile */
  .elite-pdp__commerce .product-buybox__purchase-option:not(.product-buybox__purchase-option--color) {
    min-width: 2.25rem !important;
    height: 2.25rem !important;
    min-height: 2.25rem !important;
    font-size: 0.6rem !important;
    padding-inline: 0.6rem !important;
  }

  /* Swatch container */
  .elite-pdp__commerce .product-buybox__purchase {
    gap: 0.5rem !important;
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }

  /* Commerce section */
  .elite-pdp__commerce {
    padding-top: 0.75rem !important;
    margin-bottom: 0.5rem !important;
  }

  /* Info panel: reduce 40px side padding on mobile */
  .elite-pdp__info { padding: 1rem !important; }

  /* Header bottom gap before commerce */
  .elite-pdp__header { margin-bottom: 0.25rem !important; }

  /* Urgency text: remove default p margin */
  .elite-pdp__urgency { margin: 0 0 0.25rem !important; }

  /* Price */
  .elite-pdp__price { margin-bottom: 0.5rem !important; }

  /* Breadcrumbs */
  .elite-pdp__breadcrumbs { margin-bottom: 0.5rem !important; }

  /* Trust + details */
  .elite-pdp__trust { padding-top: 0.5rem !important; margin-bottom: 0.5rem !important; }
  .elite-pdp__details { margin-top: 1rem !important; }

  /* ATC wrapper */
  .elite-pdp__commerce .single_variation_wrap { margin-top: 0.5rem !important; }
}


/* ═══════════════════════════════════════════════════════════════════
   PRADA PASS 2 — hierarchy reset (2026-06-11)
   Rule: tracking/uppercase survives ONLY on eyebrow + ATC.
   Everything else: sentence case, zero tracking, ink/neutral.
   ═══════════════════════════════════════════════════════════════════ */

/* 1. Breadcrumbs: gone — Prada has none on PDP. Eyebrow (category) replaces it. */
.elite-pdp__breadcrumbs { display: none !important; }

.elite-pdp__eyebrow {
  font-family: var(--font-body) !important;
  font-size: 0.62rem !important;
  letter-spacing: 0.22em !important;
  text-indent: 0.22em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  color: var(--color-neutral-500) !important;
  margin: 0 0 0.75rem !important;
}

/* 2. Title: large quiet authority — no italic, no caps, no tracking */
.elite-pdp__title {
  font-style: normal !important;
  text-transform: none !important;
  font-size: clamp(1.5rem, 2.4vw, 2rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.15 !important;
  color: var(--ink) !important;
}

/* 3. Price: black. Red reads bargain-bin, not luxury. */
.elite-pdp__price ins,
.elite-pdp__price ins .woocommerce-Price-amount,
.elite-pdp__price > .woocommerce-Price-amount {
  color: var(--ink) !important;
  font-size: 1.05rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  text-decoration: none !important;
}
.elite-pdp__price del,
.elite-pdp__price del .woocommerce-Price-amount {
  color: var(--color-neutral-400) !important;
  font-size: 0.85rem !important;
  font-weight: 300 !important;
}

/* Urgency: informational, not alarm */
.elite-pdp__urgency {
  color: var(--color-neutral-500) !important;
  font-size: 0.75rem !important;
  letter-spacing: 0 !important;
  text-indent: 0 !important;
  text-transform: none !important;
}

/* 4. Option labels: "Χρώμα" / "Μέγεθος" — sentence case, ink */
.product-buybox__purchase-label {
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-indent: 0 !important;
  text-transform: none !important;
  color: var(--ink) !important;
}
.product-buybox__purchase-hint { display: none !important; }

/* 5. Size chips: outline, never filled black */
.elite-pdp__commerce .product-buybox__purchase-option:not(.product-buybox__purchase-option--color) {
  background: transparent !important;
  color: var(--ink) !important;
  border: 1px solid var(--line) !important;
  letter-spacing: 0.04em !important;
  font-weight: 400 !important;
}
.elite-pdp__commerce .product-buybox__purchase-option:not(.product-buybox__purchase-option--color).is-selected {
  background: transparent !important;
  color: var(--ink) !important;
  border: 1px solid var(--ink) !important;
}
@media (min-width: 768px) {
  .elite-pdp__commerce .product-buybox__purchase-option:not(.product-buybox__purchase-option--color) {
    min-width: 2.75rem !important;
    height: 2.75rem !important;
    min-height: 2.75rem !important;
    font-size: 0.72rem !important;
  }
}

/* 6. Dividers: whitespace does the separating */
.elite-pdp__commerce { border-top: none !important; }
.elite-pdp__commerce .product-buybox__purchase,
.product-buybox__purchase {
  border-top: none !important;
  border-bottom: none !important;
}
.elite-pdp__trust { border-top: none !important; }

/* 7. Trust: plain sentence case */
.elite-trust-item,
.elite-trust-item span {
  font-size: 0.8rem !important;
  letter-spacing: 0 !important;
  text-indent: 0 !important;
  text-transform: none !important;
  color: var(--color-neutral-600) !important;
  font-weight: 400 !important;
}

/* Meta: quiet */
.elite-pdp__meta {
  font-size: 0.7rem !important;
  letter-spacing: 0 !important;
  text-indent: 0 !important;
  text-transform: none !important;
}

/* 8. Vertical rhythm (desktop only — mobile spacing already tuned) */
@media (min-width: 1024px) {
  .elite-pdp__info-sticky { padding-top: clamp(3rem, 9vh, 6rem) !important; }
  .elite-pdp__header { margin-bottom: 1.75rem !important; }
  .elite-pdp__commerce { padding-top: 0 !important; }
  .elite-pdp__trust { padding-top: 0 !important; }
  .product-buybox__purchase-group { gap: 0.6rem !important; }
}

/* ATC: the only loud element on the page */
.elite-pdp__commerce .button.alt,
.elite-pdp__commerce button[type="submit"] {
  padding-top: 1.05rem !important;
  padding-bottom: 1.05rem !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.16em !important;
  text-indent: 0.16em !important;
  font-weight: 600 !important;
}


/* ── Swatch refine: small premium circle, ring never overlaps ── */
@media (min-width: 768px) {
  .elite-pdp__commerce .product-buybox__purchase-option--color,
  .product-buybox__purchase-option--color {
    width: 1.5rem !important; min-width: 1.5rem !important; max-width: 1.5rem !important;
    height: 1.5rem !important; min-height: 1.5rem !important; max-height: 1.5rem !important;
    border: 1px solid var(--line) !important;
  }
}

/* Selected: thin ring, offset — like Prada */
.elite-pdp__commerce .product-buybox__purchase-option--color.is-selected,
.product-buybox__purchase-option--color.is-selected {
  outline: 1px solid var(--ink) !important;
  outline-offset: 3px !important;
  border-color: transparent !important;
}

/* Room for the ring so it never touches labels/neighbors */
.product-buybox__purchase-values {
  padding: 4px !important;
  gap: 0.75rem !important;
}

/* Air between Χρώμα and Μέγεθος groups */
.product-buybox__purchase-group + .product-buybox__purchase-group {
  margin-top: 1rem !important;
}


/* ── Gallery: uniform frames — same size, heads aligned ──
   Source photos differ in size/framing; lock every item to a 3:4
   frame and cover-crop anchored near the top so faces sit in the
   same zone across all shots. */
.elite-pdp__gallery-item {
  aspect-ratio: 3 / 4 !important;
  overflow: hidden !important;
}
.elite-pdp__gallery-item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 15% !important;
  padding: 0 !important;
}
.elite-pdp__gallery-item:first-child img { padding: 0 !important; }


/* ── PDP premium zoom overlay ── */
.elite-pdp__gallery-item img { cursor: zoom-in; }

.pdp-zoom-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #fdfcfa;
  overflow: hidden;
  cursor: zoom-out;
  opacity: 0;
  transition: opacity 320ms cubic-bezier(0.4, 0, 0.2, 1);
}
.pdp-zoom-overlay.is-open { opacity: 1; }

.pdp-zoom-overlay img {
  position: absolute;
  top: 0;
  left: 0;
  max-width: none !important;
  will-change: transform;
  user-select: none;
  -webkit-user-drag: none;
}

.pdp-zoom-close {
  position: fixed;
  top: 1.25rem;
  right: 1.25rem;
  width: 2.75rem;
  height: 2.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: var(--ink, #1e1815);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  z-index: 2;
  transition: opacity 200ms ease;
}
.pdp-zoom-close:hover { opacity: 0.5; }

html.pdp-zoom-lock,
html.pdp-zoom-lock body { overflow: hidden !important; }


/* ── Selection feedback: unmistakable selected states ── */
/* Size: selected = solid ink. No ambiguity. */
.elite-pdp__commerce .product-buybox__purchase-option:not(.product-buybox__purchase-option--color).is-selected,
.product-buybox__purchase-option:not(.product-buybox__purchase-option--color).is-selected {
  background: var(--ink) !important;
  color: #ffffff !important;
  border: 1px solid var(--ink) !important;
}
.elite-pdp__commerce .product-buybox__purchase-option:not(.product-buybox__purchase-option--color):hover {
  border-color: var(--ink) !important;
}

/* Color: selected = clear ring with offset; unselected = none */
.elite-pdp__commerce .product-buybox__purchase-option--color,
.product-buybox__purchase-option--color {
  outline: none !important;
  transition: outline-color 150ms ease;
}
.elite-pdp__commerce .product-buybox__purchase-option--color.is-selected,
.product-buybox__purchase-option--color.is-selected {
  outline: 1.5px solid var(--ink) !important;
  outline-offset: 3px !important;
}


/* ── Selected-value echo + compact desktop rhythm ── */
.product-buybox__purchase-head {
  justify-content: flex-start !important;
  gap: 0.5rem !important;
}
.purchase-selected-value {
  font-size: 0.8rem;
  font-weight: 400;
  color: var(--color-neutral-500);
  letter-spacing: 0;
}

/* Tighter vertical rhythm — ATC must be visible without scrolling */
@media (min-width: 1024px) {
  .elite-pdp__info-sticky { padding-top: clamp(1.25rem, 3.5vh, 2.5rem) !important; }
  .elite-pdp__title { font-size: clamp(1.3rem, 1.9vw, 1.7rem) !important; }
  .elite-pdp__eyebrow { margin-bottom: 0.5rem !important; }
  .elite-pdp__header { margin-bottom: 0.75rem !important; }
  .elite-pdp__price { margin-bottom: 0 !important; }
  .elite-pdp__commerce { margin-bottom: 1rem !important; }
  .product-buybox__purchase { margin: 0 !important; padding: 0.5rem 0 0.25rem !important; }
  .product-buybox__purchase-group { gap: 0.4rem !important; }
  .product-buybox__purchase-group + .product-buybox__purchase-group { margin-top: 0.9rem !important; }
  .product-buybox__purchase-values { padding: 4px !important; gap: 0.6rem !important; }
  .elite-pdp__commerce .single_variation_wrap { margin-top: 0.75rem !important; }
  .elite-pdp__trust { margin-bottom: 0.75rem !important; gap: 0.25rem !important; }
  .elite-pdp__details { margin-top: 0.75rem !important; }
}


/* ── Rhythm per Sotirios' Photoshop spec (2026-06-11) ──
   Title 1.4rem one-liner, price 1rem, ~0.75rem block step,
   ATC right after chips, details visible in the fold. */
@media (min-width: 1024px) {
  .elite-pdp__info-sticky { padding-top: 1.5rem !important; }

  .elite-pdp__eyebrow { margin-bottom: 0.6rem !important; }

  .elite-pdp__title {
    font-size: 1.4rem !important;
    line-height: 1.25 !important;
  }
  .elite-pdp__header { margin-bottom: 0.5rem !important; }

  .elite-pdp__price { margin-top: 0 !important; margin-bottom: 0 !important; }
  .elite-pdp__price ins,
  .elite-pdp__price ins .woocommerce-Price-amount,
  .elite-pdp__price > .woocommerce-Price-amount { font-size: 1rem !important; }
  .elite-pdp__price del,
  .elite-pdp__price del .woocommerce-Price-amount { font-size: 0.82rem !important; }

  .elite-pdp__commerce { padding-top: 0.75rem !important; margin-bottom: 0.5rem !important; }
  .product-buybox__purchase { padding: 0.25rem 0 0 !important; }
  .product-buybox__purchase-group { gap: 0.35rem !important; }
  .product-buybox__purchase-group + .product-buybox__purchase-group { margin-top: 0.75rem !important; }
  .elite-pdp__commerce .single_variation_wrap { margin-top: 1rem !important; }

  .elite-pdp__trust { margin-bottom: 0.5rem !important; gap: 0.15rem !important; }
  .elite-trust-item, .elite-trust-item span { font-size: 0.78rem !important; }

  .elite-pdp__details { margin-top: 0.75rem !important; padding-top: 0 !important; }
}


/* ═══════════════════════════════════════════════════════════════════
   EXPLORE CATEGORIES — card row (reference: Browse/Explore layout)
   ═══════════════════════════════════════════════════════════════════ */
.cat-explore {
  padding: clamp(3rem, 8vh, 6rem) 0;
}

.cat-explore__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: clamp(1.75rem, 4vh, 3rem);
}

.cat-explore__eyebrow {
  font-size: 0.62rem;
  letter-spacing: 0.22em;
  text-indent: 0.22em;
  text-transform: uppercase;
  color: var(--color-neutral-500);
  margin: 0 0 0.6rem;
}

.cat-explore__title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.25rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.01em;
  text-transform: none;
  margin: 0;
  color: var(--ink);
}

.cat-explore__pill {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: var(--ink);
  color: var(--canvas, #fdfcfa);
  border-radius: 999px;
  padding: 0.6rem 0.7rem 0.6rem 1.2rem;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 200ms ease;
}
.cat-explore__pill:hover { opacity: 0.85; color: var(--canvas, #fdfcfa); }

.cat-explore__pill-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.6rem;
  height: 1.6rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: var(--canvas, #fdfcfa);
  color: var(--ink);
  font-size: 0.68rem;
  font-weight: 600;
}

/* Row: equal cards on desktop, swipe on smaller screens */
.cat-explore__row {
  display: flex;
  gap: clamp(1rem, 2vw, 1.75rem);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 0.5rem;
}
.cat-explore__row::-webkit-scrollbar { display: none; }

.cat-explore-card {
  flex: 1 0 clamp(150px, 16vw, 220px);
  min-width: clamp(150px, 16vw, 220px);
  scroll-snap-align: start;
  text-decoration: none;
  display: block;
}

.cat-explore-card__media {
  position: relative;
  aspect-ratio: 3 / 4;
  border-radius: 16px;
  overflow: hidden;
  background: #f0eeeb;
}

.cat-explore-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 15%;
  transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}
.cat-explore-card:hover .cat-explore-card__media img { transform: scale(1.05); }

.cat-explore-card__count {
  position: absolute;
  right: 10px;
  bottom: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.4rem;
  border-radius: 999px;
  background: rgba(253, 252, 250, 0.95);
  color: var(--ink);
  font-size: 0.7rem;
  font-weight: 600;
}

.cat-explore-card__name {
  display: block;
  text-align: center;
  margin-top: 0.9rem;
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--ink);
}
.cat-explore-card:hover .cat-explore-card__name { opacity: 0.6; }

@media (max-width: 767px) {
  .cat-explore__header { flex-direction: column; align-items: flex-start; gap: 1rem; }
  .cat-explore-card { flex: 0 0 42vw; min-width: 42vw; }
}


/* ── Cat-explore: show ALL categories — wrap on desktop ── */
@media (min-width: 768px) {
  .cat-explore__row {
    flex-wrap: wrap;
    overflow-x: visible;
  }
  .cat-explore-card {
    flex: 1 0 15%;
    min-width: 150px;
    max-width: 220px;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   CATALOG FILTERS (drawer) + UNIFORM PRODUCT TILES
   ═══════════════════════════════════════════════════════════════════ */

/* Filter chips (sizes, price) */
.catalog-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.catalog-filter-chip {
  min-width: 2.75rem;
  min-height: 2.5rem;
  padding: 0.4rem 0.8rem;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
}
.catalog-filter-chip:hover { border-color: var(--ink); }
.catalog-filter-chip.is-selected {
  background: var(--ink);
  color: #ffffff;
  border-color: var(--ink);
}

/* Color family rows */
.catalog-filter-colors {
  display: grid;
  gap: 0.35rem;
}

.catalog-filter-color {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
  padding: 0.45rem 0.5rem;
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
  text-align: left;
  transition: border-color 150ms ease;
}
.catalog-filter-color:hover { border-color: var(--line); }
.catalog-filter-color.is-selected { border-color: var(--ink); }

.catalog-filter-color__dot {
  flex: 0 0 auto;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  border: 1px solid rgba(30, 24, 21, 0.15);
}
.catalog-filter-color.is-selected .catalog-filter-color__dot {
  outline: 1.5px solid var(--ink);
  outline-offset: 2px;
}

.catalog-filter-color__name {
  flex: 1 1 auto;
  font-size: 0.8rem;
  color: var(--ink);
}

.catalog-filter-color__count {
  font-size: 0.7rem;
  color: var(--color-neutral-500);
}

/* Sale toggle */
.catalog-filter-toggle {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: transparent;
  border: none;
  padding: 0.25rem 0;
  font-size: 0.85rem;
  color: var(--ink);
  cursor: pointer;
}
.catalog-filter-toggle__box {
  width: 1.1rem;
  height: 1.1rem;
  border: 1px solid var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 150ms ease;
}
.catalog-filter-toggle.is-selected .catalog-filter-toggle__box {
  background: var(--ink);
  box-shadow: inset 0 0 0 2px var(--canvas, #fdfcfa);
}

/* Drawer footer: clear + apply side by side */
.catalog-drawer__footer {
  display: flex;
  gap: 0.75rem;
}
.catalog-btn-clear {
  flex: 0 0 auto;
  background: transparent;
  border: 1px solid var(--line);
  color: var(--ink);
  padding: 0.85rem 1.25rem;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color 150ms ease;
}
.catalog-btn-clear:hover { border-color: var(--ink); }
.catalog-drawer__footer .catalog-btn-apply { flex: 1 1 auto; }

/* ── Uniform product tiles: equal media boxes, one-line titles ── */
.pcard__media {
  aspect-ratio: 3 / 4 !important;
}
.pcard__media img,
.pcard__image {
  width: 100% !important;
  height: 100% !important;
}
.pcard__title {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}


/* ═══════════════════════════════════════════════════════════════════
   PRODUCT CARD REDESIGN — Diva Mood v2
   Reference: Prada/Celine catalog cards
   ═══════════════════════════════════════════════════════════════════ */

/* ── 1. Uniform grid — no asymmetric featured card ──────────────── */
/* Override all previous 7n+1 rules */
.catalog-page ul.products li.pcard:nth-child(7n+1),
.catalog-page.view-wide ul.products li.pcard:nth-child(7n+1) {
  grid-column: auto !important;
  grid-row: auto !important;
}
.catalog-page ul.products li.pcard:nth-child(7n+1) .pcard__media,
.catalog-page.view-wide ul.products li.pcard:nth-child(7n+1) .pcard__media {
  aspect-ratio: 3/4 !important;
}
.catalog-page ul.products li.pcard:nth-child(7n+1) .pcard__title {
  font-size: inherit !important;
}

/* ── 2. Image: cover, no frame, no padding ──────────────────────── */
.pcard__media {
  aspect-ratio: 3/4 !important;   /* 0.75 — compact portrait */
  background: #f8f7f5 !important; /* very light neutral, barely visible */
}

.pcard__image,
.pcard__image--main,
.pcard__image--hover {
  object-fit: cover !important;
  object-position: center top !important;
  padding: 0 !important;         /* remove the "frame" padding */
  background: transparent !important;
}

/* Asymmetric featured card: also cover */
.catalog-page ul.products li.pcard:nth-child(7n+1) .pcard__image {
  padding: 0 !important;
}

/* ── 3. Body: compact, link wrapping attrs+price ────────────────── */
.pcard__body {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 0.5rem !important;
  padding: 0.6rem 0 0 !important;
  text-decoration: none !important;
  color: inherit !important;
}

/* ── 4. Attrs section ────────────────────────────────────────────── */
.pcard__attrs {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  flex: 1;
  min-width: 0;
}

/* ── 5. Color swatches ───────────────────────────────────────────── */
.pcard__colors {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  flex-wrap: wrap;
}

.pcard__color-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 1px solid rgba(0,0,0,0.12);
  cursor: default;
}

/* White dot needs a border to be visible */
.pcard__color-dot--white {
  border-color: rgba(0,0,0,0.25) !important;
}

/* Multi/pattern: rainbow gradient */
.pcard__color-dot--multi {
  background: conic-gradient(
    #E74C3C 0deg 60deg,
    #F39C12 60deg 120deg,
    #2ECC71 120deg 180deg,
    #3498DB 180deg 240deg,
    #9B59B6 240deg 300deg,
    #1ABC9C 300deg 360deg
  ) !important;
}

.pcard__color-more {
  font-size: 0.6rem;
  letter-spacing: 0.05em;
  color: var(--ink-muted);
  opacity: 0.7;
}

/* ── 6. Size pills ───────────────────────────────────────────────── */
.pcard__sizes {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  flex-wrap: wrap;
}

.pcard__size-pill {
  font-size: 0.6rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--ink-muted);
  opacity: 0.7;
  line-height: 1;
}

/* Separator between size pills */
.pcard__size-pill + .pcard__size-pill::before {
  content: '·';
  margin-right: 0.2rem;
  opacity: 0.5;
}

/* ── 7. Price: right-aligned, minimal ───────────────────────────── */
.pcard__price {
  font-size: 0.8rem !important;
  font-weight: 400 !important;
  color: var(--ink) !important;
  white-space: nowrap;
  flex-shrink: 0;
  padding-top: 0.05rem;
}

.pcard__price del {
  opacity: 0.4 !important;
  font-size: 0.72rem !important;
  margin-right: 0.25rem !important;
}

.pcard__price ins {
  text-decoration: none !important;
  color: #8b2e1a !important;
  font-weight: 500 !important;
}

/* ── 8. Mobile: 2-column grid, compact ──────────────────────────── */
@media (max-width: 767px) {
  .pcard__body {
    flex-direction: column !important;
    gap: 0.25rem !important;
  }
  .pcard__price {
    font-size: 0.75rem !important;
  }
}

/* ── PDP Identifiers (Κωδικός / Σύνθεση) ─────────────────────────── */
.elite-pdp__identifiers {
  border-top: 1px solid var(--color-border, #e8e8e8);
  padding: 1rem 0 0.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.elite-pdp__identifier-row {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
}
.elite-pdp__identifier-label {
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-neutral-500, #888);
  white-space: nowrap;
  flex-shrink: 0;
  min-width: 6rem;
}
.elite-pdp__identifier-value {
  font-size: 0.8125rem;
  color: var(--color-text, #1a1a1a);
  font-variant-numeric: tabular-nums;
}

/* ── PDP Description Section ──────────────────────────────────────── */
.elite-pdp__description-section {
  border-top: 1px solid var(--color-border, #e8e8e8);
  margin-top: 0.5rem;
}
.elite-pdp__description-section .product-buybox__drawer {
  border-bottom: 1px solid var(--color-border, #e8e8e8);
}
.elite-pdp__description-section .product-accordion__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 1.1rem 0;
  background: none;
  border: none;
  cursor: pointer;
  gap: 1rem;
}
.elite-pdp__description-section .product-accordion__heading {
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--color-text, #1a1a1a);
}
.elite-pdp__description-section .product-accordion__eyebrow {
  display: none;
}
.elite-pdp__description-section .product-accordion__icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  position: relative;
}
.elite-pdp__description-section .product-accordion__icon::before,
.elite-pdp__description-section .product-accordion__icon::after {
  content: ;
  position: absolute;
  background: currentColor;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.elite-pdp__description-section .product-accordion__icon::before {
  width: 14px; height: 1px;
  top: 50%; left: 0;
  transform: translateY(-50%);
}
.elite-pdp__description-section .product-accordion__icon::after {
  width: 1px; height: 14px;
  left: 50%; top: 0;
  transform: translateX(-50%);
}
.elite-pdp__description-section .product-accordion[aria-expanded=true] .product-accordion__icon::after,
.elite-pdp__description-section .product-accordion.is-open .product-accordion__icon::after {
  transform: translateX(-50%) scaleY(0);
  opacity: 0;
}
.elite-pdp__description-section .product-accordion__panel {
  overflow: hidden;
}
.elite-pdp__description-section .product-accordion__content {
  padding-bottom: 1.25rem;
  font-size: 0.875rem;
  line-height: 1.7;
  color: var(--color-neutral-600, #555);
}


/* ── PDP Info Sticky: align eyebrow with gallery top (2026-06-14) ─── */
@media (min-width: 1024px) {
  .elite-pdp__info-sticky { padding-top: 0 !important; }
}


/* ── Hide WC variation description (stored in _variation_description meta, injected by JS) ── */
/* Description is already shown in our custom accordion drawer — 2026-06-14 */
.woocommerce-variation-description { display: none !important; }


/* ── Category Hero Title: Cormorant Garamond Italic 300 (2026 editorial) ── */
.catalog-header__title {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 300 !important;
  font-style: italic !important;
  letter-spacing: 0.04em !important;
  line-height: 0.88 !important;
}


/* ── Category Hero Title: GFS Didot (Greek Didot — Vogue-level editorial) ── */
.catalog-header__title {
  font-family: 'GFS Didot', 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 400 !important;
  font-style: normal !important;
  letter-spacing: 0.06em !important;
  line-height: 0.9 !important;
}


/* ── Category Hero Title: Manrope 200 — ultra-clean minimal (2026-06-14) ── */
.catalog-header__title {
  font-family: 'Manrope', sans-serif !important;
  font-weight: 200 !important;
  font-style: normal !important;
  letter-spacing: 0.18em !important;
  line-height: 0.9 !important;
  text-transform: uppercase !important;
}

/* ── PDP Drawers ──────────────────────────────────────────────────────────── */
.elite-pdp__drawer {
  border-top: 1px solid #e5e5e5;
  margin-top: 0;
}
.elite-pdp__drawer:last-child {
  border-bottom: 1px solid #e5e5e5;
}

.elite-pdp__drawer-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 14px 0;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #111;
  text-align: left;
  appearance: none;
  -webkit-appearance: none;
}
.elite-pdp__drawer-toggle:hover {
  color: #555;
}

.elite-pdp__drawer-icon {
  flex-shrink: 0;
  transition: transform 0.25s ease;
  color: #111;
}
.elite-pdp__drawer-toggle[aria-expanded="true"] .elite-pdp__drawer-icon {
  transform: rotate(180deg);
}

.elite-pdp__drawer-body {
  padding: 0 0 16px;
  font-size: 0.82rem;
  line-height: 1.7;
  color: #444;
}
.elite-pdp__drawer-body[hidden] {
  display: none;
}
