/*
  RewardWise shared stylesheet
  Consolidated from the page-level <style> blocks that used to be duplicated
  across every page. Tailwind (via the CDN + assets/js/tailwind-config.js)
  handles utility classes; this file only holds the small set of custom
  classes/animations Tailwind can't express.
*/

/* ---------- Base ---------- */
body {
  font-family: "Inter", sans-serif;
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
.font-headline {
  font-family: "Hanken Grotesk", sans-serif;
}

html {
  scroll-behavior: smooth;
}

.material-symbols-outlined {
  font-variation-settings:
    "FILL" 0,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;
  display: inline-block;
  vertical-align: middle;
}

/* ---------- Glass / frosted surfaces (header, panels) ---------- */
.glass-panel {
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.glass-header,
.glass-nav {
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  background-color: rgba(248, 249, 250, 0.85);
}

/* ---------- Bento grid cards ---------- */
.bento-card {
  transition:
    transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.3s ease;
}

.bento-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.08);
}

.premium-accent {
  border-top: 4px solid #006c49;
}

/* ---------- Glow accents ---------- */
.emerald-glow,
.secondary-glow {
  box-shadow: 0 4px 14px 0 rgba(0, 108, 73, 0.3);
}

/* ---------- Animations ---------- */
@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-up {
  animation: fadeUp 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

@keyframes pulse {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.5;
    transform: scale(1.1);
  }
}

.status-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* ---------- Layout utilities ---------- */
.section-padding {
  padding-top: 80px;
  padding-bottom: 80px;
}

.rounded-ds {
  border-radius: 0.5rem;
}

.scrollbar-hide::-webkit-scrollbar {
  display: none;
}

.custom-scrollbar::-webkit-scrollbar {
  width: 4px;
}

.custom-scrollbar::-webkit-scrollbar-track {
  background: #f1f1f1;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
  background: #006c49;
  border-radius: 10px;
}

/* ---------- FAQ page: accordion + category sidebar ---------- */
.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition:
    max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    padding 0.3s ease;
}

.accordion-item.active .accordion-content {
  max-height: 500px;
  padding-bottom: 24px;
}

.accordion-item.active .chevron-icon {
  transform: rotate(180deg);
}

.sidebar-active {
  background-color: #ffffff;
  color: #000000;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  border-left: 4px solid #006c49;
}

/* ---------- Terms & Privacy pages: table-of-contents active state ---------- */
.toc-active {
  color: #000000;
  font-weight: 700;
  background-color: #e7e8e9;
}

.active-nav-indicator {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 24px;
  background-color: #006c49;
  border-radius: 0 4px 4px 0;
}

.legal-card {
  box-shadow:
    0 4px 6px -1px rgb(0 0 0 / 0.1),
    0 2px 4px -2px rgb(0 0 0 / 0.1);
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.legal-card:hover {
  box-shadow:
    0 10px 15px -3px rgb(0 0 0 / 0.1),
    0 4px 6px -4px rgb(0 0 0 / 0.1);
}

/* ---------- Blog article typography ---------- */
.article-content h2 {
  font-family: "Hanken Grotesk";
  font-size: 24px;
  font-weight: 700;
  margin-top: 2.5rem;
  margin-bottom: 1.25rem;
  color: #000000;
}

.article-content p {
  font-family: "Inter";
  font-size: 18px;
  line-height: 1.8;
  margin-bottom: 1.5rem;
  color: #44474e;
}

/* ---------- Site header / mobile nav ---------- */
.site-header {
  background-color: rgba(248, 249, 250, 0.9);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.mobile-menu-panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.mobile-menu-panel.open {
  max-height: 400px;
}

.nav-link.active {
  color: #000000;
  font-weight: 700;
  border-bottom: 2px solid #000000;
}
