/*
 * Enter any custom CSS here.
 * This file will not be overwritten by theme updates.
 *
 * ── Semantic class hooks (sa-*) ────────────────────────────────────────────
 * Every section, snippet and key element carries a stable `sa-` class you can
 * target with plain CSS — no Tailwind rebuild needed. These classes ship with
 * NO styles of their own; they exist purely as selectors for you to hook onto.
 *
 * Page scope   body.sa-tpl-<template>      e.g. .sa-tpl-product, .sa-tpl-shop
 *              body.sa-no-product-images / .sa-no-category-images when the
 *              matching theme setting is off
 * Chrome       .sa-header .sa-navbar .sa-footer
 *              .sa-navbar-link .sa-navbar-logo .sa-navbar-cart .sa-footer-link
 * Sections     .sa-<component>             e.g. .sa-hero, .sa-features, .sa-faq
 *   variant    .sa-<component>--<variant>  e.g. .sa-hero--split-media
 *   inner      .sa-<component>-title / -subtitle / -eyebrow / -media /
 *              -items / -item / -actions / -link / -price / -badge / -icon
 * Primitives   .sa-btn (+ .sa-btn--<variant>), .sa-section-header
 *              (.sa-section-title / -eyebrow / -subtitle),
 *              .sa-product-card (+ .sa-product-card--<style>,
 *              .sa-product-card-title / -price / -stock / -status / -badges),
 *              .sa-product-form + .sa-add-to-cart, .sa-product-gallery,
 *              .sa-cart-panel + .sa-cart-item, .sa-searchbar, .sa-pagination,
 *              .sa-breadcrumbs, .sa-toasts + .sa-toast, .sa-feedback-card
 *
 * Example — bigger hero heading only on the product page:
 *   .sa-tpl-product .sa-hero-title { font-size: 3rem; }
 * ───────────────────────────────────────────────────────────────────────────
*/

/* ── Snow effect canvas ──────────────────────────────────────────────────
 * Canvas is injected by custom.js, which also picks flake color per
 * data-scheme. Fixed + behind content, ignores clicks.
 * ───────────────────────────────────────────────────────────────────────*/
#sa-snow {
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.9;
}

html[data-scheme="light"] #sa-snow {
  opacity: 0.6;
}

/* Keep real content above the snow layer. sa-header/sa-navbar already sit in
   normal flow; this just makes sure the stacking context is correct. */
.sa-navbar,
.sa-header,
main,
.sa-footer {
  position: relative;
  z-index: 2;
}

@media (prefers-reduced-motion: reduce) {
  #sa-snow {
    display: none;
  }
}

/* ── Downloads page ───────────────────────────────────────────────────── */
.sa-downloads-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);
  gap: 2.5rem;
  align-items: end;
  min-height: 28rem;
}

.sa-downloads-copy {
  padding-bottom: 3.5rem;
}

.sa-downloads-os {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.sa-downloads-os-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.25rem;
  border: 1px solid rgb(var(--cl-border));
  border-radius: var(--radius-card);
  background: rgb(var(--cl-surface));
}

.sa-downloads-os-card.is-ready {
  border-color: rgba(var(--cl-accent), 0.45);
  background: rgba(var(--cl-accent), 0.07);
  box-shadow: 0 0 0 1px rgba(var(--cl-accent), 0.08);
}

.sa-downloads-os-card.is-soon {
  opacity: 0.72;
}

.sa-downloads-os-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
  border-radius: var(--radius-input);
  background: rgba(var(--cl-accent), 0.12);
  color: rgb(var(--cl-accent));
  font-size: 1.15rem;
}

.sa-downloads-os-card.is-soon .sa-downloads-os-icon {
  background: rgba(var(--cl-t-primary), 0.06);
  color: rgb(var(--cl-t-muted));
}

.sa-downloads-os-meta {
  min-width: 0;
  flex: 1;
}

.sa-downloads-os-name {
  font-weight: 600;
  color: rgb(var(--cl-t-primary));
  line-height: 1.2;
}

.sa-downloads-os-note {
  margin-top: 0.15rem;
  font-size: 0.8125rem;
  color: rgb(var(--cl-t-muted));
}

.sa-downloads-os-action {
  flex-shrink: 0;
  white-space: nowrap;
}

.sa-downloads-os-soon {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.75rem;
  border-radius: var(--radius-badge);
  border: 1px solid rgb(var(--cl-border));
  background: rgba(var(--cl-t-primary), 0.04);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: rgb(var(--cl-t-muted));
}

.sa-downloads-figure {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  pointer-events: none;
}

.sa-downloads-figure img {
  display: block;
  width: 100%;
  max-width: 520px;
  height: auto;
  max-height: 640px;
  object-fit: contain;
  object-position: bottom center;
  filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.45));
}

@media (max-width: 1023px) {
  .sa-downloads-layout {
    grid-template-columns: 1fr;
    min-height: 0;
    gap: 1.5rem;
  }

  .sa-downloads-copy {
    padding-bottom: 2rem;
  }

  .sa-downloads-figure {
    order: -1;
    max-height: 280px;
  }

  .sa-downloads-figure img {
    max-height: 280px;
  }
}

@media (max-width: 640px) {
  .sa-downloads-os-card {
    flex-wrap: wrap;
  }

  .sa-downloads-os-action {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}
