/** Shopify CDN: Minification failed

Line 442:1 Expected "}" to go with "{"

**/
/* goldvi global enhancements */

/* Mobile: prevent any section from causing sideways page scroll */
@media (max-width: 749px) {
  body { overflow-x: hidden; }
}

:root {
  --gv-terracotta: #C8401A;
  --gv-cream: #F8F3D6;
  --gv-brown: #360D13;
  --gv-black: #0F0A08;
  --gv-font-body: var(--font-body--family, 'Poppins', sans-serif);
  --gv-font-display: var(--font-heading--family, 'Poppins', sans-serif);
  --gv-font-accent: var(--font-accent--family, 'Poppins', sans-serif);

/* Goldvi typography — Georama everywhere. SemiBold 600 baseline, heavier weights kept for heading hierarchy. */
  --font-heading--family: 'Georama', sans-serif !important;
  --font-heading--weight: 700 !important;
  --font-heading--style: normal !important;

  --font-body--family: 'Georama', sans-serif !important;
  --font-body--weight: 600 !important;
  --font-body--style: normal !important;

  --font-subheading--family: 'Georama', sans-serif !important;
  --font-subheading--weight: 600 !important;
  --font-subheading--style: normal !important;

  --font-accent--family: 'Georama', sans-serif !important;
  --font-accent--weight: 800 !important;
  --font-accent--style: normal !important;

/* Default: normal width everywhere, so paragraphs stay readable and don't look smooshed. */
body {
  font-stretch: normal;
}

/* Opt-in class for short packaging-style callouts (badges, eyebrows, stat labels) that should get the true Expanded look. Not applied automatically — ask me to wire it to specific elements if you want that treatment somewhere. */
.gv-expanded-type {
  font-stretch: expanded;
}

/* Page-load burst overlay */
.gv-load-burst-overlay {
  position: fixed;
  inset: 0;
  z-index: 999999;
  background: var(--gv-cream);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  pointer-events: all;
  touch-action: none;
}

.gv-load-burst-dot {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 200vmax;
  height: 200vmax;
  margin: -100vmax 0 0 -100vmax;
  border-radius: 50%;
  background: var(--gv-terracotta);
  transform: scale(0) translateZ(0);
  transform-origin: center center;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* Premium cursor follower — native cursor stays fully visible */
.gv-cursor-ring { display: none; }

@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
  .gv-cursor-ring {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100002;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.25s ease;
    will-change: transform;
  }

  .gv-cursor-ring.is-visible { opacity: 1; }

  .gv-cursor-dot {
    position: absolute;
    top: 0;
    left: 0;
    width: 9px;
    height: 9px;
    box-sizing: border-box;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: var(--gv-terracotta);
    border: 1.5px solid transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    transition:
      width 0.34s cubic-bezier(0.16, 1, 0.3, 1),
      height 0.34s cubic-bezier(0.16, 1, 0.3, 1),
      transform 0.18s ease,
      background-color 0.3s ease,
      border-color 0.3s ease;
  }

  .gv-cursor-label {
    font-family: var(--gv-font-body, 'Poppins', sans-serif);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1;
    text-transform: uppercase;
    color: var(--gv-terracotta);
    opacity: 0;
    transform: scale(0.6);
    white-space: nowrap;
    pointer-events: none;
    transition: opacity 0.22s ease, transform 0.34s cubic-bezier(0.16, 1, 0.3, 1);
  }

  /* Hover over clickable: expand into translucent outlined circle */
  .gv-cursor-ring.is-hover .gv-cursor-dot {
    width: 44px;
    height: 44px;
    background: rgba(200, 64, 26, 0.12);
    border-color: var(--gv-terracotta);
  }

  .gv-cursor-ring.is-hover .gv-cursor-label {
    opacity: 1;
    transform: scale(1);
  }

  /* Click compression */
  .gv-cursor-ring.is-down .gv-cursor-dot {
    transform: translate(-50%, -50%) scale(0.7);
  }
}

/* Staggered section reveal (legacy) */
@media (prefers-reduced-motion: no-preference) {
  .gv-stagger-item {
    opacity: 0;
    transform: translateY(24px);
    transition:
      opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
      transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    transition-delay: var(--gv-stagger-delay, 0ms);
  }

  .gv-stagger-item.gv-in-view {
    opacity: 1;
    transform: none;
  }
}

/* Universal scroll reveal */
.gv-reveal-ready {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
}

.gv-reveal-ready.gv-revealed {
  opacity: 1;
  transform: translateY(0);
}

.gv-reveal-ready.gv-delay-1 { transition-delay: 0.1s; }
.gv-reveal-ready.gv-delay-2 { transition-delay: 0.2s; }
.gv-reveal-ready.gv-delay-3 { transition-delay: 0.3s; }
.gv-reveal-ready.gv-delay-4 { transition-delay: 0.4s; }
.gv-reveal-ready.gv-delay-5 { transition-delay: 0.5s; }
.gv-reveal-ready.gv-delay-6 { transition-delay: 0.6s; }

@media (prefers-reduced-motion: reduce) {
  .gv-reveal-ready {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Primary buttons */
.gv-btn--primary {
  position: relative;
  overflow: hidden;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.2s cubic-bezier(0.16, 1, 0.3, 1),
              background-color 0.2s ease;
}

.gv-btn--primary::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(
    to right,
    transparent 0%,
    rgba(255, 255, 255, 0.18) 50%,
    transparent 100%
  );
  transform: skewX(-20deg);
  transition: left 0.55s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
}

.gv-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(200, 64, 26, 0.35);
}

.gv-btn--primary:hover::after {
  left: 160%;
}

.gv-btn--primary:active {
  transform: scale(0.97) translateY(0);
  box-shadow: 0 2px 8px rgba(200, 64, 26, 0.2);
}

/* Secondary buttons */
.gv-btn--secondary {
  transition: background-color 0.2s ease,
              color 0.2s ease,
              transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.gv-btn--secondary:hover {
  background-color: rgba(255, 255, 255, 0.12);
  transform: translateY(-2px);
}

.gv-btn--secondary:active {
  transform: scale(0.97);
}

@media (prefers-reduced-motion: reduce) {
  .gv-btn--primary,
  .gv-btn--secondary {
    transition: none;
  }

  .gv-btn--primary::after {
    display: none;
  }

  .gv-btn--primary:hover,
  .gv-btn--secondary:hover,
  .gv-btn--primary:active,
  .gv-btn--secondary:active {
    transform: none;
    box-shadow: none;
  }
}

/* Benefit card hover lifts */
.gv-benefits-card,
[class*="gv-card"] {
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: default;
}

.gv-benefits-card:hover,
[class*="gv-card"]:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(15, 10, 8, 0.15);
}

@media (prefers-reduced-motion: reduce) {
  .gv-benefits-card,
  [class*="gv-card"] {
    transition: none;
  }

  .gv-benefits-card:hover,
  [class*="gv-card"]:hover {
    transform: none;
    box-shadow: none;
  }
}

/* Marquee edge fade */
marquee-component {
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 8%,
    black 92%,
    transparent 100%
  );
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 8%,
    black 92%,
    transparent 100%
  );
}

.gv-marquee-wrapper,
[class*="marquee"] .gv-inner,
section[class*="marquee"] > div {
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 8%,
    black 92%,
    transparent 100%
  );
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 8%,
    black 92%,
    transparent 100%
  );
}

/* Button glow */
.gv-glow-btn {
  position: relative;
  z-index: 0;
}

.gv-glow-btn::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: inherit;
  background: radial-gradient(circle, rgba(200, 64, 26, 0.45) 0%, transparent 70%);
  opacity: 0;
  z-index: -1;
  animation: gvBtnGlow 3.2s ease-in-out infinite;
  animation-delay: var(--gv-glow-delay, 0s);
  pointer-events: none;
}

@keyframes gvBtnGlow {
  0%, 78%, 100% { opacity: 0; transform: scale(0.92); }
  88% { opacity: 0.85; transform: scale(1.08); }
}

/* Gradient border on CTAs */
.gv-gradient-cta {
  position: relative;
  z-index: 0;
  isolation: isolate;
}

.gv-gradient-cta::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 8px;
  padding: 2px;
  background: conic-gradient(
    from var(--gv-border-angle, 0deg),
    var(--gv-terracotta),
    var(--gv-brown),
    var(--gv-terracotta),
    var(--gv-cream),
    var(--gv-terracotta)
  );
  -webkit-mask: linear-gradient(var(--gv-cream) 0 0) content-box, linear-gradient(var(--gv-cream) 0 0);
  mask: linear-gradient(var(--gv-cream) 0 0) content-box, linear-gradient(var(--gv-cream) 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  z-index: -1;
  animation: gvBorderSpin 3.5s linear infinite;
}

@property --gv-border-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

@keyframes gvBorderSpin {
  to { --gv-border-angle: 360deg; }
}

/* Page wipe */
.gv-page-wipe {
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  background: var(--gv-cream);
  transform: translateX(-101%);
}

.gv-page-wipe.is-active {
  animation: gvPageWipeSlide 300ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes gvPageWipeSlide {
  from { transform: translateX(-101%); }
  to { transform: translateX(0); }
}

/* Magnetic cards */
product-card.gv-magnetic-card,
.gv-magnetic-card product-card,
.gv-magnetic-card .product-card {
  perspective: 900px;
  transform-style: preserve-3d;
}

product-card.gv-magnetic-card .product-card__content,
.gv-magnetic-card product-card .card-gallery,
.gv-magnetic-card .resource-card {
  transition: transform 0.18s ease-out;
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .gv-load-burst-overlay,
  .gv-cursor-ring { display: none !important; }
  .gv-stagger-item { opacity: 1; transform: none; }
  .gv-glow-btn::after,
  .gv-gradient-cta::before { animation: none; display: none; }
  .gv-page-wipe.is-active { animation: none; transform: translateX(-101%); }
}