/*
Theme Name: VGAN Joyful Rebellion
Theme URI: https://lovevgan.com
Author: VGAN Inc.
Author URI: https://lovevgan.com
Description: VGAN Chocolate — The Joyful Rebellion. Black · Hot Pink · White. Brand theme for Elementor/Elementor Pro. Pair with the VGAN Elementor Template Kit.
Version: 4.3.0
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary — VGAN Inc.
Text Domain: vgan
Tags: chocolate, lifestyle, elementor, black, pink, custom-colors, custom-typography, wide-blocks
*/

/* ============================================================
   VGAN · Joyful Rebellion — v2 (black · hot pink · white)
   Matches brand toolkit: Expo West 2026 leaflet + booth backdrop
   ============================================================ */

:root {
  /* Core palette (matches Expo West 2026 collateral) */
  --vg-bg:         #0A0A0A;   /* near-black */
  --vg-surface:    #141414;   /* card / dark panel */
  --vg-surface-2:  #1C1C1C;   /* subtle elevation */
  --vg-divider:    rgba(255,255,255,0.12);
  --vg-text:       #FFFFFF;
  --vg-text-muted: rgba(255,255,255,0.72);
  --vg-text-dim:   rgba(255,255,255,0.50);

  --vg-pink:       #EC1E79;   /* VGAN signature magenta */
  --vg-pink-hot:   #FF3B8F;   /* brighter hover */
  --vg-pink-soft:  rgba(236,30,121,0.12);

  --vg-ink:        #FFFFFF;   /* legacy alias — now white */
  --vg-accent:     #EC1E79;   /* legacy alias — now pink */
  --vg-coral:      #EC1E79;   /* legacy alias — now pink */
  --vg-gold:       #EC1E79;

  --vg-border:     #FFFFFF;

  /* Typography — matches leaflet: condensed display + clean sans body */
  --vg-font-display: "Archivo", "Archivo Black", "Helvetica Neue", sans-serif;
  --vg-font-stencil: "Bungee", "Archivo Black", sans-serif;
  --vg-font-body:    "Inter", "Helvetica Neue", system-ui, sans-serif;

  --vg-radius-sm:   4px;
  --vg-radius-md:   8px;
  --vg-radius-pill: 9999px;
  --vg-transition:  220ms cubic-bezier(0.16, 1, 0.3, 1);

  /* Light-on-dark variant (rare sections that invert to white bg) */
}

/* Optional light-panel modifier (used inside dark pages for product cards, etc.) */
.vg-panel-light {
  --vg-bg:         #FFFFFF;
  --vg-surface:    #FFFFFF;
  --vg-surface-2:  #F6F4F1;
  --vg-divider:    rgba(0,0,0,0.12);
  --vg-text:       #0A0A0A;
  --vg-text-muted: rgba(0,0,0,0.70);
  --vg-text-dim:   rgba(0,0,0,0.50);
  --vg-border:     #0A0A0A;
  background: #FFFFFF;
  color: #0A0A0A;
}

/* ---------- Base ---------- */
html, body { background: var(--vg-bg); }
body.vgan-rebellion {
  background: var(--vg-bg);
  color: var(--vg-text);
  font-family: var(--vg-font-body);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.vgan-rebellion a {
  color: var(--vg-pink);
  text-decoration: none;
  transition: color var(--vg-transition);
}
body.vgan-rebellion a:hover { color: var(--vg-pink-hot); }

/* Paragraph / text editor defaults */
body.vgan-rebellion p { color: var(--vg-text-muted); }
body.vgan-rebellion p strong { color: var(--vg-text); }
.vg-lede { font-size: clamp(1.05rem, 0.8rem + 0.5vw, 1.25rem); color: var(--vg-text); line-height: 1.55; max-width: 48ch; }
.vg-lede-light { color: rgba(255,255,255,0.85); font-size: clamp(1.05rem, 0.8rem + 0.5vw, 1.2rem); max-width: 52ch; }
.vg-lede-muted { color: var(--vg-text-muted); max-width: 44ch; }
.vg-text-muted { color: var(--vg-text-muted); }
.vg-text-muted p { color: var(--vg-text-muted); }

/* ---------- Typography ---------- */
.vgan-rebellion h1,
.vgan-rebellion h2,
.vgan-rebellion h3,
.vgan-rebellion h4,
.vgan-rebellion h5 {
  font-family: var(--vg-font-display);
  font-weight: 900;
  line-height: 1.0;
  letter-spacing: -0.02em;
  color: var(--vg-text);
  text-transform: uppercase;
  margin: 0;
}
.vgan-rebellion h1 {
  font-size: clamp(2.75rem, 0.5rem + 6.5vw, 7rem);
  line-height: 0.92;
  letter-spacing: -0.035em;
}
.vgan-rebellion h2 {
  font-size: clamp(2.1rem, 1rem + 3.2vw, 4.25rem);
  letter-spacing: -0.025em;
}
.vgan-rebellion h3 {
  font-size: clamp(1.35rem, 1rem + 0.8vw, 1.9rem);
  letter-spacing: -0.01em;
}
.vgan-rebellion h4 { font-size: clamp(1.1rem, 0.9rem + 0.5vw, 1.35rem); letter-spacing: 0; }

/* Eyebrow — the tiny all-caps label above every heading */
.vg-eyebrow {
  font-family: var(--vg-font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--vg-pink);
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
}
.vg-eyebrow--light { color: var(--vg-pink); }
.vg-eyebrow--sm { font-size: 10.5px; letter-spacing: 0.22em; }

/* Inline accents used inside headings */
.vg-italic-coral,
.vg-italic-pink { color: var(--vg-pink); font-style: italic; font-weight: 900; }
.vg-outline {
  -webkit-text-stroke: 2px var(--vg-text);
  color: transparent;
}
.vg-stencil { font-family: var(--vg-font-stencil); letter-spacing: 0; font-weight: 400; }

/* Darker heading variants used on light panels */
.vg-panel-light h1, .vg-panel-light h2, .vg-panel-light h3, .vg-panel-light h4 { color: #0A0A0A; }
.vg-panel-light .vg-outline { -webkit-text-stroke-color: #0A0A0A; }
.vg-h2--light { color: var(--vg-text); }

/* ---------- Buttons ---------- */
.vg-btn,
body.vgan-rebellion a.vg-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 16px 32px;
  border: 2px solid var(--vg-text);
  border-radius: var(--vg-radius-pill);
  font-family: var(--vg-font-body);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  background: transparent;
  color: var(--vg-text);
  cursor: pointer;
  transition: background var(--vg-transition), color var(--vg-transition), transform var(--vg-transition), border-color var(--vg-transition);
}
.vg-btn:hover { background: var(--vg-text); color: var(--vg-bg); transform: translateY(-2px); }

.vg-btn--accent,
body.vgan-rebellion a.vg-btn--accent {
  background: var(--vg-pink);
  color: var(--vg-text);
  border-color: var(--vg-pink);
}
.vg-btn--accent:hover { background: var(--vg-pink-hot); border-color: var(--vg-pink-hot); color: var(--vg-text); }

.vg-btn--ghost,
body.vgan-rebellion a.vg-btn--ghost {
  background: transparent;
  color: var(--vg-text);
  border-color: var(--vg-text);
}
.vg-btn--ghost:hover { background: var(--vg-text); color: var(--vg-bg); }

.vg-btn--coral { background: var(--vg-pink); color: var(--vg-text); border-color: var(--vg-pink); }
.vg-btn-row { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Container & sections ---------- */
.vg-container { max-width: 1280px; margin-inline: auto; padding-inline: clamp(20px, 4vw, 48px); }
.vg-col { min-width: 0; }

.vg-section { padding-block: clamp(4rem, 8vw, 9rem); background: var(--vg-bg); }
.vg-section--tight { padding-block: clamp(2.5rem, 5vw, 4rem); }

.vg-bg-dark { background: var(--vg-bg); color: var(--vg-text); }
.vg-bg-pink { background: var(--vg-pink); color: var(--vg-text); }
.vg-bg-pink * { color: var(--vg-text) !important; }
.vg-bg-pink .vg-eyebrow, .vg-bg-pink .vg-italic-pink { color: var(--vg-text) !important; font-style: italic; }

/* Thin pink divider line, used on leaflet */
.vg-rule { height: 2px; background: var(--vg-pink); width: 100%; margin-block: 2rem; }

/* ---------- Hero ---------- */
.vg-hero { padding-top: clamp(3rem, 6vw, 6rem); }
.vg-hero .vg-hero-img { filter: drop-shadow(0 30px 60px rgba(236,30,121,0.25)); }

/* ---------- Marquee strip ---------- */
.vg-marquee-section { background: var(--vg-pink); padding: 0; }
.vg-marquee {
  overflow: hidden;
  background: var(--vg-pink);
  color: var(--vg-text);
  padding: 18px 0;
  border: 0;
}
.vg-marquee__track {
  display: flex;
  gap: 48px;
  white-space: nowrap;
  animation: vg-scroll 30s linear infinite;
  font-family: var(--vg-font-display);
  font-weight: 900;
  font-size: clamp(1.4rem, 2.6vw, 2.2rem);
  letter-spacing: 0;
  text-transform: uppercase;
}
.vg-marquee__track span { display: inline-flex; align-items: center; gap: 48px; color: var(--vg-text); }
@keyframes vg-scroll { to { transform: translateX(-50%); } }

/* ---------- Product cards ---------- */
.vg-product-grid { align-items: stretch; }
.vg-product-card {
  background: var(--vg-surface);
  border: 1px solid var(--vg-divider);
  border-radius: var(--vg-radius-md);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  text-decoration: none;
  color: var(--vg-text);
  transition: transform var(--vg-transition), border-color var(--vg-transition), background var(--vg-transition);
}
.vg-product-card:hover {
  transform: translateY(-4px);
  border-color: var(--vg-pink);
  background: var(--vg-surface-2);
}
.vg-product-card__img {
  aspect-ratio: 1;
  background: transparent;
  border-radius: var(--vg-radius-sm);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.vg-product-card__img img,
.vg-product-card .elementor-widget-image img {
  width: 78%;
  height: auto;
  transition: transform var(--vg-transition);
  filter: drop-shadow(0 24px 40px rgba(0,0,0,0.55));
}
.vg-product-card:hover .vg-product-card__img img { transform: rotate(-3deg) scale(1.04); }
.vg-product-card h3 { color: var(--vg-text); }
.vg-shop-link { color: var(--vg-pink); font-family: var(--vg-font-body); font-size: 12px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; }

/* ---------- Value / stat cards ---------- */
.vg-values-grid, .vg-stats-grid, .vg-journal-grid { align-items: stretch; }

.vg-value-card {
  background: var(--vg-surface);
  border: 1px solid var(--vg-divider);
  border-radius: var(--vg-radius-md);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.vg-value-num {
  font-family: var(--vg-font-display);
  font-size: 2.5rem;
  color: var(--vg-pink);
  line-height: 1;
  font-weight: 900;
}

.vg-stat {
  background: transparent;
  border: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.vg-stat-num {
  font-family: var(--vg-font-display);
  font-size: clamp(2.5rem, 1rem + 3vw, 4rem);
  color: var(--vg-pink);
  line-height: 1;
  letter-spacing: -0.02em;
}
.vg-stat-label { font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--vg-text-muted); }

/* ---------- Manifesto / dark sections ---------- */
.vg-manifesto, .vg-sustainability { background: var(--vg-bg); }

/* ---------- Pullquote ---------- */
.vg-pullquote-section { background: var(--vg-bg); }
.vg-pullquote {
  padding: 0;
  text-align: center;
  font-family: var(--vg-font-display);
  font-weight: 900;
  font-size: clamp(2rem, 1rem + 3.5vw, 4.25rem);
  line-height: 1.05;
  letter-spacing: -0.025em;
  max-width: 22ch;
  margin: 0 auto;
  color: var(--vg-text);
  text-transform: uppercase;
}
.vg-cite-wrap { text-align: center; }
.vg-cite-wrap p, p.vg-cite {
  font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--vg-pink); margin-top: 1.5rem;
}

/* ---------- Newsletter ---------- */
.vg-newsletter { background: var(--vg-bg); }
.vg-newsletter-form {
  display: flex; gap: 12px; max-width: 480px; flex-wrap: wrap; margin-top: 1.5rem;
}
.vg-newsletter-form input[type="email"] {
  flex: 1; min-width: 220px;
  padding: 16px 20px;
  border: 1px solid var(--vg-divider);
  background: var(--vg-surface);
  border-radius: var(--vg-radius-pill);
  font-family: var(--vg-font-body);
  font-size: 15px;
  color: var(--vg-text);
}
.vg-newsletter-form input[type="email"]::placeholder { color: var(--vg-text-dim); }
.vg-newsletter-form input[type="email"]:focus { outline: none; border-color: var(--vg-pink); }

/* ---------- Contact form ---------- */
.vg-contact-form { display: flex; flex-direction: column; gap: 16px; }
.vg-contact-form label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--vg-text-muted); }
.vg-contact-form input, .vg-contact-form textarea {
  padding: 14px 16px;
  border: 1px solid var(--vg-divider);
  background: var(--vg-surface);
  border-radius: var(--vg-radius-sm);
  font-family: var(--vg-font-body);
  font-size: 15px;
  color: var(--vg-text);
}
.vg-contact-form input:focus, .vg-contact-form textarea:focus { outline: none; border-color: var(--vg-pink); }

/* ---------- Journal cards ---------- */
.vg-journal-card {
  background: var(--vg-surface);
  border: 1px solid var(--vg-divider);
  border-radius: var(--vg-radius-md);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: transform var(--vg-transition), border-color var(--vg-transition);
}
.vg-journal-card:hover { transform: translateY(-4px); border-color: var(--vg-pink); }
.vg-journal-card__img { border-radius: var(--vg-radius-sm); overflow: hidden; aspect-ratio: 4 / 3; background: var(--vg-surface-2); }
.vg-journal-card__img img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Split (image + text) ---------- */
.vg-split-img { border-radius: var(--vg-radius-md); overflow: hidden; }

/* ---------- Footer ---------- */
.vg-footer { background: var(--vg-bg); border-top: 1px solid var(--vg-divider); padding-top: clamp(3rem, 6vw, 5rem); padding-bottom: 2rem; }
.vg-wordmark {
  font-family: var(--vg-font-display);
  font-weight: 900;
  font-size: clamp(4rem, 14vw, 12rem);
  line-height: 0.85;
  letter-spacing: -0.04em;
  color: var(--vg-text);
  text-transform: uppercase;
}
.vg-footer-top { padding-block: 1rem 2.5rem; border-bottom: 1px solid var(--vg-divider); }
.vg-footer-bottom { padding-top: 1.5rem; }
.vg-footer-legal p, .vg-footer-legal { font-size: 12px; letter-spacing: 0.08em; color: var(--vg-text-dim); }

.vg-footer-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.vg-footer-links li { margin: 0; }
.vg-footer-links a { color: var(--vg-text-muted); font-size: 14px; text-decoration: none; }
.vg-footer-links a:hover { color: var(--vg-pink); }

/* ---------- Locator ---------- */
.vg-locator { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(2rem, 4vw, 4rem); align-items: center; }
.vg-locator__map { height: 420px; background: var(--vg-surface); border-radius: var(--vg-radius-md); display: flex; align-items: center; justify-content: center; color: var(--vg-text-muted); border: 1px solid var(--vg-divider); }
@media (max-width: 860px) { .vg-locator { grid-template-columns: 1fr; } }

/* ---------- Elementor native widget overrides so editing looks right ---------- */
/* Heading widget — make sure it inherits brand styles */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--vg-font-display);
  color: var(--vg-text);
  text-transform: uppercase;
  font-weight: 900;
  line-height: 1.0;
  letter-spacing: -0.02em;
}
.elementor-widget-heading .elementor-heading-title.elementor-size-xl,
.elementor-widget-heading[data-widget_type="heading.default"] h1.elementor-heading-title {
  font-size: clamp(2.75rem, 0.5rem + 6.5vw, 7rem);
  line-height: 0.92;
}
.elementor-widget-heading h2.elementor-heading-title {
  font-size: clamp(2.1rem, 1rem + 3.2vw, 4.25rem);
}
.elementor-widget-heading h3.elementor-heading-title {
  font-size: clamp(1.35rem, 1rem + 0.8vw, 1.9rem);
}
/* Eyebrow: when user puts .vg-eyebrow on a heading widget with tag "div" */
.elementor-widget-heading .elementor-heading-title.vg-eyebrow {
  font-family: var(--vg-font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--vg-pink);
  text-transform: uppercase;
  line-height: 1.4;
}
.elementor-widget-heading .elementor-heading-title.vg-pullquote {
  font-size: clamp(2rem, 1rem + 3.5vw, 4.25rem);
  line-height: 1.05;
  max-width: 22ch;
  margin-inline: auto;
}
.elementor-widget-heading .elementor-heading-title.vg-value-num,
.elementor-widget-heading .elementor-heading-title.vg-stat-num {
  font-family: var(--vg-font-display);
  color: var(--vg-pink);
  font-weight: 900;
}
.elementor-widget-heading .elementor-heading-title.vg-stat-num { font-size: clamp(2.5rem, 1rem + 3vw, 4rem); }
.elementor-widget-heading .elementor-heading-title.vg-value-num { font-size: 2.5rem; }
.elementor-widget-heading .elementor-heading-title.vg-wordmark {
  font-size: clamp(4rem, 14vw, 12rem);
  line-height: 0.85;
  letter-spacing: -0.04em;
}
.elementor-widget-heading .elementor-heading-title.vg-shop-link {
  font-family: var(--vg-font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--vg-pink);
}

/* Text-editor widget */
.elementor-widget-text-editor { color: var(--vg-text-muted); }
.elementor-widget-text-editor p { color: var(--vg-text-muted); }
.elementor-widget-text-editor.vg-lede, .elementor-widget-text-editor .vg-lede { color: var(--vg-text); }

/* Button widget — brand-style even without the vg-btn class, but prefer .vg-btn */
.elementor-widget-button .elementor-button {
  border-radius: var(--vg-radius-pill);
  font-family: var(--vg-font-body);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 13px;
  padding: 16px 32px;
  border: 2px solid var(--vg-text);
  background: transparent;
  color: var(--vg-text);
  transition: background var(--vg-transition), color var(--vg-transition), transform var(--vg-transition);
}
.elementor-widget-button .elementor-button:hover {
  transform: translateY(-2px);
  background: var(--vg-text);
  color: var(--vg-bg);
}
.elementor-widget-button .elementor-button.vg-btn--accent {
  background: var(--vg-pink);
  border-color: var(--vg-pink);
  color: var(--vg-text);
}
.elementor-widget-button .elementor-button.vg-btn--accent:hover {
  background: var(--vg-pink-hot);
  border-color: var(--vg-pink-hot);
  color: var(--vg-text);
}
.elementor-widget-button .elementor-button.vg-btn--ghost {
  background: transparent;
  border-color: var(--vg-text);
  color: var(--vg-text);
}
.elementor-widget-button .elementor-button.vg-btn--ghost:hover {
  background: var(--vg-text);
  color: var(--vg-bg);
}

/* Image widget — drop shadow for product shots */
.elementor-widget-image img.vg-hero-img,
.elementor-widget-image .vg-hero-img img { filter: drop-shadow(0 30px 60px rgba(236,30,121,0.25)); }
.elementor-widget-image .vg-product-card__img img,
.elementor-widget-image.vg-product-card__img img { filter: drop-shadow(0 24px 40px rgba(0,0,0,0.55)); }

/* Ensure any Elementor container we use fully fills and stays dark */
.elementor-section, .elementor-container, .e-con, .e-flex {
  background-color: transparent;
}
body.vgan-rebellion .elementor-element { color: inherit; }

/* ---------- Fade-up (scroll trigger hook) ---------- */
.vg-fade-up { opacity: 0; transform: translateY(28px); transition: opacity 700ms ease, transform 700ms cubic-bezier(0.22, 1, 0.36, 1); }
.vg-fade-up.is-visible { opacity: 1; transform: none; }

/* ---------- Accessibility ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  .vg-marquee__track { animation: none; }
}

/* ================================================================
   v4.1 — Home-page additions (section headings, lifestyle split,
   manifesto text, product-card image alias, wordmark mega, journal-card)
   ================================================================ */

/* Section headings */
.vg-section-heading { margin-bottom: clamp(2rem, 4vw, 3rem); }
.vg-section-heading .elementor-widget-heading .elementor-heading-title {
  font-size: clamp(2.1rem, 1rem + 3.2vw, 4.25rem);
  line-height: 0.95;
}
.vg-section-heading--split { align-items: end; }
.vg-section-heading--split .vg-col:last-child .elementor-widget-text-editor {
  max-width: 38ch;
  color: var(--vg-text-muted);
  font-size: var(--vg-text-lg, 17px);
}
.vg-section-heading__cta { justify-self: end; }

/* Manifesto — centered text block on dark */
.vg-manifesto { text-align: center; padding-block: clamp(6rem, 12vw, 10rem); }
.vg-manifesto .vg-container { max-width: 1100px; margin-inline: auto; }
.elementor-widget-heading .elementor-heading-title.vg-manifesto-text {
  font-size: clamp(1.75rem, 1rem + 3vw, 3.5rem);
  line-height: 1.1;
  letter-spacing: -0.015em;
  text-transform: none;
  font-weight: 900;
  max-width: 24ch;
  margin-inline: auto;
}
.vg-manifesto-cta { margin-top: clamp(2rem, 4vw, 3rem); justify-content: center; align-items: center; display: flex; }
.vg-eyebrow--accent { color: var(--vg-pink) !important; }
.vg-eyebrow--light { color: rgba(255,255,255,0.7) !important; }

/* Lifestyle split section */
.vg-lifestyle { padding-block: clamp(4rem, 8vw, 7rem); }
.vg-lifestyle .vg-split-img img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: var(--vg-radius-md);
}

/* Product card — the builder uses __image (new) AND older code uses __img. Alias both. */
.vg-product-card__image { border-radius: var(--vg-radius-sm); overflow: hidden; aspect-ratio: 1 / 1; background: var(--vg-surface-2); margin-bottom: 16px; }
.vg-product-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1); }
.vg-product-card:hover .vg-product-card__image img { transform: rotate(-3deg) scale(1.04); }
.elementor-widget-heading .elementor-heading-title.vg-product-card__tag {
  font-family: var(--vg-font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--vg-pink);
  text-transform: uppercase;
}
.elementor-widget-heading .elementor-heading-title.vg-product-card__title {
  font-size: clamp(1.25rem, 0.9rem + 0.8vw, 1.65rem);
  line-height: 1.1;
  margin-top: 6px;
}
.vg-product-card__meta {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 12px;
  font-size: 13px;
  color: var(--vg-text-muted);
  letter-spacing: 0.02em;
}
.vg-product-card__meta .vg-arrow {
  font-family: var(--vg-font-display);
  color: var(--vg-pink);
  transition: transform var(--vg-transition);
}
.vg-product-card:hover .vg-product-card__meta .vg-arrow { transform: translateX(6px); }
.vg-product-card__body { padding-inline: 2px; }

/* Journal card polish */
.elementor-widget-heading .elementor-heading-title.vg-journal-card__title {
  font-size: clamp(1.25rem, 0.9rem + 1vw, 1.75rem);
  line-height: 1.15;
  text-transform: none;
  letter-spacing: -0.01em;
}
.vg-journal-card__img { aspect-ratio: 4/3; border-radius: var(--vg-radius-sm); overflow: hidden; margin-bottom: 12px; }
.vg-journal-card__img img { transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1); }
.vg-journal-card:hover .vg-journal-card__img img { transform: scale(1.05); }
.vg-journal-card__meta { font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--vg-text-dim); margin-top: 8px; }
.vg-eyebrow--sm { font-size: 11px !important; }

/* Footer mega wordmark */
.elementor-widget-heading .elementor-heading-title.vg-wordmark--mega {
  font-size: clamp(4rem, 14vw, 12rem);
  line-height: 0.85;
  letter-spacing: -0.04em;
  position: relative;
}
.elementor-widget-heading .elementor-heading-title.vg-wordmark--mega::after {
  content: "\2022";
  color: var(--vg-pink);
  margin-left: 0.06em;
}
.vg-footer-tag p { color: var(--vg-text-muted); font-size: 13px; letter-spacing: 0.08em; text-align: right; }
.vg-footer-bottom { justify-content: space-between; align-items: center; }

/* Italic-pink accent — used in emphatic text and span inside headings */
.vg-italic-pink, em.vg-italic-pink {
  font-style: italic;
  color: var(--vg-pink);
  font-weight: 900;
}

/* Newsletter inner layout */
.vg-newsletter-inner { align-items: center; }

/* Stats bar grid in sustainability — ensure stats row sits below the split */
.vg-sustainability .vg-stats-grid { margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid rgba(255,255,255,0.18); }

/* Elementor entrance animations: Elementor ships animate.css. We just tune timing.
   The .elementor-invisible class hides until the animation triggers. */
.elementor-invisible { visibility: hidden; }
.elementor-widget.animated, .e-con.animated { animation-duration: 900ms; animation-fill-mode: both; }

@media (max-width: 860px) {
  .vg-section-heading--split { flex-direction: column !important; }
  .vg-section-heading--split .vg-col { width: 100% !important; }
  .vg-footer-bottom { flex-direction: column; gap: 12px; align-items: flex-start; }
  .vg-footer-tag p { text-align: left; }
}

/* ---------- Responsive tweaks ---------- */
@media (max-width: 860px) {
  .vg-hero .vg-hero-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 768px) {
  .vg-section { padding-block: clamp(3rem, 8vw, 5rem); }
  .vg-footer-top { flex-wrap: wrap; }
  .vg-product-grid .vg-product-card { width: 100% !important; }
  .vg-journal-grid .vg-journal-card { width: 100% !important; }
  .vg-values-grid .vg-value-card { width: 45% !important; }
}

/* ================================================================
   v4.3 — Spotlight effects (user-requested details)
   Scoped tightly so they can't break anything else.
   ================================================================ */

/* Eyebrow with pink horizontal line before it (as seen in preview) */
.vg-eyebrow--with-line { display: inline-flex; align-items: center; gap: 14px; }
.vg-eyebrow--with-line::before {
  content: ""; width: 40px; height: 2px;
  background: var(--vg-pink);
  display: inline-block;
}
.vg-eyebrow--sm { font-size: 11px !important; letter-spacing: 0.14em !important; }

/* Marquee — white horizontal rules above and below the pink band */
.vg-marquee-band {
  background: var(--vg-pink);
  overflow: hidden;
  padding: 18px 0;
  border-top: 2px solid #FFFFFF;
  border-bottom: 2px solid #FFFFFF;
}
.vg-marquee-band .vg-marquee__track {
  display: flex; gap: 48px; white-space: nowrap;
  animation: vg-scroll 32s linear infinite;
  font-family: "Archivo Black", sans-serif;
  font-weight: 900;
  font-size: clamp(18px, 1.6vw, 28px);
  color: #FFFFFF;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  align-items: center;
}
.vg-marquee-band .vg-marquee__track .dot {
  color: #0A0A0A;
  font-size: 0.6em;
}
@keyframes vg-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Spinning "Eat consciously · Live radically" badge on hero */
.vg-hero-right { position: relative; }
.vg-spin-wrap {
  position: absolute;
  top: 8%;
  right: -20px;
  width: 150px;
  height: 150px;
  z-index: 2;
  animation: vg-spin 16s linear infinite;
  background: var(--vg-pink);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 40px rgba(236,30,121,0.5);
}
.vg-spin-wrap svg { overflow: visible; }
@keyframes vg-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Hero right column: pink panel behind product image (the "pink box") */
.vg-hero-right::before {
  content: ""; position: absolute; inset: 24px -24px 24px 24px;
  background: var(--vg-pink);
  border-radius: 8px;
  z-index: 0;
}
.vg-hero-right .vg-hero-img {
  position: relative; z-index: 1;
}
.vg-hero-right .vg-hero-img img {
  width: 100%; height: auto;
  aspect-ratio: 4/5;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 30px 60px rgba(0,0,0,0.4);
}

/* Product cards — white border, image rotates on hover */
.vg-product-card {
  border: 2px solid rgba(255,255,255,0.1);
  padding: 20px;
  border-radius: 12px;
  background: #141414;
  transition: border-color 300ms ease, transform 300ms ease;
}
.vg-product-card:hover {
  border-color: var(--vg-pink);
  transform: translateY(-4px);
}
.vg-product-card__image {
  overflow: hidden;
  border-radius: 6px;
  aspect-ratio: 1/1;
  background: #1C1C1C;
  margin-bottom: 16px;
}
.vg-product-card__image img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(0.22,1,0.36,1);
}
.vg-product-card:hover .vg-product-card__image img {
  transform: rotate(-4deg) scale(1.06);
}
.vg-product-card__tag {
  font-family: "Inter", sans-serif !important;
  font-size: 11px !important;
  letter-spacing: 0.18em !important;
  color: var(--vg-pink) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  margin-bottom: 4px !important;
}
.vg-product-card__title {
  font-size: clamp(18px, 1.4vw, 24px) !important;
  line-height: 1.1 !important;
}
.vg-product-card__meta {
  display: flex; justify-content: space-between; align-items: center;
  color: rgba(255,255,255,0.7);
  font-size: 13px;
  margin-top: 8px;
}
.vg-product-card__meta .vg-arrow {
  color: var(--vg-pink);
  font-family: "Archivo Black", sans-serif;
  transition: transform 300ms ease;
}
.vg-product-card:hover .vg-product-card__meta .vg-arrow { transform: translateX(6px); }

/* Values cards — boxed style */
.vg-value-card {
  border: 2px solid rgba(255,255,255,0.1);
  padding: 28px 22px;
  border-radius: 12px;
  background: #141414;
  transition: border-color 300ms ease, background 300ms ease;
}
.vg-value-card:hover {
  border-color: var(--vg-pink);
  background: #1A1A1A;
}
.vg-value-num {
  color: var(--vg-pink) !important;
  font-family: "Bungee", sans-serif !important;
  font-size: 28px !important;
}

/* Journal cards */
.vg-journal-card {
  transition: transform 300ms ease;
}
.vg-journal-card:hover { transform: translateY(-6px); }
.vg-journal-card__img {
  overflow: hidden;
  border-radius: 8px;
  aspect-ratio: 4/3;
  margin-bottom: 14px;
}
.vg-journal-card__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(0.22,1,0.36,1);
}
.vg-journal-card:hover .vg-journal-card__img img { transform: scale(1.06); }
.vg-journal-card__title {
  font-size: clamp(20px, 1.5vw, 28px) !important;
  line-height: 1.15 !important;
  text-transform: none !important;
  letter-spacing: -0.01em !important;
}

/* Section-heading split (left copy + right cta or subtext) */
.vg-section-heading--split {
  display: flex;
  gap: clamp(32px, 5vw, 64px);
  align-items: flex-end;
}
.vg-section-heading--split > .e-con,
.vg-section-heading--split > div {
  flex: 1;
}
.vg-section-heading__cta { display: flex; justify-content: flex-end; }

/* Pullquote */
.vg-pullquote {
  font-size: clamp(2rem, 1rem + 3.5vw, 4.25rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
  max-width: 22ch;
  margin: 0 auto !important;
  text-align: center;
  text-transform: none !important;
}

/* Manifesto */
.vg-manifesto-text {
  font-size: clamp(1.75rem, 1rem + 3vw, 3.5rem) !important;
  line-height: 1.15 !important;
  text-transform: none !important;
  max-width: 22ch;
  margin: 0 auto !important;
}

/* Italic-pink span — make sure it wins color battle */
.vg-italic-pink,
.elementor-heading-title .vg-italic-pink,
h1 .vg-italic-pink, h2 .vg-italic-pink, h3 .vg-italic-pink {
  color: var(--vg-pink) !important;
  font-style: italic !important;
  font-weight: 900;
}

/* Lede */
.vg-lede {
  font-size: clamp(1rem, 0.8rem + 0.4vw, 1.15rem);
  line-height: 1.55;
  color: rgba(255,255,255,0.8);
  max-width: 48ch;
}

/* Responsive */
@media (max-width: 860px) {
  .vg-section-heading--split { flex-direction: column; align-items: stretch; }
  .vg-hero-right::before { inset: 16px; }
  .vg-spin-wrap { top: 8%; right: 8px; width: 110px; height: 110px; }
}
@media (max-width: 768px) {
  .vg-product-card, .vg-value-card { padding: 18px; }
}
