/* =========================================================
   SEVA-STYLE DESIGN SYSTEM — tokens.css
   Drop this file into your project and import it once,
   e.g. @import url("./tokens.css"); at the top of your main CSS.
   ========================================================= */

/* -------------------- 1. DESIGN TOKENS -------------------- */
:root {
  /* Brand colors */
  --color-brand-deep-green: #084734;
  --color-brand-deep-green-75: rgba(8, 71, 52, 0.75);
  --color-brand-deep-green-35: rgba(8, 71, 52, 0.35);
  --color-brand-deep-green-20: rgba(8, 71, 52, 0.20);
  --color-brand-deep-green-14: rgba(8, 71, 52, 0.14);
  --color-brand-lime: #CEF17B;
  --color-brand-lime-pale: #EAFE9F;

  /* Text colors */
  --color-text-primary: #000000;
  --color-text-secondary-87: rgba(0, 0, 0, 0.87);
  --color-text-secondary-67: rgba(0, 0, 0, 0.67);
  --color-text-secondary-58: rgba(0, 0, 0, 0.58);
  --color-text-secondary-38: rgba(0, 0, 0, 0.38);
  --color-text-on-dark: #CEF17B;
  --color-text-on-dark-muted-75: rgba(255, 255, 255, 0.75);
  --color-text-on-dark-muted-50: rgba(255, 255, 255, 0.50);

  /* Surfaces */
  --color-surface-white: #FFFFFF;
  --color-surface-off-white: #FDFDFD;
  --color-surface-section-light: #F4F4EF;
  --color-surface-section-gray: #E9E9E9;
  --color-surface-card-border: #D6D6D0;

  /* Accent / sticky-note cards */
  --color-sticky-yellow-bg: #FFED9C;
  --color-sticky-yellow-text: #6C5C13;
  --color-sticky-lime-bg: #D6E6D1;
  --color-sticky-lime-text: #4C581C;

  /* Typography */
  --font-primary: "Geist", system-ui, -apple-system, sans-serif;
  --font-secondary: "DM Sans", -apple-system, sans-serif;

  --fs-h1: 84px;
  --lh-h1: 85.68px;
  --ls-h1: -1.68px;
  --fw-h1: 500;

  --fs-h2: 52px;
  --lh-h2: 54.6px;
  --ls-h2: -1.56px;
  --fw-h2: 600;

  --fs-h3: 34px;
  --fw-h3: 600;

  --fs-body: 28px;
  --lh-body: 33.6px;
  --fw-body: 400;

  --fs-body-sm: 18px;
  --fs-nav: 18px;

  --fs-btn: 16px;
  --ls-btn: -0.32px;
  --fw-btn: 600;

  --fs-btn-lg: 22px;
  --ls-btn-lg: -0.44px;

  --fs-eyebrow: 13px;
  --fw-eyebrow: 500;

  /* Radius */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* Shadows */
  --shadow-soft: 0px 26px 50px -22px rgba(0, 0, 0, 0.45);
  --shadow-hairline: 0px 1px 0.5px rgba(0, 0, 0, 0.13);

  /* Borders */
  --border-card-hairline: 1px solid var(--color-surface-card-border);
  --border-outline-brand: 1.5px solid var(--color-brand-deep-green-35);
  --border-faq-divider: 1px solid rgba(0, 0, 0, 0.16);

  /* Layout */
  --content-max-width: 824px;
  --container-padding-x: 24px;
  --section-padding-y-sm: 60px;
  --section-padding-y-lg: 170px;

  /* Motion */
  --transition-base: 0.2s ease;
}

/* -------------------- 2. BASE / RESET -------------------- */
body {
  font-family: var(--font-primary);
  color: var(--color-text-secondary-87);
  background: var(--color-surface-white);
  margin: 0;
}

h1, h2, h3 {
  font-family: var(--font-primary);
  color: var(--color-text-primary);
  margin: 0;
}

h1 {
  font-size: var(--fs-h1);
  font-weight: var(--fw-h1);
  line-height: var(--lh-h1);
  letter-spacing: var(--ls-h1);
}

h2 {
  font-size: var(--fs-h2);
  font-weight: var(--fw-h2);
  line-height: var(--lh-h2);
  letter-spacing: var(--ls-h2);
}

h3 {
  font-size: var(--fs-h3);
  font-weight: var(--fw-h3);
}

p {
  font-size: var(--fs-body);
  font-weight: var(--fw-body);
  line-height: var(--lh-body);
  color: var(--color-text-secondary-87);
  margin: 0;
}

.container {
  max-width: var(--content-max-width);
  padding: 0 var(--container-padding-x);
  margin: 0 auto;
}

/* Highlight/underline span, e.g. "Artisans." in a hero headline */
.highlight {
  color: var(--color-brand-lime);
  text-decoration: underline;
  text-decoration-color: var(--color-brand-lime);
  text-underline-offset: 6px;
}

/* -------------------- 3. NAVIGATION -------------------- */
.navbar {
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px var(--container-padding-x);
  background: transparent;
  transition: background var(--transition-base), backdrop-filter var(--transition-base);
  z-index: 100;
}

.navbar.scrolled {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(8px);
  box-shadow: var(--shadow-hairline);
}

.logo-block {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 20px;
  color: var(--color-text-primary);
  text-decoration: none;
}

.nav-links {
  display: flex;
  gap: 8px;
}

.nav-link {
  font-size: var(--fs-nav);
  font-weight: 400;
  color: var(--color-text-secondary-67);
  padding: 10px;
  text-decoration: none;
  transition: color var(--transition-base);
}

.nav-link:hover {
  color: var(--color-text-primary);
}

/* -------------------- 4. BUTTONS -------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-primary);
  font-weight: var(--fw-btn);
  border-radius: var(--radius-sm);
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: transform var(--transition-base), opacity var(--transition-base);
  white-space: nowrap;
}

.btn:active {
  transform: scale(0.98);
}

/* Sizes */
.btn-sm {
  font-size: var(--fs-btn);
  letter-spacing: var(--ls-btn);
  padding: 14px 18px;
}

.btn-lg {
  font-size: var(--fs-btn-lg);
  letter-spacing: var(--ls-btn-lg);
  padding: 20px 26px;
  border-radius: var(--radius-md);
}

/* Variants */
.btn-dark {
  background: var(--color-brand-deep-green);
  color: var(--color-text-on-dark);
}
.btn-dark:hover {
  opacity: 0.92;
}

.btn-outline {
  background: transparent;
  color: var(--color-brand-deep-green);
  border: var(--border-outline-brand);
}
.btn-outline:hover {
  background: var(--color-brand-deep-green-14);
}

.btn-lime {
  background: var(--color-brand-lime);
  color: var(--color-brand-deep-green);
  border: 2px solid transparent;
}
.btn-lime:hover {
  opacity: 0.92;
}

/* Circular icon buttons, e.g. carousel arrows */
.btn-icon-circle {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-circle);
  background: var(--color-surface-white);
  color: var(--color-brand-deep-green);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: var(--border-card-hairline);
}

/* -------------------- 5. BADGES / PILLS -------------------- */
.badge {
  display: inline-flex;
  align-items: center;
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-eyebrow);
  letter-spacing: -0.16px;
  padding: 8px 16px;
  border-radius: var(--radius-pill);
  background: var(--color-brand-lime-pale);
  color: var(--color-brand-deep-green);
  border: 1px solid var(--color-brand-deep-green-14);
}

.badge-lime {
  background: var(--color-brand-lime);
  border-color: var(--color-brand-deep-green-20);
}

/* Badge for use on dark section backgrounds */
.badge-on-dark {
  background: var(--color-brand-lime);
  color: var(--color-brand-deep-green);
  border: none;
}

/* -------------------- 6. CARDS -------------------- */
/* Generic bordered card, e.g. "how it works" step cards */
.card {
  background: var(--color-surface-off-white);
  border: var(--border-card-hairline);
  border-radius: var(--radius-md);
  padding: 40px 24px 0;
}

.card-eyebrow {
  font-size: 13px;
  font-weight: 500;
  text-transform: uppercase;
  color: var(--color-text-secondary-58);
  letter-spacing: 0.5px;
}

.card-title {
  font-size: 26px;
  font-weight: 600;
  color: var(--color-text-primary);
  margin: 8px 0 12px;
}

.card-description {
  font-size: var(--fs-body-sm);
  color: var(--color-text-secondary-58);
  line-height: 1.5;
}

/* Borderless service/icon card with top divider */
.icon-card {
  padding: 28px 0 36px;
  border-top: var(--border-card-hairline);
}

.icon-card .icon {
  width: 32px;
  height: 32px;
  color: var(--color-brand-deep-green);
  margin-bottom: 16px;
}

.icon-card h3 {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 8px;
}

.icon-card p {
  font-size: 15px;
  line-height: 1.5;
  color: var(--color-text-secondary-58);
}

/* "Sticky note" comparison cards */
.sticky-note {
  position: relative;
  border-radius: var(--radius-sm);
  padding: 28px;
  transform: rotate(-2deg);
  box-shadow: var(--shadow-hairline);
}

.sticky-note.sticky-negative {
  background: var(--color-sticky-yellow-bg);
  color: var(--color-sticky-yellow-text);
}

.sticky-note.sticky-positive {
  background: var(--color-sticky-lime-bg);
  color: var(--color-sticky-lime-text);
  transform: rotate(2deg);
}

.sticky-note .sticky-pill {
  display: inline-block;
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  border: 1px solid currentColor;
  font-size: 14px;
  margin-bottom: 16px;
}

.sticky-note ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sticky-note li {
  padding: 14px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
  font-weight: 500;
}

.sticky-note li:last-child {
  border-bottom: none;
}

/* -------------------- 7. FAQ ACCORDION -------------------- */
.faq {
  border-top: var(--border-faq-divider);
}

.faq-item {
  border-bottom: var(--border-faq-divider);
}

.faq-question {
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  padding: 28px 0;
  font-family: var(--font-primary);
}

.faq-index {
  font-size: 13px;
  color: var(--color-text-secondary-38);
  margin-right: 16px;
  min-width: 20px;
}

.faq-title {
  font-size: 22px;
  font-weight: 600;
  color: var(--color-text-primary);
  flex: 1;
}

.faq-toggle {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-circle);
  border: var(--border-card-hairline);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform var(--transition-base), background var(--transition-base);
}

.faq-item.open .faq-toggle {
  background: var(--color-brand-deep-green);
  color: var(--color-brand-lime);
  transform: rotate(45deg); /* turns + into × */
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--transition-base);
  font-size: var(--fs-body-sm);
  color: var(--color-text-secondary-58);
  line-height: 1.6;
}

.faq-item.open .faq-answer {
  max-height: 500px;
  padding-bottom: 28px;
}

/* -------------------- 8. DARK SECTIONS -------------------- */
.section-dark {
  background: var(--color-brand-deep-green);
  color: var(--color-text-on-dark-muted-75);
  padding: var(--section-padding-y-lg) 0;
}

.section-dark h2 {
  color: rgba(255, 255, 255, 0.9);
}

.section-dark .badge {
  margin-bottom: 24px;
}

/* -------------------- 9. FOOTER -------------------- */
.footer {
  background: var(--color-brand-deep-green);
  color: var(--color-text-on-dark-muted-75);
  padding: 60px var(--container-padding-x) 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer .logo-block {
  color: var(--color-surface-white);
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}

.footer-links a {
  color: var(--color-text-on-dark-muted-75);
  text-decoration: none;
  font-size: 15px;
}

.footer-links a:hover {
  color: var(--color-surface-white);
}

.footer-divider {
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  margin: 32px 0 24px;
}

.footer-legal {
  font-size: 13px;
  color: var(--color-text-on-dark-muted-50);
}

/* -------------------- 10. RESPONSIVE -------------------- */
@media (max-width: 768px) {
  :root {
    --fs-h1: 40px;
    --lh-h1: 44px;
    --ls-h1: -0.8px;
    --fs-h2: 32px;
    --lh-h2: 36px;
    --ls-h2: -0.6px;
    --fs-body: 18px;
    --lh-body: 26px;
    --section-padding-y-lg: 80px;
  }

  .navbar {
    padding: 12px 16px;
  }

  .btn-lg {
    font-size: var(--fs-btn);
    padding: 14px 20px;
  }
}