/* RunSensible Pro site chrome: the original directory's header (logo, menu, "Grow Your Practice") and navy footer.
   Loaded by every layout so the public site, the portal and administration all carry the same brand.
   Every rule is scoped to .b-header / .b-footer so it never restyles page content. */

@font-face { font-family: "Source Serif 4"; src: url("../fonts/source-serif-4-latin-var.woff2") format("woff2"); font-weight: 200 900; font-display: swap; }
@font-face { font-family: "Roboto"; src: url("../fonts/roboto-latin-var.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }

:root {
  --rs-orange: #ff9000;
  --rs-orange-rule: #f29239;
  --rs-blue: #00a5e6;
  --rs-blue-text: #0067a8;
  --rs-blue-deep: #014eac;
  --rs-navy: #032d60;
  --rs-navy-panel: #0d3060;
  --rs-social: #07a5e2;
  --rs-line: #e1e6ec;
}

.b-wrap { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 1.25rem; }

/* Header */
.b-header { background: #fff; border-bottom: 1px solid var(--rs-line); font-family: "Roboto", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; }
.b-header-inner { display: flex; align-items: center; gap: 2.5rem; min-height: 64px; }
.b-logo { display: inline-flex; flex: 0 0 auto; }
.b-logo img { width: 200px; height: auto; display: block; }
.b-nav ul { list-style: none; display: flex; gap: 2.75rem; margin: 0; padding: 0; }
.b-nav a { color: var(--rs-navy); text-decoration: none; font-size: 1rem; font-weight: 400; }
.b-nav a:hover { color: var(--rs-blue-text); }
.b-actions { margin-left: auto; display: flex; align-items: center; gap: 1.25rem; }
.b-login, .b-header .link-button { color: var(--rs-navy); font-weight: 700; font-size: .9375rem; text-decoration: none; background: none; border: 0; padding: 0; font-family: inherit; cursor: pointer; }
.b-login:hover, .b-header .link-button:hover { color: var(--rs-blue-text); }
.b-cta { background: var(--rs-blue-deep); color: #fff; font-weight: 500; font-size: .9375rem; text-decoration: none; padding: .45rem 1.1rem; border-radius: 999px; white-space: nowrap; }
.b-cta:hover { background: var(--rs-navy); color: #fff; }
.b-header .inline-form { display: inline; margin: 0; }

/* Footer */
.b-footer { font-family: "Roboto", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; }
.b-footer-main { background: var(--rs-navy); color: #fff; padding: 4rem 0; }
.b-footer-grid { display: grid; grid-template-columns: 300px repeat(4, minmax(0, 1fr)); gap: 2.5rem; align-items: start; }
.b-footer-brand { background: var(--rs-navy-panel); padding: 1.6rem 1.9rem; font-size: 1rem; line-height: 1.85; }
.b-footer-brand img { width: 176px; height: auto; display: block; margin-bottom: 1.25rem; }
.b-footer-brand p { margin: 0; color: #fff; }
.b-social { display: flex; flex-wrap: wrap; gap: .6rem; list-style: none; margin: 1rem 0 0; padding: 0; }
.b-social a { width: 40px; height: 40px; background: var(--rs-social); display: flex; align-items: center; justify-content: center; }
.b-social a:hover { background: var(--rs-blue-deep); }
.b-social svg { width: 24px; height: 24px; display: block; }
.b-footer-col h2 { color: #fff; font-size: 1.375rem; font-weight: 500; margin: 0 0 1.75rem; font-family: inherit; line-height: 1.2; }
.b-footer-col h2::after { content: ""; display: block; width: 40px; height: 2px; margin-top: .5rem; background: var(--rs-orange-rule); }
.b-footer-col ul { list-style: none; margin: 0; padding: 0; }
.b-footer-col li { margin-bottom: .95rem; }
.b-footer-col a { color: #fff; text-decoration: none; font-size: 1rem; }
.b-footer-col a:hover { text-decoration: underline; }
.b-footer-legal { background: #fff; color: var(--rs-navy); text-align: center; padding: 1.1rem 0 1.4rem; font-size: .875rem; }
.b-footer-legal ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 2.4rem; margin: 0 0 .6rem; padding: 0; }
.b-footer-legal a { color: var(--rs-navy); text-decoration: none; }
.b-footer-legal a:hover { text-decoration: underline; }
.b-footer-legal p { margin: .3rem auto 0; max-width: 80ch; color: var(--rs-navy); }
.b-footer-note { color: #4a5a6e !important; }

@media (max-width: 1100px) {
  .b-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .b-footer-brand { grid-column: 1 / -1; max-width: 420px; }
}
@media (max-width: 960px) {
  .b-header-inner { flex-wrap: wrap; gap: .25rem 1.25rem; padding-top: .75rem; }
  .b-nav { order: 3; width: 100%; }
  .b-nav ul { flex-wrap: wrap; gap: .25rem 1.5rem; padding-bottom: .65rem; }
  .b-nav a { white-space: nowrap; }
}
@media (max-width: 600px) {
  .b-wrap { padding: 0 1rem; }
  .b-header-inner { min-height: 56px; }
  .b-logo img { width: 140px; }
  .b-actions { gap: .75rem; }
  .b-cta { padding: .35rem .8rem; font-size: .875rem; }
  .b-nav ul { gap: .15rem 1.1rem; }
  .b-nav a { font-size: .9375rem; }
  .b-footer-main { padding: 2.5rem 0; }
  .b-footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem 1.25rem; }
  .b-footer-col h2 { font-size: 1.2rem; margin-bottom: 1.1rem; }
  .b-footer-legal ul { gap: .4rem 1.25rem; }
}
