/* =========================================================
   Vibrations Train — WordPress / WooCommerce theme styles
   Mirrors the React app design system.
   ========================================================= */

:root {
  --ink:           oklch(0.08 0.005 60);
  --background:    oklch(0.13 0.005 60);
  --charcoal:      oklch(0.18 0.008 60);
  --foreground:    oklch(0.94 0.01 80);
  --muted:         oklch(0.20 0.006 60);
  --muted-fg:      oklch(0.62 0.015 70);
  --amber-glow:    oklch(0.78 0.16 65);
  --amber-deep:    oklch(0.62 0.17 55);
  --border:        rgba(255,255,255,0.08);
  --border-strong: rgba(255,255,255,0.16);

  --font-display:   "Bebas Neue", system-ui, sans-serif;
  --font-editorial: "Fraunces", "Times New Roman", serif;
  --font-body:      "Inter", system-ui, sans-serif;

  --radius: 4px;
  --shadow-soft: 0 20px 60px -20px rgba(0,0,0,0.8);
  --shadow-glow: 0 0 80px -10px oklch(0.78 0.16 65 / 0.35);
}

/* ---------- Reset-ish ---------- */
*, *::before, *::after { box-sizing: border-box; border-color: var(--border); }
html, body {
  margin: 0;
  background: var(--ink);
  color: var(--foreground);
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color .25s ease; }
a:hover { color: var(--amber-glow); }
::selection { background: var(--amber-deep); color: var(--ink); }

h1, h2, h3, h4 { font-family: var(--font-display); letter-spacing: .02em; margin: 0 0 .4em; font-weight: 400; line-height: 1; }
h1 { font-size: clamp(3rem, 8vw, 8rem); }
h2 { font-size: clamp(2.25rem, 6vw, 5rem); }
h3 { font-size: clamp(1.5rem, 3vw, 2rem); }

p { margin: 0 0 1.2em; }

.text-balance { text-wrap: balance; }
.font-display   { font-family: var(--font-display);  letter-spacing: .02em; }
.font-editorial { font-family: var(--font-editorial); font-style: italic; }
.font-body      { font-family: var(--font-body); }
.amber          { color: var(--amber-glow); }
.muted          { color: var(--muted-fg); }
.eyebrow {
  font-family: var(--font-body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .4em;
  color: color-mix(in oklch, var(--amber-glow) 80%, transparent);
}

/* ---------- Container ---------- */
.vt-wrap { max-width: 1200px; margin-inline: auto; padding-inline: 24px; }
@media (min-width: 640px) { .vt-wrap { padding-inline: 40px; } }

/* ---------- Site header ---------- */
.vt-header {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in oklch, var(--ink) 80%, transparent);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}
.vt-header__row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 0; gap: 16px;
}
.vt-brand { display: flex; align-items: center; gap: 12px; }
.vt-brand img {
  height: 38px; width: 38px;
  filter: drop-shadow(0 0 1px #fff) drop-shadow(0 0 1px #fff);
}
.vt-brand__text {
  font-family: var(--font-display);
  font-size: 14px;
  letter-spacing: .3em;
  color: color-mix(in oklch, var(--amber-glow) 80%, transparent);
}
.vt-nav { display: none; }
.vt-nav ul { list-style: none; display: flex; gap: 28px; margin: 0; padding: 0; }
.vt-nav a {
  font-size: 11px; text-transform: uppercase; letter-spacing: .3em;
  color: var(--muted-fg);
}
.vt-nav a:hover { color: var(--amber-glow); }
@media (min-width: 900px) { .vt-nav { display: block; } }

.vt-header__cart {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; text-transform: uppercase; letter-spacing: .3em;
  color: var(--muted-fg);
  border: 1px solid var(--border);
  padding: 10px 16px; border-radius: var(--radius);
  transition: all .25s ease;
}
.vt-header__cart:hover {
  color: var(--amber-glow);
  border-color: color-mix(in oklch, var(--amber-glow) 60%, transparent);
  box-shadow: 0 0 30px -5px var(--amber-glow);
}

/* ---------- Hero ---------- */
.vt-hero {
  position: relative; overflow: hidden;
  min-height: 70vh; padding: 80px 0 120px;
  display: flex; align-items: center;
}
.vt-hero__bg { position: absolute; inset: 0; z-index: -1; }
.vt-hero__bg img {
  width: 100%; height: 100%; object-fit: cover;
  animation: vt-zoom 22s ease-in-out infinite alternate;
}
.vt-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg,
    color-mix(in oklch, var(--ink) 85%, transparent) 0%,
    color-mix(in oklch, var(--ink) 55%, transparent) 50%,
    var(--ink) 100%);
}
.vt-hero__inner { position: relative; text-align: center; max-width: 760px; margin: 0 auto; }
.vt-hero__logo {
  width: 160px; height: 160px; margin: 0 auto 32px;
  filter: drop-shadow(0 0 1px #fff) drop-shadow(0 0 1px #fff)
          drop-shadow(0 0 60px oklch(0.62 0.17 55 / 0.45));
}
.vt-hero h1 span { display: block; }
.vt-hero h1 .amber { color: var(--amber-glow); }
.vt-hero__sub { margin-top: 24px; font-family: var(--font-editorial); font-style: italic; color: var(--muted-fg); }
.vt-hero__rule { width: 64px; height: 1px; margin: 40px auto; background: color-mix(in oklch, var(--amber-deep) 60%, transparent); }
.vt-hero__lede { max-width: 560px; margin: 0 auto; color: color-mix(in oklch, var(--foreground) 75%, transparent); }

@keyframes vt-zoom { from { transform: scale(1.05); } to { transform: scale(1.12); } }

/* Grain + vignette */
.vt-grain::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  opacity: .08; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 0.85 0 0 0 0 0.6 0 0 0 0.9 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.vt-vignette::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at center, transparent 30%, oklch(0.08 0.005 60 / 0.85) 100%);
}

/* ---------- Section ---------- */
.vt-section { padding: 96px 0; border-top: 1px solid var(--border); }
@media (min-width: 768px) { .vt-section { padding: 144px 0; } }
.vt-section__eyebrow { margin-bottom: 32px; }

/* ---------- Buttons ---------- */
.vt-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .35em;
  padding: 14px 28px;
  background: transparent;
  color: var(--amber-glow);
  border: 1px solid color-mix(in oklch, var(--amber-glow) 60%, transparent);
  border-radius: var(--radius);
  cursor: pointer;
  transition: all .3s ease;
  text-shadow: none;
}
.vt-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background: color-mix(in oklch, var(--amber-glow) 12%, transparent);
  border-color: var(--amber-glow);
  color: var(--amber-glow);
  box-shadow: 0 0 30px -5px var(--amber-glow);
}
.vt-btn--solid,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce #place_order {
  background: var(--amber-glow);
  color: var(--ink);
  border-color: var(--amber-glow);
}
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce #place_order:hover {
  background: var(--amber-deep);
  border-color: var(--amber-deep);
  color: var(--ink);
}

/* ---------- Forms ---------- */
input[type="text"], input[type="email"], input[type="password"],
input[type="search"], input[type="tel"], input[type="number"],
select, textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
  background: var(--charcoal) !important;
  color: var(--foreground) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  padding: 12px 14px !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
}
input:focus, select:focus, textarea:focus {
  outline: none !important;
  border-color: color-mix(in oklch, var(--amber-glow) 60%, transparent) !important;
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--amber-glow) 15%, transparent) !important;
}
label { font-size: 12px; text-transform: uppercase; letter-spacing: .2em; color: var(--muted-fg); }

/* ---------- WooCommerce: shop / archive ---------- */
.woocommerce .woocommerce-products-header__title.page-title {
  font-family: var(--font-display);
  font-size: clamp(3rem, 7vw, 6rem);
  color: var(--foreground);
  margin-bottom: 8px;
}
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
  font-size: 11px; text-transform: uppercase; letter-spacing: .3em; color: var(--muted-fg);
}
.woocommerce ul.products, .woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 40px;
  list-style: none; padding: 0; margin: 40px 0;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  padding: 0 !important;
  background: var(--charcoal);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: all .4s ease;
}
.woocommerce ul.products li.product:hover {
  border-color: color-mix(in oklch, var(--amber-glow) 50%, transparent);
  box-shadow: var(--shadow-glow);
  transform: translateY(-4px);
}
.woocommerce ul.products li.product a img {
  margin: 0 !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 100%;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-display);
  font-size: 1.4rem !important;
  padding: 16px 16px 4px !important;
  color: var(--foreground);
}
.woocommerce ul.products li.product .price {
  display: block;
  padding: 0 16px 16px;
  color: var(--amber-glow) !important;
  font-family: var(--font-editorial);
  font-style: italic;
  font-size: 1.1rem !important;
}
.woocommerce ul.products li.product .price del { color: var(--muted-fg) !important; opacity: .6; }
.woocommerce ul.products li.product .button {
  margin: 0 16px 16px !important;
  display: inline-flex !important;
}
.woocommerce span.onsale {
  background: var(--amber-glow) !important;
  color: var(--ink) !important;
  font-family: var(--font-body);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .25em;
  border-radius: 999px;
  padding: 6px 12px;
  min-height: auto !important; line-height: 1 !important;
}

/* ---------- WooCommerce: single product ---------- */
.woocommerce div.product .product_title {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);
  color: var(--foreground);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--amber-glow) !important;
  font-family: var(--font-editorial);
  font-style: italic;
  font-size: 1.6rem !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
  border-bottom: 1px solid var(--border) !important;
  padding: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  margin: 0 24px 0 0 !important;
  padding: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-size: 11px; text-transform: uppercase; letter-spacing: .3em;
  color: var(--muted-fg) !important;
  padding: 16px 0 !important;
  border-bottom: 1px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--amber-glow) !important;
  border-bottom-color: var(--amber-glow);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom-color: var(--border) !important; }

/* ---------- WooCommerce: notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  background: var(--charcoal) !important;
  color: var(--foreground) !important;
  border-top: 3px solid var(--amber-glow) !important;
  border-radius: var(--radius);
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { color: var(--amber-glow) !important; }

/* ---------- Cart / checkout tables ---------- */
.woocommerce table.shop_table {
  background: var(--charcoal);
  border: 1px solid var(--border) !important;
  border-radius: var(--radius);
  color: var(--foreground);
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-color: var(--border) !important;
}
.woocommerce-cart .cart-collaterals .cart_totals h2,
.woocommerce-checkout #order_review_heading {
  font-family: var(--font-display);
  color: var(--foreground);
}

/* ---------- Footer ---------- */
.vt-footer {
  position: relative; overflow: hidden;
  border-top: 1px solid var(--border);
  background: var(--ink);
  padding: 80px 0 60px;
  text-align: center;
}
.vt-footer::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px;
  background: linear-gradient(90deg, transparent, color-mix(in oklch, var(--amber-glow) 50%, transparent), transparent);
}
.vt-footer__logo {
  width: 48px; height: 48px; margin: 0 auto 16px;
  filter: brightness(0) invert(1);
  opacity: .8;
}
.vt-footer__name {
  font-family: var(--font-display);
  font-size: 1.8rem;
  letter-spacing: .15em;
}
.vt-footer__tag {
  margin-top: 8px;
  font-size: 11px; text-transform: uppercase; letter-spacing: .4em; color: var(--muted-fg);
}
.vt-socials { display: flex; justify-content: center; gap: 20px; margin: 24px 0; }
.vt-socials a {
  width: 40px; height: 40px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--muted-fg);
  transition: all .3s ease;
}
.vt-socials a:hover {
  border-color: color-mix(in oklch, var(--amber-glow) 60%, transparent);
  color: var(--amber-glow);
  box-shadow: 0 0 30px -5px var(--amber-glow);
}
.vt-socials svg { width: 18px; height: 18px; }
.vt-footer__copy {
  margin-top: 32px;
  font-size: 10px; text-transform: uppercase; letter-spacing: .4em;
  color: color-mix(in oklch, var(--muted-fg) 60%, transparent);
}

/* ---------- Page content (blog / standalone pages) ---------- */
.vt-page { padding: 96px 0; }
.vt-page__title {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  margin-bottom: 32px;
}
.vt-prose { max-width: 720px; margin-inline: auto; font-size: 1.05rem; }
.vt-prose a { color: var(--amber-glow); border-bottom: 1px solid color-mix(in oklch, var(--amber-glow) 40%, transparent); }
.vt-prose blockquote {
  border-left: 2px solid var(--amber-glow);
  padding-left: 20px;
  font-family: var(--font-editorial);
  font-style: italic;
  color: color-mix(in oklch, var(--foreground) 85%, transparent);
}

/* ---------- Pagination ---------- */
.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li {
  border-color: var(--border) !important;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  background: var(--charcoal) !important;
  color: var(--foreground) !important;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--amber-glow) !important;
  color: var(--ink) !important;
}
