/*
Theme Name: Veloxcart
Theme URI: https://veloxcartbuy.in
Description: Editorial womenswear theme for Veloxcart — an Astra child theme. Typography-led, photography as studio plates, hairlines instead of decoration.
Author: Veloxcart
Template: astra
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Text Domain: veloxcart
*/

/* ==========================================================================
   0. Fonts (self-hosted variable fonts, latin subset)
   ========================================================================== */
@font-face { font-family: "Bodoni Moda"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("assets/fonts/bodoni-moda.woff2") format("woff2"); }
@font-face { font-family: "Bodoni Moda"; font-style: italic; font-weight: 400 900; font-display: swap; src: url("assets/fonts/bodoni-moda-italic.woff2") format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("assets/fonts/instrument-sans.woff2") format("woff2"); }
@font-face { font-family: "Instrument Sans"; font-style: italic; font-weight: 400 700; font-display: swap; src: url("assets/fonts/instrument-sans-italic.woff2") format("woff2"); }

/* ==========================================================================
   1. Tokens
   ========================================================================== */
:root {
  --vx-paper: #F2F1EC;
  --vx-plate: #FFFFFF;
  --vx-ink: #000000;
  --vx-text: #1F1F1D;
  --vx-muted: #74746E;
  --vx-line: #D8D7D0;
  --vx-accent: #7A1E2E;
  --vx-night: #161615;
  --vx-night-text: #EDEBE4;
  --vx-night-muted: #9A978F;

  --vx-serif: "Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --vx-sans: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;

  --vx-display-xxl: clamp(4.25rem, 12vw, 12.5rem);
  --vx-display-xl: clamp(3rem, 7.5vw, 7.5rem);
  --vx-headline: clamp(2rem, 4vw, 4.25rem);
  --vx-title: clamp(1.375rem, 2vw, 1.75rem);
  --vx-body: clamp(1rem, 1.05vw, 1.125rem);
  --vx-small: 0.875rem;
  --vx-label: 0.75rem;
  --vx-micro: 0.6875rem;

  --vx-gutter: clamp(1.25rem, 6vw, 6rem);
  --vx-section: clamp(4rem, 10vw, 9rem);
  --vx-gap: clamp(1rem, 2vw, 2rem);
  --vx-max: 1680px;

  --vx-fast: 200ms;
  --vx-ui: 320ms;
  --vx-reveal: 700ms;
  --vx-ease: cubic-bezier(.2, .7, .2, 1);

  --vx-z-header: 100;
  --vx-z-overlay: 200;

  /* Astra hooks: keep Astra's own globals pointing at the same tokens */
  --ast-global-color-0: var(--vx-accent);
  --ast-global-color-1: var(--vx-ink);
  --ast-global-color-2: var(--vx-ink);
  --ast-global-color-3: var(--vx-text);
  --ast-global-color-4: var(--vx-plate);
  --ast-global-color-5: var(--vx-paper);
  --ast-global-color-6: var(--vx-line);
  --ast-global-color-7: var(--vx-night);
  --ast-global-color-8: var(--vx-muted);
}

/* ==========================================================================
   2. Base
   ========================================================================== */
html { scroll-behavior: smooth; }
body.vx {
  background: var(--vx-paper);
  color: var(--vx-text);
  font-family: var(--vx-sans);
  font-size: var(--vx-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "kern" 1, "liga" 1;
}
body.vx ::selection { background: var(--vx-ink); color: var(--vx-paper); }
body.vx :focus-visible { outline: 2px solid var(--vx-accent); outline-offset: 3px; }
body.vx a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; transition: color var(--vx-fast) var(--vx-ease); }
body.vx a:hover { color: var(--vx-accent); }
body.vx h1, body.vx h2, body.vx h3, body.vx h4, body.vx .entry-content h1, body.vx .entry-content h2, body.vx .entry-content h3 {
  font-family: var(--vx-serif);
  font-weight: 400;
  color: var(--vx-ink);
  letter-spacing: -0.01em;
  line-height: 1.1;
  font-optical-sizing: auto;
}
body.vx h5, body.vx h6 { font-family: var(--vx-sans); font-weight: 500; }
body.vx img { display: block; max-width: 100%; height: auto; }
body.vx #content, body.vx .site-content { background: transparent; }
body.vx .ast-separate-container .ast-article-single, body.vx .ast-separate-container .ast-article-post { background: transparent; border: 0; padding: 0; }

/* Numbers set tabular so prices and counts align. */
body.vx .price, body.vx .amount, body.vx .vx-count, body.vx .woocommerce-result-count, body.vx .vx-num { font-variant-numeric: tabular-nums; }

/* Buttons and inputs: rectangular, hairline, uppercase micro type. */
body.vx .button, body.vx button, body.vx input[type="submit"], body.vx input[type="button"], body.vx .wp-block-button__link, body.vx .ast-button, body.vx .wc-block-components-button, body.vx .wpforms-submit {
  font-family: var(--vx-sans) !important;
  font-size: var(--vx-label) !important;
  font-weight: 500 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  border: 1px solid var(--vx-ink) !important;
  background: var(--vx-ink) !important;
  color: var(--vx-plate) !important;
  padding: 1.05em 2.2em !important;
  line-height: 1 !important;
  transition: background var(--vx-fast) var(--vx-ease), color var(--vx-fast) var(--vx-ease), border-color var(--vx-fast) var(--vx-ease);
  box-shadow: none !important;
}
body.vx .button:hover, body.vx button:hover, body.vx input[type="submit"]:hover, body.vx .wp-block-button__link:hover, body.vx .wc-block-components-button:hover, body.vx .wpforms-submit:hover {
  background: var(--vx-plate) !important;
  color: var(--vx-ink) !important;
}
body.vx .is-style-outline .wp-block-button__link, body.vx .vx-btn-ghost { background: transparent !important; color: var(--vx-ink) !important; }
body.vx .is-style-outline .wp-block-button__link:hover, body.vx .vx-btn-ghost:hover { background: var(--vx-ink) !important; color: var(--vx-plate) !important; }
body.vx input[type="text"], body.vx input[type="email"], body.vx input[type="tel"], body.vx input[type="password"], body.vx input[type="number"], body.vx input[type="search"], body.vx textarea, body.vx select, body.vx .wc-block-components-text-input input, body.vx .select2-container--default .select2-selection--single {
  font-family: var(--vx-sans);
  font-size: 1rem;
  background: var(--vx-plate);
  border: 1px solid var(--vx-line);
  border-radius: 0;
  color: var(--vx-text);
  padding: .9em 1em;
  box-shadow: none;
  transition: border-color var(--vx-fast) var(--vx-ease);
}
body.vx input:focus, body.vx textarea:focus, body.vx select:focus { border-color: var(--vx-ink); outline: none; }
body.vx label { font-size: var(--vx-small); color: var(--vx-muted); }

/* ==========================================================================
   3. Typography & layout utilities (used by patterns and generated pages)
   ========================================================================== */
.vx-display-xxl, body.vx h1.vx-display-xxl, body.vx h2.vx-display-xxl { font-family: var(--vx-serif); font-size: var(--vx-display-xxl); line-height: .88; letter-spacing: -.02em; text-transform: uppercase; font-weight: 400; margin: 0; }
.vx-display-xl, body.vx h1.vx-display-xl, body.vx h2.vx-display-xl { font-family: var(--vx-serif); font-size: var(--vx-display-xl); line-height: .95; letter-spacing: -.015em; font-weight: 400; margin: 0; }
.vx-headline, body.vx h2.vx-headline, body.vx h3.vx-headline { font-family: var(--vx-serif); font-size: var(--vx-headline); line-height: 1.05; font-weight: 400; margin: 0; }
.vx-title, body.vx h3.vx-title, body.vx h2.vx-title { font-family: var(--vx-serif); font-size: var(--vx-title); line-height: 1.2; font-weight: 400; margin: 0; }
.vx-italic { font-style: italic; font-weight: 400; }
.vx-label, body.vx p.vx-label { font-family: var(--vx-sans); font-size: var(--vx-label); letter-spacing: .18em; text-transform: uppercase; color: var(--vx-muted); margin: 0; line-height: 1.4; }
.vx-micro, body.vx p.vx-micro { font-family: var(--vx-sans); font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-muted); margin: 0; }
.vx-lede, body.vx p.vx-lede { font-size: clamp(1.125rem, 1.4vw, 1.375rem); line-height: 1.5; max-width: 34em; color: var(--vx-text); }
.vx-measure { max-width: 60ch; }
.vx-muted { color: var(--vx-muted); }
.vx-white { background: var(--vx-plate); }
.vx-night { background: var(--vx-night); color: var(--vx-night-text); }
.vx-night h1, .vx-night h2, .vx-night h3, body.vx .vx-night h2, body.vx .vx-night h1 { color: var(--vx-night-text); }
.vx-night .vx-label, .vx-night .vx-micro { color: var(--vx-night-muted); }
.vx-night a { color: var(--vx-night-text); }
.vx-night a:hover { color: #fff; }

/* Directional CTA: text link with a hairline underline that draws in and an arrow that steps right. */
.vx-cta, body.vx p.vx-cta { margin: 0; font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; font-weight: 500; }
.vx-cta a { position: relative; display: inline-flex; align-items: center; gap: .7em; text-decoration: none; padding-bottom: .35em; color: inherit; }
.vx-cta a::after { content: "→"; font-family: var(--vx-sans); transition: transform var(--vx-fast) var(--vx-ease); }
.vx-cta a::before { content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 100%; background: currentColor; transform-origin: left; transform: scaleX(.35); transition: transform var(--vx-ui) var(--vx-ease); }
.vx-cta a:hover { color: inherit; }
.vx-cta a:hover::after { transform: translateX(.35em); }
.vx-cta a:hover::before { transform: scaleX(1); }
.vx-night .vx-cta a { color: var(--vx-night-text); }

/* Plate: the white studio board every product image sits on. */
.vx-plate, body.vx .vx-plate, body.vx figure.vx-plate { background: var(--vx-plate); border: 1px solid var(--vx-line); margin: 0; overflow: hidden; }
.vx-plate img, body.vx .vx-plate img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5; background: var(--vx-plate); }
.vx-plate.is-square img { aspect-ratio: 1; }
.vx-plate.is-wide img { aspect-ratio: 3 / 2; }
.vx-plate.is-tall img { aspect-ratio: 3 / 4; }

/* Section: page gutters + vertical rhythm, capped width, 12-column grid. */
body.vx .vx-section { padding: var(--vx-section) var(--vx-gutter); max-width: none; }
body.vx .vx-section.is-quiet { padding-block: calc(var(--vx-section) * .55); }
body.vx .vx-section.is-flush-top { padding-top: 0; }
body.vx .vx-section > .vx-inner, body.vx .vx-inner { max-width: var(--vx-max); margin-inline: auto; }
.vx-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--vx-gap); align-items: start; }
.vx-grid > * { min-width: 0; }
.vx-span-3 { grid-column: auto / span 3; } .vx-span-4 { grid-column: auto / span 4; } .vx-span-5 { grid-column: auto / span 5; } .vx-span-6 { grid-column: auto / span 6; }
.vx-span-7 { grid-column: auto / span 7; } .vx-span-8 { grid-column: auto / span 8; } .vx-span-9 { grid-column: auto / span 9; } .vx-span-12 { grid-column: 1 / -1; }
.vx-start-2 { grid-column-start: 2; } .vx-start-7 { grid-column-start: 7; } .vx-start-8 { grid-column-start: 8; }
.vx-end { align-self: end; }
.vx-rule { border: 0; border-top: 1px solid var(--vx-line); margin: 0; }
.vx-night .vx-rule { border-color: #2A2A28; }
body.vx .vx-section hr.wp-block-separator.vx-rule { width: 100%; max-width: none; background: none; }

/* Section head: label left, CTA right, on one hairline. */
.vx-head { display: flex; justify-content: space-between; align-items: end; gap: var(--vx-gap); padding-bottom: 1.25rem; border-bottom: 1px solid var(--vx-line); margin-bottom: clamp(1.5rem, 3vw, 3rem); }
.vx-head .vx-headline { margin-top: .35em; }
.vx-night .vx-head { border-color: #2A2A28; }

/* Reveal: one-time fade + translate. Only active when JS added .vx-motion. */
.vx-motion .vx-reveal { opacity: 0; transform: translateY(18px); transition: opacity var(--vx-reveal) var(--vx-ease), transform var(--vx-reveal) var(--vx-ease); }
.vx-motion .vx-reveal.is-in { opacity: 1; transform: none; }

/* Gutenberg alignment inside Astra full-width pages */
body.vx .entry-content > .alignfull { margin-left: 0; margin-right: 0; width: 100%; max-width: 100%; }
body.vx .entry-content > .vx-section { margin-top: 0; margin-bottom: 0; }
body.vx .ast-page-builder-template .entry-header, body.vx .ast-page-builder-template .ast-article-single { margin: 0; padding: 0; }
body.vx .entry-content .wp-block-image { margin: 0; }
body.vx .entry-content figure.vx-plate figcaption { font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-muted); text-align: left; margin: .75rem 0 0; }

/* ==========================================================================
   4. Header (Astra builder overrides)
   ========================================================================== */
body.vx .site-header { position: sticky; top: 0; z-index: var(--vx-z-header); background: var(--vx-paper); transition: background var(--vx-ui) var(--vx-ease), box-shadow var(--vx-ui) var(--vx-ease); }
body.vx.vx-home .site-header { background: var(--vx-plate); }
body.vx .site-header.vx-scrolled { background: rgba(242, 241, 236, .94); backdrop-filter: saturate(140%) blur(10px); -webkit-backdrop-filter: saturate(140%) blur(10px); }
body.vx .ast-primary-header-bar, body.vx .ast-above-header-bar, body.vx .ast-below-header-bar { border-bottom: 1px solid var(--vx-line); }
body.vx .ast-primary-header-bar .site-primary-header-wrap { padding-left: var(--vx-gutter); padding-right: var(--vx-gutter); min-height: 72px; }
body.vx .ast-container { max-width: none; }
body.vx .site-header .ast-container { padding-left: 0; padding-right: 0; }

/* Wordmark: the site title set in Bodoni, spaced like a masthead. */
body.vx .site-title, body.vx .site-title a { font-family: var(--vx-serif); font-size: 1.5rem; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--vx-ink); line-height: 1; text-decoration: none; white-space: nowrap; display: inline-block; }
body.vx .site-title a:hover, body.vx .site-title a:focus { color: var(--vx-ink); }
body.vx .site-title a::after { content: "."; color: var(--vx-accent); letter-spacing: 0; }
body.vx .site-description { display: none; }

/* Menu: 12px uppercase, generous tracking, underline draws on hover/current. */
body.vx .ast-builder-menu .main-header-menu > .menu-item > .menu-link { font-family: var(--vx-sans); font-size: var(--vx-label); font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--vx-ink); padding: 0 1rem; position: relative; }
body.vx .ast-builder-menu .main-header-menu > .menu-item > .menu-link::after { content: ""; position: absolute; left: 1rem; right: 1rem; bottom: -4px; height: 1px; background: var(--vx-ink); transform: scaleX(0); transform-origin: left; transition: transform var(--vx-ui) var(--vx-ease); }
body.vx .ast-builder-menu .main-header-menu > .menu-item:hover > .menu-link::after, body.vx .ast-builder-menu .main-header-menu > .current-menu-item > .menu-link::after, body.vx .ast-builder-menu .main-header-menu > .current-menu-ancestor > .menu-link::after { transform: scaleX(1); }
body.vx .ast-builder-menu .main-header-menu > .menu-item > .menu-link:hover { color: var(--vx-ink); background: transparent; }
body.vx .ast-builder-menu .main-header-menu .sub-menu { border: 1px solid var(--vx-line); border-radius: 0; box-shadow: none; background: var(--vx-plate); }
body.vx .ast-builder-menu .main-header-menu .sub-menu .menu-link { font-size: var(--vx-small); padding: .8rem 1.25rem; }

/* Icons and the bag label */
body.vx .ast-header-search .astra-search-icon, body.vx .ast-header-account-wrap .ast-header-account-type-icon, body.vx .ast-header-account-wrap svg { color: var(--vx-ink); }
body.vx .ast-header-search .astra-search-icon svg, body.vx .ast-header-account-wrap svg { width: 18px; height: 18px; }
body.vx .ast-site-header-cart .ast-cart-menu-wrap, body.vx .ast-site-header-cart .ast-addon-cart-wrap { display: inline-flex; align-items: center; gap: .35em; }
body.vx .ast-site-header-cart .ast-cart-menu-wrap .count, body.vx .ast-site-header-cart .ast-addon-cart-wrap .count { position: static; display: inline; width: auto; height: auto; min-width: 0; padding: 0; border: 0; border-radius: 0; background: transparent !important; color: var(--vx-ink) !important; font-family: var(--vx-sans); font-size: var(--vx-label); letter-spacing: .16em; font-weight: 500; line-height: 1; }
body.vx .ast-site-header-cart .ast-cart-menu-wrap .count::before, body.vx .ast-site-header-cart .ast-addon-cart-wrap .count::before { content: "Bag ("; }
body.vx .ast-site-header-cart .ast-cart-menu-wrap .count::after, body.vx .ast-site-header-cart .ast-addon-cart-wrap .count::after { content: ")"; }
body.vx .ast-site-header-cart .ast-icon, body.vx .ast-site-header-cart .ast-woo-header-cart-info-wrap, body.vx .ast-site-header-cart .ast-cart-menu-wrap .ast-icon { display: none !important; }
body.vx .ast-site-header-cart .ast-cart-menu-wrap .count.ast-count-text { display: inline; }
body.vx .ast-site-header-cart a.cart-container { padding: 0; border: 0; }
body.vx .ast-site-header-cart .widget_shopping_cart { border: 1px solid var(--vx-line); border-radius: 0; box-shadow: none; background: var(--vx-plate); }

/* Announcement line (above header, optional) */
body.vx .ast-above-header-bar { background: var(--vx-night); }
body.vx .ast-above-header-bar .ast-builder-html-element { font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-night-text); text-align: center; }
body.vx .ast-above-header-bar .ast-builder-html-element p { margin: 0; }

/* Sticky (Astra Pro) and mobile */
body.vx .ast-header-sticked .ast-primary-header-bar { box-shadow: none; }
body.vx .ast-mobile-header-content, body.vx .ast-mobile-popup-drawer .ast-mobile-popup-inner { background: var(--vx-paper); }
body.vx .ast-mobile-popup-drawer .main-header-menu .menu-link { font-family: var(--vx-serif); font-size: 1.75rem; letter-spacing: -.01em; text-transform: none; padding: .55rem 0; border: 0; }
body.vx .ast-mobile-popup-drawer .ast-mobile-popup-header { border: 0; }
body.vx .ast-mobile-popup-drawer .ast-mobile-popup-content { padding: 1rem var(--vx-gutter) 3rem; }
body.vx .ast-mobile-popup-drawer .menu-item { border: 0 !important; }
body.vx .menu-toggle, body.vx .ast-button-wrap .menu-toggle { background: transparent !important; color: var(--vx-ink) !important; border: 0 !important; padding: 0 !important; }

/* Full-screen search (Astra Pro) */
body.vx .ast-search-box.full-screen, body.vx .ast-search-box.full-screen .ast-search-box-inner { background: var(--vx-paper); }
body.vx .ast-search-box.full-screen input.search-field { font-family: var(--vx-serif); font-size: clamp(2rem, 5vw, 4.5rem); border: 0; border-bottom: 1px solid var(--vx-ink); background: transparent; padding: .25em 0; letter-spacing: -.01em; }
body.vx .ast-search-box.full-screen .search-field::placeholder { color: var(--vx-muted); }
body.vx .ast-search-box.full-screen .close { color: var(--vx-ink); }

/* ==========================================================================
   5. Footer
   ========================================================================== */
body.vx .site-footer { background: var(--vx-night); color: var(--vx-night-text); }
body.vx .site-footer .ast-builder-grid-row-container-inner { padding-left: var(--vx-gutter); padding-right: var(--vx-gutter); }
body.vx .site-footer .ast-builder-grid-row { max-width: var(--vx-max); margin-inline: auto; }
body.vx .site-primary-footer-wrap { padding: clamp(3rem, 6vw, 5.5rem) 0 clamp(2rem, 4vw, 3.5rem); border-top: 1px solid #2A2A28; }
body.vx .site-below-footer-wrap { border-top: 1px solid #2A2A28; padding: 1.25rem 0; }
body.vx .site-footer .ast-builder-html-element { color: var(--vx-night-text); font-size: var(--vx-small); line-height: 1.7; }
body.vx .site-footer .ast-builder-html-element p { margin: 0 0 .75rem; }
body.vx .site-footer .ast-builder-html-element a { color: var(--vx-night-text); text-decoration: none; }
body.vx .site-footer .ast-builder-html-element a:hover { color: #fff; text-decoration: underline; text-underline-offset: .2em; }
body.vx .site-footer .vx-foot-mark { font-family: var(--vx-serif); font-size: clamp(1.375rem, 1.9vw, 2rem); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-night-text); line-height: 1; margin-bottom: 1.25rem; white-space: nowrap; }
body.vx .site-footer .vx-foot-mark span { color: var(--vx-accent); }
body.vx .site-footer .vx-label { color: var(--vx-night-muted); margin-bottom: 1rem; }
body.vx .site-footer .ast-footer-copyright { font-size: var(--vx-micro); letter-spacing: .12em; text-transform: uppercase; color: var(--vx-night-muted); }
body.vx .site-footer .ast-footer-copyright p { margin: 0; }

/* ==========================================================================
   6. Home & editorial page sections (class hooks used by patterns/gen-pages)
   ========================================================================== */
/* Hero: grid areas so the flat block markup composes into a poster. */
body.vx .vx-hero { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: auto 1fr auto; gap: 0 var(--vx-gap); padding: clamp(1.5rem, 3vw, 2.5rem) 0 0 var(--vx-gutter); min-height: calc(100svh - 72px); position: relative; overflow: hidden; }
body.vx .vx-hero > * { min-width: 0; }
body.vx .vx-hero .vx-hero-meta { grid-column: 1 / 8; grid-row: 1; margin-bottom: clamp(2rem, 6vh, 5rem); }
body.vx .vx-hero .vx-hero-title { grid-column: 1 / 9; grid-row: 2; align-self: center; position: relative; z-index: 2; }
body.vx .vx-hero .vx-hero-copy { grid-column: 1 / 6; grid-row: 3; max-width: 30em; font-size: var(--vx-body); color: var(--vx-text); margin: clamp(1.5rem, 4vh, 3rem) 0 1.25rem; }
body.vx .vx-hero .vx-cta { grid-column: 1 / 6; grid-row: 4; margin-bottom: clamp(2rem, 5vh, 4rem); }
body.vx .vx-hero .vx-hero-image { grid-column: 8 / 13; grid-row: 1 / 5; align-self: stretch; border-width: 0 0 0 1px; }
body.vx .vx-hero .vx-hero-image img { height: 100%; aspect-ratio: auto; min-height: 60vh; object-position: 50% 18%; }
/* one orchestrated reveal */
.vx-motion .vx-hero .vx-hero-meta, .vx-motion .vx-hero .vx-hero-title, .vx-motion .vx-hero .vx-hero-copy, .vx-motion .vx-hero .vx-cta { opacity: 0; transform: translateY(24px); transition: opacity var(--vx-reveal) var(--vx-ease), transform var(--vx-reveal) var(--vx-ease); }
.vx-motion .vx-hero .vx-hero-image { clip-path: inset(0 0 0 100%); transition: clip-path 1100ms var(--vx-ease) 150ms; }
.vx-motion .vx-hero.is-ready .vx-hero-meta { opacity: 1; transform: none; transition-delay: 100ms; }
.vx-motion .vx-hero.is-ready .vx-hero-title { opacity: 1; transform: none; transition-delay: 220ms; }
.vx-motion .vx-hero.is-ready .vx-hero-copy { opacity: 1; transform: none; transition-delay: 420ms; }
.vx-motion .vx-hero.is-ready .vx-cta { opacity: 1; transform: none; transition-delay: 520ms; }
.vx-motion .vx-hero.is-ready .vx-hero-image { clip-path: inset(0 0 0 0); }

/* Collections index: asymmetric pairs (8+4, then 4+8). */
body.vx .vx-collections .vx-grid { row-gap: clamp(2rem, 4vw, 3.5rem); }
body.vx .vx-coll { position: relative; display: block; text-decoration: none; color: inherit; }
body.vx .vx-coll:hover { color: inherit; }
body.vx .vx-coll .vx-plate img { aspect-ratio: 8 / 5; object-position: 50% 6%; transition: transform 1200ms var(--vx-ease); }
body.vx .vx-coll.is-tall .vx-plate img { aspect-ratio: 4 / 5; }
body.vx .vx-coll:hover .vx-plate img { transform: scale(1.02); }
body.vx .vx-coll-text { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--vx-ink); margin-top: 1rem; }
body.vx .vx-coll-text .vx-coll-no { font-family: var(--vx-sans); font-size: var(--vx-label); letter-spacing: .16em; color: var(--vx-muted); }
body.vx .vx-coll-text .vx-coll-name { font-family: var(--vx-serif); font-size: var(--vx-headline); line-height: 1; margin: 0; }
body.vx .vx-coll-text .vx-coll-count { font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; color: var(--vx-muted); white-space: nowrap; }

/* Editorial split: plate + oversized italic statement. */
body.vx .vx-split .vx-grid { align-items: center; }
body.vx .vx-split .vx-headline { font-size: clamp(2.25rem, 4.6vw, 5rem); font-style: italic; line-height: 1.02; }
body.vx .vx-split .vx-caption { margin-top: clamp(1.5rem, 3vw, 2.5rem); display: flex; flex-direction: column; gap: 1rem; }

/* Typography banner / brand statement */
body.vx .vx-statement { text-align: center; padding-block: clamp(5rem, 14vw, 12rem); }
body.vx .vx-statement .vx-display-xxl { font-size: clamp(3rem, 9.5vw, 10rem); text-align: center; margin-inline: auto; max-width: 12ch; }
body.vx .vx-statement .vx-label { margin-top: clamp(2rem, 4vw, 3.5rem); }

/* Lookbook: alternating 7/5 then 5/7 with numbered captions */
body.vx .vx-lookbook .vx-grid { row-gap: clamp(3rem, 6vw, 6rem); }
body.vx .vx-look { display: block; }
body.vx .vx-look figcaption, body.vx .vx-look .vx-look-cap { display: flex; justify-content: space-between; gap: 1rem; padding-top: .75rem; font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-muted); }
body.vx .vx-look figcaption a { text-decoration: none; color: var(--vx-ink); }
body.vx .vx-look.is-small .vx-plate img { aspect-ratio: 4 / 5; }
body.vx .vx-look.is-large .vx-plate img { aspect-ratio: 5 / 6; }
body.vx .vx-look.is-offset { margin-top: clamp(3rem, 8vw, 8rem); }

/* Journal teasers (query loop) */
body.vx .vx-journal .wp-block-post-template { gap: var(--vx-gap); }
body.vx .vx-journal .wp-block-post { display: flex; flex-direction: column; gap: .75rem; }
body.vx .vx-journal .wp-block-post-featured-image { background: var(--vx-plate); border: 1px solid var(--vx-line); }
body.vx .vx-journal .wp-block-post-featured-image img { aspect-ratio: 3 / 4; object-fit: cover; object-position: 50% 15%; }
body.vx .vx-journal .wp-block-post-terms { font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-muted); margin-top: .5rem; }
body.vx .vx-journal .wp-block-post-terms a { text-decoration: none; color: inherit; }
body.vx .vx-journal .wp-block-post-title { font-family: var(--vx-serif); font-size: var(--vx-title); line-height: 1.15; margin: 0; }
body.vx .vx-journal .wp-block-post-title a { text-decoration: none; }
body.vx .vx-journal .wp-block-post-excerpt { font-size: var(--vx-small); color: var(--vx-muted); }
body.vx .vx-journal .wp-block-post-excerpt__more-link { display: none; }
body.vx .vx-journal .wp-block-post-date { font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-muted); }

/* Newsletter */
body.vx .vx-newsletter .vx-grid { align-items: end; }
body.vx .vx-newsletter .wpforms-container { margin: 0; }
body.vx .vx-newsletter .wpforms-field-container { display: flex; gap: 0; }
body.vx .vx-newsletter .wpforms-field { padding: 0 !important; flex: 1; }
body.vx .vx-newsletter .wpforms-field-label { display: none; }
body.vx .vx-newsletter .wpforms-field input { width: 100%; height: 100%; border-right: 0; }
body.vx .vx-newsletter .wpforms-submit-container { padding: 0 !important; }
body.vx .vx-newsletter .wpforms-submit { height: 100%; }

/* Contact / about details */
body.vx .vx-details dl { display: grid; grid-template-columns: max-content 1fr; gap: .6rem 2rem; margin: 0; font-size: var(--vx-small); }
body.vx .vx-details dt { color: var(--vx-muted); }
body.vx .vx-details dd { margin: 0; }
body.vx .vx-contact .wpforms-form .wpforms-field { padding: 0 0 1.25rem; }
body.vx .vx-contact .wpforms-form .wpforms-field-label { font-size: var(--vx-label); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-muted); font-weight: 500; }
body.vx .wpforms-form input.wpforms-field-large, body.vx .wpforms-form textarea.wpforms-field-large, body.vx .wpforms-form .wpforms-field input, body.vx .wpforms-form .wpforms-field textarea { max-width: none; border-radius: 0; border: 1px solid var(--vx-line); background: var(--vx-plate); }
body.vx .wpforms-confirmation-container-full { background: var(--vx-plate); border: 1px solid var(--vx-line); border-radius: 0; }

/* Page titles for simple pages (policies etc.) */
body.vx.page:not(.vx-home):not(.woocommerce-page) .entry-header .entry-title, body.vx.single-post .entry-header .entry-title { font-size: var(--vx-display-xl); line-height: .95; letter-spacing: -.015em; }
body.vx.ast-narrow-container .site-content .ast-container { max-width: 1120px; padding-inline: var(--vx-gutter); }
body.vx .entry-content p, body.vx .entry-content li { max-width: 70ch; }
body.vx .entry-content .vx-section p, body.vx .entry-content .vx-section li, body.vx .entry-content .vx-grid p { max-width: none; }

/* ==========================================================================
   7. Catalogue (shop archive)
   ========================================================================== */
body.vx.archive.woocommerce .ast-container, body.vx.post-type-archive-product .ast-container, body.vx.tax-product_cat .ast-container { padding-left: var(--vx-gutter); padding-right: var(--vx-gutter); max-width: none; }
body.vx .woocommerce-products-header { padding: clamp(2.5rem, 5vw, 4.5rem) 0 clamp(1.5rem, 3vw, 2.5rem); border-bottom: 1px solid var(--vx-ink); margin-bottom: 1.25rem; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: var(--vx-gap); }
body.vx .woocommerce-products-header__title.page-title { font-family: var(--vx-serif); font-size: var(--vx-display-xl); line-height: .95; letter-spacing: -.015em; text-transform: uppercase; margin: 0; grid-column: 1; }
body.vx .woocommerce-products-header__title .vx-count { font-size: .45em; letter-spacing: 0; text-transform: none; color: var(--vx-muted); margin-left: .35em; vertical-align: .55em; font-family: var(--vx-sans); font-weight: 400; }
body.vx .woocommerce-products-header .vx-season { grid-column: 2; grid-row: 1; padding-bottom: .5rem; }
body.vx .woocommerce-products-header .term-description { grid-column: 1 / -1; font-size: var(--vx-body); color: var(--vx-muted); max-width: 60ch; margin: 0; }
body.vx .woocommerce-products-header .term-description p { margin: 0; }
body.vx .ast-woocommerce-container .woocommerce-breadcrumb, body.vx .woocommerce .woocommerce-breadcrumb { font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-muted); margin: 1.5rem 0 0; }
body.vx .woocommerce-breadcrumb a { color: var(--vx-muted); text-decoration: none; }
body.vx .woocommerce-breadcrumb .vx-crumb-sep { margin: 0 .6em; }

/* toolbar */
body.vx .ast-shop-toolbar-container, body.vx .woocommerce-notices-wrapper + .ast-shop-toolbar-container { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: .5rem 0 1.25rem; margin: 0 0 1.5rem; border-bottom: 1px solid var(--vx-line); flex-wrap: wrap; }
body.vx .woocommerce-result-count { font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; color: var(--vx-muted); margin: 0; }
body.vx .woocommerce-ordering { margin: 0; }
body.vx .woocommerce-ordering select { border: 0; border-bottom: 1px solid var(--vx-ink); background: transparent; padding: .4em 1.6em .4em 0; font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; color: var(--vx-ink); }
body.vx .ast-shop-filter-button, body.vx .astra-shop-filter-button, body.vx a.ast-shop-filter-button { font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; color: var(--vx-ink); text-decoration: none; border: 0; background: transparent; padding: 0; display: inline-flex; align-items: center; gap: .5em; }
body.vx .ast-shop-filter-button .astra-woo-filter-icon, body.vx .astra-shop-filter-button .astra-woo-filter-icon { display: none; }
body.vx .ast-shop-filter-button::after, body.vx .astra-shop-filter-button::after { content: "+"; font-size: 1.1em; }
body.vx .ast-shop-filter-button.ast-active::after { content: "–"; }

/* grid + cards */
body.vx ul.products, body.vx .woocommerce ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem) var(--vx-gap); margin: 0 0 var(--vx-section); }
body.vx ul.products li.product, body.vx .woocommerce ul.products li.product { width: auto !important; margin: 0 !important; padding: 0; float: none; background: transparent; }
body.vx ul.products li.product .astra-shop-thumbnail-wrap { position: relative; background: var(--vx-plate); border: 1px solid var(--vx-line); overflow: hidden; }
body.vx ul.products li.product .astra-shop-thumbnail-wrap img { aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 15%; width: 100%; transition: opacity var(--vx-ui) var(--vx-ease); }
body.vx ul.products li.product .astra-shop-thumbnail-wrap img.show-on-hover { position: absolute; inset: 0; opacity: 0; }
body.vx ul.products li.product:hover .astra-shop-thumbnail-wrap img.show-on-hover { opacity: 1; }
body.vx ul.products li.product .astra-shop-summary-wrap { padding: .9rem 0 0; text-align: left; display: grid; grid-template-columns: 1fr auto; gap: .15rem 1rem; }
body.vx ul.products li.product .ast-woo-product-category { grid-column: 1 / -1; order: -1; font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-muted); margin: 0; }
body.vx ul.products li.product .woocommerce-loop-product__title, body.vx ul.products li.product .woocommerce-loop-category__title { font-family: var(--vx-sans); font-size: var(--vx-small); font-weight: 500; line-height: 1.35; color: var(--vx-ink); margin: 0; padding: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.vx ul.products li.product .price { font-family: var(--vx-sans); font-size: var(--vx-small); color: var(--vx-ink); margin: 0; white-space: nowrap; }
body.vx ul.products li.product .price del { color: var(--vx-muted); margin-right: .4em; opacity: 1; }
body.vx ul.products li.product .price ins { text-decoration: none; color: var(--vx-accent); }
body.vx ul.products li.product .star-rating { display: none !important; }
body.vx ul.products li.product .button, body.vx ul.products li.product .ast-on-card-button, body.vx ul.products li.product a.button { grid-column: 1 / -1; margin: .75rem 0 0; width: 100%; text-align: center; background: transparent !important; color: var(--vx-ink) !important; border-color: var(--vx-ink) !important; }
body.vx ul.products li.product .button:hover { background: var(--vx-ink) !important; color: var(--vx-plate) !important; }
@media (hover: hover) and (pointer: fine) {
  body.vx ul.products li.product .astra-shop-summary-wrap .button { opacity: 0; transform: translateY(4px); transition: opacity var(--vx-fast) var(--vx-ease), transform var(--vx-fast) var(--vx-ease); }
  body.vx ul.products li.product:hover .astra-shop-summary-wrap .button, body.vx ul.products li.product:focus-within .astra-shop-summary-wrap .button { opacity: 1; transform: none; }
}
body.vx ul.products li.product .onsale, body.vx span.onsale { position: absolute; top: .75rem; left: .75rem; z-index: 2; background: var(--vx-plate); color: var(--vx-ink); border: 1px solid var(--vx-ink); border-radius: 0; font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; padding: .35em .6em; min-height: 0; min-width: 0; line-height: 1; margin: 0; }
body.vx ul.products li.product .ast-shop-product-out-of-stock { position: absolute; top: .75rem; left: .75rem; background: var(--vx-paper); border: 1px solid var(--vx-line); border-radius: 0; font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; padding: .35em .6em; }
body.vx .ast-quick-view-text, body.vx .ast-quick-view-trigger { font-size: var(--vx-micro) !important; letter-spacing: .14em; text-transform: uppercase; background: var(--vx-plate) !important; color: var(--vx-ink) !important; border-radius: 0 !important; }

/* pagination */
body.vx .woocommerce-pagination { border-top: 1px solid var(--vx-line); padding-top: 1.5rem; margin-top: -3rem; margin-bottom: var(--vx-section); }
body.vx .woocommerce-pagination ul.page-numbers { border: 0; display: flex; gap: .25rem; justify-content: flex-start; }
body.vx .woocommerce-pagination ul.page-numbers li { border: 0; }
body.vx .woocommerce-pagination .page-numbers { font-family: var(--vx-sans); font-size: var(--vx-label); letter-spacing: .12em; padding: .6em .9em; border: 1px solid transparent; color: var(--vx-ink); background: transparent; }
body.vx .woocommerce-pagination .page-numbers.current { border-color: var(--vx-ink); }
body.vx .woocommerce-pagination .page-numbers:hover { color: var(--vx-accent); background: transparent; }

/* filter flyout (Astra Pro) + classic filter widgets */
body.vx .astra-off-canvas-sidebar-wrapper, body.vx .ast-off-canvas-sidebar, body.vx .astra-off-canvas-sidebar-wrapper .astra-off-canvas-sidebar { background: var(--vx-paper); }
body.vx .astra-off-canvas-sidebar-wrapper .widget, body.vx .astra-off-canvas-sidebar .widget { border: 0; border-bottom: 1px solid var(--vx-line); padding: 1.25rem 0; margin: 0; }
body.vx .astra-off-canvas-sidebar-wrapper .widget-title, body.vx .ast-off-canvas-sidebar .widget-title { font-family: var(--vx-sans); font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; color: var(--vx-ink); font-weight: 500; margin: 0 0 .75rem; }
body.vx .woocommerce-widget-layered-nav-list { display: flex; flex-wrap: wrap; gap: .5rem; }
body.vx .woocommerce-widget-layered-nav-list li { border: 0 !important; padding: 0 !important; margin: 0 !important; }
body.vx .woocommerce-widget-layered-nav-list li a { display: inline-block; min-width: 2.75rem; text-align: center; padding: .55em .75em; border: 1px solid var(--vx-line); background: var(--vx-plate); font-size: var(--vx-small); text-decoration: none; }
body.vx .woocommerce-widget-layered-nav-list li.chosen a, body.vx .woocommerce-widget-layered-nav-list li a:hover { border-color: var(--vx-ink); color: var(--vx-ink); }
body.vx .woocommerce-widget-layered-nav-list li .count { display: none; }
body.vx .price_slider_wrapper .ui-slider .ui-slider-range, body.vx .price_slider_wrapper .ui-slider .ui-slider-handle { background: var(--vx-ink); border-radius: 0; }
body.vx .price_slider_wrapper .ui-slider { background: var(--vx-line); border-radius: 0; }
body.vx .price_slider_amount .button { padding: .7em 1.2em !important; }
body.vx .ast-off-canvas-sidebar .close, body.vx .astra-off-canvas-sidebar-wrapper .close { color: var(--vx-ink); }

/* ==========================================================================
   8. Product page
   ========================================================================== */
body.vx.single-product .ast-container { padding-left: var(--vx-gutter); padding-right: var(--vx-gutter); max-width: none; }
body.vx.single-product div.product { padding-top: clamp(1.5rem, 3vw, 2.5rem); }
/* Astra Pro wraps gallery + summary in .ast-sticky-row (sticky summary); the editorial 7/5 split lives there */
body.vx.single-product div.product .ast-sticky-row, body.vx.single-product div.product:not(:has(.ast-sticky-row)) { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: clamp(2rem, 5vw, 6rem); align-items: start; }
body.vx.single-product div.product .ast-sticky-row > * { min-width: 0; }
body.vx.single-product div.product .woocommerce-product-gallery { grid-column: 1; width: 100% !important; float: none; margin: 0; }
body.vx.single-product div.product .summary.entry-summary { grid-column: 2; width: 100% !important; float: none; margin: 0; padding: clamp(1rem, 2vw, 2rem) 0 0; position: sticky; top: 96px; }
body.vx.single-product div.product .woocommerce-tabs, body.vx.single-product div.product .vx-detail, body.vx.single-product div.product .related, body.vx.single-product div.product .up-sells, body.vx.single-product div.product .ast-recently-viewed-products, body.vx.single-product div.product section.products { grid-column: 1 / -1; clear: both; }
body.vx.single-product .woocommerce-breadcrumb { margin: 0 0 1rem; }
body.vx.single-product div.product .woocommerce-product-gallery .flex-viewport, body.vx.single-product div.product .woocommerce-product-gallery__image, body.vx.single-product div.product .woocommerce-product-gallery__wrapper { background: var(--vx-plate); }
body.vx.single-product div.product .woocommerce-product-gallery__image { border: 1px solid var(--vx-line); }
body.vx.single-product div.product .woocommerce-product-gallery__image img { aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 12%; width: 100%; }
body.vx.single-product div.product .woocommerce-product-gallery__image a { display: block; }
body.vx.single-product div.product .woocommerce-product-gallery__trigger { border-radius: 0; background: var(--vx-plate); border: 1px solid var(--vx-line); }
/* Astra Pro first-image-large layout: first plate full, rest in two columns (desktop only; on mobile Astra swaps in a tiny-slider with inline widths) */
@media (min-width: 922px) {
  body.vx.single-product div.product .woocommerce-product-gallery.woocommerce-product-gallery--with-images .woocommerce-product-gallery__wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--vx-gap); }
  body.vx.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child { grid-column: 1 / -1; }
  body.vx.single-product div.product .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image { margin: 0 !important; width: auto !important; float: none !important; }
}
body.vx.single-product div.product .woocommerce-product-gallery .flex-control-thumbs { display: flex; gap: .5rem; margin-top: .5rem; }
body.vx.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li { width: 72px; border: 1px solid var(--vx-line); background: var(--vx-plate); }
body.vx.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img { aspect-ratio: 4 / 5; object-fit: cover; opacity: .55; }
body.vx.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active, body.vx.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; }

/* summary */
body.vx.single-product .summary .ast-woo-product-category, body.vx.single-product .summary .single-product-category, body.vx.single-product .summary .posted_in { display: block; font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-muted); margin: 0 0 1rem; }
body.vx.single-product .summary .product_title { font-family: var(--vx-serif); font-size: clamp(1.75rem, 2.8vw, 3rem); line-height: 1.05; letter-spacing: -.01em; margin: 0 0 1rem; font-weight: 400; }
body.vx.single-product .summary p.price, body.vx.single-product .summary .price { font-family: var(--vx-sans); font-size: 1.125rem; color: var(--vx-ink); margin: 0 0 1.5rem; font-weight: 400; }
body.vx.single-product .summary .price del { color: var(--vx-muted); margin-right: .5em; opacity: 1; }
body.vx.single-product .summary .price ins { text-decoration: none; color: var(--vx-accent); }
body.vx.single-product .summary .vx-summary-copy { font-size: var(--vx-body); line-height: 1.6; color: var(--vx-text); max-width: 34em; margin-bottom: 1rem; }
body.vx.single-product .summary .vx-summary-copy p { margin: 0; }
body.vx.single-product .summary .vx-edit { margin: 0 0 1.75rem; }
body.vx.single-product .summary .star-rating, body.vx.single-product .summary .woocommerce-product-rating { display: none !important; }
body.vx.single-product .summary form.cart { padding-top: 1.25rem; border-top: 1px solid var(--vx-line); margin: 0 0 1.75rem; }
body.vx.single-product .summary .variations { margin: 0 0 1.25rem; }
body.vx.single-product .summary .variations th.label, body.vx.single-product .summary .variations td.label { display: block; font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; color: var(--vx-muted); font-weight: 500; padding: 0 0 .6rem; }
body.vx.single-product .summary .variations td.value { display: block; padding: 0; }
body.vx.single-product .summary .variations select { width: 100%; max-width: 20rem; }
/* Astra Pro variation buttons / swatch plugin buttons */
body.vx.single-product .summary .variations .ast-single-variation, body.vx.single-product .summary .variations ul.variable-items-wrapper li, body.vx.single-product .summary .variations .wvs-item, body.vx.single-product .summary .variations .cfvsw-swatches-option { min-width: 3rem; padding: .7em .9em; border: 1px solid var(--vx-line) !important; border-radius: 0 !important; background: var(--vx-plate); font-size: var(--vx-small); margin: 0 .5rem .5rem 0; box-shadow: none !important; }
body.vx.single-product .summary .variations .ast-single-variation.active, body.vx.single-product .summary .variations .ast-single-variation:hover, body.vx.single-product .summary .variations ul.variable-items-wrapper li.selected, body.vx.single-product .summary .variations .cfvsw-selected-swatch { border-color: var(--vx-ink) !important; background: var(--vx-ink) !important; color: var(--vx-plate) !important; }
body.vx.single-product .summary .reset_variations { font-size: var(--vx-micro); letter-spacing: .12em; text-transform: uppercase; }
body.vx.single-product .summary .woocommerce-variation-price, body.vx.single-product .summary .woocommerce-variation-description { margin-bottom: 1rem; }
body.vx.single-product .summary .quantity { display: inline-flex; border: 1px solid var(--vx-line); background: var(--vx-plate); margin-right: .75rem; vertical-align: middle; }
body.vx.single-product .summary .quantity .qty { border: 0; width: 3.25rem; text-align: center; padding: .9em .25em; background: transparent; }
body.vx.single-product .summary .quantity .minus, body.vx.single-product .summary .quantity .plus { border: 0 !important; background: transparent !important; color: var(--vx-ink) !important; width: 2.5rem; padding: 0 !important; font-size: 1rem !important; letter-spacing: 0 !important; }
body.vx.single-product .summary .single_add_to_cart_button { min-width: 14rem; padding: 1.15em 2.4em !important; }
body.vx.single-product .summary .woocommerce-variation-add-to-cart { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 0; }
body.vx.single-product .summary .product_meta { font-size: var(--vx-micro); letter-spacing: .12em; text-transform: uppercase; color: var(--vx-muted); border-top: 1px solid var(--vx-line); padding-top: 1rem; display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; }
body.vx.single-product .summary .product_meta > span { display: inline; }
body.vx.single-product .summary .product_meta a, body.vx.single-product .summary .single-product-category a { color: var(--vx-muted); text-decoration: none; }
body.vx.single-product .summary .ast-single-product-payments, body.vx.single-product .summary .ast-shipping-text { display: none; }

/* tabs → accordion look (works for Astra Pro accordion and default horizontal tabs) */
body.vx.single-product .woocommerce-tabs { margin: clamp(2.5rem, 5vw, 4.5rem) 0 0; padding: 0; }
body.vx.single-product .woocommerce-tabs ul.tabs { display: flex; gap: 0; border-bottom: 1px solid var(--vx-line); padding: 0; margin: 0 0 1.5rem; }
body.vx.single-product .woocommerce-tabs ul.tabs li { border: 0 !important; background: transparent !important; border-radius: 0; margin: 0; padding: 0; }
body.vx.single-product .woocommerce-tabs ul.tabs li::before, body.vx.single-product .woocommerce-tabs ul.tabs li::after { display: none; }
body.vx.single-product .woocommerce-tabs ul.tabs li a { font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; color: var(--vx-muted); padding: 1rem 1.25rem 1rem 0; font-weight: 500; }
body.vx.single-product .woocommerce-tabs ul.tabs li.active a { color: var(--vx-ink); box-shadow: inset 0 -1px 0 var(--vx-ink); }
body.vx.single-product .woocommerce-tabs .ast-woo-tabs-accordion-title, body.vx.single-product .woocommerce-tabs .accordion-title, body.vx.single-product .ast-tab-accordion .ast-tab-title { font-family: var(--vx-sans); font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; padding: 1.1rem 0; border-bottom: 1px solid var(--vx-line); font-weight: 500; }
body.vx.single-product .woocommerce-tabs .panel, body.vx.single-product .woocommerce-tabs .woocommerce-Tabs-panel { max-width: 62ch; font-size: var(--vx-small); line-height: 1.7; padding: 0 0 1.5rem; }
body.vx.single-product .woocommerce-tabs .woocommerce-Tabs-panel h2:first-child { display: none; }
body.vx .vx-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--vx-gap); margin: 0 0 1.5rem; }
body.vx .vx-facts > div { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--vx-line); font-size: var(--vx-small); }
body.vx .vx-facts dt { color: var(--vx-muted); }
body.vx .vx-facts dd { margin: 0; color: var(--vx-ink); }
body.vx .vx-about ul { margin: 0; padding-left: 1.1em; color: var(--vx-muted); }
body.vx .vx-about li { margin: 0 0 .3em; }

/* DETAIL 01 */
body.vx .vx-detail { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--vx-gap) clamp(2rem, 6vw, 7rem); align-items: center; padding: var(--vx-section) 0; border-top: 1px solid var(--vx-line); margin-top: var(--vx-section); }
body.vx .vx-detail-text { padding-right: 8%; }
body.vx .vx-detail-text .vx-headline { margin: 1rem 0 1.25rem; font-style: italic; }
body.vx .vx-detail-lines { color: var(--vx-muted); margin: 0 0 1.75rem; max-width: 40ch; }

/* related / upsells */
body.vx.single-product section.related, body.vx.single-product section.up-sells { padding: var(--vx-section) 0 0; border-top: 1px solid var(--vx-line); margin-top: 0; }
body.vx.single-product section.related > h2, body.vx.single-product section.up-sells > h2 { font-family: var(--vx-serif); font-size: var(--vx-headline); margin: 0 0 clamp(1.5rem, 3vw, 3rem); }
body.vx.single-product section.related ul.products, body.vx.single-product section.up-sells ul.products { margin-bottom: var(--vx-section); }

/* Sticky add-to-cart bar (Astra Pro) */
body.vx .ast-sticky-add-to-cart { background: var(--vx-paper); border-top: 1px solid var(--vx-line); box-shadow: none; }
body.vx .ast-sticky-add-to-cart .ast-sticky-add-to-cart-title { font-family: var(--vx-serif); font-size: 1.125rem; }
body.vx .ast-sticky-add-to-cart .ast-sticky-add-to-cart-price { font-family: var(--vx-sans); }

/* ==========================================================================
   9. Cart, checkout (WooCommerce blocks), account
   ========================================================================== */
body.vx.woocommerce-cart .ast-container, body.vx.woocommerce-checkout .ast-container, body.vx.woocommerce-account .ast-container { max-width: 1280px; padding-inline: var(--vx-gutter); }
body.vx.woocommerce-cart .entry-title, body.vx.woocommerce-checkout .entry-title, body.vx.woocommerce-account .entry-title { font-size: var(--vx-display-xl); text-transform: uppercase; letter-spacing: -.015em; line-height: .95; margin: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(1.5rem, 3vw, 2.5rem); }
body.vx .wc-block-components-product-name, body.vx .wc-block-components-order-summary-item__description .wc-block-components-product-name { font-family: var(--vx-serif); font-size: 1.125rem; text-decoration: none; }
body.vx .wc-block-cart-items__header, body.vx .wc-block-components-checkout-step__title, body.vx .wc-block-components-title { font-family: var(--vx-sans); font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; color: var(--vx-muted); font-weight: 500; }
body.vx .wc-block-components-checkout-step__heading .wc-block-components-title { font-size: var(--vx-label); }
body.vx .wc-block-cart-item__image img, body.vx .wc-block-components-order-summary-item__image img { border: 1px solid var(--vx-line); background: var(--vx-plate); aspect-ratio: 4 / 5; object-fit: cover; }
body.vx .wc-block-cart-items, body.vx .wc-block-cart-items .wc-block-cart-items__row { border-color: var(--vx-line); }
body.vx .wc-block-components-sidebar .wc-block-components-panel, body.vx .wc-block-cart__sidebar { background: var(--vx-plate); border: 1px solid var(--vx-line); padding: 1.5rem; }
body.vx .wc-block-components-totals-item, body.vx .wc-block-components-totals-footer-item { font-size: var(--vx-small); }
body.vx .wc-block-components-totals-footer-item .wc-block-components-totals-item__label, body.vx .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-family: var(--vx-serif); font-size: 1.25rem; font-weight: 400; }
body.vx .wc-block-components-button, body.vx .wc-block-cart__submit-button { width: 100%; }
body.vx .wc-block-components-text-input input, body.vx .wc-block-components-form .wc-block-components-text-input input, body.vx .wc-block-components-country-input .components-combobox-control__input, body.vx .wc-block-components-state-input select, body.vx .wc-block-components-combobox .components-combobox-control__input { border-radius: 0 !important; border-color: var(--vx-line) !important; background: var(--vx-plate); }
body.vx .wc-block-components-text-input input:focus, body.vx .wc-block-components-combobox .components-combobox-control__input:focus { border-color: var(--vx-ink) !important; box-shadow: none !important; }
body.vx .wc-block-components-radio-control__option, body.vx .wc-block-components-checkbox { font-size: var(--vx-small); }
body.vx .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option { border-radius: 0; border-color: var(--vx-line); }
body.vx .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted { border-color: var(--vx-ink); box-shadow: none; }
body.vx .wc-block-components-notice-banner { border-radius: 0; }
body.vx .wc-block-components-product-badge, body.vx .wc-block-components-sale-badge { border-radius: 0; border: 1px solid var(--vx-ink); background: var(--vx-plate); font-size: var(--vx-micro); letter-spacing: .12em; }
body.vx .wp-block-woocommerce-cart-cross-sells-block h2, body.vx .cross-sells h2 { font-family: var(--vx-serif); font-size: var(--vx-headline); }
body.vx .wc-block-components-express-payment { display: none; }
body.vx .wc-block-components-order-summary__button-text, body.vx .wc-block-components-panel__button { font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; }
body.vx .wc-block-components-checkout-return-to-cart-button, body.vx .wc-block-components-checkout-return-to-cart-button:hover { color: var(--vx-ink); font-size: var(--vx-label); letter-spacing: .12em; text-transform: uppercase; }
body.vx .wc-block-components-totals-coupon-link, body.vx .wc-block-components-totals-coupon-link:hover { color: var(--vx-ink); font-size: var(--vx-small); }
body.vx .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title, body.vx .wc-block-cart__empty-cart__title { font-family: var(--vx-serif); font-size: var(--vx-headline); }
body.vx .wp-block-woocommerce-empty-cart-block > .wp-block-heading { font-family: var(--vx-serif); font-size: var(--vx-title); }
body.vx .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title { font-family: var(--vx-sans); font-size: var(--vx-small); font-weight: 500; }

/* Account */
body.vx .woocommerce-MyAccount-navigation ul { border: 0; padding: 0; margin: 0; }
body.vx .woocommerce-MyAccount-navigation li { border: 0; border-bottom: 1px solid var(--vx-line); }
body.vx .woocommerce-MyAccount-navigation li a { font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; padding: 1rem 0; display: block; text-decoration: none; color: var(--vx-muted); }
body.vx .woocommerce-MyAccount-navigation li.is-active a, body.vx .woocommerce-MyAccount-navigation li a:hover { color: var(--vx-ink); }
body.vx .woocommerce-MyAccount-content { font-size: var(--vx-small); }
body.vx .woocommerce-MyAccount-content h2, body.vx .woocommerce-MyAccount-content h3 { font-family: var(--vx-serif); font-size: var(--vx-title); }
body.vx .woocommerce-orders-table, body.vx table.shop_table { border: 0; border-collapse: collapse; border-radius: 0; }
body.vx table.shop_table th, body.vx table.shop_table td { border: 0; border-bottom: 1px solid var(--vx-line); padding: 1rem .5rem; font-size: var(--vx-small); }
body.vx table.shop_table th { font-size: var(--vx-label); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-muted); font-weight: 500; }
body.vx .woocommerce-form-login, body.vx .woocommerce-form-register { background: var(--vx-plate); border: 1px solid var(--vx-line); padding: clamp(1.5rem, 3vw, 2.5rem); border-radius: 0; }
body.vx .ast-woo-form-container, body.vx .woocommerce-account .u-columns > div, body.vx .ast-woocommerce-container .woocommerce-form-login-wrap { border: 0 !important; background: transparent !important; box-shadow: none !important; }
body.vx .ast-woocommerce-account-modern .woocommerce-MyAccount-navigation-wrapper, body.vx .ast-my-account-modern .woocommerce-MyAccount-navigation { background: transparent; border: 0; }
body.vx .woocommerce-message, body.vx .woocommerce-info, body.vx .woocommerce-error { background: var(--vx-plate); border: 1px solid var(--vx-line); border-left: 2px solid var(--vx-ink); border-radius: 0; color: var(--vx-text); font-size: var(--vx-small); }
body.vx .woocommerce-message::before, body.vx .woocommerce-info::before { color: var(--vx-ink); }
body.vx .woocommerce-error { border-left-color: var(--vx-accent); }
body.vx .woocommerce-error::before { color: var(--vx-accent); }

/* ==========================================================================
   10. Journal (posts)
   ========================================================================== */
body.vx.single-post .ast-container, body.vx.blog .ast-container, body.vx.archive:not(.woocommerce) .ast-container { max-width: none; padding-inline: var(--vx-gutter); }
body.vx.single-post .entry-header { max-width: 1120px; margin: clamp(2rem, 5vw, 4rem) auto clamp(1.5rem, 3vw, 2.5rem); text-align: left; }
body.vx.single-post .entry-header .entry-title { font-size: var(--vx-display-xl); line-height: .95; max-width: 14ch; }
body.vx.single-post .entry-meta, body.vx.single-post .entry-header .entry-meta { font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-muted); margin: 0 0 1rem; }
body.vx.single-post .entry-meta a { color: var(--vx-muted); text-decoration: none; }
body.vx.single-post .ast-single-post-featured-section, body.vx.single-post .post-thumb-img-content { max-width: none; margin: 0 0 var(--vx-section); }
body.vx.single-post .ast-single-post-featured-section img, body.vx.single-post .post-thumb-img-content img { width: 100%; max-height: 82vh; object-fit: cover; object-position: 50% 15%; border: 1px solid var(--vx-line); background: var(--vx-plate); }
body.vx.single-post .entry-content > *:not(.alignwide):not(.alignfull):not(.vx-section) { max-width: 68ch; margin-left: auto; margin-right: auto; }
body.vx.single-post .entry-content > p:not(.vx-label) { font-size: clamp(1.0625rem, 1.2vw, 1.25rem); line-height: 1.65; }
body.vx.single-post .entry-content > p.vx-lede { font-family: var(--vx-serif); font-size: clamp(1.375rem, 2vw, 1.875rem); line-height: 1.35; color: var(--vx-ink); }
body.vx.single-post .entry-content > .alignwide { max-width: 1280px; margin-left: auto; margin-right: auto; }
body.vx.single-post .entry-content > .alignfull { margin: var(--vx-section) 0; }
body.vx.single-post .entry-content .wp-block-image { margin: var(--vx-section) auto; }
body.vx .entry-content .wp-block-pullquote { border: 0; border-top: 1px solid var(--vx-ink); border-bottom: 1px solid var(--vx-ink); padding: clamp(2rem, 4vw, 3.5rem) 0; margin: var(--vx-section) auto; text-align: left; }
body.vx .entry-content .wp-block-pullquote p { font-family: var(--vx-serif); font-style: italic; font-size: clamp(1.75rem, 3.2vw, 3rem); line-height: 1.15; color: var(--vx-ink); }
body.vx .entry-content .wp-block-pullquote cite { font-family: var(--vx-sans); font-style: normal; font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; color: var(--vx-muted); }
body.vx .entry-content .wp-block-gallery.vx-sequence { gap: var(--vx-gap); }
body.vx .entry-content .wp-block-gallery.vx-sequence figure { background: var(--vx-plate); border: 1px solid var(--vx-line); }
body.vx .entry-content .wp-block-gallery.vx-sequence img { aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 15%; }
body.vx.single-post .ast-single-post-navigation-wrapper, body.vx.single-post .post-navigation { border-top: 1px solid var(--vx-line); padding-top: 1.5rem; margin-top: var(--vx-section); max-width: 1120px; margin-inline: auto; }
body.vx.single-post .post-navigation a { font-family: var(--vx-serif); font-size: var(--vx-title); text-decoration: none; }
body.vx.single-post .comments-area, body.vx.single-post .ast-related-posts-wrap { max-width: 1120px; margin-inline: auto; }
body.vx .ast-related-posts-title { font-family: var(--vx-serif); font-size: var(--vx-headline); }

/* ==========================================================================
   11. Responsive
   ========================================================================== */
@media (max-width: 1200px) {
  body.vx ul.products, body.vx .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 921px) {
  body.vx .ast-primary-header-bar .site-primary-header-wrap { min-height: 60px; }
  body.vx .site-title, body.vx .site-title a { font-size: 1.2rem; letter-spacing: .18em; }
  body.vx .vx-hero { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: auto auto auto auto auto; padding: 1.5rem var(--vx-gutter) 0; min-height: 0; }
  body.vx .vx-hero .vx-hero-meta { grid-column: 1 / -1; grid-row: 1; margin-bottom: 1.5rem; }
  body.vx .vx-hero .vx-hero-title { grid-column: 1 / -1; grid-row: 2; margin-bottom: 1.5rem; }
  body.vx .vx-hero .vx-hero-image { grid-column: 1 / -1; grid-row: 3; border-width: 1px; margin-inline: 0; }
  body.vx .vx-hero .vx-hero-image img { min-height: 0; aspect-ratio: 4 / 5; object-position: 50% 12%; }
  body.vx .vx-hero .vx-hero-copy { grid-column: 1 / -1; grid-row: 4; margin: 1.5rem 0 1rem; }
  body.vx .vx-hero .vx-cta { grid-column: 1 / -1; grid-row: 5; margin-bottom: var(--vx-section); }
  .vx-motion .vx-hero .vx-hero-image { clip-path: inset(0 0 100% 0); }
  .vx-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .vx-span-3, .vx-span-4, .vx-span-5, .vx-span-6, .vx-span-7, .vx-span-8, .vx-span-9 { grid-column: 1 / -1; }
  .vx-start-2, .vx-start-7, .vx-start-8 { grid-column-start: 1; }
  body.vx .vx-collections .vx-grid > .vx-span-4, body.vx .vx-collections .vx-grid > .vx-span-8 { grid-column: 1 / -1; }
  body.vx .vx-coll .vx-plate img, body.vx .vx-coll.is-tall .vx-plate img { aspect-ratio: 4 / 5; }
  body.vx .vx-coll-text .vx-coll-name { font-size: clamp(1.75rem, 8vw, 2.75rem); }
  body.vx .vx-lookbook .vx-grid > * { grid-column: span 2; }
  body.vx .vx-look.is-offset { margin-top: 3rem; }
  body.vx .vx-look.is-large .vx-plate img, body.vx .vx-look.is-small .vx-plate img { aspect-ratio: 4 / 5; }
  body.vx .vx-split .vx-caption { margin-top: 1.5rem; }
  body.vx .vx-head { flex-direction: column; align-items: flex-start; gap: .75rem; }
  body.vx .vx-statement .vx-display-xxl { font-size: clamp(2.5rem, 11vw, 5rem); }
  body.vx .vx-journal .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.vx .woocommerce-products-header { grid-template-columns: 1fr; }
  body.vx .woocommerce-products-header .vx-season { grid-column: 1; grid-row: 2; padding: .75rem 0 0; }
  body.vx .woocommerce-products-header__title.page-title { font-size: clamp(2.5rem, 12vw, 5rem); }
  body.vx ul.products, body.vx .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1rem; }
  body.vx ul.products li.product .astra-shop-summary-wrap { grid-template-columns: 1fr; }
  body.vx ul.products li.product .astra-shop-summary-wrap .button { opacity: 1; transform: none; }
  body.vx.single-product div.product .ast-sticky-row, body.vx.single-product div.product:not(:has(.ast-sticky-row)) { grid-template-columns: 1fr; }
  body.vx.single-product div.product .woocommerce-product-gallery, body.vx.single-product div.product .summary.entry-summary { grid-column: 1; grid-row: auto; position: static; }
  body.vx .vx-detail { grid-template-columns: 1fr; }
  body.vx .vx-detail-text { padding: 0; }
  body.vx .vx-facts { grid-template-columns: 1fr; }
  body.vx .vx-newsletter .wpforms-field-container { flex-direction: column; }
  body.vx .vx-newsletter .wpforms-field input { border-right: 1px solid var(--vx-line); }
  body.vx .vx-details dl { grid-template-columns: 1fr; gap: .25rem; }
  body.vx .vx-details dt { margin-top: .75rem; }
  body.vx .site-footer .ast-builder-grid-row { gap: 2rem; }
}
@media (max-width: 600px) {
  body.vx .vx-hero .vx-hero-title { font-size: clamp(3.25rem, 17vw, 5rem); }
  body.vx .vx-journal .wp-block-post-template.is-layout-grid { grid-template-columns: 1fr !important; }
  body.vx .vx-lookbook .vx-grid > * { grid-column: 1 / -1; }
  body.vx .vx-look.is-offset { margin-top: 0; }
  body.vx .woocommerce-ordering { width: 100%; }
  body.vx .ast-shop-toolbar-container { gap: 1rem; }
}

/* ==========================================================================
   12. Reduced motion and print
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.vx *, body.vx *::before, body.vx *::after { transition-duration: 0ms !important; animation-duration: 0ms !important; }
  .vx-motion .vx-reveal, .vx-motion .vx-hero .vx-hero-meta, .vx-motion .vx-hero .vx-hero-title, .vx-motion .vx-hero .vx-hero-copy, .vx-motion .vx-hero .vx-cta { opacity: 1; transform: none; }
  .vx-motion .vx-hero .vx-hero-image { clip-path: none; }
}
@media print { body.vx .site-header, body.vx .site-footer { display: none; } }

/* ==========================================================================
   13. Additions: home grid columns, page heads, loop pagination
   ========================================================================== */
body.vx .vx-arrivals ul.products, body.vx ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.vx .vx-arrivals ul.products { margin-bottom: 0; }
body.vx .vx-page-head { padding-bottom: calc(var(--vx-section) * .6); border-bottom: 1px solid var(--vx-line); }
body.vx .vx-page-head .vx-display-xl { margin: .5rem 0 1.25rem; }
body.vx .vx-page-head .vx-lede { margin: 0; }
body.vx .vx-values .vx-title { margin: .5rem 0 .75rem; }
body.vx .vx-company .vx-title { margin-top: .5rem; }
body.vx .vx-sequence { padding-inline: 0; }
body.vx .vx-pagination { display: flex; gap: 1rem; align-items: center; margin-top: var(--vx-section); padding-top: 1.5rem; border-top: 1px solid var(--vx-line); font-size: var(--vx-label); letter-spacing: .12em; text-transform: uppercase; }
body.vx .vx-pagination a, body.vx .vx-pagination .page-numbers { text-decoration: none; padding: .5em .75em; border: 1px solid transparent; }
body.vx .vx-pagination .page-numbers.current { border-color: var(--vx-ink); }
body.vx .vx-journal-loop .wp-block-post-template { display: grid; gap: var(--vx-gap); }
@media (max-width: 921px) {
  body.vx .vx-arrivals ul.products, body.vx ul.products.columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ==========================================================================
   14. Fixes after first render
   ========================================================================== */
/* Header bag: Astra prints the count with ::after { content: attr(data-cart-total) } on the icon; turn it into "Bag (n)" */
body.vx .ast-site-header-cart .astra-icon.ast-icon-shopping-bag { font-style: normal; display: inline-flex; align-items: center; position: static; width: auto; height: auto; }
body.vx .ast-site-header-cart .astra-icon .ast-icon.icon-bag, body.vx .ast-site-header-cart .astra-icon svg { display: none !important; }
body.vx .ast-site-header-cart .astra-icon.ast-icon-shopping-bag::after { content: "Bag (" attr(data-cart-total) ")"; position: static !important; display: inline !important; width: auto !important; height: auto !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--vx-ink) !important; font-family: var(--vx-sans); font-size: var(--vx-label); font-weight: 500; letter-spacing: .16em; text-transform: uppercase; line-height: 1; transform: none !important; box-shadow: none !important; }
body.vx .ast-site-header-cart .ast-cart-menu-wrap .count::before, body.vx .ast-site-header-cart .ast-addon-cart-wrap .count::before, body.vx .ast-site-header-cart .ast-cart-menu-wrap .count::after, body.vx .ast-site-header-cart .ast-addon-cart-wrap .count::after { content: none; }
body.vx .ast-site-header-cart .ast-site-header-cart-li > a.cart-container:hover .astra-icon::after { color: var(--vx-accent) !important; }
/* Section heads must be allowed to wrap on narrow screens */
body.vx .vx-head > * { min-width: 0; }
body.vx .vx-headline, body.vx .vx-display-xl, body.vx .vx-display-xxl { overflow-wrap: break-word; }
body.vx .entry-content .vx-coll-text .vx-coll-name a, body.vx .vx-coll-text .vx-coll-name a { text-decoration: none; border: 0; }
body.vx .vx-coll-text .vx-coll-name a:hover { color: var(--vx-accent); }
/* Lookbook captions: label left (no wrap), product name right in sentence case */
body.vx .vx-look figcaption { display: grid; grid-template-columns: auto 1fr; gap: 1.5rem; align-items: baseline; text-transform: none; letter-spacing: 0; font-size: var(--vx-small); }
body.vx .vx-look figcaption > span { font-size: var(--vx-micro); letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; color: var(--vx-muted); }
body.vx .vx-look figcaption a { text-align: right; color: var(--vx-ink); }
/* Sale flash: Astra positions it right; keep it top-left and hug the text */
body.vx ul.products li.product .onsale, body.vx span.onsale, body.vx .woocommerce span.onsale { left: .75rem !important; right: auto !important; top: .75rem !important; bottom: auto !important; width: max-content !important; min-width: 0 !important; min-height: 0 !important; height: auto !important; transform: none !important; padding: .35em .6em !important; margin: 0 !important; line-height: 1 !important; }
/* Astra Pro accordion (product tabs) */
body.vx.single-product .ast-woocommerce-accordion .ast-single-tab { border: 0; border-bottom: 1px solid var(--vx-line); }
body.vx.single-product .ast-woocommerce-accordion .ast-single-tab:first-child { border-top: 1px solid var(--vx-line); }
body.vx.single-product .ast-woocommerce-accordion .ast-accordion-header { font-family: var(--vx-sans); font-size: var(--vx-label); letter-spacing: .16em; text-transform: uppercase; font-weight: 500; color: var(--vx-ink); margin: 0; padding: 1.1rem 0; border: 0 !important; background: transparent !important; display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
body.vx.single-product .ast-woocommerce-accordion .ast-accordion-header.active { color: var(--vx-ink); }
body.vx.single-product .ast-woocommerce-accordion .ast-accordion-header svg { width: 12px; height: 12px; fill: var(--vx-ink); }
body.vx.single-product .ast-woocommerce-accordion .ast-accordion-content { border: 0 !important; padding: 0 0 1.5rem !important; background: transparent !important; max-width: 62ch; font-size: var(--vx-small); line-height: 1.7; }
body.vx.single-product .ast-woocommerce-accordion .ast-accordion-content h2:first-child { display: none; }
body.vx.single-product .woocommerce-tabs.ast-woocommerce-accordion { margin-top: clamp(2.5rem, 5vw, 4.5rem); }
/* Product card swatches (Variation Swatches plugin) stay off the catalogue cards; sizes belong on the product page */
body.vx ul.products li.product .cfvsw_variations_form, body.vx ul.products li.product .cfvsw-hidden-select, body.vx ul.products li.product .cfvsw-swatches-container { display: none !important; }
/* Journal single: one measure for lede and body so the left edges align; Astra pullquote chrome off */
body.vx.single-post .entry-content > *:not(.alignwide):not(.alignfull):not(.vx-section) { max-width: 46rem; }
body.vx.single-post .entry-content > p.vx-lede { max-width: 46rem; }
body.vx.single-post .entry-meta .posted-by, body.vx.single-post .entry-meta .ast-author-name, body.vx.single-post .entry-meta .comments-link { display: none; }
body.vx .entry-content .wp-block-pullquote blockquote { border: 0; padding: 0; margin: 0; }
body.vx .entry-content .wp-block-pullquote blockquote::before, body.vx .entry-content .wp-block-pullquote::before { display: none !important; content: none !important; }
body.vx .entry-content .wp-block-pullquote { box-shadow: none; background: transparent; }
body.vx.single-post .entry-content .vx-sequence { padding-block: calc(var(--vx-section) * .5); }
body.vx.single-post .entry-content .vx-sequence .wp-block-image { margin: 0; }
/* Cart page: quiet empty state, grid product titles */
body.vx .wp-block-woocommerce-empty-cart-block > .wp-block-image, body.vx .wp-block-woocommerce-empty-cart-block > .wp-block-separator { display: none; }
body.vx .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title, body.vx .wc-block-grid__product-title { font-family: var(--vx-sans); font-size: var(--vx-small); font-weight: 500; text-decoration: none; color: var(--vx-ink); }
body.vx .wc-block-grid__product-link { text-decoration: none; }
body.vx .wc-block-grid__product-image img { border: 1px solid var(--vx-line); background: var(--vx-plate); aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 15%; }
body.vx .wc-block-grid__product-onsale { border-radius: 0; border: 1px solid var(--vx-ink); background: var(--vx-plate); font-size: var(--vx-micro); letter-spacing: .12em; text-transform: uppercase; padding: .35em .6em; left: .75rem; right: auto; top: .75rem; }
body.vx .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price { font-size: var(--vx-small); }
@media (max-width: 921px) {
  body.vx .vx-look figcaption { grid-template-columns: 1fr; gap: .25rem; }
  body.vx .vx-look figcaption a { text-align: left; }
}

/* ==========================================================================
   15. Second render pass
   ========================================================================== */
/* Wordmark: the anchor text carries whitespace; pull the accent dot back by the tracking */
body.vx .site-title a::after { margin-left: -.18em; }
/* Footer: four left-aligned columns */
body.vx .site-footer .ast-builder-html-element, body.vx .site-footer .ast-footer-copyright { text-align: left; }
body.vx .site-footer .ast-builder-grid-row { column-gap: var(--vx-gap); }
/* Product gallery (Astra Pro first-image-large): secondary plates fill their cells */
body.vx.single-product div.product .woocommerce-product-gallery__image a, body.vx.single-product div.product .woocommerce-product-gallery__image img { display: block; width: 100% !important; height: auto; max-width: none; }
/* Accordion: closed panels stay closed (Astra toggles .active on the content) */
body.vx.single-product .ast-woocommerce-accordion .ast-accordion-content:not(.active) { display: none !important; }
body.vx.single-product .ast-woocommerce-accordion .ast-accordion-header .ahfb-svg-iconset:first-of-type { display: inline-flex; }
body.vx.single-product .ast-woocommerce-accordion .ast-accordion-header.active .ahfb-svg-iconset:first-of-type, body.vx.single-product .ast-woocommerce-accordion .ast-accordion-header:not(.active) .ahfb-svg-iconset:last-of-type { display: none; }
/* Values row: labels and titles share a baseline grid */
body.vx .vx-values .vx-grid > * > .vx-label { margin-bottom: .5rem; }
@media (max-width: 921px) {
  body.vx .site-footer .ast-builder-grid-row { row-gap: 2.5rem; }
}

/* ==========================================================================
   16. Mobile gallery slider, empty bag, account frame
   ========================================================================== */
body.vx .ast-product-gallery-layout-first-image-large .tns-nav button, body.vx .tns-nav button { width: 8px !important; height: 8px !important; min-width: 0; padding: 0 !important; margin: 0 .35rem !important; border: 1px solid var(--vx-ink) !important; background: transparent !important; border-radius: 50% !important; line-height: 0 !important; }
body.vx .ast-product-gallery-layout-first-image-large .tns-nav .tns-nav-active, body.vx .tns-nav .tns-nav-active { background: var(--vx-ink) !important; }
body.vx .ast-product-gallery-layout-first-image-large .tns-outer { background: var(--vx-plate); border: 1px solid var(--vx-line); }
body.vx .ast-product-gallery-layout-first-image-large .tns-outer .woocommerce-product-gallery__image { border: 0; }
body.vx .ast-product-gallery-layout-first-image-large .tns-controls button { background: var(--vx-plate) !important; color: var(--vx-ink) !important; border: 1px solid var(--vx-line) !important; padding: .5em .8em !important; }
body.vx .wc-block-cart__empty-cart__title.with-empty-cart-icon::before, body.vx .wp-block-woocommerce-empty-cart-block .with-empty-cart-icon::before { display: none !important; content: none !important; }
body.vx .wp-block-woocommerce-empty-cart-block .wp-block-image { display: none; }
body.vx .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { font-size: var(--vx-headline); margin: clamp(2rem, 4vw, 3rem) 0 1rem; }
body.vx .wp-block-woocommerce-empty-cart-block .wp-block-button .wp-block-button__link { display: inline-block; }

/* Mobile header: wordmark, bag label and menu trigger must fit 360px side by side */
@media (max-width: 921px) {
  body.vx .site-title, body.vx .site-title a { font-size: 1rem; letter-spacing: .14em; }
  body.vx .ast-primary-header-bar .site-primary-header-wrap { padding-left: 1rem; padding-right: 1rem; }
  body.vx .ast-site-header-cart .astra-icon.ast-icon-shopping-bag::after { font-size: var(--vx-micro); letter-spacing: .1em; }
  body.vx .ast-builder-grid-row { column-gap: .75rem; }
  body.vx .ast-header-break-point .main-header-bar .ast-button-wrap .menu-toggle { margin-left: .5rem; }
}
