/* Page-specific layout glue (sections built in app.jsx) */

.hero-stage-inner { width: 100%; height: 100%; }

.agent-grid { gap: 64px; }
@media (max-width: 980px) {
  .agent-grid { grid-template-columns: 1fr !important; gap: 40px !important; }
}

.queue-row-grid { gap: 24px; }
@media (max-width: 980px) {
  .queue-row-grid { grid-template-columns: 1fr !important; }
}
.queue-stage {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 28px;
  min-height: 480px;
  box-shadow: var(--shadow);
}
.queue-side { display: flex; flex-direction: column; gap: 16px; }
.queue-side-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 28px;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.poscal-grid { gap: 24px; }
@media (max-width: 980px) {
  .poscal-grid { grid-template-columns: 1fr !important; }
}
.demo-frame {
  background: var(--cream);
  border: 1px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: var(--shadow);
}
.demo-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 14px 22px;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
.demo-body { padding: 22px; }

/* Memberships */
.memb-grid { gap: 16px; }
@media (max-width: 880px) { .memb-grid { grid-template-columns: 1fr !important; } }
.memb-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.memb-name { font-family: var(--font-serif); font-style: italic; font-size: 26px; letter-spacing: -0.01em; }
.memb-price { font-size: 44px; font-weight: 600; letter-spacing: -0.03em; line-height: 1; }
.memb-price span { font-size: 14px; font-weight: 400; color: var(--muted); margin-left: 4px; vertical-align: 6px; font-family: var(--font-mono); letter-spacing: 0.05em; }
.memb-meta { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line); }
.memb-card .feature-list { margin-bottom: 0; }

/* Density */
body.compact section { padding: 80px 0; }
body.compact .h-hero { font-size: clamp(48px, 6.5vw, 96px); }
body.compact .h-section { font-size: clamp(34px, 4.5vw, 60px); }

/* No-italic */
body.no-italic .serif { font-family: var(--font-sans); font-style: normal; }

/* Tweaks panel preset buttons */
.preset-btn {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink-2);
  cursor: pointer;
}
.preset-btn:hover { background: var(--cream-2); }

/* Hero stage adjustments for nested calendar */
.hero-stage-inner .cal { font-size: 14px; }

/* Mobile nav */
@media (max-width: 720px) {
  .nav-cta a:first-child { display: none; }
  .hero-stats { grid-template-columns: 1fr; gap: 16px; }
}

/* === Site-wide interactivity polish === */

html { scroll-behavior: smooth; }

/* Scroll reveals — apply to any element with data-reveal */
[data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
[data-reveal].in {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* Hover lifts on cards */
.feat-card,
.price-card,
.memb-card,
.testi,
.migr-row,
.queue-side-card,
.demo-frame {
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.feat-card:hover,
.price-card:hover,
.memb-card:hover,
.testi:hover,
.queue-side-card:hover,
.demo-frame:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(14, 14, 12, 0.07);
}

/* Migration row — slide right on hover */
.migr-row { padding: 14px 18px; border-radius: 10px; }
.migr-row:hover {
  transform: translateX(6px);
  background: color-mix(in oklab, var(--cream) 90%, var(--bronze) 10%);
}

/* Button arrow — slide right on hover */
.btn { transition: all 0.25s ease; }
.btn-arrow {
  display: inline-block;
  transition: transform 0.25s ease;
  margin-left: 6px;
}
.btn:hover .btn-arrow { transform: translateX(4px); }

/* Nav links — animated underline */
.nav-links a {
  position: relative;
  transition: color 0.2s ease;
}
.nav-links a::after {
  content: '';
  position: absolute;
  left: 0; bottom: -4px;
  width: 100%; height: 2px;
  background: var(--bronze);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}
.nav-links a:hover::after { transform: scaleX(1); }

/* FAQ items — smoother open transition */
.faq-item { transition: background 0.2s ease; }
.faq-item:hover { background: color-mix(in oklab, var(--cream) 96%, var(--bronze) 4%); }

/* Hero stats — subtle hover scale */
.hero-stats > div { transition: transform 0.2s ease; }
.hero-stats > div:hover { transform: translateY(-2px); }

/* Logo subtle hover */
.nav a:has(img) img { transition: opacity 0.2s ease; }
.nav a:hover img { opacity: 0.75; }
