:root {
  --color-primary: #1E40AF;
  --color-secondary: #3B82F6;
  --color-accent: #F59E0B;
  --color-bg: #EFF6FF;
  --color-text: #1E3A5F;
  --color-muted: #64748b;
  --radius: 12px;
  --nav-h: 56px;
  --contact-footer-h: 72px;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --bottom-chrome-h: calc(var(--contact-footer-h) + var(--nav-h) + var(--safe-bottom));
  --fab-clearance: calc(var(--contact-footer-h) + var(--nav-h) + var(--safe-bottom) + 28px);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', sans-serif;
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.5;
  min-height: 100dvh;
}
body.has-contact-footer {
  padding-bottom: var(--bottom-chrome-h);
}
body.has-contact-footer:not(.has-bottom-nav) {
  padding-bottom: calc(var(--contact-footer-h) + var(--safe-bottom));
}
img { max-width: 100%; display: block; }
button, input, textarea { font: inherit; }
.hidden { display: none !important; }
.page { min-height: 60vh; padding: 12px 16px calc(var(--nav-h) + 16px); animation: fadeIn 0.35s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.page-header { margin-bottom: 16px; }
.page-header h1 { font-size: 1.35rem; }
.muted { color: var(--color-muted); font-size: 0.875rem; }
.btn {
  border: none; border-radius: 999px; padding: 0.65rem 1.2rem;
  cursor: pointer; font-size: 0.875rem; display: inline-flex; align-items: center; justify-content: center;
}
.btn-primary { background: var(--color-primary); color: #fff; }
.btn-secondary { background: #fff; color: var(--color-primary); border: 1px solid #cbd5e1; }
.input, .search-input {
  width: 100%; padding: 0.65rem 0.85rem; border: 1px solid #cbd5e1;
  border-radius: var(--radius); margin-bottom: 8px; background: #fff;
}
.skip-link {
  position: absolute; left: -9999px; top: 0; background: #000; color: #fff; padding: 8px; z-index: 10000;
}
.skip-link:focus { left: 8px; }
