/*
 * Modern professional theme — visual layer only.
 * Sellauth logic and Alpine.js behavior are unchanged.
 */

/* ── Base ─────────────────────────────────────────────── */
html {
  scroll-behavior: smooth;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: -0.011em;
}

::selection {
  background: rgba(var(--cl-accent), 0.35);
  color: #fff;
}

/* Subtle ambient glow behind content */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 80% 50% at 50% -20%, rgba(var(--cl-accent), 0.12), transparent),
    radial-gradient(ellipse 60% 40% at 100% 100%, rgba(var(--cl-accent), 0.06), transparent);
}

#particles-js {
  opacity: 0.35;
}

/* ── Surfaces (glass cards) ───────────────────────────── */
.theme-surface,
nav[data-component-id="navbar"] > div,
footer,
.bg-card\/75,
.bg-card\/90,
.bg-card\/25 {
  border-color: rgba(255, 255, 255, 0.08) !important;
}

nav[data-component-id="navbar"] > div {
  border-radius: 0.75rem;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.04) inset,
    0 4px 24px rgba(0, 0, 0, 0.25);
}

footer {
  border-radius: 0.75rem;
  overflow: hidden;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 -1px 0 rgba(255, 255, 255, 0.04) inset;
}

/* ── Navbar ───────────────────────────────────────────── */
nav[data-component-id="navbar"] {
  position: sticky;
  top: 0.75rem;
  z-index: 40;
  margin-bottom: 0.5rem;
}

nav[data-component-id="navbar"] a[class*="px-4 py-2"] {
  border-radius: 0.5rem;
  transition: color 0.15s ease, background-color 0.15s ease;
}

nav[data-component-id="navbar"] a[class*="px-4 py-2"]:hover {
  background: rgba(255, 255, 255, 0.04);
}

nav[data-component-id="navbar"] .size-10,
nav[data-component-id="navbar"] a[class*="border-accent-500"] {
  border-radius: 0.5rem !important;
}

/* ── Announcement bar ─────────────────────────────────── */
.announcement[data-component-id="announcement"] > div {
  border-radius: 0.5rem;
  margin-bottom: 0.75rem;
  background: linear-gradient(
    90deg,
    rgba(var(--cl-accent), 0.9),
    color-mix(in srgb, rgb(var(--cl-accent)) 70%, #818cf8)
  ) !important;
  border: none !important;
  box-shadow: 0 2px 12px rgba(var(--cl-accent), 0.25);
}

/* ── Hero ─────────────────────────────────────────────── */
section[data-component-id="hero"],
section[id][data-component-id]:has(.container) {
  position: relative;
}

section[data-component-id="hero"] h1,
section.component:first-of-type h1 {
  letter-spacing: -0.03em;
  line-height: 1.1;
}

section[data-component-id="hero"] .text-accent-500,
section.component h1 .text-accent-500 {
  background: linear-gradient(135deg, rgb(var(--cl-accent)), color-mix(in srgb, rgb(var(--cl-accent)) 60%, #a5b4fc));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ── Section titles ───────────────────────────────────── */
.component h1.text-2xl + hr,
.component h1.text-3xl + hr {
  border: none;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgb(var(--cl-accent)), transparent);
  opacity: 0.8;
}

/* ── Feature cards ────────────────────────────────────── */
section[data-component-id="features"] .bg-card\/75,
section[data-component-id="features"] [class*="bg-card"] {
  border-radius: 0.75rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

section[data-component-id="features"] .bg-card\/75:hover,
section[data-component-id="features"] [class*="bg-card"]:hover {
  transform: translateY(-2px);
  border-color: rgba(var(--cl-accent), 0.25) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}

section[data-component-id="features"] i[class*="fa-"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 0.75rem;
  background: rgba(var(--cl-accent), 0.12);
  margin-bottom: 0.75rem !important;
}

/* ── Product cards ────────────────────────────────────── */
a.block.h-full.bg-card\/75 {
  border-radius: 0.75rem;
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

a.block.h-full.bg-card\/75:hover {
  transform: translateY(-3px);
  border-color: rgba(var(--cl-accent), 0.3) !important;
  box-shadow:
    0 12px 40px rgba(0, 0, 0, 0.3),
    0 0 0 1px rgba(var(--cl-accent), 0.08);
}

a.block.h-full.bg-card\/75 .relative.overflow-hidden img {
  border-radius: 0.5rem;
  transition: transform 0.3s ease;
}

a.block.h-full.bg-card\/75:hover .relative.overflow-hidden img {
  transform: scale(1.03);
}

a.block.h-full.bg-card\/75 .badges > div {
  border-radius: 999px;
}

a.block.h-full.bg-card\/75 [class*="border-accent-500"][class*="View Details"],
a.block.h-full.bg-card\/75 div[class*="text-accent-500"][class*="border-accent-500"] {
  border-radius: 0.5rem;
  transition: all 0.15s ease;
}

a.block.h-full.bg-card\/75:hover [class*="border-accent-500"]:last-child {
  background: rgb(var(--cl-accent));
  color: rgb(var(--cl-t-accent)) !important;
}

/* ── Buttons ──────────────────────────────────────────── */
a[class*="border-accent-500"][class*="px-6"],
a[class*="bg-accent-500"][class*="px-6"],
button[class*="bg-accent-500"],
button[class*="border-accent-500"] {
  border-radius: 0.5rem !important;
  transition: all 0.15s ease !important;
}

a[class*="bg-accent-500"][class*="px-6"]:hover,
button[class*="bg-accent-500"]:hover {
  box-shadow: 0 4px 16px rgba(var(--cl-accent), 0.35);
  transform: translateY(-1px);
}

/* ── Search bar ───────────────────────────────────────── */
.bg-card\/75.border.border-white\/5:has(input[placeholder*="Search"]) {
  border-radius: 0.75rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.bg-card\/75.border.border-white\/5:has(input[placeholder*="Search"]):focus-within {
  border-color: rgba(var(--cl-accent), 0.4) !important;
  box-shadow: 0 0 0 3px rgba(var(--cl-accent), 0.12);
}

/* ── Feedback cards ─────────────────────────────────── */
.flex.flex-col.justify-between.h-full.bg-card\/75 {
  border-radius: 0.75rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.flex.flex-col.justify-between.h-full.bg-card\/75:hover {
  border-color: rgba(var(--cl-accent), 0.2) !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

/* ── Modals ───────────────────────────────────────────── */
.fixed.inset-0.z-50 .border.border-white\/5.bg-background {
  border-radius: 0.75rem;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.5);
}

/* ── Product page ─────────────────────────────────────── */
section[data-component-id="product-page"] .bg-card,
section[data-component-id="product-page"] [class*="bg-card"] {
  border-radius: 0.75rem;
  overflow: hidden;
}

section[data-component-id="product-page"] button[class*="border-white"] {
  border-radius: 0.5rem;
}

/* ── Cart & customer pages ────────────────────────────── */
.bg-card.border,
[class*="bg-card/"][class*="border-white"] {
  border-radius: 0.75rem;
}

/* ── Footer social icons ──────────────────────────────── */
footer a.rounded-full {
  transition: transform 0.15s ease, color 0.15s ease;
}

footer a.rounded-full:hover {
  transform: scale(1.1);
}

/* ── Form inputs ──────────────────────────────────────── */
input:not([type="checkbox"]):not([type="radio"]),
textarea,
select {
  border-radius: 0.5rem;
}

/* ── Scrollbar ────────────────────────────────────────── */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.02);
}

::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 999px;
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(var(--cl-accent), 0.4);
}

/* ══════════════════════════════════════════════════════
   ANIMATIONS & PARALLAX
   ══════════════════════════════════════════════════════ */

/* ── Parallax scene (decorative orbs) ─────────────────── */
.parallax-scene {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.parallax-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  will-change: transform;
  transition: transform 0.1s linear;
}

.parallax-orb-1 {
  width: 420px;
  height: 420px;
  top: -8%;
  left: -6%;
  background: rgba(var(--cl-accent), 0.18);
  animation: orb-float-1 18s ease-in-out infinite;
}

.parallax-orb-2 {
  width: 320px;
  height: 320px;
  top: 40%;
  right: -4%;
  background: rgba(var(--cl-accent), 0.1);
  animation: orb-float-2 22s ease-in-out infinite;
}

.parallax-orb-3 {
  width: 260px;
  height: 260px;
  bottom: 8%;
  left: 30%;
  background: color-mix(in srgb, rgb(var(--cl-accent)) 40%, #818cf8);
  opacity: 0.12;
  animation: orb-float-3 15s ease-in-out infinite;
}

#parallax-bg-image {
  will-change: transform;
  transition: transform 0.1s linear;
}

.parallax-particles {
  will-change: transform;
}

@keyframes orb-float-1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33%       { transform: translate(30px, 20px) scale(1.05); }
  66%       { transform: translate(-20px, 35px) scale(0.95); }
}

@keyframes orb-float-2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%       { transform: translate(-40px, -25px) scale(1.08); }
}

@keyframes orb-float-3 {
  0%, 100% { transform: translate(0, 0); }
  50%       { transform: translate(25px, -30px); }
}

/* ── Scroll reveal ────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition:
    opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Hero skips the scroll-reveal opacity — uses its own entrance */
.component[data-component-id="hero"].reveal {
  opacity: 1;
  transform: none;
}

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

.reveal-item {
  opacity: 0;
  transform: translateY(24px) scale(0.97);
  transition:
    opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

.reveal-item.is-revealed {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* Hero entrance (page load) */
.component[data-component-id="hero"] .parallax-hero-content > div {
  animation: hero-enter 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.component[data-component-id="hero"] h1 {
  animation: hero-enter 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both;
}

.component[data-component-id="hero"] p {
  animation: hero-enter 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both;
}

.component[data-component-id="hero"] .mb-4,
.component[data-component-id="hero"] [class*="flex-wrap"] {
  animation: hero-enter 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.35s both;
}

@keyframes hero-enter {
  from {
    opacity: 0;
    transform: translateY(28px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Section title reveal */
.component.is-revealed > div > .flex.items-center.justify-center h1,
.component.is-revealed h1.text-2xl,
.component.is-revealed h1.text-3xl {
  animation: title-enter 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes title-enter {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ── Navbar animations ────────────────────────────────── */
nav[data-component-id="navbar"] {
  animation: nav-slide-down 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
}

nav[data-component-id="navbar"].is-scrolled > div {
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.06) inset,
    0 8px 32px rgba(0, 0, 0, 0.35);
  background: rgba(var(--cl-card), 0.92) !important;
}

@keyframes nav-slide-down {
  from {
    opacity: 0;
    transform: translateY(-12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ── Announcement pulse ───────────────────────────────── */
.announcement[data-component-id="announcement"] > div {
  animation: announcement-glow 4s ease-in-out infinite;
}

@keyframes announcement-glow {
  0%, 100% { box-shadow: 0 2px 12px rgba(var(--cl-accent), 0.25); }
  50%       { box-shadow: 0 4px 24px rgba(var(--cl-accent), 0.4); }
}

/* ── Card hover enhancement (already revealed) ────────── */
.reveal-item.is-revealed a.block.h-full.bg-card\/75:hover,
.reveal-item.is-revealed .bg-card\/75:hover {
  transform: translateY(-4px);
}

/* ── Feature icon bounce on reveal ────────────────────── */
.reveal-item.is-revealed i[class*="fa-"] {
  animation: icon-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
  animation-delay: var(--reveal-delay, 0ms);
}

@keyframes icon-pop {
  from {
    opacity: 0;
    transform: scale(0.6);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* ── Footer fade-in ───────────────────────────────────── */
footer {
  animation: footer-enter 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both;
}

@keyframes footer-enter {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ── Reduced motion ───────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal-item,
  .parallax-orb,
  nav[data-component-id="navbar"],
  footer,
  .announcement[data-component-id="announcement"] > div,
  .component[data-component-id="hero"] .parallax-hero-content > div,
  .component[data-component-id="hero"] h1,
  .component[data-component-id="hero"] p {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .parallax-orb {
    display: none;
  }

  #particles-js,
  #parallax-bg-image {
    transform: none !important;
  }

  .component[data-component-id="hero"] .container {
    opacity: 1 !important;
    transform: none !important;
  }
}
