/* NursingRidge — components
   The v3 system: eyebrow, lede, buttons, cards, ledger rows, header, footer. */

/* ---------- text bits ---------- */
.nr-eyebrow {
  font-family: var(--nr-mono); font-size: 12px; font-weight: 500;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--nr-teal-700); margin: 0 0 20px;
  display: flex; align-items: center; gap: 11px;
}
.nr-eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--nr-teal-700); flex: none; }
.nr-sec--navy .nr-eyebrow, .nr-sec--deep .nr-eyebrow { color: var(--nr-teal-500); }
.nr-sec--navy .nr-eyebrow::before, .nr-sec--deep .nr-eyebrow::before { background: var(--nr-teal-500); }

.nr-lede { font-size: clamp(17px, 1.9vw, 21px); line-height: 1.55; color: var(--nr-muted); max-width: 58ch; }
.nr-sec--navy .nr-lede, .nr-sec--deep .nr-lede { color: var(--nr-on-navy-soft); }

.nr-tagline {
  font-family: var(--nr-mono); font-size: 11px; font-weight: 500;
  letter-spacing: .12em; text-transform: uppercase; color: var(--nr-gold-600); margin-bottom: 10px;
}
.nr-sec--navy .nr-tagline, .nr-sec--deep .nr-tagline { color: var(--nr-gold-500); }

.nr-pull {
  border-left: 4px solid var(--nr-gold-600); padding-left: 20px; margin: 24px 0 0;
  font-size: 20px; line-height: 1.48; color: var(--nr-head); font-weight: 500;
}

/* ---------- buttons ---------- */
.nr-btn {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--nr-sans); font-weight: 600; font-size: 15.5px;
  padding: 14px 25px; border-radius: 3px; border: 2px solid transparent;
  text-decoration: none; cursor: pointer;
  transition: background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}
.nr-btn--primary { background: var(--nr-teal-500); color: #062E2B; border-color: var(--nr-teal-500); }
.nr-btn--primary:hover { background: var(--nr-teal-600); border-color: var(--nr-teal-600); color: #062E2B; transform: translateY(-2px); }
.nr-btn--outline { border-color: var(--nr-head); color: var(--nr-head); background: transparent; }
.nr-btn--outline:hover { background: var(--nr-head); color: var(--nr-white); }
.nr-btn--onnavy { border-color: var(--nr-on-navy-soft); color: var(--nr-on-navy); background: transparent; }
.nr-btn--onnavy:hover { background: var(--nr-on-navy); color: var(--nr-navy-900); border-color: var(--nr-on-navy); }
.nr-btn--sm { padding: 11px 18px; font-size: 14.5px; }
.nr-btn__arrow { transition: transform .16s ease; }
.nr-btn:hover .nr-btn__arrow { transform: translateX(4px); }
.nr-cta-row { display: flex; flex-wrap: wrap; gap: 14px; }

/* ---------- cards ---------- */
.nr-card {
  background: var(--nr-white); border: 1px solid var(--nr-line);
  border-left: 4px solid var(--nr-teal-500); border-radius: 3px;
  padding: 24px 22px; text-decoration: none; display: block;
  transition: border-color .18s ease, transform .18s ease;
}
.nr-card:hover { border-left-color: var(--nr-teal-700); transform: translateY(-2px); }
.nr-card__title {
  font-family: var(--nr-display); font-size: 23px; letter-spacing: .02em;
  font-weight: 400; color: var(--nr-head); display: block; margin-bottom: 7px;
}
.nr-card__body { font-size: 14.5px; color: var(--nr-muted); line-height: 1.45; }
.nr-card--navy { background: var(--nr-navy-900); border-color: var(--nr-navy-900); border-left-color: var(--nr-gold-500); }
.nr-card--navy .nr-card__title { color: var(--nr-on-navy); }
.nr-card--navy .nr-card__body { color: var(--nr-on-navy-soft); }

/* ---------- ledger rows (tracks, steps, the shelf) ---------- */
.nr-ledger { border-top: 3px solid var(--nr-head); }
.nr-ledger__row {
  display: grid; grid-template-columns: 56px 1fr auto; gap: 22px;
  padding: 20px 6px; border-bottom: 1px solid var(--nr-line); align-items: center;
  transition: background .18s ease, padding-left .18s ease;
}
.nr-ledger__row:hover { background: var(--nr-white); padding-left: 16px; }
.nr-ledger__n { font-family: var(--nr-mono); font-size: 13px; font-weight: 500; color: var(--nr-gold-600); }
.nr-ledger__name { font-family: var(--nr-display); font-size: clamp(20px, 2.2vw, 26px); letter-spacing: .02em; color: var(--nr-head); }
.nr-ledger__name small { display: block; font-family: var(--nr-sans); font-size: 14.5px; letter-spacing: 0; color: var(--nr-muted); margin-top: 5px; line-height: 1.45; }
.nr-ledger__meta { font-family: var(--nr-mono); font-size: 13px; color: var(--nr-muted); white-space: nowrap; }
.nr-ledger__meta b { color: var(--nr-head); font-weight: 500; }
@media (max-width: 640px) {
  .nr-ledger__row { grid-template-columns: 38px 1fr; gap: 14px; }
  .nr-ledger__meta { grid-column: 2; }
}

/* ---------- stats ---------- */
.nr-stats { display: flex; gap: 26px; flex-wrap: wrap; padding: 16px 0;
  border-top: 1px solid var(--nr-line); border-bottom: 1px solid var(--nr-line); }
.nr-sec--navy .nr-stats, .nr-card--navy .nr-stats { border-color: var(--nr-line-dark); }
.nr-stats b { font-family: var(--nr-display); font-size: 30px; font-weight: 400; letter-spacing: .02em;
  color: var(--nr-head); display: block; line-height: 1; margin-bottom: 5px; }
.nr-sec--navy .nr-stats b, .nr-card--navy .nr-stats b { color: var(--nr-white); }
.nr-stats span { font-family: var(--nr-mono); font-size: 11px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--nr-muted); }
.nr-sec--navy .nr-stats span, .nr-card--navy .nr-stats span { color: var(--nr-on-navy-soft); }

.nr-chip {
  font-family: var(--nr-mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase;
  border: 1px solid var(--nr-line); background: var(--nr-white); color: var(--nr-muted);
  padding: 8px 14px; border-radius: 99px; display: inline-block;
}
.nr-chip b { color: var(--nr-teal-700); font-weight: 500; }

/* ---------- header ---------- */
.nr-header { position: sticky; top: 0; z-index: 60; background: var(--nr-navy-900); border-bottom: 2px solid var(--nr-teal-500); }
.nr-header__inner { display: flex; align-items: center; gap: 26px; height: 70px; }
.nr-brand { display: inline-flex; align-items: center; text-decoration: none; flex: none; }
.nr-brand img, .nr-brand svg { height: 38px; width: auto; }
@media (max-width: 420px) { .nr-brand img, .nr-brand svg { height: 32px; } }

.nr-nav { margin-left: auto; }
.nr-nav ul { display: flex; gap: 26px; list-style: none; margin: 0; padding: 0; }
.nr-nav a { text-decoration: none; font-size: 15px; color: var(--nr-on-navy); padding: 5px 0; border-bottom: 2px solid transparent; display: block; }
.nr-nav a:hover, .nr-nav a.is-active { border-color: var(--nr-teal-500); color: var(--nr-white); }

.nr-burger { display: none; margin-left: auto; background: none; border: 0; padding: 10px; cursor: pointer; }
.nr-burger span { display: block; width: 24px; height: 2px; background: var(--nr-on-navy); margin: 5px 0; transition: transform .2s ease, opacity .2s ease; }
.nr-header.is-open .nr-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nr-header.is-open .nr-burger span:nth-child(2) { opacity: 0; }
.nr-header.is-open .nr-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 880px) {
  .nr-burger { display: block; }
  .nr-nav { position: absolute; top: 70px; left: 0; right: 0; background: var(--nr-navy-900);
    border-bottom: 2px solid var(--nr-teal-500); display: none; margin-left: 0; }
  .nr-header.is-open .nr-nav { display: block; }
  .nr-nav ul { flex-direction: column; gap: 0; padding: 8px var(--nr-gutter) 20px; }
  .nr-nav a { padding: 13px 0; border-bottom: 1px solid var(--nr-line-dark); }
  .nr-header__cta { display: none; }
  .nr-header.is-open .nr-header__cta { display: inline-flex; }
}

/* ---------- page title / breadcrumb ---------- */
.nr-page-head { background: var(--nr-paper); padding: clamp(32px, 4vw, 56px) 0 clamp(20px, 2.5vw, 32px); }
.nr-breadcrumb { font-family: var(--nr-mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--nr-muted); margin-bottom: 14px; }
.nr-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.nr-breadcrumb li + li::before { content: "/"; margin-right: 8px; color: var(--nr-line); }
.nr-breadcrumb a { color: var(--nr-muted); text-decoration: none; }
.nr-breadcrumb a:hover { color: var(--nr-teal-700); }

/* ---------- footer ---------- */
.nr-footer { background: var(--nr-navy-900); color: var(--nr-on-navy-soft); padding: 52px 0 48px; font-size: 14.5px; }
.nr-footer__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
@media (max-width: 760px) { .nr-footer__grid { grid-template-columns: 1fr 1fr; } }
.nr-footer h4 { font-family: var(--nr-mono); font-size: 11.5px; font-weight: 500; letter-spacing: .15em;
  text-transform: uppercase; color: var(--nr-teal-500); margin: 0 0 14px; }
.nr-footer ul { list-style: none; margin: 0; padding: 0; }
.nr-footer li { margin-bottom: 9px; }
.nr-footer a { text-decoration: none; color: var(--nr-on-navy); }
.nr-footer a:hover { color: var(--nr-teal-500); text-decoration: underline; }
.nr-footer__bottom { margin-top: 42px; padding-top: 22px; border-top: 1px solid var(--nr-line-dark);
  display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; }

/* ---------- messages ---------- */
.messages { border-left: 4px solid var(--nr-teal-700); background: var(--nr-white);
  border-radius: 3px; padding: 16px 20px; margin: 20px 0; color: var(--nr-ink); }
.messages--error { border-left-color: var(--nr-danger); }
.messages--warning { border-left-color: var(--nr-warning); }
.messages--status { border-left-color: var(--nr-success); }

/* ---------- forms ---------- */
input[type="text"], input[type="email"], input[type="search"], input[type="password"],
input[type="number"], select, textarea {
  width: 100%; padding: 13px 15px; border-radius: 3px;
  border: 2px solid var(--nr-line); background: var(--nr-white);
  color: var(--nr-ink); font-family: var(--nr-sans); font-size: 15.5px;
}
input:focus, select:focus, textarea:focus { border-color: var(--nr-teal-500); outline: none; }
label { display: block; font-weight: 600; color: var(--nr-head); margin-bottom: 6px; font-size: 15px; }
.form-item { margin-bottom: 18px; }

/* ---------- page title (rendered by the page_title block) ---------- */
.nr-page-title {
  font-size: clamp(34px, 5vw, 62px);
  margin: 0 0 clamp(20px, 2.5vw, 32px);
  max-width: 20ch;
}
.region-content > .nr-block--core:first-child .nr-page-title { margin-top: 0; }
