/* ROOK shared brand system — tokens, type, buttons, logo, loader.
   Include this before page-specific CSS on every public surface. */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Source+Serif+4:opsz,wght@8..60,600;8..60,700&display=swap');

:root{
  --rook-navy:#071E41;
  --rook-navy-ink:#0B2858;
  --rook-royal:#1463FF;
  --rook-royal-deep:#0A66C2;
  --rook-teal:#0F8F7F;
  --rook-muted:#5B6B85;
  --rook-border:#DCE6F2;
  --rook-surface:#FFFFFF;
  --rook-canvas:#F3F7FC;
  --rook-just:#FB8C00;
  --rook-just-bg:#FFFBF5;
  --rook-just-soft:#FFF3E0;
  --rook-radius:12px;
  --rook-radius-pill:999px;
  --rook-shadow:0 8px 28px rgba(7,30,65,.08);
  --rook-shadow-hover:0 12px 32px rgba(7,30,65,.12);
  --rook-font:"DM Sans",system-ui,sans-serif;
  --rook-font-display:"DM Sans",system-ui,sans-serif;
}

html{font-family:var(--rook-font);color:var(--rook-navy-ink);background:var(--rook-canvas);-webkit-font-smoothing:antialiased}
body{margin:0}
button,input,select,textarea{font:inherit}
a{color:inherit}

/* ——— Buttons ——— */
.rook-btn,
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:40px;padding:10px 18px;border-radius:var(--rook-radius);
  border:1px solid transparent;font-size:14px;font-weight:600;line-height:1.2;
  cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
}
.rook-btn-primary,
.btn-primary{
  background:var(--rook-royal);color:#fff;border-color:var(--rook-royal);
  box-shadow:0 1px 2px rgba(20,99,255,.25);
}
.rook-btn-primary:hover,
.btn-primary:hover{background:#0F56E0;border-color:#0F56E0}
.rook-btn-outline,
.btn-outline{
  background:#fff;color:var(--rook-navy-ink);border-color:var(--rook-border);
}
.rook-btn-outline:hover,
.btn-outline:hover{border-color:#B8C9DE;background:#F8FBFF}
.rook-btn-sm,
.btn-sm{min-height:34px;padding:7px 12px;font-size:13px;border-radius:10px}
.rook-btn-ghost{
  background:transparent;color:var(--rook-royal);border-color:transparent;min-height:32px;padding:6px 8px;font-weight:600;
}
.rook-btn-ghost:hover{background:rgba(20,99,255,.06)}

/* ——— Brand mark ——— */
.rook-brand{
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--rook-navy);
  min-width:0;
}
.rook-brand img,
.rook-brand__mark{
  width:42px;height:42px;border-radius:50%;object-fit:cover;flex:0 0 auto;
  background:#fff;box-shadow:0 0 0 1px rgba(7,30,65,.08);
}
.rook-brand__word{
  display:flex;flex-direction:column;line-height:1.05;min-width:0;
}
.rook-brand__word strong{
  font-size:22px;font-weight:800;letter-spacing:-0.03em;color:var(--rook-navy);
}
.rook-brand__word small{
  font-size:10px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--rook-royal);
}
.rook-brand--light .rook-brand__word strong{color:#fff}
.rook-brand--light .rook-brand__word small{color:#9CC4FF}
.rook-brand--compact .rook-brand__mark{width:36px;height:36px}
.rook-brand--compact .rook-brand__word strong{font-size:18px}
.rook-brand--mark-only .rook-brand__word{display:none}

/* Full circular lockup (nav hero / splash) */
.rook-lockup{
  display:block;width:min(220px,56vw);height:auto;border-radius:50%;
  background:#fff;box-shadow:0 0 0 1px rgba(7,30,65,.06);
}

/* ——— Animated logo loader (orbiting ring around circular mark) ——— */
.rook-loader{
  --rook-loader-size:88px;
  position:relative;width:var(--rook-loader-size);height:var(--rook-loader-size);
  display:inline-grid;place-items:center;
}
.rook-loader__mark{
  width:72%;height:72%;border-radius:50%;object-fit:cover;background:#fff;
  box-shadow:0 2px 10px rgba(7,30,65,.08);
}
.rook-loader__ring{
  position:absolute;inset:0;border-radius:50%;
  border:2.5px solid rgba(20,99,255,.15);
  border-top-color:var(--rook-royal);
  border-right-color:rgba(20,99,255,.55);
  animation:rook-orbit 0.9s linear infinite;
}
.rook-loader--sm{--rook-loader-size:56px}
.rook-loader--sm .rook-loader__ring{border-width:2px}
.rook-loader--lg{--rook-loader-size:120px}
.rook-loader-block{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  padding:36px 18px;color:var(--rook-muted);font-size:14px;font-weight:600;text-align:center;
}
@keyframes rook-orbit{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .rook-loader__ring{animation:none;border-color:var(--rook-royal)}
}

/* ——— Surfaces ——— */
.rook-card{
  background:var(--rook-surface);border:1px solid var(--rook-border);border-radius:14px;
  box-shadow:none;
}
.rook-card:hover{border-color:#C5D5E8}
.rook-pill{
  display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--rook-radius-pill);
  font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap;
}
.rook-pill-soft{background:#EEF4FB;color:#2864A1}
.rook-pill-fresh{background:var(--rook-just-soft);color:#E65100;border:1px solid #FFB74D}
.rook-muted{color:var(--rook-muted)}
.rook-hr{border:0;border-top:1px solid var(--rook-border);margin:16px 0}
