﻿/*Theme Name: Root CampTheme URI: https://rootcamp.comAuthor: Root CampDescription: Single-page theme for Root Camp — genetic genealogical investigations to identify people at risk for rare, inheritable diseases.Version: 1.0License: GNU General Public License v2 or laterText Domain: root-camp*//* ==========================================================================   CSS Variables   ========================================================================== */:root {  --rc-color-bg: #0a0f14;  --rc-color-surface: #111a22;  --rc-color-surface-alt: #1a2632;  --rc-color-primary: #2d7a5e;  --rc-color-primary-light: #3d9a76;  --rc-color-accent: #c9a227;  --rc-color-text: #e8ecf0;  --rc-color-text-muted: #8b9cad;  --rc-font-heading: "DM Serif Display", "Georgia", serif;  --rc-font-body: "Source Sans 3", "Segoe UI", sans-serif;  --rc-max-width: 72rem;  --rc-section-padding: clamp(3rem, 8vw, 6rem);  --rc-nav-height: 4rem;}/* ==========================================================================   Reset & Base   ========================================================================== */*, *::before, *::after { box-sizing: border-box; }html { scroll-behavior: smooth; }body {  margin: 0;  font-family: var(--rc-font-body);  font-size: 1.0625rem;  line-height: 1.65;  color: var(--rc-color-text);  background: var(--rc-color-bg);  -webkit-font-smoothing: antialiased;}img { max-width: 100%; height: auto; display: block; }a { color: var(--rc-color-primary-light); text-decoration: none; }a:hover { text-decoration: underline; }/* ==========================================================================   Navigation   ========================================================================== */.rc-nav {  position: fixed;  top: 0;  left: 0;  right: 0;  height: var(--rc-nav-height);  background: rgba(10, 15, 20, 0.92);  backdrop-filter: blur(12px);  border-bottom: 1px solid rgba(255, 255, 255, 0.06);  z-index: 1000;  display: flex;  align-items: center;  justify-content: center;}.rc-nav-inner {  width: 100%;  max-width: var(--rc-max-width);  padding: 0 1.5rem;  display: flex;  align-items: center;  justify-content: space-between;}.rc-logo {  font-family: var(--rc-font-heading);  font-size: 1.5rem;  font-weight: 400;  color: var(--rc-color-text);  letter-spacing: 0.02em;}.rc-logo span { color: var(--rc-color-primary); }.rc-nav-links {  display: flex;  gap: 2rem;  list-style: none;  margin: 0;  padding: 0;}.rc-nav-links a {  color: var(--rc-color-text-muted);  font-size: 0.9375rem;  letter-spacing: 0.02em;  text-decoration: none;  transition: color 0.2s;}.rc-nav-links a:hover { color: var(--rc-color-primary-light); text-decoration: none; }/* ==========================================================================   Hero   ========================================================================== */.rc-hero {  min-height: 100vh;  display: flex;  align-items: center;  justify-content: center;  padding: calc(var(--rc-nav-height) + 2rem) 1.5rem 4rem;  background: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(45, 122, 94, 0.15), transparent 60%),              var(--rc-color-bg);}.rc-hero-inner {  max-width: var(--rc-max-width);  text-align: center;}.rc-hero-tag {  display: inline-block;  font-size: 0.8125rem;  letter-spacing: 0.15em;  text-transform: uppercase;  color: var(--rc-color-primary-light);  margin-bottom: 1rem;}.rc-hero h1 {  font-family: var(--rc-font-heading);  font-size: clamp(2.5rem, 6vw, 4rem);  font-weight: 400;  line-height: 1.15;  color: var(--rc-color-text);  margin: 0 0 1.25rem;  letter-spacing: -0.02em;}.rc-hero p {  font-size: clamp(1.0625rem, 2vw, 1.25rem);  color: var(--rc-color-text-muted);  max-width: 36rem;  margin: 0 auto 2rem;}.rc-hero-cta {  display: inline-flex;  align-items: center;  gap: 0.5rem;  padding: 0.875rem 1.75rem;  background: var(--rc-color-primary);  color: #fff;  font-weight: 600;  font-size: 0.9375rem;  letter-spacing: 0.04em;  border: none;  border-radius: 4px;  cursor: pointer;  text-decoration: none;  transition: background 0.2s;}.rc-hero-cta:hover { background: var(--rc-color-primary-light); text-decoration: none; color: #fff; }/* ==========================================================================   Sections   ========================================================================== */.rc-section {  padding: var(--rc-section-padding) 1.5rem;  max-width: var(--rc-max-width);  margin: 0 auto;}.rc-section-alt { background: var(--rc-color-surface); }.rc-section-header {  text-align: center;  margin-bottom: 3rem;}.rc-section-header h2 {  font-family: var(--rc-font-heading);  font-size: clamp(1.75rem, 4vw, 2.5rem);  font-weight: 400;  color: var(--rc-color-text);  margin: 0 0 0.75rem;  letter-spacing: -0.02em;}.rc-section-header p {  color: var(--rc-color-text-muted);  max-width: 32rem;  margin: 0 auto;  font-size: 1.0625rem;}/* ==========================================================================   What We Do (features grid)   ========================================================================== */.rc-features {  display: grid;  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));  gap: 2rem;  margin-top: 2rem;}.rc-feature {  background: var(--rc-color-surface-alt);  border: 1px solid rgba(255, 255, 255, 0.06);  border-radius: 8px;  padding: 2rem;  transition: border-color 0.2s;}.rc-feature:hover { border-color: rgba(45, 122, 94, 0.4); }.rc-feature-icon {  width: 2.5rem;  height: 2.5rem;  margin-bottom: 1rem;  color: var(--rc-color-primary);  font-size: 1.5rem;  line-height: 1;}.rc-feature h3 {  font-family: var(--rc-font-body);  font-size: 1.125rem;  font-weight: 600;  color: var(--rc-color-text);  margin: 0 0 0.5rem;}.rc-feature p {  color: var(--rc-color-text-muted);  margin: 0;  font-size: 0.9375rem;  line-height: 1.6;}/* ==========================================================================   How It Works (steps)   ========================================================================== */.rc-steps {  display: grid;  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));  gap: 2rem;  counter-reset: step;  margin-top: 2rem;}.rc-step {  position: relative;  padding-left: 3rem;  counter-increment: step;}.rc-step::before {  content: counter(step);  position: absolute;  left: 0;  top: 0;  width: 2rem;  height: 2rem;  background: var(--rc-color-primary);  color: #fff;  font-weight: 700;  font-size: 0.875rem;  border-radius: 50%;  display: flex;  align-items: center;  justify-content: center;}.rc-step h3 {  font-size: 1rem;  font-weight: 600;  color: var(--rc-color-text);  margin: 0 0 0.5rem;}.rc-step p {  color: var(--rc-color-text-muted);  margin: 0;  font-size: 0.9375rem;}/* ==========================================================================   CTA / Contact   ========================================================================== */.rc-cta {  text-align: center;  padding: var(--rc-section-padding) 1.5rem;  background: linear-gradient(180deg, var(--rc-color-surface) 0%, var(--rc-color-bg) 100%);}.rc-cta-inner { max-width: var(--rc-max-width); margin: 0 auto; }.rc-cta h2 {  font-family: var(--rc-font-heading);  font-size: clamp(1.5rem, 3vw, 2rem);  font-weight: 400;  color: var(--rc-color-text);  margin: 0 0 1rem;}.rc-cta p {  color: var(--rc-color-text-muted);  margin: 0 0 1.5rem;  max-width: 28rem;  margin-left: auto;  margin-right: auto;}.rc-cta a.rc-hero-cta { display: inline-flex; }/* ==========================================================================   Footer   ========================================================================== */.rc-footer {  padding: 2rem 1.5rem;  border-top: 1px solid rgba(255, 255, 255, 0.06);  text-align: center;}.rc-footer p {  margin: 0;  font-size: 0.875rem;  color: var(--rc-color-text-muted);}/* ==========================================================================   Responsive   ========================================================================== */@media (max-width: 640px) {  .rc-nav-links { gap: 1.25rem; }  .rc-hero { padding-top: calc(var(--rc-nav-height) + 1rem); }}