/* ============================================================
   VORTEX RESEARCH — CUSTOMIZER CSS  (v3, trimmed)
   Replace your entire Customizer CSS with this file.

   Removed vs v2 (all of it either self-cancelled later in the same
   file, or styles markup that is force-hidden elsewhere):
   - #customer_login / register card styling — the whole block is
     display:none'd by the .woocommerce-account:not(.logged-in) rule
   - .woocommerce-MyAccount-navigation styling + the 300px sidebar
     grid — nav is hidden three separate times at the bottom
   - .vrtx-account-header / .vrtx-acct-card / .vrtx-orders-block /
     .vrtx-orders-table — superseded by the Account SPA
   - .vx-* Elementor helpers + .vx-anim — old Elementor homepage
   - .vrtx-promo-banner — snippet was deactivated
   - .vrtx-checkout-gate / .vrtx-gate-card — standalone gate page,
     superseded by the inline .vrtx-checkout-state gate
   - .vrtx-onboard-page / .vrtx-onboard-card wrappers — superseded
     by the inline .vrtx-onboard-content card (form internals kept)
   - .vrtx-mini-cart-coupon — widget was deleted from the snippet
   - card .vrtx-card-desc / .vrtx-meta-pills styling — both hidden
   - card price del/ins/.price styling — all hidden, .vrtx-from-*
     is what actually renders
   - dead related-products sizing rules for elements that are hidden
   - three duplicate 599px media queries merged into one
   - duplicate mini-cart total + del price rules deduped

   Anything removed is in vortex-css-quarantine.css — paste a block
   back if something looks off.
   ============================================================ */

/* ========== TOKENS ========== */
:root {
  --vx-bg: #FFFFFF;
  --vx-tint: #FAF7FF;
  --vx-soft: #F3EEFF;
  --vx-purple: #7C5CFA;
  --vx-deep: #5B3FE8;
  --vx-light: #A78BFA;
  --vx-ink-1: #0F0824;
  --vx-ink-2: #2D2147;
  --vx-ink-3: #5B4D6E;
  --vx-ink-4: #8B7BA8;
  --vx-border: #ECE4FA;
  --vx-border-strong: #D4C5F9;
  --vx-shadow-sm: 0 2px 6px rgba(124,92,250,0.06);
  --vx-shadow-md: 0 8px 24px rgba(124,92,250,0.10);
  --vx-shadow-lg: 0 24px 60px rgba(124,92,250,0.18);
  --vx-shadow-cta: 0 6px 18px rgba(124,92,250,0.32);
  --vx-shadow-cta-h: 0 12px 28px rgba(124,92,250,0.40);
}

/* ========== PAGE WRAPPERS ========== */
html, body, #page, .site, .site-content,
.ast-container, .ast-row, .entry-content, main#main {
  background: #fff !important;
}
html, body {
  max-width: 100% !important;
  overflow-x: hidden !important;
  margin-top: 0 !important;
}
body {
  color: var(--vx-ink-1);
  padding-top: 80px !important;
}
body.elementor-editor-active { padding-top: 0 !important; }
body.admin-bar { padding-top: 112px !important; }
@media (max-width: 921px) { body { padding-top: 64px !important; } }
@media (max-width: 782px) { body.admin-bar { padding-top: 110px !important; } }
.site, #page, .elementor, .elementor-section,
.elementor-container, .elementor-widget-wrap { max-width: 100% !important; }
html { scroll-padding-top: 80px; }

/* ========== STICKY HEADER ========== */
.site-header, .ast-primary-header-bar, .ast-mobile-header-wrap {
  position: fixed !important;
  top: 0 !important; left: 0 !important; right: 0 !important;
  width: 100% !important;
  z-index: 99 !important;
}
body.admin-bar .site-header,
body.admin-bar .ast-primary-header-bar,
body.admin-bar .ast-mobile-header-wrap { top: 32px !important; }
@media (max-width: 782px) {
  body.admin-bar .site-header,
  body.admin-bar .ast-primary-header-bar,
  body.admin-bar .ast-mobile-header-wrap { top: 46px !important; }
}

/* ========== GLOBAL SELECTION + INPUT FIX ========== */
/* Selection highlight only — no forced text color, which was making
   selected characters invisible on dark sections. */
::selection { background: rgba(124,92,250,0.28) !important; }
::-moz-selection { background: rgba(124,92,250,0.28) !important; }
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]):not([type="image"]):not([type="hidden"]):not([type="range"]),
textarea, select {
  background: #fff !important;
  background-color: #fff !important;
  color: #0F0824 !important;
  -webkit-text-fill-color: #0F0824 !important;
}
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active,
textarea:-webkit-autofill,
select:-webkit-autofill {
  -webkit-text-fill-color: #0F0824 !important;
  -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
  box-shadow: 0 0 0 1000px #fff inset !important;
  caret-color: #7C5CFA !important;
  transition: background-color 9999s ease-in-out 0s !important;
}

/* Global white-heading override leaks onto light content pages
   (Policies, Terms). Scoped so it can't touch dark hero sections.

   FIX: the old form used !important on every .entry-content heading, which
   also beat the homepage snippet's own colours — every heading sitting on a
   dark panel (.vm-cat h2, .vm-ship h2, .vm-cta h2, .coa-h, .cta-h) was being
   painted #0F0824 on a #0F0824 background. Limiting it to unclassed headings
   keeps Policies/Terms fixed while leaving the snippet's classed headings
   (.vm-h1, .vm-h2, .hero-h, .coa-h, .cta-h ...) alone. */
.entry-content :is(h1,h2,h3,h4,h5,h6):not([class]) { color: var(--vx-ink-1) !important; }

/* ========== FORMS ========== */
.woocommerce form .form-row,
.woocommerce-page form .form-row { margin-bottom: 18px !important; padding: 0 !important; }
.woocommerce form .form-row label,
.woocommerce-page form .form-row label,
.woocommerce-form-row label {
  display: block !important;
  color: var(--vx-ink-2) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  margin-bottom: 8px !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-Input {
  width: 100% !important;
  padding: 14px 18px !important;
  background: #fff !important;
  color: var(--vx-ink-1) !important;
  font-size: 15px !important;
  border: 1.5px solid var(--vx-border-strong) !important;
  border-radius: 14px !important;
  min-height: 52px !important;
  transition: border-color .2s ease, box-shadow .2s ease !important;
  box-shadow: none !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-Input:focus {
  outline: none !important;
  border-color: var(--vx-purple) !important;
  box-shadow: 0 0 0 4px rgba(124,92,250,0.12) !important;
}
.woocommerce form .form-row input.input-text::placeholder,
.woocommerce-Input::placeholder { color: var(--vx-ink-4) !important; }
.woocommerce input:-webkit-autofill,
.woocommerce input:-webkit-autofill:hover,
.woocommerce input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--vx-ink-1) !important;
  -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
  border: 1.5px solid var(--vx-border-strong) !important;
  caret-color: var(--vx-purple) !important;
  transition: background-color 9999s ease-in-out 0s !important;
}
.woocommerce form .form-row .required,
.required { color: var(--vx-deep) !important; text-decoration: none !important; font-weight: 700; }

/* ========== NOTICES ========== */
.woocommerce-notices-wrapper,
.woocommerce-error, .woocommerce-message, .woocommerce-info, .woocommerce-noreviews {
  display: block !important;
  width: 100% !important;
  max-width: 1240px !important;
  margin: 0 auto 24px !important;
  box-sizing: border-box !important;
  clear: both !important;
  position: relative !important;
  z-index: 999 !important;
}
.woocommerce-notices-wrapper { padding: 0 16px !important; }
.woocommerce-error, .woocommerce-message, .woocommerce-info, .woocommerce-noreviews {
  visibility: visible !important;
  opacity: 1 !important;
  padding: 18px 22px !important;
  list-style: none !important;
  border-radius: 18px !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  font-weight: 600 !important;
}
.woocommerce-error::before,
.woocommerce-message::before,
.woocommerce-info::before { display: none !important; content: none !important; }
.woocommerce-error {
  background: #FEF2F2 !important;
  color: #991B1B !important;
  border: 1px solid #FECACA !important;
  border-left: 5px solid #DC2626 !important;
  box-shadow: 0 8px 24px rgba(220,38,38,0.10) !important;
}
.woocommerce-info {
  background: var(--vx-tint) !important;
  color: var(--vx-ink-1) !important;
  border: 1px solid var(--vx-border-strong) !important;
  border-left: 5px solid var(--vx-purple) !important;
  box-shadow: var(--vx-shadow-sm) !important;
}
.woocommerce-message {
  background: #ECFDF5 !important;
  color: #065F46 !important;
  border: 1px solid #A7F3D0 !important;
  border-left: 5px solid #059669 !important;
  box-shadow: 0 8px 24px rgba(5,150,105,0.10) !important;
}
.woocommerce-error li, .woocommerce-message li, .woocommerce-info li {
  margin: 0 !important; padding: 0 !important; color: inherit !important;
}
.woocommerce-error a { color: var(--vx-purple) !important; font-weight: 800 !important; text-decoration: underline !important; }
.woocommerce-message a, .woocommerce-info a { color: inherit !important; font-weight: 800 !important; text-decoration: underline !important; }

/* ========== WC BUTTONS ========== */
.woocommerce-MyAccount-content .button,
.woocommerce-MyAccount-content button[type="submit"],
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce-Button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-height: 52px !important;
  padding: 14px 30px !important;
  border-radius: 999px !important;
  border: 0 !important;
  background: var(--vx-purple) !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: -.1px !important;
  text-decoration: none !important;
  box-shadow: var(--vx-shadow-cta) !important;
  transition: transform .2s ease, background .2s ease, box-shadow .3s ease !important;
  cursor: pointer !important;
  text-shadow: none !important;
}
.woocommerce-MyAccount-content .button:hover,
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce-Button:hover {
  background: var(--vx-deep) !important;
  transform: translateY(-2px) !important;
  box-shadow: var(--vx-shadow-cta-h) !important;
  color: #fff !important;
}
.woocommerce .button.alt { background: var(--vx-deep) !important; }
.woocommerce a.button.view,
.woocommerce-orders-table__cell a.button {
  background: #fff !important;
  color: var(--vx-ink-1) !important;
  border: 1.5px solid var(--vx-border-strong) !important;
  box-shadow: none !important;
  min-height: 40px !important;
  padding: 8px 18px !important;
  font-size: 14px !important;
}
.woocommerce a.button.view:hover,
.woocommerce-orders-table__cell a.button:hover {
  background: var(--vx-tint) !important;
  border-color: var(--vx-light) !important;
  color: var(--vx-ink-1) !important;
}

/* ========== TABLES ========== */
.woocommerce table.shop_table,
.woocommerce-orders-table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  background: transparent !important;
  border: 1px solid var(--vx-border) !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  margin-bottom: 24px !important;
}
.woocommerce table.shop_table th,
.woocommerce-orders-table th {
  background: var(--vx-tint) !important;
  color: var(--vx-ink-1) !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: .8px !important;
  padding: 16px 18px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--vx-border) !important;
  text-align: left !important;
}
.woocommerce table.shop_table td,
.woocommerce-orders-table td {
  padding: 18px !important;
  background: #fff !important;
  color: var(--vx-ink-2) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--vx-border) !important;
  font-size: 15px !important;
}
.woocommerce table.shop_table tr:last-child td,
.woocommerce-orders-table tr:last-child td { border-bottom: 0 !important; }
.woocommerce table.shop_table tbody tr:hover td,
.woocommerce-orders-table tbody tr:hover td { background: var(--vx-tint) !important; }
@media (max-width: 899px) {
  .woocommerce table.shop_table { font-size: 14px !important; }
  .woocommerce table.shop_table th,
  .woocommerce table.shop_table td { padding: 12px !important; }
}
.woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table mark {
  display: inline-block !important;
  padding: 5px 12px !important;
  background: var(--vx-tint) !important;
  color: var(--vx-deep) !important;
  border: 1px solid var(--vx-border-strong) !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: .5px !important;
  text-transform: uppercase !important;
}

/* ========== PAGINATION (merged — was split across two blocks) ========== */
.woocommerce nav.woocommerce-pagination {
  display: block !important;
  width: 100% !important;
  clear: both !important;
  text-align: center !important;
  margin: 8px 0 48px !important;
  padding: 0 !important;
  grid-column: 1 / -1 !important;
}
.woocommerce nav.woocommerce-pagination ul {
  border: 1px solid var(--vx-border) !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  display: inline-flex !important;
}
.woocommerce nav.woocommerce-pagination ul li { border-right: 1px solid var(--vx-border) !important; }
.woocommerce nav.woocommerce-pagination ul li:last-child { border-right: 0 !important; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  padding: 12px 18px !important;
  color: var(--vx-ink-2) !important;
  background: #fff !important;
  font-weight: 600 !important;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--vx-purple) !important;
  color: #fff !important;
}

/* ========== ADDRESSES ========== */
.woocommerce-Address {
  background: #fff !important;
  border: 1px solid var(--vx-border) !important;
  border-radius: 18px !important;
  padding: 24px !important;
  margin-bottom: 24px !important;
  box-shadow: var(--vx-shadow-sm) !important;
}
.woocommerce-Address-title {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 14px !important;
}
.woocommerce-Address-title h3 { margin: 0 !important; font-size: 20px !important; color: var(--vx-ink-1) !important; }
.woocommerce-Address address { font-style: normal !important; color: var(--vx-ink-3) !important; line-height: 1.7 !important; margin: 0 !important; }
.u-columns.woocommerce-Addresses {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 20px !important;
  margin: 0 !important;
}
@media (min-width: 768px) {
  .u-columns.woocommerce-Addresses { grid-template-columns: 1fr 1fr !important; gap: 24px !important; }
}
.u-columns.woocommerce-Addresses .col-1,
.u-columns.woocommerce-Addresses .col-2 { width: 100% !important; float: none !important; padding: 0 !important; margin: 0 !important; }

/* ========== MY ACCOUNT ==========
   Nav is permanently hidden (Account SPA renders its own), so the
   300px sidebar grid and all nav link styling that used to live here
   have been removed — they styled markup that never paints. */
.elementor-widget-shortcode,
.elementor-widget-shortcode .elementor-widget-container,
.elementor-shortcode { width: 100% !important; max-width: 100% !important; }

.woocommerce:has(> .woocommerce-MyAccount-navigation),
.elementor-shortcode > .woocommerce:has(.woocommerce-MyAccount-navigation),
.elementor-widget-shortcode .woocommerce:has(.woocommerce-MyAccount-navigation) {
  display: block !important;
  width: 100% !important;
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding: 0 16px 64px !important;
  box-sizing: border-box !important;
  clear: both !important;
  color: var(--vx-ink-1) !important;
}
@media (max-width: 899px) {
  .woocommerce:has(> .woocommerce-MyAccount-navigation),
  .elementor-shortcode > .woocommerce:has(.woocommerce-MyAccount-navigation),
  .elementor-widget-shortcode .woocommerce:has(.woocommerce-MyAccount-navigation) {
    padding: 0 12px 48px !important;
  }
  .woocommerce-MyAccount-content { padding: 24px 20px !important; }
}

/* Kill the native account nav everywhere — SPA replaces it */
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-navigation ul,
body.woocommerce-account .woocommerce-MyAccount-navigation li,
body.woocommerce-account .woocommerce-MyAccount-navigation a,
.elementor-widget-shortcode .woocommerce-MyAccount-navigation,
.woocommerce .woocommerce-MyAccount-navigation {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  width: 0 !important;
  overflow: hidden !important;
  position: absolute !important;
  left: -9999px !important;
  pointer-events: none !important;
}

.woocommerce-MyAccount-content {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  grid-column: 1 / -1 !important;
  margin: 0 !important;
  background: #fff !important;
  border: 1px solid var(--vx-border) !important;
  border-radius: 20px !important;
  padding: 36px 32px !important;
  box-shadow: var(--vx-shadow-sm) !important;
  color: var(--vx-ink-2) !important;
  font-size: 16px;
  line-height: 1.7;
  min-height: 420px !important;
}
.woocommerce-MyAccount-content > .woocommerce-info,
.woocommerce-MyAccount-content > p:first-of-type { display: none !important; }
.woocommerce-MyAccount-content > p { color: var(--vx-ink-3); margin-bottom: 18px; }
.woocommerce-MyAccount-content > p strong { color: var(--vx-ink-1); font-weight: 700; }
.woocommerce-MyAccount-content a {
  color: var(--vx-deep) !important;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color .2s ease, border-color .2s ease;
}
.woocommerce-MyAccount-content a:hover { color: var(--vx-purple) !important; border-bottom-color: var(--vx-light); }
.woocommerce-MyAccount-content h1,
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3,
.woocommerce-MyAccount-content h4 { color: var(--vx-ink-1); font-weight: 800; letter-spacing: -.5px; margin: 0 0 16px; }
.woocommerce-MyAccount-content h2 { font-size: 28px; }
.woocommerce-MyAccount-content h3 { font-size: 22px; margin-top: 28px; }

/* Account SPA overrides */
.vrtx-tab.is-active { color: #7C5CFA !important; border-bottom-color: #7C5CFA !important; background: transparent !important; }
.vrtx-quick-link:hover { background: #FAF7FF !important; border-color: #C4B5FD !important; transform: translateY(-2px) !important; box-shadow: 0 6px 20px rgba(124,92,250,.10) !important; }
.vrtx-quick-link--purple:hover { background: linear-gradient(135deg, #8B6DFA 0%, #6B4FF0 100%) !important; border-color: transparent !important; }
.vrtx-stat-card:hover { transform: none !important; box-shadow: none !important; }
.vrtx-affiliate-dash iframe { width: 100%; height: 2400px; border: 0; display: block; }
#tab-partner,
#tab-partner #vrtx-aff-root,
#tab-partner #vrtx-aff-dashboard,
#tab-partner .vrtx-aff-link-card { overflow: visible !important; }

/* ========== LOGIN (magic-login only — native form is hidden) ========== */
.woocommerce-account:not(.logged-in) #customer_login,
.woocommerce-account:not(.logged-in) .u-columns.col2-set,
.woocommerce-account:not(.logged-in) .woocommerce form.login,
.woocommerce-account:not(.logged-in) .woocommerce form.register,
.woocommerce-account:not(.logged-in) .u-column1,
.woocommerce-account:not(.logged-in) .u-column2 {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}
.vrtx-login-wrap input[name="log"],
.vrtx-login-wrap #user_login {
  width: 100% !important;
  padding: 16px 18px !important;
  border: 1.5px solid #D4C5F9 !important;
  border-radius: 14px !important;
  font-size: 15px !important;
  background: #fff !important;
  color: #0F0824 !important;
  -webkit-text-fill-color: #0F0824 !important;
  box-sizing: border-box !important;
  font-family: 'DM Sans', sans-serif !important;
  margin-bottom: 10px !important;
  display: block !important;
}
.vrtx-register-terms {
  font-size: 13px !important; color: var(--vx-ink-3) !important;
  line-height: 1.55 !important; margin: 12px 0 4px !important;
  padding: 12px 16px !important; background: var(--vx-tint) !important;
  border: 1px solid var(--vx-border) !important; border-radius: 12px !important;
}
.vrtx-register-terms a { color: var(--vx-deep) !important; font-weight: 600 !important; text-decoration: underline !important; }
#magic-login-shortcode { width: 100%; text-align: center; }
.vrtx-ml-tabs { margin-left: auto !important; margin-right: auto !important; max-width: 280px !important; }

/* ========== SHOP PAGE ========== */
body.woocommerce-shop .site-content,
body.tax-product_cat .site-content {
  background: #FAFAF8 !important;
  padding-top: 0 !important;
}
body.woocommerce-shop .woocommerce,
body.tax-product_cat .woocommerce { max-width: 1240px; margin: 0 auto; padding: 0; background: transparent !important; }
body.woocommerce-shop .ast-container,
body.tax-product_cat .ast-container { display: block !important; padding-top: 0 !important; margin-top: 0 !important; }
body.woocommerce-shop #primary,
body.woocommerce-shop .content-area,
body.tax-product_cat #primary,
body.tax-product_cat .content-area {
  width: 100% !important; max-width: 100% !important;
  float: none !important; margin: 0 !important; padding: 0 !important;
}
body.woocommerce-shop .widget-area,
body.woocommerce-shop aside.secondary,
body.woocommerce-shop #secondary,
body.tax-product_cat .widget-area,
body.tax-product_cat aside.secondary,
body.tax-product_cat #secondary { display: none !important; }
body.woocommerce-shop .ast-page-header,
body.woocommerce-shop .page-header,
body.archive.woocommerce .ast-page-header,
body.archive.woocommerce .ast-page-header-section,
body.tax-product_cat .ast-page-header,
body.tax-product_cat .page-header,
.woocommerce-products-header,
.woocommerce-products-header__title { display: none !important; }

/* Shop hero */
.vrtx-shop-hero {
  background: #fff !important;
  border-bottom: 1px solid var(--vx-border) !important;
  width: 100% !important;
  box-sizing: border-box !important;
  max-width: 100% !important;
  padding: 28px 16px 0 !important;
  margin: 0 !important;
}
.vrtx-shop-hero > * {
  max-width: 1240px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
}
.vrtx-shop-hero h1 {
  font-size: clamp(32px, 4.5vw, 44px) !important;
  letter-spacing: -1.2px !important;
  margin-bottom: 6px !important;
}
.vrtx-shop-hero > p {
  font-size: 15px !important;
  color: var(--vx-ink-4) !important;
  margin-bottom: 20px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
}
.vrtx-shop-hero form input[type="search"]:focus {
  border-color: var(--vx-purple) !important;
  box-shadow: 0 0 0 4px rgba(124,92,250,0.10) !important;
  background: #fff !important;
}
.vrtx-shop-hero form input[type="search"]::placeholder { color: var(--vx-ink-4) !important; }

/* Category pills */
.vrtx-cat-pills {
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding: 0 16px !important;
  border-bottom: 1px solid var(--vx-border) !important;
  background: #fff !important;
  overflow-x: auto !important;
  scrollbar-width: none !important;
}
.vrtx-cat-pills::-webkit-scrollbar { display: none !important; }
.vrtx-cat-pills-inner { display: flex !important; gap: 0 !important; flex-wrap: nowrap !important; padding-bottom: 0 !important; }
.vrtx-cat-pill {
  flex-shrink: 0 !important;
  padding: 14px 18px 13px !important;
  background: transparent !important;
  color: var(--vx-ink-4) !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  letter-spacing: -0.1px !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  transition: color 0.15s ease, border-color 0.15s ease !important;
}
.vrtx-cat-pill:hover { color: var(--vx-ink-2) !important; }
.vrtx-cat-pill.is-active { color: var(--vx-purple) !important; border-bottom-color: var(--vx-purple) !important; font-weight: 600 !important; }

/* Trust strip */
.vrtx-trust-strip {
  background: var(--vx-ink-1);
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 13px 40px !important;
  box-sizing: border-box !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
}
.vrtx-trust-strip-item {
  display: flex; align-items: center; gap: 7px;
  font-size: 12.5px; font-weight: 500;
  color: rgba(255,255,255,0.55);
  white-space: nowrap;
  font-family: Inter, sans-serif;
}
.vrtx-trust-strip-item svg { color: var(--vx-light); flex-shrink: 0; }
.vrtx-trust-strip-item strong { color: rgba(255,255,255,0.88); font-weight: 600; }
@media (max-width: 600px) { .vrtx-trust-strip { gap: 20px; padding: 12px 20px !important; } }

/* Result count + ordering */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
  font-size: 13px !important;
  color: var(--vx-ink-4) !important;
  padding: 0 16px !important;
  margin: 28px 0 20px !important;
  display: block !important;
  max-width: 1240px !important;
}
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering { margin: 20px 0 20px auto !important; padding: 0 16px !important; float: right !important; }
.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
  height: 40px !important;
  padding: 0 36px 0 16px !important;
  border-radius: 999px !important;
  border: 1px solid var(--vx-border-strong) !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%235B4D6E' d='M6 8L2 4h8z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 12px !important;
  font-family: Inter, sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--vx-ink-2) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer;
  transition: border-color 0.15s ease !important;
}
.woocommerce .woocommerce-ordering select:hover,
.woocommerce .woocommerce-ordering select:focus { border-color: var(--vx-purple) !important; outline: none !important; }

/* ========== PRODUCT GRID ========== */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  gap: 18px !important;
  grid-template-columns: repeat(2, 1fr) !important;
  margin: 0 0 48px !important;
  padding: 0 !important;
  list-style: none !important;
}
@media (min-width: 600px) { .woocommerce ul.products { grid-template-columns: repeat(2,1fr) !important; } }
@media (min-width: 900px) { .woocommerce ul.products { grid-template-columns: repeat(3,1fr) !important; } }
@media (min-width: 1200px) { .woocommerce ul.products { grid-template-columns: repeat(4,1fr) !important; } }

/* ========== PRODUCT CARD ========== */
.woocommerce ul.products li.product {
  background: #fff !important;
  border: 1px solid rgba(124,92,250,0.10) !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-shadow: 0 2px 12px rgba(15,8,36,0.05), 0 1px 2px rgba(15,8,36,0.04) !important;
  display: flex !important;
  flex-direction: column !important;
  list-style: none !important;
  float: none !important;
  transition: transform 0.28s cubic-bezier(0.22,1,0.36,1), box-shadow 0.28s ease, border-color 0.2s ease !important;
}
.woocommerce ul.products li.product::before,
.woocommerce ul.products li.product::after { display: none !important; }
.woocommerce ul.products li.product:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(124,92,250,0.25) !important;
  box-shadow: 0 12px 40px rgba(124,92,250,0.14), 0 2px 8px rgba(15,8,36,0.06) !important;
}

/* Link wrapper — contents so children join the card's flex column */
.woocommerce ul.products li.product .woocommerce-loop-product__link { display: contents !important; }
/* Tablet needs display:block to prevent overlap; injected elements
   then follow the link in source order, which is already correct. */
@media (min-width: 768px) and (max-width: 1024px) {
  .woocommerce ul.products li.product .woocommerce-loop-product__link {
    display: block !important;
    order: 0 !important;
  }
  .woocommerce ul.products li.product .vrtx-coa-verified   { order: 1 !important; }
  .woocommerce ul.products li.product .vrtx-card-stars     { order: 2 !important; }
  .woocommerce ul.products li.product .vrtx-card-footer-row{ order: 5 !important; }
  .woocommerce ul.products li.product .vrtx-card-atc       { order: 6 !important; }
}

/* Image zone */
.woocommerce ul.products li.product .vrtx-img-wrap {
  order: 0 !important;
  background: linear-gradient(160deg, #F7F3FF 0%, #EDE8FF 100%) !important;
  padding: 32px 24px !important;
  position: relative !important;
  border-radius: 0 !important;
}
.woocommerce ul.products li.product .vrtx-img-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 70% 60% at 50% 60%, rgba(167,139,250,0.18) 0%, transparent 70%);
  pointer-events: none;
}
.woocommerce ul.products li.product .vrtx-img-wrap img {
  width: auto !important;
  max-width: 100% !important;
  max-height: 220px !important;
  margin: 0 auto !important;
  display: block !important;
  filter: drop-shadow(0 16px 28px rgba(15,8,36,0.18)) !important;
  border-radius: 0 !important;
  position: relative;
  z-index: 1;
  object-fit: contain !important;
  image-rendering: -webkit-optimize-contrast !important;
}

/* Title */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2.woocommerce-loop-product__title,
.woocommerce ul.products li.product h3.woocommerce-loop-product__title {
  order: 1 !important;
  display: block !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  color: #0F0824 !important;
  margin: 18px 18px 6px !important;
  padding: 0 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.4px !important;
  text-transform: none !important;
}
/* Astra renders a duplicate title inside its own link wrapper. Hiding
   that wrapper is the real fix; the sibling rule is a safety net for
   any theme update that renders the title bare. */
.woocommerce ul.products li.product a.ast-loop-product__link,
.woocommerce ul.products li.product .woocommerce-loop-product__title ~ .woocommerce-loop-product__title,
.woocommerce ul.products li.product .vrtx-card-atc ~ .woocommerce-loop-product__title,
.woocommerce ul.products li.product .vrtx-card-footer-row ~ .woocommerce-loop-product__title {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  position: absolute !important;
  pointer-events: none !important;
}

/* COA line + stars */
.woocommerce ul.products li.product .vrtx-coa-verified {
  order: 2 !important;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  color: #5B4D6E;
  margin: 0 18px 5px;
}
.woocommerce ul.products li.product .vrtx-coa-verified svg { color: #7C5CFA; flex-shrink: 0; }
.woocommerce ul.products li.product .vrtx-card-stars {
  order: 3 !important;
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0 18px 8px;
}
.vrtx-stars-icons { display: inline-flex; align-items: center; gap: 1px; }
.vrtx-rating-num { font-size: 13px; font-weight: 700; color: #0F0824; margin-left: 2px; }
.vrtx-rating-count { font-size: 12px; color: #8B7BA8; }

/* Description + purity pills were retired — hidden, not styled */
.woocommerce ul.products li.product .vrtx-card-desc,
.woocommerce ul.products li.product .vrtx-meta-pills { display: none !important; }

/* Price footer row — "From $X", no strikethrough (kills the Flycart
   double-<del> too, since no sale markup renders on the card) */
.woocommerce ul.products li.product .vrtx-card-footer-row {
  order: 6 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 12px 18px 10px !important;
  padding-top: 12px !important;
  border-top: 1px solid rgba(124,92,250,0.09) !important;
}
.woocommerce ul.products li.product > .price,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .vrtx-footer-price del,
.woocommerce ul.products li.product .vrtx-footer-price ins,
.woocommerce ul.products li.product .vrtx-footer-price .price,
.woocommerce ul.products li.product .vrtx-card-footer-row del { display: none !important; }
.woocommerce ul.products li.product .vrtx-from-label {
  font-size: 12px !important;
  font-weight: 500 !important;
  color: #8B7BA8 !important;
  margin-right: 4px !important;
}
.woocommerce ul.products li.product .vrtx-from-price,
.woocommerce ul.products li.product .vrtx-from-price .woocommerce-Price-amount {
  font-size: 18px !important;
  font-weight: 800 !important;
  color: #0F0824 !important;
  letter-spacing: -0.4px !important;
}

/* ADD TO CART button */
.woocommerce ul.products li.product .vrtx-card-atc {
  order: 7 !important;
  display: block !important;
  width: calc(100% - 36px) !important;
  margin: 0 18px 18px !important;
  padding: 13px 16px !important;
  background: transparent !important;
  color: #7C5CFA !important;
  -webkit-text-fill-color: #7C5CFA !important;
  border: 1.5px solid #C4B5FD !important;
  border-radius: 12px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.8px !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background 0.18s, border-color 0.18s, color 0.18s !important;
  min-height: 0 !important;
  box-shadow: none !important;
}
.woocommerce ul.products li.product .vrtx-card-atc:hover {
  background: #7C5CFA !important;
  border-color: #7C5CFA !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.woocommerce ul.products li.product .vrtx-card-atc--view {
  color: #5B4D6E !important;
  -webkit-text-fill-color: #5B4D6E !important;
  border-color: #D4C5F9 !important;
}
.woocommerce ul.products li.product .vrtx-card-atc--view:hover {
  background: #F3EEFF !important;
  border-color: #A78BFA !important;
  color: #5B3FE8 !important;
  -webkit-text-fill-color: #5B3FE8 !important;
}

/* Suppress native WC buttons + stray Astra/legacy elements */
.woocommerce ul.products li.product a.button:not(.vrtx-card-atc),
.woocommerce ul.products li.product .button.add_to_cart_button:not(.vrtx-card-atc),
.woocommerce ul.products li.product .added_to_cart:not(.vrtx-card-atc),
.woocommerce ul.products li.product .vrtx-view-btn,
.woocommerce ul.products li.product .vrtx-add-btn,
.woocommerce ul.products li.product .ast-shop-product-actions,
.woocommerce ul.products li.product .ast-woo-product-category,
.woocommerce ul.products li.product .woocommerce-product-details__short-description,
.woocommerce ul.products li.product .vrtx-purity-line,
.woocommerce ul.products li.product .vrtx-purity-coa,
.woocommerce ul.products li.product .star-rating,
.wc-block-grid__product-onsale { display: none !important; }

/* Sale badge */
.woocommerce ul.products li.product .onsale {
  display: block !important;
  position: absolute !important;
  top: 12px !important; right: 12px !important; left: auto !important;
  background: #0F0824 !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: 3px 10px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.4px !important;
  margin: 0 !important;
  min-height: 0 !important; min-width: 0 !important;
  line-height: 1.4 !important;
  text-transform: uppercase !important;
  z-index: 2 !important;
}

/* Homepage widget image fix */
.elementor-widget-shortcode .woocommerce ul.products li.product .vrtx-img-wrap,
.elementor-section .woocommerce ul.products li.product .vrtx-img-wrap {
  aspect-ratio: 1 / 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Small-screen card tuning (three duplicate 599px blocks merged) */
@media (max-width: 599px) {
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 15px !important;
    margin: 12px 12px 4px !important;
  }
  .woocommerce ul.products li.product .vrtx-coa-verified {
    font-size: 10px !important;
    margin: 0 12px 4px !important;
  }
  .woocommerce ul.products li.product .vrtx-card-stars {
    margin: 0 12px 6px !important;
    flex-wrap: wrap !important;
  }
  .woocommerce ul.products li.product .vrtx-rating-num { font-size: 11px !important; }
  .woocommerce ul.products li.product .vrtx-rating-count { font-size: 10px !important; }
  .woocommerce ul.products li.product .vrtx-card-footer-row {
    margin: 8px 12px 6px !important;
    padding-top: 8px !important;
  }
  .woocommerce ul.products li.product .vrtx-from-label { font-size: 11px !important; }
  .woocommerce ul.products li.product .vrtx-from-price,
  .woocommerce ul.products li.product .vrtx-from-price .woocommerce-Price-amount { font-size: 15px !important; }
  .woocommerce ul.products li.product .vrtx-card-atc {
    width: calc(100% - 24px) !important;
    margin: 0 12px 12px !important;
    padding: 10px 8px !important;
    font-size: 10.5px !important;
  }
  .woocommerce ul.products li.product .vrtx-img-wrap { padding: 16px 12px !important; }
  .woocommerce ul.products li.product .vrtx-img-wrap img { max-height: 130px !important; }
  .woocommerce ul.products li.product .onsale {
    top: 8px !important;
    right: 8px !important;
    padding: 2px 8px !important;
    font-size: 8.5px !important;
    letter-spacing: 0.3px !important;
  }
}

/* ========== SINGLE PRODUCT ========== */
.ast-sticky-product-checkout-bar,
#ast-sticky-product-checkout-bar,
.astra-woo-product-sticky-bar,
.woo-product-header-sticky,
.ast-product-gallery-summary-sticky,
body.single-product .ast-affix-header,
.woocommerce-product-sticky-bar,
body.single-product .woocommerce-sticky-product-bar,
body.single-product #woo-product-page-header,
body.single-product [class*="sticky"][class*="product"],
body.single-product [class*="product"][class*="sticky"] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

body.single-product .product_meta,
body.single-product .posted_in,
body.single-product .tagged_as,
body.single-product .woocommerce-breadcrumb,
body.single-product .upsells.products,
body.single-product .woocommerce-product-rating,
body.single-product .product_title,
body.single-product .woocommerce-variation-price,
body.single-product .summary > .price,
body.single-product .summary > p.price,
body.single-product .summary > .stock,
body.single-product .summary > .availability,
body.single-product .summary .posted_in,
body.single-product .summary > p:not(.vrtx-sp-cat):not(.vrtx-sp-desc),
body.single-product .ast-woo-checkout-safe-checkout-image,
body.single-product .yith-wcwl-add-to-wishlist,
body.single-product .product_meta > span,
body.single-product [class*="safe-checkout"],
body.single-product [class*="guaranteed"] { display: none !important; }

/* Native cart form — kept in DOM, invisible (WC ajax needs it) */
body.single-product form.cart {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

body.single-product div.product {
  max-width: 1240px !important;
  margin: 32px auto !important;
  padding: 0 24px !important;
  display: grid !important;
  gap: 56px !important;
  grid-template-columns: 1fr !important;
  align-items: start !important;
}
@media (min-width: 900px) {
  body.single-product div.product { grid-template-columns: 1.1fr 1fr !important; }
}
@media (max-width: 767px) {
  body.single-product div.product { gap: 28px !important; padding: 0 16px !important; }
}

/* Gallery */
body.single-product .woocommerce-product-gallery {
  background: linear-gradient(160deg, #F7F3FF 0%, #EDE8FF 100%) !important;
  border-radius: 28px !important;
  overflow: hidden !important;
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  border: none !important;
  padding: 0 !important;
}
body.single-product .woocommerce-product-gallery__wrapper { margin: 0 !important; }
body.single-product .woocommerce-product-gallery__image {
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
}
body.single-product .woocommerce-product-gallery img {
  width: 100% !important;
  height: auto !important;
  border-radius: 0 !important;
  display: block !important;
  filter: none !important;
  cursor: default !important;
  transform: none !important;
  transition: none !important;
}
body.single-product .woocommerce-product-gallery figure,
body.single-product .woocommerce-product-gallery__image a {
  cursor: default !important;
  transform: none !important;
  transition: none !important;
}
body.single-product .zoomImg,
body.single-product .woocommerce-product-gallery__trigger,
body.single-product .flex-control-nav { display: none !important; }

body.single-product .summary.entry-summary {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Custom summary */
.vrtx-sp-wrap { display: flex; flex-direction: column; }
.vrtx-sp-cat {
  font-size: 11.5px !important; font-weight: 700 !important;
  color: #8B7BA8 !important; text-transform: uppercase !important;
  letter-spacing: 1.8px !important; margin: 0 0 10px !important;
}
.vrtx-sp-title {
  font-size: clamp(30px, 4vw, 46px) !important;
  font-weight: 800 !important; color: #0F0824 !important;
  letter-spacing: -1.5px !important; line-height: 1.05 !important;
  margin: 0 0 14px !important;
}
@media (max-width: 767px) { .vrtx-sp-title { font-size: 26px !important; } }
.vrtx-alias-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.vrtx-alias-pill {
  padding: 5px 14px;
  background: #fff;
  border: 1px solid #ECE4FA;
  border-radius: 999px;
  font-size: 12.5px; font-weight: 500; color: #5B4D6E;
}
.vrtx-sp-rating { display: flex; align-items: center; gap: 6px; margin-bottom: 16px; }
.vrtx-sp-stars { display: inline-flex; gap: 2px; }
.vrtx-sp-rating-num { font-size: 14px; font-weight: 700; color: #0F0824; }
.vrtx-sp-rating-count { font-size: 13px; color: #8B7BA8; }
.vrtx-sp-desc {
  font-size: 14.5px !important; color: #5B4D6E !important;
  line-height: 1.65 !important; margin: 0 0 22px !important;
}
.vrtx-sp-purity-line {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #5B4D6E !important;
  margin: 0 0 18px !important;
}

/* Dosage tabs */
.vrtx-dosage-wrap { margin-bottom: 20px; }
.vrtx-dosage-label { font-size: 11px; font-weight: 700; color: #8B7BA8; letter-spacing: 1.2px; margin-bottom: 10px; }
.vrtx-dosage-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.vrtx-dosage-tab {
  padding: 10px 20px;
  border: 1.5px solid #ECE4FA;
  border-radius: 10px;
  background: #fff;
  font-size: 14px;
  font-weight: 700;
  color: #5B4D6E;
  cursor: pointer;
  transition: border-color .15s, background .15s, color .15s;
  font-family: Inter, sans-serif;
  letter-spacing: 0.3px;
  outline: none !important;
  -webkit-tap-highlight-color: transparent !important;
}
.vrtx-dosage-tab:hover { border-color: #C4B5FD; background: #FAF7FF; }
.vrtx-dosage-tab:focus,
.vrtx-dosage-tab:active { outline: none !important; box-shadow: none !important; }
.vrtx-dosage-tab.is-active { background: #0F0824; border-color: #0F0824; color: #fff; }

/* Qty + price */
.vrtx-sp-qty-price {
  border-top: 1px solid #ECE4FA;
  border-bottom: 1px solid #ECE4FA;
  padding: 16px 0; margin-bottom: 18px;
}
.vrtx-sp-qty-label {
  font-size: 12px; font-weight: 700; color: #0F0824;
  text-transform: uppercase; letter-spacing: 1px; margin-bottom: 12px;
}
.vrtx-sp-qty-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.vrtx-qty-stepper {
  display: inline-flex; align-items: center;
  background: #F3F4F6; border-radius: 999px;
  overflow: hidden; height: 44px;
}
.vrtx-qty-btn {
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  background: transparent; border: none; cursor: pointer;
  font-size: 20px; font-weight: 300; color: #0F0824;
  line-height: 1; transition: background 0.15s;
  font-family: Inter, sans-serif;
}
.vrtx-qty-btn:hover { background: #E9E1F7; }
.vrtx-qty-display {
  min-width: 40px; text-align: center;
  font-size: 16px; font-weight: 700; color: #0F0824;
  font-family: Inter, sans-serif; user-select: none;
}
.vrtx-sp-price-display { display: flex; align-items: baseline; gap: 8px; }
.vrtx-sp-price-old { font-size: 15px; font-weight: 500; color: #B8ADCC; text-decoration: line-through; }
.vrtx-sp-price-now { font-size: 30px; font-weight: 800; color: #0F0824; letter-spacing: -1px; }
@media (max-width: 767px) { .vrtx-sp-price-now { font-size: 24px !important; } }

/* Bundle */
.vrtx-bundle-wrap { margin-bottom: 18px; }
.vrtx-bundle-label { font-size: 11px; font-weight: 700; color: #8B7BA8; letter-spacing: 1.2px; margin-bottom: 10px; }
.vrtx-bundle-options { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.vrtx-bundle-opt {
  position: relative;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 4px; padding: 16px 8px;
  background: #fff;
  border: 1.5px solid #ECE4FA;
  border-radius: 14px;
  cursor: pointer;
  transition: border-color 0.18s, background 0.18s, box-shadow 0.18s;
  font-family: Inter, sans-serif;
  min-height: 76px;
}
.vrtx-bundle-opt:hover { border-color: #C4B5FD; }
.vrtx-bundle-opt.is-active {
  background: rgba(124,92,250,0.07) !important;
  border-color: #7C5CFA !important;
  box-shadow: 0 0 0 3px rgba(124,92,250,0.10) !important;
}
.vrtx-bundle-qty { font-size: 12.5px; font-weight: 700; color: #0F0824; letter-spacing: 0.3px; }
.vrtx-bundle-save { font-size: 11px; font-weight: 700; color: #7C5CFA; }
.vrtx-bundle-badge {
  position: absolute; top: -11px;
  left: 50%; transform: translateX(-50%);
  padding: 3px 9px; border-radius: 999px;
  font-size: 9px; font-weight: 800;
  letter-spacing: 0.3px; white-space: nowrap;
}
.vrtx-bundle-popular { background: #0F0824; color: #fff; }
.vrtx-bundle-best    { background: #F59E0B; color: #fff; }

/* CoA + ATC */
.vrtx-sp-action-row { display: flex; align-items: stretch; gap: 12px; margin-bottom: 18px; }
@media (max-width: 767px) { .vrtx-sp-action-row { flex-direction: column !important; } }
.vrtx-coa-btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0 24px; height: 56px;
  background: #fff;
  border: 1.5px solid #ECE4FA;
  border-radius: 999px;
  font-size: 14px; font-weight: 700;
  color: #0F0824 !important; cursor: pointer;
  text-decoration: none !important; white-space: nowrap;
  transition: border-color 0.18s, background 0.18s;
  flex-shrink: 0; font-family: Inter, sans-serif;
}
.vrtx-coa-btn:hover { border-color: #C4B5FD; background: #FAF7FF; }
@media (max-width: 767px) { .vrtx-coa-btn { width: 100% !important; } }
.vrtx-sp-atc {
  flex: 1; height: 56px;
  background: #0F0824;
  color: #fff; -webkit-text-fill-color: #fff;
  border: none; border-radius: 999px;
  font-size: 16px; font-weight: 700;
  font-family: Inter, sans-serif; cursor: pointer;
  display: inline-flex; align-items: center;
  justify-content: center; gap: 10px;
  box-shadow: 0 6px 18px rgba(15,8,36,0.20);
  transition: background 0.2s, transform 0.18s, box-shadow 0.2s;
}
.vrtx-sp-atc:hover {
  background: #7C5CFA;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(124,92,250,0.32);
}

/* Trust strip */
.vrtx-sp-trust {
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 8px; padding: 16px 0;
  border-top: 1px solid #ECE4FA;
  border-bottom: 1px solid #ECE4FA;
  margin-bottom: 16px; text-align: center;
}
@media (max-width: 767px) {
  .vrtx-sp-trust { grid-template-columns: 1fr !important; text-align: left !important; }
  .vrtx-sp-trust-item { flex-direction: row !important; gap: 10px !important; }
}
.vrtx-sp-trust-item { display: flex; flex-direction: column; align-items: center; gap: 5px; }
.vrtx-sp-trust-label { display: block; font-size: 11px; color: #8B7BA8; font-weight: 500; }
.vrtx-sp-trust-val   { display: block; font-size: 12px; color: #0F0824; font-weight: 600; }
.vrtx-sp-payment { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.vrtx-sp-payment-label { font-size: 12px; color: #8B7BA8; font-weight: 500; white-space: nowrap; }
.vrtx-sp-payment-icons { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* CoA Modal */
.vrtx-coa-modal {
  position: fixed; inset: 0;
  z-index: 999999;
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
}
.vrtx-coa-modal-backdrop {
  position: absolute; inset: 0;
  background: rgba(15,8,36,0.6);
  backdrop-filter: blur(4px);
}
.vrtx-coa-modal-box {
  position: relative; z-index: 1;
  background: #fff; border-radius: 20px;
  width: min(780px, calc(100vw - 40px));
  max-height: calc(100vh - 80px);
  display: flex; flex-direction: column;
  overflow: hidden;
  box-shadow: 0 32px 80px rgba(15,8,36,0.30);
}
.vrtx-coa-modal-header {
  display: flex; align-items: center;
  justify-content: space-between;
  padding: 18px 24px;
  border-bottom: 1px solid #ECE4FA;
  flex-shrink: 0;
}
.vrtx-coa-modal-title-row { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 700; color: #0F0824; }
.vrtx-coa-modal-actions { display: flex; align-items: center; gap: 12px; }
.vrtx-coa-dl-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px;
  background: #FAF7FF;
  border: 1px solid #ECE4FA;
  border-radius: 999px;
  font-size: 13px; font-weight: 600;
  color: #0F0824 !important; text-decoration: none !important;
  transition: background 0.15s;
}
.vrtx-coa-dl-btn:hover { background: #F3EEFF; border-color: #C4B5FD; }
.vrtx-coa-close {
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  background: #F3F4F6; border: none; border-radius: 50%;
  font-size: 16px; cursor: pointer; color: #5B4D6E;
  transition: background 0.15s;
}
.vrtx-coa-close:hover { background: #ECE4FA; }
.vrtx-coa-modal-body { flex: 1; overflow: hidden; min-height: 200px; }
.vrtx-coa-iframe { width: 100%; height: 100%; min-height: 560px; border: none; display: block; }
.vrtx-coa-soon {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 60px 40px; text-align: center; gap: 12px;
}
.vrtx-coa-soon-icon {
  width: 64px; height: 64px;
  background: #F3EEFF; border: 1px solid #ECE4FA;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 4px;
}
.vrtx-coa-soon h3 { font-size: 20px !important; font-weight: 800 !important; color: #0F0824 !important; margin: 0 !important; }
.vrtx-coa-soon p { font-size: 14px !important; color: #5B4D6E !important; max-width: 320px; line-height: 1.6 !important; margin: 0 !important; }
.vrtx-coa-eta {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 18px;
  background: #FAF7FF; border: 1px solid #ECE4FA;
  border-radius: 999px;
  font-size: 13px; font-weight: 700; color: #7C5CFA;
  margin-top: 4px;
}

/* Tabs */
body.single-product .woocommerce-tabs { margin: 40px 0 !important; }
body.single-product .woocommerce-tabs ul.tabs {
  border: 0 !important; border-bottom: 1px solid #ECE4FA !important;
  padding: 0 !important; margin: 0 0 24px !important;
}
body.single-product .woocommerce-tabs ul.tabs li {
  background: transparent !important; border: 0 !important;
  margin: 0 24px 0 0 !important; padding: 0 !important; border-radius: 0 !important;
}
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.single-product .woocommerce-tabs ul.tabs li a {
  color: #8B7BA8 !important; font-weight: 600 !important;
  font-size: 15px !important; padding: 14px 0 !important;
  border-bottom: 2px solid transparent !important;
}
body.single-product .woocommerce-tabs ul.tabs li.active a {
  color: #0F0824 !important; border-bottom-color: #7C5CFA !important;
}
body.single-product #tab-reviews,
body.single-product .reviews_tab { display: none !important; }

/* Below-product blocks */
.vrtx-below-product { width: 100% !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; }
body.single-product .vrtx-below-product { grid-column: 1 / -1 !important; }

.vrtx-chem-block,
.vrtx-faq-block {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 64px;
  align-items: start;
  border-top: 1px solid #ECE4FA;
  max-width: 100%;
  box-sizing: border-box;
}
.vrtx-chem-block { padding: 72px 80px 56px; }
.vrtx-faq-block  { padding: 56px 80px 80px; }
@media (max-width: 1024px) {
  .vrtx-chem-block { padding: 56px 40px 40px; gap: 40px; }
  .vrtx-faq-block  { padding: 40px 40px 56px; gap: 40px; }
}
@media (max-width: 860px) {
  .vrtx-chem-block { grid-template-columns: 1fr; gap: 24px; padding: 40px 24px 32px; }
  .vrtx-faq-block  { grid-template-columns: 1fr; gap: 24px; padding: 32px 24px 48px; }
}
.vrtx-chem-eyebrow { font-size: 11px !important; font-weight: 700 !important; color: #7C5CFA !important; letter-spacing: 2px !important; text-transform: uppercase !important; margin: 0 0 14px !important; }
.vrtx-chem-title { font-size: clamp(22px, 3vw, 30px) !important; font-weight: 800 !important; color: #0F0824 !important; letter-spacing: -0.6px !important; line-height: 1.2 !important; margin: 0 0 14px !important; }
.vrtx-chem-sub { font-size: 14px !important; color: #5B4D6E !important; line-height: 1.65 !important; margin: 0 !important; }

.vrtx-spec-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid #ECE4FA; border-radius: 16px; overflow: hidden; }
.vrtx-spec-table tr { border-bottom: 1px solid #ECE4FA; }
.vrtx-spec-table tr:last-child { border-bottom: none; }
.vrtx-spec-table th { padding: 14px 20px; font-size: 11px; font-weight: 700; color: #8B7BA8; text-transform: uppercase; letter-spacing: 0.8px; background: #FAF7FF; text-align: left; width: 36%; vertical-align: top; border-right: 1px solid #ECE4FA; }
.vrtx-spec-table td { padding: 14px 20px; font-size: 13.5px; color: #2D2147; font-weight: 500; line-height: 1.5; word-break: break-word; }

.vrtx-faq-item { border-bottom: 1px solid #ECE4FA; }
.vrtx-faq-q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 0;
  background: transparent !important;
  border: none;
  cursor: pointer;
  text-align: left;
  font-size: 14.5px;
  font-weight: 600;
  color: #0F0824;
  font-family: Inter, sans-serif;
  transition: color .15s;
  outline: none !important;
  -webkit-tap-highlight-color: transparent !important;
  box-shadow: none !important;
}
.vrtx-faq-q:hover { color: #7C5CFA; }
.vrtx-faq-q:focus,
.vrtx-faq-q:active,
.vrtx-faq-q:focus-visible { background: transparent !important; outline: none !important; box-shadow: none !important; }
.vrtx-faq-icon { flex-shrink: 0; color: #8B7BA8; transition: transform .25s ease; }
.vrtx-faq-item.is-open .vrtx-faq-icon { transform: rotate(180deg); color: #7C5CFA; }
.vrtx-faq-a { overflow: hidden; transition: max-height .3s ease; }
.vrtx-faq-a p { padding: 0 0 18px; font-size: 14px !important; color: #5B4D6E !important; line-height: 1.7 !important; margin: 0 !important; }

/* ── RELATED PRODUCTS — simplified cards (image, title, ATC only) ── */
body.single-product .related.products,
body.single-product div.product .related.products,
html body.single-product .related.products {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  width: 100% !important;
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding: 48px 24px 80px !important;
  border-top: 1px solid #ECE4FA !important;
  float: none !important;
  clear: both !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}
body.single-product .related.products > h2 { font-size: clamp(20px, 2.5vw, 28px) !important; font-weight: 800 !important; color: #0F0824 !important; letter-spacing: -0.4px !important; margin: 0 0 24px !important; }
body.single-product .related.products ul.products { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 14px !important; margin: 0 !important; padding: 0 !important; width: 100% !important; }
@media (min-width: 640px) { body.single-product .related.products ul.products { grid-template-columns: repeat(3, 1fr) !important; } }
@media (min-width: 900px) { body.single-product .related.products ul.products { grid-template-columns: repeat(5, 1fr) !important; } }
body.single-product .related.products li.product .vrtx-coa-verified,
body.single-product .related.products li.product .vrtx-card-stars,
body.single-product .related.products li.product .vrtx-rating-num,
body.single-product .related.products li.product .vrtx-rating-count,
body.single-product .related.products li.product .vrtx-card-footer-row,
body.single-product .related.products li.product .vrtx-from-label,
body.single-product .related.products li.product .vrtx-from-price,
body.single-product .related.products li.product .vrtx-stars-icons { display: none !important; }
body.single-product .related.products li.product .woocommerce-loop-product__title,
body.single-product .related.products li.product h2.woocommerce-loop-product__title { font-size: 14px !important; margin: 12px 12px 10px !important; line-height: 1.3 !important; }
body.single-product .related.products li.product .vrtx-card-atc { width: calc(100% - 24px) !important; margin: 0 12px 12px !important; padding: 9px 10px !important; font-size: 10px !important; }
body.single-product .related.products li.product .vrtx-img-wrap { padding: 16px 12px !important; }
body.single-product .related.products li.product .vrtx-img-wrap img { max-height: 140px !important; }

/* ========== CART SLIDEOUT ========== */
.ast-cart-menu-wrap,
.ast-mini-cart-wrap,
.ast-flyout-cart,
[class*="ast-cart"] { background: #fff !important; }
.ast-cart-menu-wrap .ast-cart-menu-header,
.ast-mini-cart-wrap h3,
.ast-cart-menu-wrap .widget-title {
  background: #fff !important;
  border-bottom: 1px solid #f0f0f0 !important;
  padding: 20px 24px !important;
  font-size: 18px !important; font-weight: 700 !important;
  color: var(--vx-ink-1) !important;
}
.ast-cart-menu-wrap .woocommerce-mini-cart,
.widget_shopping_cart .woocommerce-mini-cart { background: #fff !important; padding: 8px 16px !important; }
.ast-cart-menu-wrap .woocommerce-mini-cart-item,
.widget_shopping_cart .woocommerce-mini-cart-item {
  background: #fff !important; border: 0 !important;
  border-bottom: 1px solid #f5f5f5 !important; border-radius: 0 !important;
  padding: 16px 0 !important; margin: 0 !important; box-shadow: none !important;
  display: grid !important; grid-template-columns: 72px 1fr !important;
  align-items: start !important; gap: 12px !important; position: relative !important;
}
.ast-cart-menu-wrap .woocommerce-mini-cart-item img,
.widget_shopping_cart .woocommerce-mini-cart-item img {
  width: 72px !important; height: 72px !important; min-width: 72px !important;
  border-radius: 10px !important; object-fit: cover !important;
  background: var(--vx-tint) !important; border: 1px solid var(--vx-border) !important;
}
.ast-cart-menu-wrap .woocommerce-mini-cart-item a:not(.remove),
.widget_shopping_cart .woocommerce-mini-cart-item a:not(.remove) {
  grid-column: 2 !important; display: block !important;
  color: var(--vx-ink-1) !important; font-weight: 600 !important;
  font-size: 14px !important; text-decoration: none !important;
  line-height: 1.4 !important; padding-right: 24px !important;
}
.ast-cart-menu-wrap .woocommerce-mini-cart-item .quantity,
.widget_shopping_cart .woocommerce-mini-cart-item .quantity {
  grid-column: 2 !important; color: var(--vx-ink-3) !important;
  font-size: 13px !important; font-weight: 500 !important;
  display: block !important; margin-top: 4px !important;
}
.ast-cart-menu-wrap .woocommerce-mini-cart-item .quantity .woocommerce-Price-amount,
.widget_shopping_cart .woocommerce-mini-cart-item .quantity .woocommerce-Price-amount {
  color: var(--vx-ink-1) !important; font-weight: 700 !important;
}
.ast-cart-menu-wrap .woocommerce-mini-cart-item .remove,
.widget_shopping_cart .woocommerce-mini-cart-item .remove {
  position: absolute !important; top: 16px !important; right: 0 !important;
  width: 20px !important; height: 20px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  font-size: 16px !important; color: var(--vx-ink-4) !important;
  opacity: 1 !important; background: transparent !important;
  border-radius: 0 !important; border: 0 !important;
  line-height: 1 !important; text-decoration: none !important;
}
.ast-cart-menu-wrap .woocommerce-mini-cart-item .remove:hover,
.widget_shopping_cart .woocommerce-mini-cart-item .remove:hover { color: #DC2626 !important; background: transparent !important; }

/* Mini-cart total (was defined twice with conflicting sizes — deduped) */
.ast-cart-menu-wrap .woocommerce-mini-cart__total,
.widget_shopping_cart .woocommerce-mini-cart__total {
  background: #fff !important; border-top: 2px solid #f0f0f0 !important;
  padding: 16px 16px 8px !important;
  display: flex !important; justify-content: space-between !important; align-items: center !important;
}
.woocommerce-mini-cart__total strong {
  font-size: 15px !important; font-weight: 600 !important;
  color: #888 !important; text-transform: uppercase !important; letter-spacing: .5px !important;
}
.woocommerce-mini-cart__total .woocommerce-Price-amount:not(del .woocommerce-Price-amount) {
  font-size: 20px !important; font-weight: 800 !important; color: #0F0824 !important;
}
.ast-cart-menu-wrap .total,
.widget_shopping_cart .total { font-size: 0 !important; line-height: 0 !important; }
.ast-cart-menu-wrap .total strong,
.widget_shopping_cart .total strong { font-size: 15px !important; line-height: 1.4 !important; }
.astra-mobile-cart-overlay { display: none !important; }
.ast-cart-menu-wrap .woocommerce-mini-cart__buttons,
.widget_shopping_cart .woocommerce-mini-cart__buttons {
  background: #fff !important; padding: 12px 16px 20px !important;
  display: flex !important; flex-direction: column !important; gap: 8px !important;
}
.ast-cart-menu-wrap .woocommerce-mini-cart__buttons .button:not(.checkout),
.widget_shopping_cart .woocommerce-mini-cart__buttons .button:not(.checkout),
.widget_shopping_cart .buttons a.button:not(.checkout) { display: none !important; }
.ast-cart-menu-wrap .woocommerce-mini-cart__buttons .checkout,
.widget_shopping_cart .woocommerce-mini-cart__buttons .checkout {
  background: var(--vx-ink-1) !important; color: #fff !important;
  -webkit-text-fill-color: #fff !important; border-radius: 999px !important; border: 0 !important;
  font-weight: 700 !important; font-size: 16px !important; padding: 16px 24px !important;
  width: 100% !important; text-align: center !important; display: block !important;
  box-shadow: var(--vx-shadow-cta) !important; transition: background .2s ease !important; min-height: 52px !important;
}
.ast-cart-menu-wrap .woocommerce-mini-cart__buttons .checkout:hover,
.widget_shopping_cart .woocommerce-mini-cart__buttons .checkout:hover { background: var(--vx-purple) !important; transform: none !important; }
#ast-mobile-header .ast-site-header-cart-li a { pointer-events: auto !important; }

/* Strikethrough prices (three duplicate rules merged into one) */
del .woocommerce-Price-amount,
.woocommerce-mini-cart__total del,
.woocommerce-mini-cart__total del .woocommerce-Price-amount,
.woocommerce-mini-cart__total del bdi,
.woocommerce-mini-cart__total del .woocommerce-Price-currencySymbol {
  color: #8B7BA8 !important;
  text-decoration: line-through !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  opacity: 1 !important;
  margin-right: 6px !important;
}

/* Cart coupon form */
.cart .coupon { display: flex !important; gap: 8px !important; align-items: center !important; margin-bottom: 20px !important; }
.cart .coupon label { display: none !important; }
.cart .coupon input#coupon_field {
  flex: 1 !important; padding: 14px 16px !important;
  border: 1.5px solid #D4C5F9 !important; border-radius: 12px !important;
  font-size: 15px !important; color: #0F0824 !important;
  background: #fff !important; min-height: 0 !important; box-sizing: border-box !important;
}
.cart .coupon input#coupon_field:focus { outline: none !important; border-color: #7C5CFA !important; box-shadow: 0 0 0 4px rgba(124,92,250,.12) !important; }
.cart .coupon .button { padding: 14px 22px !important; background: #7C5CFA !important; color: #fff !important; border: 0 !important; border-radius: 999px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; white-space: nowrap !important; min-height: 0 !important; }
.cart .coupon .button:hover { background: #5B3FE8 !important; }
.woocommerce-remove-coupon { color: #DC2626 !important; font-size: 12px !important; margin-left: 6px !important; }
.cart-discount .amount,
.cart-discount td .woocommerce-Price-amount { color: #059669 !important; font-weight: 700 !important; }

/* ========== CHECKOUT ========== */
body.woocommerce-checkout .woocommerce-breadcrumb,
body.woocommerce-checkout .ast-page-header,
body.woocommerce-checkout .entry-header,
body.woocommerce-checkout .woocommerce-form-login-toggle,
body.woocommerce-checkout .woocommerce-form-login,
body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.woocommerce-checkout .checkout_coupon,
body.woocommerce-checkout form.login,
body.woocommerce-checkout form.checkout_coupon,
body.woocommerce-checkout .woocommerce > .woocommerce-info,
body.woocommerce-checkout form.checkout > .woocommerce-info,
#order_review_heading { display: none !important; }
body.woocommerce-checkout #primary,
body.woocommerce-checkout .content-area,
body.woocommerce-checkout .ast-container,
body.woocommerce-checkout .entry-content.clear,
body.woocommerce-checkout article.post-17892 {
  max-width: 100% !important; width: 100% !important;
  padding-left: 0 !important; padding-right: 0 !important;
  float: none !important; margin-left: 0 !important; margin-right: 0 !important;
}
body.woocommerce-checkout .woocommerce {
  max-width: 1180px !important; width: 100% !important;
  margin: 40px auto !important; padding: 0 24px 64px !important; box-sizing: border-box !important;
}
/* Legacy WC .col2-set is width:55%;float:left — that's what leaves the
   gap between billing and the summary. Force it to fill its grid column. */
form.checkout.woocommerce-checkout .col2-set {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}
@media (min-width: 901px) {
  form.checkout.woocommerce-checkout {
    display: grid !important;
    grid-template-columns: 1fr 380px !important;
    gap: 40px !important; align-items: start !important;
    width: 100% !important; box-sizing: border-box !important;
  }
  form.checkout .woocommerce-NoticeGroup { grid-column: 1 / -1 !important; }
  form.checkout .col2-set { grid-column: 1 !important; grid-row: 2 !important; }
  form.checkout > h3 { grid-column: 1 / -1 !important; grid-row: 1 !important; }
  form.checkout .woocommerce-checkout-review-order {
    grid-column: 2 !important; grid-row: 2 !important;
    position: sticky !important; top: 100px !important;
    width: 380px !important; min-width: 380px !important;
  }
  /* While gated, #customer_details is hidden, so the 1fr column sits
     empty and squeezes the summary. Collapse to one column. */
  body.vrtx-needs-signin form.checkout.woocommerce-checkout,
  body.vrtx-needs-onboard form.checkout.woocommerce-checkout {
    grid-template-columns: 1fr !important;
  }
  body.vrtx-needs-signin form.checkout .woocommerce-checkout-review-order,
  body.vrtx-needs-onboard form.checkout .woocommerce-checkout-review-order {
    grid-column: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  body.woocommerce-checkout .woocommerce-billing-fields .form-row-first,
  body.woocommerce-checkout .woocommerce-billing-fields .form-row-last { width: 48% !important; float: left !important; }
  body.woocommerce-checkout .woocommerce-billing-fields .form-row-last { float: right !important; }
  body.woocommerce-checkout .woocommerce-billing-fields .form-row-wide { clear: both !important; width: 100% !important; float: none !important; }
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { overflow: hidden !important; }
}
@media screen and (max-width: 900px) {
  body.woocommerce-checkout #primary,
  body.woocommerce-checkout .content-area,
  body.woocommerce-checkout .ast-container,
  body.woocommerce-checkout .entry-content.clear { overflow-x: visible !important; }
  form.checkout.woocommerce-checkout {
    display: flex !important; flex-direction: column !important;
    width: 100% !important; max-width: 100% !important; box-sizing: border-box !important;
  }
  form.checkout .woocommerce-NoticeGroup { order: -1 !important; }
  form.checkout > h3 { order: 0 !important; }
  form.checkout .col2-set { width: 100% !important; order: 1 !important; }
  form.checkout .woocommerce-checkout-review-order {
    width: 100% !important; min-width: unset !important; max-width: 100% !important;
    position: static !important; order: 2 !important;
  }
  form.checkout .form-row-first,
  form.checkout .form-row-last { width: 100% !important; float: none !important; clear: both !important; }
  body.woocommerce-checkout .woocommerce { padding: 0 16px 48px !important; }
  .vrtx-checkout-state { padding: 36px 24px !important; overflow: hidden !important; min-height: 0; }
  .vrtx-gate-body { width: 100% !important; max-width: 100% !important; }
  .vrtx-checkout-logo { height: 36px !important; }
  .vrtx-steps { max-width: 100% !important; padding: 0 8px !important; }
  .woocommerce-billing-fields, .woocommerce-shipping-fields { padding: 24px 20px !important; }
  #order_review { margin-top: 24px !important; }
}

/* Order summary */
#order_review {
  background: #fff !important; border: 1px solid var(--vx-border) !important;
  border-radius: 20px !important; padding: 24px !important;
  box-shadow: var(--vx-shadow-sm) !important; margin: 0 !important; box-sizing: border-box;
}
#order_review::before {
  content: 'Order Summary'; display: block;
  font-size: 18px; font-weight: 700; color: var(--vx-ink-1);
  margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--vx-border);
}
#order_review table { width: 100% !important; border: 0 !important; border-radius: 0 !important; margin: 0 !important; background: transparent !important; border-collapse: collapse !important; }
#order_review table thead { display: none !important; }
#order_review table tr { border-bottom: 1px solid var(--vx-border) !important; }
#order_review table tr:last-child { border-bottom: 0 !important; }
#order_review table th, #order_review table td { padding: 14px 0 !important; background: transparent !important; border: 0 !important; color: var(--vx-ink-2) !important; font-size: 14px !important; vertical-align: middle !important; text-align: left !important; }
#order_review tfoot tr { border-top: 1px solid var(--vx-border) !important; }
#order_review .order-total td, #order_review .order-total th { font-size: 16px !important; font-weight: 800 !important; color: var(--vx-ink-1) !important; padding-top: 16px !important; }
#order_review .order-total .amount { font-size: 20px !important; font-weight: 800 !important; }
#order_review td.product-name { word-break: normal !important; white-space: normal !important; overflow-wrap: break-word !important; min-width: 0 !important; padding: 12px 8px !important; vertical-align: middle !important; }
#order_review td.product-name a { display: block !important; font-size: 13px !important; line-height: 1.45 !important; color: var(--vx-ink-1) !important; font-weight: 600 !important; }
#order_review td.product-total,
#order_review .product-total { white-space: nowrap !important; text-align: right !important; vertical-align: middle !important; font-weight: 700 !important; color: var(--vx-ink-1) !important; padding: 12px 0 12px 8px !important; }
#order_review table img, .woocommerce-checkout-review-order-table img { width: 56px !important; height: 56px !important; max-width: 56px !important; max-height: 56px !important; border-radius: 12px !important; object-fit: cover !important; border: 1px solid var(--vx-border) !important; background: var(--vx-tint) !important; display: block !important; margin-bottom: 6px !important; }
#order_review .product-quantity { display: inline-block; color: var(--vx-ink-3) !important; font-size: 13px; font-weight: 500; }

/* Shipping method rows */
#order_review ul#shipping_method {
  list-style: none !important;
  margin: 4px 0 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}
#order_review ul#shipping_method li {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  margin: 0 !important;
  padding: 14px 16px !important;
  border: 1.5px solid var(--vx-border-strong) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-sizing: border-box !important;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease !important;
}
#order_review ul#shipping_method li:has(input:checked) {
  border-color: var(--vx-purple) !important;
  background: var(--vx-tint) !important;
  box-shadow: 0 0 0 3px rgba(124,92,250,0.10) !important;
}
#order_review ul#shipping_method li:hover { border-color: var(--vx-purple) !important; }
#order_review ul#shipping_method input[type="radio"] {
  accent-color: var(--vx-purple) !important;
  flex: 0 0 18px !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 4px 0 0 !important;
  cursor: pointer !important;
}
#order_review ul#shipping_method label {
  position: relative !important;
  flex: 1 1 0% !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  display: block !important;
  margin: 0 !important;
  padding-right: 60px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--vx-ink-1) !important;
  line-height: 1.4 !important;
  cursor: pointer !important;
}
#order_review ul#shipping_method label .woocommerce-Price-amount,
#order_review ul#shipping_method label .amount {
  position: absolute !important;
  right: 0 !important;
  top: 0 !important;
  white-space: nowrap !important;
  font-weight: 700 !important;
}

/* Billing/shipping cards */
.woocommerce-billing-fields, .woocommerce-shipping-fields, .woocommerce-additional-fields {
  background: #fff !important; border: 1px solid var(--vx-border) !important;
  border-radius: 20px !important; padding: 28px !important;
  box-shadow: var(--vx-shadow-sm) !important; margin-bottom: 16px !important; box-sizing: border-box;
}
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3 { font-size: 18px !important; font-weight: 700 !important; color: var(--vx-ink-1) !important; margin: 0 0 20px !important; }
body.woocommerce-checkout .woocommerce-shipping-fields { display: none !important; }
body.woocommerce-checkout .woocommerce-shipping-fields.active { display: block !important; }
body.woocommerce-checkout #ship-to-different-address {
  background: #fff !important; border: 1px solid var(--vx-border) !important;
  border-radius: 14px !important; padding: 16px 20px !important; margin-bottom: 16px !important;
  display: flex !important; align-items: center !important; gap: 10px !important;
  cursor: pointer !important; box-shadow: var(--vx-shadow-sm) !important;
}

/* Payment */
#payment { background: transparent !important; border: 0 !important; margin-top: 16px !important; padding: 0 !important; }
#payment ul.payment_methods { list-style: none !important; padding: 0 !important; margin: 0 0 12px !important; }
#payment ul.payment_methods li { background: var(--vx-tint) !important; border: 1px solid var(--vx-border) !important; border-radius: 14px !important; padding: 14px 16px !important; margin-bottom: 8px !important; list-style: none !important; }
#payment ul.payment_methods li label { font-weight: 600 !important; color: var(--vx-ink-1) !important; font-size: 14px !important; }
#place_order {
  width: 100% !important; background: #0F0824 !important; color: #fff !important;
  border: 0 !important; border-radius: 999px !important; padding: 18px !important;
  font-size: 17px !important; font-weight: 700 !important; min-height: 58px !important;
  margin-top: 16px !important; box-shadow: var(--vx-shadow-cta) !important;
  transition: background .2s ease, transform .2s ease !important; cursor: pointer !important; display: block !important;
}
#place_order:hover { background: var(--vx-purple) !important; transform: translateY(-2px) !important; }

/* Gate states */
body.vrtx-needs-signin #customer_details,
body.vrtx-needs-onboard #customer_details,
body.vrtx-needs-signin #payment,
body.vrtx-needs-onboard #payment { display: none !important; }
body.vrtx-needs-signin #place_order,
body.vrtx-needs-onboard #place_order,
#place_order:disabled {
  background: #D1D5DB !important; color: transparent !important;
  box-shadow: none !important; cursor: not-allowed !important;
  pointer-events: none !important; transform: none !important; position: relative !important;
}
body.vrtx-needs-signin #place_order::before,
body.vrtx-needs-onboard #place_order::before,
#place_order:disabled::before {
  content: '🔒 Secure Checkout'; position: absolute; left: 50%;
  transform: translateX(-50%); color: #6B7280;
  font-size: 16px; font-weight: 700; white-space: nowrap;
}
body.vrtx-ready-checkout .woocommerce-billing-fields::before {
  content: '🔒 Secure Checkout — Step 3 of 3'; display: block;
  font-size: 11px; font-weight: 700; color: var(--vx-ink-4);
  text-transform: uppercase; letter-spacing: 1.2px;
  margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--vx-border);
}

/* Inline gate card */
.vrtx-checkout-state {
  background: #fff; border: 1px solid var(--vx-border);
  border-radius: 24px; padding: 60px 48px;
  box-shadow: var(--vx-shadow-sm); text-align: center;
  width: 100%; box-sizing: border-box;
  min-height: 420px; display: flex; flex-direction: column;
  align-items: center; justify-content: center;
}
.vrtx-checkout-state--onboard { text-align: left; padding: 40px 32px; min-height: 0; }
.vrtx-onboard-content {
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--vx-border);
  border-radius: 20px;
  padding: 40px 44px;
  box-shadow: var(--vx-shadow-sm);
  box-sizing: border-box;
}
/* Explicit color+size: the card's h1 was inheriting a site-wide white
   heading rule meant for dark sections, making it invisible. */
.vrtx-onboard-content h1 {
  color: var(--vx-ink-1) !important;
  font-size: 28px !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.6px !important;
  margin: 0 0 10px !important;
}
@media (max-width: 600px) {
  .vrtx-onboard-content { padding: 28px 22px; border-radius: 16px; }
  .vrtx-onboard-content h1 { font-size: 24px !important; }
}
.vrtx-state-icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; background: var(--vx-tint); border: 1px solid var(--vx-border-strong); border-radius: 50%; color: var(--vx-deep); margin-bottom: 20px; }
.vrtx-checkout-state h2 { font-size: 26px !important; font-weight: 800 !important; color: var(--vx-ink-1) !important; margin: 0 0 10px !important; letter-spacing: -.5px !important; }
.vrtx-checkout-state > p { font-size: 15px !important; color: var(--vx-ink-3) !important; margin: 0 auto 28px !important; max-width: 380px; line-height: 1.6; }
.vrtx-checkout-logo { height: 40px !important; width: auto !important; display: block !important; margin: 0 auto 28px !important; object-fit: contain !important; }
.vrtx-steps { display: flex; align-items: center; justify-content: center; gap: 0; margin: 0 auto 36px; width: 100%; max-width: 360px; }
.vrtx-step { display: flex; flex-direction: column; align-items: center; gap: 6px; flex-shrink: 0; }
.vrtx-step-num { width: 32px; height: 32px; border-radius: 50%; border: 2px solid var(--vx-border-strong); background: #fff; color: var(--vx-ink-4); font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; transition: all .2s ease; }
.vrtx-step span { font-size: 11px; font-weight: 600; color: var(--vx-ink-4); letter-spacing: .5px; text-transform: uppercase; }
.vrtx-step.active .vrtx-step-num { background: var(--vx-purple); border-color: var(--vx-purple); color: #fff; box-shadow: 0 0 0 4px rgba(124,92,250,0.15); }
.vrtx-step.active span { color: var(--vx-ink-1); }
.vrtx-step.done .vrtx-step-num { background: #ECFDF5; border-color: #059669; color: #059669; }
.vrtx-step.done span { color: #059669; }
.vrtx-step-line { flex: 1; height: 2px; background: var(--vx-border); margin: 0 8px 18px; }
.vrtx-gate-body { display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 440px; margin: 0 auto; }
.vrtx-gate-body h2 { font-size: 22px !important; font-weight: 800 !important; color: var(--vx-ink-1) !important; margin: 12px 0 8px !important; }
.vrtx-gate-body > p { font-size: 15px !important; color: var(--vx-ink-3) !important; margin: 0 0 24px !important; text-align: center; line-height: 1.6; }
.vrtx-checkout-state .magic-login-form,
.vrtx-checkout-state form#magic-login-form { width: 100%; max-width: 440px; text-align: left; }
.vrtx-checkout-state .magic-login-form label,
.vrtx-checkout-state form#magic-login-form label { display: none !important; }
.vrtx-checkout-state .magic-login-form input[type="text"],
.vrtx-checkout-state .magic-login-form input[type="email"],
.vrtx-checkout-state form#magic-login-form input[type="text"],
.vrtx-checkout-state form#magic-login-form input[type="email"] { width: 100% !important; padding: 16px 20px !important; background: #f9f9f9 !important; border: 1.5px solid var(--vx-border-strong) !important; border-radius: 12px !important; font-size: 15px !important; color: var(--vx-ink-1) !important; min-height: 54px !important; margin-bottom: 12px !important; box-sizing: border-box !important; }
.vrtx-checkout-state .magic-login-form input[type="submit"],
.vrtx-checkout-state .magic-login-form button[type="submit"],
.vrtx-checkout-state form#magic-login-form input[type="submit"],
.vrtx-checkout-state form#magic-login-form button[type="submit"] { width: 100% !important; background: #2D2D2D !important; color: #fff !important; border: 0 !important; border-radius: 999px !important; padding: 16px !important; font-size: 16px !important; font-weight: 700 !important; cursor: pointer !important; min-height: 54px !important; transition: background .2s ease !important; }
.vrtx-checkout-state .magic-login-form input[type="submit"]:hover { background: var(--vx-purple) !important; }

/* Native researcher-type dropdown + consent checkboxes */
.vrtx-onboard-rt-wrap {
  position: relative;
  border: 1.5px solid var(--vx-border-strong);
  border-radius: 14px;
  background: #fff;
  margin-bottom: 4px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.vrtx-onboard-rt-wrap select {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 0;
  outline: none;
  box-sizing: border-box;
  height: 52px;
  padding: 0 38px 0 16px;
  font-size: 15px;
  color: var(--vx-ink-1);
  font-family: Inter, sans-serif;
  cursor: pointer;
}
.vrtx-onboard-rt-wrap::after {
  content: '';
  position: absolute;
  right: 18px;
  top: 50%;
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--vx-ink-3);
  border-bottom: 2px solid var(--vx-ink-3);
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}
.vrtx-onboard-rt-wrap:focus-within {
  border-color: var(--vx-purple);
  box-shadow: 0 0 0 4px rgba(124,92,250,0.12);
}
.vrtx-onboard-consent-row {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 12px 14px;
  background: var(--vx-tint);
  border: 1.5px solid var(--vx-border);
  border-radius: 12px;
  margin-top: 10px;
  cursor: pointer;
  font-size: 13.5px;
  color: var(--vx-ink-2);
  line-height: 1.5;
  transition: border-color .18s ease, background .18s ease;
}
.vrtx-onboard-consent-row:hover { border-color: var(--vx-border-strong); }
.vrtx-onboard-consent-row input[type="checkbox"] {
  accent-color: var(--vx-purple);
  width: 17px;
  height: 17px;
  margin-top: 1px;
  flex-shrink: 0;
}
.vrtx-onboard-consent-row a { color: var(--vx-deep); font-weight: 600; text-decoration: underline; }

/* Onboard form internals (used by the inline checkout card) */
.vrtx-onboard-sub { font-size: 15px !important; color: var(--vx-ink-3) !important; margin: 0 0 32px !important; line-height: 1.5; }
.vrtx-onboard-form { text-align: left; display: flex; flex-direction: column; gap: 16px; }
.vrtx-onboard-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 600px) { .vrtx-onboard-row { grid-template-columns: 1fr; } }
.vrtx-onboard-form input[type="text"],
.vrtx-onboard-form input[type="date"],
.vrtx-onboard-form select { width: 100% !important; padding: 14px 18px !important; background: #fff !important; border: 1.5px solid var(--vx-border-strong) !important; border-radius: 14px !important; font-size: 15px !important; color: var(--vx-ink-1) !important; min-height: 52px !important; font-family: Inter, sans-serif !important; box-sizing: border-box !important; transition: border-color .2s ease, box-shadow .2s ease !important; }
.vrtx-onboard-form input:focus, .vrtx-onboard-form select:focus { outline: none !important; border-color: var(--vx-purple) !important; box-shadow: 0 0 0 4px rgba(124,92,250,0.12) !important; }
.vrtx-onboard-label { font-size: 14px !important; font-weight: 600 !important; color: var(--vx-ink-2) !important; margin: 8px 0 -8px !important; display: block; }
.vrtx-onboard-check { display: flex !important; align-items: flex-start !important; gap: 10px !important; font-size: 13px !important; color: var(--vx-ink-3) !important; line-height: 1.5 !important; margin: 8px 0 4px !important; cursor: pointer; }
.vrtx-onboard-check input[type="checkbox"] { accent-color: var(--vx-purple) !important; width: 18px !important; height: 18px !important; margin-top: 2px !important; flex-shrink: 0; }
.vrtx-onboard-check a { color: var(--vx-deep) !important; text-decoration: underline !important; font-weight: 600 !important; }
.vrtx-onboard-submit { background: #0F0824 !important; color: #fff !important; border: 0 !important; border-radius: 999px !important; padding: 16px !important; font-size: 16px !important; font-weight: 700 !important; cursor: pointer !important; min-height: 56px !important; margin-top: 8px !important; box-shadow: var(--vx-shadow-cta) !important; transition: background .2s ease, transform .2s ease !important; font-family: Inter, sans-serif !important; }
.vrtx-onboard-submit:hover { background: var(--vx-purple) !important; transform: translateY(-2px) !important; }
.vrtx-onboard-submit:disabled { opacity: .5; cursor: not-allowed; transform: none !important; }
.vrtx-onboard-error { background: #FEF2F2 !important; color: #991B1B !important; border: 1px solid #FECACA !important; border-left: 4px solid #DC2626 !important; border-radius: 14px !important; padding: 14px 18px !important; font-size: 14px !important; margin-bottom: 8px !important; }

/* Checkout dropdowns */
body.woocommerce-checkout select,
body.woocommerce-checkout .woocommerce form .form-row select { background-color: #fff !important; background: #fff !important; color: var(--vx-ink-1) !important; -webkit-text-fill-color: var(--vx-ink-1) !important; appearance: auto !important; -webkit-appearance: auto !important; }
body.woocommerce-checkout #billing_country,
body.woocommerce-checkout #billing_state,
body.woocommerce-checkout #shipping_country,
body.woocommerce-checkout #shipping_state,
body.woocommerce-checkout select.country_to_state { background-color: #fff !important; color: var(--vx-ink-1) !important; -webkit-text-fill-color: var(--vx-ink-1) !important; border: 1.5px solid var(--vx-border-strong) !important; border-radius: 14px !important; padding: 14px 18px !important; min-height: 52px !important; width: 100% !important; }

/* Select2 */
.select2-container--default .select2-selection--single { background-color: #fff !important; border: 1.5px solid var(--vx-border-strong) !important; border-radius: 14px !important; height: 52px !important; padding: 0 18px !important; overflow: hidden !important; }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--vx-ink-1) !important; line-height: 52px !important; padding: 0 !important; background: #fff !important; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 52px !important; top: 0 !important; right: 12px !important; }
.select2-dropdown { border: 1.5px solid var(--vx-border-strong) !important; border-radius: 14px !important; background: #fff !important; box-shadow: var(--vx-shadow-md) !important; overflow: hidden !important; }
.select2-results__option { color: var(--vx-ink-1) !important; padding: 10px 16px !important; font-size: 14px !important; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: var(--vx-soft) !important; color: var(--vx-ink-1) !important; }
.woocommerce-checkout .select2-container { width: 100% !important; }

/* ========== THANK YOU PAGE ========== */
.woocommerce-order-received .entry-content,
.woocommerce-order-received .woocommerce { max-width: 680px !important; margin: 0 auto !important; padding: 48px 24px 80px !important; font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important; }
.woocommerce-order-received .woocommerce-thankyou-order-received { display: none !important; }
.woocommerce-order-overview.woocommerce-thankyou-order-details { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 0 !important; background: #0F0824 !important; border-radius: 18px !important; padding: 28px 32px !important; list-style: none !important; margin: 0 0 20px !important; box-shadow: 0 8px 24px rgba(124,92,250,0.15) !important; }
.woocommerce-order-overview li { color: rgba(255,255,255,0.5) !important; font-size: 11px !important; font-weight: 500 !important; text-transform: uppercase !important; letter-spacing: 0.9px !important; padding: 0 24px 0 0 !important; border: none !important; border-right: 1px solid rgba(255,255,255,0.08) !important; }
.woocommerce-order-overview li:last-child { border-right: none !important; padding-right: 0 !important; }
.woocommerce-order-overview li strong { display: block !important; color: #fff !important; font-size: 15px !important; font-weight: 600 !important; margin-top: 7px !important; text-transform: none !important; letter-spacing: -0.2px !important; }
.woocommerce-order-received .woocommerce-order > p { background: #FAF7FF !important; border: 1px solid #ECE4FA !important; border-radius: 14px !important; padding: 18px 22px !important; font-size: 14px !important; line-height: 1.65 !important; color: #2D2147 !important; margin-bottom: 24px !important; }
.woocommerce-order-received .woocommerce-table--order-details { width: 100% !important; border-collapse: collapse !important; border-radius: 14px !important; overflow: hidden !important; border: 1px solid #ECE4FA !important; margin-bottom: 20px !important; box-shadow: 0 2px 6px rgba(124,92,250,0.06) !important; }
.woocommerce-order-received .woocommerce-table--order-details thead { background: #F3EEFF !important; }
.woocommerce-order-received .woocommerce-table--order-details thead th { color: #5B4D6E !important; font-size: 11px !important; font-weight: 600 !important; text-transform: uppercase !important; letter-spacing: 0.8px !important; padding: 13px 20px !important; }
.woocommerce-order-received .woocommerce-table--order-details tbody tr { border-bottom: 1px solid #ECE4FA !important; }
.woocommerce-order-received .woocommerce-table--order-details tbody td { padding: 16px 20px !important; font-size: 14px !important; color: #0F0824 !important; }
.woocommerce-order-received .woocommerce-table--order-details tfoot th,
.woocommerce-order-received .woocommerce-table--order-details tfoot td { padding: 12px 20px !important; font-size: 13px !important; color: #5B4D6E !important; border-top: 1px solid #ECE4FA !important; font-weight: 500 !important; }
.woocommerce-order-received .woocommerce-table--order-details tfoot .order-total th,
.woocommerce-order-received .woocommerce-table--order-details tfoot .order-total td { font-size: 16px !important; font-weight: 700 !important; color: #0F0824 !important; background: #FAF7FF !important; border-top: 2px solid #D4C5F9 !important; }
.woocommerce-order-received .woocommerce-customer-details,
.woocommerce-order-received .woocommerce-columns--addresses { display: grid !important; grid-template-columns: 1fr !important; gap: 16px !important; margin-top: 20px !important; }
.woocommerce-order-received .woocommerce-column { background: #FFFFFF !important; border: 1px solid #ECE4FA !important; border-radius: 14px !important; padding: 22px 24px !important; box-shadow: 0 2px 6px rgba(124,92,250,0.06) !important; }
.woocommerce-order-received .woocommerce-column__title { font-size: 11px !important; font-weight: 600 !important; text-transform: uppercase !important; letter-spacing: 0.9px !important; color: #8B7BA8 !important; margin-bottom: 12px !important; }
.woocommerce-order-received .woocommerce-column address { font-size: 14px !important; line-height: 1.75 !important; color: #0F0824 !important; font-style: normal !important; }
.woocommerce-order-received .woocommerce-order .button { display: inline-flex !important; align-items: center !important; justify-content: center !important; margin-top: 28px !important; padding: 14px 28px !important; background: #7C5CFA !important; color: white !important; border-radius: 999px !important; font-weight: 600 !important; font-size: 15px !important; box-shadow: 0 6px 18px rgba(124,92,250,0.32) !important; transition: transform 0.2s, box-shadow 0.2s !important; text-decoration: none !important; }
.woocommerce-order-received .woocommerce-order .button:hover { background: #5B3FE8 !important; transform: translateY(-2px) !important; }

/* ========== HOMEPAGE — full-bleed reset ========== */
/* NOTE (not changed): .site-header is position:fixed (see STICKY HEADER above)
   and body gets padding-top:80px / 64px to clear it. This line cancels that on
   the homepage only, so the top ~80px (64px on phones) of the page sits UNDER
   the fixed header — on mobile that is the .vm-strip deal bar. Correct if the
   header is transparent on home; if it is opaque, drop `body.home,` below. */
body.home,
body.page-id-20425 { padding-top: 0 !important; }

body.home #page,
body.home .site,
body.home #primary,
body.home .content-area,
body.home .entry-content,
body.home article,
body.home .ast-container,
body.page-id-20425 .ast-container,
body.home .site-content,
body.page-id-20425 .site-content,
body.page-id-20425 #content,
body.home .ast-plain-container,
body.page-id-20425 .ast-plain-container {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.home .elementor-section,
body.home .elementor-container,
body.home .elementor-widget-wrap,
body.home .e-con,
body.home .e-con-inner,
body.home .elementor-widget-html,
body.home .elementor-widget-html .elementor-widget-container,
/* FIX: the homepage renders through a Shortcode widget ([vrtx_responsive_hero]),
   not an HTML widget — without these two the full-bleed sections keep
   Elementor's default widget gutters. */
body.home .elementor-widget-shortcode,
body.home .elementor-widget-shortcode .elementor-widget-container,
body.page-id-20425 .e-con-full,
body.page-id-20425 .elementor-element {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  left: 0 !important;
}

/* Let the hero's vial cluster bleed past its box instead of clipping.
   FIX: the bare substring match also caught the mobile snippet's .vm-hero /
   .vm-hero-in, which need overflow:hidden to clip the gradient and the
   .vm-visual block's negative side margins. Excluded here. */
body.home .hero,
body.home [class*="hero"]:not([class*="vm-"]) { overflow: visible !important; }
/* Kill WooCommerce's default sale badge on single product pages.
   The styled "SALE!" pill on catalogue cards has its own rule and is
   unaffected. */
body.single-product .onsale,
body.single-product span.onsale,
body.single-product .woocommerce-product-gallery .onsale {
    display: none !important;
}
/* ===========================================================================
   VRTX — stop the sideways drift on mobile
   Append to Custom CSS (Appearance → Customize → Additional CSS, or wherever
   the rest of the site CSS lives). Safe to paste at the end.

   Four layers, cheapest first. Layer 3 is the one that usually fixes the
   "I can nudge the page sideways" feeling on iOS.
   =========================================================================== */

@media (max-width: 921px) {

  /* 1. clip, not hidden.
     `overflow-x: hidden` still creates a scroll container — iOS will happily
     rubber-band inside it. `clip` creates none at all, so there is nothing to
     drag. Kept alongside the existing !important hidden rule; clip wins here
     because it is later in the cascade and equally weighted. */
  html { overflow-x: clip !important; }
  body { overflow-x: clip !important; max-width: 100% !important; }

  /* 2. nothing in the snippet may exceed the viewport.
     .vm-visual carries negative side margins (margin: 6px -20px -8px) and the
     dark sections paint oversized radial glows, so each of these needs to clip
     its own children rather than trusting an ancestor. */
  .vm { overflow-x: clip; max-width: 100%; }
  .vm-strip,
  .vm-hero,
  .vm-visual,
  .vm-cat,
  .vm-ship,
  .vm-cta > div { overflow: hidden; }

  /* 3. inner rails must not chain their scroll to the page.
     The category rail, the proof tabs and the top-four grid scroll sideways on
     purpose. Without this, swiping past either end hands the leftover gesture
     to the document, which is the little side-to-side you are feeling. */
  .vm-rail,
  .vm-tabs { overscroll-behavior-x: contain; overscroll-behavior-y: auto; }

  /* 4. belt and braces: the page itself only pans vertically, while the rails
     keep their horizontal swipe. pinch-zoom is preserved deliberately — do not
     drop it, it is what keeps the page accessible. */
  .vm { touch-action: pan-y pinch-zoom; }
  .vm-rail,
  .vm-tabs { touch-action: pan-x pinch-zoom; }
}

/* The spin machine lives in shadow DOM (<vrtx-slot>), so it is unreachable
   from here by design — and it cannot overflow anyway: .cab is max-width:460px
   inside a padded section. No rule needed for it. */