:root {
  --brand:#2563eb;
  --ink:#0f172a;
  --muted:#475569;
  --ring:#2563eb;
  --motion-fast:160ms;
  --motion-medium:240ms;
  --motion-slow:700ms;
  --motion-ease:cubic-bezier(.2,.65,.2,1);
}
html { scroll-behavior: smooth; }
* { font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"; }

/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0ms !important;
  }
}

/* Subtle reveal animation */
@keyframes flyup { from { opacity: 0; transform: translateY(16px);} to { opacity: 1; transform: translateY(0);} }
.reveal { opacity: 0; transform: translateY(16px); }
.reveal.shown { animation: flyup var(--motion-slow) var(--motion-ease) both; }

/* Shared motion for interactive elements */
:where(a, button, [role="button"], input, textarea, select, summary) {
  transition: background-color var(--motion-fast) var(--motion-ease),
              border-color var(--motion-fast) var(--motion-ease),
              color var(--motion-fast) var(--motion-ease),
              box-shadow var(--motion-medium) var(--motion-ease),
              transform var(--motion-medium) var(--motion-ease),
              opacity var(--motion-fast) linear;
}

:where(a, button, [role="button"]) {
  transform-origin: center;
}

:where(a, button, [role="button"]):active {
  transform: translateY(1px);
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  border-color: rgba(37,99,235,.8);
  box-shadow: 0 0 0 3px rgba(37,99,235,.4);
}

summary {
  outline: none;
}

details,
details summary {
  transition: background-color var(--motion-medium) var(--motion-ease),
              border-color var(--motion-medium) var(--motion-ease),
              box-shadow var(--motion-medium) var(--motion-ease);
}

details[open] {
  border-color: rgba(37,99,235,.5);
  background-color: rgba(255,255,255,.98);
  box-shadow: 0 18px 42px rgba(37,99,235,.2);
}

details:focus-within {
  border-color: rgba(37,99,235,.6);
  box-shadow: 0 18px 42px rgba(37,99,235,.25);
}

.chev {
  transition: transform var(--motion-medium) var(--motion-ease);
}

/* Card hover */
.card {
  transition: transform var(--motion-medium) var(--motion-ease), box-shadow var(--motion-medium) var(--motion-ease);
}
.card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(37,99,235,.2); }

/* Glassy header */
.glass { backdrop-filter: saturate(140%) blur(8px); background: rgba(255,255,255,.85); }

/* Focus ring */
.focus-ring { outline: 2px solid transparent; outline-offset: 2px; box-shadow: 0 0 0 3px var(--ring); }

/* FAQ caret */
details summary::-webkit-details-marker { display:none; }
details[open] .chev { transform: rotate(180deg); }

/* Price styling */
.price { font-variant-numeric: tabular-nums; }

/* Prevent background scroll while lightbox is open */
body.lightbox-open {
  overflow: hidden;
}



