/* =============================================================================
   VYNTERA — APP-ALIGNED Additional CSS
   Source: app-preview/src/styles.css + app-shell + product-card
   Paste: Appearance → Customize → Additional CSS (replace prior)
   Coming Soon ON. No Elementor. No product publish.
   Page = warm ivory. Espresso only on ticker / overlays / list panels / badges.
   ============================================================================= */

:root {
  /* Exact APP @theme tokens */
  --color-bg: #F4EFE7;
  --color-surface: #F7F3ED;
  --color-fg: #100D0E;
  --color-muted: #B9AEA8;
  --color-subtle: #B9AEA8;
  --color-primary: #100D0E;
  --color-primary-fg: #F4EFE7;
  --color-border: #e4dcd2;
  --color-danger: #8c3a32;

  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;

  --font-sans: "DM Sans", system-ui, -apple-system, sans-serif;
  --font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;

  --shadow-soft: 0 1px 2px rgb(28 24 20 / 0.05), 0 8px 24px rgb(28 24 20 / 0.06);

  --vyn-bottom-nav-h: 4.5rem;
  --vyn-safe-bottom: env(safe-area-inset-bottom, 0px);
  --vyn-gutter: 1rem;
  --vyn-max: 32rem; /* max-w-lg */
}

/* -----------------------------------------------------------------------------
   Foundation — ivory page (NOT full-page black)
   ----------------------------------------------------------------------------- */
html {
  scroll-behavior: smooth;
  background: var(--color-bg) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
  max-width: 100%;
  width: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body,
.theme-blocksy,
#main-container,
.ct-drawer-canvas,
main#main,
.site-main,
.entry-content,
.ct-container,
.ct-container-full,
.wp-site-blocks {
  background-color: var(--color-bg) !important;
  color: var(--color-fg) !important;
}

body {
  font-family: var(--font-sans) !important;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.65;
  overflow-x: clip;
  max-width: 100%;
  min-width: 0;
  width: 100%;
  padding-bottom: calc(var(--vyn-bottom-nav-h) + var(--vyn-safe-bottom)) !important;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.page-title,
.product_title,
.woocommerce-loop-product__title,
.vyn-display {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em;
  line-height: 1.15;
  color: var(--color-fg) !important;
  text-wrap: balance;
}

p, li, label, td, th, figcaption {
  color: var(--color-fg);
  text-wrap: pretty;
}

a {
  color: var(--color-fg) !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}

a:hover,
a:focus {
  color: var(--color-muted) !important;
}

img {
  outline: 1px solid rgb(28 24 20 / 0.08);
  outline-offset: -1px;
  max-width: 100%;
  height: auto;
}

/* Hide theme credits */
.ct-footer .ct-footer-copyright a[href*="blocksy"],
.ct-footer .ct-footer-copyright a[href*="creativethemes"],
.site-info a[href*="wordpress"],
.footer-credits,
.theme-credits {
  display: none !important;
}

/* Soften / hide default theme header chrome when APP header HTML is present */
body:has(.vyn-app-header) .ct-header,
body:has(.vyn-app-header) header#header,
body:has(.vyn-app-header) .ct-header-wrapper {
  display: none !important;
}

/* -----------------------------------------------------------------------------
   Buttons — APP primary / hero pill
   ----------------------------------------------------------------------------- */
.button,
.wp-block-button__link,
.ct-button,
button[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.vyn-btn,
.vyn-btn-primary {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: var(--color-primary) !important;
  color: var(--color-primary-fg) !important;
  border: none !important;
  border-radius: var(--radius-md) !important;
  box-shadow: none !important;
  font-family: var(--font-sans) !important;
  font-weight: 500 !important;
  font-size: 0.875rem !important;
  letter-spacing: 0.02em;
  text-transform: none !important;
  text-decoration: none !important;
  padding: 0 1rem !important;
  min-height: 2.75rem;
  cursor: pointer;
  transition: transform 0.15s ease, background 0.15s ease;
}

.button:hover,
.wp-block-button__link:hover,
.ct-button:hover,
button[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.vyn-btn:hover,
.vyn-btn-primary:hover {
  background: rgb(28 24 20 / 0.9) !important;
  color: var(--color-primary-fg) !important;
  transform: scale(0.98);
}

/* Hero / on-dark pill (ivory fill, espresso type) */
.vyn-btn-on-dark,
.vyn-hero .vyn-btn,
.vyn-campaign .vyn-btn,
.vyn-waitlist .vyn-btn {
  background: var(--color-primary-fg) !important;
  color: var(--color-fg) !important;
}

.vyn-btn-on-dark:hover,
.vyn-hero .vyn-btn:hover,
.vyn-campaign .vyn-btn:hover,
.vyn-waitlist .vyn-btn:hover {
  background: var(--color-surface) !important;
  color: var(--color-fg) !important;
}

.vyn-btn-secondary {
  background: var(--color-surface) !important;
  color: var(--color-fg) !important;
  box-shadow: inset 0 0 0 1px var(--color-border) !important;
}

/* -----------------------------------------------------------------------------
   Ticker
   ----------------------------------------------------------------------------- */
.vyn-ticker {
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  height: 1.6rem;
  contain: paint;
  border-bottom: 1px solid var(--color-border);
  background: var(--color-fg);
  color: var(--color-primary-fg);
}

.vyn-ticker__track {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  width: max-content;
  padding: 0.375rem 0;
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  animation: vyn-ticker 28s linear infinite;
}

.vyn-ticker__track span {
  padding: 0 1rem;
  color: var(--color-primary-fg);
  white-space: nowrap;
}

@keyframes vyn-ticker {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .vyn-ticker__track { animation: none; }
}

/* -----------------------------------------------------------------------------
   APP sticky header
   ----------------------------------------------------------------------------- */
.vyn-app-header {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.625rem 0.75rem;
  border-bottom: 1px solid rgb(228 220 210 / 0.8);
  background: rgb(244 239 232 / 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.vyn-app-header__menu {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: var(--color-fg);
}

.vyn-app-header__burger {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  width: 1.25rem;
}

.vyn-app-header__burger i {
  display: block;
  height: 1px;
  background: var(--color-fg);
}

.vyn-app-header__burger i:last-child {
  width: 0.875rem;
}

.vyn-app-header__brand {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none !important;
  color: var(--color-fg) !important;
}

.vyn-app-header__mark {
  display: none !important;
}

.vyn-app-header__word {
  font-family: var(--font-display) !important;
  font-size: 1.25rem;
  letter-spacing: 0.18em;
  font-weight: 500;
}

.vyn-app-header__actions {
  display: flex;
  align-items: center;
}

.vyn-app-header__actions a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  color: var(--color-fg) !important;
  text-decoration: none !important;
}

.vyn-app-header__actions svg {
  width: 1.25rem;
  height: 1.25rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
}

.vyn-app-header__dot {
  position: absolute;
  right: 0.5rem;
  top: 0.5rem;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 999px;
  background: var(--color-fg);
}

.vyn-app-header__count {
  position: absolute;
  right: 0.375rem;
  top: 0.375rem;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 1rem;
  height: 1rem;
  padding: 0 0.25rem;
  border-radius: 999px;
  background: var(--color-fg);
  color: var(--color-primary-fg);
  font-size: 10px;
  font-family: var(--font-sans);
  line-height: 1;
}

.vyn-app-header__count[hidden] {
  display: none !important;
}

/* -----------------------------------------------------------------------------
   Bottom nav — HOME / SHOP / WISHLIST / CART / ACCOUNT
   ----------------------------------------------------------------------------- */
.vyn-bottom-nav {
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  z-index: 40;
  border-top: 1px solid var(--color-border);
  background: rgb(250 247 242 / 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding-bottom: var(--vyn-safe-bottom);
}

.vyn-bottom-nav ul {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  max-width: var(--vyn-max);
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.vyn-bottom-nav a {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.125rem;
  padding: 0.625rem 0.25rem;
  font-size: 10px;
  font-family: var(--font-sans) !important;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none !important;
  color: var(--color-muted) !important;
}

.vyn-bottom-nav a.is-active,
.vyn-bottom-nav a[aria-current="page"] {
  color: var(--color-fg) !important;
}

.vyn-bottom-nav svg {
  width: 1.25rem;
  height: 1.25rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
}

.vyn-bottom-nav a.is-active[data-tab="wishlist"] svg,
.vyn-bottom-nav a[aria-current="page"][data-tab="wishlist"] svg {
  fill: currentColor;
}

.vyn-bottom-nav__count {
  position: absolute;
  right: calc(50% - 18px);
  top: 0.375rem;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 1rem;
  height: 1rem;
  padding: 0 0.25rem;
  border-radius: 999px;
  background: var(--color-fg);
  color: var(--color-primary-fg);
  font-size: 9px;
  line-height: 1;
}

/* -----------------------------------------------------------------------------
   Home shell
   ----------------------------------------------------------------------------- */
.vyn-app-home {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  padding-bottom: 2.5rem;
  max-width: 64rem;
  margin: 0 auto;
}

/* Hero — large rounded image card + overlay */
.vyn-hero {
  position: relative;
  margin: 1rem var(--vyn-gutter) 0;
  overflow: hidden;
  border-radius: var(--radius-xl);
  background: rgb(228 220 210 / 0.4);
}

.vyn-hero__media {
  aspect-ratio: 4 / 5;
}

@media (min-width: 640px) {
  .vyn-hero__media { aspect-ratio: 16 / 10; }
}

.vyn-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
  outline: none;
}

.vyn-hero__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgb(28 24 20 / 0.7), rgb(28 24 20 / 0.1), transparent);
  pointer-events: none;
}

.vyn-hero__copy {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  padding: 1.5rem;
  color: var(--color-primary-fg);
}

@media (min-width: 640px) {
  .vyn-hero__copy { padding: 2rem; }
}

.vyn-hero__eyebrow {
  margin: 0;
  font-size: 10px;
  font-family: var(--font-sans);
  text-transform: uppercase;
  letter-spacing: 0.28em;
  color: var(--color-primary-fg);
}

.vyn-hero__title {
  margin: 0.5rem 0 0;
  font-family: var(--font-display) !important;
  font-size: clamp(2.25rem, 8vw, 3rem);
  line-height: 1;
  color: var(--color-primary-fg) !important;
}

.vyn-hero__body {
  margin: 0.75rem 0 0;
  max-width: 28rem;
  font-size: 0.875rem;
  color: rgb(244 239 232 / 0.8);
}

.vyn-hero .vyn-btn {
  margin-top: 1.25rem;
}

/* Preview note */
.vyn-preview-note {
  margin: 0;
  padding: 0 var(--vyn-gutter);
  text-align: center;
  font-size: 0.75rem;
  line-height: 1.6;
  color: var(--color-muted);
}

/* Section chrome */
.vyn-section {
  padding: 0 var(--vyn-gutter);
}

.vyn-section__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.vyn-section__head h2 {
  margin: 0;
  font-size: 1.5rem;
  letter-spacing: -0.01em;
}

.vyn-section__head a {
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--color-muted) !important;
  text-decoration: none !important;
  white-space: nowrap;
}

.vyn-eyebrow {
  margin: 0;
  font-size: 10px;
  font-family: var(--font-sans);
  text-transform: uppercase;
  letter-spacing: 0.28em;
  color: var(--color-muted);
}

.vyn-editorial h2,
.vyn-story h2 {
  margin: 0.5rem 0 0;
  font-size: 1.875rem;
}

.vyn-editorial p,
.vyn-story p {
  margin: 0.75rem 0 0;
  max-width: 32rem;
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--color-muted);
}

.vyn-editorial a,
.vyn-story a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1rem;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  text-decoration: none !important;
}

/* Collection grid */
.vyn-collections {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.625rem;
}

@media (min-width: 640px) {
  .vyn-collections { grid-template-columns: repeat(4, 1fr); }
}

.vyn-col-card {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--radius-lg);
  text-decoration: none !important;
  background: rgb(228 220 210 / 0.4);
}

.vyn-col-card__media {
  aspect-ratio: 4 / 5;
}

.vyn-col-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  outline: none;
  transition: transform 0.5s ease;
}

.vyn-col-card:hover img {
  transform: scale(1.03);
}

.vyn-col-card__shade {
  position: absolute;
  inset: 0;
  background: rgb(28 24 20 / 0.25);
  pointer-events: none;
}

.vyn-col-card__label {
  position: absolute;
  inset-inline: 0;
  bottom: 0.75rem;
  text-align: center;
  font-family: var(--font-display) !important;
  font-size: 1.25rem;
  color: var(--color-primary-fg) !important;
  margin: 0;
}

/* Product rail (horizontal) */
.vyn-rail {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  margin-inline: calc(-1 * var(--vyn-gutter));
  padding: 0 var(--vyn-gutter) 0.25rem;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.vyn-rail::-webkit-scrollbar { display: none; }

.vyn-rail > .vyn-pcard {
  flex: 0 0 42vw;
  max-width: 13rem;
}

@media (min-width: 640px) {
  .vyn-rail > .vyn-pcard {
    flex-basis: 11rem;
  }
}

/* Product card — APP proportions, custom (not default Woo) */
.vyn-pcard {
  position: relative;
  font-family: var(--font-sans);
}

.vyn-pcard__media {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: rgb(228 220 210 / 0.4);
  aspect-ratio: 4 / 5;
}

.vyn-pcard.is-featured .vyn-pcard__media {
  aspect-ratio: 3 / 4;
}

.vyn-pcard__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  outline: none;
  transition: transform 0.5s ease;
}

.vyn-pcard:hover .vyn-pcard__media img {
  transform: scale(1.03);
}

/* Badges — slots hidden unless genuine / Coming Soon shell */
.vyn-pcard__badge {
  position: absolute;
  left: 0.625rem;
  top: 0.625rem;
  z-index: 2;
  border-radius: var(--radius-xs);
  padding: 0.125rem 0.375rem;
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.4;
}

.vyn-pcard__badge--sale {
  background: var(--color-fg);
  color: var(--color-primary-fg);
}

.vyn-pcard__badge--new {
  background: rgb(250 247 242 / 0.9);
  color: var(--color-fg);
}

.vyn-pcard__badge--soon {
  background: rgb(250 247 242 / 0.92);
  color: var(--color-fg);
}

/* Hide New/Sale badge slots by default; show only with explicit class */
.vyn-pcard__badge--sale,
.vyn-pcard__badge--new {
  display: none;
}

.vyn-pcard.has-sale .vyn-pcard__badge--sale,
.vyn-pcard.has-new .vyn-pcard__badge--new {
  display: inline-block;
}

/* Wishlist heart chip */
.vyn-pcard__wish {
  position: absolute;
  right: 0.5rem;
  top: 0.5rem;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 999px;
  background: rgb(250 247 242 / 0.9);
  color: var(--color-fg);
  cursor: pointer;
  padding: 0;
}

.vyn-pcard__wish svg {
  width: 1rem;
  height: 1rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
}

.vyn-pcard__wish.is-loved svg,
.vyn-pcard__wish[aria-pressed="true"] svg {
  fill: currentColor;
}

.vyn-pcard__body {
  margin-top: 0.625rem;
}

.vyn-pcard__title {
  margin: 0;
  font-family: var(--font-display) !important;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.35;
  color: var(--color-fg) !important;
}

.vyn-pcard__meta {
  margin: 0.125rem 0 0;
  font-size: 0.8125rem;
  color: var(--color-muted);
}

/* Never show fake prices in shells */
.vyn-pcard.is-soon .vyn-pcard__price,
.vyn-pcard.is-soon .price,
.vyn-app-home .price,
.vyn-hide-price .price,
.vyn-hide-price .woocommerce-Price-amount {
  display: none !important;
}

.vyn-app-home .vyn-new-in .price,
.vyn-app-home .vyn-new-in .woocommerce-Price-amount {
  display: inline !important;
}

.vyn-new-in ul.products {
  padding-left: var(--vyn-gutter);
  padding-right: var(--vyn-gutter);
  margin: 0;
}

/* Campaign banner */
.vyn-campaign {
  position: relative;
  margin: 0 var(--vyn-gutter);
  overflow: hidden;
  border-radius: var(--radius-xl);
  background: rgb(228 220 210 / 0.4);
}

.vyn-campaign__media {
  aspect-ratio: 16 / 10;
}

.vyn-campaign__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  outline: none;
}

.vyn-campaign__copy {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  padding: 1.5rem;
  background: rgb(28 24 20 / 0.35);
  color: var(--color-primary-fg);
}

.vyn-campaign__copy .vyn-eyebrow {
  color: rgb(244 239 232 / 0.7);
}

.vyn-campaign__copy h2 {
  margin: 0.25rem 0 0;
  font-size: 1.875rem;
  color: var(--color-primary-fg) !important;
}

.vyn-campaign__copy p {
  margin: 0.5rem 0 0;
  max-width: 24rem;
  font-size: 0.875rem;
  color: rgb(244 239 232 / 0.85);
}

.vyn-campaign .vyn-btn {
  margin-top: 1rem;
}

/* Waitlist — espresso panel, ivory type */
.vyn-waitlist {
  margin: 0 var(--vyn-gutter);
  border-radius: var(--radius-xl);
  background: var(--color-fg);
  color: var(--color-primary-fg);
  padding: 2rem 1.25rem;
}

.vyn-waitlist .vyn-eyebrow {
  color: rgb(244 239 232 / 0.6);
}

.vyn-waitlist h2 {
  margin: 0.5rem 0 0;
  font-size: 1.875rem;
  color: var(--color-primary-fg) !important;
}

.vyn-waitlist p {
  margin: 0.5rem 0 0;
  max-width: 28rem;
  font-size: 0.875rem;
  color: rgb(244 239 232 / 0.75);
}

.vyn-waitlist__form {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 1.25rem;
}

@media (min-width: 640px) {
  .vyn-waitlist__form {
    flex-direction: row;
  }
  .vyn-waitlist__form .vyn-btn {
    width: 10rem;
    flex-shrink: 0;
  }
}

.vyn-waitlist input[type="email"] {
  flex: 1;
  min-height: 2.75rem;
  padding: 0 0.875rem;
  border: 1px solid rgb(244 239 232 / 0.25);
  border-radius: var(--radius-md);
  background: var(--color-fg);
  color: var(--color-primary-fg);
  font-family: var(--font-sans);
  font-size: 0.875rem;
}

.vyn-waitlist input[type="email"]::placeholder {
  color: rgb(244 239 232 / 0.4);
}

.vyn-waitlist__msg {
  margin: 0.75rem 0 0;
  color: #F4EFE7 !important;
}

.vyn-waitlist__msg[hidden] {
  display: none;
}

/* Empty / Coming Soon shop chrome */
.vyn-empty {
  padding: 2rem var(--vyn-gutter);
  text-align: center;
}

.vyn-empty h2 {
  margin: 0;
  font-size: 1.75rem;
}

.vyn-empty p {
  margin: 0.75rem auto 0;
  max-width: 24rem;
  color: var(--color-muted);
  font-size: 0.875rem;
}

/* Override prior dark-site packs if residual selectors exist */
body.vyn-app-light,
html.vyn-app-light {
  background: var(--color-bg) !important;
}

/* Custom cards over default Woo card chrome when wrapped */
.woocommerce ul.products li.product {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: left !important;
}

.woocommerce ul.products li.product a img {
  border-radius: var(--radius-lg) !important;
  margin: 0 !important;
}

.woocommerce span.onsale {
  display: none !important; /* only show via .vyn-pcard.has-sale when real */
}

/* Compact footer on ivory */
.ct-footer,
footer.ct-footer,
#footer {
  background: var(--color-bg) !important;
  color: var(--color-muted) !important;
  border-top: 1px solid var(--color-border);
}

.ct-footer a {
  color: var(--color-fg) !important;
}

/* Desktop: keep bottom nav (APP is mobile-first; still useful) */
@media (min-width: 1024px) {
  :root { --vyn-max: 40rem; }
}


/* --- APP Skin: force 5-tab bar, hide theme mobile footer menus --- */
.vyn-bottom-nav { display: block !important; }
.vyn-bottom-nav ul { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
footer.ct-footer .ct-menu,
.ct-footer [data-id*="menu"],
.ct-footer .widget_nav_menu,
.ct-footer .menu {
  /* keep desktop footer links; hide only duplicate fixed mobile bars if theme adds them */
}
body .vyn-bottom-nav + .vyn-bottom-nav { display: none !important; }

/* =============================================================================
   v1.0.2 — commerce blockers (no redesign): FAQ, footer, empty shop, Coming Soon
   ============================================================================= */

/* Coming Soon landing — ivory, brand copy (horizon string filtered in PHP) */
.woocommerce-coming-soon-store-only,
.woocommerce-coming-soon-entire-site,
.wp-block-woocommerce-coming-soon {
  background: var(--color-bg) !important;
  color: var(--color-fg) !important;
  min-height: 60vh;
}
.woocommerce-coming-soon-store-only h1,
.woocommerce-coming-soon-entire-site h1,
.wp-block-woocommerce-coming-soon h1,
.woocommerce-coming-soon-banner {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase;
  font-size: clamp(1.5rem, 4vw, 2rem) !important;
  color: var(--color-fg) !important;
}
.woocommerce-coming-soon-store-only p,
.woocommerce-coming-soon-entire-site p,
.wp-block-woocommerce-coming-soon p {
  font-family: var(--font-sans) !important;
  color: var(--color-muted) !important;
  font-size: 0.95rem !important;
  max-width: 22rem;
  margin-left: auto;
  margin-right: auto;
}

/* Elegant empty shop / collection notices */
.woocommerce .woocommerce-info,
.woocommerce-page .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-noreviews,
.woocommerce .cart-empty.woocommerce-info {
  background: var(--color-surface) !important;
  border: 1px solid var(--color-border) !important;
  border-top: 1px solid var(--color-border) !important;
  border-radius: var(--radius-md) !important;
  color: var(--color-muted) !important;
  box-shadow: none !important;
  padding: 1.5rem 1.25rem !important;
  text-align: center;
  font-family: var(--font-sans) !important;
  font-size: 0.9rem !important;
  letter-spacing: 0.02em;
}
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before {
  display: none !important;
}

/* Archive filters / sort — quiet ivory chrome */
.woocommerce .woocommerce-ordering,
.woocommerce-result-count,
.woocommerce .woocommerce-notices-wrapper + .woocommerce-result-count {
  color: var(--color-muted) !important;
  font-family: var(--font-sans) !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.06em;
}
.woocommerce .woocommerce-ordering select {
  background: var(--color-surface) !important;
  color: var(--color-fg) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-sm) !important;
  padding: 0.55em 0.85em !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-family: var(--font-sans) !important;
}
.woocommerce .woocommerce-pagination ul.page-numbers {
  border: 0 !important;
}
.woocommerce .woocommerce-pagination ul.page-numbers li a,
.woocommerce .woocommerce-pagination ul.page-numbers li span {
  background: var(--color-surface) !important;
  border: 1px solid var(--color-border) !important;
  color: var(--color-fg) !important;
  border-radius: var(--radius-sm);
}

/* FAQ accordion */
.vyn-faq {
  max-width: 40rem;
  margin: 0 auto;
  padding: 1.25rem var(--vyn-gutter) 2rem;
}
.vyn-faq__title,
.vyn-faq > h1 {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  text-align: center;
  letter-spacing: 0.08em;
  margin: 0 0 0.5rem;
}
.vyn-faq-intro {
  text-align: center;
  color: var(--color-muted);
  font-size: 0.9rem;
  margin: 0 auto 1.75rem;
  max-width: 28rem;
}
.vyn-faq-group {
  margin-bottom: 1.5rem;
}
.vyn-faq-group > h2 {
  font-family: var(--font-sans) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase;
  color: var(--color-muted) !important;
  margin: 0 0 0.65rem;
}
.vyn-faq details {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  margin-bottom: 0.5rem;
  overflow: hidden;
}
.vyn-faq details[open] {
  border-color: rgb(28 24 20 / 0.18);
}
.vyn-faq summary {
  cursor: pointer;
  list-style: none;
  padding: 0.95rem 1.1rem;
  padding-right: 2.5rem;
  font-family: var(--font-sans);
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--color-fg);
  position: relative;
}
.vyn-faq summary::-webkit-details-marker { display: none; }
.vyn-faq summary::after {
  content: "+";
  position: absolute;
  right: 1.1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-muted);
  font-size: 1.05rem;
}
.vyn-faq details[open] summary::after { content: "–"; }
.vyn-faq details > p {
  margin: 0;
  padding: 0 1.1rem 1.05rem;
  color: var(--color-muted) !important;
  font-size: 0.875rem;
  line-height: 1.65;
}

/* Site footer — shop / help / legal */
.vyn-site-footer {
  background: var(--color-bg);
  border-top: 1px solid var(--color-border);
  padding: 2rem var(--vyn-gutter) 1.25rem;
  margin-bottom: 0.25rem;
  color: var(--color-muted);
  font-family: var(--font-sans);
}
.vyn-site-footer__inner {
  max-width: var(--vyn-max);
  margin: 0 auto;
}
.vyn-site-footer__brand {
  font-family: var(--font-display);
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-size: 1rem;
  color: var(--color-fg);
  margin: 0 0 0.25rem;
  text-align: center;
}
.vyn-site-footer__tag {
  text-align: center;
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  margin: 0 0 1.5rem;
  color: var(--color-muted);
}
.vyn-site-footer__cols {
  display: none;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
  text-align: left;
}
.vyn-site-footer__col h3 {
  font-family: var(--font-sans) !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: var(--color-fg) !important;
  margin: 0 0 0.65rem;
}
.vyn-site-footer__col ul,
.vyn-site-footer__acc ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.vyn-site-footer__col a,
.vyn-site-footer__acc a {
  color: var(--color-muted) !important;
  text-decoration: none !important;
  font-size: 0.8rem;
  line-height: 1.9;
  letter-spacing: 0.02em;
}
.vyn-site-footer__col a:hover,
.vyn-site-footer__acc a:hover {
  color: var(--color-fg) !important;
}
.vyn-site-footer__mobile {
  display: block;
}
.vyn-site-footer__acc {
  border-top: 1px solid var(--color-border);
  padding: 0.15rem 0;
}
.vyn-site-footer__acc summary {
  cursor: pointer;
  list-style: none;
  padding: 0.85rem 0;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-fg);
}
.vyn-site-footer__acc summary::-webkit-details-marker { display: none; }
.vyn-site-footer__acc ul {
  padding: 0 0 0.85rem;
}
@media (min-width: 720px) {
  .vyn-site-footer__cols { display: grid; }
  .vyn-site-footer__mobile { display: none; }
}


/* =============================================================================
   VYNTERA child theme — unified chrome, shop, cart, checkout, legal
   ============================================================================= */

:root {
  --espresso: #100D0E;
  --dark-surface: #191516;
  --burgundy: #702638;
  --champagne: #C7A566;
  --ivory: #F4EFE7;
  --muted: #B9AEA8;
  --color-bg: #F4EFE7;
  --color-fg: #100D0E;
  --color-muted: #B9AEA8;
}

/* Hide Blocksy chrome — one header / one footer */
body.vyn-theme .ct-header,
body.vyn-theme header#header,
body.vyn-theme .ct-header-wrapper,
body.vyn-theme .ct-footer,
body.vyn-theme footer.ct-footer,
body.vyn-theme #footer,
body.vyn-theme .ct-offcanvas-trigger,
body.vyn-theme .mobile-menu-toggle,
body.vyn-theme .vyn-app-home .vyn-ticker,
body.vyn-theme .vyn-app-home + .vyn-bottom-nav,
body.vyn-theme .entry-content > .vyn-app-header,
body.vyn-theme .entry-content > .vyn-ticker,
body.vyn-theme .entry-content > .vyn-bottom-nav,
body.vyn-theme .entry-content .vyn-bottom-nav {
  display: none !important;
}

/* Duplicate plugin/home injectors */
body.vyn-theme .vyn-bottom-nav + .vyn-bottom-nav,
body.vyn-theme footer.vyn-site-footer + footer.vyn-site-footer {
  display: none !important;
}

/* Desktop nav */
.vyn-app-header__nav {
  display: none;
  flex: 1;
  justify-content: center;
}
.vyn-app-header__nav ul {
  display: flex;
  gap: 1.35rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.vyn-app-header__nav a {
  font-family: var(--font-sans) !important;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none !important;
  color: var(--color-fg) !important;
}
.vyn-app-header__nav a:hover {
  color: var(--color-muted) !important;
}
.vyn-icon-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 0;
  background: transparent;
  color: var(--color-fg);
  cursor: pointer;
  padding: 0;
}
.vyn-icon-btn svg {
  width: 1.25rem;
  height: 1.25rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
}

/* Drawer */
.vyn-drawer {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  justify-content: flex-start;
  background: rgb(16 13 14 / 0.58);
}
.vyn-drawer__panel {
  width: min(22rem, 86vw);
  max-width: 100%;
  height: 100%;
  background: var(--color-bg);
  padding: 1rem 1.25rem 2rem;
  overflow: auto;
  box-shadow: 8px 0 28px rgb(16 13 14 / 0.18);
}
.vyn-drawer__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}
.vyn-drawer nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.vyn-drawer nav a {
  display: block;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--color-border);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none !important;
}

.vyn-drawer[hidden],
.vyn-search[hidden] {
  display: none !important;
}
.vyn-search {
  position: fixed;
  inset: 0;
  z-index: 85;
  background: rgb(244 239 231 / 0.96);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 4rem 1rem 2rem;
}
.vyn-search[hidden] {
  display: none !important;
}
.vyn-search:not([hidden]) {
  display: flex;
}
.vyn-search__form {
  display: flex;
  gap: 0.5rem;
  width: min(40rem, 100%);
  align-items: center;
}
.vyn-search__form input[type="search"] {
  flex: 1;
  min-height: 2.75rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0 0.9rem;
  font-family: var(--font-sans);
  background: var(--color-surface);
  color: var(--color-fg);
}
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(1px,1px,1px,1px);
}

body.vyn-overlay-open,
html.vyn-overlay-open {
  overflow: hidden !important;
}

/* Desktop header density */
@media (min-width: 1024px) {
  .vyn-dept { display: none !important; }
  .vyn-app-header__nav ul { gap: 0.95rem; }
  .vyn-app-header {
    padding: 0.75rem 1.5rem;
  }
  .vyn-app-header__menu { display: none; }
  .vyn-app-header__nav { display: flex; }
  .vyn-bottom-nav { display: none !important; }
  body.vyn-theme { padding-bottom: 0 !important; }
  :root { --vyn-max: 72rem; }
  .vyn-site-footer__inner { max-width: 72rem; }
  .vyn-app-home { max-width: 72rem; }
}

/* Shop */
.vyn-shop-cats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 1rem;
}
.vyn-shop-cats a {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none !important;
}
.vyn-shop-cats a.is-current {
  background: var(--color-fg);
  color: var(--color-primary-fg) !important;
  border-color: var(--color-fg);
}
.woocommerce ul.products,
ul.products.vyn-products {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
@media (min-width: 1024px) {
  .woocommerce ul.products,
  ul.products.vyn-products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.woocommerce ul.products li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
}
.woocommerce ul.products li.product,
.woocommerce ul.products li.product.outofstock,
.woocommerce ul.products li.product.outofstock .ct-media-container,
.woocommerce ul.products li.product.outofstock img,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Two CTAs */
.vyn-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 1.25rem;
}

/* Shortcuts */
.vyn-shortcuts {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.6rem;
  padding: 0 var(--vyn-gutter);
}
@media (min-width: 640px) {
  .vyn-shortcuts { grid-template-columns: repeat(4, 1fr); }
}
.vyn-shortcuts a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none !important;
}

/* Legal / account / cart */
.vyn-legal, .woocommerce-account, .woocommerce-cart, .woocommerce-checkout {
  max-width: 40rem;
  margin: 0 auto;
  padding: 1.5rem var(--vyn-gutter) 2.5rem;
}
.vyn-about-page {
  max-width: 44rem;
  margin: 0 auto;
  padding: 1.25rem var(--vyn-gutter) 2.5rem;
}
.woocommerce-checkout .woocommerce-privacy-policy-text {
  margin: 0 0 0.85rem;
  font-size: 0.82rem;
  line-height: 1.5;
}
.vyn-legal h1, .woocommerce-account h1, .woocommerce-cart h1 {
  text-align: center;
  margin-bottom: 1rem;
}
.woocommerce-cart table.cart, .woocommerce-checkout .woocommerce {
  font-family: var(--font-sans);
}
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-account input.input-text,
.woocommerce-ResetPassword input {
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--color-surface) !important;
  min-height: 2.75rem;
}
.vyn-pdp-acc { max-width: 40rem; margin: 2rem auto; padding: 0 var(--vyn-gutter); }
.vyn-pdp-acc details {
  border-top: 1px solid var(--color-border);
  padding: 0.9rem 0;
}
.vyn-pdp-acc summary {
  cursor: pointer;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
}
.vyn-site-footer__meta, .vyn-site-footer__copy {
  text-align: center;
  font-size: 0.75rem;
  margin: 1.25rem 0 0;
}
.vyn-site-footer__copy { color: var(--color-muted); margin-top: 0.35rem; }

/* Checkout: no overlapping bottom nav on forms */
body.vyn-checkout { padding-bottom: 1rem !important; }
body.vyn-checkout .vyn-bottom-nav { display: none !important; }

/* Search results */
.search-results ul.products { padding: 0 var(--vyn-gutter); }

/* Homepage: hide native WP/Blocksy "Home" page title only */
body.home .hero-section,
body.home h1.page-title,
body.home .page-title[itemprop="headline"] {
  display: none !important;
}

/* =============================================================================
   Mobile layout lock — stop Android shrink-to-fit (no redesign)
   Root cause: .vyn-ticker__track was in-flow at ~1713px wide, which some
   Android browsers treat as the layout viewport and scale the whole page down.
   ============================================================================= */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  width: 100%;
  overflow-x: clip !important;
  max-width: 100% !important;
}
html, body {
  overflow-x: clip !important;
  max-width: 100% !important;
}
#main-container,
main#main,
.ct-container,
.ct-container-full,
.wp-site-blocks,
.entry-content,
.vyn-app-home,
.woocommerce,
.woocommerce-page {
  max-width: 100% !important;
  min-width: 0 !important;
}

.vyn-app-header,
.vyn-site-footer,
.vyn-bottom-nav {
  max-width: 100%;
}

.vyn-hero,
.vyn-hero__media,
.vyn-hero img {
  max-width: 100%;
}

@media (max-width: 767px) {
  .vyn-app-home {
    max-width: 100% !important;
    width: 100%;
  }
  .vyn-bottom-nav { display: block !important; }
  .vyn-bottom-nav ul {
    max-width: 100%;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
  .woocommerce table.shop_table,
  .woocommerce-cart-form table,
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content {
    max-width: 100%;
    min-width: 0;
  }
  .woocommerce table.shop_table {
    display: block;
    overflow-x: auto;
  }
  .woocommerce ul.products,
  ul.products.vyn-products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  img, video, iframe, svg {
    max-width: 100%;
    height: auto;
  }
}

/* Woo Coming Soon overlay must not replace the real shop or blow mobile layout */
body.vyn-theme .wp-block-woocommerce-coming-soon,
body.vyn-theme .woocommerce-coming-soon-store-only,
body.vyn-theme .woocommerce-coming-soon-entire-site,
body.vyn-theme .woocommerce-coming-soon-banner {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

.vyn-shop-title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.75rem, 6vw, 2.4rem);
  font-weight: 500 !important;
  letter-spacing: 0.04em;
  margin: 0.5rem var(--vyn-gutter) 1rem;
}

body.woocommerce-account .hero-section,
body.woocommerce-cart .hero-section,
body.woocommerce-checkout .hero-section {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body.vyn-theme .woocommerce-products-header__title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.75rem, 6vw, 2.4rem) !important;
  font-weight: 500 !important;
}

.vyn-legal,
.vyn-contact,
.vyn-faq,
.woocommerce,
.woocommerce-page #primary {
  padding-left: var(--vyn-gutter);
  padding-right: var(--vyn-gutter);
}

.vyn-legal { max-width: 40rem; margin: 0 auto 3rem; }
.vyn-legal h1 { margin-bottom: 1rem; }
.vyn-legal p { margin: 0 0 1rem; }

@media (max-width: 1023px) {
  .vyn-app-header__account { display: none; }
  .vyn-app-header {
    padding: 0.5rem 0.6rem;
  }
}
@media (min-width: 1024px) {
  .vyn-bottom-nav { display: none !important; }
}

/* =============================================================================
   v1.0.4 — customer ownership pass (no redesign)
   ============================================================================= */

/* One heading on content pages: hide Blocksy page-title duplicates */
body.page:not(.woocommerce-page) .hero-section,
body.page:not(.woocommerce-page) h1.page-title,
body.page:not(.woocommerce-page) .hero-section .page-title,
body.page:not(.woocommerce-page) header.entry-header,
body.home .hero-section,
body.home h1.page-title {
  display: none !important;
}

.vyn-shop-tools {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  margin: 0 0 1.1rem;
}
.vyn-shop-tools .woocommerce-result-count {
  margin: 0 !important;
  flex: 1 1 auto;
  min-width: 0;
}
.vyn-shop-tools .woocommerce-ordering,
.vyn-shop-tools .woocommerce-ordering.vyn-ordering {
  flex: 0 0 auto;
  margin: 0 0 0 auto !important;
}
.woocommerce ul.products,
ul.products.vyn-products {
  width: 100%;
  clear: both;
}
.woocommerce .woocommerce-ordering,
.woocommerce-ordering.vyn-ordering {
  position: relative;
  margin: 0 0 1rem;
}
.woocommerce-ordering select.orderby,
.woocommerce-ordering select[name="orderby"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
}
.vyn-sort-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2.25rem;
  padding: 0 0.15rem 0 0;
  border: 0;
  background: transparent;
  color: var(--color-fg);
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
}
.vyn-sort-chev {
  width: 0.95rem;
  height: 0.95rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
}
.vyn-sort-sheet {
  position: fixed;
  inset: 0;
  z-index: 80;
}
.vyn-sort-sheet[hidden] {
  display: none !important;
}
.vyn-sort-sheet__backdrop {
  position: absolute;
  inset: 0;
  background: rgb(16 13 14 / 0.32);
}
.vyn-sort-sheet__panel {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--color-bg);
  border-radius: 24px 24px 0 0;
  box-shadow: 0 -12px 40px rgb(16 13 14 / 0.14);
  padding: 1.1rem 1.25rem calc(1.35rem + var(--vyn-safe-bottom));
  max-height: min(78vh, 32rem);
  overflow: auto;
}
.vyn-sort-sheet__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.65rem;
}
.vyn-sort-sheet__head h2 {
  margin: 0;
  font-family: var(--font-display) !important;
  font-size: 1.65rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em;
  text-transform: none;
}
.vyn-sort-sheet__close {
  width: 2.25rem;
  height: 2.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--color-fg);
  cursor: pointer;
  padding: 0;
}
.vyn-sort-sheet__close svg {
  width: 1.1rem;
  height: 1.1rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
}
.vyn-sort-sheet__list {
  list-style: none;
  margin: 0;
  padding: 0.25rem 0 0;
}
.vyn-sort-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 3rem;
  padding: 0.35rem 0;
  border: 0;
  border-bottom: 1px solid var(--color-border);
  background: transparent;
  color: var(--color-fg);
  font-family: var(--font-sans);
  font-size: 0.95rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  text-align: left;
  cursor: pointer;
}
.vyn-sort-sheet__list li:last-child .vyn-sort-option {
  border-bottom: 0;
}
.vyn-sort-option.is-current {
  font-weight: 600;
  color: var(--color-danger);
}
.vyn-sort-check {
  width: 1.05rem;
  height: 1.05rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  opacity: 0;
}
.vyn-sort-option.is-current .vyn-sort-check {
  opacity: 1;
}
body.vyn-sort-open {
  overflow: hidden;
}
@media (min-width: 1024px) {
  .vyn-sort-sheet {
    position: absolute;
    inset: auto;
    top: calc(100% + 0.35rem);
    right: 0;
    left: auto;
    width: 16.5rem;
    z-index: 30;
  }
  .vyn-sort-sheet__backdrop {
    display: none;
  }
  .vyn-sort-sheet__panel {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-soft), 0 12px 32px rgb(16 13 14 / 0.1);
    padding: 0.85rem 1rem 0.7rem;
    max-height: none;
  }
  .vyn-sort-sheet__head h2 {
    font-size: 1.2rem !important;
  }
  .vyn-sort-option {
    min-height: 2.5rem;
    font-size: 0.88rem;
  }
}


body.woocommerce-shop .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
.woocommerce-products-header {
  padding: 0.25rem 0 0.5rem;
}

body.woocommerce-shop h1.page-title,
body.tax-product_cat h1.page-title,
.woocommerce-products-header__title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.75rem, 6vw, 2.4rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em;
  margin: 0.35rem 0 1rem;
}

/* Empty bag: hide leftover Woo blocks "New in store" with no published products */
.wp-block-woocommerce-empty-cart-block > .wp-block-separator,
.wp-block-woocommerce-empty-cart-block > h2.wp-block-heading:not(.wc-block-cart__empty-cart__title) {
  display: none !important;
}
body.vyn-cart-empty ul.products,
body.vyn-cart-empty .cross-sells,
.woocommerce-cart .cart-empty ~ ul.products,
.woocommerce-cart .return-to-shop + .products {
  display: none !important;
}

body.vyn-cart-empty .return-to-shop {
  text-align: center;
  margin-top: 1.25rem;
}

.woocommerce-info.cart-empty,
.cart-empty.woocommerce-info {
  background: transparent !important;
  border: 0 !important;
  font-family: var(--font-display) !important;
  font-size: 1.35rem !important;
  color: var(--color-fg) !important;
  letter-spacing: 0.02em;
}

/* Account login — real Woo form, quieter chrome */
.woocommerce-account h1.page-title,
.woocommerce-cart h1.page-title {
  text-align: center;
  margin: 0.5rem 0 1.25rem;
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
}
.woocommerce-account .woocommerce {
  max-width: 28rem;
  margin: 0 auto;
}
.woocommerce-account .u-column1,
.woocommerce-account .u-column2,
.woocommerce-account .col-1,
.woocommerce-account .col-2 {
  float: none !important;
  width: 100% !important;
  max-width: 100%;
  min-width: 0;
}
.woocommerce-account form.login,
.woocommerce-account form.register,
.woocommerce-ResetPassword {
  background: var(--color-surface) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-lg) !important;
  padding: 1.5rem 1.25rem !important;
  box-shadow: none !important;
}

/* Logged-out My Account: real Woo Login + Create account */
body.vyn-account-login {
  max-width: 100% !important;
}
body.vyn-account-login .woocommerce.ct-woo-unauthorized,
body.vyn-account-login #customer_login {
  max-width: min(56rem, 100%);
  width: 100%;
  margin: 0 auto;
}
body.vyn-account-login .entry-content.is-layout-constrained > .woocommerce {
  max-width: min(56rem, 100%) !important;
}
body.vyn-account-login #customer_login {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  float: none !important;
  width: 100% !important;
  overflow: visible;
}
body.vyn-account-login #customer_login::before,
body.vyn-account-login #customer_login::after {
  display: none !important;
  content: none !important;
}
body.vyn-account-login #customer_login h2 {
  font-family: var(--font-display) !important;
  font-size: clamp(1.45rem, 4vw, 1.85rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 1rem;
}
body.vyn-account-login form.login,
body.vyn-account-login form.register {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
body.vyn-account-login .woocommerce-form-row,
body.vyn-account-login form.login .form-row,
body.vyn-account-login form.register .form-row {
  margin: 0 0 0.9rem;
  width: 100%;
  float: none !important;
}
body.vyn-account-login label {
  display: block;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 0.4rem;
}
body.vyn-account-login input.input-text,
body.vyn-account-login input.woocommerce-Input,
body.vyn-account-login .woocommerce-Input--text {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 3rem;
  font-size: 16px !important;
  line-height: 1.4;
  padding: 0.75rem 0.9rem !important;
  box-sizing: border-box;
}
body.vyn-account-login .password-input {
  display: block;
  width: 100%;
  position: relative;
}
body.vyn-account-login button.woocommerce-form-login__submit,
body.vyn-account-login button.woocommerce-form-register__submit {
  width: 100%;
  min-height: 3rem;
  margin-top: 0.35rem;
}
body.vyn-account-login .woocommerce-form-login__rememberme {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  text-transform: none;
  letter-spacing: 0.01em;
  font-size: 0.88rem;
  font-weight: 400;
  margin-bottom: 0.75rem;
}
body.vyn-account-login .lost_password {
  margin: 0.85rem 0 0;
  text-align: center;
  font-size: 0.88rem;
}
body.vyn-account-login form.register > p:not(.form-row):not(.woocommerce-form-row) {
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--color-fg);
  opacity: 0.78;
  margin: 0 0 1rem;
}
body.vyn-account-login .woocommerce-privacy-policy-text {
  font-size: 0.8rem;
  line-height: 1.5;
  opacity: 0.75;
  margin: 0 0 1rem;
}
body.vyn-account-login .woocommerce-privacy-policy-text a {
  text-decoration: underline;
}

@media (max-width: 899px) {
  body.vyn-account-login #customer_login {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  body.vyn-account-login form.login,
  body.vyn-account-login form.register {
    padding: 1.25rem 1rem !important;
  }
}

body.vyn-otp-pending #customer_login {
  display: none !important;
}
.vyn-otp-panel {
  max-width: 28rem;
  margin: 0 auto 2rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 1.5rem 1.25rem;
}
.vyn-otp-panel h2 {
  font-family: var(--font-display) !important;
  font-size: clamp(1.45rem, 4vw, 1.85rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 0.75rem;
}
.vyn-otp-copy {
  text-align: center;
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0 0 1.15rem;
  color: var(--color-muted);
}
.vyn-otp-copy strong { color: var(--color-fg); }
.vyn-otp-form .form-row { margin: 0 0 1rem; }
.vyn-otp-form input[type="text"] {
  width: 100%;
  min-height: 3rem;
  font-size: 1.35rem !important;
  letter-spacing: 0.28em;
  text-align: center;
}
.vyn-otp-form .woocommerce-button {
  width: 100%;
  min-height: 3rem;
}
.vyn-otp-resend {
  display: block;
  width: 100%;
  margin-top: 0.65rem;
  background: transparent;
  border: 0;
  color: var(--color-fg);
  text-decoration: underline;
  font-size: 0.9rem;
  cursor: pointer;
  min-height: 2.5rem;
}
.vyn-otp-back {
  text-align: center;
  margin: 0.85rem 0 0;
  font-size: 0.88rem;
}
.vyn-google-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  width: 100%;
  min-height: 3rem;
  margin: 0 0 0.35rem;
  background: #fff !important;
  color: #1f1f1f !important;
  border: 1px solid #dadce0 !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  box-shadow: none !important;
}
.vyn-google-btn:hover,
.vyn-google-btn:focus {
  background: #f7f8f8 !important;
  color: #1f1f1f !important;
  border-color: #c6c6c6 !important;
}
.vyn-google-btn__icon {
  display: inline-flex;
  width: 18px;
  height: 18px;
}
.vyn-auth-or {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0.85rem 0 1rem;
  color: var(--color-muted);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.vyn-auth-or::before,
.vyn-auth-or::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--color-border);
}
html.vyn-theme-dark .vyn-google-btn {
  background: #fff !important;
  color: #1f1f1f !important;
}

@media (min-width: 900px) {
  body.vyn-account-login #customer_login {
    grid-template-columns: 1fr 1fr;
    gap: 0;
    align-items: stretch;
  }
  body.vyn-account-login #customer_login .u-column1,
  body.vyn-account-login #customer_login .col-1 {
    padding: 0 2rem 0 0;
    border-right: 1px solid var(--color-border);
  }
  body.vyn-account-login #customer_login .u-column2,
  body.vyn-account-login #customer_login .col-2 {
    padding: 0 0 0 2rem;
  }
}


.vyn-404__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  justify-content: center;
  margin-top: 1.25rem;
}

.vyn-contact .vyn-eyebrow {
  margin-bottom: 0.75rem;
}

@media (min-width: 1024px) {
  .woocommerce-shop #primary,
  .tax-product_cat #primary,
  .woocommerce-page #primary {
    max-width: 72rem;
    margin-left: auto;
    margin-right: auto;
  }
}

.vyn-collections--shop {
  margin: 1.5rem 0 2.5rem;
  padding: 0;
}

.vyn-wish {
  position: absolute;
  right: 14px;
  top: 14px;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 999px;
  background: rgb(250 247 242 / 0.94);
  color: var(--color-fg);
  cursor: pointer;
  padding: 0;
  box-shadow: 0 1px 4px rgb(16 13 14 / 0.12);
}
.woocommerce ul.products li.product {
  position: relative;
}
.woocommerce ul.products li.product > .vyn-wish {
  top: 8px;
  right: 8px;
  z-index: 6;
}
.vyn-wish svg {
  width: 1rem;
  height: 1rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
}
.vyn-wish.is-loved svg,
.vyn-wish[aria-pressed="true"] svg {
  fill: currentColor;
}
.single-product .vyn-pdp-gallery-wrap {
  position: relative;
}
.single-product .vyn-pdp-gallery-wrap .vyn-wish {
  position: absolute;
  top: 14px;
  right: 14px;
  margin: 0;
  z-index: 6;
}
.woocommerce ul.products li.product {
  --badge-height: auto;
  --badge-min-width: 0;
  --badge-padding: 2px 6px;
  --badge-top: 6px;
  --badge-left: 6px;
  --badge-radius: 999px;
}
.vyn-sold-badge {
  position: absolute;
  top: 6px;
  left: 6px;
  z-index: 8;
  display: inline-flex;
  align-items: center;
  min-height: 0;
  height: auto;
  min-width: 0;
  padding: 2px 6px;
  border-radius: 999px;
  background: #702638;
  color: #F4EFE7;
  font-size: 0.4375rem;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  box-shadow: none;
  pointer-events: none;
}
.woocommerce ul.products li.product figure {
  position: relative;
}
.woocommerce ul.products li.product .out-of-stock-badge,
.woocommerce ul.products .out-of-stock-badge,
.woocommerce ul.products figure .out-of-stock-badge {
  position: absolute !important;
  top: 6px !important;
  left: 6px !important;
  right: auto !important;
  bottom: auto !important;
  inset: auto auto auto 6px !important;
  inset-inline-start: 6px !important;
  inset-inline-end: auto !important;
  transform: none !important;
  z-index: 8 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: auto !important;
  min-height: 0 !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  padding: 2px 6px !important;
  border-radius: 999px !important;
  font-size: 0.4375rem !important;
  line-height: 1.2 !important;
  letter-spacing: 0.08em !important;
  font-weight: 600 !important;
  background: #702638 !important;
  color: #F4EFE7 !important;
  border: 0 !important;
  box-shadow: none !important;
  pointer-events: none !important;
}
.single-product form.cart .vyn-wish {
  display: none !important;
}
.vyn-wishlist {
  max-width: 40rem;
  margin: 0 auto;
  padding: 0.75rem var(--vyn-gutter) 6.5rem;
}
.vyn-wishlist h1 {
  text-align: center;
  font-size: clamp(2.375rem, 10vw, 2.625rem) !important;
  line-height: 1.15 !important;
  letter-spacing: 0.02em;
  margin: 0.75rem 0 1.25rem;
  font-weight: 500;
}
.vyn-wishlist [data-vyn-wish-list],
.vyn-wishlist .vyn-wish-list {
  display: flex !important;
  flex-direction: column;
  gap: 0.85rem;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: none !important;
}
.vyn-wishlist [data-vyn-wish-empty][hidden],
.vyn-wishlist [data-vyn-wish-list][hidden] {
  display: none !important;
}
.vyn-wish-card {
  display: grid;
  grid-template-columns: 44% minmax(0, 1fr);
  gap: 0.75rem 0.9rem;
  align-items: stretch;
  width: 100%;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 0.7rem;
  box-sizing: border-box;
}
.vyn-wish-card > * {
  min-width: 0;
}
.vyn-wish-card__media {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--color-bg);
  aspect-ratio: 1 / 1;
  width: 100%;
}
.vyn-wish-card__media a,
.vyn-wish-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.vyn-wish-card__media .vyn-wish {
  position: absolute;
  top: 14px;
  right: 14px;
  left: auto;
  margin: 0;
  z-index: 2;
}
.vyn-wish-card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-width: 0;
  padding: 0.15rem 0.1rem 0.15rem 0;
}
.vyn-wish-card__title {
  margin: 0;
  font-family: var(--font-display) !important;
  font-size: clamp(1.25rem, 4.6vw, 1.375rem) !important;
  line-height: 1.2 !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em;
  text-wrap: wrap !important;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.vyn-wish-card__price {
  margin: 0.35rem 0 0;
  font-family: var(--font-sans) !important;
  font-size: 1rem;
  font-weight: 500;
  color: var(--color-fg);
}
.vyn-wish-card__status {
  margin: 0.2rem 0 0;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.vyn-wish-card__cta {
  margin-top: 0.7rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0 0.9rem;
  border: 1px solid var(--color-fg);
  border-radius: var(--radius-md);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none !important;
  color: var(--color-fg) !important;
  background: transparent;
}
@media (min-width: 640px) {
  .vyn-wish-card {
    grid-template-columns: 36% minmax(0, 1fr);
    gap: 1.1rem;
    padding: 0.9rem;
  }
  .vyn-wish-card__title {
    font-size: 1.375rem !important;
  }
}

/* =============================================================================
   v1.0.6 — single product (variable) — no site redesign
   ============================================================================= */
.single-product div.product {
  max-width: 72rem;
  margin: 0 auto;
  padding: 1rem var(--vyn-gutter) 2.5rem;
}
.single-product .product_title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.45rem, 2.4vw, 1.95rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em;
  line-height: 1.18;
  max-width: none;
  margin: 0 0 0.5rem;
  text-wrap: pretty;
}
.single-product div.product p.price,
.single-product div.product span.price {
  display: block !important;
  font-family: var(--font-sans) !important;
  font-size: 1.05rem !important;
  font-weight: 500 !important;
  color: var(--color-fg) !important;
  margin: 0 0 1.1rem;
}
.single-product .woocommerce-product-details__short-description,
.single-product .woocommerce-product-details__short-description p {
  color: var(--color-muted);
  font-size: 0.92rem;
  max-width: 36rem;
}
.single-product table.variations {
  width: 100%;
  max-width: 28rem;
  border: 0 !important;
  margin: 0 0 1rem;
}
.single-product table.variations th,
.single-product table.variations td {
  border: 0 !important;
  background: transparent !important;
  padding: 0.35rem 0 0.65rem !important;
  text-align: left;
  vertical-align: middle;
}
.single-product table.variations th.label {
  font-family: var(--font-sans) !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-muted) !important;
  width: 5.5rem;
}
.single-product table.variations select {
  width: 100%;
  min-height: 2.75rem;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-md) !important;
  background: var(--color-surface) !important;
  color: var(--color-fg) !important;
  font-family: var(--font-sans) !important;
  font-size: 0.9rem !important;
  padding: 0 0.85rem;
}
.single-product .reset_variations {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted) !important;
}
.single-product .woocommerce-variation-price .price {
  margin: 0.35rem 0 0.85rem;
}
.single-product .woocommerce-variation-availability {
  font-size: 0.8rem;
  color: var(--color-muted);
  margin-bottom: 0.75rem;
}
.single-product form.cart {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex-wrap: nowrap;
  gap: 0.75rem;
  width: 100%;
}
.single-product .ct-cart-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  width: 100%;
}
.single-product form.cart .quantity,
.single-product .quantity[data-type="type-2"] {
  display: inline-flex !important;
  flex-direction: row;
  align-items: stretch;
  width: auto !important;
  min-width: 8.75rem;
  max-width: 100%;
  height: 2.75rem !important;
  min-height: 2.75rem !important;
  --quantity-width: 8.75rem;
  --quantity-height: 2.75rem;
  position: relative;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-md) !important;
  overflow: hidden;
  background: var(--color-surface) !important;
  box-sizing: border-box;
}
.single-product .quantity[data-type="type-2"] .ct-decrease,
.single-product .quantity[data-type="type-2"] .ct-increase {
  position: static !important;
  inset: auto !important;
  width: 2.5rem !important;
  height: 2.75rem !important;
  min-height: 2.75rem !important;
  flex: 0 0 2.5rem;
  display: flex !important;
  align-items: center;
  justify-content: center;
  transform: none !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  color: inherit;
  appearance: none;
}
.single-product .quantity[data-type="type-2"] .ct-decrease {
  order: 1;
}
.single-product .quantity[data-type="type-2"] input.qty {
  order: 2;
}
.single-product .quantity[data-type="type-2"] .ct-increase {
  order: 3;
}
.single-product form.cart .quantity input.qty,
.single-product .quantity[data-type="type-2"] input.qty {
  width: 2.85rem !important;
  min-width: 2.85rem !important;
  max-width: 3.1rem !important;
  height: 2.75rem !important;
  min-height: 2.75rem !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  text-align: center !important;
  font-size: 1rem !important;
  line-height: 2.75rem !important;
  font-variant-numeric: tabular-nums;
  -moz-appearance: textfield;
  appearance: textfield;
  box-sizing: border-box;
}
.single-product form.cart .quantity input.qty::-webkit-outer-spin-button,
.single-product form.cart .quantity input.qty::-webkit-inner-spin-button,
.single-product .quantity[data-type="type-2"] input.qty::-webkit-outer-spin-button,
.single-product .quantity[data-type="type-2"] input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.single-product form.cart .single_add_to_cart_button,
.single-product .vyn-buy-now {
  width: 100%;
  min-height: 2.75rem;
  height: 2.75rem;
  padding: 0 1.35rem !important;
  margin: 0 !important;
  flex: none;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.8rem;
  font-weight: 600;
}
.single-product .vyn-buy-now {
  background: var(--color-fg) !important;
  color: var(--color-primary-fg) !important;
  border: 0 !important;
  border-radius: var(--radius-md) !important;
  cursor: pointer;
}
.single-product .vyn-buy-now.disabled,
.single-product .vyn-buy-now:disabled,
.single-product .vyn-buy-now[aria-disabled="true"] {
  background: var(--color-fg) !important;
  color: var(--color-primary-fg) !important;
  opacity: 0.38 !important;
  pointer-events: none !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}
.single-product .vyn-buy-now.disabled,
.single-product .vyn-buy-now:disabled,
body.postid-321 .single_add_to_cart_button.disabled,
body.postid-321 .single_add_to_cart_button:disabled,
body.postid-321 .vyn-buy-now.disabled,
body.postid-321 .vyn-buy-now:disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}
.single-product form.cart .vyn-wish {
  display: none !important;
}
.single-product .vyn-buy-now-msg {
  margin: 0;
  font-size: 0.8rem;
  color: var(--color-danger);
  letter-spacing: 0.02em;
}
body.postid-321 .stock.out-of-stock {
  display: block !important;
  margin: 0;
  color: var(--color-danger);
  font-size: 0.875rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  order: 20;
}

.single-product .woocommerce-product-gallery {
  margin-bottom: 1.25rem;
}
.single-product .woocommerce-product-gallery,
.single-product div.product div.images {
  width: 100% !important;
  max-width: 100%;
  float: none !important;
}
.single-product .woocommerce-product-gallery img,
.single-product .ct-media-container img {
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: var(--radius-lg);
  outline: none;
}
.single-product .woocommerce-product-gallery figure,
.single-product .ct-media-container {
  width: 100%;
  aspect-ratio: 1 / 1;
}
.single-product .flex-viewport {
  overflow: hidden !important;
  border-radius: 1.25rem;
}
.single-product .woocommerce-product-gallery__image:not(.flex-active-slide) {
  opacity: 0 !important;
  visibility: hidden;
  pointer-events: none;
}
.single-product img.zoomImg,
.single-product .zoomImg {
  display: none !important;
}
.vyn-pdp-gallery-wrap.has-views .woocommerce-product-gallery,
.vyn-pdp-gallery-wrap.has-views .flex-viewport,
.vyn-pdp-gallery-wrap.has-views .ct-media-container {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
  visibility: hidden !important;
}
.vyn-pdp-gallery-wrap.has-views {
  background: #E8DCC8 !important;
  background-image: none !important;
  isolation: isolate;
  touch-action: pan-y;
}
.vyn-pdp-gallery-wrap.has-views::before {
  display: none !important;
}
.vyn-pdp-stage,
.single-product .vyn-pdp-stage,
.vyn-pdp-gallery-wrap img.vyn-pdp-stage {
  display: block !important;
  position: relative;
  z-index: 2;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
  object-fit: cover !important;
  border-radius: 1.25rem;
  background: #E8DCC8;
  mix-blend-mode: normal !important;
  filter: none !important;
  padding: 0 !important;
  opacity: 1 !important;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: auto;
}
.vyn-pdp-gallery-wrap.is-360 {
  cursor: ew-resize;
  touch-action: none;
}
.vyn-pdp-spin-hint {
  position: absolute;
  left: 50%;
  bottom: 14px;
  transform: translateX(-50%);
  z-index: 5;
  margin: 0;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  background: rgb(16 13 14 / 0.55);
  color: #F4EFE7;
  font-size: 0.62rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  pointer-events: none;
  opacity: 0;
}
.vyn-pdp-gallery-wrap.is-360 .vyn-pdp-spin-hint {
  opacity: 1;
}
.vyn-pdp-views {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  max-width: 28rem;
  margin: 0.75rem auto 1.1rem;
  padding: 0 var(--vyn-gutter);
}
.vyn-pdp-views button {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.28rem;
  margin: 0;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: 0.85rem;
  background: var(--color-surface);
  color: var(--color-fg);
  cursor: pointer;
  overflow: hidden;
}
.vyn-pdp-views button.is-on {
  border-color: #C7A566;
  box-shadow: 0 0 0 1px #C7A566;
}
.vyn-pdp-views button img,
.vyn-pdp-views__360 {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  background: #EFE4D4;
}
.vyn-pdp-views__360 {
  display: grid;
  place-items: center;
  font-family: var(--font-display), Georgia, serif;
  font-size: 1.05rem;
  letter-spacing: 0.08em;
  color: #C7A566;
}
.vyn-pdp-views button span:last-child {
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding-bottom: 0.35rem;
}
html.vyn-theme-dark .vyn-pdp-views button {
  background: #191516;
  border-color: #2A2426;
  color: #F4EFE7;
}
@media (min-width: 900px) {
  .vyn-pdp-views {
    margin-left: 0;
    padding-left: 0;
  }
}
.single-product div.product div.summary {
  width: 100% !important;
  float: none !important;
  max-width: none !important;
}
@media (min-width: 900px) {
  .single-product div.product {
    display: block;
  }
  .single-product .product-entry-wrapper,
  .single-product .product-entry-wrapper.is-width-constrained {
    display: grid !important;
    grid-template-columns: minmax(0, 1.2fr) minmax(28rem, 1fr) !important;
    grid-template-areas:
      "gallery summary"
      "views summary";
    gap: 1rem 2.75rem;
    width: 100% !important;
    max-width: none !important;
    align-items: start;
  }
  .single-product .vyn-pdp-gallery-wrap,
  .single-product div.product .woocommerce-product-gallery,
  .single-product div.product div.images {
    grid-area: gallery;
    width: 100% !important;
    max-width: none !important;
  }
  .single-product .vyn-pdp-views {
    grid-area: views;
    margin: 0;
    padding: 0;
  }
  .single-product div.product .summary,
  .single-product div.product div.summary {
    grid-area: summary;
    width: 100% !important;
    max-width: none !important;
  }
}
.single-product .out-of-stock-badge {
  display: none !important;
}
.single-product .quantity.is-locked input.qty {
  display: block !important;
  visibility: visible !important;
  color: var(--color-fg) !important;
}
.single-product .quantity.is-locked {
  opacity: 0.55;
}
.single-product .related.products,
.single-product .upsells.products,
.single-product #reviews,
.single-product .woocommerce-tabs,
.single-product .woocommerce-noreviews {
  display: none !important;
}
.single-product .product_meta .sku_wrapper {
  display: none;
}
@media (max-width: 767px) {
  .single-product div.product {
    padding-bottom: 6.5rem;
  }
  .single-product form.cart {
    width: 100%;
  }
  .single-product form.cart .single_add_to_cart_button,
  .single-product .vyn-buy-now {
    width: 100%;
    flex: none;
  }
}

/* Out of stock: buttons stay visible, quantity locked, one availability line */
.single-product form.cart.is-oos .ct-increase,
.single-product form.cart.is-oos .ct-decrease,
.single-product form.cart.is-oos input.qty {
  pointer-events: none;
  cursor: not-allowed;
  opacity: 0.45;
}
.single-product .vyn-avail,
.single-product p.stock.out-of-stock.vyn-avail {
  display: block !important;
  margin: 0;
  color: var(--color-muted);
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.single-product .woocommerce-variation-availability,
.single-product .woocommerce-error,
.single-product .woocommerce-notices-wrapper .woocommerce-error {
  display: none !important;
}
.single-product .vyn-buy-now.disabled,
.single-product .vyn-buy-now:disabled,
.single-product .single_add_to_cart_button.disabled,
.single-product .single_add_to_cart_button:disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}

/* Category editorial heroes — CSS composition only */
body.tax-product_cat .hero-section {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-height: 250px !important;
  height: 250px !important;
  padding: 0 !important;
  margin: 0 calc(-1 * var(--vyn-gutter)) 0.15rem !important;
  width: calc(100% + 2 * var(--vyn-gutter));
  max-width: none;
  overflow: hidden;
  isolation: isolate;
  background-color: #F4EFE7;
}
@media (min-width: 768px) {
  body.tax-product_cat .hero-section {
    min-height: 300px !important;
    height: 300px !important;
  }
}
@media (min-width: 1024px) {
  body.tax-product_cat .hero-section {
    min-height: 340px !important;
    height: 340px !important;
  }
}
body.woocommerce-shop .hero-section .entry-header,
body.tax-product_cat .hero-section .entry-header {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 1.25rem !important;
  text-align: center;
  background: none !important;
}
body.tax-product_cat .hero-section .page-title {
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--font-display) !important;
  font-size: clamp(1.85rem, 6.2vw, 3.05rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase;
  line-height: 1.1 !important;
  color: #100D0E !important;
  text-shadow: 0 1px 0 rgb(244 239 231 / 0.25);
}
body.woocommerce-shop .hero-section::before,
body.woocommerce-shop .hero-section::after,
body.tax-product_cat .hero-section::before,
body.tax-product_cat .hero-section::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
body.tax-product_cat .hero-section::before {
  inset: 0;
  z-index: 1;
  opacity: 0.22;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
}
body.woocommerce-shop .woocommerce-products-header:empty,
body.tax-product_cat .woocommerce-products-header:empty {
  display: none !important;
}

/* Shop / ALL hero */
body.woocommerce-shop .hero-section {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-height: 250px !important;
  height: 250px !important;
  padding: 0 !important;
  margin: 0 calc(-1 * var(--vyn-gutter)) 0.15rem !important;
  width: calc(100% + 2 * var(--vyn-gutter));
  max-width: none;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(90% 70% at 16% 12%, rgb(199 165 102 / 0.38), transparent 56%),
    radial-gradient(70% 80% at 92% 90%, rgb(112 38 56 / 0.12), transparent 58%),
    linear-gradient(165deg, #F4EFE7 0%, #E8DFD0 48%, #D4C4AA 100%);
}
@media (min-width: 768px) {
  body.woocommerce-shop .hero-section {
    min-height: 300px !important;
    height: 300px !important;
  }
}
@media (min-width: 1024px) {
  body.woocommerce-shop .hero-section {
    min-height: 340px !important;
    height: 340px !important;
  }
}
body.woocommerce-shop .hero-section .page-title {
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--font-display) !important;
  font-size: clamp(1.85rem, 6.2vw, 3.05rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase;
  line-height: 1.1 !important;
  color: #100D0E !important;
  text-shadow: 0 1px 0 rgb(244 239 231 / 0.35);
}
body.woocommerce-shop .hero-section::before {
  inset: 0;
  z-index: 1;
  opacity: 0.22;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
}
body.woocommerce-shop .vyn-shop-cats {
  margin-top: 0.75rem;
}
body.woocommerce-shop .ct-container[data-vertical-spacing] {
  padding-top: 0.85rem !important;
}
html.vyn-theme-dark body.woocommerce-shop .hero-section {
  background:
    radial-gradient(90% 70% at 14% 12%, rgb(199 165 102 / 0.24), transparent 56%),
    radial-gradient(70% 80% at 90% 88%, rgb(112 38 56 / 0.34), transparent 58%),
    linear-gradient(165deg, #24181C 0%, #191516 48%, #100D0E 100%);
}
html.vyn-theme-dark body.woocommerce-shop .hero-section .page-title {
  color: #F4EFE7 !important;
  text-shadow: 0 1px 16px rgb(16 13 14 / 0.45);
}
html.vyn-theme-dark body.woocommerce-shop .hero-section::before {
  mix-blend-mode: overlay;
  opacity: 0.28;
}

/* NEW IN — ivory / champagne light-play */
body.term-new-arrivals .hero-section {
  background:
    radial-gradient(85% 70% at 12% 8%, rgb(199 165 102 / 0.55), transparent 54%),
    radial-gradient(70% 90% at 92% 100%, rgb(112 38 56 / 0.16), transparent 58%),
    repeating-linear-gradient(115deg, rgb(16 13 14 / 0.035) 0 1px, transparent 1px 7px),
    linear-gradient(165deg, #F3EBE0 0%, #E7D5B6 48%, #CDB68E 100%);
}
body.term-new-arrivals .hero-section::after {
  width: 62%;
  height: 150%;
  top: -32%;
  right: -14%;
  border-radius: 50%;
  background:
    radial-gradient(circle, rgb(255 248 235 / 0.35), transparent 64%),
    radial-gradient(circle at 30% 70%, rgb(199 165 102 / 0.28), transparent 60%);
  box-shadow: inset 0 0 80px rgb(16 13 14 / 0.06);
}
body.term-new-arrivals .hero-section .page-title {
  color: #100D0E !important;
  text-shadow: 0 1px 0 rgb(244 239 231 / 0.35);
}

/* BAGS — warm stone architectural */
body.term-bags .hero-section {
  background:
    radial-gradient(80% 90% at 86% 20%, rgb(255 252 246 / 0.4), transparent 58%),
    linear-gradient(180deg, #E6D9C6 0%, #CDB89A 100%);
}
body.term-bags .hero-section::after {
  inset: 18% 12% 18% auto;
  width: 38%;
  border-radius: 4px 28px 4px 28px;
  background: rgb(244 239 231 / 0.28);
  box-shadow: -48px 28px 0 rgb(16 13 14 / 0.05);
}

/* MEN — charcoal menswear */
body.term-men .hero-section {
  background:
    radial-gradient(80% 90% at 8% 0%, rgb(244 239 231 / 0.14), transparent 52%),
    linear-gradient(158deg, #1C1819 0%, #100D0E 52%, #24181C 100%);
}
body.term-men .hero-section .page-title {
  color: #F4EFE7 !important;
  text-shadow: 0 1px 18px rgb(16 13 14 / 0.35);
}
body.term-men .hero-section::before {
  mix-blend-mode: overlay;
  opacity: 0.18;
}
body.term-men .hero-section::after {
  inset: 0 auto 0 0;
  width: 42%;
  background: linear-gradient(90deg, rgb(244 239 231 / 0.08), transparent);
}

/* JEWELLERY — champagne satin */
body.term-jewellery .hero-section {
  background:
    radial-gradient(70% 60% at 72% 16%, rgb(255 248 235 / 0.72), transparent 58%),
    radial-gradient(55% 80% at 14% 92%, rgb(199 165 102 / 0.5), transparent 55%),
    linear-gradient(142deg, #EBD9B4 0%, #C7A566 50%, #B08A48 100%);
}
body.term-jewellery .hero-section::after {
  inset: -10% -20% auto auto;
  width: 70%;
  height: 80%;
  background: linear-gradient(125deg, rgb(255 255 255 / 0.28), transparent 62%);
  transform: rotate(-8deg);
}

/* ACCESSORIES — ivory + oxblood abstract */
body.term-accessories .hero-section {
  background:
    radial-gradient(48% 80% at 6% 52%, rgb(112 38 56 / 0.42), transparent 64%),
    radial-gradient(42% 55% at 94% 84%, rgb(199 165 102 / 0.42), transparent 58%),
    linear-gradient(180deg, #F4EFE7 0%, #E4D5C4 100%);
}
body.term-accessories .hero-section::after {
  left: -8%;
  top: -30%;
  width: 42%;
  height: 160%;
  border-radius: 50%;
  background: radial-gradient(circle, rgb(112 38 56 / 0.2), transparent 70%);
}

body.tax-product_cat .vyn-shop-cats {
  margin-top: 0.75rem;
}
body.tax-product_cat .ct-container[data-vertical-spacing] {
  padding-top: 0.85rem !important;
}

/* Dark-mode category heroes — keep identity, restore title contrast */
html.vyn-theme-dark body.tax-product_cat .hero-section {
  background-color: #191516;
}
html.vyn-theme-dark body.tax-product_cat .hero-section .page-title {
  color: #F4EFE7 !important;
  text-shadow: 0 1px 16px rgb(16 13 14 / 0.45);
}
html.vyn-theme-dark body.tax-product_cat .hero-section::before {
  mix-blend-mode: overlay;
  opacity: 0.28;
}

html.vyn-theme-dark body.term-new-arrivals .hero-section {
  background:
    radial-gradient(90% 70% at 14% 12%, rgb(199 165 102 / 0.28), transparent 56%),
    radial-gradient(70% 80% at 90% 88%, rgb(112 38 56 / 0.35), transparent 58%),
    linear-gradient(165deg, #24181C 0%, #191516 46%, #100D0E 100%);
}
html.vyn-theme-dark body.term-new-arrivals .hero-section .page-title {
  color: #F4EFE7 !important;
}

html.vyn-theme-dark body.term-bags .hero-section {
  background:
    radial-gradient(80% 90% at 86% 20%, rgb(199 165 102 / 0.16), transparent 58%),
    linear-gradient(180deg, #2A2420 0%, #191516 100%);
}
html.vyn-theme-dark body.term-bags .hero-section::after {
  background: rgb(244 239 231 / 0.06);
  box-shadow: -48px 28px 0 rgb(199 165 102 / 0.08);
}

html.vyn-theme-dark body.term-men .hero-section {
  background:
    radial-gradient(80% 90% at 10% 0%, rgb(199 165 102 / 0.14), transparent 52%),
    linear-gradient(158deg, #2A2224 0%, #191516 48%, #100D0E 100%);
}
html.vyn-theme-dark body.term-men .hero-section .page-title {
  color: #F4EFE7 !important;
  text-shadow: 0 1px 20px rgb(0 0 0 / 0.55);
}

html.vyn-theme-dark body.term-jewellery .hero-section {
  background:
    radial-gradient(70% 60% at 72% 16%, rgb(199 165 102 / 0.38), transparent 58%),
    linear-gradient(142deg, #3A2E22 0%, #241C16 50%, #191516 100%);
}
html.vyn-theme-dark body.term-jewellery .hero-section .page-title {
  color: #F4EFE7 !important;
}

html.vyn-theme-dark body.term-accessories .hero-section {
  background:
    radial-gradient(48% 80% at 8% 52%, rgb(112 38 56 / 0.55), transparent 64%),
    radial-gradient(42% 55% at 94% 84%, rgb(199 165 102 / 0.22), transparent 58%),
    linear-gradient(180deg, #1C1618 0%, #100D0E 100%);
}
html.vyn-theme-dark body.term-accessories .hero-section .page-title {
  color: #F4EFE7 !important;
}

/* Appearance switcher — compact accordion in mobile drawer */
.vyn-appearance {
  margin-top: 0.35rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--color-border);
}
.vyn-appearance__toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 2.4rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-fg);
  font-family: var(--font-sans);
  cursor: pointer;
  text-align: left;
}
.vyn-appearance__label {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.vyn-appearance__current {
  margin-left: auto;
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-fg);
}
.vyn-appearance__chev {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
  transition: transform 0.2s ease;
}
.vyn-appearance__toggle[aria-expanded="true"] .vyn-appearance__chev {
  transform: rotate(180deg);
}
.vyn-appearance__opts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.35rem;
  padding: 0.4rem 0 0.1rem;
}
.vyn-appearance__opts[hidden] {
  display: none !important;
}
.vyn-appearance__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2rem;
  min-height: 2rem;
  max-height: 2.125rem;
  padding: 0 0.3rem;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: var(--color-surface);
  color: var(--color-fg);
  font-family: var(--font-sans);
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}
.vyn-appearance__btn.is-active,
.vyn-appearance__btn[aria-pressed="true"] {
  background: var(--color-fg);
  color: var(--color-primary-fg);
  border-color: var(--color-fg);
}
.vyn-appearance__btn:focus-visible {
  outline: 2px solid #C7A566;
  outline-offset: 2px;
}

/* Dark mode tokens */
html.vyn-theme-dark {
  color-scheme: dark;
  --color-bg: #100D0E;
  --color-surface: #191516;
  --color-fg: #F4EFE7;
  --color-muted: #B9AEA8;
  --color-subtle: #B9AEA8;
  --color-primary: #F4EFE7;
  --color-primary-fg: #100D0E;
  --color-border: #2A2426;
  --espresso: #F4EFE7;
  --dark-surface: #191516;
  --ivory: #F4EFE7;
  --color-danger: #C97B73;
}
html.vyn-theme-dark .vyn-app-header {
  background: rgb(16 13 14 / 0.94);
  border-bottom-color: rgb(42 36 38 / 0.9);
}
html.vyn-theme-dark .vyn-bottom-nav {
  background: rgb(16 13 14 / 0.95);
}
html.vyn-theme-dark .vyn-search {
  background: rgb(16 13 14 / 0.96);
}
html.vyn-theme-dark .vyn-ticker {
  background: #100D0E;
  border-bottom-color: #2A2426;
  color: #F4EFE7;
}
html.vyn-theme-dark .vyn-ticker__track span {
  color: #F4EFE7;
}
html.vyn-theme-dark img,
html.vyn-theme-dark .woocommerce ul.products li.product a img,
html.vyn-theme-dark .woocommerce-product-gallery img,
html.vyn-theme-dark .vyn-pdp-gallery-wrap img,
html.vyn-theme-dark .vyn-wish-card img {
  filter: none !important;
}

/* Premium studio ground for product photos (existing + future) */
/* Product studio plate — cream editorial (stays cream in dark UI, like a photo) */
.woocommerce ul.products li.product .ct-media-container,
.woocommerce ul.products li.product .vyn-product-media,
.vyn-wish-card__media,
.single-product .woocommerce-product-gallery,
.single-product .ct-media-container {
  isolation: isolate;
  position: relative;
  overflow: hidden;
  border-radius: 1.25rem;
  background-color: #EFE4D4 !important;
  background-image: url("../img/studio-cream.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
  box-shadow: 0 18px 40px rgb(16 13 14 / 0.16);
}
html.vyn-theme-dark .woocommerce ul.products li.product .ct-media-container,
html.vyn-theme-dark .woocommerce ul.products li.product .vyn-product-media,
html.vyn-theme-dark .vyn-wish-card__media,
html.vyn-theme-dark .single-product .woocommerce-product-gallery,
html.vyn-theme-dark .single-product .ct-media-container {
  background-color: #EFE4D4 !important;
  background-image: url("../img/studio-cream.jpg") !important;
  box-shadow: 0 18px 40px rgb(0 0 0 / 0.35);
}
.woocommerce ul.products li.product .vyn-product-media {
  position: relative;
  overflow: hidden;
  border-radius: 1.15rem;
}
.woocommerce ul.products li.product .vyn-product-media img,
.woocommerce ul.products li.product .ct-media-container img,
.vyn-wish-card__media img,
.single-product .woocommerce-product-gallery img,
.single-product .ct-media-container img {
  mix-blend-mode: multiply;
  background: transparent !important;
  object-fit: contain !important;
  padding: 11% 12%;
  box-sizing: border-box;
}
.vyn-product-media::before,
.vyn-wish-card__media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(118deg, transparent 40%, rgb(255 255 255 / 0.32) 51%, transparent 62%);
  mix-blend-mode: soft-light;
}
.vyn-product-stamp {
  position: absolute;
  right: 10px;
  bottom: 8px;
  left: auto;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: auto;
  height: auto;
  background: none;
  color: #14110F;
  opacity: 0.9;
  pointer-events: none;
  mix-blend-mode: multiply;
  gap: 0.08rem;
}
.vyn-stamp-v {
  width: 1.15rem;
  height: 1.15rem;
  fill: currentColor;
  display: block;
}
.vyn-stamp-word {
  font-family: var(--font-display), Georgia, serif;
  font-size: 0.42rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1;
  color: inherit;
}
.woocommerce ul.products li.product .vyn-product-stamp,
.vyn-wish-card__media .vyn-product-stamp {
  right: 8px;
  bottom: 6px;
  opacity: 0.82;
}
.woocommerce ul.products li.product .vyn-stamp-v,
.vyn-wish-card__media .vyn-stamp-v {
  width: 0.95rem;
  height: 0.95rem;
}
.woocommerce ul.products li.product .vyn-stamp-word,
.vyn-wish-card__media .vyn-stamp-word {
  font-size: 0.34rem;
}
.single-product .vyn-pdp-gallery-wrap .vyn-product-stamp {
  right: 12px;
  bottom: 10px;
  opacity: 0.92;
  mix-blend-mode: multiply;
  filter: none;
}
.single-product .vyn-pdp-gallery-wrap .vyn-stamp-v {
  width: 1.35rem;
  height: 1.35rem;
}
.single-product .vyn-pdp-gallery-wrap .vyn-stamp-word {
  font-size: 0.5rem;
  letter-spacing: 0.18em;
}
html.vyn-theme-dark .vyn-product-stamp,
html.vyn-theme-dark .single-product .vyn-pdp-gallery-wrap .vyn-product-stamp {
  color: #A56B3C;
  mix-blend-mode: normal;
  opacity: 0.95;
}

/* My Account — no leftover white plate under nav */
html.vyn-theme-dark .woocommerce-account .woocommerce,
html.vyn-theme-dark .woocommerce-account .woocommerce-MyAccount-navigation,
html.vyn-theme-dark .woocommerce-account .woocommerce-MyAccount-content,
html.vyn-theme-dark .woocommerce-account .entry-content,
html.vyn-theme-dark .woocommerce-account .ct-container {
  background: transparent !important;
  box-shadow: none !important;
}
.woocommerce-account .woocommerce-MyAccount-content > p:empty {
  display: none !important;
}
html.vyn-theme-dark .woocommerce-account .woocommerce-MyAccount-navigation ul,
html.vyn-theme-dark .woocommerce-account .woocommerce-MyAccount-navigation ul li,
html.vyn-theme-dark .woocommerce-account .woocommerce-MyAccount-navigation ul li a,
html.vyn-theme-dark .woocommerce-account .woocommerce-MyAccount-navigation ul li a:visited {
  background: #191516 !important;
  color: #F4EFE7 !important;
  border-color: #2A2426;
}
html.vyn-theme-dark .woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
html.vyn-theme-dark .woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a:visited,
html.vyn-theme-dark .woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a:hover {
  background: #702638 !important;
  color: #F4EFE7 !important;
}
html.vyn-theme-light {
  color-scheme: light;
}

html.vyn-theme-dark .vyn-drawer {
  background: rgb(0 0 0 / 0.72);
}
html.vyn-theme-dark .vyn-drawer__panel {
  background: #191516;
}
html.vyn-theme-dark .vyn-sold-badge {
  background: #702638 !important;
  color: #F4EFE7 !important;
  box-shadow: none;
}
html.vyn-theme-dark .vyn-wish {
  background: #191516;
  color: #F4EFE7;
  box-shadow: 0 1px 4px rgb(0 0 0 / 0.35);
}
html.vyn-theme-dark .vyn-wish.is-loved,
html.vyn-theme-dark .vyn-wish[aria-pressed="true"] {
  background: #702638;
  color: #F4EFE7;
}
html.vyn-theme-dark .vyn-wish.is-loved svg,
html.vyn-theme-dark .vyn-wish[aria-pressed="true"] svg {
  fill: #F4EFE7;
  stroke: #F4EFE7;
}
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price *,
.woocommerce ul.products li.product .woocommerce-Price-amount,
.woocommerce ul.products li.product a .woocommerce-Price-amount {
  color: var(--color-fg) !important;
}
html.vyn-theme-dark .woocommerce ul.products li.product .price,
html.vyn-theme-dark .woocommerce ul.products li.product .price *,
html.vyn-theme-dark .woocommerce ul.products li.product .woocommerce-Price-amount,
html.vyn-theme-dark .vyn-wish-card__price,
html.vyn-theme-dark .single-product div.product p.price,
html.vyn-theme-dark .single-product div.product span.price,
html.vyn-theme-dark .single-product .price .woocommerce-Price-amount {
  color: #C7A566 !important;
}

html.vyn-theme-dark .woocommerce table.shop_table,
html.vyn-theme-dark .woocommerce-cart-form,
html.vyn-theme-dark .cart_totals,
html.vyn-theme-dark .woocommerce-MyAccount-content,
html.vyn-theme-dark .woocommerce-EditAccountForm,
html.vyn-theme-dark .woocommerce-address-fields,
html.vyn-theme-dark .vyn-legal,
html.vyn-theme-dark .vyn-faq,
html.vyn-theme-dark .vyn-contact,
html.vyn-theme-dark .vyn-faq details,
html.vyn-theme-dark .vyn-wish-card,
html.vyn-theme-dark .vyn-sort-sheet__panel {
  background: var(--color-surface) !important;
  color: var(--color-fg) !important;
  border-color: var(--color-border) !important;
}
html.vyn-theme-dark .vyn-appearance__btn.is-active,
html.vyn-theme-dark .vyn-appearance__btn[aria-pressed="true"] {
  background: #F4EFE7 !important;
  color: #100D0E !important;
  border-color: #F4EFE7 !important;
}
html.vyn-theme-dark input.input-text,
html.vyn-theme-dark input.woocommerce-Input,
html.vyn-theme-dark textarea,
html.vyn-theme-dark select,
html.vyn-theme-dark .select2-container .select2-selection {
  background: #191516 !important;
  color: #F4EFE7 !important;
  border-color: #2A2426 !important;
}
html.vyn-theme-dark .woocommerce-message,
html.vyn-theme-dark .woocommerce-info,
html.vyn-theme-dark .woocommerce-error {
  background: #191516 !important;
  color: #F4EFE7 !important;
  border-color: #2A2426 !important;
}
html.vyn-theme-dark .vyn-shop-cats a {
  background: transparent;
  color: #F4EFE7 !important;
  border-color: #2A2426;
}
html.vyn-theme-dark .vyn-shop-cats a.is-current {
  background: #F4EFE7 !important;
  color: #100D0E !important;
  border-color: #F4EFE7;
}


/* My Account navigation — oxblood active, no Woo blue */
.woocommerce-account .woocommerce-MyAccount-navigation {
  margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md, 12px);
  overflow: hidden;
  background: var(--color-surface);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li {
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child {
  border-bottom: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:visited {
  display: flex !important;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  padding: 0.85rem 1rem !important;
  background: var(--color-surface) !important;
  color: var(--color-fg) !important;
  text-decoration: none !important;
  font-family: var(--font-sans) !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em;
  box-shadow: none !important;
  border: 0 !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a svg,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a .ct-icon,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a i {
  color: var(--color-fg) !important;
  fill: currentColor !important;
  stroke: currentColor;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a::before {
  color: var(--color-fg) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:focus-visible {
  background: color-mix(in srgb, var(--champagne, #C7A566) 16%, var(--color-surface)) !important;
  color: var(--burgundy, #702638) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover svg,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover .ct-icon,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover i,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover::before,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:focus-visible svg,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:focus-visible .ct-icon,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:focus-visible i,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:focus-visible::before {
  color: #702638 !important;
  fill: currentColor !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:focus-visible {
  outline: 2px solid #C7A566;
  outline-offset: -2px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a:visited,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a:focus,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a:focus-visible {
  background: #702638 !important;
  color: #F4EFE7 !important;
  outline: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a svg,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a .ct-icon,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a i,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a::before {
  color: #F4EFE7 !important;
  fill: currentColor !important;
  stroke: currentColor;
}
@media (min-width: 1024px) {
  .woocommerce-account .woocommerce-MyAccount-navigation {
    margin-bottom: 0;
  }
}

/* Account dashboard: no empty well under Logout; pull footer up */
body.woocommerce-account #main-container,
body.woocommerce-account #main,
body.woocommerce-account #primary,
body.woocommerce-account .site-main,
body.woocommerce-account .ct-container,
body.woocommerce-account .ct-container-full,
body.woocommerce-account .entry-content,
body.woocommerce-account [data-vertical-spacing] {
  min-height: 0 !important;
  flex: 0 1 auto !important;
}
body.woocommerce-account #main-container {
  display: block !important;
  height: auto !important;
}
body.woocommerce-account .woocommerce-MyAccount-content:not(:has(*)),
body.woocommerce-account .woocommerce-MyAccount-content:empty,
body.logged-in.woocommerce-account:not(.woocommerce-orders):not(.woocommerce-view-order):not(.woocommerce-edit-address):not(.woocommerce-edit-account):not(.woocommerce-lost-password) .woocommerce-MyAccount-content {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}
body.woocommerce-account .woocommerce-MyAccount-navigation {
  margin-bottom: 0 !important;
}
body.woocommerce-account .woocommerce {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
body.woocommerce-account .ct-footer,
body.woocommerce-account footer.ct-footer,
body.woocommerce-account #footer {
  margin-top: 0 !important;
}
body.woocommerce-account .vyn-site-footer {
  margin-top: 0 !important;
  padding-top: 0.7rem !important;
  padding-bottom: 0.5rem !important;
}
body.woocommerce-account .vyn-legal,
body.woocommerce-account.woocommerce-account {
  margin-top: 0 !important;
  padding-bottom: 0.5rem;
}

/* =============================================================================
   VYNTERA PDP master — fashion commerce (original, not cloned)
   ============================================================================= */
.single-product .vyn-pdp-share-row {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  margin: 0.35rem 0 0.85rem;
}
.vyn-share,
.vyn-size-guide-btn {
  border: 0;
  background: none;
  padding: 0;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-muted);
  cursor: pointer;
}
.vyn-share:hover,
.vyn-size-guide-btn:hover { color: var(--color-accent); }

.single-product form.cart.has-swatches table.variations,
.single-product form.variations_form.has-swatches table.variations {
  display: none !important;
}
.vyn-swatches { margin: 0.35rem 0 1rem; }
.vyn-swatches__label {
  margin: 0 0 0.4rem;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.vyn-swatches__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 0.85rem;
}
.vyn-swatch--colour {
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 999px;
  border: 1px solid rgb(16 13 14 / 0.18);
  background: var(--swatch);
  padding: 0;
  cursor: pointer;
}
.vyn-swatch--colour.is-on {
  box-shadow: 0 0 0 2px var(--color-bg), 0 0 0 3px #C7A566;
}
.vyn-swatch--size {
  min-width: 2.6rem;
  height: 2.35rem;
  padding: 0 0.55rem;
  border: 1px solid var(--color-border);
  border-radius: 0.55rem;
  background: var(--color-surface);
  color: var(--color-fg);
  font-size: 0.78rem;
  cursor: pointer;
}
.vyn-swatch--size.is-on {
  border-color: #702638;
  background: #702638;
  color: #F4EFE7;
}

.vyn-pincode,
.vyn-notify {
  margin: 1.1rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
  max-width: 28rem;
}
.vyn-pincode__label,
.vyn-notify__label,
.vyn-newsletter p {
  margin: 0 0 0.45rem;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.vyn-pincode__row,
.vyn-notify__row,
.vyn-newsletter__row {
  display: flex;
  gap: 0.4rem;
}
.vyn-pincode input,
.vyn-notify input,
.vyn-newsletter input {
  flex: 1;
  min-height: 2.6rem;
  border: 1px solid var(--color-border);
  border-radius: 0.55rem;
  background: var(--color-surface);
  color: var(--color-fg);
  padding: 0 0.75rem;
}
.vyn-pincode button,
.vyn-notify button,
.vyn-newsletter button {
  min-height: 2.6rem;
  padding: 0 0.95rem;
  border: 0;
  border-radius: 0.55rem;
  background: #702638;
  color: #F4EFE7;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.68rem;
  cursor: pointer;
}
.vyn-pincode__msg,
.vyn-notify__msg,
.vyn-newsletter__msg {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
  color: var(--color-muted);
}

.vyn-pdp-sticky { display: none; }
@media (max-width: 899px) {
  body.single-product {
    padding-bottom: calc(var(--vyn-bottom-nav-h) + 4.65rem + var(--vyn-safe-bottom)) !important;
  }
  .vyn-pdp-sticky {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    column-gap: 0.75rem;
    align-items: center;
    position: fixed;
    left: 0;
    right: 0;
    bottom: calc(var(--vyn-bottom-nav-h) + var(--vyn-safe-bottom));
    z-index: 35;
    padding: 0.55rem 1rem;
    background: rgb(250 247 242 / 0.96);
    border-top: 1px solid var(--color-border);
    backdrop-filter: blur(12px);
  }
  html.vyn-theme-dark .vyn-pdp-sticky {
    background: rgb(16 13 14 / 0.94);
    border-top-color: #2A2426;
  }
  .vyn-pdp-sticky__price {
    font-family: var(--font-display), Georgia, serif;
    font-size: 1.15rem;
  }
  .vyn-pdp-sticky__note {
    grid-column: 1;
    margin: 0;
    font-size: 0.62rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-muted);
  }
  .vyn-pdp-sticky__cta {
    grid-row: 1 / span 2;
    grid-column: 2;
    justify-self: end;
    min-height: 2.55rem;
    padding: 0 1.1rem;
    border: 0;
    border-radius: 0.55rem;
    background: #702638;
    color: #F4EFE7;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-size: 0.68rem;
  }
}
.vyn-card-colours {
  display: none !important;
}

/* Equal product cards — New In, shop, categories, related */
.woocommerce ul.products,
ul.products.vyn-products {
  align-items: stretch;
}
.woocommerce ul.products li.product {
  display: flex !important;
  flex-direction: column !important;
  height: 100%;
  min-height: 100%;
}
.woocommerce ul.products li.product figure,
.woocommerce ul.products li.product .ct-media-container {
  width: 100%;
  aspect-ratio: 3 / 4 !important;
}
.woocommerce ul.products li.product figure {
  margin: 0;
  flex: 0 0 auto;
}
.woocommerce ul.products li.product .ct-media-container {
  display: block;
  height: 100%;
}
.woocommerce ul.products li.product .ct-media-container img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
}
.woocommerce ul.products li.product .vyn-product-media {
  flex: 0 0 0;
  height: 0;
  min-height: 0;
  margin: 0;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  display: -webkit-box !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: 2.6em;
  margin: 0.55rem 0 0 !important;
  line-height: 1.3;
}
.woocommerce ul.products li.product .price {
  margin: 0.35rem 0 0 !important;
  min-height: 1.35em;
}
.woocommerce ul.products li.product .entry-meta {
  margin: 0.28rem 0 0 !important;
  min-height: 2.5em;
  padding: 0;
  list-style: none;
}
.woocommerce ul.products li.product .entry-meta li {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.woocommerce ul.products li.product .ct-woo-card-actions {
  margin-top: auto;
  padding-top: 0.7rem;
}
.woocommerce ul.products li.product .ct-woo-card-actions .button {
  width: 100%;
  min-height: 2.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.vyn-new-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 5;
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  background: #702638;
  color: #F4EFE7;
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.woocommerce ul.products li.product .vyn-sold-badge + .vyn-new-badge,
.vyn-product-media .vyn-sold-badge ~ .vyn-new-badge { display: none; }

.vyn-related { display: none; }
.vyn-related:has(.products li) { display: block; padding: 1.5rem var(--vyn-gutter); }
.vyn-related h2 {
  font-family: var(--font-display), Georgia, serif;
  font-size: 1.4rem;
  text-align: center;
  margin-bottom: 1rem;
}
.single-product .related.products { display: none !important; }

.vyn-newsletter {
  max-width: 22rem;
  margin: 1.5rem auto 0;
  text-align: center;
}
.vyn-lightbox {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgb(16 13 14 / 0.88);
  display: grid;
  place-items: center;
  padding: 1.25rem;
}
.vyn-lightbox img {
  max-width: min(92vw, 52rem);
  max-height: 88vh;
  object-fit: contain;
  border-radius: 0.75rem;
}
html.vyn-theme-dark .vyn-swatch--size {
  background: #191516;
  color: #F4EFE7;
  border-color: #2A2426;
}
html.vyn-theme-dark .vyn-share,
html.vyn-theme-dark .vyn-size-guide-btn { color: #B9AEA8; }

.vyn-swatches__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.vyn-size-guide-btn {
  letter-spacing: 0.14em;
}
.vyn-oos-status {
  margin: 0 0 0.85rem;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.single-product form.cart.is-oos .single_add_to_cart_button,
.single-product form.cart.is-oos .vyn-buy-now,
.single-product form.cart.is-oos .quantity,
.single-product form.cart[data-vyn-oos="1"] .single_add_to_cart_button,
.single-product form.cart[data-vyn-oos="1"] .vyn-buy-now,
.single-product form.cart[data-vyn-oos="1"] .quantity {
  display: none !important;
}
.vyn-notify--primary {
  margin-top: 0.25rem;
  padding-top: 0;
  border-top: 0;
}
.vyn-notify-btn,
a.vyn-notify-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.6rem;
  width: 100%;
  max-width: 22rem;
  padding: 0 1.15rem;
  border: 0;
  border-radius: 0.55rem;
  background: #702638;
  color: #F4EFE7 !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 0.68rem;
  text-decoration: none !important;
  cursor: pointer;
}
.vyn-notify__hint {
  margin: 0.45rem 0 0;
  font-size: 0.78rem;
  color: var(--color-muted);
}
a.vyn-pdp-sticky__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  color: #F4EFE7 !important;
}
.vyn-sheet[hidden] { display: none !important; }
.vyn-sheet.is-open { display: block !important; }
.vyn-sheet {
  position: fixed;
  inset: 0;
  z-index: 90;
}
.vyn-sheet__backdrop {
  position: absolute;
  inset: 0;
  background: rgb(16 13 14 / 0.45);
}
.vyn-sheet__panel {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  max-height: 78vh;
  overflow: auto;
  background: var(--color-bg);
  color: var(--color-fg);
  border-radius: 1rem 1rem 0 0;
  padding: 1.1rem 1.25rem 1.5rem;
}
.vyn-sheet__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}
.vyn-sheet__head h2 {
  margin: 0;
  font-family: var(--font-display), Georgia, serif;
  font-size: 1.35rem;
}
.vyn-sheet__head button {
  border: 0;
  background: none;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--color-fg);
}
.vyn-size-soon-list {
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.78rem;
  color: var(--color-muted);
}
@media (min-width: 900px) {
  .vyn-sheet__panel {
    left: 50%;
    right: auto;
    top: 50%;
    bottom: auto;
    width: min(32rem, 92vw);
    transform: translate(-50%, -50%);
    border-radius: 1rem;
    max-height: 80vh;
  }
  .vyn-pdp-sticky { display: none !important; }
}
html.vyn-theme-dark .vyn-sheet__panel { background: #191516; }

.vyn-jewel-spec { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.vyn-jewel-spec th { text-align: left; width: 42%; padding: 0.35rem 0.6rem 0.35rem 0; color: var(--color-muted); font-weight: 600; }
.vyn-jewel-spec td { padding: 0.35rem 0; }
.vyn-jewel-finish {
  margin: 0.15rem 0 0.45rem;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.vyn-jewel-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  list-style: none;
  margin: 0 0 0.85rem;
  padding: 0;
}
.vyn-jewel-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0 0.55rem;
  border: 1px solid #C7A566;
  border-radius: 999px;
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #702638;
  background: transparent;
}
html.vyn-theme-dark .vyn-jewel-badge {
  border-color: #C7A566;
  color: #C7A566;
}
.vyn-jewel-merch { margin: 0 0 1.75rem; }
.vyn-jewel-merch .vyn-moment {
  background: #EFE6D8;
  min-height: 6.5rem;
}
html.vyn-theme-dark .vyn-jewel-merch .vyn-moment {
  background: #191516;
  color: #F4EFE7;
}
@media (min-width: 900px) {
  .vyn-jewel-merch .vyn-moments__grid { grid-template-columns: repeat(4, 1fr); }
  .vyn-jewel-merch .vyn-moment { min-height: 8.5rem; }
}
.vyn-moments h2,
.vyn-loved h2 {
  font-family: var(--font-display), Georgia, serif;
  font-size: 1.45rem;
  font-weight: 500;
  margin: 0 0 0.85rem;
}
.vyn-moments__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
}
.vyn-moment {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 7.5rem;
  padding: 0.85rem 0.9rem;
  border-radius: 0.85rem;
  background: #EFE6D8;
  color: #14110F;
  text-decoration: none;
}
.vyn-moment.is-soon { opacity: 0.78; cursor: default; }
.vyn-moment__label {
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
}
.vyn-moment__soon {
  margin-top: 0.25rem;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #702638;
}
.vyn-merch-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 1.1rem;
}
.vyn-merch-chips a {
  min-height: 2.1rem;
  padding: 0.35rem 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-fg);
  text-decoration: none;
}
.vyn-merch-chips a.is-current {
  background: #702638;
  border-color: #702638;
  color: #F4EFE7;
}
html.vyn-theme-dark .vyn-moment { background: #191516; color: #F4EFE7; }
@media (min-width: 900px) {
  .vyn-moments__grid { grid-template-columns: repeat(4, 1fr); }
  .vyn-moment { min-height: 9.5rem; }
}

/* Homepage campaign stage — original VYNTERA, Max-level presence */
.vyn-home {
  max-width: none !important;
}
.vyn-dept {
  display: flex;
  flex-wrap: nowrap;
  gap: 1.15rem;
  overflow-x: auto;
  padding: 0.8rem var(--vyn-gutter) 0.7rem;
  border-bottom: 1px solid var(--color-border);
  background: rgb(244 239 232 / 0.96);
  position: sticky;
  top: 3.55rem;
  z-index: 22;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  white-space: nowrap;
}
.vyn-dept br,
.vyn-collections br,
.vyn-stage br,
.vyn-duo br,
.vyn-billboard br {
  display: none !important;
}
.vyn-collections p,
.vyn-dept p {
  display: contents;
}
.vyn-dept::-webkit-scrollbar { display: none; }
.vyn-dept a {
  flex: 0 0 auto;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-muted) !important;
  text-decoration: none !important;
  padding-bottom: 0.15rem;
  border-bottom: 1px solid transparent;
}
.vyn-dept a:hover {
  color: var(--color-fg) !important;
  border-bottom-color: #C7A566;
}
.vyn-stage {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: #191516;
  min-height: 78vh;
}
.vyn-stage__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.7s ease, visibility 0.7s ease;
  pointer-events: none;
}
.vyn-stage__slide.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 1;
}
.vyn-stage__media {
  min-height: 78vh;
  max-height: 92vh;
  overflow: hidden;
}
.vyn-stage__media img {
  width: 100%;
  height: 78vh;
  max-height: 92vh;
  object-fit: cover;
  object-position: top center;
  display: block;
  transform: scale(1.06);
}
.vyn-stage__slide.is-active .vyn-stage__media img {
  animation: vynKen 8s ease-out forwards;
}
@keyframes vynKen {
  from { transform: scale(1.08); }
  to { transform: scale(1); }
}
.vyn-stage__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgb(16 13 14 / 0.78) 0%, rgb(16 13 14 / 0.18) 46%, transparent 70%);
  pointer-events: none;
}
.vyn-stage__copy {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 1.6rem var(--vyn-gutter) 2.4rem;
  color: #F4EFE7;
}
.vyn-stage__kicker {
  margin: 0;
  font-size: 0.68rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #C7A566;
}
.vyn-stage__copy h1,
.vyn-stage__copy h2 {
  margin: 0.35rem 0 0;
  font-family: var(--font-display) !important;
  font-size: clamp(2.1rem, 8vw, 3.4rem);
  line-height: 0.95;
  color: #F4EFE7 !important;
  max-width: 14ch;
}
.vyn-stage__copy p {
  margin: 0.7rem 0 0;
  max-width: 22rem;
  font-size: 0.92rem;
  color: rgb(244 239 231 / 0.88);
}
.vyn-stage__copy .vyn-btn {
  margin-top: 1.05rem;
}
.vyn-stage__dots {
  position: absolute;
  right: var(--vyn-gutter);
  bottom: 1.15rem;
  z-index: 3;
  display: flex;
  gap: 0.4rem;
}
.vyn-stage__dot {
  width: 0.45rem;
  height: 0.45rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgb(244 239 231 / 0.38);
  cursor: pointer;
}
.vyn-stage__dot.is-active {
  background: #C7A566;
  width: 1.15rem;
}
.vyn-home-collections {
  padding-top: 1.6rem;
}
.vyn-col-card img {
  transition: transform 0.7s ease;
}
.vyn-col-card:hover img {
  transform: scale(1.05);
}
.vyn-billboard {
  position: relative;
  margin: 1.75rem 0 0;
  overflow: hidden;
  min-height: 70vh;
}
.vyn-billboard__media img {
  width: 100%;
  height: 70vh;
  object-fit: cover;
  object-position: top center;
  display: block;
}
.vyn-billboard__copy {
  position: absolute;
  inset: auto 0 0;
  padding: 1.6rem var(--vyn-gutter) 2rem;
  background: linear-gradient(to top, rgb(16 13 14 / 0.78), transparent);
  color: #F4EFE7;
}
.vyn-billboard__copy h2 {
  margin: 0.3rem 0 0;
  font-family: var(--font-display) !important;
  font-size: clamp(2rem, 7vw, 3rem);
  color: #F4EFE7 !important;
}
.vyn-billboard__copy p {
  margin: 0.55rem 0 0;
  max-width: 22rem;
  color: rgb(244 239 231 / 0.88);
}
.vyn-billboard__copy .vyn-btn { margin-top: 1rem; }
.vyn-duo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  padding: 0.5rem var(--vyn-gutter) 0;
}
.vyn-duo__card {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 1rem;
  text-decoration: none !important;
}
.vyn-duo__card img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.vyn-duo__card:hover img { transform: scale(1.05); }
.vyn-duo__card span {
  position: absolute;
  left: 0.75rem;
  bottom: 0.75rem;
  color: #F4EFE7;
  font-family: var(--font-display);
  font-size: 1.35rem;
  text-shadow: 0 1px 8px rgb(16 13 14 / 0.45);
}
[data-vyn-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
[data-vyn-reveal].is-in {
  opacity: 1;
  transform: none;
}
html.vyn-theme-dark .vyn-dept {
  background: rgb(16 13 14 / 0.96);
  border-color: #2A2426;
}
@media (min-width: 1024px) {
  .vyn-dept { top: 4.1rem; padding-inline: 1.5rem; justify-content: center; }
  .vyn-stage__media,
  .vyn-stage__media img { height: 86vh; }
  .vyn-stage__copy { padding: 3rem 3rem 3.4rem; }
  .vyn-billboard__media img { height: 82vh; }
  .vyn-duo { max-width: 72rem; margin: 1rem auto 0; padding-inline: 1.5rem; gap: 1rem; }
  .vyn-home-collections { max-width: 72rem; margin-inline: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .vyn-stage__slide.is-active .vyn-stage__media img,
  [data-vyn-reveal] {
    animation: none;
    transition: none;
    opacity: 1;
    transform: none;
  }
}
















/* My Account — single delivery address */
.vyn-account-address,
.woocommerce-MyAccount-content .woocommerce-Addresses,
.woocommerce-MyAccount-content .woocommerce-Address {
  width: 100% !important;
  float: none !important;
  max-width: 36rem;
  margin: 0 auto 1.25rem;
}
.vyn-addr-lead {
  text-align: center;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--color-muted);
  margin: 0 0 1.25rem;
}
.woocommerce-Address-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}
.woocommerce-Address-title h2 {
  font-family: var(--font-display) !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 0.95rem !important;
  margin: 0;
}
.vyn-addr-action,
.woocommerce-Address-title a.edit {
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  letter-spacing: 0.02em;
  color: var(--color-fg) !important;
  text-decoration: none !important;
  text-transform: none !important;
  white-space: nowrap;
}
.vyn-addr-action:hover,
.woocommerce-Address-title a.edit:hover {
  color: #702638 !important;
}
.woocommerce-MyAccount-content .woocommerce-Address address {
  font-style: normal;
  line-height: 1.55;
}

/* Create account OTP */
body.vyn-account-login form.register > p:not(.form-row):not(.woocommerce-form-row):not(.vyn-reg-otp-error):not(.woocommerce-privacy-policy-text) {
  display: none;
}
.vyn-get-otp {
  width: 100%;
  min-height: 3rem;
  margin: 0;
  background: transparent !important;
  color: var(--color-fg) !important;
  border: 1px solid var(--color-fg) !important;
  border-radius: 999px !important;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.78rem !important;
  cursor: pointer;
}
.vyn-get-otp:hover,
.vyn-get-otp:focus {
  background: #702638 !important;
  color: #F4EFE7 !important;
  border-color: #702638 !important;
}
.vyn-reg-otp-row input {
  width: 100%;
  min-height: 3rem;
  font-size: 1.25rem !important;
  letter-spacing: 0.28em;
  text-align: center;
}
.vyn-reg-otp-error {
  margin: 0.75rem 0 0;
  text-align: center;
  font-weight: 700;
  color: #702638;
  font-size: 0.95rem;
}

body.vyn-account-login form.register .woocommerce-privacy-policy-text,
body.vyn-account-login form.register .woocommerce-privacy-policy-text + p {
  display: none !important;
}

/* Create account — Email / Phone */
.vyn-reg-mode {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  margin: 0 0 1.1rem;
}
.vyn-reg-mode-btn {
  min-height: 2.7rem;
  border: 1px solid var(--color-fg) !important;
  background: transparent !important;
  color: var(--color-fg) !important;
  border-radius: 999px !important;
  font-size: 0.78rem !important;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
}
.vyn-reg-mode-btn.is-on,
.vyn-reg-mode-btn[aria-pressed="true"] {
  background: #702638 !important;
  border-color: #702638 !important;
  color: #F4EFE7 !important;
}
.vyn-phone-affix {
  display: flex;
  align-items: stretch;
  width: 100%;
  border: 1px solid var(--color-line, #d8d0c8);
  border-radius: 12px;
  overflow: hidden;
  background: var(--color-surface, #fff);
}
.vyn-phone-cc {
  display: flex;
  align-items: center;
  padding: 0 0.85rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  border-right: 1px solid var(--color-line, #d8d0c8);
  background: rgba(112, 38, 56, 0.06);
  white-space: nowrap;
}
.vyn-phone-affix input {
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  flex: 1;
  min-width: 0;
  letter-spacing: 0.14em;
  font-size: 1.05rem !important;
}
form.register.vyn-reg-phone-on p:has(#reg_email) {
  display: none !important;
}

.wp-block-woocommerce-empty-cart-block .wp-block-separator,
.wp-block-woocommerce-empty-cart-block h2:not(.wc-block-cart__empty-cart__title),
.wp-block-woocommerce-empty-cart-block .wc-block-grid,
.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new,
.wp-block-woocommerce-empty-cart-block .wc-block-grid__products,
.wp-block-woocommerce-empty-cart-block .wp-block-button.wc-block-grid__product-add-to-cart {
  display: none !important;
}

/* Blocksy native sort up/down arrow — never show */
.woocommerce-ordering .ct-sort-icon,
.ct-sort-icon,
.woocommerce .woocommerce-ordering select.orderby,
.woocommerce-ordering select[name="orderby"] {
  display: none !important;
  background-image: none !important;
}
.woocommerce-ordering .ct-sort-icon {
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* Homepage second pass — horizontal reel, not a repeat of the hero */
.vyn-reel { margin: 1.4rem 0 0.4rem; }
.vyn-reel .vyn-section__head span {
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.vyn-reel__track {
  display: flex;
  gap: 0.7rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--vyn-gutter);
  padding: 0 var(--vyn-gutter) 0.6rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.vyn-reel__track::-webkit-scrollbar { display: none; }
.vyn-reel__card {
  position: relative;
  flex: 0 0 min(78vw, 18.5rem);
  scroll-snap-align: start;
  display: block;
  overflow: hidden;
  border-radius: 1.15rem;
  text-decoration: none !important;
  color: #F4EFE7;
}
.vyn-reel__card img {
  width: 100%;
  height: 24.5rem;
  object-fit: cover;
  display: block;
  transform: scale(1.06);
  animation: vyn-reel-drift 16s ease-in-out infinite alternate;
}
.vyn-reel__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgb(16 13 14 / 0.02) 35%, rgb(16 13 14 / 0.62) 100%);
  pointer-events: none;
}
.vyn-reel__copy {
  position: absolute;
  left: 0.9rem;
  right: 0.9rem;
  bottom: 0.95rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.vyn-reel__copy small {
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 0.62rem;
  font-weight: 600;
}
.vyn-reel__copy strong {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.45rem;
  line-height: 1.1;
}
@keyframes vyn-reel-drift {
  from { transform: scale(1.04) translate3d(0, 0, 0); }
  to { transform: scale(1.12) translate3d(-1.5%, -1%, 0); }
}
@media (min-width: 1024px) {
  .vyn-reel { max-width: 72rem; margin-inline: auto; }
  .vyn-reel__card { flex-basis: 16.5rem; }
  .vyn-reel__card img { height: 22rem; }
}
@media (prefers-reduced-motion: reduce) {
  .vyn-reel__card img { animation: none; transform: none; }
}

/* Keep looking — editorial film, not a copy of the collection grid */
.vyn-reel__card {
  border-radius: 0.35rem;
  flex-basis: min(72vw, 16rem);
}
.vyn-reel__card img {
  height: 22rem;
  animation: vyn-reel-pan 14s ease-in-out infinite alternate !important;
  transform: none !important;
}
.vyn-reel__shade {
  background: linear-gradient(180deg, rgb(16 13 14 / 0.45) 0%, rgb(16 13 14 / 0.05) 42%, rgb(16 13 14 / 0.55) 100%);
}
.vyn-reel__copy {
  top: 0.85rem;
  bottom: auto;
}
.vyn-reel__copy strong {
  font-size: 1.55rem;
  font-style: italic;
}
@keyframes vyn-reel-pan {
  from { object-position: center 18%; }
  to { object-position: center 82%; }
}
@media (min-width: 1024px) {
  .vyn-reel__card img { height: 24rem; }
}
@media (prefers-reduced-motion: reduce) {
  .vyn-reel__card img { animation: none !important; object-position: center; }
}

.vyn-reel__card--fashion img {
  object-position: center center !important;
  animation: none !important;
}

.vyn-stage__hit {
  display: block;
  position: relative;
  color: inherit;
  text-decoration: none;
}
.vyn-cat-pill {
  position: absolute;
  z-index: 4;
  top: 0.9rem;
  right: 0.9rem;
  padding: 0.72rem 1.05rem;
  border-radius: 0.9rem;
  background: #F7F3EC;
  color: #1C1814;
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  text-transform: none;
  line-height: 1;
  pointer-events: none;
  box-shadow: 0 8px 22px rgb(16 13 14 / 0.18);
}
.vyn-stage__slide--art .vyn-stage__shade {
  background: linear-gradient(to top, rgb(16 13 14 / 0.78) 0%, rgb(16 13 14 / 0.12) 46%, transparent 68%);
}
.vyn-stage__slide--art .vyn-stage__copy {
  display: block;
}
.vyn-stage__slide--art .vyn-stage__media {
  background: #101114;
}
.vyn-stage__slide--art .vyn-stage__media img {
  object-fit: contain;
  object-position: center center;
  transform: none !important;
  animation: none !important;
  background: #101114;
}
.vyn-col-card[href="/product-category/men/"] img {
  object-position: 22% center;
}
