@import url("https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&family=Unbounded:wght@400..900&display=swap");

:root {
  /* ---------- Core tokens ---------- */
  --color-text: #0a0a0a;
  --color-text-darker: #141414;
  --color-text-secondary: #505050;
  --color-text-dark: #fff;
  --color-bg: #fafafa;
  --color-bg-alt: #f2f2f2;
  --color-brighter-bg: hsl(0 0% 100% / 72%);
  --color-input-bg: #eceef0;
  --color-popup-bg: hsl(220 15% 8% / 55%);

  /* Primary palette (teal) — enriched */
  --color-primary: #36C2C1;
  --color-primary-soft: #5ED6D5;
  --color-primary-deep: #1F9D9C;
  --color-primary-hover: #141414;
  --color-primary-text: var(--color-text-dark);
  --color-primary-text-hover: var(--color-primary-text);
  --color-primary-glow: 65 196 195;
  --color-primary-gradient: linear-gradient(135deg, #41C4C3 0%, #2BA8B1 60%, #3DCCB8 100%);

  /* Accent — for highlights, countdowns, removals */
  --color-accent: #FF6B8A;
  --color-accent-soft: #FFC8D3;

  --color-secondary: #e3e5e8;
  --color-secondary-hover: #d4d7dc;
  --color-secondary-text: var(--color-text);
  --color-secondary-text-hover: var(--color-text-darker);
  --color-tertiary: transparent;
  --color-tertiary-hover: hsl(220 10% 10% / 8%);
  --color-tertiary-text: var(--color-text);
  --color-tertiary-text-hover: var(--color-tertiary-text);
  --color-removed: #B8283F;
  --color-border: hsl(220 10% 85% / 1);
  --color-border-soft: hsl(220 10% 90% / 0.6);

  /* Elevation system */
  --shadow-xs: 0 1px 2px hsl(220 30% 12% / 0.04);
  --shadow-sm: 0 2px 8px -2px hsl(220 30% 12% / 0.06), 0 1px 2px hsl(220 30% 12% / 0.04);
  --shadow-md: 0 8px 24px -4px hsl(220 30% 12% / 0.08), 0 2px 6px -2px hsl(220 30% 12% / 0.05);
  --shadow-lg: 0 24px 48px -12px hsl(220 30% 12% / 0.18), 0 8px 16px -6px hsl(220 30% 12% / 0.08);
  --shadow-xl: 0 40px 80px -20px hsl(220 30% 12% / 0.25);
  --shadow-glow: 0 10px 30px -8px rgb(var(--color-primary-glow) / 0.35);
  --shadow-inner: inset 0 1px 0 hsl(0 0% 100% / 0.6);

  /* Geometry */
  --header-height: 380px;
  --tebex-footer-height: 37px;
  --layout-gap: 20px;
  --widget-padding: 20px;
  --content-padding: var(--widget-padding);
  --content-inner-width: 1280px;
  --content-width: calc((var(--content-padding) * 2) + var(--content-inner-width));
  --sidebar-width: 287px;
  --products-gap: 28px 36px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 22px;

  /* Buttons */
  --btn-size: 46px;
  --btn-size-small: 38px;
  --btn-size-xsmall: 34px;
  --btn-icon-size: 18px;
  --btn-color-text: var(--color-text);
  --btn-color-text-hover: var(--btn-color-text);
  --btn-color-bg: var(--color-bg);
  --btn-color-bg-hover: var(--btn-color-bg);

  /* Effects */
  --bg-blur: blur(14px) saturate(1.4);
  --bg-blur-strong: blur(24px) saturate(1.6);
  --page-transition-duration: .45s;
  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
  --ease-out-smooth: cubic-bezier(0.33, 1, 0.68, 1);
  --ease-in-out-smooth: cubic-bezier(0.65, 0, 0.35, 1);

  /* Fonts */
  --font-body: "Lexend", system-ui, -apple-system, sans-serif;
  --font-display: "Unbounded", "Lexend", system-ui, sans-serif;

  /* Tebex footer tokens */
  --tebex-legal-footer-max-width: min(
    var(--content-inner-width),
    calc(100vw - (var(--content-padding) * 2))
  );
  --tebex-legal-footer-background-color: var(--color-brighter-bg);
  --tebex-legal-footer-border-color: var(--color-brighter-bg);
  --tebex-legal-footer-text-color: var(--color-text-secondary);
}

@media (width > 600px) {
  :root {
    --widget-padding: 24px;
    --layout-gap: 48px;
  }
}
@media (width > 960px) {
  :root {
    --layout-gap: 72px;
    --content-padding: calc(var(--widget-padding) * 2);
  }
}
@media (max-width: 900px) {
  :root {
    --tebex-footer-height: 70px;
  }
}
@media (max-width: 600px) {
  :root {
    --tebex-footer-height: 80px;
  }
}

/* ---------- Dark mode ---------- */
@media (prefers-color-scheme: dark) {
  :root.color-scheme-auto {
    --color-text: #f5f5f7;
    --color-text-darker: #ffffff;
    --color-text-secondary: #a8adb5;
    --color-text-dark: #0a0b0d;
    --color-bg: #07080a;
    --color-bg-alt: #0f1114;
    --color-brighter-bg: hsl(220 15% 7% / 72%);
    --color-input-bg: #1a1d22;
    --color-popup-bg: hsl(220 20% 3% / 82%);

    --color-primary: #41C4C3;
    --color-primary-soft: #6BDAD9;
    --color-primary-deep: #1A8C8B;
    --color-primary-hover: #ffffff;
    --color-primary-text: var(--color-text-dark);
    --color-primary-text-hover: var(--color-primary-text);
    --color-primary-glow: 65 196 195;

    --color-accent: #FF8FA8;
    --color-accent-soft: #5A1F2E;

    --color-secondary: #d4d7dc;
    --color-secondary-hover: #ffffff;
    --color-secondary-text: var(--color-text-dark);
    --color-secondary-text-hover: var(--color-secondary-text);
    --color-tertiary: transparent;
    --color-tertiary-hover: rgb(255 255 255 / 10%);
    --color-tertiary-text: var(--color-text);
    --color-tertiary-text-hover: var(--color-text-darker);
    --color-removed: #E84B63;
    --color-border: hsl(220 15% 18% / 1);
    --color-border-soft: hsl(220 15% 22% / 0.6);

    --shadow-xs: 0 1px 2px hsl(0 0% 0% / 0.5);
    --shadow-sm: 0 2px 8px -2px hsl(0 0% 0% / 0.5), 0 1px 2px hsl(0 0% 0% / 0.4);
    --shadow-md: 0 8px 24px -4px hsl(0 0% 0% / 0.55), 0 2px 6px -2px hsl(0 0% 0% / 0.4);
    --shadow-lg: 0 24px 48px -12px hsl(0 0% 0% / 0.7), 0 8px 16px -6px hsl(0 0% 0% / 0.5);
    --shadow-xl: 0 40px 80px -20px hsl(0 0% 0% / 0.8);
    --shadow-glow: 0 10px 40px -8px rgb(var(--color-primary-glow) / 0.45);
    --shadow-inner: inset 0 1px 0 hsl(0 0% 100% / 0.05);
  }
}

:root.color-scheme-dark {
  --color-text: #f5f5f7;
  --color-text-darker: #ffffff;
  --color-text-secondary: #a8adb5;
  --color-text-dark: #0a0b0d;
  --color-bg: #07080a;
  --color-bg-alt: #0f1114;
  --color-brighter-bg: hsl(220 15% 7% / 72%);
  --color-input-bg: #1a1d22;
  --color-popup-bg: hsl(220 20% 3% / 82%);

  --color-primary: #41C4C3;
  --color-primary-soft: #6BDAD9;
  --color-primary-deep: #1A8C8B;
  --color-primary-hover: #ffffff;
  --color-primary-text: var(--color-text-dark);
  --color-primary-text-hover: var(--color-primary-text);
  --color-primary-glow: 65 196 195;

  --color-accent: #FF8FA8;
  --color-accent-soft: #5A1F2E;

  --color-secondary: #d4d7dc;
  --color-secondary-hover: #ffffff;
  --color-secondary-text: var(--color-text-dark);
  --color-secondary-text-hover: var(--color-secondary-text);
  --color-tertiary: transparent;
  --color-tertiary-hover: rgb(255 255 255 / 10%);
  --color-tertiary-text: var(--color-text);
  --color-tertiary-text-hover: var(--color-text-darker);
  --color-removed: #E84B63;
  --color-border: hsl(220 15% 18% / 1);
  --color-border-soft: hsl(220 15% 22% / 0.6);

  --shadow-xs: 0 1px 2px hsl(0 0% 0% / 0.5);
  --shadow-sm: 0 2px 8px -2px hsl(0 0% 0% / 0.5), 0 1px 2px hsl(0 0% 0% / 0.4);
  --shadow-md: 0 8px 24px -4px hsl(0 0% 0% / 0.55), 0 2px 6px -2px hsl(0 0% 0% / 0.4);
  --shadow-lg: 0 24px 48px -12px hsl(0 0% 0% / 0.7), 0 8px 16px -6px hsl(0 0% 0% / 0.5);
  --shadow-xl: 0 40px 80px -20px hsl(0 0% 0% / 0.8);
  --shadow-glow: 0 10px 40px -8px rgb(var(--color-primary-glow) / 0.45);
  --shadow-inner: inset 0 1px 0 hsl(0 0% 100% / 0.05);
}

/* ---------- Reset ---------- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: none;
  outline: none;
  vertical-align: baseline;
  color: inherit;
  background: transparent;
  font-size: inherit;
  font-family: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

strong,
b {
  font-weight: 700;
}

em,
i {
  font-style: italic;
}

input[type=submit],
button {
  appearance: none;
  cursor: pointer;
  text-align: left;
}

textarea {
  resize: none;
}

symbol,
use,
svg {
  overflow: visible;
}

svg,
img {
  display: block;
}

li {
  display: block;
}

button {
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

:root *[hidden] {
  display: none;
}

:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
  border-radius: 4px;
}

::placeholder {
  color: inherit;
  opacity: 0.55;
}

/* ---------- Page transitions ---------- */
/* Disabled: cross-fade caused header to "blink" between pages because
   Discord/Currency injections, the dark-mode hide rule and other DOM
   tweaks made the old/new snapshots differ slightly. Instant nav. */
@view-transition {
  navigation: none;
}
::view-transition-group(root) {
  animation-duration: var(--page-transition-duration);
  animation-timing-function: var(--ease-out-expo);
}

@keyframes pageMoveOut {
  0% { opacity: 1; transform: translateY(0); }
  50%, 100% { opacity: 0; transform: translateY(-6px); }
}
@keyframes pageMoveIn {
  0%, 40% { scale: 0.985; opacity: 0; transform: translateY(10px); }
  100% { scale: 1; opacity: 1; transform: translateY(0); }
}
::view-transition-old(siteContent) {
  animation: var(--page-transition-duration) var(--ease-out-expo) both pageMoveOut;
  transform-origin: center top;
}
::view-transition-new(siteContent) {
  animation: var(--page-transition-duration) var(--ease-out-expo) both pageMoveIn;
  transform-origin: center top;
}
::view-transition-group(siteContent) { z-index: 2; }
::view-transition-group(siteHeaderTop),
::view-transition-group(siteHeader),
::view-transition-group(siteNavigation),
::view-transition-group(siteBgImage),
::view-transition-group(siteFooter) {
  animation-duration: var(--page-transition-duration);
  animation-timing-function: var(--ease-out-expo);
  z-index: 3;
}
::view-transition-group(siteBgImage) { z-index: 1; }

/* ---------- Stop the header from "flashing" during navigation ----------
   The default View Transitions cross-fade is visible whenever the new
   page's header DOM differs slightly from the old one (Discord/currency
   injections, dark-mode button getting hidden, etc.). Killing the
   animation makes the header look perfectly stable across navigations. */
::view-transition-old(siteHeaderTop),
::view-transition-new(siteHeaderTop),
::view-transition-old(siteHeader),
::view-transition-new(siteHeader),
::view-transition-old(siteNavigation),
::view-transition-new(siteNavigation) {
  animation: none !important;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
}
::view-transition-group(siteHeaderTop),
::view-transition-group(siteHeader),
::view-transition-group(siteNavigation) {
  animation: none !important;
}

/* ---------- Base ---------- */
html,
body {
  min-height: 100vh;
  min-height: 100svh;
}

html {
  overflow: hidden scroll;
  scrollbar-width: thin;
  /* Use the site's purple brand colors instead of the default teal. */
  scrollbar-color: #c25bd6 transparent;
  scrollbar-gutter: stable;
  scroll-behavior: smooth;
  color-scheme: light dark;
}
html::-webkit-scrollbar { width: 10px; }
html::-webkit-scrollbar-track { background: transparent; }
html::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #c25bd6 0%, #884bf5 100%);
  border-radius: 8px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
html::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #d273e3 0%, #9b65f7 100%);
  background-clip: padding-box;
  border: 2px solid transparent;
}
html.no-scroll { overflow: hidden; }

@media (prefers-color-scheme: dark) {
  html.color-scheme-auto { color-scheme: only dark; }
}
html.color-scheme-dark { color-scheme: only dark; }

body {
  position: relative;
  max-width: 100%;
  width: 100%;
  line-height: normal;
  color: var(--color-text);
  accent-color: var(--color-primary);
  background-color: var(--color-bg);
  background-image:
    radial-gradient(1200px 600px at 10% -10%, rgb(from var(--color-primary) r g b / 0.08), transparent 60%),
    radial-gradient(900px 500px at 95% 10%, rgb(from var(--color-accent) r g b / 0.05), transparent 55%);
  background-attachment: fixed;
  font-family: var(--font-body);
  font-size: 16px;
  font-optical-sizing: auto;
  letter-spacing: -0.005em;
}

/* Subtle grain overlay */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 999;
  opacity: 0.035;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

::selection {
  color: var(--color-text-dark);
  background-color: var(--color-primary);
  text-shadow: none;
}

select option {
  color: var(--color-text);
  background-color: var(--color-bg);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.15;
}

.text-content {
  line-height: 1.55;
  word-wrap: break-word;
  word-break: break-word;
}
.text-content h1,
.text-content h2,
.text-content h3,
.text-content h4,
.text-content h5,
.text-content h6 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.03em;
}
.text-content h1:not(:last-child),
.text-content h2:not(:last-child),
.text-content h3:not(:last-child),
.text-content h4:not(:last-child),
.text-content h5:not(:last-child),
.text-content h6:not(:last-child) {
  margin-bottom: 24px;
}
.text-content p:not(:last-child) { margin-bottom: 14px; }
.text-content h1 { font-size: 36px; }
@media (width > 600px) { .text-content h1 { font-size: 44px; } }
.text-content h2 { font-size: 30px; }
@media (width > 600px) { .text-content h2 { font-size: 34px; } }
.text-content h3 { font-size: 22px; }
@media (width > 600px) { .text-content h3 { font-size: 26px; } }
.text-content h4 { font-size: 18px; }
@media (width > 600px) { .text-content h4 { font-size: 22px; } }
.text-content img {
  display: inline-block;
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-md);
}
.text-content ol, .text-content ul { margin-left: 1.25em; }
.text-content ol:not(:last-child), .text-content ul:not(:last-child) { margin-bottom: 14px; }
.text-content li { display: list-item; }
.text-content a {
  color: var(--color-primary-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color 0.2s var(--ease-out-smooth);
}
.text-content a:hover { color: var(--color-primary); }

/* ---------- Buttons ---------- */
.btn-primary,
.btn-secondary,
.btn-tertiary {
  display: block;
  width: fit-content;
  height: var(--btn-size);
  padding: 0 14px;
  line-height: var(--btn-size);
  color: var(--btn-color-text);
  background-color: var(--btn-color-bg);
  border-radius: var(--radius-md);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.005em;
  text-align: center;
  cursor: pointer;
  transition: all 0.25s var(--ease-out-smooth);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  position: relative;
  isolation: isolate;
}
@media (width > 960px) {
  .btn-primary,
  .btn-secondary,
  .btn-tertiary { padding: 0 18px; }
}

.btn-primary:disabled,
.btn-secondary:disabled,
.btn-tertiary:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  filter: grayscale(0.4);
}

.btn-primary:hover:not(:disabled),
.btn-secondary:hover:not(:disabled),
.btn-tertiary:hover:not(:disabled),
.btn-primary:focus-visible,
.btn-secondary:focus-visible,
.btn-tertiary:focus-visible {
  color: var(--btn-color-text-hover);
  background-color: var(--btn-color-bg-hover);
  transform: translateY(-1px);
}
.btn-primary:active:not(:disabled),
.btn-secondary:active:not(:disabled),
.btn-tertiary:active:not(:disabled) {
  transform: translateY(0);
  transition-duration: 0.1s;
}

.btn-primary.btn-small,
.btn-secondary.btn-small,
.btn-tertiary.btn-small {
  --btn-size: var(--btn-size-small);
  padding: 0 10px;
  font-size: 12px;
}
@media (width > 960px) {
  .btn-primary.btn-small,
  .btn-secondary.btn-small,
  .btn-tertiary.btn-small { padding: 0 12px; }
}
.btn-primary.btn-xsmall,
.btn-secondary.btn-xsmall,
.btn-tertiary.btn-xsmall {
  --btn-size: var(--btn-size-xsmall);
  padding: 0 8px;
  font-size: 11px;
  letter-spacing: 0;
}
@media (width > 960px) {
  .btn-primary.btn-xsmall,
  .btn-secondary.btn-xsmall,
  .btn-tertiary.btn-xsmall { padding: 0 12px; }
}

.btn-primary {
  --btn-color-text: var(--color-primary-text);
  --btn-color-bg: var(--color-primary);
  --btn-color-text-hover: var(--color-primary-text-hover);
  --btn-color-bg-hover: var(--color-primary-hover);
  background-image: var(--color-primary-gradient);
  box-shadow: var(--shadow-sm), inset 0 1px 0 rgb(255 255 255 / 0.18);
  font-weight: 700;
}
.btn-primary::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 30%, rgb(255 255 255 / 0.25) 50%, transparent 70%);
  transform: translateX(-120%);
  transition: transform 0.7s var(--ease-out-expo);
  pointer-events: none;
  z-index: -1;
}
.btn-primary:hover:not(:disabled) {
  box-shadow: var(--shadow-md), var(--shadow-glow), inset 0 1px 0 rgb(255 255 255 / 0.22);
  background-image: none;
}
.btn-primary:hover:not(:disabled)::before { transform: translateX(120%); }

.btn-secondary {
  --btn-color-text: var(--color-secondary-text);
  --btn-color-bg: var(--color-secondary);
  --btn-color-text-hover: var(--color-secondary-text-hover);
  --btn-color-bg-hover: var(--color-secondary-hover);
  box-shadow: var(--shadow-xs);
}
.btn-secondary:hover:not(:disabled) { box-shadow: var(--shadow-sm); }

.btn-tertiary {
  --btn-color-text: var(--color-tertiary-text);
  --btn-color-bg: var(--color-tertiary);
  --btn-color-text-hover: var(--color-tertiary-text-hover);
  --btn-color-bg-hover: var(--color-tertiary-hover);
}

.btn-icon,
.btn-icon-text,
.btn-glyph,
.btn-glyph-text {
  --btn-icon: url("https://template-assets.tebex.io/images/check.svg");
}

.btn-icon {
  position: relative;
  flex: none;
  width: var(--btn-size);
  height: var(--btn-size);
  padding: 0;
  background-image: var(--btn-icon);
  background-position: center center;
  background-size: var(--btn-icon-size);
  background-repeat: no-repeat;
}
:root .btn-icon {
  line-height: 0;
  font-size: 0;
  color: transparent;
}

.btn-icon-text {
  display: flex;
  align-items: center;
  min-width: var(--btn-size);
}
.btn-icon-text::before {
  content: "";
  display: block;
  margin-right: 10px;
  width: var(--btn-icon-size);
  height: var(--btn-icon-size);
  flex: none;
  background: var(--btn-icon) center center/contain no-repeat;
}

.btn-glyph::before,
.btn-glyph-text::before {
  content: "";
  display: block;
  width: var(--btn-icon-size);
  height: var(--btn-icon-size);
  flex: none;
  background-color: var(--btn-color-text);
  mask: var(--btn-icon) center center/contain no-repeat;
  transition: background-color 0.25s var(--ease-out-smooth), transform 0.3s var(--ease-out-smooth);
}
.btn-glyph:hover::before, .btn-glyph:focus::before,
.btn-glyph-text:hover::before, .btn-glyph-text:focus::before {
  background-color: var(--btn-color-text-hover);
  transform: scale(1.08);
}

.btn-glyph {
  position: relative;
  flex: none;
  width: var(--btn-size);
  height: var(--btn-size);
}
:root .btn-glyph {
  padding: 0;
  line-height: 0;
  font-size: 0;
  color: transparent;
}
.btn-glyph::before {
  position: absolute;
  inset: 0;
  margin: auto;
}

.btn-glyph-text {
  display: flex;
  align-items: center;
  min-width: var(--btn-size);
  height: var(--btn-size);
}
.btn-glyph-text::before { margin-right: 10px; }

.link-text {
  color: var(--color-text-darker);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.2s var(--ease-out-smooth);
}
.link-text:hover { color: var(--color-primary); }

/* ---------- Quantity field ---------- */
.quantity-field {
  display: flex;
  align-items: stretch;
  justify-content: center;
  height: 38px;
  overflow: hidden;
  color: var(--color-text);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-xs);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.quantity-field:hover {
  border-color: rgb(from var(--color-primary) r g b / 0.4);
  box-shadow: var(--shadow-sm);
}
.quantity-field input[type=number] {
  position: relative;
  z-index: 1;
  flex: none;
  -moz-appearance: textfield;
  appearance: textfield;
  width: 44px;
  height: 100%;
  font-size: 15px;
  font-weight: 600;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.quantity-field input[type=number]::-webkit-inner-spin-button,
.quantity-field input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.quantity-field.with-open-basket input[type=number] {
  margin-left: calc((44px - 2ch) * -1);
  margin-right: 0.25em;
  order: 1;
  text-align: right;
  transition: color 0.2s var(--ease-out-smooth);
}
.quantity-field .open-basket {
  margin-right: 6px;
  width: fit-content;
  height: 100%;
  order: 2;
  font-size: 15px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 0.2s var(--ease-out-smooth);
}
.quantity-field .open-basket:focus,
.quantity-field .open-basket:hover { color: var(--color-primary); }
.quantity-field .open-basket:focus ~ input[type=number],
.quantity-field .open-basket:hover ~ input[type=number] { color: var(--color-primary); }

.quantity-field .adjust {
  position: relative;
  z-index: 2;
  flex: none;
  width: 36px;
  height: 100%;
  padding: 0;
  line-height: 0;
  font-size: 0;
  color: transparent;
  transition: background-color 0.2s;
}
.quantity-field .adjust:hover {
  background-color: rgb(from var(--color-primary) r g b / 0.1);
}
.quantity-field .adjust.decrease { margin-right: auto; order: -1; }
.quantity-field .adjust.increase { margin-left: auto; order: 100; }
.quantity-field .adjust::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: var(--color-text);
  mask: url("https://template-assets.tebex.io/images/plus.svg") no-repeat center center;
  mask-size: 10px;
  transition: background-color 0.2s;
}
.quantity-field .adjust:hover::before { background-color: var(--color-primary); }
.quantity-field .adjust.decrease::before {
  mask-image: url("https://template-assets.tebex.io/images/minus.svg");
}

/* ---------- Responsive helpers ---------- */
@media (width > 960px) { .mobile-only { display: none; } }
@media (width <= 960px) { .desktop-only { display: none; } }

/* ---------- Site layout ---------- */
.site {
  position: relative;
  display: flex;
  align-items: stretch;
  gap: var(--layout-gap);
  flex-direction: column;
  min-height: calc(100vh - var(--tebex-footer-height));
  min-height: calc(100svh - var(--tebex-footer-height));
  font-size: 14px;
}

.site-bg-image {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: -1;
  margin: 0 auto;
  height: auto;
  width: 100%;
  min-height: 50vh;
  max-height: 100vh;
  min-height: 50svh;
  max-height: 100svh;
  object-fit: cover;
  object-position: center 0;
  mask: linear-gradient(
    rgba(0, 0, 0, 0.3) 0,
    rgba(0, 0, 0, 0.55) var(--btn-size),
    rgba(0, 0, 0, 0.4) 40%,
    transparent 100%
  );
  view-transition-name: siteBgImage;
  pointer-events: none;
}

.site-header-top,
.site-header,
.site-navigation,
.site-content,
.site-footer { width: 100%; flex: none; }
.site-content { flex: 1 0 auto; view-transition-name: siteContent; }

.site-header-top,
.site-header,
.site-content,
.site-footer-inner {
  margin: 0 auto;
  padding: 0 var(--content-padding);
  width: 100%;
}
@media (width > 960px) {
  .site-header-top,
  .site-header,
  .site-content,
  .site-footer-inner { max-width: var(--content-width); }
}

/* ---------- Top bar ---------- */
.site-header-top {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  margin-bottom: calc(var(--layout-gap) * -1);
  width: 100%;
  min-height: var(--btn-size);
  view-transition-name: siteHeaderTop;
}
body.is-logo-centered.is-header-visible .site-header-top { margin-bottom: 0; }

@media (width <= 960px) {
  .site-header-top {
    position: sticky;
    top: 0;
    z-index: 100;
    background-color: var(--color-brighter-bg);
    backdrop-filter: var(--bg-blur);
    box-shadow: 0 1px 0 var(--color-border-soft);
  }
}
@media (width > 960px) {
  .site-header-top { justify-content: flex-end; }
}

.site-header-top .site-title {
  position: absolute;
  inset: 0;
  margin: auto;
  max-width: calc(100% - 32px - var(--btn-size-xsmall) * 4 - var(--content-padding) * 2);
  width: fit-content;
  height: fit-content;
  line-height: 24px;
  font-size: 17px;
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-align: center;
  text-box: trim-both cap alphabetic;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-header-top .site-title img { max-width: 100%; max-height: 28px; }

@media (width <= 960px) {
  .site-header-top .btn-glyph-text { color: transparent; font-size: 0; }
  .site-header-top .btn-glyph-text::before { margin-right: 0; }
}

.site-header-top .toggle-navigation { --btn-icon: url("https://template-assets.tebex.io/images/burger.svg"); }
.site-header-top .site-link { --btn-icon: url("https://template-assets.tebex.io/images/globe.svg"); }
.site-header-top .color-scheme {
  --btn-icon: url("https://template-assets.tebex.io/images/sun.svg");
  --btn-icon-size: 15px;
}
@media (prefers-color-scheme: dark) {
  :root.color-scheme-auto .site-header-top .color-scheme { --btn-icon: url("https://template-assets.tebex.io/images/moon.svg"); }
}
:root.color-scheme-dark .site-header-top .color-scheme { --btn-icon: url("https://template-assets.tebex.io/images/moon.svg"); }

.site-header-top .log-in {
  --btn-icon: url("https://template-assets.tebex.io/images/user.svg");
  margin-left: auto;
}
.site-header-top .open-basket { --btn-icon: url("https://template-assets.tebex.io/images/checkout.svg"); }
.site-header-top .user-name {
  --btn-icon: url("https://template-assets.tebex.io/images/log-out.svg");
  margin-left: auto;
  contain: paint;
}
@media (width > 960px) {
  .site-header-top .user-name { --btn-icon: url("https://template-assets.tebex.io/images/user.svg"); }
}
.site-header-top .user-name .text,
.site-header-top .user-name .text-hover {
  transition: opacity 0.2s ease, font-size 0.2s ease, visibility 0.2s ease;
}
.site-header-top .user-name:not(:hover):not(:focus-within) .text-hover {
  visibility: hidden;
  color: transparent;
  font-size: 0;
}
.site-header-top .user-name:hover .text,
.site-header-top .user-name:focus-within .text {
  visibility: hidden;
  opacity: 0;
  font-size: 0;
}

/* ---------- Hero header ---------- */
.site-header {
  position: relative;
  align-content: center;
  view-transition-name: siteHeader;
}
@media (width <= 960px) { .site-header { padding: 0; } }
body.no-hero.is-logo-centered .site-header { min-height: 80px; }
@media (width > 960px) {
  body.has-hero .site-header { min-height: var(--header-height); }
}

.site-header .site-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  width: 100%;
}
@media (width > 960px) { .site-header .site-actions { gap: 8px; } }

.site-header .site-title {
  font-family: var(--font-display);
  line-height: 1.05;
  font-size: 40px;
  font-weight: 900;
  letter-spacing: -0.035em;
  text-box: trim-both cap alphabetic;
}
body.has-hero .site-header .site-title { color: var(--color-text-dark); }
@media (width > 960px) {
  .site-header .site-title { font-size: 68px; line-height: 1.02; }
}
.site-header .site-title img { max-width: 500px; max-height: 60px; }

body.is-logo-centered .site-header .site-title {
  margin: auto;
  width: fit-content;
  height: fit-content;
  text-align: center;
}
body.is-logo-centered .site-header .site-title img { max-height: 128px; }
body.is-logo-centered.has-hero .site-header .site-title {
  position: absolute;
  inset: 0;
  filter:
    drop-shadow(0 2px 8px hsla(0, 0%, 0%, 0.45))
    drop-shadow(0 12px 28px hsla(0, 0%, 0%, 0.35));
}
@media (prefers-color-scheme: dark) {
  :root.color-scheme-auto body.is-logo-centered.has-hero .site-header .site-title {
    color: var(--color-text);
    filter: drop-shadow(0 2px 8px hsl(from var(--color-bg) h s l/50%)) drop-shadow(0 12px 28px hsl(from var(--color-bg) h s l/50%));
  }
}
:root.color-scheme-dark body.is-logo-centered.has-hero .site-header .site-title {
  color: var(--color-text);
  filter: drop-shadow(0 2px 8px hsl(from var(--color-bg) h s l/50%)) drop-shadow(0 12px 28px hsl(from var(--color-bg) h s l/50%));
}

.site-header .hero-image {
  margin: auto;
  width: 100%;
  height: auto;
  max-height: var(--header-height);
  object-fit: cover;
  box-shadow: var(--shadow-lg);
}
@media (width > 960px) { .site-header .hero-image { border-radius: var(--radius-lg); } }

/* ---------- Navigation ---------- */
.site-navigation {
  --fade-duration: 250ms;
  view-transition-name: siteNavigation;
}

@media (width <= 960px) {
  .site-navigation {
    position: fixed;
    inset: 0;
    z-index: 100000;
    padding: 0;
    backdrop-filter: var(--bg-blur);
    transition: display var(--fade-duration) allow-discrete, backdrop-filter var(--fade-duration), opacity var(--fade-duration) ease;
  }
  @starting-style { .site-navigation { opacity: 0; } }
  body:not(.show-navigation) .site-navigation { display: none; opacity: 0; }
  .site-navigation.drawer { user-select: none; }
  .site-navigation.may-close { backdrop-filter: none; }
  .site-navigation .menu {
    display: flex;
    flex-direction: column;
    position: absolute;
    inset: 0 calc(var(--btn-size) * 2) 0 0;
    padding: 72px var(--widget-padding) var(--widget-padding);
    line-height: 28px;
    font-size: 19px;
    font-weight: 500;
    background: rgb(from var(--color-bg) r g b / 0.97);
    box-shadow: 0 0 50px rgba(0, 0, 0, 0.25);
    overflow: hidden auto;
    scrollbar-width: thin;
    scrollbar-color: var(--color-primary) transparent;
    transition:
      opacity var(--fade-duration) ease,
      scale var(--fade-duration) ease,
      translate var(--fade-duration) var(--ease-out-expo);
  }
  @starting-style { .site-navigation .menu { translate: -100% 0; } }
  .site-navigation.drawer .menu::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 7px;
    margin: auto;
    width: 4px;
    height: 100px;
    background: rgb(from var(--color-text-secondary) r g b/0.33);
    border-radius: 2px;
    pointer-events: none;
  }
  body:not(.show-navigation) .site-navigation .menu { translate: -100% 0; }
  .site-navigation.touching .menu {
    transition: opacity var(--fade-duration) ease, scale var(--fade-duration) ease;
  }
  body:not(.show-navigation) .site-navigation .menu,
  .site-navigation.may-close .menu { opacity: 0.8; scale: 0.95; }
  .site-navigation.may-close .menu { border-radius: var(--radius-md); }
  .site-navigation .popup-close {
    --btn-icon: url("https://template-assets.tebex.io/images/close.svg");
    top: 12px;
    right: calc(var(--btn-size) * 2 + 12px);
  }
  .site-navigation.touching .popup-close {
    opacity: 0;
    visibility: hidden;
    transition-duration: 100ms;
  }
  .site-navigation .menu-sub {
    width: 100%;
    padding-left: var(--widget-padding);
    line-height: 22px;
    font-size: 16px;
  }
  .site-navigation .menu-item { position: relative; width: 100%; }
  .site-navigation .has-children {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .site-navigation .has-children .toggle {
    --btn-icon: url("https://template-assets.tebex.io/images/chevron.svg");
    flex: none;
  }
  .site-navigation .has-children .toggle::before {
    transition: rotate 0.25s var(--ease-out-smooth);
  }
  .site-navigation .has-children.expanded > .toggle::before { rotate: 180deg; }
  .site-navigation .has-children:not(.expanded) .menu-sub { display: none; }
  .site-navigation .menu-link {
    display: block;
    flex: 1 1 auto;
    padding: 11px 0;
    transition: color 0.2s var(--ease-out-smooth);
  }
  .site-navigation .menu-link:hover { color: var(--color-primary); }
  .site-navigation .menu-link.active {
    color: var(--color-primary);
    font-weight: 700;
  }
  .site-navigation .menu-sub .menu-link { padding: 8px 0; }
  .site-navigation .site-link,
  .site-navigation .log-out { margin-top: auto; margin-left: -8px; }
  .site-navigation .site-link a,
  .site-navigation .log-out a {
    --btn-icon: url("https://template-assets.tebex.io/images/globe.svg");
    width: 100%;
  }
  .site-navigation .log-out a { --btn-icon: url("https://template-assets.tebex.io/images/log-out.svg"); }
  .site-navigation .site-link + .log-out { margin-top: 0; }
}

@media (width > 960px) {
  .site-navigation {
    position: sticky;
    top: -1px;
    z-index: 100;
    transition: background-color 0.25s ease, box-shadow 0.25s ease;
  }
  .site-navigation.stuck {
    background-color: var(--color-brighter-bg);
    backdrop-filter: var(--bg-blur-strong);
    box-shadow: 0 1px 0 var(--color-border-soft), var(--shadow-sm);
  }
  .site-navigation .menu {
    display: flex;
    align-items: center;
    gap: var(--widget-padding);
    margin-inline: auto;
    padding-block: var(--content-padding);
    width: 100%;
    max-width: var(--content-inner-width);
    min-height: var(--btn-size);
    padding: calc(var(--widget-padding) * 0.75) var(--widget-padding);
    line-height: var(--btn-size);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: -0.005em;
    text-align: center;
  }
  .site-navigation:not(.stuck) .menu {
    background-color: var(--color-brighter-bg);
    backdrop-filter: var(--bg-blur);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md), var(--shadow-inner);
    border: 1px solid var(--color-border-soft);
  }
  .site-navigation .menu > .menu-item {
    flex: 1 0 auto;
    max-width: 200px;
    position: relative;
  }
  .site-navigation .menu > .menu-item > .menu-link {
    display: block;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    max-width: 18ch;
    position: relative;
  }
  .site-navigation .menu > .menu-item > .menu-link::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 8px;
    width: 0;
    height: 2px;
    background: var(--color-primary);
    border-radius: 2px;
    transform: translateX(-50%);
    transition: width 0.3s var(--ease-out-expo);
  }
  .site-navigation .menu > .menu-item > .menu-link:hover::after,
  .site-navigation .menu > .menu-item > .menu-link.link-active::after {
    width: 20px;
  }
  .site-navigation .menu-link {
    display: block;
    transition: color 0.2s var(--ease-out-smooth);
  }
  .site-navigation .menu-link:hover,
  .site-navigation .menu-link.link-active { color: var(--color-primary); }

  .site-navigation li.site-title-link {
    flex: none;
    align-content: center;
    margin-right: var(--widget-padding);
    max-width: none;
    text-align: left;
  }
  .site-navigation .site-title {
    font-family: var(--font-display);
    font-size: 30px;
    font-weight: 800;
    letter-spacing: -0.035em;
    text-box: trim-both cap alphabetic;
  }
  @media (width > 960px) {
    .site-navigation .site-title { font-size: 34px; }
  }
  .site-navigation .site-title .menu-link {
    color: var(--color-primary);
    background: var(--color-primary-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  .site-navigation .site-title .menu-link:hover { filter: brightness(1.15); }
  .site-navigation .site-title img { max-width: 100%; max-height: var(--btn-size); border-radius: var(--radius-sm); }

  .site-navigation .has-children {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .site-navigation .has-children .toggle {
    --btn-size: 30px;
    --btn-icon: url("https://template-assets.tebex.io/images/chevron.svg");
    --btn-color-bg-hover: var(--color-tertiary);
    flex: none;
    transition: rotate 0.25s var(--ease-out-smooth);
  }
  .site-navigation .has-children:hover > .toggle { rotate: 180deg; }

  .site-navigation .menu-sub {
    position: absolute;
    top: 100%;
    left: -100px;
    right: -100px;
    margin-inline: auto;
    width: max-content;
    padding: 8px;
    background: rgb(from var(--color-bg) r g b / 0.92);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-md);
    backdrop-filter: var(--bg-blur);
    box-shadow: var(--shadow-lg);
    transition: all 0.25s var(--ease-out-smooth);
  }
  .site-navigation .has-children:not(:hover) > .menu-sub {
    visibility: hidden;
    opacity: 0;
    translate: 0 -8px;
  }
  .site-navigation .menu .menu-sub {
    line-height: 22px;
    font-size: 15px;
    font-weight: 400;
  }
  .site-navigation .menu-sub .menu-link {
    width: 100%;
    max-width: 24ch;
    padding: 8px 14px;
    border-radius: var(--radius-sm);
    transition: all 0.2s var(--ease-out-smooth);
  }
  .site-navigation .menu-sub .menu-link:hover,
  .site-navigation .menu-sub .menu-link.link-active {
    color: var(--color-primary-text);
    background: var(--color-primary-gradient);
  }
}

/* ---------- Home categories ---------- */
.site-home-categories {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: var(--widget-padding);
  margin-bottom: var(--layout-gap);
}
.site-home-categories .category {
  position: relative;
  display: grid;
  grid-template-rows: 1fr;
  grid-template-columns: subgrid;
  align-items: center;
  gap: calc(var(--widget-padding) / 2);
  overflow: hidden;
  padding: var(--widget-padding);
  line-height: 1.25;
  background: var(--color-brighter-bg);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  backdrop-filter: var(--bg-blur);
  box-shadow: var(--shadow-sm);
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.02em;
  isolation: isolate;
  transition:
    transform 0.4s var(--ease-out-expo),
    box-shadow 0.4s var(--ease-out-expo),
    border-color 0.3s ease,
    color 0.3s ease;
}
.site-home-categories .category::before {
  content: "";
  position: absolute;
  inset: auto -20% -60% auto;
  width: 180%;
  height: 140%;
  background: radial-gradient(circle at center, rgb(from var(--color-primary) r g b / 0.35), transparent 60%);
  opacity: 0;
  z-index: -1;
  transition: opacity 0.4s ease;
}
@media (width > 600px) {
  .site-home-categories .category {
    gap: var(--widget-padding);
    padding-block: 22px;
    line-height: 1.25;
    font-size: 21px;
    text-align: center;
  }
}
.site-home-categories .category:hover {
  transform: translateY(-4px);
  color: var(--color-primary-deep);
  border-color: rgb(from var(--color-primary) r g b / 0.4);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
}
.site-home-categories .category:hover::before { opacity: 1; }

.site-home-categories .category .image {
  max-width: 100%;
  width: auto;
  max-height: 100%;
  object-fit: contain;
  border-radius: var(--radius-md);
  transition: transform 0.5s var(--ease-out-expo);
}
.site-home-categories .category:hover .image { transform: scale(1.08); }

@media (width > 600px) {
  .site-home-categories .category .image { margin: auto; }
}
.site-home-categories .category .image-default {
  position: relative;
  width: min(100px, 100%);
  aspect-ratio: 1;
}
.site-home-categories .category .image-default::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background-color: rgb(from var(--color-text) r g b / 0.7);
  mask: url("https://template-assets.tebex.io/images/package-default.svg") center center/contain no-repeat;
  transition: background-color 0.3s ease;
}
.site-home-categories .category:hover .image-default::before { background-color: var(--color-primary); }

/* ---------- Store text / forms ---------- */
.store-text {
  margin-inline: auto;
  width: min(100%, 62ch);
  line-height: 1.55;
  font-size: 16px;
  font-weight: 400;
  color: var(--color-text-secondary);
}
.store-home .store-text { margin-bottom: var(--content-padding); }
.store-home { display: none !important; }
#shop { display: none !important; }

/* Hide Tebex's auto-generated category nav entries that overlap with
   our manually-created Pages (/scripts, /bundles, /subscription,
   /gift-cards). Applied by CSS so there's no flash of duplicates while
   the nav-cleanup JS is still mounting. */
.site-navigation .menu-item:has(> a[href*="/category/scripts" i]),
.site-navigation .menu-item:has(> a[href*="/category/bundle" i]),
.site-navigation .menu-item:has(> a[href*="/category/subscription" i]),
.site-navigation .menu-item:has(> a[href*="/category/gift" i]),
.site-navigation li:has(> a[href*="/category/scripts" i]),
.site-navigation li:has(> a[href*="/category/bundle" i]),
.site-navigation li:has(> a[href*="/category/subscription" i]),
.site-navigation li:has(> a[href*="/category/gift" i]),
nav .menu-item:has(> a[href*="/category/scripts" i]),
nav .menu-item:has(> a[href*="/category/bundle" i]),
nav .menu-item:has(> a[href*="/category/subscription" i]),
nav .menu-item:has(> a[href*="/category/gift" i]) {
  display: none !important;
}

/* Products nav item — no dropdown, no bullet/tick pseudo-element.
   NOTE: Don't disable ::after on the <a>, that's the hover-underline. */
.products-flat {
  list-style: none !important;
}
.products-flat::before,
.products-flat::after {
  display: none !important;
  content: none !important;
}
.products-flat ul,
.products-flat .submenu,
.products-flat .dropdown-menu,
.products-flat .menu-children,
.products-flat .toggle,
.products-flat .btn-glyph.toggle,
.products-flat .btn-tertiary.toggle,
.products-flat button.toggle {
  display: none !important;
}

.store-form { font-size: 17px; }
.store-form p { margin-bottom: 22px; }
.store-form .input-group,
.store-form .field,
.store-form .field-inline { margin-bottom: 22px; }
.store-form .input-group > p,
.store-form .field > p,
.store-form .field-inline > p { margin-bottom: 10px; font-weight: 500; }
.store-form .field-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 12px;
}
@media (width > 600px) { .store-form .field-inline { gap: 0 24px; } }

.store-form input,
.store-form select,
.store-form textarea { display: block; }

.store-form input[type=text],
.store-form input[type=password],
.store-form input[type=email],
.store-form input[type=number],
.store-form input[type=search],
.store-form input[type=url],
.store-form input[type=tel],
.store-form input[type=date],
.store-form input[type=time],
.store-form input[type=datetime-local],
.store-form input[type=file],
.store-form input[type=month],
.store-form input[type=week],
.store-form select,
.store-form textarea {
  margin-bottom: 10px;
  width: 100%;
  padding: 14px 16px;
  color: var(--color-text-darker);
  background: var(--color-input-bg);
  font-size: 14px;
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  transition: border-color 0.2s, background-color 0.2s, box-shadow 0.2s;
}
.store-form input:focus,
.store-form select:focus,
.store-form textarea:focus {
  border-color: var(--color-primary);
  background: var(--color-bg);
  box-shadow: 0 0 0 4px rgb(from var(--color-primary) r g b / 0.12);
}
@media (width > 960px) {
  .store-form input[type=text],
  .store-form input[type=password],
  .store-form input[type=email],
  .store-form input[type=number],
  .store-form input[type=search],
  .store-form input[type=url],
  .store-form input[type=tel],
  .store-form input[type=date],
  .store-form input[type=time],
  .store-form input[type=datetime-local],
  .store-form input[type=file],
  .store-form input[type=month],
  .store-form input[type=week],
  .store-form select,
  .store-form textarea { padding: 14px 16px; font-size: 15px; }
}
.store-form .field-inline input,
.store-form .field-inline select,
.store-form .field-inline textarea { width: auto; }

.store-form .actions {
  display: flex;
  justify-content: center;
  gap: 12px;
}
.store-form .actions .link-text {
  align-self: center;
  font-size: 17px;
  font-weight: 700;
  margin: 0 16px;
}

/* ---------- Content layout ---------- */
@media (width <= 960px) {
  .site-content-widgets { display: flex; flex-direction: column; gap: 24px; }
}
@media (width > 960px) {
  body:not(.is-sidebar-bottom) .site-content-widgets {
    display: grid;
    align-items: start;
    gap: 40px;
  }
  body.is-sidebar-left .site-content-widgets {
    grid-template-columns: var(--sidebar-width) 1fr;
  }
  body.is-sidebar-left .site-content-widgets .store-sidebar { order: -1; }
  body.is-sidebar-right .site-content-widgets {
    grid-template-columns: 1fr var(--sidebar-width);
  }
}

.category-header {
  margin-bottom: var(--widget-padding);
  line-height: 1.5;
  font-size: 17px;
  color: var(--color-text-secondary);
}

.no-products {
  padding: 48px 24px;
  background: var(--color-brighter-bg);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-lg);
  font-size: 17px;
  text-align: center;
  color: var(--color-text-secondary);
}

.store-products-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.store-products-images {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--products-gap);
}

/* ---------- Store product (card) ---------- */
.store-product {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.store-product .product-title {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.2;
}
.store-product .product-title a {
  color: inherit;
  transition: color 0.2s var(--ease-out-smooth);
}
.store-product .product-title a:hover { color: var(--color-primary); }

.store-product .product-title .countdown {
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  padding: 4px 10px;
  background: rgb(from var(--color-removed) r g b / 0.1);
  color: var(--color-removed);
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 0.72em;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}
.store-product .product-title .countdown::before {
  content: "";
  display: inline-block;
  vertical-align: -0.15em;
  margin-right: 0.35em;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  mask: url("https://template-assets.tebex.io/images/countdown.svg") center center/contain no-repeat;
}

.store-product .image-link {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  width: fit-content;
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
}
.store-product .image-link:hover ~ .product-title a { color: var(--color-primary); }

.store-product .image {
  margin: 0 auto;
  max-width: 100%;
  border-radius: var(--radius-lg);
  transition: transform 0.5s var(--ease-out-expo);
}
.store-product .image-default {
  position: relative;
  width: min(140px, 100%);
  aspect-ratio: 1;
}
.store-product .image-default::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  margin: auto;
  background-color: rgb(from var(--color-text) r g b / 0.6);
  mask: url("https://template-assets.tebex.io/images/package-default.svg") center center/contain no-repeat;
}

.store-product .descr {
  font-size: 14px;
  line-height: 1.55;
  color: var(--color-text-secondary);
}

.store-product .actions {
  display: flex;
  gap: 10px;
  position: relative;
  overflow: hidden;
}
.store-product .actions.updating { pointer-events: none; }
.store-product .actions.updating > * { opacity: 0.3; filter: grayscale(100%); }
.store-product .actions.updating::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  z-index: 10;
  margin: auto;
  width: 30px;
  height: 30px;
  background: url("https://template-assets.tebex.io/images/loading.svg") center center no-repeat;
  background-size: contain;
}

.store-product:not(.store-product-full) .actions {
  flex-wrap: wrap;
  align-content: flex-end;
  flex: 1 1 auto;
}

.store-product .price {
  font-size: 14px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.store-product .price .discount {
  margin-right: 1ch;
  color: var(--color-removed);
  font-weight: 400;
  text-decoration-line: line-through;
  opacity: 0.75;
}
.store-product .price strong {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-primary-deep);
}
.store-product:not(.store-product-full) .price { width: 100%; }

.store-product .quantity-field {
  height: var(--btn-size);
  background: var(--color-brighter-bg);
}
.store-product .quantity-field input[type=number] { border: none; }

.store-product .half { flex: 1 1 33%; overflow: visible; }
.store-product .wide { flex: 1 1 auto; }
.store-product .gift {
  --btn-icon: url("https://template-assets.tebex.io/images/gift.svg");
  flex: none;
}
.store-product .remove {
  --btn-icon: url("https://template-assets.tebex.io/images/delete.svg");
  flex: none;
  transition: color 0.2s ease;
}
.store-product .remove:hover::before { background-color: var(--color-removed); }

/* Card grid layout (images) */
.store-products-images .store-product {
  display: grid;
  grid-template-rows: 1fr;
  grid-template-columns: subgrid;
  padding: 16px;
  background: var(--color-brighter-bg);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xs);
  transition:
    transform 0.4s var(--ease-out-expo),
    box-shadow 0.4s var(--ease-out-expo),
    border-color 0.3s ease;
}
.store-products-images .store-product:hover {
  transform: translateY(-4px);
  border-color: rgb(from var(--color-primary) r g b / 0.3);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
}
.store-products-images .store-product:hover .image { transform: scale(1.04); }
.store-products-images .store-product .image-link {
  align-content: center;
  width: 100%;
  overflow: hidden;
}
.store-products-images .store-product .descr {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
}

/* List layout */
.store-products-list .store-product {
  padding: 14px;
  background: var(--color-brighter-bg);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  transition: border-color 0.25s, box-shadow 0.25s;
}
.store-products-list .store-product:hover {
  border-color: rgb(from var(--color-primary) r g b / 0.3);
  box-shadow: var(--shadow-sm);
}
.store-products-list .store-product .image-link { margin: 0; border-radius: var(--radius-sm); }
.store-products-list .store-product .image { width: 80px; border-radius: var(--radius-sm); }

@media (width > 600px) {
  .store-products-list .store-product {
    flex-direction: row;
    align-items: center;
    gap: 12px calc(var(--widget-padding) * 0.75);
  }
  .store-products-list .store-product .product-title { margin-right: auto; }
  .store-products-list .store-product .actions {
    flex-wrap: nowrap;
    align-items: center;
    flex: 0 1 auto;
    gap: calc(var(--widget-padding) * 0.75);
  }
  .store-products-list .store-product .price { width: auto; }
  .store-products-list .store-product .half { flex: 0 1 140px; }
  .store-products-list .store-product .wide { flex: 0 1 170px; }
}

/* ---------- Media slider ---------- */
.media-slider {
  --slider-spacing: 6px;
  --thumbs-size: 40px;
  --thumb-padding: 6px;
  position: relative;
  width: 100%;
  overflow: hidden;
}
@media (width > 360px) { .media-slider { --slider-spacing: 12px; --thumbs-size: 55px; } }
@media (width > 600px) { .media-slider { --thumbs-size: 70px; } }
@media (width > 960px) { .media-slider { --thumbs-size: 90px; } }
@media (width > 1400px) { .media-slider { --thumbs-size: 110px; } }

.media-slider .slider {
  width: 100%;
  min-height: 200px;
  overflow: hidden;
  margin-bottom: var(--thumb-padding);
  border-radius: var(--radius-md);
}
.media-slider .slider::part(container) {
  --swiper-navigation-size: 24px;
  --swiper-theme-color: var(--color-text);
}
.media-slider .slider::part(wrapper) { align-items: center; }
.media-slider .slide { align-content: center; }
.media-slider .slide-image {
  margin: auto;
  max-width: 100%;
  min-height: 200px;
  max-height: 100%;
  object-fit: contain;
  border-radius: var(--radius-md);
}
.media-slider .slide-video {
  border-radius: var(--radius-md);
  background: #000 var(--preview-image) center center/cover no-repeat;
  position: relative;
}
.media-slider .slide-frame {
  display: block;
  margin: auto;
  width: 100%;
  max-height: 100%;
  aspect-ratio: 16/9;
  transition: visibility 0.3s ease-in-out, opacity 0.3s ease-in-out;
}
.media-slider .slide-frame:not(.iframe-loaded) { visibility: hidden; opacity: 0; }

.media-slider .thumbs {
  display: flex;
  gap: var(--slider-spacing);
  align-items: stretch;
  flex-wrap: wrap;
}
.store-product-full .media-slider .thumbs { justify-content: center; }
.media-slider .thumb {
  display: block;
  width: var(--thumbs-size);
  height: var(--thumbs-size);
  padding: var(--thumb-padding);
  background-color: var(--color-bg);
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.25s var(--ease-out-smooth);
}
.media-slider .thumb:hover { transform: translateY(-2px); }
.media-slider .thumb.active {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgb(from var(--color-primary) r g b / 0.2);
}
.media-slider .thumb-image,
.media-slider .thumb-youtube {
  width: calc(var(--thumbs-size) - var(--thumb-padding) * 2);
  height: calc(var(--thumbs-size) - var(--thumb-padding) * 2);
  transition: opacity 0.3s ease-in-out;
}
.media-slider .thumb:not(.active) .thumb-image,
.media-slider .thumb:not(.active) .thumb-youtube { opacity: 0.5; }
.media-slider .thumb-image { object-fit: contain; }
.media-slider .thumb-youtube {
  position: relative;
  align-content: center;
}
.media-slider .thumb-youtube img { width: 100%; height: 100%; object-fit: contain; }
.media-slider .thumb-youtube::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  margin: auto;
  width: 30px;
  height: 30px;
  background-color: #fff;
  mask: url("https://template-assets.tebex.io/images/play.svg") center center/contain no-repeat;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.5));
}

.media-slider .open-lightbox {
  position: absolute;
  top: var(--slider-spacing);
  right: var(--slider-spacing);
  z-index: 2;
  align-content: center;
  width: 42px;
  height: 42px;
  background-color: rgb(from var(--color-bg) r g b / 80%);
  backdrop-filter: blur(10px);
  border: 1px solid var(--color-border-soft);
  visibility: hidden;
  line-height: 0;
  font-size: 0;
  color: transparent;
  opacity: 0;
  border-radius: var(--radius-sm);
  transition: all 0.25s var(--ease-out-smooth);
}
.media-slider .open-lightbox:hover,
.media-slider .open-lightbox:focus { background-color: var(--color-bg); }
.media-slider .open-lightbox::before {
  content: "";
  display: block;
  margin: auto;
  width: 18px;
  height: 18px;
  flex: none;
  background-color: var(--color-tertiary-text);
  mask: url("https://template-assets.tebex.io/images/fullscreen.svg") center center/contain no-repeat;
  transition: background-color 0.2s;
}
.media-slider .open-lightbox:hover::before,
.media-slider .open-lightbox:focus::before { background-color: var(--color-primary); }
.media-slider .slider:has(.swiper-slide-active .slide-image):hover ~ .open-lightbox,
.media-slider .open-lightbox:hover { opacity: 1; visibility: visible; }

/* Lightbox popup */
.popup.popup-media-slider {
  --slider-spacing: 6px;
  --thumbs-size: 40px;
  --thumb-padding: 6px;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: minmax(0, auto) calc(var(--thumbs-size) + var(--slider-spacing));
  overflow: hidden;
  backdrop-filter: blur(14px);
}
@media (width > 360px) { .popup.popup-media-slider { --slider-spacing: 12px; --thumbs-size: 70px; } }
@media (width > 600px) { .popup.popup-media-slider { --thumbs-size: 70px; } }
@media (width > 960px) { .popup.popup-media-slider { --thumbs-size: 90px; } }
@media (width > 1400px) { .popup.popup-media-slider { --thumbs-size: 120px; } }
.popup.popup-media-slider .popup-close {
  top: var(--slider-spacing);
  right: var(--slider-spacing);
  z-index: 2;
  backdrop-filter: blur(5px);
  border-radius: var(--radius-sm);
}
.popup.popup-media-slider .slider { width: 100%; }
.popup.popup-media-slider .slider::part(container) {
  --swiper-navigation-size: 30px;
  --swiper-theme-color: var(--color-text);
}
@media (width > 600px) {
  .popup.popup-media-slider .slider::part(container) { --swiper-navigation-size: 36px; }
}
.popup.popup-media-slider .slider::part(wrapper) { align-items: center; }
.popup.popup-media-slider .slide { align-content: center; padding: var(--slider-spacing); }
.popup.popup-media-slider .slide-image {
  margin: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.popup.popup-media-slider .slide-video {
  border-radius: var(--radius-md);
  background: #000 var(--preview-image) center center/cover no-repeat;
  position: relative;
}
.popup.popup-media-slider .slide-frame {
  display: block;
  margin: auto;
  width: 100%;
  max-height: 100%;
  aspect-ratio: 16/9;
  transition: visibility 0.3s ease-in-out, opacity 0.3s ease-in-out;
}
.popup.popup-media-slider .slide-frame:not(.iframe-loaded) { visibility: hidden; opacity: 0; }
.popup.popup-media-slider .thumbs {
  display: flex;
  gap: var(--slider-spacing);
  align-items: stretch;
  flex-wrap: wrap;
  padding: 0 var(--slider-spacing) var(--slider-spacing);
}
.popup.popup-media-slider .thumb {
  display: block;
  width: var(--thumbs-size);
  height: var(--thumbs-size);
  padding: var(--thumb-padding);
  background-color: rgb(from var(--color-bg) r g b / 0.7);
  border-radius: var(--radius-sm);
  cursor: pointer;
}
.popup.popup-media-slider .thumb-image,
.popup.popup-media-slider .thumb-youtube {
  width: calc(var(--thumbs-size) - var(--thumb-padding) * 2);
  height: calc(var(--thumbs-size) - var(--thumb-padding) * 2);
  transition: opacity 0.3s ease-in-out;
}
.popup.popup-media-slider .thumb:not(.active) .thumb-image,
.popup.popup-media-slider .thumb:not(.active) .thumb-youtube { opacity: 0.5; }
.popup.popup-media-slider .thumb-image { object-fit: contain; }
.popup.popup-media-slider .thumb-youtube { position: relative; align-content: center; }
.popup.popup-media-slider .thumb-youtube img { width: 100%; height: 100%; object-fit: contain; }
.popup.popup-media-slider .thumb-youtube::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  margin: auto;
  width: 36px;
  height: 36px;
  background-color: var(--color-text);
  mask: url("https://template-assets.tebex.io/images/play.svg") center center/contain no-repeat;
}

/* ---------- Product full ---------- */
.store-product-full .image {
  margin-inline: auto;
  max-width: 100%;
  order: -1;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
}
.store-product-full .product-title {
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.1;
}
.store-product-full .price {
  width: 100%;
  font-size: 18px;
}
.store-product-full .price strong {
  font-size: 32px;
}
.store-product-full .actions { flex-wrap: wrap; gap: 12px; }
.store-product-full .wide { max-width: 240px; }

@media (width > 600px) {
  .store-product-full {
    display: grid;
    grid-template: "image title" auto "image actions" auto "image descr" 1fr / 1fr 1fr;
    gap: 24px var(--layout-gap);
  }
  .store-product-full .image,
  .store-product-full .media-slider { grid-area: image; margin-right: 0; }
  .store-product-full .product-title {
    grid-area: title;
    font-size: 40px;
    align-self: flex-end;
  }
  .store-product-full .descr {
    grid-area: descr;
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-text-secondary);
  }
  .store-product-full .actions { grid-area: actions; align-self: start; }
}

/* ---------- Back to top ---------- */
.back-to-top {
  --btn-icon: url("https://template-assets.tebex.io/images/chevron.svg");
  margin: calc(var(--widget-padding) * 2) auto;
  box-shadow: var(--shadow-md);
  transition: all 0.3s var(--ease-out-smooth);
}
.back-to-top::before { rotate: 90deg; }
.back-to-top:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }

/* ============================================================
   PRODUCT OPTIONS POPUP — minimal, matches the rest of the site
   ============================================================ */

/* Dim backdrop with blur */
.popup:has(.store-product-options) {
  background-color: rgb(6 3 16 / 0.85) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
}

/* The card — neutral dark glass, no decoration */
.popup-content.store-product-options {
  position: relative !important;
  width: min(440px, calc(100vw - 24px)) !important;
  max-width: 440px !important;
  padding: 32px 28px 24px !important;
  border-radius: 16px !important;
  border: 1px solid rgb(255 255 255 / 0.06) !important;
  background: #0a0614 !important;
  box-shadow: 0 24px 60px -12px rgb(0 0 0 / 0.8) !important;
  color: #fff !important;
}

/* Smooth entry */
@starting-style {
  :root .popup-content.store-product-options {
    transform: translateY(-10px) scale(0.96) !important;
    opacity: 0 !important;
  }
}
:root .popup-content.store-product-options {
  transition:
    transform 0.24s cubic-bezier(0.19, 1, 0.22, 1),
    opacity 0.2s !important;
}

/* CLOSE BUTTON — solid white, very visible */
.popup-content.store-product-options .popup-close {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 999px !important;
  background-color: #fff !important;
  mask-size: 11px !important;
  -webkit-mask-size: 11px !important;
  border: 0 !important;
  cursor: pointer !important;
  z-index: 10 !important;
  transition: background-color 0.2s, transform 0.25s cubic-bezier(0.19, 1, 0.22, 1) !important;
}
.popup-content.store-product-options .popup-close:hover {
  background-color: #f0b6ff !important;
  transform: rotate(90deg) !important;
}

/* Title — large, bold, like .pk-title on the package page */
.store-product-options .product-title {
  margin: 0 0 18px !important;
  padding: 0 !important;
  font: 900 22px/1.2 var(--font-display) !important;
  letter-spacing: -0.025em !important;
  color: #fff !important;
}

/* Description text */
.store-product-options p,
.store-product-options .description {
  margin: 0 0 16px !important;
  font: 400 14px/1.5 var(--font-body, system-ui) !important;
  color: rgb(255 255 255 / 0.6) !important;
}

/* Field labels */
.store-product-options label {
  display: block !important;
  font: 600 12px/1 var(--font-display) !important;
  color: rgb(255 255 255 / 0.55) !important;
  margin: 16px 0 8px !important;
}

/* Inputs — clean, slightly inset */
.store-product-options input[type="text"],
.store-product-options input[type="number"],
.store-product-options input[type="email"],
.store-product-options select,
.store-product-options textarea {
  width: 100% !important;
  padding: 12px 14px !important;
  border-radius: 10px !important;
  background: rgb(255 255 255 / 0.04) !important;
  border: 1px solid rgb(255 255 255 / 0.08) !important;
  color: #fff !important;
  font: 500 14px/1.4 var(--font-body, system-ui) !important;
  transition: border-color 0.18s, background 0.18s !important;
}
.store-product-options input:focus,
.store-product-options select:focus,
.store-product-options textarea:focus {
  outline: none !important;
  border-color: #c25bd6 !important;
  background: rgb(255 255 255 / 0.06) !important;
}
.store-product-options input::placeholder {
  color: rgb(255 255 255 / 0.3) !important;
}

/* Quantity field */
.store-product-options .quantity-field {
  display: inline-flex !important;
  align-items: center !important;
  background: rgb(255 255 255 / 0.04) !important;
  border: 1px solid rgb(255 255 255 / 0.08) !important;
  border-radius: 10px !important;
  height: 42px !important;
  overflow: hidden !important;
}
.store-product-options .quantity-field input[type="number"] {
  width: 50px !important;
  text-align: center !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font: 800 15px/1 var(--font-display) !important;
  -moz-appearance: textfield;
}
.store-product-options .quantity-field input[type="number"]::-webkit-outer-spin-button,
.store-product-options .quantity-field input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none; margin: 0;
}
.store-product-options .quantity-field button {
  width: 36px !important;
  height: 42px !important;
  background: transparent !important;
  border: 0 !important;
  color: rgb(255 255 255 / 0.6) !important;
  cursor: pointer !important;
  display: grid !important;
  place-items: center !important;
  font-size: 16px !important;
  transition: background 0.18s, color 0.18s !important;
}
.store-product-options .quantity-field button:hover {
  background: rgb(194 91 214 / 0.16) !important;
  color: #fff !important;
}

/* Price */
.store-product-options .price,
.store-product-options .product-price,
.store-product-options .total-price {
  display: block !important;
  margin: 18px 0 0 !important;
  font: 900 28px/1 var(--font-display) !important;
  letter-spacing: -0.025em !important;
  color: #fff !important;
}

/* Actions row — same vertical stacked buttons as the package page .pk-buy */
.store-product-options .actions {
  position: static !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  margin: 22px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  width: 100% !important;
}

/* Loading spinner */
.store-product-options .actions.updating {
  pointer-events: none !important;
  position: relative !important;
}
.store-product-options .actions.updating > * { opacity: 0.2 !important; filter: none !important; }
.store-product-options .actions.updating::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  margin: auto !important;
  width: 24px !important;
  height: 24px !important;
  border-radius: 999px !important;
  border: 2.5px solid rgb(194 91 214 / 0.2) !important;
  border-top-color: #c25bd6 !important;
  border-right-color: #884bf5 !important;
  background: none !important;
  animation: pkOptSpin 0.85s linear infinite !important;
}
@keyframes pkOptSpin { to { transform: rotate(360deg); } }

/* Primary button — clones the basket .checkout button exactly */
.store-product-options .actions .btn-primary,
.store-product-options .actions button[type="submit"] {
  width: 100% !important;
  height: 46px !important;
  line-height: 46px !important;
  padding: 0 18px !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, #c25bd6 0%, #884bf5 100%) !important;
  color: #fff !important;
  font: 800 12.5px/46px var(--font-display) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-align: center !important;
  cursor: pointer !important;
  box-shadow:
    0 10px 24px -10px rgb(136 75 245 / 0.6),
    inset 0 1px 0 rgb(255 255 255 / 0.2) !important;
  transition:
    transform 0.22s cubic-bezier(0.19, 1, 0.22, 1),
    filter 0.2s,
    box-shadow 0.25s !important;
}
.store-product-options .actions .btn-primary:hover,
.store-product-options .actions button[type="submit"]:hover {
  background: linear-gradient(135deg, #cd6ce0 0%, #9258ff 100%) !important;
  box-shadow:
    0 12px 26px -10px rgb(136 75 245 / 0.65),
    inset 0 1px 0 rgb(255 255 255 / 0.22) !important;
}
.store-product-options .actions .btn-primary:active {
  filter: brightness(0.96) !important;
}

/* Secondary / cancel — ghost style */
.store-product-options .actions .btn-secondary,
.store-product-options .actions .btn-tertiary,
.store-product-options .actions a[href*="cancel"] {
  width: 100% !important;
  height: 40px !important;
  padding: 0 18px !important;
  border-radius: 12px !important;
  background: transparent !important;
  border: 1px solid rgb(255 255 255 / 0.1) !important;
  color: rgb(255 255 255 / 0.7) !important;
  font: 700 11.5px/1 var(--font-display) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.18s, border-color 0.18s, color 0.18s !important;
}
.store-product-options .actions .btn-secondary:hover,
.store-product-options .actions .btn-tertiary:hover,
.store-product-options .actions a[href*="cancel"]:hover {
  background: rgb(255 255 255 / 0.04) !important;
  border-color: rgb(255 255 255 / 0.18) !important;
  color: #fff !important;
}

/* Mobile */
@media (max-width: 600px) {
  .popup-content.store-product-options {
    width: calc(100vw - 16px) !important;
  }
}

/* ---------- Sidebar ---------- */
.store-sidebar {
  display: grid;
  gap: 28px;
}
body:not(.is-sidebar-bottom) .store-sidebar > * {
  padding: var(--widget-padding);
  background: var(--color-brighter-bg);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  backdrop-filter: var(--bg-blur);
  box-shadow: var(--shadow-xs);
}
body:not(.is-sidebar-bottom) .store-sidebar { padding-top: 14px; }
body.is-sidebar-bottom .store-sidebar { margin-top: calc(var(--layout-gap) * 1.5); }
@media (width > 600px) {
  body.is-sidebar-bottom .store-sidebar {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  }
  body.is-sidebar-bottom .store-sidebar > * {
    padding: var(--widget-padding);
    background: var(--color-brighter-bg);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-lg);
    backdrop-filter: var(--bg-blur);
    box-shadow: var(--shadow-xs);
  }
}

.widget-title {
  font-family: var(--font-display);
  margin-bottom: var(--widget-padding);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--color-border-soft);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 8px;
}
.widget-title::before {
  content: "";
  width: 4px;
  height: 14px;
  background: var(--color-primary-gradient);
  border-radius: 2px;
}

.widget-featured .store-product {
  padding: 0;
  text-align: center;
}

.widget-gift-card { text-align: center; }
.widget-gift-card .gift-card-input {
  margin-bottom: 10px;
  width: 100%;
  padding: 14px 14px;
  color: var(--color-text-darker);
  background: var(--color-input-bg);
  font-size: 14px;
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.widget-gift-card .gift-card-input:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 4px rgb(from var(--color-primary) r g b / 0.12);
}
@media (width > 960px) {
  .widget-gift-card .gift-card-input { padding: 14px 16px; font-size: 15px; }
}
.popup .widget-gift-card .gift-card-input { background: #242424; }
.widget-gift-card .check { width: 100%; }

.widget-recent .purchase {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  position: relative;
  margin-bottom: 10px;
  padding: 8px;
  border-radius: var(--radius-sm);
  line-height: 1.4;
  transition: background 0.2s;
}
.widget-recent .purchase:hover { background: var(--color-tertiary-hover); }
.widget-recent .avatar {
  flex: none;
  max-width: 40px;
  max-height: 40px;
  object-fit: contain;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-xs);
}
.widget-recent .username { font-weight: 700; }
.widget-recent .empty { text-align: center; color: var(--color-text-secondary); }
.widget-recent time { opacity: 0.6; font-size: 0.85em; }
.widget-recent .sep { margin: 0 0.3em; opacity: 0.5; }

.widget-top-donator { text-align: center; }
.widget-top-donator .avatar {
  margin: 0 auto 14px;
  max-width: 96px;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  border: 2px solid var(--color-primary);
}
.widget-top-donator .username {
  margin-bottom: 6px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.02em;
}
.widget-top-donator .empty { text-align: center; color: var(--color-text-secondary); }

.widget-community-goal .widget-content,
.widget-goal .widget-content { text-align: center; }
.widget-community-goal p:not(:last-child),
.widget-goal p:not(:last-child) { margin-bottom: 14px; }

.widget-community-goal .progress,
.widget-goal .progress {
  height: 14px;
  margin-bottom: 14px;
  overflow: hidden;
  background: var(--color-tertiary-hover);
  border-radius: 999px;
  box-shadow: inset 0 1px 2px rgb(0 0 0 / 0.1);
}
@keyframes progressBarAnimation {
  to { background-position: 100% 0; }
}
.widget-community-goal .progress-bar,
.widget-goal .progress-bar {
  height: 14px;
  border-radius: 999px;
  background: var(--color-primary);
  background-image: var(--color-primary-gradient);
  box-shadow: 0 0 12px rgb(from var(--color-primary) r g b / 0.5);
}
.widget-community-goal .progress-bar.striped,
.widget-goal .progress-bar.striped {
  background:
    var(--color-primary-gradient),
    linear-gradient(135deg,
      transparent 0%, transparent 33%,
      rgb(255 255 255 / 0.2) 33%, rgb(255 255 255 / 0.2) 66%,
      transparent 66%, transparent 100%);
  background-size: 100% 100%, 24px 24px;
}
.widget-community-goal .progress-bar.striped.animated,
.widget-goal .progress-bar.striped.animated {
  animation: progressBarAnimation 10s infinite linear;
}

.widget-community-goal .goal-image {
  margin: 0 auto 14px;
  max-width: 96px;
  border-radius: var(--radius-md);
}
.widget-community-goal .descr { margin-bottom: 12px; color: var(--color-text-secondary); }

.widget-server-status .widget-content { text-align: center; }
.widget-server-status h6 {
  margin-bottom: 12px;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
}

/* ---------- Site footer ---------- */
.site-footer {
  background: var(--color-brighter-bg);
  border-top: 1px solid var(--color-border-soft);
  backdrop-filter: var(--bg-blur);
  view-transition-name: siteFooter;
}

.site-footer-inner {
  position: relative;
  padding: 24px var(--content-padding);
}
@media (width <= 960px) {
  .site-footer-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--widget-padding);
  }
}
.site-footer-inner .site-footer-nav {
  line-height: 1.5;
  font-size: 14px;
}
@media (width > 960px) { .site-footer-inner .site-footer-nav { margin-bottom: 12px; } }
.site-footer-inner .site-footer-nav ul { display: flex; }
@media (width <= 960px) {
  .site-footer-inner .site-footer-nav ul {
    flex-direction: column;
    gap: var(--widget-padding);
    text-align: center;
  }
}
@media (width > 960px) {
  .site-footer-inner .site-footer-nav ul { gap: calc(var(--widget-padding) * 2); }
}
.site-footer-inner .site-footer-nav a {
  color: var(--color-text-darker);
  text-decoration-line: underline;
  text-underline-offset: 3px;
  transition: color 0.2s var(--ease-out-smooth);
}
.site-footer-inner .site-footer-nav a:hover { color: var(--color-primary); }
.site-footer-inner .copyright {
  line-height: 16px;
  color: var(--color-text-secondary);
  font-size: 12px;
  letter-spacing: 0.02em;
}

.site-footer-inner .we-accept {
  display: flex;
  align-items: center;
  gap: 12px;
}
@media (width > 960px) {
  .site-footer-inner .we-accept {
    position: absolute;
    top: 0;
    right: var(--content-padding);
    bottom: 0;
    pointer-events: none;
  }
}
.site-footer-inner .we-accept li { display: block; }
.site-footer-inner .we-accept img {
  display: block;
  max-width: 57px;
  max-height: 26px;
  opacity: 0.9;
  transition: opacity 0.2s;
}
.site-footer-inner .we-accept img:hover { opacity: 1; }
:root.color-scheme-light .site-footer-inner .we-accept img[alt=Visa] { filter: brightness(0.1); }
@media (prefers-color-scheme: light) {
  :root.color-scheme-auto .site-footer-inner .we-accept img[alt=Visa] { filter: brightness(0.1); }
}

.site-footer-credit {
  color: var(--color-text-secondary);
  background: #0a0b0d;
  font-size: 11px;
}
.site-footer-credit .site-footer-credit-inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-direction: column;
  gap: 22px;
  margin: auto;
  padding-top: 16px;
  padding-bottom: 16px;
  min-height: 45px;
}
@media (width > 960px) {
  .site-footer-credit .site-footer-credit-inner {
    align-items: center;
    flex-direction: row;
  }
}
.site-footer-credit .copyright {
  display: flex;
  align-items: flex-start;
  gap: 22px;
}
@media (width > 960px) { .site-footer-credit .copyright { align-items: center; } }
.site-footer-credit .copyright .tebex-logo-link { flex: none; }
.site-footer-credit .legal {
  display: flex;
  gap: 16px;
  white-space: nowrap;
}
@media (width > 960px) { .site-footer-credit .legal { gap: 20px; } }
.site-footer-credit .legal a {
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.2s var(--ease-out-smooth);
}
.site-footer-credit .legal a:hover { color: var(--color-primary); }

/* ---------- Popup ---------- */
.popup {
  --fade-duration: 320ms;
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 100vw;
  z-index: 1000;
  overflow: hidden scroll;
  scrollbar-width: thin;
  scrollbar-color: var(--color-secondary) transparent;
  background: var(--color-popup-bg);
  backdrop-filter: blur(4px);
  transition: opacity var(--fade-duration) ease, display var(--fade-duration) allow-discrete;
}
@starting-style { .popup { opacity: 0; } }
.popup.drawer { user-select: none; }
.popup[hidden] { opacity: 0; display: none; }

.popup-scroll-cont {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100%;
  padding: calc(var(--content-padding) / 2);
  overflow: hidden;
  overscroll-behavior: none;
}
@media (width > 600px) { .popup-scroll-cont { padding: var(--content-padding); } }
@media (pointer: coarse) {
  .popup .popup-scroll-cont { align-items: flex-end; padding-bottom: 0; }
}

.popup-content {
  position: relative;
  width: 100%;
  max-width: 560px;
  padding: calc(var(--widget-padding) * 1.25);
  background: var(--color-brighter-bg);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-xl);
  backdrop-filter: var(--bg-blur-strong);
  box-shadow: var(--shadow-xl);
  transition:
    translate var(--fade-duration) var(--ease-out-expo),
    opacity var(--fade-duration) ease;
}
@media (pointer: coarse) {
  .popup-content { padding-bottom: calc(var(--widget-padding) * 2); }
}

@starting-style { .popup-content { translate: 0 20px; } }

.popup.drawer-down .popup-content { border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
.popup.drawer-up .popup-content { border-radius: 0 0 var(--radius-xl) var(--radius-xl); }
.popup.drawer-right .popup-content { border-radius: var(--radius-xl) 0 0 var(--radius-xl); }
.popup.drawer-left .popup-content { border-radius: 0 var(--radius-xl) var(--radius-xl) 0; }
.popup.touching .popup-content {
  transition: opacity var(--fade-duration) ease, scale var(--fade-duration) ease;
}
.popup.drawer[hidden] .popup-content,
.popup.may-close .popup-content { opacity: 0.8; scale: 0.95; }
.popup.may-close .popup-content { border-radius: var(--radius-xl); }

.popup.drawer-up[hidden] .popup-content { translate: 0 -100%; }
.popup.drawer-down[hidden] .popup-content { translate: 0 100%; }
.popup.drawer-right[hidden] .popup-content { translate: 100% 0; }
.popup.drawer-left[hidden] .popup-content { translate: -100% 0; }
.popup:not(.drawer)[hidden] .popup-content { translate: 0 20px; }
.popup:not(.drawer)[hidden] .popup-content { translate: 0 20px; }

.popup.popup-loading .popup-content { min-height: 180px; }
.popup.popup-loading .popup-content::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  margin: auto;
  width: 38px;
  height: 38px;
  background: url("https://template-assets.tebex.io/images/loading.svg") center center no-repeat;
  background-size: contain;
}

.drawer-up .popup-content::after,
.drawer-down .popup-content::after,
.drawer-left .popup-content::after,
.drawer-right .popup-content::after {
  content: "";
  display: block;
  position: absolute;
  background: rgb(from var(--color-text-secondary) r g b / 0.33);
  border-radius: 2px;
  pointer-events: none;
}
.drawer-up .popup-content::after,
.drawer-down .popup-content::after {
  left: 0;
  right: 0;
  margin-inline: auto;
  height: 4px;
  width: 100px;
}
.drawer-up .popup-content::after { bottom: 7px; }
.drawer-down .popup-content::after { top: 7px; }
.drawer-left .popup-content::after,
.drawer-right .popup-content::after {
  top: 0;
  bottom: 0;
  margin-block: auto;
  width: 4px;
  height: 100px;
}
.drawer-left .popup-content::after { right: 7px; }
.drawer-right .popup-content::after { left: 7px; }

.popup-close {
  position: absolute;
  top: 0;
  right: 0;
  width: var(--btn-size);
  height: var(--btn-size);
  background-color: var(--color-tertiary-text);
  mask: url("https://template-assets.tebex.io/images/close.svg") center center no-repeat;
  mask-size: 22px;
  border-radius: 0 var(--radius-xl) 0 var(--radius-xl);
  line-height: 0;
  font-size: 0;
  color: transparent;
  transition: all 0.2s var(--ease-out-smooth);
}
@media (width <= 600px) { .popup-close { mask-size: 22px; } }
.popup-close:hover,
.popup-close:focus {
  background-color: var(--color-primary);
  transform: rotate(90deg);
}

.store-product-popup-content { max-width: 820px; }
.product-options-popup .popup-content { max-width: 480px; }

.gift-form-popup .popup-content h1,
.gift-form-popup .popup-content h2,
.gift-form-popup .popup-content h3,
.gift-form-popup .popup-content h4,
.gift-form-popup .popup-content h5,
.gift-form-popup .popup-content h6 {
  font-family: var(--font-display);
  margin-bottom: 14px;
}
.gift-form-popup .popup-content .btn-primary { width: 240px; }
.gift-form-popup .popup-content .actions {
  position: relative;
  width: fit-content;
  max-width: 100%;
}
.gift-form-popup .popup-content .actions.updating { pointer-events: none; }
.gift-form-popup .popup-content .actions.updating > * { opacity: 0.3; filter: grayscale(100%); }
.gift-form-popup .popup-content .actions.updating::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  z-index: 10;
  margin: auto;
  width: 30px;
  height: 30px;
  background: url("https://template-assets.tebex.io/images/loading.svg") center center no-repeat;
  background-size: contain;
}

/* ============================================================
   Login popup — centered hero design with icon badge
   Layout: card with a glowing circular icon at the top,
   centered heading + tagline, large pill buttons. Everything centered.
   ============================================================ */
.login-popup {
  z-index: 1002;
  background:
    radial-gradient(60% 50% at 50% 40%, rgb(194 91 214 / 0.15) 0%, transparent 70%),
    rgb(5 3 10 / 0.82);
  backdrop-filter: blur(16px) saturate(1.1);
  -webkit-backdrop-filter: blur(16px) saturate(1.1);
}

.login-popup .popup-content,
.login-popup-content {
  position: relative;
  max-width: 400px !important;
  padding: 64px 40px 40px !important;
  border-radius: 24px !important;
  background: linear-gradient(180deg, #15101f 0%, #0a0614 100%) !important;
  border: 1px solid rgb(255 255 255 / 0.07) !important;
  box-shadow:
    0 30px 80px -20px rgb(0 0 0 / 0.65),
    0 0 0 1px rgb(255 255 255 / 0.02) inset !important;
  color: #fff;
  text-align: center !important;
}

/* Circular icon badge floating at the top of the card */
.login-popup .popup-content::before {
  content: "";
  position: absolute;
  top: -32px;
  left: 50%;
  transform: translateX(-50%);
  width: 72px;
  height: 72px;
  border-radius: 999px;
  background:
    radial-gradient(circle at 30% 25%, rgb(255 255 255 / 0.25) 0%, transparent 40%),
    linear-gradient(135deg, #c25bd6 0%, #884bf5 100%);
  box-shadow:
    0 14px 32px -8px rgb(136 75 245 / 0.6),
    0 0 0 6px rgb(15 10 25 / 1),
    0 0 0 7px rgb(194 91 214 / 0.25);
  pointer-events: none;
}
/* Lock glyph inside the icon badge */
.login-popup .popup-content::after {
  content: "";
  position: absolute;
  top: -32px;
  left: 50%;
  transform: translateX(-50%);
  width: 72px;
  height: 72px;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><rect x='5' y='11' width='14' height='10' rx='2'/><path d='M8 11V8a4 4 0 0 1 8 0v3'/></svg>")
    center / 28px 28px no-repeat;
  pointer-events: none;
}

/* Close button — soft pill */
.login-popup .popup-close {
  top: 14px !important;
  right: 14px !important;
  width: 30px !important;
  height: 30px !important;
  background-color: rgb(255 255 255 / 0.35) !important;
  border-radius: 999px !important;
  mask-size: 12px !important;
  transition: background-color 0.2s, transform 0.3s var(--ease-out-expo);
}
.login-popup .popup-close:hover,
.login-popup .popup-close:focus {
  background-color: #fff !important;
  transform: rotate(90deg) !important;
}

/* Heading — centered, bold */
.login-popup .popup-content h1,
.login-popup .popup-content h2,
.login-popup .popup-content h3,
.login-popup-content h1,
.login-popup-content h2,
.login-popup-content h3 {
  margin: 0 0 10px !important;
  font-family: var(--font-display) !important;
  font-size: 26px !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  color: #fff !important;
  text-align: center !important;
}

/* Subtitle / paragraphs */
.login-popup .popup-content > p,
.login-popup-content > p {
  margin: 0 0 28px !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: rgb(255 255 255 / 0.58) !important;
  text-align: center !important;
}

/* Labels (if Tebex renders a form) — hidden or reduced, rely on placeholders */
.login-popup .popup-content label,
.login-popup-content label {
  display: block;
  margin: 4px 0 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.4);
  text-align: left;
}

/* Inputs — rounded, padded, with focus ring */
.login-popup .popup-content input[type="text"],
.login-popup .popup-content input[type="email"],
.login-popup .popup-content input[type="password"],
.login-popup-content input[type="text"],
.login-popup-content input[type="email"],
.login-popup-content input[type="password"] {
  width: 100%;
  padding: 14px 16px !important;
  margin: 0 0 12px !important;
  border: 1px solid rgb(255 255 255 / 0.08) !important;
  border-radius: 12px !important;
  background: rgb(0 0 0 / 0.35) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-family: inherit !important;
  text-align: left;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.login-popup .popup-content input:focus,
.login-popup-content input:focus {
  outline: none !important;
  border-color: rgb(194 91 214 / 0.55) !important;
  box-shadow: 0 0 0 4px rgb(194 91 214 / 0.15) !important;
}
.login-popup .popup-content input::placeholder,
.login-popup-content input::placeholder {
  color: rgb(255 255 255 / 0.35) !important;
}

/* Primary submit — big pill button with gradient */
.login-popup .popup-content button[type="submit"],
.login-popup .popup-content .btn-primary,
.login-popup-content button[type="submit"],
.login-popup-content .btn-primary {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  margin: 4px auto 0 !important;
  padding: 15px 20px !important;
  border-radius: 999px !important;
  border: none !important;
  background: linear-gradient(135deg, #c25bd6 0%, #884bf5 100%) !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em !important;
  cursor: pointer !important;
  box-shadow:
    0 12px 28px -10px rgb(136 75 245 / 0.55),
    inset 0 1px 0 rgb(255 255 255 / 0.2) !important;
  transition:
    transform 0.22s var(--ease-out-expo),
    filter 0.2s !important;
}
.login-popup .popup-content button[type="submit"]:hover,
.login-popup .popup-content .btn-primary:hover,
.login-popup-content button[type="submit"]:hover,
.login-popup-content .btn-primary:hover {
  transform: translateY(-1px) !important;
  filter: brightness(1.08) !important;
}
.login-popup .popup-content button[type="submit"]:active,
.login-popup-content button[type="submit"]:active {
  transform: translateY(0) scale(0.98) !important;
}

/* OAuth buttons — outlined pill, all uniform */
.login-popup .popup-content a[href*="cfx"],
.login-popup .popup-content a[href*="steam"],
.login-popup .popup-content a[href*="discord"],
.login-popup .popup-content .btn-secondary,
.login-popup-content a[href*="cfx"],
.login-popup-content a[href*="steam"],
.login-popup-content a[href*="discord"],
.login-popup-content .btn-secondary {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  width: 100% !important;
  margin: 10px auto 0 !important;
  padding: 13px 18px !important;
  border-radius: 999px !important;
  border: 1px solid rgb(255 255 255 / 0.1) !important;
  background: rgb(255 255 255 / 0.02) !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition:
    border-color 0.2s,
    background 0.2s,
    transform 0.2s var(--ease-out-expo);
}
.login-popup .popup-content a[href*="cfx"]:hover,
.login-popup .popup-content a[href*="steam"]:hover,
.login-popup .popup-content a[href*="discord"]:hover,
.login-popup .popup-content .btn-secondary:hover,
.login-popup-content a[href*="cfx"]:hover,
.login-popup-content a[href*="steam"]:hover,
.login-popup-content a[href*="discord"]:hover,
.login-popup-content .btn-secondary:hover {
  border-color: rgb(194 91 214 / 0.4) !important;
  background: rgb(194 91 214 / 0.08) !important;
  transform: translateY(-1px) !important;
}

/* Divider with centered "or" */
.login-popup .popup-content hr,
.login-popup-content hr {
  position: relative;
  margin: 22px 0 !important;
  border: none !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, rgb(255 255 255 / 0.12), transparent) !important;
  overflow: visible;
}
.login-popup .popup-content hr::after,
.login-popup-content hr::after {
  content: "OR";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 0 14px;
  background: #10091d;
  font-family: var(--font-display);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.22em;
  color: rgb(255 255 255 / 0.4);
}

/* Secondary text links (forgot password, create account) */
.login-popup .popup-content a:not([href*="cfx"]):not([href*="steam"]):not([href*="discord"]),
.login-popup-content a:not([href*="cfx"]):not([href*="steam"]):not([href*="discord"]) {
  display: inline-block;
  margin-top: 14px;
  color: rgb(255 255 255 / 0.6) !important;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: color 0.2s;
}
.login-popup .popup-content a:not([href*="cfx"]):not([href*="steam"]):not([href*="discord"]):hover,
.login-popup-content a:not([href*="cfx"]):not([href*="steam"]):not([href*="discord"]):hover {
  color: #f0b6ff !important;
}

@media (max-width: 480px) {
  .login-popup .popup-content,
  .login-popup-content {
    padding: 56px 24px 30px !important;
    border-radius: 20px !important;
  }
  .login-popup .popup-content h1,
  .login-popup .popup-content h2,
  .login-popup-content h1,
  .login-popup-content h2 { font-size: 22px !important; }
  .login-popup .popup-content::before,
  .login-popup .popup-content::after {
    width: 64px; height: 64px; top: -28px;
  }
}

/* ---------- Basket (cart drawer) ---------- */
.basket {
  position: relative;
  z-index: 1001;
}
.site-content .basket { display: none; }
.basket .basket-empty {
  margin: auto;
  padding: 48px 24px;
  text-align: center;
  font-size: 17px;
  color: var(--color-text-secondary);
}
.basket .basket-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 52px var(--content-padding) 28px;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.025em;
}
@media (width > 960px) { .basket .basket-header { padding-top: 72px; } }
.basket .basket-title {
  display: flex;
  align-items: center;
  gap: 12px;
  text-transform: uppercase;
  font-size: 18px;
  letter-spacing: 0.06em;
}
.basket .basket-title::before {
  content: "";
  display: block;
  width: 30px;
  height: 30px;
  background: var(--color-primary-gradient);
  mask: url("https://template-assets.tebex.io/images/user.svg") center center no-repeat;
  mask-size: contain;
}

.basket .basket-second-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px var(--content-padding);
  background: var(--color-brighter-bg);
  border-top: 1px solid var(--color-border-soft);
  border-bottom: 1px solid var(--color-border-soft);
  font-size: 16px;
  font-weight: 400;
  text-align: center;
}
.basket .basket-second-header .total { font-size: 14px; }
.basket .basket-second-header .total strong {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 700;
  color: var(--color-primary);
}
.basket .basket-second-header .currency {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: var(--color-tertiary-hover);
  border-radius: var(--radius-sm);
  font-weight: 600;
}
.basket .basket-second-header .currency::after {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  background: url("https://template-assets.tebex.io/images/dropdown-arrow.svg") center center no-repeat;
}

.basket .basket-content {
  flex: 1;
  overflow-x: hidden;
  overflow-y: auto;
}
.basket .basket-items {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: var(--widget-padding);
}
.basket .basket-item {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 14px;
  padding: var(--widget-padding);
  background: var(--color-brighter-bg);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-xs);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.basket .basket-item:hover {
  border-color: rgb(from var(--color-primary) r g b / 0.3);
  box-shadow: var(--shadow-sm);
}
.basket .basket-item .info { margin-right: auto; }
.basket .basket-item .options { list-style-position: inside; }
.basket .basket-item .options:has(li) { padding: 5px 0; }
.basket .basket-item .options li { display: block; padding: 1px 0; color: var(--color-text-secondary); font-size: 13px; }
.basket .basket-item .options li::before {
  content: "";
  display: inline-block;
  margin-right: 0.5em;
  width: 3px;
  height: 3px;
  vertical-align: middle;
  background-color: currentColor;
  border-radius: 50%;
}
.basket .basket-item .title {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.basket .basket-item .price {
  color: var(--color-primary);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}
.basket .basket-item .price strong {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 700;
}
.basket .basket-item .quantity-field { flex: none; height: 40px; }
.basket .basket-item .remove {
  --btn-icon: url("https://template-assets.tebex.io/images/delete.svg");
  --btn-size: 40px;
  transition: color 0.2s;
}
.basket .basket-item .remove:hover::before { background-color: var(--color-removed); }

.basket .basket-checkout {
  margin-top: auto;
  padding: 24px var(--content-padding) 48px;
  background: var(--color-brighter-bg);
  border-top: 1px solid var(--color-border-soft);
}
@media (width > 960px) { .basket .basket-checkout { padding-bottom: 96px; } }

.basket .basket-checkout h3 {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: var(--widget-padding);
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.basket .basket-checkout .total {
  color: var(--color-primary);
  font-size: 15px;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
}
.basket .basket-checkout .total strong {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.03em;
}
.basket .basket-checkout .checkout {
  width: 100%;
  height: 52px;
  line-height: 52px;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.basket-popup { background-color: transparent; }
.basket-popup .popup-scroll-cont { justify-content: flex-end; padding: 0; }

.basket-popup-content {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  max-width: 520px;
  height: 100vh;
  height: 100dvh;
  padding: 0;
  background-color: rgb(from var(--color-bg) r g b / 0.92);
  backdrop-filter: var(--bg-blur-strong);
  border-left: 1px solid var(--color-border-soft);
}
.basket-popup-content,
.popup.drawer .basket-popup-content { border-radius: 0; }
.popup.drawer .basket-popup-content::after {
  inset: 0 auto 0 7px;
  margin-block: auto;
  width: 4px;
  height: 100px;
}
.popup.may-close .basket-popup-content { border-radius: var(--radius-md); }

@starting-style { .basket-popup-content { translate: 100% 0; } }
:root .popup[hidden] .basket-popup-content { translate: 100% 0; }
.basket-popup-content .popup-close { border-radius: 0 0 0 var(--radius-md); }

.basket-popup-content.updating { pointer-events: none; }
.basket-popup-content.updating::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  z-index: 10;
  margin: auto;
  width: 38px;
  height: 38px;
  background: url("https://template-assets.tebex.io/images/loading.svg") center center no-repeat;
  background-size: contain;
}
.basket-popup-content.updating > * { filter: grayscale(100%); }

/* ---------- Toaster ---------- */
.toaster {
  display: flex;
  flex-direction: column-reverse;
  gap: 10px;
  position: fixed;
  bottom: var(--widget-padding);
  left: 0;
  right: 0;
  z-index: 10000;
  margin: 0 auto;
  padding: 0 var(--widget-padding);
  width: 100%;
  height: 100%;
  max-width: 520px;
  pointer-events: none;
}
.toaster:empty { display: none; }

.toast {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  height: 54px;
  padding: 0 10px 0 22px;
  overflow: hidden;
  background: var(--color-brighter-bg);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
  backdrop-filter: var(--bg-blur);
  font-size: 15px;
  font-weight: 500;
  box-shadow: var(--shadow-lg);
  pointer-events: auto;
  transition: height 0.3s var(--ease-out-smooth), opacity 0.3s ease, transform 0.3s var(--ease-out-expo);
}
@starting-style { .toast { opacity: 0; height: 0; transform: translateY(10px); } }
.toast[hidden] { display: block; opacity: 0; height: 0; transform: translateY(10px); }
.toast.toast-warning { background: #e6b800; color: #1a1400; border-color: #b39300; }
.toast.toast-error { background: #e84b4b; color: #fff; border-color: #c12e2e; }
.toast.toast-success { background: #3fb64c; color: #fff; border-color: #319640; }

.toast-close {
  margin-left: auto;
  flex: none;
  width: 32px;
  height: 32px;
  background: url("https://template-assets.tebex.io/images/close.svg") center center no-repeat;
  background-size: 18px;
  border-radius: var(--radius-sm);
  opacity: 0.5;
  line-height: 0;
  font-size: 0;
  color: transparent;
  transition: all 0.2s var(--ease-out-smooth);
}
.toast-close:hover {
  opacity: 1;
  background-color: rgba(255, 255, 255, 0.12);
}

/* ---------- Tiered categories ---------- */
.store-category-tiered-header {
  margin-bottom: calc(var(--widget-padding) * 1.5);
  font-size: 17px;
  color: var(--color-text-secondary);
}
.store-category-tiered-header h1,
.store-category-tiered-header h2,
.store-category-tiered-header h3,
.store-category-tiered-header h4,
.store-category-tiered-header h5,
.store-category-tiered-header h6 {
  font-family: var(--font-display);
  color: var(--color-text);
  margin-bottom: 24px;
  letter-spacing: -0.03em;
}
.store-category-tiered-header p { margin-bottom: 16px; }

.store-products-tiered {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--products-gap);
}

.store-product-tiered {
  --gap: var(--widget-padding);
  --border-color: var(--color-border-soft);
  position: relative;
  display: grid;
  grid-row: span 4;
  grid-template-rows: subgrid;
  gap: var(--gap);
  padding: calc(var(--widget-padding) * 1.25);
  background: var(--color-brighter-bg);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-xl);
  backdrop-filter: var(--bg-blur);
  box-shadow: var(--shadow-sm);
  isolation: isolate;
  transition:
    transform 0.45s var(--ease-out-expo),
    box-shadow 0.45s var(--ease-out-expo),
    border-color 0.3s ease;
}
.store-product-tiered::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: -1;
  border-radius: var(--radius-xl);
  padding: 1px;
  background: linear-gradient(
    140deg,
    rgb(from var(--color-primary) r g b / 0) 0%,
    rgb(from var(--color-primary) r g b / 0) 60%,
    rgb(from var(--color-primary) r g b / 0.4) 100%
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.4s ease;
}
.store-product-tiered:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg), var(--shadow-glow);
  border-color: rgb(from var(--color-primary) r g b / 0.2);
}
.store-product-tiered:hover::before { opacity: 1; }

.store-product-tiered .image {
  margin: auto;
  max-width: 100%;
  object-fit: contain;
  border-radius: var(--radius-md);
  transition: transform 0.5s var(--ease-out-expo);
}
.store-product-tiered:hover .image { transform: scale(1.05); }

.store-product-tiered .product-title {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.025em;
  text-align: center;
}
.store-product-tiered .countdown {
  display: inline-flex;
  align-items: center;
  margin-top: 6px;
  padding: 3px 10px;
  background: rgb(from var(--color-removed) r g b / 0.1);
  color: var(--color-removed);
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 0.72em;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.store-product-tiered .countdown::before {
  content: "";
  display: inline-block;
  vertical-align: -0.15em;
  margin-right: 0.3em;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  mask: url("https://template-assets.tebex.io/images/countdown.svg") center center/contain no-repeat;
}
.store-product-tiered .descr {
  padding-block: var(--gap);
  border-block: 1px solid var(--border-color);
  color: var(--color-text-secondary);
  line-height: 1.55;
}
.store-product-tiered .price {
  font-size: 14px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.store-product-tiered .price .discount {
  margin-right: 1ch;
  color: var(--color-removed);
  font-weight: 400;
  text-decoration-line: line-through;
  opacity: 0.75;
}
.store-product-tiered .price strong {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--color-primary-deep);
}
.store-product-tiered .actions { gap: var(--gap); }
.store-product-tiered .actions .wide { width: 100%; }

.store-quote { padding: var(--widget-padding); }
.store-quote .wide { flex: 1 1 50%; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   Hero v2 — featured product showcase with aurora & ticker
   ============================================================ */

/* Hide sidebar across the site when body has .no-sidebar */
body.no-sidebar .site-sidebar,
body.no-sidebar aside,
.site-content.site-content-widgets > aside,
.site-content > .site-sidebar { display: none !important; }
body.no-sidebar .site-content.site-content-widgets,
body.no-sidebar .site-content {
  grid-template-columns: 1fr !important;
  display: block !important;
}

/* ============================================================
   Hero v10 — immersive 3D card wall + centered overlay
   ============================================================ */
.hero {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: calc(var(--header-h, 80px) * -1);
  margin-bottom: 48px;
  min-height: 100vh;
  padding: 0;
  overflow: hidden;
  background: #050209;
  isolation: isolate;
  color: #fff;
}

.wall-scene {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  perspective: 2000px;
  perspective-origin: 50% 30%;
  -webkit-mask-image: linear-gradient(180deg, black 0%, black 65%, transparent 100%);
  mask-image: linear-gradient(180deg, black 0%, black 65%, transparent 100%);
  /* While the API loads, dim hard-coded mock tiles so they read as
     "loading" rather than fake products. Fades to full once renderAll
     paints real packages and adds .is-ready. */
  opacity: 0.35;
  filter: blur(2px) saturate(0.7);
  transition: opacity 0.5s var(--ease-out-expo, cubic-bezier(.19,1,.22,1)),
              filter 0.5s var(--ease-out-expo, cubic-bezier(.19,1,.22,1));
}
.wall-scene.is-ready {
  opacity: 1;
  filter: none;
}
.wall {
  position: absolute;
  inset: -20% -30%;
  display: flex;
  flex-direction: column;
  gap: 22px;
  transform: rotateX(42deg) rotateZ(-12deg) translateZ(-120px);
  transform-origin: center top;
  transform-style: preserve-3d;
  animation: wall-drift 30s ease-in-out infinite;
}
@keyframes wall-drift {
  0%, 100% { transform: rotateX(42deg) rotateZ(-12deg) translateZ(-120px); }
  50%      { transform: rotateX(42deg) rotateZ(-9deg)  translateZ(-100px); }
}
.wrow { display: flex; gap: 18px; width: max-content; flex-shrink: 0; }
.wrow-a { animation: scroll-l 52s linear infinite; }
.wrow-b { animation: scroll-r 64s linear infinite; }
.wrow-c { animation: scroll-l 78s linear infinite; }
@keyframes scroll-l {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes scroll-r {
  from { transform: translateX(-50%); }
  to   { transform: translateX(0); }
}

.tile {
  flex-shrink: 0;
  width: 220px;
  height: 130px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 16px 18px;
  border-radius: 16px;
  background:
    radial-gradient(ellipse 90% 90% at 30% 20%, rgb(from var(--c1) r g b / 0.55), transparent 65%),
    radial-gradient(ellipse 70% 100% at 80% 100%, rgb(from var(--c1) r g b / 0.35), transparent 65%),
    linear-gradient(135deg, var(--c2), color-mix(in srgb, var(--c2), #000 35%));
  border: 1px solid rgb(255 255 255 / 0.08);
  box-shadow:
    0 20px 40px -20px rgb(0 0 0 / 0.6),
    inset 0 1px 0 rgb(255 255 255 / 0.06);
  color: #fff;
  overflow: hidden;
  position: relative;
  text-decoration: none;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
a.tile:hover {
  transform: translateY(-4px);
  box-shadow:
    0 28px 50px -20px rgb(0 0 0 / 0.8),
    0 0 0 1px rgb(from var(--c1) r g b / 0.4),
    inset 0 1px 0 rgb(255 255 255 / 0.12);
}
/* Variant: tile with real product image as background */
.tile.tile-img {
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
}
.tile.tile-img::before { opacity: 0.25; }
.tile.tile-img .tile-n {
  font-size: 14px;
  text-shadow: 0 1px 6px rgb(0 0 0 / 0.6);
}
.tile.tile-img .tile-p {
  background: rgb(from var(--c1) r g b / 0.3);
  color: #fff;
  border: 1px solid rgb(from var(--c1) r g b / 0.5);
}
.tile::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgb(255 255 255 / 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgb(255 255 255 / 0.035) 1px, transparent 1px);
  background-size: 22px 22px;
  -webkit-mask-image: radial-gradient(ellipse at 30% 30%, black 10%, transparent 80%);
  mask-image: radial-gradient(ellipse at 30% 30%, black 10%, transparent 80%);
  opacity: 0.7;
}
.tile-m {
  position: relative;
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--c1);
  filter: drop-shadow(0 2px 10px rgb(from var(--c1) r g b / 0.4));
}
.tile-n {
  position: relative;
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tile-p {
  position: absolute;
  bottom: 14px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--c1), color-mix(in srgb, var(--c1), #000 30%));
  color: #fff;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1;
  box-shadow:
    0 6px 16px -4px rgb(from var(--c1) r g b / 0.55),
    inset 0 1px 0 rgb(255 255 255 / 0.25);
  text-shadow: 0 1px 2px rgb(0 0 0 / 0.3);
}
/* Tile on sale — small struck-through "was" beside the current price */
.tile-p-sale {
  background: linear-gradient(135deg, #fb7185, #f43f5e) !important;
  box-shadow: 0 6px 16px -4px rgb(244 63 94 / 0.55), inset 0 1px 0 rgb(255 255 255 / 0.25) !important;
  gap: 6px;
}
.tile-p-was {
  font-size: 10.5px;
  font-weight: 700;
  opacity: 0.7;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  letter-spacing: 0;
}

.wall-veil {
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    radial-gradient(ellipse 75% 55% at 50% 45%, rgb(5 2 9 / 0.88) 0%, rgb(5 2 9 / 0.35) 45%, rgb(5 2 9 / 0) 75%);
}
.wall-aurora {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background:
    radial-gradient(ellipse 55% 40% at 50% 45%, rgb(194 91 214 / 0.28), transparent 70%),
    radial-gradient(ellipse 45% 35% at 70% 35%, rgb(88 101 242 / 0.2), transparent 70%);
  animation: aurora-soft 8s ease-in-out infinite;
}
@keyframes aurora-soft {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.8; }
}
.wall-noise {
  position: absolute;
  inset: 0;
  z-index: 4;
  opacity: 0.06;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size: 180px 180px;
  pointer-events: none;
}

/* Overlay content */
.hero-center {
  position: relative;
  z-index: 10;
  min-height: 100vh;
  max-width: 1100px;
  margin: 0 auto;
  padding: calc(var(--header-h, 80px) + 48px) 32px 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 26px;
  text-align: center;
}

.h-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  animation: rise 0.8s var(--ease-out-expo) both;
  animation-delay: 0.1s;
}
.h-eyebrow .eb-line { width: 40px; height: 1px; background: linear-gradient(90deg, transparent, rgb(232 121 249 / 0.6), transparent); }
.h-eyebrow .eb-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px 6px 10px;
  border-radius: 999px;
  background: rgb(255 255 255 / 0.05);
  border: 1px solid rgb(255 255 255 / 0.1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.85);
}
.h-eyebrow .eb-dot {
  width: 6px; height: 6px;
  border-radius: 999px;
  background: #e879f9;
  box-shadow: 0 0 10px #e879f9, 0 0 0 3px rgb(232 121 249 / 0.2);
  animation: eb-beat 1.6s ease-in-out infinite;
}
@keyframes eb-beat {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(0.7); opacity: 0.45; }
}

.h-display {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(52px, 8vw, 120px);
  font-weight: 900;
  line-height: 0.96;
  letter-spacing: -0.05em;
  color: #fff;
  text-wrap: balance;
  text-shadow: 0 0 60px rgb(5 2 9 / 0.8);
}
.h-display .w {
  display: inline-block;
  opacity: 0;
  transform: translateY(28px);
  filter: blur(10px);
  animation: word-rise 1s var(--ease-out-expo) forwards;
}
.h-display .w + .w { margin-left: 0.2em; }
.h-display .w:nth-child(1) { animation-delay: 0.3s; }
.h-display .w:nth-child(2) { animation-delay: 0.4s; }
.h-display .w:nth-child(3) { animation-delay: 0.5s; }
.h-display .w:nth-child(4) { animation-delay: 0.6s; }
.h-display .w:nth-child(6) { animation-delay: 0.75s; }
@keyframes word-rise {
  from { opacity: 0; transform: translateY(28px); filter: blur(10px); }
  to   { opacity: 1; transform: translateY(0);    filter: blur(0); }
}
.h-display .w-accent {
  background: linear-gradient(120deg, #fda4d3 0%, #e879f9 45%, #c25bd6 85%);
  background-size: 220% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 40px rgb(232 121 249 / 0.55));
  animation: word-rise 1s var(--ease-out-expo) 0.75s forwards, grad-drift 6s ease-in-out 2s infinite;
}
@keyframes grad-drift {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}

.h-tag {
  margin: 0;
  max-width: 640px;
  font-size: 17.5px;
  line-height: 1.55;
  color: rgb(255 255 255 / 0.72);
  text-wrap: balance;
  animation: rise 1s var(--ease-out-expo) both;
  animation-delay: 0.9s;
}
@keyframes rise {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

.h-ctas {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
  animation: rise 1s var(--ease-out-expo) both;
  animation-delay: 1.05s;
}
.h-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 58px;
  padding: 0 28px;
  border-radius: 14px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.01em;
  text-decoration: none;
  transition: transform 0.25s var(--ease-out-expo), filter 0.25s, box-shadow 0.25s;
}
.h-cta-main {
  position: relative;
  color: #fff !important;
  background: linear-gradient(135deg, #c25bd6 0%, #8e3ca0 100%);
  box-shadow:
    0 18px 44px -10px rgb(176 78 196 / 0.7),
    inset 0 1px 0 rgb(255 255 255 / 0.25);
  overflow: hidden;
}
.h-cta-main::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 30%, rgb(255 255 255 / 0.22) 50%, transparent 70%);
  transform: translateX(-120%);
  transition: transform 0.7s var(--ease-out-expo);
}
.h-cta-main:hover::before { transform: translateX(120%); }
.h-cta-main:hover {
  transform: translateY(-3px);
  filter: brightness(1.08);
  box-shadow:
    0 26px 56px -12px rgb(176 78 196 / 0.85),
    0 0 0 4px rgb(176 78 196 / 0.2);
}
.h-cta-arr { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; color: #fff; transition: transform 0.25s var(--ease-out-expo); }
.h-cta-arr svg { width: 100%; height: 100%; }
.h-cta-main:hover .h-cta-arr { transform: translateX(5px); }

.h-cta-ghost {
  color: #fff !important;
  background: rgb(255 255 255 / 0.05);
  border: 1px solid rgb(255 255 255 / 0.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.h-cta-ghost:hover {
  background: rgb(255 255 255 / 0.1);
  border-color: rgb(255 255 255 / 0.22);
  transform: translateY(-3px);
}
.h-cta-d { width: 22px; height: auto; color: #fff; }

.h-trust {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 9px 16px 9px 10px;
  border-radius: 999px;
  background: rgb(255 255 255 / 0.04);
  border: 1px solid rgb(255 255 255 / 0.08);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  animation: rise 1s var(--ease-out-expo) both;
  animation-delay: 1.2s;
}
.trust-dots { display: flex; align-items: center; }
.trust-dots .td {
  display: grid;
  place-items: center;
  width: 30px; height: 30px;
  border-radius: 999px;
  border: 2px solid #050209;
  margin-left: -10px;
  box-shadow: 0 2px 10px -2px rgb(0 0 0 / 0.6);
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #fff;
  text-shadow: 0 1px 2px rgb(0 0 0 / 0.25);
  transition: transform 0.25s var(--ease-out-expo);
}
.trust-dots .td:first-child { margin-left: 0; }
.trust-dots .td:hover {
  transform: translateY(-2px) scale(1.1);
  z-index: 2;
}
.trust-stars { color: #fbbf24; font-size: 13px; letter-spacing: 2px; }
.trust-text { font-size: 12.5px; color: rgb(255 255 255 / 0.7); }
.trust-text strong { color: #fff; font-weight: 700; }

/* Trust metrics with icons */
.trust-meta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-size: 12.5px;
}
.trust-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgb(255 255 255 / 0.7);
  white-space: nowrap;
}
.trust-ico {
  width: 14px;
  height: 14px;
  color: #e879f9;
  filter: drop-shadow(0 0 6px rgb(232 121 249 / 0.5));
  flex-shrink: 0;
}
.trust-item strong {
  color: #fff;
  font-weight: 700;
  font-family: var(--font-display);
  letter-spacing: -0.01em;
}
.trust-label { color: rgb(255 255 255 / 0.55); }
.trust-sep {
  width: 1px;
  height: 16px;
  background: rgb(255 255 255 / 0.12);
}
@media (max-width: 640px) {
  .trust-meta { flex-wrap: wrap; gap: 8px 12px; justify-content: center; }
  .trust-sep { display: none; }
}

/* Scroll indicator at hero bottom */
.h-scroll {
  position: absolute;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  z-index: 20;
  font-family: var(--font-display);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.5);
  animation: rise 1s var(--ease-out-expo) both;
  animation-delay: 1.5s;
  pointer-events: none;
}
.h-scroll-line {
  display: block;
  width: 1px;
  height: 42px;
  background: linear-gradient(180deg, rgb(232 121 249 / 0.7), transparent);
  animation: h-scroll-drop 2.2s ease-in-out infinite;
  transform-origin: top;
}
@keyframes h-scroll-drop {
  0%   { transform: scaleY(0);   opacity: 1; transform-origin: top; }
  55%  { transform: scaleY(1);   opacity: 1; transform-origin: top; }
  55.01% { transform-origin: bottom; }
  100% { transform: scaleY(0); opacity: 0.3; transform-origin: bottom; }
}

.h-scroll {
  position: absolute;
  left: 50%;
  bottom: 32px;
  transform: translateX(-50%);
  z-index: 11;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.5);
  animation: rise 1s var(--ease-out-expo) both;
  animation-delay: 1.5s;
}
.h-scroll-line {
  display: block;
  width: 1px;
  height: 40px;
  background: linear-gradient(180deg, rgb(232 121 249 / 0.6), transparent);
  animation: scroll-drop 2s ease-in-out infinite;
}
@keyframes scroll-drop {
  0%   { transform: scaleY(0); transform-origin: top; opacity: 1; }
  60%  { transform: scaleY(1); transform-origin: top; opacity: 1; }
  60.01% { transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; opacity: 0.3; }
}

@media (max-width: 760px) {
  .wall { transform: rotateX(38deg) rotateZ(-8deg) translateZ(-60px); }
  .tile { width: 170px; height: 110px; }
  .tile-p { font-size: 13px; padding: 5px 10px; }
  .h-display { font-size: clamp(40px, 12vw, 64px); }
  .hero-center { padding-bottom: 120px; }
}

/* ============================================================
   Unified home background — body covers the whole page
   ============================================================ */
body.page-index {
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgb(194 91 214 / 0.12), transparent 60%),
    radial-gradient(ellipse 60% 40% at 15% 55%, rgb(88 101 242 / 0.08), transparent 65%),
    radial-gradient(ellipse 60% 40% at 85% 90%, rgb(194 91 214 / 0.08), transparent 65%),
    #050209;
  color: #fff;
}
body.page-index .site-content { background: transparent; }

/* Hero is transparent so the body bg shows through */
.hero { background: transparent; }

/* ============================================================
   Top-selling · full-bleed horizontal poster gallery
   ============================================================ */
.top {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: 24px;
  margin-bottom: 64px;
  color: #fff;
  z-index: 2;
}

/* Section reveal when it enters the viewport */
@supports (animation-timeline: view()) {
  .top {
    animation: top-reveal 1s var(--ease-out-expo) both;
    animation-timeline: view();
    animation-range: entry 0% cover 22%;
  }
  @keyframes top-reveal {
    from { opacity: 0; transform: translateY(48px); }
    to   { opacity: 1; transform: translateY(0); }
  }
}
/* Centered header — just title + short hint */
.top-head {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 clamp(24px, 4vw, 64px) 36px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
}
.top-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(32px, 3.8vw, 52px);
  font-weight: 900;
  letter-spacing: -0.035em;
  line-height: 1;
  color: #fff;
  background: linear-gradient(180deg, #fff 0%, rgb(255 255 255 / 0.7) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.top-sub {
  font-size: 14px;
  color: rgb(255 255 255 / 0.55);
  max-width: 520px;
  line-height: 1.5;
  text-wrap: balance;
}

/* Footer with prominent "View all" button below the rail */
.top-foot {
  display: flex;
  justify-content: center;
  margin-top: 40px;
  padding: 0 24px;
}
.top-more {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  height: 52px;
  padding: 0 26px;
  border-radius: 14px;
  background: rgb(255 255 255 / 0.04);
  border: 1px solid rgb(255 255 255 / 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #fff !important;
  text-decoration: none;
  overflow: hidden;
  transition: background 0.3s var(--ease-out-expo), border-color 0.3s, transform 0.3s, box-shadow 0.3s;
}
.top-more::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgb(194 91 214 / 0.5), rgb(88 101 242 / 0.5));
  opacity: 0;
  transition: opacity 0.3s;
}
.top-more:hover {
  border-color: rgb(194 91 214 / 0.5);
  transform: translateY(-2px);
  box-shadow: 0 16px 40px -12px rgb(194 91 214 / 0.55);
}
.top-more:hover::before { opacity: 0.18; }
.top-more > * { position: relative; }
.top-more-icon {
  display: inline-grid;
  place-items: center;
  width: 28px; height: 28px;
  border-radius: 999px;
  background: linear-gradient(135deg, #c25bd6, #8e3ca0);
  transition: transform 0.3s var(--ease-out-expo), box-shadow 0.3s;
  box-shadow: 0 4px 12px -3px rgb(194 91 214 / 0.6);
}
.top-more-icon svg { width: 13px; height: 13px; color: #fff; }
.top-more:hover .top-more-icon {
  transform: translateX(4px) rotate(-8deg);
  box-shadow: 0 8px 20px -4px rgb(194 91 214 / 0.8);
}

.top-rail-wrap {
  position: relative;
  width: 100%;
}
.top-rail {
  list-style: none;
  margin: 0;
  padding: 20px clamp(24px, 4vw, 64px) 32px;
  display: flex;
  gap: 22px;
  justify-content: safe center;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: clamp(24px, 4vw, 64px);
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
}
.top-rail::-webkit-scrollbar { display: none; }
.top-rail:active { cursor: grabbing; }

/* Edge fades so the cards appear to flow off-screen rather than being clipped */
.top-rail-fade {
  position: absolute;
  top: 0; bottom: 0;
  width: clamp(48px, 6vw, 100px);
  pointer-events: none;
  z-index: 3;
}
.top-rail-fade-l { left: 0; background: linear-gradient(90deg, #050209 0%, transparent 100%); }
.top-rail-fade-r { right: 0; background: linear-gradient(270deg, #050209 0%, transparent 100%); }

.poster {
  --c1: #c25bd6;
  --c2: #25103a;
  flex: 0 0 clamp(320px, 26vw, 400px);
  scroll-snap-align: start;
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  isolation: isolate;
  background: linear-gradient(170deg, rgb(22 16 34 / 0.85), rgb(10 6 18 / 0.92));
  border: 1px solid rgb(255 255 255 / 0.07);
  box-shadow:
    0 24px 60px -20px rgb(0 0 0 / 0.7),
    inset 0 1px 0 rgb(255 255 255 / 0.04);
  transition:
    transform 0.4s var(--ease-out-expo),
    border-color 0.3s,
    box-shadow 0.4s;

  /* Entrance animation: staggered fade-in from bottom */
  opacity: 0;
  transform: translateY(36px);
  animation: poster-in 0.9s var(--ease-out-expo) forwards;
}
@keyframes poster-in {
  from { opacity: 0; transform: translateY(36px); }
  to   { opacity: 1; transform: translateY(0); }
}
.poster:nth-child(1) { animation-delay: 0.05s; }
.poster:nth-child(2) { animation-delay: 0.12s; }
.poster:nth-child(3) { animation-delay: 0.19s; }
.poster:nth-child(4) { animation-delay: 0.26s; }
.poster:nth-child(5) { animation-delay: 0.33s; }
.poster:nth-child(6) { animation-delay: 0.40s; }
.poster:nth-child(7) { animation-delay: 0.47s; }
.poster:nth-child(8) { animation-delay: 0.54s; }

/* Scroll-driven scale: cards in the center are 100%, edges slightly shrunk.
   Adds a subtle focus-depth effect as the user scrolls the carousel. */
@supports (animation-timeline: view(inline)) {
  .poster {
    animation-name: poster-in, poster-focus;
    animation-duration: 0.9s, 1ms;
    animation-timing-function: var(--ease-out-expo), linear;
    animation-fill-mode: forwards, both;
    animation-timeline: auto, view(inline);
    animation-range: auto, cover 0% cover 100%;
  }
  @keyframes poster-focus {
    0%, 100% { filter: brightness(0.85) saturate(0.9); }
    50%      { filter: brightness(1) saturate(1); }
  }
}

.poster:hover {
  transform: translateY(-8px) scale(1.015);
  border-color: rgb(from var(--c1) r g b / 0.45);
  box-shadow:
    0 40px 90px -20px rgb(0 0 0 / 0.9),
    0 0 0 1px rgb(from var(--c1) r g b / 0.4),
    0 0 50px -10px rgb(from var(--c1) r g b / 0.5),
    inset 0 1px 0 rgb(255 255 255 / 0.12);
}
.poster::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 5;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(120deg, transparent 35%, rgb(255 255 255 / 0.08) 50%, transparent 65%);
  transform: translateX(-120%);
  transition: transform 0.8s var(--ease-out-expo);
}
.poster:hover::after { transform: translateX(120%); }
.poster-link {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

/* Thumbnail on TOP — landscape 2:1 (wider = flatter) so the card itself
   feels wider without growing taller as its width increases. */
.poster-thumb {
  position: relative;
  aspect-ratio: 2 / 1;
  background:
    radial-gradient(ellipse 80% 70% at 30% 20%, rgb(from var(--c1) r g b / 0.55), transparent 65%),
    radial-gradient(ellipse 80% 90% at 80% 90%, rgb(from var(--c1) r g b / 0.3), transparent 65%),
    linear-gradient(160deg, color-mix(in srgb, var(--c2), var(--c1) 15%) 0%, var(--c2) 40%, color-mix(in srgb, var(--c2), #000 50%) 100%);
  background-size: cover;
  background-position: center;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.poster-thumb-img {
  background-color: #000;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}
.poster-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  display: block;
  transition: transform 0.5s var(--ease-out-expo);
}
/* Loading skeleton state — tags keep their colors, only name + price pulse */
.poster-skel .poster-body .poster-name,
.poster-skel .poster-body .poster-price {
  background: rgb(255 255 255 / 0.05);
  color: transparent !important;
  border-radius: 4px;
  animation: skel-pulse 1.4s ease-in-out infinite;
}
.poster-skel .poster-body .poster-price { min-width: 40px; }
.poster-skel .poster-thumb .poster-mark { opacity: 0.25; }
@keyframes skel-pulse {
  0%, 100% { opacity: 0.5; }
  50%      { opacity: 0.9; }
}
.poster:hover .poster-img { transform: scale(1.06); }
.poster-thumb:has(.poster-img)::before { opacity: 0.2; }
.poster-thumb::before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgb(255 255 255 / 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgb(255 255 255 / 0.04) 1px, transparent 1px);
  background-size: 24px 24px;
  -webkit-mask-image: radial-gradient(ellipse at center, black 5%, transparent 75%);
  mask-image: radial-gradient(ellipse at center, black 5%, transparent 75%);
  pointer-events: none;
}
.poster-thumb-img::before { opacity: 0.25; }

.poster-rank {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 5px 11px;
  border-radius: 999px;
  background: rgb(0 0 0 / 0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgb(255 255 255 / 0.15);
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #fff;
  z-index: 2;
}
.poster-mark {
  position: relative;
  font-family: var(--font-display);
  font-size: clamp(48px, 5vw, 72px);
  font-weight: 900;
  line-height: 0.9;
  letter-spacing: -0.05em;
  color: var(--c1);
  filter: drop-shadow(0 2px 12px rgb(from var(--c1) r g b / 0.5));
  pointer-events: none;
}

/* Body BELOW the thumbnail */
.poster-body {
  padding: 16px 18px 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.poster-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}
.poster-tag {
  padding: 3px 9px;
  border-radius: 4px;
  font-family: var(--font-display);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  /* Default (fallback) */
  background: rgb(255 255 255 / 0.06);
  border: 1px solid rgb(255 255 255 / 0.1);
  color: rgb(255 255 255 / 0.85);
}
/* Framework-specific colors */
.poster-tag[data-fw="ESX"] {
  background: rgb(59 130 246 / 0.14);
  border-color: rgb(59 130 246 / 0.45);
  color: #93c5fd;
}
.poster-tag[data-fw="QBCORE"] {
  background: rgb(249 115 22 / 0.14);
  border-color: rgb(249 115 22 / 0.45);
  color: #fdba74;
}
.poster-tag[data-fw="QBOX"] {
  background: rgb(34 211 153 / 0.14);
  border-color: rgb(34 211 153 / 0.45);
  color: #6ee7b7;
}
.poster-name {
  margin: 0;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.poster-cta {
  margin-top: 2px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid rgb(255 255 255 / 0.06);
}
.poster-price {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: #fff;
  transition: color 0.25s;
}
.poster:hover .poster-price {
  background: linear-gradient(180deg, #fff 0%, var(--c1) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
/* Poster on sale — was-price strikethrough above the current price */
.poster-pricewrap {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  line-height: 1.05;
}
.poster-price-was {
  font: 700 12px/1 var(--font-display);
  color: rgb(255 255 255 / 0.4);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.poster-price.is-sale {
  background: linear-gradient(135deg, #fda4af 0%, #fb7185 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
/* Sale tag overlay on poster thumb */
.poster-saletag {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 5;
  padding: 4px 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, #fb7185 0%, #f43f5e 100%);
  color: #fff;
  font: 900 10.5px/1 var(--font-display);
  letter-spacing: 0.04em;
  box-shadow: 0 6px 14px -6px rgb(244 63 94 / 0.55), inset 0 1px 0 rgb(255 255 255 / 0.2);
}
.poster-arr {
  display: inline-grid;
  place-items: center;
  width: 32px; height: 32px;
  border-radius: 999px;
  background: rgb(255 255 255 / 0.06);
  border: 1px solid rgb(255 255 255 / 0.1);
  font-size: 15px;
  color: rgb(255 255 255 / 0.7);
  transition: all 0.3s var(--ease-out-expo);
}
.poster:hover .poster-arr {
  background: linear-gradient(135deg, var(--c1), color-mix(in srgb, var(--c1), #000 30%));
  border-color: transparent;
  color: #fff;
  transform: translateX(3px);
  box-shadow: 0 6px 16px -4px rgb(from var(--c1) r g b / 0.55);
}

@media (max-width: 640px) {
  .top { margin-top: -80px; }
  .top-head { padding: 0 20px 22px; }
  .poster { flex: 0 0 78vw; }
}

/* ============================================================
   Live toast — compact purchase ticker floating in the hero
   ============================================================ */
.live-toast {
  position: absolute;
  left: 50%;
  bottom: clamp(20px, 4vh, 40px);
  z-index: 25;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 9px 16px 9px 12px;
  border-radius: 999px;
  background: rgb(12 8 20 / 0.75);
  border: 1px solid rgb(255 255 255 / 0.08);
  backdrop-filter: blur(14px) saturate(1.3);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  box-shadow:
    0 14px 32px -12px rgb(0 0 0 / 0.6),
    inset 0 1px 0 rgb(255 255 255 / 0.05);
  font-size: 12.5px;
  color: rgb(255 255 255 / 0.82);
  line-height: 1.3;
  max-width: min(90vw, 380px);
  transform: translateX(-50%);
  animation: lt-enter 0.6s var(--ease-out-expo) 1.2s backwards;
}
@keyframes lt-enter {
  from { opacity: 0; transform: translateX(-50%) translateY(16px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

.lt-dot {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #22c55e;
  box-shadow: 0 0 8px #22c55e, 0 0 0 3px rgb(34 197 94 / 0.2);
  animation: lt-pulse 1.6s ease-in-out infinite;
}
@keyframes lt-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.55; transform: scale(0.7); }
}

.lt-text {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lt-text strong {
  color: #fff;
  font-weight: 700;
}
.lt-verb {
  color: rgb(255 255 255 / 0.5);
}
.lt-text em {
  font-style: normal;
  color: #fca5d7;
  font-weight: 600;
}

/* Rotation animation — text slides out up, new one slides in from below */
.live-toast.lt-out .lt-text {
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 0.3s ease, transform 0.3s var(--ease-out-expo);
}
.live-toast.lt-in .lt-text {
  animation: lt-slide-in 0.4s var(--ease-out-expo);
}
@keyframes lt-slide-in {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.lt-text {
  transition: opacity 0.3s ease, transform 0.3s var(--ease-out-expo);
}

@media (max-width: 560px) {
  .live-toast {
    font-size: 11.5px;
    padding: 7px 14px 7px 10px;
    max-width: calc(100vw - 32px);
  }
}


/* ============================================================
   Scroll-in reveal — replays every time the section re-enters view
   ============================================================ */
.top,
.reviews,
.why,
.faq {
  opacity: 0;
  transform: translateY(70px) scale(0.97);
  filter: blur(6px);
  transition:
    opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.85s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.6s ease-out;
  will-change: opacity, transform, filter;
}
.top.is-visible,
.reviews.is-visible,
.why.is-visible,
.faq.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}


/* ============================================================
   Reviews · full-bleed dual marquee
   ============================================================ */
.reviews {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: -24px;
  margin-bottom: 72px;
  padding: 24px 0 32px;
  color: #fff;
}

.rv-head {
  max-width: 900px;
  margin: 0 auto 32px;
  padding: 0 clamp(24px, 4vw, 40px);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.rv-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(30px, 3.8vw, 48px);
  font-weight: 900;
  letter-spacing: -0.035em;
  line-height: 1.05;
  color: #fff;
  text-wrap: balance;
}
.rv-title-hl {
  background: linear-gradient(120deg, #fda4d3 0%, #e879f9 50%, #c25bd6 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 24px rgb(232 121 249 / 0.35));
}
.rv-meta-bar {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 8px 18px;
  border-radius: 999px;
  background: rgb(255 255 255 / 0.04);
  border: 1px solid rgb(255 255 255 / 0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  font-size: 12.5px;
  color: rgb(255 255 255 / 0.7);
}
.rv-meta-item strong {
  color: #fff;
  font-weight: 700;
  font-family: var(--font-display);
  letter-spacing: -0.01em;
  margin-right: 4px;
}
.rv-meta-sep {
  width: 1px;
  height: 14px;
  background: rgb(255 255 255 / 0.12);
}

/* Marquee rows */
.rv-marquee {
  width: 100%;
  overflow: hidden;
  padding: 10px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, black 80px, black calc(100% - 80px), transparent);
  mask-image: linear-gradient(90deg, transparent 0, black 80px, black calc(100% - 80px), transparent);
}
.rv-marquee + .rv-marquee { margin-top: 18px; }
.rv-track {
  display: flex;
  gap: 20px;
  width: max-content;
  animation-duration: 55s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  will-change: transform;
}
.rv-marquee-l .rv-track { animation-name: rv-scroll-l; }
.rv-marquee-r .rv-track { animation-name: rv-scroll-r; animation-duration: 65s; }
@keyframes rv-scroll-l {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes rv-scroll-r {
  from { transform: translateX(-50%); }
  to   { transform: translateX(0); }
}
.rv-marquee:hover .rv-track { animation-play-state: paused; }

/* Card */
.rv-card {
  flex: 0 0 clamp(320px, 28vw, 420px);
  margin: 0;
  padding: 22px 24px;
  border-radius: 18px;
  background: linear-gradient(170deg, rgb(22 16 34 / 0.75), rgb(10 6 18 / 0.9));
  border: 1px solid rgb(255 255 255 / 0.06);
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  box-shadow:
    0 18px 40px -18px rgb(0 0 0 / 0.6),
    inset 0 1px 0 rgb(255 255 255 / 0.04);
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: transform 0.3s var(--ease-out-expo), border-color 0.3s, box-shadow 0.3s;
}
.rv-card:hover {
  transform: translateY(-4px);
  border-color: rgb(232 121 249 / 0.3);
  box-shadow:
    0 24px 54px -18px rgb(0 0 0 / 0.7),
    0 0 0 1px rgb(232 121 249 / 0.22),
    inset 0 1px 0 rgb(255 255 255 / 0.08);
}

.rv-card .rv-stars {
  color: #fbbf24;
  font-size: 14px;
  letter-spacing: 2px;
  line-height: 1;
  filter: drop-shadow(0 0 8px rgb(251 191 36 / 0.3));
}

.rv-card blockquote {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: rgb(255 255 255 / 0.88);
  font-style: normal;
  font-weight: 500;
  position: relative;
  padding-left: 12px;
  border-left: 2px solid rgb(232 121 249 / 0.5);
}
.rv-card blockquote b {
  font-weight: 800;
  background: linear-gradient(120deg, #fda4d3, #e879f9);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.rv-card figcaption {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid rgb(255 255 255 / 0.06);
}
.rv-ava {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 800;
  color: #fff;
  flex-shrink: 0;
  box-shadow: 0 4px 10px -3px rgb(0 0 0 / 0.4);
}
.rv-who {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.rv-who strong {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #fff;
}
.rv-who em {
  font-style: normal;
  font-size: 11.5px;
  color: rgb(255 255 255 / 0.55);
  letter-spacing: 0.02em;
}

@media (max-width: 640px) {
  .reviews { padding-top: 8px; margin-bottom: 56px; }
  .rv-head { margin-bottom: 24px; }
  .rv-meta-bar { flex-wrap: wrap; gap: 8px 12px; justify-content: center; }
  .rv-meta-sep { display: none; }
  .rv-card { flex: 0 0 80vw; }
}

/* ============================================================
   Why Choose Us section
   ============================================================ */
.why {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-bottom: 64px;
  padding: 56px clamp(24px, 4vw, 48px) 48px;
  color: #fff;
}
.why-head {
  max-width: 820px;
  margin: 0 auto 48px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.why-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(32px, 4vw, 54px);
  font-weight: 900;
  letter-spacing: -0.035em;
  line-height: 1.05;
  color: #fff;
  text-wrap: balance;
}
.why-title-hl {
  background: linear-gradient(120deg, #fda4d3 0%, #e879f9 50%, #c25bd6 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 24px rgb(232 121 249 / 0.35));
}
.why-sub {
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
  color: rgb(255 255 255 / 0.62);
  max-width: 560px;
  text-wrap: balance;
}

.why-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
@media (max-width: 900px) {
  .why-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .why-grid { grid-template-columns: 1fr; }
}

.why-card {
  --accent: #e879f9;
  position: relative;
  padding: 26px 24px 26px;
  border-radius: 18px;
  background: linear-gradient(170deg, rgb(22 16 34 / 0.75), rgb(10 6 18 / 0.9));
  border: 1px solid rgb(255 255 255 / 0.07);
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  box-shadow:
    0 20px 50px -22px rgb(0 0 0 / 0.6),
    inset 0 1px 0 rgb(255 255 255 / 0.04);
  overflow: hidden;
  transition: transform 0.3s var(--ease-out-expo), border-color 0.3s, box-shadow 0.3s;
}
.why-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(
    ellipse 60% 40% at 0% 0%,
    rgb(from var(--accent) r g b / 0.12),
    transparent 60%
  );
  opacity: 0.6;
  transition: opacity 0.3s;
}
.why-card:hover {
  transform: translateY(-4px);
  border-color: rgb(from var(--accent) r g b / 0.35);
  box-shadow:
    0 28px 60px -20px rgb(0 0 0 / 0.7),
    0 0 0 1px rgb(from var(--accent) r g b / 0.25),
    inset 0 1px 0 rgb(255 255 255 / 0.08);
}
.why-card:hover::before { opacity: 1; }

.why-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgb(from var(--accent) r g b / 0.14);
  border: 1px solid rgb(from var(--accent) r g b / 0.35);
  color: var(--accent);
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
}
.why-icon svg { width: 22px; height: 22px; }

.why-card-title {
  margin: 0 0 8px;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #fff;
  position: relative;
  z-index: 1;
}
.why-card-text {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: rgb(255 255 255 / 0.62);
  position: relative;
  z-index: 1;
}

@media (max-width: 640px) {
  .why { padding: 48px 20px 40px; margin-bottom: 48px; }
  .why-head { margin-bottom: 32px; }
}

/* ============================================================
   FAQ section
   ============================================================ */
.faq {
  position: relative;
  width: 100%;
  max-width: 820px;
  margin: 0 auto 80px;
  padding: 40px clamp(20px, 4vw, 32px) 28px;
  color: #fff;
}
.faq-head {
  text-align: center;
  margin-bottom: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.faq-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(30px, 3.6vw, 46px);
  font-weight: 900;
  letter-spacing: -0.035em;
  line-height: 1.05;
  color: #fff;
  text-wrap: balance;
}
.faq-title-hl {
  background: linear-gradient(120deg, #fda4d3 0%, #e879f9 50%, #c25bd6 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 24px rgb(232 121 249 / 0.3));
}
.faq-sub {
  margin: 0;
  max-width: 520px;
  font-size: 15px;
  line-height: 1.55;
  color: rgb(255 255 255 / 0.62);
  text-wrap: balance;
}

.faq-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.faq-item {
  border-radius: 14px;
  background: linear-gradient(170deg, rgb(22 16 34 / 0.6), rgb(10 6 18 / 0.8));
  border: 1px solid rgb(255 255 255 / 0.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  overflow: hidden;
  transition: border-color 0.25s, background 0.25s, box-shadow 0.3s;
}
.faq-item:hover {
  border-color: rgb(255 255 255 / 0.12);
  background: linear-gradient(170deg, rgb(26 18 40 / 0.7), rgb(12 8 22 / 0.88));
}
.faq-item[open] {
  border-color: rgb(232 121 249 / 0.3);
  background: linear-gradient(170deg, rgb(30 20 46 / 0.8), rgb(14 8 24 / 0.92));
  box-shadow:
    0 18px 40px -18px rgb(0 0 0 / 0.6),
    0 0 0 1px rgb(232 121 249 / 0.18);
}

.faq-q {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 22px;
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #fff;
  user-select: none;
}
.faq-q::-webkit-details-marker { display: none; }
.faq-q::marker { content: ""; }

.faq-chevron {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: rgb(255 255 255 / 0.05);
  border: 1px solid rgb(255 255 255 / 0.08);
  color: rgb(255 255 255 / 0.65);
  flex-shrink: 0;
  transition: transform 0.35s var(--ease-out-expo), background 0.25s, border-color 0.25s, color 0.25s;
}
.faq-chevron svg { width: 14px; height: 14px; }
.faq-item[open] .faq-chevron {
  transform: rotate(180deg);
  background: rgb(232 121 249 / 0.18);
  border-color: rgb(232 121 249 / 0.4);
  color: #fca5d7;
}

/* Smooth reveal of the answer body */
.faq-a-wrap {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.4s var(--ease-out-expo);
}
.faq-item[open] .faq-a-wrap {
  grid-template-rows: 1fr;
}
.faq-a {
  overflow: hidden;
  min-height: 0;
}
.faq-a p {
  margin: 0;
  padding: 0 22px 20px;
  font-size: 14.5px;
  line-height: 1.6;
  color: rgb(255 255 255 / 0.72);
}
.faq-a strong {
  color: #fff;
  font-weight: 700;
}
/* Inline link inside FAQ answers — pill-style so it reads as clickable */
.faq-a .faq-link,
.sup-faq-a .faq-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 10px;
  margin: 0 2px;
  border-radius: 999px;
  background: rgb(194 91 214 / 0.14);
  border: 1px solid rgb(194 91 214 / 0.35);
  color: #f0b6ff;
  text-decoration: none;
  font-weight: 700;
  transition:
    background 0.2s,
    border-color 0.2s,
    color 0.2s,
    transform 0.2s var(--ease-out-expo, cubic-bezier(.19,1,.22,1));
}
.faq-a .faq-link strong,
.sup-faq-a .faq-link strong { color: inherit; }
.faq-a .faq-link:hover,
.sup-faq-a .faq-link:hover {
  background: rgb(194 91 214 / 0.28);
  border-color: rgb(194 91 214 / 0.6);
  color: #fff;
  transform: translateY(-1px);
}
.faq-a .faq-link:active,
.sup-faq-a .faq-link:active { transform: translateY(0); }
.faq-a .faq-link-icon,
.sup-faq-a .faq-link-icon {
  display: inline-flex;
  align-items: center;
}
.faq-a .faq-link-icon svg,
.sup-faq-a .faq-link-icon svg {
  width: 12px !important;
  height: 12px !important;
  transition: transform 0.2s var(--ease-out-expo, cubic-bezier(.19,1,.22,1));
}
.faq-a .faq-link:hover .faq-link-icon svg,
.sup-faq-a .faq-link:hover .faq-link-icon svg {
  transform: translate(2px, -2px);
}
.faq-a code {
  padding: 1px 6px;
  border-radius: 4px;
  background: rgb(232 121 249 / 0.12);
  border: 1px solid rgb(232 121 249 / 0.25);
  font-family: "Consolas", "Menlo", monospace;
  font-size: 12.5px;
  color: #fca5d7;
}

@media (max-width: 640px) {
  .faq { padding: 40px 16px 24px; margin-bottom: 64px; }
  .faq-head { margin-bottom: 28px; }
  .faq-q { font-size: 14px; padding: 16px 18px; }
  .faq-a p { padding: 0 18px 18px; font-size: 13.5px; }
}

/* ============================================================
   Unified top header — logo on the left, menu on the right
   ============================================================ */
html, body { overflow-x: clip; }

/* ---------- Desktop (> 960px): single fixed header ---------- */
@media (width > 960px) {

  /* Layout tokens */
  :root {
    --header-h: 80px;
    --header-edge-pad: max(
      24px,
      calc((100vw - var(--content-inner-width)) / 2 + var(--content-padding))
    );
  }

  /* Shift page content so nothing hides behind the fixed header */
  body { padding-top: var(--header-h); }

  /* ========== Background bar (the navigation) ========== */
  .site-navigation {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    height: var(--header-h);
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: none !important;
    background: var(--color-bg);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom: 1px solid var(--color-border-soft);
    box-shadow: none;
    transition: box-shadow 0.25s ease, border-color 0.25s ease;
  }
  .site-navigation.stuck {
    box-shadow: var(--shadow-sm);
    border-bottom-color: var(--color-border);
  }

  /* Centered menu, space reserved on both sides for logo + actions */
  .site-navigation .menu {
    display: flex !important;
    align-items: center;
    justify-content: center !important;
    gap: 6px;
    height: 100%;
    width: 100%;
    max-width: none;
    margin: 0 !important;
    padding-left: calc(var(--header-edge-pad) + 220px) !important;
    padding-right: calc(var(--header-edge-pad) + 280px) !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    line-height: 1;
  }
  .site-navigation:not(.stuck) .menu {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
  }

  .site-navigation .menu > .menu-item {
    flex: 0 0 auto;
    max-width: none;
  }
  .site-navigation .menu > .menu-item > .menu-link {
    position: relative;
    padding: 12px 18px;
    border-radius: 0;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.005em;
    color: var(--color-text-secondary);
    background: transparent !important;
    text-shadow: none;
    transition: color 0.2s var(--ease-out-smooth);
  }
  .site-navigation .menu > .menu-item > .menu-link::after {
    content: "";
    display: block;
    position: absolute;
    left: 50%;
    bottom: 4px;
    width: 0;
    height: 4px;
    background: #b04ec4;
    border-radius: 2px;
    transform: translateX(-50%);
    box-shadow: 0 0 14px -2px rgb(176 78 196 / 0.6);
    transition: width 0.3s var(--ease-out-expo);
  }
  .site-navigation .menu > .menu-item > .menu-link:hover,
  .site-navigation .menu > .menu-item > .menu-link.link-active {
    color: var(--color-text-darker);
  }
  .site-navigation .menu > .menu-item > .menu-link:hover::after,
  .site-navigation .menu > .menu-item > .menu-link.link-active::after {
    width: calc((100% - 36px) * 0.7);
  }
  /* Hide the logo slot inside the nav (we use .site-header for that) */
  .site-navigation .site-title-link { display: none !important; }

  /* ========== Left overlay: logo ========== */
  .site-header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1001;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    height: var(--header-h);
    min-height: 0 !important;
    width: auto;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 var(--header-edge-pad);
    padding-left: 80px;
    background: transparent !important;
    pointer-events: none;
  }
  .site-header .hero-image,
  .site-header .site-actions { display: none !important; }

  .site-header .site-title,
  body.is-logo-centered .site-header .site-title,
  body.is-logo-centered.has-hero .site-header .site-title,
  body.has-hero .site-header .site-title {
    position: static !important;
    inset: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    height: auto !important;
    max-width: 240px !important;
    text-align: left !important;
    font-family: var(--font-display);
    font-size: 22px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -0.03em !important;
    color: var(--color-text-darker) !important;
    filter: none !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: auto;
  }
  .site-header .site-title img {
    max-height: 44px !important;
    max-width: 180px !important;
    width: auto !important;
    height: auto !important;
    border-radius: var(--radius-sm);
  }
  .site-header .site-title a { color: inherit; }

  /* ========== Right + left-edge overlay: actions ========== */
  .site-header-top {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1001;
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    height: var(--header-h);
    min-height: 0 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: 16px !important;
    padding-right: 48px !important;
    background: transparent !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
    pointer-events: none;
  }
  .site-header-top > * { pointer-events: auto; }

  /* Burger not needed on desktop */
  .site-header-top .toggle-navigation { display: none !important; }
  .site-header-top .site-title { display: none !important; }

  /* Dark mode toggle hidden site-wide */
  .site-header-top .color-scheme,
  .color-scheme { display: none !important; }

  /* Reset margin-left:auto so buttons cluster on the right */
  .site-header-top .site-link,
  .site-header-top .log-in,
  .site-header-top .user-name,
  .site-header-top .open-basket { margin-left: 0 !important; }

  /* Order inside the right cluster: Discord → Basket → Currency → Login */
  .site-header-top .site-link,
  .site-header-top .discord-injected { order: 0; }
  .site-header-top .open-basket { order: 1; }
  .site-header-top .currency-injected { order: 2; }
  .site-header-top .log-in,
  .site-header-top .user-name { order: 3; }

  /* Currency switcher — pill showing the currently active currency code */
  .site-header-top .currency-injected {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 46px;
    min-width: 46px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid rgb(255 255 255 / 0.08);
    background: rgb(255 255 255 / 0.04);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: rgb(255 255 255 / 0.9);
    cursor: pointer;
    font: 700 13px/1 system-ui, -apple-system, "Segoe UI", sans-serif;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow:
      0 6px 16px -6px rgb(0 0 0 / 0.5),
      inset 0 1px 0 rgb(255 255 255 / 0.06);
    transition:
      transform 0.25s var(--ease-out-expo),
      background 0.2s,
      border-color 0.2s,
      color 0.2s,
      box-shadow 0.25s;
  }
  .site-header-top .currency-injected:hover {
    background: rgb(176 78 196 / 0.18);
    border-color: rgb(176 78 196 / 0.4);
    transform: translateY(-2px);
    box-shadow:
      0 12px 28px -6px rgb(176 78 196 / 0.45),
      inset 0 1px 0 rgb(255 255 255 / 0.12);
  }
  .site-header-top .currency-injected:active {
    transform: translateY(0) scale(0.96);
    transition-duration: 0.1s;
  }
  .site-header-top .currency-injected.is-active {
    background: rgb(176 78 196 / 0.22);
    border-color: rgb(176 78 196 / 0.5);
    box-shadow:
      0 12px 28px -6px rgb(176 78 196 / 0.55),
      inset 0 1px 0 rgb(255 255 255 / 0.12);
  }

  /* Search button — icon-only pill at order:-1 (left of Discord). The
     dropdown panel that holds the input + results hangs below it. */
  .site-header-top .search-injected {
    order: -1;
    margin-right: 6px;
    position: relative;
    display: flex;
    align-items: center;
    height: 46px;
  }

  .site-header-top .search-injected-btn {
    position: relative;
    z-index: 1;
    display: inline-grid;
    place-items: center;
    height: 46px;
    width: 46px;
    border-radius: 999px;
    border: 1px solid rgb(255 255 255 / 0.08);
    background: rgb(255 255 255 / 0.04);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: rgb(255 255 255 / 0.9);
    cursor: pointer;
    box-shadow:
      0 6px 16px -6px rgb(0 0 0 / 0.5),
      inset 0 1px 0 rgb(255 255 255 / 0.06);
    transition:
      transform 0.25s var(--ease-out-expo),
      background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.25s;
  }
  .site-header-top .search-injected-btn svg { width: 17px; height: 17px; }
  .site-header-top .search-injected-btn:hover {
    background: rgb(176 78 196 / 0.18);
    border-color: rgb(176 78 196 / 0.4);
    transform: translateY(-2px);
    box-shadow:
      0 12px 28px -6px rgb(176 78 196 / 0.45),
      inset 0 1px 0 rgb(255 255 255 / 0.12);
  }
  .site-header-top .search-injected-btn:active {
    transform: translateY(0) scale(0.96);
    transition-duration: 0.1s;
  }
  .site-header-top .search-injected.is-expanded .search-injected-btn {
    background: rgb(176 78 196 / 0.22);
    border-color: rgb(176 78 196 / 0.5);
    color: #fff;
  }
  .site-header-top .search-injected-ico-search { display: block; }
  .site-header-top .search-injected-ico-close  { display: none; }
  .site-header-top .search-injected.is-expanded .search-injected-ico-search { display: none; }
  .site-header-top .search-injected.is-expanded .search-injected-ico-close  { display: block; }
}

/* ============================================================
   Currency dropdown popover (body-level, not inside header)
   ============================================================ */
.currency-pop {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 10000;
  width: 140px;
  max-height: 360px;
  overflow: hidden;
  border-radius: 12px;
  background: rgb(18 12 28 / 0.96);
  border: 1px solid rgb(255 255 255 / 0.08);
  backdrop-filter: blur(20px) saturate(1.3);
  -webkit-backdrop-filter: blur(20px) saturate(1.3);
  box-shadow: 0 20px 50px -15px rgb(0 0 0 / 0.7);
  opacity: 0;
  transform: translateY(-6px) scale(0.98);
  pointer-events: none;
  transition:
    opacity 0.18s var(--ease-out-expo),
    transform 0.18s var(--ease-out-expo);
  color: #fff;
}
.currency-pop.is-open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.currency-pop-list {
  margin: 0;
  padding: 4px;
  list-style: none;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgb(194 91 214 / 0.4) transparent;
}
.currency-pop-list::-webkit-scrollbar { width: 4px; }
.currency-pop-list::-webkit-scrollbar-thumb { background: rgb(194 91 214 / 0.4); border-radius: 2px; }

.currency-pop-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 8px 12px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: inherit;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.12s;
}
.currency-pop-item:hover { background: rgb(194 91 214 / 0.14); }
.currency-pop-item.is-current {
  background: rgb(194 91 214 / 0.22);
  color: #fca5d7;
}

.cur-code {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.cur-sym {
  font-size: 12px;
  color: rgb(255 255 255 / 0.5);
}
.currency-pop-item.is-current .cur-sym { color: rgb(252 165 215 / 0.75); }

/* ============================================================
   Site search — dropdown panel hanging below the header button.
   ============================================================ */
.search-injected-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 420px;
  max-width: calc(100vw - 32px);
  z-index: 10002;
  border-radius: 14px;
  background: linear-gradient(180deg, #120a24 0%, #0a0614 100%);
  border: 1px solid rgb(255 255 255 / 0.08);
  box-shadow: 0 28px 56px -16px rgb(0 0 0 / 0.7);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-10px) scale(0.98);
  pointer-events: none;
  transition:
    opacity 0.22s ease,
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
.search-injected.is-expanded .search-injected-panel {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.search-injected-input-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid rgb(255 255 255 / 0.06);
}
.search-injected-input-ico {
  flex-shrink: 0;
  width: 18px; height: 18px;
  color: rgb(255 255 255 / 0.5);
}
.search-injected-input {
  flex: 1; min-width: 0;
  background: transparent;
  border: 0;
  outline: 0;
  color: #fff;
  font: 600 15px/1 system-ui, -apple-system, "Segoe UI", sans-serif;
  letter-spacing: -0.005em;
}
.search-injected-input::-webkit-search-cancel-button { -webkit-appearance: none; }
.search-injected-input::placeholder { color: rgb(255 255 255 / 0.45); }

.search-injected-results {
  list-style: none;
  margin: 0;
  padding: 6px;
  max-height: 64vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.search-injected-results::-webkit-scrollbar { width: 6px; }
.search-injected-results::-webkit-scrollbar-thumb { background: rgb(194 91 214 / 0.35); border-radius: 3px; }
.search-injected-results[hidden] { display: none; }

.search-injected-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s, transform 0.15s;
}
.search-injected-row:hover {
  background: rgb(194 91 214 / 0.14);
  transform: translateX(2px);
}
.search-injected-thumb {
  flex-shrink: 0;
  width: 44px; height: 44px;
  border-radius: 8px;
  overflow: hidden;
  background: linear-gradient(135deg, #2a1240, #14081f);
  display: grid;
  place-items: center;
  border: 1px solid rgb(255 255 255 / 0.06);
}
.search-injected-thumb img { width: 100%; height: 100%; object-fit: cover; }
.search-injected-mark {
  font: 800 17px/1 var(--font-display);
  background: linear-gradient(135deg, #f472b6 0%, #c25bd6 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.search-injected-info {
  flex: 1; min-width: 0;
  display: flex; flex-direction: column;
  gap: 5px;
}
.search-injected-name {
  font: 700 13.5px/1.2 var(--font-display);
  color: #fff;
  letter-spacing: -0.005em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.search-injected-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
}
.search-injected-fw {
  padding: 2px 6px;
  border-radius: 4px;
  background: rgb(0 0 0 / 0.4);
  border: 1px solid rgb(255 255 255 / 0.08);
  font: 700 9px/1 var(--font-display);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.search-injected-fw[data-fw="ESX"]        { color: #60a5fa; border-color: rgb(96 165 250 / 0.35); }
.search-injected-fw[data-fw="QBCORE"]     { color: #fbbf24; border-color: rgb(251 191 36 / 0.35); }
.search-injected-fw[data-fw="QBOX"]       { color: #34d399; border-color: rgb(52 211 153 / 0.35); }
.search-injected-fw[data-fw="VRP"]        { color: #d8b4fe; border-color: rgb(168 85 247 / 0.4); }
.search-injected-fw[data-fw="STANDALONE"] { color: #fda4af; border-color: rgb(251 113 133 / 0.4); }
.search-injected-cat {
  font-size: 11px;
  color: rgb(255 255 255 / 0.45);
  letter-spacing: 0.02em;
}
.search-injected-price {
  flex-shrink: 0;
  font: 800 14px/1 var(--font-display);
  letter-spacing: -0.01em;
  background: linear-gradient(135deg, #f0b6ff 0%, #c25bd6 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  font-variant-numeric: tabular-nums;
}
.search-injected-empty {
  list-style: none;
  padding: 22px 16px;
  text-align: center;
  color: rgb(255 255 255 / 0.45);
  font-size: 13px;
}

@media (max-width: 720px) {
  .search-injected-panel { width: calc(100vw - 32px); }
}

  /* Discord icon (uses the .site-link slot) */
  .site-header-top .site-link {
    position: relative;
    width: 46px;
    height: 46px;
    border-radius: 999px;
    background: linear-gradient(135deg, #5865F2 0%, #4752c4 100%);
    color: #fff;
    padding: 0;
    --btn-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'><path d='M20.317 4.369A19.791 19.791 0 0 0 16.558 3c-.164.294-.355.69-.487.999a18.27 18.27 0 0 0-5.142 0A12.683 12.683 0 0 0 10.432 3a19.736 19.736 0 0 0-3.759 1.369C2.977 9.823 1.977 15.14 2.477 20.379a19.9 19.9 0 0 0 5.993 3.03c.485-.664.916-1.37 1.287-2.109a12.93 12.93 0 0 1-2.027-.978c.17-.126.336-.256.497-.39 3.904 1.81 8.124 1.81 11.98 0 .164.134.33.264.499.39-.648.386-1.33.712-2.03.98.371.737.8 1.444 1.286 2.108a19.876 19.876 0 0 0 5.997-3.032c.585-6.09-.994-11.36-4.142-15.009zM9.68 17.017c-1.199 0-2.184-1.12-2.184-2.483 0-1.363.962-2.484 2.184-2.484 1.222 0 2.207 1.12 2.184 2.484 0 1.363-.962 2.483-2.184 2.483zm7.97 0c-1.2 0-2.185-1.12-2.185-2.483 0-1.363.963-2.484 2.185-2.484 1.222 0 2.207 1.12 2.184 2.484 0 1.363-.962 2.483-2.184 2.483z'/></svg>");
    --btn-icon-size: 22px;
    box-shadow:
      0 8px 20px -6px rgb(88 101 242 / 0.55),
      inset 0 1px 0 rgb(255 255 255 / 0.18);
    transition:
      transform 0.25s var(--ease-out-expo),
      box-shadow 0.25s var(--ease-out-expo),
      filter 0.25s ease;
  }
  .site-header-top .site-link:hover {
    transform: translateY(-2px) scale(1.06);
    filter: brightness(1.08);
    box-shadow:
      0 12px 28px -6px rgb(88 101 242 / 0.7),
      inset 0 1px 0 rgb(255 255 255 / 0.25),
      0 0 0 5px rgb(88 101 242 / 0.18);
  }
  .site-header-top .site-link:active {
    transform: translateY(0) scale(0.96);
    transition-duration: 0.1s;
  }
  .site-header-top .site-link .text,
  .site-header-top .site-link .text-hover { display: none; }

  /* Basket -> purple circular button (Tebex native .open-basket) */
  .site-header-top .open-basket {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, #c25bd6 0%, #8e3ca0 100%) !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    box-shadow:
      0 8px 20px -6px rgb(176 78 196 / 0.55),
      inset 0 1px 0 rgb(255 255 255 / 0.22) !important;
    transition:
      transform 0.25s var(--ease-out-expo),
      box-shadow 0.25s var(--ease-out-expo),
      filter 0.25s ease;
  }
  .site-header-top .open-basket::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background-color: transparent !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/><path d='M3 6h18'/><path d='M16 10a4 4 0 0 1-8 0'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 22px 22px !important;
    mask: none !important;
    -webkit-mask: none !important;
    mask-image: none !important;
    -webkit-mask-image: none !important;
    transform: none !important;
  }
  .site-header-top .open-basket::after { display: none !important; content: none !important; }
  .site-header-top .open-basket > * { display: none !important; }
  .site-header-top .open-basket:hover {
    transform: translateY(-2px) scale(1.06);
    filter: brightness(1.08);
    box-shadow:
      0 12px 28px -6px rgb(176 78 196 / 0.7),
      inset 0 1px 0 rgb(255 255 255 / 0.3),
      0 0 0 5px rgb(176 78 196 / 0.18) !important;
  }
  .site-header-top .open-basket:active {
    transform: translateY(0) scale(0.96);
    transition-duration: 0.1s;
  }
  .site-header-top .open-basket .text,
  .site-header-top .open-basket .text-hover { display: none !important; }

  /* Login -> outlined purple pill with arrow (LOGGED OUT state) */
  .site-header-top .log-in {
    --btn-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b04ec4' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14'/><path d='m12 5 7 7-7 7'/></svg>");
    --btn-icon-size: 16px;
    height: 46px;
    padding: 0 22px 0 18px;
    border-radius: 999px;
    background: transparent;
    color: #b04ec4;
    border: 2px solid #b04ec4;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.02em;
    transition:
      background-color 0.25s var(--ease-out-expo),
      color 0.25s ease,
      transform 0.25s var(--ease-out-expo),
      box-shadow 0.25s ease;
  }
  .site-header-top .log-in:hover {
    background-color: rgb(176 78 196 / 0.14);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px -6px rgb(176 78 196 / 0.45);
  }
  .site-header-top .log-in:active {
    transform: translateY(0);
    transition-duration: 0.1s;
  }
  .site-header-top .log-in .text {
    display: inline-block !important;
    font-size: 14px !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: inherit;
  }

  /* User name -> LOGGED IN state: solid purple pill with avatar + name + logout on hover */
  .site-header-top .user-name {
    position: relative;
    height: 46px;
    min-width: 140px;
    padding: 0 20px !important;
    border-radius: 999px;
    background: linear-gradient(135deg, #c25bd6 0%, #8e3ca0 100%);
    color: #fff;
    border: none;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.01em;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    overflow: hidden;
    box-shadow:
      0 8px 20px -6px rgb(176 78 196 / 0.55),
      inset 0 1px 0 rgb(255 255 255 / 0.2);
    transition:
      transform 0.25s var(--ease-out-expo),
      box-shadow 0.25s var(--ease-out-expo),
      filter 0.25s ease;
  }
  .site-header-top .user-name::before {
    content: "" !important;
    display: block !important;
    flex: 0 0 auto !important;
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='4'/><path d='M4 21c0-4.418 3.582-8 8-8s8 3.582 8 8'/></svg>") center/contain no-repeat !important;
    mask: none !important;
    -webkit-mask: none !important;
    transform: none !important;
    transition: background-image 0.2s ease;
  }
  .site-header-top .user-name::before {
    transition: opacity 0.2s ease, background-image 0.2s ease;
  }
  .site-header-top .user-name:hover::before,
  .site-header-top .user-name:focus-within::before {
    opacity: 0;
  }
  .site-header-top .user-name:hover {
    transform: translateY(-2px);
    filter: brightness(1.08);
    box-shadow:
      0 12px 28px -6px rgb(176 78 196 / 0.7),
      inset 0 1px 0 rgb(255 255 255 / 0.28),
      0 0 0 4px rgb(176 78 196 / 0.18);
  }
  .site-header-top .user-name:active {
    transform: translateY(0);
    transition-duration: 0.1s;
  }

  /* Username label: stays in flex flow, truncated */
  .site-header-top .user-name .text {
    display: inline-block !important;
    flex: 0 1 auto;
    max-width: 140px;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #fff !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 1;
    visibility: visible !important;
    transition: opacity 0.2s ease;
  }

  /* "Log out" label: absolutely centered over the whole button */
  .site-header-top .user-name .text-hover {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #fff !important;
    white-space: nowrap;
    opacity: 0;
    visibility: visible !important;
    pointer-events: none;
    transition: opacity 0.2s ease;
  }

  /* Toggle: username fades out, "Log out" fades in. Button width stays stable. */
  .site-header-top .user-name:hover .text,
  .site-header-top .user-name:focus-within .text {
    opacity: 0;
  }
  .site-header-top .user-name:hover .text-hover,
  .site-header-top .user-name:focus-within .text-hover {
    opacity: 1;
  }

  /* ========== Discord link — catches ANY <a href*="discord"> in header/nav ========== */
  .site-navigation .menu a[href*="discord"],
  .site-navigation a[href*="discord"],
  .site-header-top a[href*="discord"],
  .site-header a[href*="discord"] {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, #5865F2 0%, #4752c4 100%) !important;
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    overflow: hidden;
    white-space: nowrap;
    text-shadow: none !important;
    box-shadow:
      0 8px 20px -6px rgb(88 101 242 / 0.55),
      inset 0 1px 0 rgb(255 255 255 / 0.18) !important;
    transition:
      transform 0.25s var(--ease-out-expo),
      box-shadow 0.25s var(--ease-out-expo),
      filter 0.25s ease;
  }
  .site-navigation .menu a[href*="discord"]::before,
  .site-navigation a[href*="discord"]::before,
  .site-header-top a[href*="discord"]::before,
  .site-header a[href*="discord"]::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background-color: transparent !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 127.14 96.36' fill='white'><path d='M107.7 8.07A105.15 105.15 0 0 0 81.47 0a72.06 72.06 0 0 0-3.36 6.83 97.68 97.68 0 0 0-29.11 0A72.37 72.37 0 0 0 45.64 0a105.89 105.89 0 0 0-26.25 8.09C2.79 32.65-1.71 56.6.54 80.21a105.73 105.73 0 0 0 32.17 16.15 77.7 77.7 0 0 0 6.89-11.11 68.42 68.42 0 0 1-10.85-5.18c.91-.66 1.8-1.34 2.66-2a75.57 75.57 0 0 0 64.32 0c.87.71 1.76 1.39 2.66 2a68.68 68.68 0 0 1-10.87 5.19 77 77 0 0 0 6.89 11.1 105.25 105.25 0 0 0 32.19-16.14c2.64-27.38-4.51-51.11-18.9-72.15ZM42.45 65.69C36.18 65.69 31 60 31 53s5-12.74 11.43-12.74S54 46 53.89 53s-5.05 12.69-11.44 12.69Zm42.24 0C78.41 65.69 73.25 60 73.25 53s5-12.74 11.44-12.74S96.23 46 96.12 53s-5.04 12.69-11.43 12.69Z'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 22px auto !important;
    mask: none !important;
    -webkit-mask: none !important;
    mask-image: none !important;
    -webkit-mask-image: none !important;
    transform: none !important;
  }
  .site-navigation .menu a[href*="discord"]:hover,
  .site-header-top a[href*="discord"]:hover,
  .site-navigation a[href*="discord"]:hover,
  .site-header a[href*="discord"]:hover {
    transform: translateY(-2px) scale(1.06);
    filter: brightness(1.08);
    box-shadow:
      0 12px 28px -6px rgb(88 101 242 / 0.7),
      inset 0 1px 0 rgb(255 255 255 / 0.25),
      0 0 0 5px rgb(88 101 242 / 0.18) !important;
  }
  .site-navigation .menu a[href*="discord"]:active,
  .site-header-top a[href*="discord"]:active,
  .site-navigation a[href*="discord"]:active,
  .site-header a[href*="discord"]:active {
    transform: translateY(0) scale(0.96);
    transition-duration: 0.1s;
  }
  .site-navigation .menu a[href*="discord"]::after {
    display: none !important;
    content: none !important;
  }
  /* Kill the hover underline on the Discord item */
  .site-navigation .menu a[href*="discord"]::after,
  .site-navigation .menu a[href*="discord"]::before {
    display: none !important;
    content: none !important;
  }
  /* Collapse the parent <li> so it doesn't take menu-item padding */
  .site-navigation .menu > .menu-item:has(a[href*="discord"]) {
    flex: 0 0 auto !important;
    max-width: 42px !important;
    margin-left: auto;
  }

}

/* ---------- Hide auto-generated category nav items immediately ----------
   Tebex injects <li> entries pointing to /category/... for every store
   category. We don't want those — we use our own /scripts /bundles
   /gift-cards /subscription /support pages. Hiding via CSS prevents the
   flash of unstyled categories appearing while the JS cleanup runs. */
.site-navigation .menu-item:has(> a[href*="/category/"]),
.site-navigation .menu li:has(> a[href*="/category/"]),
.site-navigation li:has(> a[href*="/category/"]) {
  display: none !important;
}

/* ---------- Hide dark mode toggle EVERYWHERE ----------
   The class on Tebex's dark mode button is `.color-scheme`. */
.site-header-top .color-scheme,
.site-navigation .color-scheme,
.site-header .color-scheme,
button.color-scheme:not(html):not(body),
a.color-scheme:not(html):not(body) {
  display: none !important;
}

/* ---------- Mobile (≤ 960px): full-width sticky top bar ---------- */
@media (width <= 960px) {
  .site-header-top {
    position: sticky;
    top: 0;
    z-index: 1000;
    max-width: none !important;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-bottom: 0;
    padding-left: var(--widget-padding);
    padding-right: var(--widget-padding);
    min-height: 56px;
    background:
      linear-gradient(
        180deg,
        rgb(from var(--color-bg) r g b / 0.94) 0%,
        rgb(from var(--color-bg) r g b / 0.78) 100%
      );
    backdrop-filter: var(--bg-blur-strong);
    -webkit-backdrop-filter: var(--bg-blur-strong);
    border-bottom: 1px solid var(--color-border-soft);
    box-shadow: var(--shadow-sm);
  }
  .site-header-top .site-title {
    position: static;
    inset: auto;
    margin: 0 auto 0 0;
    text-align: left;
    font-size: 16px;
  }
  .site-header-top .site-title img { max-height: 28px; }

  /* Scale Tebex's native buttons down to ~75% on mobile.
     Using `transform: scale` preserves Tebex's internal centering. */
  .site-header-top .btn-glyph,
  .site-header-top .btn-glyph-text,
  .site-header-top .site-link,
  .site-header-top .open-basket,
  .site-header-top .discord-injected,
  .site-header-top a[href*="discord"] {
    transform: scale(0.78);
    transform-origin: center;
    margin: 0 -4px !important;
  }

  /* Hide login / user-name buttons on mobile (declutter the header) */
  .site-header-top .log-in,
  .site-header-top .user-name {
    display: none !important;
  }
}
@media (max-width: 480px) {
  .site-header-top .btn-glyph,
  .site-header-top .btn-glyph-text,
  .site-header-top .site-link,
  .site-header-top .open-basket,
  .site-header-top .discord-injected,
  .site-header-top a[href*="discord"] {
    transform: scale(0.7);
    margin: 0 -6px !important;
  }
  .site-header-top { padding-left: 8px !important; padding-right: 8px !important; }
}

/* ============================================================
   Floating discount code — sits bottom-left site-wide
   ============================================================ */
.promo-float {
  position: fixed;
  bottom: 22px;
  left: 22px;
  z-index: 9990;
  width: 300px;
  padding: 22px 22px 20px;
  border-radius: 20px;
  color: #fff;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(140% 110% at 0% 0%, rgb(194 91 214 / 0.55) 0%, transparent 55%),
    linear-gradient(155deg, #1a0e2e 0%, #120820 55%, #0a0414 100%);
  border: 1px solid rgb(255 255 255 / 0.08);
  box-shadow:
    0 24px 60px -18px rgb(0 0 0 / 0.75),
    0 0 0 1px rgb(194 91 214 / 0.2) inset,
    0 0 0 4px rgb(194 91 214 / 0.08);
  font-family: var(--font-body, system-ui);

  /* Enter / exit state (drives the animation) */
  opacity: 0;
  transform: translateY(30px) scale(0.96);
  transition:
    opacity 0.45s var(--ease-out-expo, cubic-bezier(.19,1,.22,1)),
    transform 0.45s var(--ease-out-expo, cubic-bezier(.19,1,.22,1));

  /* Gentle idle float */
  animation: promo-bob 6s ease-in-out infinite 0.8s;
}
.promo-float.is-in {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.promo-float.is-out {
  opacity: 0;
  transform: translateY(20px) scale(0.95);
  animation: none;
}
@keyframes promo-bob {
  0%, 100% { translate: 0 0; }
  50%      { translate: 0 -6px; }
}

/* Animated spark/aura that rotates behind content */
.promo-float-spark {
  position: absolute;
  inset: -60%;
  z-index: -1;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    rgb(194 91 214 / 0.35) 40deg,
    transparent 90deg,
    transparent 230deg,
    rgb(136 75 245 / 0.35) 280deg,
    transparent 320deg
  );
  filter: blur(30px);
  animation: promo-spin 8s linear infinite;
  opacity: 0.85;
}
@keyframes promo-spin {
  to { transform: rotate(360deg); }
}

/* Sparkle ribbon dot grid */
.promo-float-ribbon {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: radial-gradient(rgb(255 255 255 / 0.08) 1px, transparent 1px);
  background-size: 14px 14px;
  mask-image: radial-gradient(ellipse at 0% 0%, #000 40%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at 0% 0%, #000 40%, transparent 75%);
  opacity: 0.7;
}

.promo-float-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  border: 1px solid rgb(255 255 255 / 0.12);
  background: rgb(255 255 255 / 0.06);
  color: rgb(255 255 255 / 0.7);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
  padding: 0;
  transition: background 0.18s, color 0.18s, transform 0.18s;
}
.promo-float-close:hover {
  background: rgb(255 255 255 / 0.14);
  color: #fff;
  transform: rotate(90deg);
}

.promo-float-badge {
  display: inline-block;
  padding: 5px 11px;
  border-radius: 999px;
  background: rgb(194 91 214 / 0.18);
  border: 1px solid rgb(194 91 214 / 0.4);
  color: #f0b6ff;
  font: 700 10px/1 var(--font-display, system-ui);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.promo-float-title {
  margin: 0 0 10px;
  font: 800 22px/1.2 var(--font-display, system-ui);
  letter-spacing: -0.02em;
  color: #fff;
}
.promo-float-pct {
  background: linear-gradient(135deg, #f0b6ff 0%, #c25bd6 50%, #884bf5 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  font-size: 26px;
}

.promo-float-copy {
  margin: 0 0 14px;
  font-size: 12.5px;
  line-height: 1.5;
  color: rgb(255 255 255 / 0.6);
}

/* Code + copy button */
.promo-float-code {
  display: flex;
  align-items: stretch;
  background: rgb(0 0 0 / 0.35);
  border: 1px dashed rgb(194 91 214 / 0.45);
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 12px;
}
.promo-float-code code {
  flex: 1;
  display: grid;
  place-items: center;
  padding: 10px 12px;
  font: 700 14px/1 "SFMono-Regular", ui-monospace, Menlo, monospace;
  letter-spacing: 0.14em;
  color: #fff;
  user-select: all;
}
.promo-float-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 14px;
  border: none;
  border-left: 1px solid rgb(255 255 255 / 0.08);
  background: linear-gradient(135deg, #c25bd6 0%, #884bf5 100%);
  color: #fff;
  font: 700 11px/1 var(--font-display, system-ui);
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: filter 0.18s, transform 0.18s;
}
.promo-float-copy-btn:hover { filter: brightness(1.1); }
.promo-float-copy-btn:active { transform: scale(0.96); }
.promo-float-copy-btn svg { width: 14px; height: 14px; }
.promo-float-copy-btn.is-copied {
  background: linear-gradient(135deg, #34d399 0%, #10b981 100%);
}

.promo-float-foot {
  display: block;
  font-size: 10.5px;
  letter-spacing: 0.08em;
  color: rgb(255 255 255 / 0.38);
  text-transform: uppercase;
}

@media (max-width: 520px) {
  .promo-float {
    left: 12px;
    right: 12px;
    bottom: 12px;
    width: auto;
  }
}

/* Re-open circle — shows once the card is dismissed */
.promo-reopen {
  position: fixed;
  bottom: 22px;
  left: 22px;
  z-index: 9990;
  width: 56px;
  height: 56px;
  border-radius: 999px;
  border: 1px solid rgb(255 255 255 / 0.1);
  background:
    radial-gradient(120% 120% at 30% 20%, rgb(240 182 255 / 0.25) 0%, transparent 55%),
    linear-gradient(135deg, #c25bd6 0%, #884bf5 100%);
  color: #fff;
  cursor: pointer;
  display: grid;
  place-items: center;
  padding: 0;
  box-shadow:
    0 14px 34px -10px rgb(136 75 245 / 0.6),
    inset 0 1px 0 rgb(255 255 255 / 0.22);

  opacity: 0;
  transform: translateY(20px) scale(0.7);
  transition:
    opacity 0.32s var(--ease-out-expo, cubic-bezier(.19,1,.22,1)),
    transform 0.32s var(--ease-out-expo, cubic-bezier(.19,1,.22,1)),
    box-shadow 0.25s;
  animation: promo-bob 6s ease-in-out infinite 0.8s;
}
.promo-reopen.is-in {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.promo-reopen:hover {
  box-shadow:
    0 20px 48px -10px rgb(136 75 245 / 0.75),
    inset 0 1px 0 rgb(255 255 255 / 0.3),
    0 0 0 6px rgb(194 91 214 / 0.18);
}
.promo-reopen:active { transform: translateY(0) scale(0.95); transition-duration: 0.1s; }
.promo-reopen svg { width: 24px; height: 24px; }

/* Pulsing halo around the circle to draw the eye */
.promo-reopen-pulse {
  position: absolute;
  inset: -2px;
  border-radius: 999px;
  border: 2px solid rgb(194 91 214 / 0.7);
  pointer-events: none;
  animation: promo-pulse 2.2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes promo-pulse {
  0%   { transform: scale(1);   opacity: 0.85; }
  70%  { transform: scale(1.6); opacity: 0;    }
  100% { transform: scale(1.6); opacity: 0;    }
}

@media (max-width: 520px) {
  .promo-reopen { left: 16px; bottom: 16px; width: 50px; height: 50px; }
  .promo-reopen svg { width: 22px; height: 22px; }
}

/* ============================================================
   Category page — full rebuild
   ============================================================ */
body.page-category {
  background: #060310;
}
body.page-category .site-content,
body.page-category .store-home,
body.page-category #shop { display: block !important; }

/* ---------- Hero (inline header, no separator) ---------- */
.cat-hero {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 32px clamp(24px, 5vw, 72px) 18px;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  background: #060310;
  border: none;
}
.cat-hero-orbs,
.cat-hero-grid,
.cat-crumb,
.cat-eyebrow,
.cat-eyebrow-dot { display: none !important; }

.cat-hero-inner {
  max-width: 1300px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap;
  text-align: left;
}

.cat-title {
  margin: 0;
  font: 800 clamp(22px, 2.4vw, 30px)/1.1 var(--font-display);
  letter-spacing: -0.02em;
  display: inline-flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
}
.cat-title-line { color: #fff; }
.cat-title-accent {
  background: linear-gradient(135deg, #f472b6 0%, #c25bd6 45%, #884bf5 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  font-style: italic;
  font-size: 0.85em;
  font-weight: 700;
}

.cat-lede { display: none; }

.cat-stats {
  display: flex; align-items: center; gap: 18px;
  margin: 0;
}
.cat-stat { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; line-height: 1; }
.cat-stat strong { font: 700 15px/1 var(--font-display); color: #fff; }
.cat-stat strong small { font-size: 10px; opacity: 0.5; font-weight: 500; }
.cat-stat span { font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: rgb(255 255 255 / 0.45); }
.cat-stat-sep { width: 1px; height: 22px; background: rgb(255 255 255 / 0.08); }

@media (max-width: 640px) {
  .cat-hero { padding: 24px 20px 14px; }
  .cat-hero-inner { gap: 14px; }
  .cat-stats { gap: 14px; flex-wrap: wrap; }
}

/* ---------- Toolbar — blends with hero, no divider ---------- */
.cat-toolbar {
  position: sticky; top: var(--header-h, 64px); z-index: 20;
  width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  padding: 4px clamp(24px, 5vw, 72px) 14px;
  background: rgb(6 3 16 / 0.88);
  backdrop-filter: blur(14px) saturate(1.1);
  -webkit-backdrop-filter: blur(14px) saturate(1.1);
  border: none;
}

/* When the toolbar is the lead element (no hero above) give it breathing room */
.cat-toolbar--lead { padding-top: 24px; padding-bottom: 16px; }

/* Inline title + count beside the filters */
.cat-toolbar-title {
  display: inline-flex; align-items: baseline; gap: 10px;
  margin-right: auto;
  color: #fff;
  flex-shrink: 0;
}
.cat-toolbar-title strong {
  font: 800 20px/1 var(--font-display);
  letter-spacing: -0.02em;
  color: #fff;
}
.cat-toolbar-count {
  padding: 3px 8px;
  border-radius: 999px;
  background: rgb(194 91 214 / 0.14);
  border: 1px solid rgb(194 91 214 / 0.3);
  font: 700 11px/1 var(--font-display);
  letter-spacing: 0.04em;
  color: #f0b6ff;
}
.cat-toolbar-inner {
  max-width: 1300px; margin: 0 auto;
  display: flex; align-items: center; gap: 16px;
  flex-wrap: wrap;
}

.cat-search {
  position: relative; flex: 1 1 260px; min-width: 220px;
  display: flex; align-items: center; gap: 10px;
  padding: 10px 16px;
  border-radius: 999px;
  background: rgb(255 255 255 / 0.04);
  border: 1px solid rgb(255 255 255 / 0.08);
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.cat-search:focus-within {
  border-color: rgb(194 91 214 / 0.55);
  background: rgb(255 255 255 / 0.06);
  box-shadow: 0 0 0 4px rgb(194 91 214 / 0.12);
}
.cat-search svg { width: 16px; height: 16px; color: rgb(255 255 255 / 0.5); flex-shrink: 0; }
.cat-search input {
  flex: 1; border: none; background: transparent; outline: none;
  color: #fff; font-size: 13.5px; font-family: inherit;
}
.cat-search input::placeholder { color: rgb(255 255 255 / 0.4); }

.cat-chips { display: flex; gap: 6px; padding: 4px; border-radius: 999px; background: rgb(255 255 255 / 0.04); border: 1px solid rgb(255 255 255 / 0.06); }
.cat-chip {
  padding: 8px 14px; border: none; border-radius: 999px;
  background: transparent; color: rgb(255 255 255 / 0.6);
  font: 700 12px/1 var(--font-display); letter-spacing: 0.04em;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.cat-chip:hover { color: #fff; }
.cat-chip.is-active {
  background: linear-gradient(135deg, #c25bd6 0%, #884bf5 100%);
  color: #fff;
  box-shadow: 0 6px 16px -6px rgb(136 75 245 / 0.5);
}

.cat-sort { display: flex; align-items: center; gap: 8px; }
.cat-sort-label { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: rgb(255 255 255 / 0.5); font-weight: 700; }
.cat-sort-select {
  padding: 9px 34px 9px 14px;
  border-radius: 999px;
  border: 1px solid rgb(255 255 255 / 0.08);
  background: rgb(255 255 255 / 0.04);
  color: #fff; font-family: inherit; font-size: 13px; font-weight: 600;
  cursor: pointer;
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 12px;
}
.cat-sort-select:focus { outline: none; border-color: rgb(194 91 214 / 0.55); }

/* ---------- Grid — flows directly from toolbar, no separator ---------- */
.cat-grid-wrap {
  width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  padding: 18px clamp(24px, 5vw, 72px) 60px;
  background: #060310;
}
.cat-grid {
  max-width: 1300px; margin: 0 auto;
  list-style: none; padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* always 4 per row on desktop */
  gap: 22px;
}
@media (max-width: 1080px) { .cat-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px)  { .cat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .cat-grid { grid-template-columns: 1fr; } }

/* Grouped sections (Scripts / Packages / Subscriptions / DLC / Gift Cards) */
.cat-group {
  max-width: 1300px;
  margin: 0 auto 52px;
}
.cat-group:last-child { margin-bottom: 0; }

.cat-group-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 16px;
  margin: 0 0 20px;
  padding: 0 2px 14px;
  border-bottom: 1px solid rgb(255 255 255 / 0.06);
}
.cat-group-head-txt {
  display: flex; flex-direction: column; gap: 4px;
}
.cat-group-title {
  margin: 0;
  font: 800 22px/1 var(--font-display);
  letter-spacing: -0.02em;
  color: #fff;
}
.cat-group-hint {
  margin: 0;
  font-size: 12.5px; line-height: 1.4;
  color: rgb(255 255 255 / 0.45);
}
.cat-group-count {
  padding: 4px 10px;
  border-radius: 999px;
  background: rgb(194 91 214 / 0.12);
  border: 1px solid rgb(194 91 214 / 0.3);
  font: 700 11px/1 var(--font-display);
  letter-spacing: 0.04em;
  color: #f0b6ff;
  flex-shrink: 0;
}

/* Card */
.cat-card {
  list-style: none;
  opacity: 0; transform: translateY(24px);
  animation: cat-card-in 0.65s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  animation-delay: calc(var(--i, 0) * 45ms);
}
@keyframes cat-card-in {
  to { opacity: 1; transform: translateY(0); }
}

/* ---- Skeleton placeholders shown while the listing is loading.
   Match the geometry of .cat-card-link so the swap to real cards
   doesn't reflow. */
.cat-skel {
  list-style: none;
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: 18px;
  background: linear-gradient(180deg, #120a24 0%, #0a0614 100%);
  border: 1px solid rgb(255 255 255 / 0.06);
  overflow: hidden;
  position: relative;
  animation: none;
  opacity: 1;
  transform: none;
}
.cat-skel-thumb {
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, #14091f 0%, #0a0614 100%);
}
.cat-skel-body {
  display: flex; flex-direction: column;
  gap: 10px;
  padding: 18px 20px 20px;
  flex: 1;
}
.cat-skel-line {
  height: 11px;
  border-radius: 6px;
  background: linear-gradient(135deg, #1a0e30 0%, #14081f 100%);
}
.cat-skel-line--80 { width: 70%; height: 14px; margin-bottom: 2px; }
.cat-skel-line--95 { width: 92%; }
.cat-skel-line--65 { width: 58%; }
.cat-skel-line--30 { width: 28%; height: 14px; }
.cat-skel-pill {
  width: 70px;
  height: 24px;
  border-radius: 999px;
}
.cat-skel-foot {
  margin-top: auto;
  padding-top: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid rgb(255 255 255 / 0.06);
}
.cat-skel::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    transparent 0%,
    rgb(194 91 214 / 0.08) 50%,
    transparent 100%);
  animation: cat-skel-shimmer 1.4s ease-in-out infinite;
  pointer-events: none;
}
@keyframes cat-skel-shimmer {
  from { transform: translateX(-100%); }
  to   { transform: translateX(100%); }
}
/* When the bundle/subscription grid is in skeleton mode, give cards
   a slightly taller body to match the real bundle card shape. */
.bundle-grid .cat-skel .cat-skel-body { gap: 8px; }
.bundle-grid .cat-skel .cat-skel-line--95,
.bundle-grid .cat-skel .cat-skel-line--65 { width: 88%; }

.cat-card-link {
  display: flex; flex-direction: column;
  height: 100%;
  border-radius: 18px;
  background: linear-gradient(180deg, #120a24 0%, #0a0614 100%);
  border: 1px solid rgb(255 255 255 / 0.06);
  text-decoration: none; color: #fff;
  overflow: hidden;
  transition:
    transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.25s,
    box-shadow 0.3s;
}
.cat-card-link:hover {
  transform: translateY(-6px);
  border-color: rgb(194 91 214 / 0.4);
  box-shadow:
    0 24px 50px -20px rgb(0 0 0 / 0.7),
    0 0 0 1px rgb(194 91 214 / 0.2) inset;
}

.cat-card-thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: linear-gradient(135deg, #14091f 0%, #0a0614 100%);
  display: grid; place-items: center;
}
.cat-card-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.cat-card-link:hover .cat-card-thumb img { transform: scale(1.06); }
.cat-card-mark {
  font: 900 44px/1 var(--font-display);
  letter-spacing: -0.02em;
  background: linear-gradient(135deg, #f472b6 0%, #c25bd6 50%, #884bf5 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

.cat-card-tags {
  position: absolute; top: 12px; left: 12px;
  display: flex; gap: 4px; flex-wrap: wrap; max-width: calc(100% - 24px);
}
.cat-card-tag {
  padding: 4px 8px;
  border-radius: 6px;
  background: rgb(0 0 0 / 0.55);
  backdrop-filter: blur(6px);
  border: 1px solid rgb(255 255 255 / 0.08);
  font: 700 9.5px/1 var(--font-display);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.cat-card-tag[data-fw="ESX"]        { color: #60a5fa; border-color: rgb(96 165 250 / 0.35); }
.cat-card-tag[data-fw="QBCORE"]     { color: #fbbf24; border-color: rgb(251 191 36 / 0.35); }
.cat-card-tag[data-fw="QBOX"]       { color: #34d399; border-color: rgb(52 211 153 / 0.35); }
.cat-card-tag[data-fw="VRP"]        { color: #d8b4fe; border-color: rgb(168 85 247 / 0.4); }
.cat-card-tag[data-fw="STANDALONE"] { color: #fda4af; border-color: rgb(251 113 133 / 0.4); }

.cat-card-body {
  display: flex; flex-direction: column; gap: 8px;
  padding: 18px 20px 20px;
  flex: 1;
}
.cat-card-name {
  margin: 0;
  font: 800 17px/1.25 var(--font-display);
  letter-spacing: -0.01em;
  color: #fff;
}
.cat-card-desc {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: rgb(255 255 255 / 0.55);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.cat-card-foot {
  margin-top: auto; padding-top: 14px;
  display: flex; align-items: center; justify-content: space-between;
  border-top: 1px solid rgb(255 255 255 / 0.06);
}
.cat-card-price {
  font: 800 18px/1 var(--font-display);
  letter-spacing: -0.01em;
  background: linear-gradient(135deg, #f0b6ff 0%, #c25bd6 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
/* On-sale price: stack [was 19.99] [now 14.99] */
.cat-card-pricewrap {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  line-height: 1;
}
.cat-card-price-was {
  font: 700 11px/1 var(--font-display);
  color: rgb(255 255 255 / 0.4);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  text-decoration-color: rgb(255 255 255 / 0.4);
  letter-spacing: 0.01em;
}
.cat-card-price.is-sale {
  background: linear-gradient(135deg, #fda4af 0%, #fb7185 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
/* Sale percentage tag — corner badge on the thumb */
.cat-card-saletag {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 5;
  padding: 5px 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, #fb7185 0%, #f43f5e 100%);
  color: #fff;
  font: 900 11px/1 var(--font-display);
  letter-spacing: 0.04em;
  box-shadow:
    0 6px 14px -6px rgb(244 63 94 / 0.55),
    inset 0 1px 0 rgb(255 255 255 / 0.2);
}
.cat-card-cta {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgb(194 91 214 / 0.12);
  border: 1px solid rgb(194 91 214 / 0.3);
  color: #f0b6ff;
  font: 700 11px/1 var(--font-display);
  letter-spacing: 0.08em; text-transform: uppercase;
  transition: background 0.2s, color 0.2s, transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
.cat-card-cta svg { width: 12px; height: 12px; transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1); }
.cat-card-link:hover .cat-card-cta {
  background: rgb(194 91 214 / 0.28);
  color: #fff;
}
.cat-card-link:hover .cat-card-cta svg { transform: translateX(3px); }

/* ============================================================
   Bundle cards (v12) — Same shell as /scripts cards, but with the
   description area replaced by an always-visible "Includes" list
   so users can see at a glance which scripts are inside the bundle.
   ============================================================ */
.bundle-grid {
  /* Bundles get one less column than /scripts to give the includes
     list a bit more horizontal room. */
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 22px;
}
@media (max-width: 1080px) { .bundle-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 560px)  { .bundle-grid { grid-template-columns: 1fr !important; } }

/* Count tag on the thumb — styled like the framework chips on /scripts */
.bndl-count-tag {
  padding: 4px 9px;
  border-radius: 6px;
  background: rgb(0 0 0 / 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgb(194 91 214 / 0.35);
  color: #f0b6ff;
  font: 800 9.5px/1 var(--font-display);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Savings sale tag — green variant of the script saletag */
.cat-card-saletag.is-bundle {
  background: linear-gradient(135deg, #34d399 0%, #10b981 100%);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  box-shadow:
    0 6px 14px -6px rgb(16 185 129 / 0.55),
    inset 0 1px 0 rgb(255 255 255 / 0.2);
}

/* The card shell is a <div> for bundles (so inner script rows can be
   real anchors). These zones are the anchors that link to the bundle
   page itself — thumb, title and footer. */
.bndl-zone {
  display: block;
  text-decoration: none;
  color: inherit;
}
/* When the zone also carries .cat-card-foot, keep the foot's flex
   layout so the price stays on the left and View on the right. */
.bndl-zone.cat-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.bndl-title-zone { padding: 0; }

/* Includes block — replaces the .cat-card-desc area on a bundle card */
.bndl-includes {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 2px;
}
.bndl-includes-label {
  font: 800 9.5px/1 var(--font-display);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.4);
}
.bndl-includes-list {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
/* Row is now an anchor that links to the included script's own page */
a.bndl-inc-row {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 5px 8px;
  border-radius: 8px;
  background: rgb(255 255 255 / 0.025);
  border: 1px solid rgb(255 255 255 / 0.05);
  text-decoration: none;
  color: inherit;
  transition:
    background 0.2s,
    border-color 0.2s,
    transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.cat-card-link:hover a.bndl-inc-row {
  background: rgb(194 91 214 / 0.08);
  border-color: rgb(194 91 214 / 0.18);
}
/* Stronger highlight when the user hovers the row itself, signalling
   that this specific row is the click target (not the whole card). */
a.bndl-inc-row:hover {
  background: rgb(194 91 214 / 0.18) !important;
  border-color: rgb(194 91 214 / 0.45) !important;
  transform: translateX(2px);
}
a.bndl-inc-row:hover .bndl-inc-name { color: #fff; }
a.bndl-inc-row:hover .bndl-inc-chev {
  color: #f0b6ff;
  transform: translateX(2px);
}
.bndl-inc-thumb {
  flex-shrink: 0;
  width: 24px; height: 24px;
  border-radius: 5px;
  overflow: hidden;
  background: linear-gradient(135deg, #2a1240, #14081f);
  border: 1px solid rgb(255 255 255 / 0.08);
  display: grid; place-items: center;
}
.bndl-inc-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.bndl-inc-mark {
  font: 800 9px/1 var(--font-display);
  color: rgb(255 255 255 / 0.85);
  letter-spacing: -0.01em;
}
.bndl-inc-name {
  flex: 1; min-width: 0;
  font: 600 12px/1.3 var(--font-display);
  color: rgb(255 255 255 / 0.78);
  letter-spacing: -0.005em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 0.2s;
}
.bndl-inc-chev {
  flex-shrink: 0;
  width: 12px; height: 12px;
  color: rgb(255 255 255 / 0.3);
  transition: color 0.2s, transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
}

/* ============================================================
   Bundle /package page — "What's included" tab
   Replaces Features/Specs/FAQ when the package is a bundle.
   Reuses .cat-card-link for the included script cards so the
   look is identical to /scripts.
   ============================================================ */

/* Count pill next to the tab label, e.g. "What's included [5]" */
.pk-tab-count {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 18px;
  padding: 0 6px;
  margin-left: 4px;
  border-radius: 999px;
  background: rgb(194 91 214 / 0.18);
  border: 1px solid rgb(194 91 214 / 0.4);
  color: #f0b6ff;
  font: 800 10px/1 var(--font-display);
  letter-spacing: 0.03em;
}
.pk-tab.is-active .pk-tab-count {
  background: rgb(194 91 214 / 0.28);
  color: #fff;
  border-color: rgb(194 91 214 / 0.6);
}

/* Compact summary bar — single row: count chip on the left, inline
   savings on the right. Replaces the old big banner. */
.pk-bndl-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding: 10px 14px;
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgb(194 91 214 / 0.07) 0%, rgb(136 75 245 / 0.03) 100%),
    linear-gradient(180deg, #120a24 0%, #0a0614 100%);
  border: 1px solid rgb(194 91 214 / 0.18);
  margin-bottom: 16px;
}
.pk-bndl-bar-count {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font: 600 13px/1 var(--font-display);
  color: rgb(255 255 255 / 0.7);
  letter-spacing: -0.005em;
}
.pk-bndl-bar-count svg {
  width: 16px; height: 16px;
  color: #f0b6ff;
}
.pk-bndl-bar-count strong {
  color: #fff;
  font-weight: 800;
}
.pk-bndl-bar-savings {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-variant-numeric: tabular-nums;
}
.pk-bndl-bar-savings:empty { display: none; }
.pk-bndl-sav-strike {
  font: 600 13px/1 var(--font-display);
  color: rgb(255 255 255 / 0.45);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  text-decoration-color: rgb(255 255 255 / 0.4);
}
.pk-bndl-sav-arrow {
  font: 700 12px/1 var(--font-display);
  color: rgb(255 255 255 / 0.35);
}
.pk-bndl-sav-now {
  font: 800 14px/1 var(--font-display);
  letter-spacing: -0.01em;
  background: linear-gradient(135deg, #f0b6ff 0%, #c25bd6 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pk-bndl-sav-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, #34d399 0%, #10b981 100%);
  color: #fff;
  font: 800 10.5px/1 var(--font-display);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  box-shadow:
    0 6px 12px -6px rgb(16 185 129 / 0.45),
    inset 0 1px 0 rgb(255 255 255 / 0.18);
}
.pk-bndl-sav-pct {
  font-weight: 900;
}

/* Grid of included-script cards — three across on desktop */
.pk-bndl-grid {
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
@media (max-width: 1080px) { .pk-bndl-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .pk-bndl-grid { grid-template-columns: 1fr; } }

/* Skeleton placeholder while we wait for the cache / API */
.pk-bndl-skel {
  aspect-ratio: 4 / 5;
  border-radius: 18px;
  background:
    linear-gradient(180deg, #120a24 0%, #0a0614 100%);
  border: 1px solid rgb(255 255 255 / 0.06);
  position: relative;
  overflow: hidden;
}
.pk-bndl-skel::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(90deg,
    transparent 0%,
    rgb(194 91 214 / 0.06) 50%,
    transparent 100%);
  animation: pk-bndl-shimmer 1.4s ease-in-out infinite;
}
@keyframes pk-bndl-shimmer {
  from { transform: translateX(-100%); }
  to   { transform: translateX(100%); }
}

/* The .pk-bndl-card itself reuses .cat-card-link entirely; only minor
   grid-context tweaks here. */
.pk-bndl-card {
  height: 100%;
  opacity: 0; transform: translateY(16px);
  animation: cat-card-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  animation-delay: calc(var(--i, 0) * 60ms);
}

/* ============================================================
   Gift card /package page — info card replacing the tabs section.
   ============================================================ */
.pk-gc-info {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 24px;
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgb(194 91 214 / 0.08) 0%, rgb(136 75 245 / 0.03) 100%),
    linear-gradient(180deg, #120a24 0%, #0a0614 100%);
  border: 1px solid rgb(194 91 214 / 0.18);
}
.pk-gc-info-head {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.pk-gc-icon {
  flex-shrink: 0;
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border-radius: 12px;
  background: linear-gradient(135deg, rgb(194 91 214 / 0.18) 0%, rgb(136 75 245 / 0.12) 100%);
  border: 1px solid rgb(194 91 214 / 0.35);
  color: #f0b6ff;
}
.pk-gc-icon svg { width: 22px; height: 22px; }
.pk-gc-info-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.pk-gc-info-title {
  margin: 0;
  font: 800 17px/1.25 var(--font-display);
  letter-spacing: -0.01em;
  color: #fff;
}
.pk-gc-info-lead {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: rgb(255 255 255 / 0.65);
}
.pk-gc-info-lead strong {
  color: #fff;
  font-weight: 800;
}
.pk-gc-info-list {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pk-gc-info-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgb(255 255 255 / 0.025);
  border: 1px solid rgb(255 255 255 / 0.05);
  font-size: 13.5px;
  line-height: 1.5;
  color: rgb(255 255 255 / 0.78);
}
.pk-gc-info-list li strong {
  color: #fff;
  font-weight: 800;
  margin-right: 4px;
}
.pk-gc-check {
  flex-shrink: 0;
  width: 16px; height: 16px;
  margin-top: 2px;
  padding: 2px;
  border-radius: 999px;
  background: linear-gradient(135deg, #34d399 0%, #10b981 100%);
  color: #fff;
  box-shadow: 0 4px 10px -4px rgb(16 185 129 / 0.45);
}

@media (max-width: 560px) {
  .pk-gc-info { padding: 18px; }
  .pk-gc-info-head { gap: 12px; }
  .pk-gc-icon { width: 38px; height: 38px; }
  .pk-gc-icon svg { width: 18px; height: 18px; }
  .pk-gc-info-title { font-size: 16px; }
}

/* ============================================================
   Gift card hero — replaces Tebex's low-res gift card image both
   on the /gift-cards listing thumb and on the /package gallery.
   Pure CSS + SVG, so it scales cleanly at any size.
   ============================================================ */

/* ---- Listing thumb (inside .cat-card-thumb) ---- */
.cat-card-gc {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 14px;
  background:
    radial-gradient(circle at 30% 25%, rgb(194 91 214 / 0.32), transparent 55%),
    radial-gradient(circle at 75% 80%, rgb(136 75 245 / 0.32), transparent 60%),
    linear-gradient(135deg, #2a1240 0%, #14081f 60%, #0a0510 100%);
}
.cat-card-gc::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgb(255 255 255 / 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgb(255 255 255 / 0.04) 1px, transparent 1px);
  background-size: 22px 22px;
  background-position: -1px -1px;
  mask-image: radial-gradient(circle at center, black 10%, transparent 75%);
  -webkit-mask-image: radial-gradient(circle at center, black 10%, transparent 75%);
  pointer-events: none;
}
/* Original Tebex image — centered, capped to its native size so it
   never upscales (which is what was making it look low-quality). */
.cat-card-gc-img {
  position: relative;
  z-index: 1;
  width: auto !important;
  height: auto !important;
  max-width: min(100%, 70%);
  max-height: 80%;
  object-fit: contain !important;
  filter: drop-shadow(0 8px 18px rgb(0 0 0 / 0.45));
  /* Stop the .cat-card-thumb img scale-on-hover transform from upscaling
     the small image (it currently has transform: scale(1.06)). */
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.cat-card-link:hover .cat-card-gc-img { transform: scale(1.04); }

/* Fallback when there is NO Tebex image — show value chip + tag */
.cat-card-gc-fallback {
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-align: center;
}
.cat-card-gc-value {
  position: relative;
  z-index: 1;
  font: 900 32px/1 var(--font-display);
  letter-spacing: -0.03em;
  background: linear-gradient(135deg, #fff 0%, #f0b6ff 60%, #c25bd6 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  font-variant-numeric: tabular-nums;
}
.cat-card-gc-tag {
  position: relative;
  z-index: 1;
  align-self: center;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgb(0 0 0 / 0.4);
  border: 1px solid rgb(194 91 214 / 0.4);
  color: #f0b6ff;
  font: 800 9.5px/1 var(--font-display);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* ---- Package page stage (the gallery) ----
   Same idea: keep the Tebex image at its native size, centered on the
   brand backdrop. Override the existing .pk-stage / .pk-frame img rules
   that fill the whole frame. */
.pk-stage-gc {
  background:
    radial-gradient(circle at 25% 20%, rgb(194 91 214 / 0.40), transparent 55%),
    radial-gradient(circle at 80% 80%, rgb(136 75 245 / 0.40), transparent 60%),
    linear-gradient(135deg, #2a1240 0%, #14081f 60%, #0a0510 100%) !important;
  overflow: hidden;
}
.pk-stage-gc::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgb(255 255 255 / 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgb(255 255 255 / 0.05) 1px, transparent 1px);
  background-size: 36px 36px;
  background-position: -1px -1px;
  mask-image: radial-gradient(circle at center, black 5%, transparent 70%);
  -webkit-mask-image: radial-gradient(circle at center, black 5%, transparent 70%);
  pointer-events: none;
  z-index: 1;
}
.pk-stage-gc .pk-frame {
  background: transparent !important;
  display: grid !important;
  place-items: center !important;
  padding: 24px;
}
.pk-stage-gc .pk-frame img {
  position: relative !important;
  z-index: 2 !important;
  width: auto !important;
  height: auto !important;
  max-width: min(70%, 360px) !important;
  max-height: 80% !important;
  object-fit: contain !important;
  border-radius: 16px;
  filter: drop-shadow(0 16px 36px rgb(0 0 0 / 0.55));
}

@media (max-width: 560px) {
  .cat-card-gc-value { font-size: 26px; }
  .pk-stage-gc .pk-frame img { max-width: 60% !important; }
}

/* Empty state */
.cat-empty {
  max-width: 420px; margin: 40px auto 60px;
  padding: 40px 24px;
  text-align: center;
  border-radius: 18px;
  background: rgb(255 255 255 / 0.02);
  border: 1px dashed rgb(255 255 255 / 0.12);
  color: #fff;
}
.cat-empty-glyph {
  width: 60px; height: 60px; margin: 0 auto 16px;
  display: grid; place-items: center;
  border-radius: 999px;
  background: rgb(194 91 214 / 0.12);
  color: #f0b6ff;
}
.cat-empty-glyph svg { width: 28px; height: 28px; }
.cat-empty h3 {
  margin: 0 0 6px;
  font: 800 18px/1.2 var(--font-display);
}
.cat-empty p {
  margin: 0 0 18px;
  font-size: 13.5px;
  color: rgb(255 255 255 / 0.5);
}
.cat-empty-reset {
  padding: 10px 20px;
  border: none;
  border-radius: 999px;
  background: linear-gradient(135deg, #c25bd6 0%, #884bf5 100%);
  color: #fff;
  font: 700 12px/1 var(--font-display); letter-spacing: 0.06em;
  cursor: pointer;
  transition: filter 0.2s, transform 0.2s;
}
.cat-empty-reset:hover { filter: brightness(1.08); transform: translateY(-1px); }

/* ---------- Bottom CTA ---------- */
.cat-cta {
  position: relative;
  width: 100vw; margin: 0 calc(50% - 50vw);
  padding: clamp(60px, 8vh, 96px) clamp(24px, 5vw, 72px);
  overflow: hidden;
  background:
    radial-gradient(60% 60% at 50% 100%, rgb(136 75 245 / 0.18) 0%, transparent 70%),
    #060310;
  border-top: 1px solid rgb(255 255 255 / 0.05);
  text-align: center;
  color: #fff;
}
.cat-cta-inner { max-width: 560px; margin: 0 auto; }
.cat-cta h2 {
  margin: 0 0 10px;
  font: 900 clamp(28px, 3.4vw, 40px)/1.1 var(--font-display);
  letter-spacing: -0.025em;
}
.cat-cta p {
  margin: 0 0 26px;
  font-size: 15px; line-height: 1.55;
  color: rgb(255 255 255 / 0.6);
}
.cat-cta-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 26px;
  border-radius: 999px;
  background: linear-gradient(135deg, #5865F2 0%, #4752c4 100%);
  color: #fff;
  font: 700 14px/1 var(--font-display);
  letter-spacing: 0.02em;
  text-decoration: none;
  box-shadow: 0 12px 28px -10px rgb(88 101 242 / 0.6);
  transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1), filter 0.2s, box-shadow 0.25s;
}
.cat-cta-btn svg { width: 20px; height: 20px; }
.cat-cta-btn:hover {
  transform: translateY(-2px);
  filter: brightness(1.08);
  box-shadow: 0 18px 40px -12px rgb(88 101 242 / 0.75);
}

/* ============================================================
   CUSTOM SORT DROPDOWN (replaces native <select>)
   ============================================================ */
.cat-sort-dd {
  position: relative;
  user-select: none;
}
.cat-sort-trigger {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  height: 38px;
  padding: 0 14px;
  border: 1px solid rgb(255 255 255 / 0.1);
  border-radius: 12px;
  background: rgb(255 255 255 / 0.03);
  color: #fff;
  font: 700 12.5px/1 var(--font-display);
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, transform 0.18s var(--ease-out-expo);
}
.cat-sort-trigger:hover {
  border-color: rgb(194 91 214 / 0.45);
  background: rgb(194 91 214 / 0.08);
}
.cat-sort-dd.is-open .cat-sort-trigger {
  border-color: rgb(194 91 214 / 0.6);
  background: rgb(194 91 214 / 0.1);
}
.cat-sort-ico { width: 14px; height: 14px; color: #f0b6ff; flex: 0 0 14px; }
.cat-sort-current { color: #fff; }
.cat-sort-chev {
  width: 12px; height: 12px;
  color: rgb(255 255 255 / 0.55);
  flex: 0 0 12px;
  transition: transform 0.22s var(--ease-out-expo);
}
.cat-sort-dd.is-open .cat-sort-chev { transform: rotate(180deg); color: #f0b6ff; }

.cat-sort-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 240px;
  margin: 0;
  padding: 6px;
  list-style: none;
  border: 1px solid rgb(255 255 255 / 0.08);
  border-radius: 14px;
  background: rgb(15 9 26 / 0.96);
  backdrop-filter: blur(14px) saturate(1.3);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  box-shadow:
    0 24px 60px -16px rgb(0 0 0 / 0.7),
    0 0 0 1px rgb(194 91 214 / 0.12);
  opacity: 0;
  transform: translateY(-6px) scale(0.98);
  transform-origin: top right;
  pointer-events: none;
  transition: opacity 0.18s var(--ease-out-expo), transform 0.18s var(--ease-out-expo);
  z-index: 80;
}
.cat-sort-dd.is-open .cat-sort-menu {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.cat-sort-opt {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 9px;
  color: rgb(255 255 255 / 0.78);
  font: 600 13px/1.2 var(--font-display);
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: background 0.14s, color 0.14s;
}
.cat-sort-opt > svg:first-child {
  width: 15px; height: 15px;
  color: rgb(240 182 255 / 0.65);
  flex: 0 0 15px;
}
.cat-sort-opt > span { flex: 1; }
.cat-sort-check {
  width: 14px; height: 14px;
  color: #c25bd6;
  flex: 0 0 14px;
  opacity: 0;
  transform: scale(0.6);
  transition: opacity 0.16s, transform 0.18s var(--ease-out-expo);
}
.cat-sort-opt:hover {
  background: rgb(194 91 214 / 0.12);
  color: #fff;
}
.cat-sort-opt:hover > svg:first-child { color: #f0b6ff; }
.cat-sort-opt.is-active {
  background: rgb(194 91 214 / 0.16);
  color: #fff;
}
.cat-sort-opt.is-active > svg:first-child { color: #f0b6ff; }
.cat-sort-opt.is-active .cat-sort-check {
  opacity: 1;
  transform: scale(1);
}


/* ============================================================
   MOBILE TOOLBAR — compact + tighter top spacing
   ============================================================ */
@media (max-width: 720px) {
  .cat-stats { gap: 16px; padding: 14px 20px; flex-wrap: wrap; justify-content: center; }
  .cat-stat-sep { display: none; }
  /* Reduce hero top padding on mobile */
  .cat-hero { padding: 12px 16px 10px !important; }
  .cat-toolbar { padding: 6px clamp(12px, 4vw, 20px) 10px !important; }
  .cat-toolbar-inner { gap: 8px; flex-wrap: nowrap; align-items: center; }

  .cat-search {
    flex: 1 1 auto;
    min-width: 0;
    padding: 6px 12px !important;
    border-radius: 999px;
  }
  .cat-search svg { width: 14px; height: 14px; }
  .cat-search input { font-size: 13px; }

  .cat-sort { flex: 0 0 auto; }
  .cat-sort-trigger {
    height: 34px;
    padding: 0 12px;
    font-size: 11.5px;
  }
  .cat-sort-current { display: none; } /* icon-only on mobile */
  .cat-sort-trigger { gap: 4px; }

  .cat-grid { gap: 14px; }
}

@media (max-width: 480px) {
  .cat-hero { padding: 8px 12px 8px !important; }
  .cat-toolbar { padding: 4px 10px 8px !important; }
  .cat-toolbar-inner { gap: 6px; }
  .cat-search { padding: 5px 10px !important; }
  .cat-search input { font-size: 12.5px; }
  .cat-sort-trigger { height: 32px; padding: 0 10px; }
  .cat-sort-menu { right: 0; min-width: 200px; }
}

/* ============================================================
   Single package page — rebuild v2
   Compact header strip + tab-based content. Everything is in
   one card-driven flow so the user can switch between Preview,
   Overview, Features, Install, Specs and FAQ without scrolling
   through one giant page.
   ============================================================ */
body.page-package {
  background: #060310;
}
body.page-package .site-content,
body.page-package .store-home,
body.page-package #shop { display: block !important; }

/* =========================================================
   PACKAGE PAGE — bulletproof CSS Grid layout
   Two columns (gallery left / info right) using grid
   instead of flex for predictable behavior. Matches the
   home page's purple/gradient design language.
   ========================================================= */
.pk {
  position: relative;
  display: block !important;
  width: 100% !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 80px clamp(20px, 4vw, 56px) 96px !important;
  box-sizing: border-box !important;
  color: #fff;
  font-family: inherit;
}
.pk *, .pk *::before, .pk *::after { box-sizing: border-box; }

/* ============================================================
   Entry animations — fade + slide each main block in sequence
   ============================================================ */
@keyframes pkFadeUp {
  from { opacity: 0; transform: translateY(28px); filter: blur(4px); }
  to   { opacity: 1; transform: translateY(0);   filter: blur(0); }
}
@keyframes pkFadeRight {
  from { opacity: 0; transform: translateX(-22px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes pkFadeLeft {
  from { opacity: 0; transform: translateX(22px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes pkFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes pkBadgePop {
  0%   { opacity: 0; transform: translateY(-6px) scale(0.85); }
  60%  { opacity: 1; transform: translateY(0) scale(1.06); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* Gallery slides in from the LEFT */
.pk-col-left {
  animation: pkFadeRight 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 0.05s;
}
/* Right column slides in from the RIGHT, slightly later */
.pk-col-right {
  animation: pkFadeLeft 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 0.18s;
}
/* Stagger the right-column children for a polished cascade */
.pk-col-right > * {
  animation: pkFadeUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
  opacity: 0;
}
.pk-col-right > .pk-badges        { animation-delay: 0.30s; animation-name: pkBadgePop; }
.pk-col-right > .pk-title         { animation-delay: 0.36s; }
.pk-col-right > .pk-fws           { animation-delay: 0.42s; }
.pk-col-right > .pk-desc          { animation-delay: 0.48s; }
.pk-col-right > .pk-price         { animation-delay: 0.54s; }
.pk-col-right > .pk-buy           { animation-delay: 0.60s; }
.pk-col-right > .pk-stats         { animation-delay: 0.68s; }

/* Tabs nav fades in once the hero is settled */
.pk-tabs {
  animation: pkFadeUp 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 0.55s;
}
.pk-tabnav { animation: pkFadeIn 0.5s ease-out both; animation-delay: 0.7s; }

/* Each feature card cascades in */
.pk-feat {
  animation: pkFadeUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
  opacity: 0;
}
.pk-feats .pk-feat:nth-child(1)  { animation-delay: 0.75s; }
.pk-feats .pk-feat:nth-child(2)  { animation-delay: 0.80s; }
.pk-feats .pk-feat:nth-child(3)  { animation-delay: 0.85s; }
.pk-feats .pk-feat:nth-child(4)  { animation-delay: 0.90s; }
.pk-feats .pk-feat:nth-child(5)  { animation-delay: 0.95s; }
.pk-feats .pk-feat:nth-child(6)  { animation-delay: 1.00s; }
.pk-feats .pk-feat:nth-child(7)  { animation-delay: 1.05s; }
.pk-feats .pk-feat:nth-child(8)  { animation-delay: 1.10s; }
.pk-feats .pk-feat:nth-child(9)  { animation-delay: 1.15s; }
.pk-feats .pk-feat:nth-child(10) { animation-delay: 1.20s; }
.pk-feats .pk-feat:nth-child(11) { animation-delay: 1.25s; }
.pk-feats .pk-feat:nth-child(12) { animation-delay: 1.30s; }

/* Specs rows cascade similarly when the Specs tab opens */
.pk-tabpanel[data-panel="specs"] .pk-specs > div {
  animation: pkFadeUp 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
  opacity: 0;
}
.pk-tabpanel[data-panel="specs"] .pk-specs > div:nth-child(1) { animation-delay: 0.05s; }
.pk-tabpanel[data-panel="specs"] .pk-specs > div:nth-child(2) { animation-delay: 0.08s; }
.pk-tabpanel[data-panel="specs"] .pk-specs > div:nth-child(3) { animation-delay: 0.11s; }
.pk-tabpanel[data-panel="specs"] .pk-specs > div:nth-child(4) { animation-delay: 0.14s; }
.pk-tabpanel[data-panel="specs"] .pk-specs > div:nth-child(n+5) { animation-delay: 0.18s; }

/* FAQ items cascade slightly when the FAQ tab opens */
.pk-tabpanel[data-panel="faq"] .pk-faq-item {
  animation: pkFadeUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
  opacity: 0;
}
.pk-tabpanel[data-panel="faq"] .pk-faq-item:nth-child(1) { animation-delay: 0.05s; }
.pk-tabpanel[data-panel="faq"] .pk-faq-item:nth-child(2) { animation-delay: 0.10s; }
.pk-tabpanel[data-panel="faq"] .pk-faq-item:nth-child(3) { animation-delay: 0.15s; }
.pk-tabpanel[data-panel="faq"] .pk-faq-item:nth-child(4) { animation-delay: 0.20s; }
.pk-tabpanel[data-panel="faq"] .pk-faq-item:nth-child(n+5) { animation-delay: 0.25s; }

/* External links row at the bottom of the gallery */
.pk-extlinks {
  animation: pkFadeUp 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 0.5s;
}

/* Respect users who prefer no motion */
@media (prefers-reduced-motion: reduce) {
  .pk-col-left, .pk-col-right, .pk-col-right > *,
  .pk-tabs, .pk-tabnav, .pk-feat,
  .pk-tabpanel[data-panel="specs"] .pk-specs > div,
  .pk-tabpanel[data-panel="faq"] .pk-faq-item,
  .pk-extlinks {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}

.pk-back {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px 8px 10px;
  margin-bottom: 24px;
  border-radius: 999px;
  background: rgb(255 255 255 / 0.04);
  border: 1px solid rgb(255 255 255 / 0.08);
  color: rgb(255 255 255 / 0.7);
  font: 700 11.5px/1 var(--font-display);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.22s var(--ease-out-expo);
}
.pk-back:hover {
  background: rgb(194 91 214 / 0.14);
  border-color: rgb(194 91 214 / 0.4);
  color: #fff;
  transform: translateX(-2px);
}
.pk-back svg { width: 14px; height: 14px; }

/* =========================================================
   GRID — left column (gallery) + right column (info)
   ========================================================= */
.pk .pk-grid,
article.pk > .pk-grid,
div.pk-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) !important;
  grid-template-rows: auto !important;
  gap: 56px !important;
  margin-bottom: 80px !important;
  width: 100% !important;
  max-width: 100% !important;
  align-items: start !important;
}
.pk .pk-grid > .pk-col-left,
.pk .pk-grid > div.pk-col-left {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
.pk .pk-grid > .pk-col-right,
.pk .pk-grid > div.pk-col-right {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  position: sticky !important;
  top: calc(var(--header-h, 64px) + 16px) !important;
  align-self: start !important;
}
@media (max-width: 820px) {
  .pk .pk-grid,
  article.pk > .pk-grid,
  div.pk-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  .pk .pk-grid > .pk-col-right,
  .pk .pk-grid > div.pk-col-right {
    grid-column: 1 !important;
    grid-row: 2 !important;
    max-width: none !important;
    position: static !important;
  }
}

/* =========================================================
   LEFT — gallery
   ========================================================= */
.pk-stage {
  position: relative;
  aspect-ratio: 16 / 9;
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
  background: linear-gradient(135deg, #1a0e2e 0%, #060310 100%);
  border: 1px solid rgb(255 255 255 / 0.06);
  outline: none;
}
.pk-frame {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  opacity: 0; visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s;
}
.pk-frame.is-active { opacity: 1; visibility: visible; }
.pk-frame img,
.pk-frame video,
.pk-frame iframe {
  width: 100%; height: 100%;
  border: none;
  object-fit: cover;
  background: #000;
}
.pk-frame-empty span {
  font: 900 80px/1 var(--font-display);
  letter-spacing: -0.03em;
  background: linear-gradient(135deg, #f472b6 0%, #c25bd6 50%, #884bf5 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

.pk-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px;
  display: grid; place-items: center;
  border: 1px solid rgb(255 255 255 / 0.12);
  background: rgb(0 0 0 / 0.55);
  backdrop-filter: blur(8px);
  color: #fff;
  border-radius: 999px;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.2s, background 0.2s, transform 0.22s var(--ease-out-expo);
}
.pk-stage:hover .pk-arrow,
.pk-arrow:focus-visible { opacity: 1; }
.pk-arrow:hover { background: rgb(194 91 214 / 0.55); transform: translateY(-50%) scale(1.06); }
.pk-arrow-prev { left: 12px; }
.pk-arrow-next { right: 12px; }
.pk-arrow svg { width: 16px; height: 16px; }

.pk-counter {
  position: absolute;
  bottom: 12px; right: 14px;
  padding: 5px 11px;
  border-radius: 999px;
  background: rgb(0 0 0 / 0.6);
  backdrop-filter: blur(6px);
  border: 1px solid rgb(255 255 255 / 0.1);
  font: 700 11px/1 var(--font-display);
  letter-spacing: 0.06em;
  color: rgb(255 255 255 / 0.85);
}

/* ============================================================
   YouTube lite poster — full-bleed thumbnail + centered play.
   Iframe is only loaded after click, so no YT title/logo shows.
   ============================================================ */
.pk-frame-yt .pk-yt-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  border: 0;
  background: #000;
  cursor: pointer;
  overflow: hidden;
  display: block;
}
.pk-frame-yt .pk-yt-poster img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s var(--ease-out-expo), filter 0.3s;
}
.pk-yt-shade {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at center, rgb(0 0 0 / 0.05) 0%, rgb(0 0 0 / 0.45) 100%);
  pointer-events: none;
}
.pk-yt-play {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  display: grid;
  place-items: center;
  width: clamp(48px, 5.5vw, 58px);
  height: clamp(48px, 5.5vw, 58px);
  border-radius: 999px;
  background: linear-gradient(135deg, #c25bd6 0%, #884bf5 100%);
  color: #fff;
  box-shadow:
    0 12px 30px -10px rgb(136 75 245 / 0.7),
    inset 0 1px 0 rgb(255 255 255 / 0.25);
  transition:
    transform 0.28s var(--ease-out-expo),
    box-shadow 0.25s,
    filter 0.2s;
}
.pk-yt-play::before {
  content: "";
  position: absolute;
  inset: -8px;
  border-radius: 999px;
  border: 1px solid rgb(194 91 214 / 0.35);
  opacity: 0;
  transition: opacity 0.25s, transform 0.4s var(--ease-out-expo);
}
/* Triangle path M8 5v14l12-7z has its centroid at exactly (12,12),
   so geometric centering = optical centering. No offset hack needed. */
.pk-yt-play svg {
  width: 65%;
  height: 65%;
  display: block;
  filter: drop-shadow(0 1px 2px rgb(0 0 0 / 0.25));
}
.pk-frame-yt .pk-yt-poster:hover img {
  transform: scale(1.04);
  filter: brightness(0.92);
}
.pk-frame-yt .pk-yt-poster:hover .pk-yt-play {
  transform: translate(-50%, -50%) scale(1.08);
  filter: brightness(1.08);
  box-shadow:
    0 18px 44px -10px rgb(136 75 245 / 0.85),
    inset 0 1px 0 rgb(255 255 255 / 0.32);
}
.pk-frame-yt .pk-yt-poster:hover .pk-yt-play::before {
  opacity: 1;
  transform: scale(1.15);
}
.pk-frame-yt iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* External links row below the gallery (YouTube + Documentation) */
.pk-extlinks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 14px;
}
.pk-extlinks:has(> :only-child) { grid-template-columns: 1fr; }
.pk-extlink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  height: 46px;
  padding: 0 18px;
  border-radius: 12px;
  text-decoration: none;
  font: 700 13px/1 var(--font-display);
  letter-spacing: 0.02em;
  border: 1px solid rgb(255 255 255 / 0.08);
  background: rgb(255 255 255 / 0.025);
  color: #fff;
  transition: transform 0.18s var(--ease-out-expo),
              filter 0.18s,
              border-color 0.22s,
              background 0.22s,
              box-shadow 0.22s;
}
.pk-extlink svg {
  width: 18px; height: 18px;
  flex: 0 0 18px;
}
.pk-extlink:hover {
  transform: translateY(-2px);
  filter: brightness(1.05);
}
/* YouTube — red gradient */
.pk-extlink--yt {
  background: linear-gradient(135deg, #ff0033 0%, #c20023 100%);
  border-color: transparent;
  box-shadow: 0 8px 18px -8px rgb(255 0 51 / 0.55), inset 0 1px 0 rgb(255 255 255 / 0.18);
}
.pk-extlink--yt:hover {
  box-shadow: 0 12px 26px -8px rgb(255 0 51 / 0.7), inset 0 1px 0 rgb(255 255 255 / 0.25);
}
/* Documentation — clean white */
.pk-extlink--docs {
  background: #fff;
  border-color: rgb(0 0 0 / 0.08);
  color: #0a0614;
  box-shadow: 0 8px 18px -8px rgb(0 0 0 / 0.35), inset 0 -1px 0 rgb(0 0 0 / 0.06);
}
.pk-extlink--docs:hover {
  background: #f5f0ff;
  box-shadow: 0 12px 26px -8px rgb(0 0 0 / 0.4), inset 0 -1px 0 rgb(0 0 0 / 0.08);
  color: #0a0614;
}
@media (max-width: 600px) {
  .pk-extlinks { grid-template-columns: 1fr; gap: 8px; }
  .pk-extlink { height: 42px; font-size: 12.5px; }
}

/* Thumbs — single row, fixed size, invisible scroll, drag-to-scroll
   with smooth snap on each thumb. */
.pk-thumbs {
  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  margin-top: 14px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
}
.pk-thumbs::-webkit-scrollbar { display: none; width: 0; height: 0; }
.pk-thumbs.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
  scroll-behavior: auto;
}
/* PERMANENT — never let images be dragged as files. Mouse events fall
   through to the parent button which our JS handles for drag-to-scroll. */
.pk-thumbs img,
.pk-thumb img {
  -webkit-user-drag: none;
  user-drag: none;
  pointer-events: none;
}
/* Click still works on the button itself; image inside is just visual */
.pk-thumb { scroll-snap-align: start; }
.pk-thumbs::-webkit-scrollbar { display: none; width: 0; height: 0; } /* Webkit */
.pk-thumb {
  flex: 0 0 calc((100% - 36px) / 4); /* exactly 4 thumbs visible (3 × 12px gaps) */
  aspect-ratio: 16/10;
  padding: 0;
  border: 1px solid rgb(255 255 255 / 0.08);
  border-radius: 8px;
  background: rgb(255 255 255 / 0.03);
  overflow: hidden;
  cursor: pointer;
  transition: border-color 0.2s, transform 0.2s var(--ease-out-expo);
  position: relative;
  scroll-snap-align: start;
}
.pk-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: filter 0.25s, transform 0.4s var(--ease-out-expo);
}
.pk-thumb::after {
  /* hover overlay — brightens via tinted purple wash, no movement */
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgb(194 91 214 / 0) 0%, rgb(194 91 214 / 0.18) 100%);
  opacity: 0;
  transition: opacity 0.22s;
  pointer-events: none;
}
.pk-thumb:hover {
  border-color: rgb(194 91 214 / 0.6);
  box-shadow: 0 0 0 1px rgb(194 91 214 / 0.25), 0 8px 22px -10px rgb(194 91 214 / 0.5);
  transform: none;
}
.pk-thumb:hover img {
  filter: brightness(1.06) saturate(1.05);
  transform: scale(1.05);
}
.pk-thumb:hover::after { opacity: 1; }
.pk-thumb.is-active {
  border-color: #c25bd6;
  box-shadow: 0 0 0 2px rgb(194 91 214 / 0.32);
}
.pk-thumb.is-active img { filter: brightness(1.04); }
.pk-thumb-play {
  display: grid; place-items: center;
  width: 100%; height: 100%;
  background: linear-gradient(135deg, #1a0e2e 0%, #060310 100%);
  color: #f0b6ff;
}
.pk-thumb-play svg { width: 22px; height: 22px; }

/* Video thumb — YouTube poster image + centered play overlay */
.pk-thumb-video { position: relative; }
.pk-thumb-video img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.pk-thumb-video .pk-thumb-play {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  background: linear-gradient(180deg, rgb(0 0 0 / 0.05) 0%, rgb(0 0 0 / 0.55) 100%);
  color: #fff;
  pointer-events: none;
}
.pk-thumb-video .pk-thumb-play svg {
  width: 28px; height: 28px;
  filter: drop-shadow(0 2px 8px rgb(0 0 0 / 0.6));
}

/* =========================================================
   RIGHT — info column (no card, clean layout)
   ========================================================= */
.pk-col-right {
  display: flex !important;
  flex-direction: column !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.pk-title {
  margin: 0 0 18px;
  font: 800 clamp(28px, 3.2vw, 42px)/1.1 var(--font-display);
  letter-spacing: -0.03em;
  color: #fff;
}

/* Framework pills — distinct color per framework */
.pk-fws { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.pk-fw {
  padding: 7px 14px;
  border-radius: 8px;
  border: 1px solid transparent;
  font: 800 12px/1 var(--font-display);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
/* ESX — blue */
.pk-fw[data-fw="ESX"] {
  background: rgb(96 165 250 / 0.14);
  border-color: rgb(96 165 250 / 0.42);
  color: #93c5fd;
  box-shadow: 0 6px 14px -8px rgb(96 165 250 / 0.45);
}
/* QBCore — amber */
.pk-fw[data-fw="QBCORE"] {
  background: rgb(251 191 36 / 0.14);
  border-color: rgb(251 191 36 / 0.42);
  color: #fcd34d;
  box-shadow: 0 6px 14px -8px rgb(251 191 36 / 0.45);
}
/* QBox — emerald green */
.pk-fw[data-fw="QBOX"] {
  background: rgb(52 211 153 / 0.14);
  border-color: rgb(52 211 153 / 0.42);
  color: #6ee7b7;
  box-shadow: 0 6px 14px -8px rgb(52 211 153 / 0.45);
}
/* vRP — purple/violet */
.pk-fw[data-fw="VRP"] {
  background: rgb(168 85 247 / 0.14);
  border-color: rgb(168 85 247 / 0.42);
  color: #d8b4fe;
  box-shadow: 0 6px 14px -8px rgb(168 85 247 / 0.45);
}
/* Standalone — coral / pink */
.pk-fw[data-fw="STANDALONE"] {
  background: rgb(251 113 133 / 0.14);
  border-color: rgb(251 113 133 / 0.42);
  color: #fda4af;
  box-shadow: 0 6px 14px -8px rgb(251 113 133 / 0.45);
}

.pk-desc {
  margin: 0 0 28px;
  font-size: 15px;
  line-height: 1.65;
  color: rgb(255 255 255 / 0.62);
}

/* Price — huge, plain white */
.pk-price {
  margin: 0 0 22px;
  font: 800 40px/1 var(--font-display);
  letter-spacing: -0.025em;
  color: #fff;
  background: none !important;
  -webkit-text-fill-color: #fff !important;
}
/* Discount layout: [was 19.99]   [14.99]   [-25%] */
.pk-price.is-sale {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}
.pk-price-was {
  font: 700 18px/1 var(--font-display);
  color: rgb(255 255 255 / 0.4) !important;
  text-decoration: line-through;
  text-decoration-color: rgb(255 255 255 / 0.4);
  text-decoration-thickness: 2px;
  letter-spacing: -0.01em;
  -webkit-text-fill-color: rgb(255 255 255 / 0.4) !important;
}
.pk-price-now {
  font: 800 40px/1 var(--font-display);
  letter-spacing: -0.025em;
  background: linear-gradient(135deg, #fda4af 0%, #fb7185 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent !important;
  color: transparent;
}
.pk-price-tag {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  background: linear-gradient(135deg, #fb7185 0%, #f43f5e 100%);
  color: #fff !important;
  font: 900 12px/1 var(--font-display);
  letter-spacing: 0.06em;
  -webkit-text-fill-color: #fff !important;
  box-shadow:
    0 8px 18px -8px rgb(244 63 94 / 0.5),
    inset 0 1px 0 rgb(255 255 255 / 0.2);
}

/* Sticky bar: more compact discount layout */
.pk-sticky-price.is-sale {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
}
.pk-sticky-price .pk-price-was {
  font-size: 13px;
  text-decoration-thickness: 1px;
}
.pk-sticky-price .pk-price-now {
  font: 800 18px/1 var(--font-display);
  background: linear-gradient(135deg, #fda4af 0%, #fb7185 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent !important;
}

/* Buy area: two stacked full-width buttons (primary + secondary) */
/* ============================================================
   BUY AREA — wraps Tebex's package-actions output
   Layout: vertical stack, primary on top, gift below.
   ============================================================ */
.pk-buy {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 10px !important;
  width: 100% !important;
  margin-top: 4px !important;
}

/* Tebex renders its own price/period/headings inside package-actions.
   We already show the price in .pk-price above, so kill the duplicates. */
.pk-buy .price,
.pk-buy .package-price,
.pk-buy .product-price,
.pk-buy .price-info,
.pk-buy .price-label,
.pk-buy .payment-period,
.pk-buy .recurring,
.pk-buy .label,
.pk-buy .pk-perks,
.pk-buy ul,
.pk-buy small,
.pk-buy h1,
.pk-buy h2,
.pk-buy h3,
.pk-buy h4,
.pk-buy p {
  display: none !important;
}
.pk-perks { display: none !important; }
.pk-perks[hidden] { display: none !important; }

/* Forms / wrappers around the buttons must stretch full-width */
.pk-buy form,
.pk-buy .actions,
.pk-buy > div {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 10px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
}

/* ============================================================
   BUY BUTTONS
   Both buttons share the same shape, size, font & icon system —
   only color & weight differ. This guarantees no centering drift.
   ============================================================ */
.pk-buy .btn-primary,
.pk-buy .btn-secondary,
.pk-buy button[type="submit"],
.pk-buy .add-to-basket,
.pk-buy a[href*="/checkout/packages/add"],
.pk-buy .gift-btn,
.pk-buy a[href*="gift"],
.pk-buy button[name*="gift"] {
  /* Layout */
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  width: 100% !important;
  height: 52px !important;
  padding: 0 22px !important;
  margin: 0 !important;
  /* Shape */
  box-sizing: border-box !important;
  border-radius: 12px !important;
  /* Type */
  font: 700 14px/1 var(--font-display) !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  text-align: center !important;
  /* Behavior */
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  transition:
    transform 0.18s var(--ease-out-expo),
    filter 0.18s,
    background 0.18s,
    border-color 0.18s,
    box-shadow 0.22s !important;
}

/* ============================================================
   ICON SYSTEM (::before)
   Both buttons get a 18px icon to the LEFT of the text.
   `content: ""` is locked with !important on every state so Tebex's
   theme can't inject `content: url(cart.svg)` on :hover (which was
   causing the duplicate icon).
   ============================================================ */
.pk-buy .btn-primary::before,
.pk-buy .btn-primary:hover::before,
.pk-buy .btn-primary:focus::before,
.pk-buy .btn-primary:active::before,
.pk-buy button[type="submit"]::before,
.pk-buy button[type="submit"]:hover::before,
.pk-buy button[type="submit"]:focus::before,
.pk-buy button[type="submit"]:active::before,
.pk-buy .add-to-basket::before,
.pk-buy .add-to-basket:hover::before,
.pk-buy .add-to-basket:focus::before,
.pk-buy .add-to-basket:active::before,
.pk-buy a[href*="/checkout/packages/add"]::before,
.pk-buy a[href*="/checkout/packages/add"]:hover::before,
.pk-buy a[href*="/checkout/packages/add"]:focus::before,
.pk-buy a[href*="/checkout/packages/add"]:active::before,
.pk-buy .btn-secondary::before,
.pk-buy .btn-secondary:hover::before,
.pk-buy .btn-secondary:focus::before,
.pk-buy .btn-secondary:active::before,
.pk-buy .gift-btn::before,
.pk-buy .gift-btn:hover::before,
.pk-buy .gift-btn:focus::before,
.pk-buy .gift-btn:active::before,
.pk-buy a[href*="gift"]::before,
.pk-buy a[href*="gift"]:hover::before,
.pk-buy a[href*="gift"]:focus::before,
.pk-buy a[href*="gift"]:active::before,
.pk-buy button[name*="gift"]::before,
.pk-buy button[name*="gift"]:hover::before,
.pk-buy button[name*="gift"]:focus::before,
.pk-buy button[name*="gift"]:active::before {
  content: "" !important;
  display: inline-block !important;
  flex: 0 0 18px !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  background-color: currentColor !important;
  background-image: none !important;
  -webkit-mask-repeat: no-repeat !important;
          mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
          mask-position: center !important;
  -webkit-mask-size: 100% 100% !important;
          mask-size: 100% 100% !important;
  vertical-align: middle !important;
  /* Lock against Tebex slide-in animations */
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  transition: none !important;
  animation: none !important;
}

/* PRIMARY icon — shopping cart */
.pk-buy .btn-primary::before,
.pk-buy .btn-primary:hover::before,
.pk-buy .btn-primary:focus::before,
.pk-buy .btn-primary:active::before,
.pk-buy button[type="submit"]::before,
.pk-buy button[type="submit"]:hover::before,
.pk-buy button[type="submit"]:focus::before,
.pk-buy button[type="submit"]:active::before,
.pk-buy .add-to-basket::before,
.pk-buy .add-to-basket:hover::before,
.pk-buy .add-to-basket:focus::before,
.pk-buy .add-to-basket:active::before,
.pk-buy a[href*="/checkout/packages/add"]::before,
.pk-buy a[href*="/checkout/packages/add"]:hover::before,
.pk-buy a[href*="/checkout/packages/add"]:focus::before,
.pk-buy a[href*="/checkout/packages/add"]:active::before {
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='21' r='1'/><circle cx='20' cy='21' r='1'/><path d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/></svg>") !important;
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='21' r='1'/><circle cx='20' cy='21' r='1'/><path d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/></svg>") !important;
}

/* SECONDARY icon — gift box */
.pk-buy .btn-secondary::before,
.pk-buy .btn-secondary:hover::before,
.pk-buy .btn-secondary:focus::before,
.pk-buy .btn-secondary:active::before,
.pk-buy .gift-btn::before,
.pk-buy .gift-btn:hover::before,
.pk-buy .gift-btn:focus::before,
.pk-buy .gift-btn:active::before,
.pk-buy a[href*="gift"]::before,
.pk-buy a[href*="gift"]:hover::before,
.pk-buy a[href*="gift"]:focus::before,
.pk-buy a[href*="gift"]:active::before,
.pk-buy button[name*="gift"]::before,
.pk-buy button[name*="gift"]:hover::before,
.pk-buy button[name*="gift"]:focus::before,
.pk-buy button[name*="gift"]:active::before {
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 12 20 22 4 22 4 12'/><rect x='2' y='7' width='20' height='5'/><line x1='12' y1='22' x2='12' y2='7'/><path d='M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z'/><path d='M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z'/></svg>") !important;
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 12 20 22 4 22 4 12'/><rect x='2' y='7' width='20' height='5'/><line x1='12' y1='22' x2='12' y2='7'/><path d='M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z'/><path d='M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z'/></svg>") !important;
}

/* Kill any SVG / icon Tebex tries to render inside the buttons —
   we already render ours via ::before, no duplicates allowed. */
.pk-buy .btn-primary svg,
.pk-buy .btn-primary i,
.pk-buy .btn-primary img,
.pk-buy .btn-primary .icon,
.pk-buy button[type="submit"] svg,
.pk-buy button[type="submit"] i,
.pk-buy button[type="submit"] img,
.pk-buy button[type="submit"] .icon,
.pk-buy .add-to-basket svg,
.pk-buy .add-to-basket i,
.pk-buy .add-to-basket img,
.pk-buy .add-to-basket .icon,
.pk-buy a[href*="/checkout/packages/add"] svg,
.pk-buy a[href*="/checkout/packages/add"] i,
.pk-buy a[href*="/checkout/packages/add"] img,
.pk-buy a[href*="/checkout/packages/add"] .icon,
.pk-buy .btn-secondary svg,
.pk-buy .btn-secondary i,
.pk-buy .btn-secondary img,
.pk-buy .btn-secondary .icon,
.pk-buy .gift-btn svg,
.pk-buy .gift-btn i,
.pk-buy .gift-btn img,
.pk-buy .gift-btn .icon,
.pk-buy a[href*="gift"] svg,
.pk-buy a[href*="gift"] i,
.pk-buy a[href*="gift"] img,
.pk-buy a[href*="gift"] .icon,
.pk-buy button[name*="gift"] svg,
.pk-buy button[name*="gift"] i,
.pk-buy button[name*="gift"] img,
.pk-buy button[name*="gift"] .icon {
  display: none !important;
}

/* Suppress any pseudo-element icons Tebex's theme adds via ::after.
   We own ::before — leave that alone. */
.pk-buy .btn-primary::after,
.pk-buy button[type="submit"]::after,
.pk-buy .add-to-basket::after,
.pk-buy a[href*="/checkout/packages/add"]::after,
.pk-buy .btn-secondary::after,
.pk-buy .gift-btn::after,
.pk-buy a[href*="gift"]::after,
.pk-buy button[name*="gift"]::after {
  display: none !important;
  content: none !important;
}

/* PRIMARY — Add to Basket (purple gradient) */
.pk-buy .btn-primary,
.pk-buy button[type="submit"],
.pk-buy .add-to-basket {
  border: 0 !important;
  background: linear-gradient(135deg, #c25bd6 0%, #884bf5 100%) !important;
  color: #fff !important;
  box-shadow:
    0 10px 26px -10px rgb(136 75 245 / 0.55),
    inset 0 1px 0 rgb(255 255 255 / 0.2) !important;
}
.pk-buy .btn-primary:hover,
.pk-buy button[type="submit"]:hover,
.pk-buy .add-to-basket:hover {
  background: linear-gradient(135deg, #cd6ce0 0%, #9258ff 100%) !important;
}
.pk-buy .btn-primary:hover,
.pk-buy button[type="submit"]:hover,
.pk-buy .add-to-basket:hover {
  transform: translateY(-2px) !important;
  filter: brightness(1.08) !important;
  box-shadow:
    0 16px 34px -10px rgb(136 75 245 / 0.7),
    inset 0 1px 0 rgb(255 255 255 / 0.28) !important;
}
.pk-buy .btn-primary:active,
.pk-buy button[type="submit"]:active,
.pk-buy .add-to-basket:active {
  transform: translateY(0) !important;
  filter: brightness(0.98) !important;
}

/* SECONDARY — Send as Gift (outlined ghost, same height as primary) */
.pk-buy .btn-secondary,
.pk-buy .gift-btn,
.pk-buy a[href*="gift"],
.pk-buy button[name*="gift"] {
  border: 1px solid rgb(255 255 255 / 0.14) !important;
  background: rgb(255 255 255 / 0.02) !important;
  color: rgb(255 255 255 / 0.85) !important;
  box-shadow: none !important;
}
.pk-buy .btn-secondary:hover,
.pk-buy .gift-btn:hover,
.pk-buy a[href*="gift"]:hover,
.pk-buy button[name*="gift"]:hover {
  background: rgb(194 91 214 / 0.08) !important;
  border-color: rgb(194 91 214 / 0.4) !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
}
.pk-buy .btn-secondary:active,
.pk-buy .gift-btn:active,
.pk-buy a[href*="gift"]:active,
.pk-buy button[name*="gift"]:active {
  transform: translateY(0) !important;
}

/* ============================================================
   LIVE STATS — servers / players (under the buy buttons)
   Two clean stat cards + a subtle attribution line.
   ============================================================ */
/* ============================================================
   Cross-sell — "Save by getting this in a pack"
   Full-width banner between the gallery+info row and the tabs.
   Rendered by JS when the script is included in any bundle / sub.
   Multiple matching packs flex-wrap side-by-side on desktop.
   ============================================================ */
.pk-bundle-cta {
  margin: 32px 0 0;
  padding: 14px 18px;
  border-radius: 16px;
  background:
    linear-gradient(135deg, rgb(194 91 214 / 0.10) 0%, rgb(136 75 245 / 0.04) 100%),
    linear-gradient(180deg, #120a24 0%, #0a0614 100%);
  border: 1px solid rgb(194 91 214 / 0.25);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 22px;
}
.pk-bundle-cta[hidden] { display: none; }
.pk-bundle-cta-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  font: 800 10.5px/1.2 var(--font-display);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.55);
  white-space: nowrap;
}
.pk-bundle-cta-head svg {
  width: 14px; height: 14px;
  color: #f0b6ff;
}
.pk-bundle-cta-link {
  flex: 1 1 280px;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 10px;
  background: rgb(0 0 0 / 0.3);
  border: 1px solid rgb(255 255 255 / 0.06);
  text-decoration: none;
  color: inherit;
  transition: background 0.2s, border-color 0.2s, transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.pk-bundle-cta-link:hover {
  background: rgb(194 91 214 / 0.14);
  border-color: rgb(194 91 214 / 0.4);
  transform: translateX(2px);
}
.pk-bundle-cta-icon {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 36px; height: 36px;
  border-radius: 9px;
  background: linear-gradient(135deg, rgb(194 91 214 / 0.22) 0%, rgb(136 75 245 / 0.12) 100%);
  border: 1px solid rgb(194 91 214 / 0.4);
  color: #f0b6ff;
}
.pk-bundle-cta-icon svg { width: 18px; height: 18px; }
.pk-bundle-cta-info {
  flex: 1; min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pk-bundle-cta-name {
  font: 800 13.5px/1.2 var(--font-display);
  color: #fff;
  letter-spacing: -0.005em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pk-bundle-cta-meta {
  font-size: 11.5px;
  line-height: 1.3;
  color: rgb(255 255 255 / 0.55);
}
.pk-bundle-cta-meta strong {
  color: #fff;
  font-weight: 700;
}
.pk-bundle-cta-save {
  flex-shrink: 0;
  padding: 4px 9px;
  border-radius: 999px;
  background: linear-gradient(135deg, #34d399 0%, #10b981 100%);
  color: #fff;
  font: 800 10px/1 var(--font-display);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  box-shadow: 0 4px 10px -4px rgb(16 185 129 / 0.45);
}

/* ============================================================
   "You might also like" — bottom of the /package page.
   ============================================================ */
.pk-related {
  margin-top: 60px;
  padding-top: 28px;
  border-top: 1px solid rgb(255 255 255 / 0.06);
}
.pk-related[hidden] { display: none; }
.pk-related-head {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 22px;
  padding: 0 2px;
}
.pk-related-title {
  margin: 0;
  font: 800 22px/1 var(--font-display);
  letter-spacing: -0.02em;
  color: #fff;
}
.pk-related-hint {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.4;
  color: rgb(255 255 255 / 0.45);
}
.pk-related-grid {
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
@media (max-width: 1080px) { .pk-related-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px)  { .pk-related-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .pk-related-grid { grid-template-columns: 1fr; } }

.pk-stats {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 14px;
}
.pk-stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.pk-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 14px 12px;
  border-radius: 12px;
  background:
    linear-gradient(180deg, rgb(255 255 255 / 0.04) 0%, rgb(255 255 255 / 0.015) 100%);
  border: 1px solid rgb(255 255 255 / 0.06);
  text-align: center;
  transition: border-color 0.22s, background 0.22s;
}
.pk-stat:hover {
  border-color: rgb(194 91 214 / 0.22);
  background:
    linear-gradient(180deg, rgb(194 91 214 / 0.06) 0%, rgb(255 255 255 / 0.015) 100%);
}
.pk-stat-num {
  font: 800 22px/1 var(--font-display);
  letter-spacing: -0.02em;
  background: linear-gradient(135deg, #fff 0%, #f0b6ff 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pk-stat-label {
  font: 600 10.5px/1 var(--font-display);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.5);
}
/* Subtle attribution — present but not loud */
.pk-stat-attr {
  display: inline-block;
  align-self: center;
  margin-top: 2px;
  font-size: 10.5px;
  letter-spacing: 0.02em;
  color: rgb(255 255 255 / 0.28);
  text-decoration: none;
  transition: color 0.18s;
}
.pk-stat-attr:hover,
.pk-stat-attr:focus-visible {
  color: rgb(255 255 255 / 0.55);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}
.pk-stat-attr:visited { color: rgb(255 255 255 / 0.28); }

/* ============================================================
   STICKY PURCHASE BAR — slides in from top once the main buy
   area is scrolled out of view. Always shows: name + price + CTA.
   ============================================================ */
.pk-sticky-buy {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  top: auto !important;
  width: 100% !important;
  z-index: 9990 !important;
  transform: translateY(110%);
  transition: transform 0.36s var(--ease-out-expo);
  background: rgb(13 7 26 / 0.92);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  border-top: 1px solid rgb(255 255 255 / 0.08);
  box-shadow: 0 -10px 30px -10px rgb(0 0 0 / 0.5);
  pointer-events: none;
  margin: 0;
  display: block;
}
.pk-sticky-buy.is-visible {
  transform: translateY(0) !important;
  pointer-events: auto;
}
.pk-sticky-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 12px clamp(20px, 4vw, 56px);
  min-height: 64px;
}
.pk-sticky-text {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 14px;
}
.pk-sticky-name {
  font: 700 14.5px/1.2 var(--font-display);
  letter-spacing: -0.01em;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}
.pk-sticky-price {
  font: 800 18px/1 var(--font-display);
  letter-spacing: -0.01em;
  background: linear-gradient(135deg, #fff 0%, #f0b6ff 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
  white-space: nowrap;
  flex: 0 0 auto;
}
.pk-sticky-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  height: 40px;
  padding: 0 18px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(135deg, #c25bd6 0%, #884bf5 100%);
  color: #fff;
  font: 700 13px/1 var(--font-display);
  letter-spacing: 0.01em;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  flex: 0 0 auto;
  box-shadow:
    0 8px 22px -8px rgb(136 75 245 / 0.55),
    inset 0 1px 0 rgb(255 255 255 / 0.2);
  transition: transform 0.18s var(--ease-out-expo), filter 0.18s, box-shadow 0.22s;
}
.pk-sticky-btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.08);
  box-shadow:
    0 12px 28px -8px rgb(136 75 245 / 0.7),
    inset 0 1px 0 rgb(255 255 255 / 0.28);
  color: #fff;
}
.pk-sticky-btn svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}
@media (max-width: 600px) {
  .pk-sticky-name { font-size: 13px; }
  .pk-sticky-price { font-size: 15px; }
  .pk-sticky-btn { height: 38px; padding: 0 14px; font-size: 12.5px; }
  .pk-sticky-btn span { display: none; } /* icon-only on small screens */
  .pk-sticky-btn { gap: 0; padding: 0 12px; min-width: 44px; }
}

/* ============================================================
   /support PAGE — reuses .why-* and .faq-* from the home page.
   Only the bits below are extras specific to support.
   ============================================================ */
body.page-support { background: #060310; }
body.page-support .site-content,
body.page-support .store-home,
body.page-support #shop { display: block !important; }

/* Quick-help cards behave as links — kill the default <a> styling */
.sup-help {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

/* Bottom CTA inside each help card */
.sup-help-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgb(255 255 255 / 0.06);
  font: 700 11.5px/1 var(--font-display);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.7);
  transition: color 0.22s;
}
.sup-help-cta svg {
  width: 12px;
  height: 12px;
  transition: transform 0.22s var(--ease-out-expo);
}
.sup-help:hover .sup-help-cta { color: #fff; }
.sup-help:hover .sup-help-cta svg { transform: translate(2px, -2px); }

/* The why-grid on the home is 3 columns desktop. Force 3 here too.
   Mobile responsive collapse comes from the home page's existing media. */
.sup-help-grid {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 820px) {
  .sup-help-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   Discord widget block on /support — left text + right iframe.
   ============================================================ */
.sup-discord {
  max-width: 1180px;
  margin: 60px auto 0;
  padding: 28px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 80% 20%, rgb(88 101 242 / 0.18), transparent 55%),
    radial-gradient(circle at 20% 80%, rgb(194 91 214 / 0.10), transparent 60%),
    linear-gradient(180deg, #120a24 0%, #0a0614 100%);
  border: 1px solid rgb(88 101 242 / 0.25);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 360px);
  gap: 32px;
  align-items: center;
}
.sup-discord-text {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}
.sup-discord-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  padding: 5px 12px;
  border-radius: 999px;
  background: rgb(88 101 242 / 0.16);
  border: 1px solid rgb(88 101 242 / 0.4);
  color: #a5b4fc;
  font: 800 10.5px/1 var(--font-display);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.sup-discord-eyebrow svg {
  width: 8px; height: 8px;
  color: #34d399;
  filter: drop-shadow(0 0 6px rgb(52 211 153 / 0.7));
  animation: sup-discord-pulse 1.6s ease-in-out infinite;
}
@keyframes sup-discord-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.55; transform: scale(0.85); }
}
.sup-discord-title {
  margin: 0;
  font: 800 clamp(24px, 3vw, 32px)/1.15 var(--font-display);
  letter-spacing: -0.02em;
  color: #fff;
}
.sup-discord-title-hl {
  background: linear-gradient(135deg, #a5b4fc 0%, #5865F2 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.sup-discord-pitch {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: rgb(255 255 255 / 0.6);
  max-width: 56ch;
}
.sup-discord-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, #5865F2 0%, #4752c4 100%);
  color: #fff;
  font: 800 13px/1 var(--font-display);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  align-self: flex-start;
  margin-top: 6px;
  box-shadow:
    0 14px 28px -10px rgb(88 101 242 / 0.6),
    inset 0 1px 0 rgb(255 255 255 / 0.18);
  transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.25s;
}
.sup-discord-cta:hover {
  transform: translateY(-2px);
  box-shadow:
    0 20px 36px -10px rgb(88 101 242 / 0.7),
    inset 0 1px 0 rgb(255 255 255 / 0.22);
}
.sup-discord-cta svg:first-child { width: 18px; height: 18px; }
.sup-discord-cta svg:last-child  { width: 14px; height: 14px; transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1); }
.sup-discord-cta:hover svg:last-child { transform: translateX(3px); }

.sup-discord-widget {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgb(88 101 242 / 0.25);
  background:
    radial-gradient(circle at 50% 0%, rgb(88 101 242 / 0.18), transparent 60%),
    linear-gradient(180deg, #1a1f3d 0%, #0d1027 100%);
  box-shadow: 0 18px 36px -16px rgb(0 0 0 / 0.6);
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Skeleton state shown while we hit Discord's invite endpoint. */
.sup-dwg-skeleton {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 32px;
  width: 100%;
  position: relative;
}
.sup-dwg-skel-icon {
  width: 64px; height: 64px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgb(88 101 242 / 0.18), rgb(255 255 255 / 0.04));
}
.sup-dwg-skel-line {
  height: 12px;
  border-radius: 6px;
  background: rgb(255 255 255 / 0.05);
}
.sup-dwg-skel-line--80 { width: 60%; }
.sup-dwg-skel-line--50 { width: 40%; }
.sup-dwg-skel-line--90 { width: 80%; height: 36px; border-radius: 999px; margin-top: 8px; }
.sup-dwg-skeleton::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgb(88 101 242 / 0.08) 50%, transparent 100%);
  animation: sup-dwg-shimmer 1.4s ease-in-out infinite;
  pointer-events: none;
}
@keyframes sup-dwg-shimmer {
  from { transform: translateX(-100%); }
  to   { transform: translateX(100%); }
}

/* Hydrated card */
.sup-dwg-card {
  width: 100%;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.sup-dwg-head {
  display: flex;
  align-items: center;
  gap: 14px;
}
.sup-dwg-icon {
  width: 56px; height: 56px;
  border-radius: 14px;
  object-fit: cover;
  border: 1px solid rgb(255 255 255 / 0.1);
  box-shadow: 0 8px 16px -8px rgb(0 0 0 / 0.6);
  background: linear-gradient(135deg, #5865F2 0%, #4752c4 100%);
}
.sup-dwg-icon--fb {
  display: grid;
  place-items: center;
  font: 900 22px/1 var(--font-display);
  color: #fff;
  letter-spacing: -0.02em;
}
.sup-dwg-head-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.sup-dwg-eye {
  font: 800 9.5px/1 var(--font-display);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #a5b4fc;
}
.sup-dwg-name {
  font: 800 18px/1.2 var(--font-display);
  color: #fff;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sup-dwg-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 14px;
  border-radius: 12px;
  background: rgb(0 0 0 / 0.25);
  border: 1px solid rgb(255 255 255 / 0.06);
}
.sup-dwg-stat {
  display: flex;
  align-items: center;
  gap: 10px;
}
.sup-dwg-dot {
  width: 10px; height: 10px;
  border-radius: 999px;
  background: #94a3b8;
  flex-shrink: 0;
}
.sup-dwg-dot--online {
  background: #34d399;
  box-shadow: 0 0 12px rgb(52 211 153 / 0.6);
  animation: sup-dwg-pulse 1.6s ease-in-out infinite;
}
.sup-dwg-dot--total { background: #94a3b8; }
@keyframes sup-dwg-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.6; transform: scale(0.85); }
}
.sup-dwg-stat-num {
  font: 800 18px/1 var(--font-display);
  color: #fff;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
}
.sup-dwg-stat-lbl {
  font-size: 11px;
  color: rgb(255 255 255 / 0.55);
  letter-spacing: 0.04em;
  margin-top: 3px;
}
.sup-dwg-card-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 18px;
  border-radius: 10px;
  background: linear-gradient(135deg, #5865F2 0%, #4752c4 100%);
  color: #fff;
  font: 800 13px/1 var(--font-display);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow:
    0 12px 24px -10px rgb(88 101 242 / 0.6),
    inset 0 1px 0 rgb(255 255 255 / 0.18);
  transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.22s;
}
.sup-dwg-card-cta:hover {
  transform: translateY(-2px);
  box-shadow:
    0 18px 32px -10px rgb(88 101 242 / 0.7),
    inset 0 1px 0 rgb(255 255 255 / 0.22);
}
.sup-dwg-card-cta svg { width: 18px; height: 18px; }
.sup-dwg-card--err {
  text-align: center;
  align-items: center;
}
.sup-dwg-card--err svg {
  width: 38px; height: 38px;
  margin: 0 auto 8px;
  color: #5865F2;
}
.sup-dwg-card-meta {
  font-size: 13px;
  color: rgb(255 255 255 / 0.6);
  margin-top: 4px;
}

@media (max-width: 880px) {
  .sup-discord {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 22px;
  }
}

/* Perks */
.pk-perks {
  list-style: none;
  padding: 18px 0 0; margin: 18px 0 0;
  border-top: 1px solid rgb(255 255 255 / 0.06);
  display: flex; flex-direction: column; gap: 10px;
}
.pk-perks li {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px;
  color: rgb(255 255 255 / 0.75);
}
.pk-perks strong { color: #fff; font-weight: 700; }
.pk-perks svg {
  flex-shrink: 0;
  width: 14px; height: 14px;
  padding: 4px;
  border-radius: 999px;
  background: rgb(194 91 214 / 0.14);
  border: 1px solid rgb(194 91 214 / 0.35);
  color: #f0b6ff;
  box-sizing: content-box;
}

/* =========================================================
   SECTIONS BELOW
   ========================================================= */
.pk-section { margin-bottom: 80px; }
.pk-section-h {
  display: flex; flex-direction: column;
  margin-bottom: 32px;
  max-width: 820px;
}
.pk-section-eyebrow {
  font: 800 11px/1 var(--font-display);
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: #f0b6ff;
  margin-bottom: 12px;
}
.pk-section-title {
  margin: 0;
  font: 900 clamp(26px, 3.2vw, 38px)/1.1 var(--font-display);
  letter-spacing: -0.03em;
  color: #fff;
}
.pk-section-hl {
  background: linear-gradient(135deg, #f472b6 0%, #c25bd6 50%, #884bf5 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  font-style: italic;
}

/* Prose */
.pk-prose {
  color: rgb(255 255 255 / 0.72);
  font-size: 15px; line-height: 1.7;
  max-width: 820px;
}
.pk-prose h1, .pk-prose h2, .pk-prose h3, .pk-prose h4 {
  color: #fff;
  font-family: var(--font-display);
  letter-spacing: -0.015em;
  margin: 22px 0 10px;
}
.pk-prose h2 { font-size: 22px; }
.pk-prose h3 { font-size: 18px; }
.pk-prose p { margin: 0 0 14px; }
.pk-prose a { color: #f0b6ff; text-decoration: underline; text-underline-offset: 3px; }
.pk-prose ul, .pk-prose ol { padding-left: 22px; margin: 0 0 14px; }
.pk-prose li { margin: 4px 0; }
.pk-prose code {
  padding: 2px 7px;
  border-radius: 5px;
  background: rgb(194 91 214 / 0.14);
  border: 1px solid rgb(194 91 214 / 0.25);
  color: #f0b6ff;
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-size: 0.88em;
}
.pk-prose pre {
  padding: 14px;
  border-radius: 10px;
  background: rgb(0 0 0 / 0.55);
  border: 1px solid rgb(255 255 255 / 0.06);
  overflow-x: auto;
  font-size: 13px;
}
.pk-prose img { max-width: 100%; border-radius: 10px; margin: 10px 0; }

/* Features grid — full width, 3 cols on desktop */
.pk-feats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
@media (max-width: 1024px) { .pk-feats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .pk-feats { grid-template-columns: 1fr; } }
.pk-feat {
  --accent: #c25bd6;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "icon title"
    "desc desc";
  align-items: center;
  column-gap: 12px;
  row-gap: 12px;
  padding: 22px;
  border-radius: 14px;
  background: rgb(255 255 255 / 0.025);
  border: 1px solid rgb(255 255 255 / 0.06);
  transition: border-color 0.25s, transform 0.25s var(--ease-out-expo);
}
.pk-feat:hover {
  border-color: rgb(255 255 255 / 0.16);
  transform: translateY(-3px);
}
.pk-feat-ico {
  grid-area: icon;
  display: grid; place-items: center;
  width: 42px; height: 42px;
  border-radius: 12px;
  background: rgb(from var(--accent) r g b / 0.14);
  border: 1px solid rgb(from var(--accent) r g b / 0.4);
  color: var(--accent);
}
.pk-feat-ico svg { width: 20px; height: 20px; }
.pk-feat h3 {
  grid-area: title;
  margin: 0;
  font: 800 16px/1.2 var(--font-display);
  letter-spacing: -0.01em;
  color: #fff;
}
.pk-feat p {
  grid-area: desc;
  margin: 0;
  font-size: 13.5px; line-height: 1.55;
  color: rgb(255 255 255 / 0.6);
}
.pk-feat code {
  padding: 1px 6px;
  border-radius: 4px;
  background: rgb(194 91 214 / 0.14);
  color: #f0b6ff;
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-size: 0.86em;
}

/* Specs */
.pk-specs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 0;
  border-top: 1px solid rgb(255 255 255 / 0.08);
}
@media (max-width: 600px) { .pk-specs { grid-template-columns: 1fr; } }
.pk-specs > div {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid rgb(255 255 255 / 0.08);
}
.pk-specs > div:nth-child(odd)  { padding-right: 24px; border-right: 1px solid rgb(255 255 255 / 0.08); }
.pk-specs > div:nth-child(even) { padding-left: 24px; }
@media (max-width: 600px) {
  .pk-specs > div:nth-child(odd)  { padding-right: 0; border-right: 0; }
  .pk-specs > div:nth-child(even) { padding-left: 0; }
}
.pk-specs dt { font-size: 13px; color: rgb(255 255 255 / 0.55); }
.pk-specs dd {
  margin: 0;
  font: 700 13.5px/1.3 var(--font-display);
  color: #fff;
  text-align: right;
}
.pk-specs dd a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  border-radius: 6px;
  background: rgb(194 91 214 / 0.14);
  border: 1px solid rgb(194 91 214 / 0.32);
  color: #f0b6ff;
  text-decoration: none;
  transition: background 0.18s, border-color 0.18s, color 0.18s;
}
.pk-specs dd a:hover {
  background: rgb(194 91 214 / 0.28);
  border-color: rgb(194 91 214 / 0.6);
  color: #fff;
}
.pk-specs dd a code {
  background: transparent;
  padding: 0;
  color: inherit;
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-size: 0.92em;
}

/* FAQ */
.pk-faq {
  display: flex; flex-direction: column; gap: 12px;
  width: 100%;
}
.pk-faq-item {
  border-radius: 14px;
  background: rgb(255 255 255 / 0.025);
  border: 1px solid rgb(255 255 255 / 0.06);
  overflow: hidden;
  transition: border-color 0.25s, background 0.25s;
}
.pk-faq-item[open] {
  border-color: rgb(194 91 214 / 0.4);
  background: rgb(194 91 214 / 0.04);
}
.pk-faq-q {
  list-style: none;
  cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px;
  padding: 18px 22px;
  font: 700 15px/1.3 var(--font-display);
  color: #fff;
}
.pk-faq-q::-webkit-details-marker { display: none; }
.pk-faq-chev {
  flex-shrink: 0;
  display: grid; place-items: center;
  width: 28px; height: 28px;
  border-radius: 999px;
  background: rgb(194 91 214 / 0.14);
  border: 1px solid rgb(194 91 214 / 0.35);
  color: #f0b6ff;
  transition: transform 0.3s var(--ease-out-expo);
}
.pk-faq-chev svg { width: 14px; height: 14px; }
.pk-faq-item[open] .pk-faq-chev { transform: rotate(180deg); }
.pk-faq-a-wrap {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.4s var(--ease-out-expo);
}
.pk-faq-item[open] .pk-faq-a-wrap { grid-template-rows: 1fr; }
.pk-faq-a {
  min-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.3s ease 0.05s, transform 0.4s var(--ease-out-expo) 0.05s;
}
.pk-faq-item[open] .pk-faq-a { opacity: 1; transform: translateY(0); }
.pk-faq-a p {
  margin: 0;
  padding: 0 22px 20px;
  font-size: 14px; line-height: 1.6;
  color: rgb(255 255 255 / 0.7);
}
.pk-faq-a strong { color: #fff; }
.pk-faq-a code {
  padding: 1px 6px;
  border-radius: 4px;
  background: rgb(194 91 214 / 0.14);
  color: #f0b6ff;
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-size: 0.88em;
}

/* ============================================================
   TABBED CONTENT
   ============================================================ */
.pk-tabs {
  margin-top: 60px;
}
.pk-tabnav {
  display: flex;
  gap: 4px;
  padding: 4px;
  margin-bottom: 32px;
  border: 1px solid rgb(255 255 255 / 0.08);
  border-radius: 14px;
  background: rgb(255 255 255 / 0.025);
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  position: sticky;
  top: calc(var(--header-h, 64px) + 16px);
  z-index: 30;
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
}
.pk-tabnav::-webkit-scrollbar { display: none; }
.pk-tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: rgb(255 255 255 / 0.6);
  font: 700 13px/1 var(--font-display);
  letter-spacing: 0.02em;
  cursor: pointer;
  white-space: nowrap;
  flex: 1 1 auto;
  justify-content: center;
  transition: background 0.2s, color 0.2s, transform 0.18s var(--ease-out-expo);
}
.pk-tab svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  opacity: 0.7;
  transition: opacity 0.2s;
}
.pk-tab:hover {
  color: #fff;
  background: rgb(194 91 214 / 0.08);
}
.pk-tab:hover svg { opacity: 1; }
.pk-tab.is-active {
  background: linear-gradient(135deg, #c25bd6 0%, #884bf5 100%);
  color: #fff;
  box-shadow:
    0 6px 16px -8px rgb(136 75 245 / 0.55),
    inset 0 1px 0 rgb(255 255 255 / 0.18);
}
.pk-tab.is-active svg { opacity: 1; }
.pk-tabpanels { position: relative; }
.pk-tabpanel {
  display: none;
  animation: pkTabIn 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}
.pk-tabpanel.is-active { display: block; }
@keyframes pkTabIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   STATUS BADGES — Best Seller / New / Updated / Hot / etc.
   Sit above the product title in the right column.
   ============================================================ */
.pk-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 14px;
}
.pk-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px 5px 8px;
  border-radius: 999px;
  font: 800 10px/1 var(--font-display);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border: 1px solid transparent;
  position: relative;
  isolation: isolate;
}
.pk-badge svg {
  width: 11px;
  height: 11px;
  flex: 0 0 11px;
}
.pk-badge::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  z-index: -1;
  transition: opacity 1.4s ease-in-out;
  animation: pkBadgeShine 3s ease-in-out infinite;
}
@keyframes pkBadgeShine {
  0%, 100% { opacity: 0; }
  50%      { opacity: 0.5; }
}

/* Best Seller — fiery red/orange */
.pk-badge--bestseller {
  background: linear-gradient(135deg, rgb(251 113 133 / 0.18) 0%, rgb(245 101 101 / 0.18) 100%);
  border-color: rgb(251 113 133 / 0.42);
  color: #fda4af;
}
.pk-badge--bestseller svg { color: #fb7185; }

/* New — electric blue */
.pk-badge--new {
  background: linear-gradient(135deg, rgb(96 165 250 / 0.18) 0%, rgb(59 130 246 / 0.18) 100%);
  border-color: rgb(96 165 250 / 0.42);
  color: #93c5fd;
}
.pk-badge--new svg { color: #60a5fa; }

/* Updated — green */
.pk-badge--updated {
  background: linear-gradient(135deg, rgb(52 211 153 / 0.18) 0%, rgb(16 185 129 / 0.18) 100%);
  border-color: rgb(52 211 153 / 0.42);
  color: #6ee7b7;
}
.pk-badge--updated svg { color: #34d399; }

/* Hot — orange flame */
.pk-badge--hot {
  background: linear-gradient(135deg, rgb(251 146 60 / 0.18) 0%, rgb(234 88 12 / 0.18) 100%);
  border-color: rgb(251 146 60 / 0.42);
  color: #fdba74;
}
.pk-badge--hot svg { color: #fb923c; }

/* Popular — purple checkmark */
.pk-badge--popular {
  background: linear-gradient(135deg, rgb(168 85 247 / 0.18) 0%, rgb(124 58 237 / 0.18) 100%);
  border-color: rgb(168 85 247 / 0.42);
  color: #d8b4fe;
}
.pk-badge--popular svg { color: #a855f7; }

/* Featured — gold star */
.pk-badge--featured {
  background: linear-gradient(135deg, rgb(251 191 36 / 0.18) 0%, rgb(217 119 6 / 0.18) 100%);
  border-color: rgb(251 191 36 / 0.45);
  color: #fcd34d;
}
.pk-badge--featured svg { color: #fbbf24; }

/* Sale — pink magenta */
.pk-badge--sale {
  background: linear-gradient(135deg, rgb(236 72 153 / 0.18) 0%, rgb(219 39 119 / 0.18) 100%);
  border-color: rgb(236 72 153 / 0.45);
  color: #f9a8d4;
}
.pk-badge--sale svg { color: #ec4899; }

/* ============================================================
   LIGHTBOX
   ============================================================ */
.pk-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9995;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 60px);
  background: rgb(2 1 8 / 0.92);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.24s var(--ease-out-expo);
}
.pk-lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}
.pk-lightbox-figure {
  position: relative;
  max-width: 95vw;
  max-height: 95vh;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  transform: scale(0.92);
  transition: transform 0.28s var(--ease-out-expo);
}
.pk-lightbox.is-open .pk-lightbox-figure { transform: scale(1); }
.pk-lightbox-img {
  max-width: 100%;
  max-height: calc(95vh - 60px);
  object-fit: contain;
  border-radius: 14px;
  box-shadow: 0 30px 80px -20px rgb(0 0 0 / 0.8);
}
.pk-lightbox-counter {
  font: 700 12px/1 var(--font-display);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgb(255 255 255 / 0.55);
  padding: 6px 14px;
  border-radius: 999px;
  background: rgb(255 255 255 / 0.05);
  border: 1px solid rgb(255 255 255 / 0.08);
}
.pk-lightbox-close {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  background: rgb(255 255 255 / 0.08);
  border: 1px solid rgb(255 255 255 / 0.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #fff;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background 0.18s, transform 0.3s var(--ease-out-expo);
}
.pk-lightbox-close:hover {
  background: rgb(194 91 214 / 0.5);
  transform: rotate(90deg);
}
.pk-lightbox-close svg { width: 18px; height: 18px; }
.pk-lightbox-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 999px;
  background: rgb(255 255 255 / 0.08);
  border: 1px solid rgb(255 255 255 / 0.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #fff;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background 0.18s, transform 0.22s var(--ease-out-expo);
}
.pk-lightbox-arrow:hover {
  background: rgb(194 91 214 / 0.5);
}
.pk-lightbox-arrow:hover.pk-lightbox-prev { transform: translateY(-50%) translateX(-3px); }
.pk-lightbox-arrow:hover.pk-lightbox-next { transform: translateY(-50%) translateX(3px); }
.pk-lightbox-prev { left: 20px; }
.pk-lightbox-next { right: 20px; }
.pk-lightbox-arrow svg { width: 18px; height: 18px; }

/* Make gallery image cursor a "zoom-in" to hint at lightbox */
.pk-frame.is-active img { cursor: zoom-in; }

/* Responsive */
@media (max-width: 820px) {
  .pk-arrow { opacity: 1; background: rgb(0 0 0 / 0.65); }
  .pk-section { margin-bottom: 56px !important; }
  .pk-tabs { margin-top: 40px; }
  .pk-tabnav { position: static; margin-bottom: 22px; }
  .pk-tab { padding: 9px 12px; font-size: 12px; }
  .pk-tab span { display: none; } /* icon-only on small screens */
  .pk-tab svg { width: 16px; height: 16px; }
  .pk-badges { gap: 5px; margin-bottom: 10px; }
  .pk-badge { font-size: 9px; padding: 4px 8px 4px 6px; }
  .pk-badge svg { width: 10px; height: 10px; }
  .pk-lightbox-arrow { width: 40px; height: 40px; }
  .pk-lightbox-prev { left: 10px; }
  .pk-lightbox-next { right: 10px; }
  .pk-lightbox-close { top: 10px; right: 10px; width: 36px; height: 36px; }
}

/* ============================================================
   PACKAGE PAGE — full mobile responsive pass
   ============================================================ */
@media (max-width: 820px) {
  .pk {
    padding: 32px clamp(14px, 4vw, 24px) 64px !important;
  }
  .pk-grid { gap: 24px !important; }
  .pk-section-h { margin-bottom: 22px !important; }
  .pk-section-title {
    font-size: clamp(22px, 5vw, 28px) !important;
    line-height: 1.15 !important;
  }
  .pk-section-eyebrow {
    font-size: 10px !important;
    letter-spacing: 0.22em !important;
    margin-bottom: 8px !important;
  }
}

@media (max-width: 600px) {
  .pk {
    padding: 24px 14px 56px !important;
  }
  .pk-col-right { padding: 0 !important; }
  .pk-title {
    font-size: clamp(24px, 6.5vw, 32px) !important;
    line-height: 1.15 !important;
    letter-spacing: -0.02em !important;
  }
  .pk-fws { gap: 6px !important; flex-wrap: wrap !important; }
  .pk-fw {
    font-size: 9.5px !important;
    padding: 4px 8px !important;
    letter-spacing: 0.1em !important;
  }
  .pk-desc { font-size: 14px !important; line-height: 1.55 !important; }
  .pk-price { font-size: 28px !important; }

  /* Stats — keep two columns but tighter */
  .pk-stats { margin-top: 12px !important; gap: 6px !important; }
  .pk-stats-grid { gap: 6px !important; }
  .pk-stat { padding: 11px 8px !important; }
  .pk-stat-num { font-size: 18px !important; }
  .pk-stat-label { font-size: 9.5px !important; letter-spacing: 0.12em !important; }
  .pk-stat-attr { font-size: 10px !important; }

  /* Section spacing */
  .pk-section { margin-bottom: 44px !important; }
  .pk-section-title { font-size: clamp(20px, 6vw, 24px) !important; }

  /* Features card padding tighter */
  .pk-feat { padding: 16px !important; column-gap: 10px !important; row-gap: 8px !important; }
  .pk-feat h3 { font-size: 15px !important; }
  .pk-feat p { font-size: 13px !important; }
  .pk-feat-ico { width: 36px !important; height: 36px !important; }
  .pk-feat-ico svg { width: 18px !important; height: 18px !important; }

  /* FAQ tighter */
  .pk-faq-q { padding: 14px 14px !important; font-size: 14px !important; }
  .pk-faq-a { padding: 0 14px 14px !important; font-size: 13.5px !important; }

  /* Thumbs — keep 4 visible, smaller */
  .pk-thumbs { gap: 8px !important; margin-top: 10px !important; }
  .pk-thumb { flex: 0 0 calc((100% - 24px) / 4) !important; }

  /* Hide gallery arrows on touch (use swipe / thumbs instead) */
  .pk-arrow { display: none !important; }
  .pk-counter {
    bottom: 8px !important;
    right: 8px !important;
    padding: 4px 9px !important;
    font-size: 10px !important;
  }

  /* Sticky bar at bottom — already responsive but tighter */
  .pk-sticky-inner {
    padding: 10px 14px !important;
    gap: 10px !important;
    min-height: 56px !important;
  }
  .pk-sticky-name {
    font-size: 13px !important;
    /* Hide name on very narrow screens — price + button is enough */
  }
  .pk-sticky-text { gap: 8px !important; }
}

@media (max-width: 420px) {
  .pk { padding: 20px 12px 48px !important; }
  .pk-title { font-size: clamp(22px, 7vw, 28px) !important; }
  .pk-price { font-size: 26px !important; }
  .pk-section-title { font-size: 20px !important; }
  .pk-section { margin-bottom: 36px !important; }
  /* Sticky bar: hide product name to leave room for price + CTA */
  .pk-sticky-name { display: none !important; }
}

/* ============================================================
   Basket — DROPDOWN POPUP anchored to the cart button (top-right).
   Replaces the full-height drawer with a compact card that drops
   down from the cart icon on click.
   ============================================================ */
.basket-popup {
  /* Transparent overlay (no dim) — feels like a dropdown, not a modal.
     Clicks outside still close the popup via Tebex's own handler. */
  top: 0 !important;
  background-color: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.basket-popup .popup-scroll-cont {
  justify-content: flex-end !important;
  align-items: flex-start !important;
  padding: 0 !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
}

.basket-popup-content {
  position: relative !important;
  width: min(400px, calc(100vw - 24px)) !important;
  max-width: 400px !important;
  height: auto !important;
  max-height: calc(100vh - var(--header-h, 64px) - 24px) !important;
  max-height: calc(100dvh - var(--header-h, 64px) - 24px) !important;
  margin-top: calc(var(--header-h, 64px) + 10px) !important;
  margin-right: clamp(12px, 3vw, 56px) !important;
  padding: 0 !important;
  border-radius: 16px !important;
  border: 1px solid rgb(255 255 255 / 0.08) !important;
  background:
    radial-gradient(100% 60% at 100% 0%, rgb(194 91 214 / 0.16) 0%, transparent 60%),
    linear-gradient(180deg, #130a24 0%, #0a0614 100%) !important;
  box-shadow:
    0 24px 60px -12px rgb(0 0 0 / 0.7),
    0 0 0 1px rgb(194 91 214 / 0.12),
    inset 0 1px 0 rgb(255 255 255 / 0.06) !important;
  color: #fff;
  overflow: hidden !important;
  transform-origin: top right !important;
}

/* Open: scale up from the top-right (cart button position).
   Close: shrinks down INTO the same top-right point.
   IMPORTANT: Tebex applies `translate: 100% 0` (the CSS `translate`
   property, INDEPENDENT of `transform`) to slide the drawer right on
   close. We MUST override it to 0 or the popup keeps sliding sideways. */
@starting-style {
  :root .basket-popup-content {
    transform: scale(0.15) !important;
    translate: 0 0 !important;
    opacity: 0 !important;
  }
}
:root .popup[hidden] .basket-popup-content {
  transform: scale(0.15) !important;
  translate: 0 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition:
    transform 0.22s cubic-bezier(.55, 0, .85, .5),
    translate 0.22s cubic-bezier(.55, 0, .85, .5),
    opacity 0.18s !important;
}
:root .basket-popup-content {
  transform: scale(1) !important;
  translate: 0 0 !important;
  opacity: 1 !important;
  transition:
    transform 0.28s cubic-bezier(.19, 1, .22, 1),
    translate 0.28s cubic-bezier(.19, 1, .22, 1),
    opacity 0.22s !important;
}

/* (Pointer triangle removed — was overlapping the basket content) */
.basket-popup-content::before { display: none !important; }

/* Internal scroll for the items list (header + footer stay pinned) */
.basket-popup-content .basket {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  max-height: calc(100vh - var(--header-h, 64px) - 24px) !important;
  max-height: calc(100dvh - var(--header-h, 64px) - 24px) !important;
}
.basket-popup-content .basket-content,
.basket-popup-content .basket-items {
  flex: 1 1 auto !important;
  overflow-y: auto !important;
  scrollbar-width: thin;
  scrollbar-color: rgb(194 91 214 / 0.4) transparent;
}
.basket-popup-content .basket-content::-webkit-scrollbar,
.basket-popup-content .basket-items::-webkit-scrollbar { width: 4px; }
.basket-popup-content .basket-content::-webkit-scrollbar-thumb,
.basket-popup-content .basket-items::-webkit-scrollbar-thumb {
  background: rgb(194 91 214 / 0.4);
  border-radius: 2px;
}

/* Mobile — full-width popup with small side margins, rounded everywhere */
@media (max-width: 600px) {
  .basket-popup-content {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    margin-top: calc(var(--header-h, 56px) + 6px) !important;
    margin-right: 8px !important;
    margin-left: 8px !important;
    max-height: calc(100dvh - 80px) !important;
  }
  .basket-popup-content::before { right: 30px !important; }
}

/* Hide the close button visually but keep it in DOM and clickable —
   our JS triggers it programmatically when the user clicks the cart
   button to close, so Tebex's internal toggle state stays in sync. */
.basket-popup-content .popup-close,
.basket-popup .popup-close {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  z-index: -1 !important;
}

/* Header — compact for popup format */
.basket .basket-header {
  padding: 16px 18px 12px !important;
  border-bottom: none !important;
  color: #fff !important;
}
@media (width > 960px) { .basket .basket-header { padding-top: 18px !important; } }

.basket .basket-title {
  font: 800 16px/1 var(--font-display) !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
  color: #fff !important;
  gap: 8px !important;
}
.basket .basket-title::before {
  width: 20px !important;
  height: 20px !important;
  background: linear-gradient(135deg, #c25bd6 0%, #884bf5 100%) !important;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/><line x1='3' y1='6' x2='21' y2='6'/><path d='M16 10a4 4 0 0 1-8 0'/></svg>") center/contain no-repeat !important;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/><line x1='3' y1='6' x2='21' y2='6'/><path d='M16 10a4 4 0 0 1-8 0'/></svg>") center/contain no-repeat !important;
}

/* Second header (total + currency) — compact */
.basket .basket-second-header {
  padding: 10px 18px !important;
  background: rgb(255 255 255 / 0.03) !important;
  border-top: 1px solid rgb(255 255 255 / 0.06) !important;
  border-bottom: 1px solid rgb(255 255 255 / 0.06) !important;
  color: rgb(255 255 255 / 0.7) !important;
  font-size: 12px !important;
  text-align: left !important;
}
.basket .basket-second-header .total strong {
  color: #f0b6ff !important;
  font-size: 15px !important;
}
.basket .basket-second-header .currency {
  background: rgb(194 91 214 / 0.12) !important;
  border: 1px solid rgb(194 91 214 / 0.3) !important;
  color: #f0b6ff !important;
  padding: 4px 9px !important;
  border-radius: 999px !important;
  font-size: 10px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
.basket .basket-second-header .currency::after {
  filter: brightness(0) invert(1) !important;
  opacity: 0.8;
  width: 12px !important;
  height: 12px !important;
}

/* Empty state — compact */
.basket .basket-empty {
  padding: 36px 18px !important;
  color: rgb(255 255 255 / 0.5) !important;
  font-size: 13px !important;
}
.basket .basket-empty::before {
  content: "";
  display: block;
  width: 56px; height: 56px;
  margin: 0 auto 14px;
  border-radius: 999px;
  background:
    radial-gradient(circle at 30% 25%, rgb(255 255 255 / 0.2) 0%, transparent 40%),
    linear-gradient(135deg, rgb(194 91 214 / 0.18) 0%, rgb(136 75 245 / 0.18) 100%);
  border: 1px solid rgb(194 91 214 / 0.3);
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/><line x1='3' y1='6' x2='21' y2='6'/><path d='M16 10a4 4 0 0 1-8 0'/></svg>") center/34px no-repeat, linear-gradient(#000,#000);
  mask-composite: exclude;
  -webkit-mask-composite: xor;
}

/* Items — tighter for popup */
.basket .basket-items {
  padding: 10px 12px !important;
  gap: 8px !important;
}
.basket .basket-item {
  padding: 10px !important;
  background: rgb(255 255 255 / 0.03) !important;
  border: 1px solid rgb(255 255 255 / 0.06) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  color: #fff !important;
  transition: border-color 0.2s, background 0.2s !important;
}
.basket .basket-item:hover {
  border-color: rgb(194 91 214 / 0.4) !important;
  background: rgb(194 91 214 / 0.05) !important;
  box-shadow: none !important;
}
.basket .basket-item .title {
  font: 700 15px/1.3 var(--font-display) !important;
  letter-spacing: -0.01em !important;
  color: #fff !important;
}
.basket .basket-item .options li {
  color: rgb(255 255 255 / 0.5) !important;
  font-size: 12px !important;
}
.basket .basket-item .price {
  color: #f0b6ff !important;
  font-size: 13px !important;
}
.basket .basket-item .price strong {
  font-size: 16px !important;
  background: linear-gradient(135deg, #f0b6ff 0%, #c25bd6 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.basket .basket-item .quantity-field {
  background: rgb(255 255 255 / 0.04) !important;
  border: 1px solid rgb(255 255 255 / 0.08) !important;
  border-radius: 10px !important;
  color: #fff !important;
  height: 38px !important;
}
.basket .basket-item .remove {
  background-color: rgb(255 255 255 / 0.04) !important;
  border: 1px solid rgb(255 255 255 / 0.08) !important;
  border-radius: 10px !important;
}
.basket .basket-item .remove::before {
  background-color: rgb(255 255 255 / 0.5) !important;
}
.basket .basket-item .remove:hover {
  background-color: rgb(251 113 133 / 0.12) !important;
  border-color: rgb(251 113 133 / 0.4) !important;
}
.basket .basket-item .remove:hover::before {
  background-color: #fb7185 !important;
}

/* Checkout footer — compact for popup */
.basket .basket-checkout {
  padding: 14px 16px 16px !important;
  background:
    linear-gradient(180deg, rgb(194 91 214 / 0.06) 0%, transparent 100%),
    rgb(255 255 255 / 0.02) !important;
  border-top: 1px solid rgb(255 255 255 / 0.08) !important;
}
@media (width > 960px) { .basket .basket-checkout { padding-bottom: 16px !important; } }

.basket .basket-checkout h3 {
  font-size: 10px !important;
  letter-spacing: 0.16em !important;
  color: rgb(255 255 255 / 0.5) !important;
  margin-bottom: 8px !important;
}
.basket .basket-checkout .total {
  color: #fff !important;
  font-size: 12px !important;
  margin-bottom: 12px !important;
}
.basket .basket-checkout .total strong {
  font-size: 24px !important;
  font-weight: 900 !important;
  background: linear-gradient(135deg, #f0b6ff 0%, #c25bd6 50%, #884bf5 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  letter-spacing: -0.02em !important;
}

.basket .basket-checkout .checkout {
  height: 46px !important;
  line-height: 46px !important;
  padding: 0 18px !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, #c25bd6 0%, #884bf5 100%) !important;
  color: #fff !important;
  font: 800 12.5px/46px var(--font-display) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  border: none !important;
  box-shadow:
    0 10px 24px -10px rgb(136 75 245 / 0.6),
    inset 0 1px 0 rgb(255 255 255 / 0.2) !important;
  transition:
    transform 0.22s cubic-bezier(.19,1,.22,1),
    filter 0.2s,
    box-shadow 0.25s !important;
  position: relative;
  overflow: hidden;
}
.basket .basket-checkout .checkout:hover {
  transform: translateY(-2px) !important;
  filter: brightness(1.08);
  box-shadow:
    0 18px 38px -10px rgb(136 75 245 / 0.75),
    inset 0 1px 0 rgb(255 255 255 / 0.28) !important;
}
.basket .basket-checkout .checkout:active {
  transform: translateY(0) scale(0.99) !important;
}

/* Loading overlay inside the basket */
.basket-popup-content.updating::before {
  background: url("https://template-assets.tebex.io/images/loading.svg") center center no-repeat !important;
  background-size: contain !important;
  filter: brightness(0) invert(0.6) sepia(1) hue-rotate(240deg) saturate(4) !important;
}

