/* SOAR Homepage Mock — base design system
   Built on the Elevated theme tokens (css/elevated.css must load FIRST).
   Sections snap into these primitives. */

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--c-bg);color:var(--c-ink);
  font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:rgba(221,166,62,.25)}

/* layout */
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.section{padding:var(--section-y) 0}
.section--tight{padding:var(--section-y-tight) 0}
.section--dark{background:var(--c-primary);color:#fff}
.section--ink{background:var(--c-primary-strong);color:#fff}
.section--light{background:var(--c-surface-2)}
.section--dark .eyebrow,.section--ink .eyebrow{color:var(--c-accent)}

/* type */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--fw-heading);
  letter-spacing:var(--tracking-display);line-height:1.06;margin:0}
.display{font-size:clamp(40px,6vw,var(--text-display));font-weight:var(--fw-display);line-height:1.03}
h1,.h1{font-size:clamp(34px,4.6vw,var(--text-h1))}
h2,.h2{font-size:clamp(28px,3.4vw,var(--text-h2))}
h3,.h3{font-size:var(--text-h3)}
h4,.h4{font-size:var(--text-h4)}
p{margin:0}
.lead{font-size:var(--text-body-lg,19px);color:var(--c-muted);line-height:1.55}
.section--dark .lead,.section--ink .lead{color:#c7d2e0}
.muted{color:var(--c-muted)}
.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:2.4px;
  text-transform:uppercase;color:var(--c-accent-2);font-weight:500;display:inline-block}

/* buttons (transparent 2px border keeps all variants equal height) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;
  font-family:var(--font-heading);font-weight:var(--btn-weight);font-size:15px;line-height:1;
  text-transform:var(--btn-case);letter-spacing:var(--btn-tracking);
  padding:var(--btn-padding);border-radius:var(--btn-radius);border:2px solid transparent;
  transition:transform .15s,background .15s,border-color .15s,color .15s;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn--gold{background:var(--c-accent);color:var(--c-on-accent)}
.btn--gold:hover{background:#e9b657}
.btn--navy{background:var(--c-primary);color:#fff}
.btn--navy:hover{background:#16365f}
.btn--green{background:var(--c-accent-2);color:#fff}
.btn--ghost{background:transparent;border-color:rgba(255,255,255,.4);color:#fff}
.btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.btn--outline{background:transparent;border-color:var(--c-accent);color:var(--c-accent)}
.btn--outline:hover{background:var(--c-accent);color:var(--c-on-accent)}
.btn svg{width:16px;height:16px}

/* small bits */
.chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:12px;
  letter-spacing:.4px;text-transform:uppercase;color:var(--c-muted);
  border:1px solid var(--c-border);border-radius:999px;padding:7px 13px}
.rule{height:1px;background:var(--c-border);border:0;margin:0}
.arrow-circle{width:48px;height:48px;border-radius:50%;background:var(--c-accent);color:var(--c-on-accent);
  display:inline-flex;align-items:center;justify-content:center;transition:transform .2s}
.card:hover .arrow-circle{transform:translate(3px,-3px)}

/* grids */
.grid{display:grid;gap:24px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:980px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

/* stat */
.stat .num{font-family:var(--font-display);font-weight:var(--fw-display);
  font-size:clamp(34px,4vw,52px);line-height:1;letter-spacing:-.01em}
.stat .lbl{font-family:var(--font-mono);font-size:12px;letter-spacing:1px;text-transform:uppercase;
  color:var(--c-muted);margin-top:10px}
.section--dark .stat .lbl,.section--ink .stat .lbl{color:#9fb0c4}

/* media frame */
.frame{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--c-surface-2)}
.frame img{width:100%;height:100%;object-fit:cover;display:block}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
