/* ============================================================
   HOME, RUNBOOKS INDEX, RESOURCES, TOOLS, ABOUT, LEGAL
============================================================ */

/* ---------- Home hero ---------- */
.hp-hero {
  background:
    radial-gradient(1000px 520px at 85% -15%, var(--green-dim), transparent 70%),
    var(--bg-page);
  border-bottom: 1px solid var(--border);
}
.hp-hero-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 3.5rem; align-items: center; padding-block: 5rem 4.5rem; }
.hp-hero h1 { margin: 1rem 0 1.25rem; }
.hp-hero .rb-lede { margin-bottom: 2rem; }
.hp-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.hp-search { position: relative; margin-top: 1.75rem; max-width: 520px; }
.hp-search svg { position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); color: var(--text-dim); }
.hp-search input, .rb-search input {
  width: 100%; font: 400 15px var(--font-sans); color: var(--text-primary);
  background: var(--bg-surface); border: 1px solid var(--border-mid); border-radius: var(--radius-sm);
  padding: 13px 14px 13px 42px;
}
.hp-search input:focus, .rb-search input:focus { outline: none; border-color: var(--green); }

.hp-audience { display: grid; gap: 14px; }
.hp-aud { padding: 1.5rem; display: grid; grid-template-columns: 44px 1fr; gap: 16px; align-items: start; }
.hp-aud:hover { border-color: var(--green-border); }
.hp-aud-icon { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--green-dim); border: 1px solid var(--green-border); color: var(--green); }
.hp-aud-icon svg { width: 22px; height: 22px; }
.hp-aud-label { font: 600 12px var(--font-mono); color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.06em; }
.hp-aud h3 { margin: 0.2rem 0 0.35rem; font-size: 1.1rem; }
.hp-aud p { font-size: 14.5px; color: var(--text-muted); margin-bottom: 0.6rem; line-height: 1.55; }

/* Topics */
.rb-topics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.rb-topic { padding: 1.4rem; display: grid; grid-template-columns: 40px 1fr; column-gap: 14px; row-gap: 2px; }
.rb-topic-icon { grid-row: span 3; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: var(--green-dim); border: 1px solid var(--green-border); color: var(--green); }
.rb-topic-icon svg { width: 20px; height: 20px; }
.rb-topic-name { font-weight: 650; color: var(--text-primary); }
.rb-topic-blurb { font-size: 14px; color: var(--text-muted); line-height: 1.5; }
.rb-topic-count { font: 500 12px var(--font-mono); color: var(--green); margin-top: 6px; }

/* Consulting band */
.hp-band {
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 2.5rem; align-items: center;
  padding: 2.5rem;
  background: radial-gradient(700px 300px at 100% 0%, var(--green-dim), transparent 70%), var(--bg-surface);
  border-color: var(--green-border);
}
.hp-band h2 { margin-bottom: 0.75rem; }
.hp-band > div > p { color: var(--text-muted); margin-bottom: 1.5rem; }
.hp-band-list { list-style: none; display: grid; gap: 10px; }
.hp-band-list li { display: flex; justify-content: space-between; gap: 1rem; padding: 12px 16px; border-radius: var(--radius-sm); background: var(--bg-deep); border: 1px solid var(--border); font-size: 15px; color: var(--text-primary); }
.hp-band-list span { font: 600 14px var(--font-mono); color: var(--green); white-space: nowrap; }

/* ---------- Runbooks index ---------- */
.rb-featured { display: block; padding: 2rem; margin-bottom: 2.5rem; background: linear-gradient(150deg, var(--green-dim), transparent 60%), var(--bg-surface); }
.rb-featured h2 { font-size: 1.6rem; margin-bottom: 0.6rem; max-width: 30ch; }
.rb-featured p { color: var(--text-muted); max-width: 70ch; margin-bottom: 1rem; }
.rb-res-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 14.5px; color: var(--green); }
.rb-res-link svg { width: 16px; height: 16px; }

.rb-toolbar { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.rb-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.rb-chip {
  font: 500 14px var(--font-sans); color: var(--text-muted);
  background: var(--bg-surface); border: 1px solid var(--border-mid); border-radius: 999px;
  padding: 7px 14px; cursor: pointer; transition: all 0.2s;
}
.rb-chip span { font: 500 12px var(--font-mono); color: var(--text-dim); margin-left: 4px; }
.rb-chip:hover { color: var(--text-primary); border-color: var(--green-border); }
.rb-chip.is-active { background: var(--green); border-color: var(--green); color: var(--on-accent); }
.rb-chip.is-active span { color: var(--on-accent); opacity: 0.8; }
.rb-search { position: relative; flex: 0 1 300px; }
.rb-search svg { position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); color: var(--text-dim); }
.rb-search input { padding-block: 10px; }
.rb-empty { padding: 3rem; text-align: center; color: var(--text-dim); border: 1px dashed var(--border-mid); border-radius: var(--radius-lg); }
.rb-count { font: 500 13px var(--font-mono); color: var(--text-dim); margin-bottom: 1rem; }

/* ---------- Resources ---------- */
.rb-res-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.rb-res-card { padding: 1.5rem; display: flex; flex-direction: column; }
.rb-res-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.rb-res-icon { width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center; background: var(--green-dim); border: 1px solid var(--green-border); color: var(--green); }
.rb-res-icon svg { width: 20px; height: 20px; }
.rb-res-badges { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.rb-res-card h3 { font-size: 1.08rem; line-height: 1.35; margin-bottom: 0.5rem; }
.rb-res-card > p { font-size: 14.5px; color: var(--text-muted); line-height: 1.55; margin-bottom: 1rem; }
.rb-res-inside { margin-bottom: 1.25rem; }
.rb-res-inside ul { list-style: none; display: grid; gap: 6px; font-size: 14px; }
.rb-res-inside li { display: grid; grid-template-columns: 14px 1fr; gap: 8px; color: var(--text-body); line-height: 1.45; }
.rb-res-inside li::before { content: ''; width: 6px; height: 6px; margin-top: 8px; border-radius: 50%; background: var(--amber); }
.rb-res-foot { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--border); display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.rb-res-foot .rb-btn { padding: 10px 16px; font-size: 14px; }
.rb-res-card:has(.rb-pill-amber) .rb-res-icon { background: var(--amber-dim); border-color: var(--amber-border); color: var(--amber); }
.rb-note-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 1.5rem; }
.rb-note-strip > div { padding: 1.1rem 1.25rem; font-size: 14px; color: var(--text-muted); }
.rb-note-strip strong { display: block; color: var(--text-primary); margin-bottom: 2px; }
.rb-notify { padding: 2rem; margin-top: 2rem; }

/* ---------- Tools ---------- */
.rb-tool-group + .rb-tool-group { margin-top: 3.5rem; }
.rb-tool-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.rb-tool { padding: 1.4rem; display: flex; flex-direction: column; }
.rb-tool-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 0.6rem; }
.rb-tool h3 { font-size: 1.05rem; }
.rb-tool p { font-size: 14.5px; color: var(--text-muted); line-height: 1.55; }
.rb-tool-why { margin-top: 0.75rem; font-size: 14px; color: var(--text-body); padding-left: 12px; border-left: 2px solid var(--green-border); }
.rb-tool-foot { margin-top: auto; padding-top: 1rem; display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.rb-disclosure { padding: 1.1rem 1.25rem; font-size: 14px; color: var(--text-muted); margin-top: 2rem; }
.rb-disclosure strong { color: var(--text-primary); }

/* ---------- About ---------- */
.ab-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 3rem; align-items: start; padding-top: 3rem; }
.ab-quote { font-size: 1.2rem; line-height: 1.7; color: var(--text-primary); border-left: 3px solid var(--green); padding-left: 1.4rem; font-style: italic; margin-bottom: 2.5rem; }
.ab-story > * + * { margin-top: 1.1rem; }
.ab-story p { font-size: 17px; line-height: 1.75; }
.ab-story strong { color: var(--text-primary); font-weight: 600; }
.ab-story h2 { margin-top: 2.75rem; font-size: 1.5rem; }
.ab-side { position: sticky; top: calc(var(--nav-height) + 1.25rem); display: grid; gap: 14px; }
.ab-side .rb-card { padding: 1.4rem; }
.ab-skills { list-style: none; display: grid; gap: 8px; }
.ab-skills li { display: block; font-size: 14.5px; color: var(--text-body); padding-bottom: 8px; border-bottom: 1px solid var(--border); }
.ab-skills li:last-child { border: 0; padding: 0; }
.ab-skills span { font: 500 12px var(--font-mono); color: var(--green); }
.ab-links { display: grid; gap: 8px; }
.ab-links a { font-size: 14.5px; color: var(--text-muted); display: flex; justify-content: space-between; }
.ab-links a:hover { color: var(--green); }
.ab-offers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 1.5rem; }
.ab-offer { padding: 1.3rem; }
.ab-offer h3 { font-size: 1.02rem; margin-bottom: 0.35rem; }
.ab-offer p { font-size: 14.5px; color: var(--text-muted); line-height: 1.55; }

/* ---------- Legal / simple prose pages ---------- */
.rb-legal { max-width: 780px; padding-top: 3rem; }
.rb-legal > * + * { margin-top: 1rem; }
.rb-legal h2 { font-size: 1.35rem; margin-top: 2.5rem; }
.rb-legal p, .rb-legal li { color: var(--text-body); }
.rb-legal ul { padding-left: 1.3rem; display: grid; gap: 0.4rem; }
.rb-legal a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.rb-legal .rb-updated { font: 500 13px var(--font-mono); color: var(--text-dim); }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .rb-res-grid, .rb-topics { grid-template-columns: 1fr 1fr; }
  .ab-grid { grid-template-columns: 1fr; }
  .ab-side { position: static; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}
@media (max-width: 900px) {
  .hp-hero-grid, .hp-band { grid-template-columns: 1fr; }
  .hp-hero-grid { padding-block: 3.5rem 3rem; gap: 2.5rem; }
  .rb-note-strip { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .rb-res-grid, .rb-topics, .rb-tool-grid, .ab-offers { grid-template-columns: 1fr; }
  .hp-band, .rb-featured { padding: 1.5rem; }
  .rb-search { flex-basis: 100%; }
}

/* ---------- Forms (assessment) ---------- */
.rb-form-wrap { max-width: 860px; padding-top: 2.5rem; }
.rb-form { display: grid; gap: 16px; }
.rb-fieldset { border: 1px solid var(--border); padding: 1.5rem; }
.rb-fieldset legend { display: flex; gap: 10px; align-items: center; font-weight: 650; color: var(--text-primary); font-size: 1.1rem; padding: 0 6px; margin-left: -6px; }
.rb-fieldset legend span { font: 600 12px var(--font-mono); color: var(--green); background: var(--green-dim); border: 1px solid var(--green-border); border-radius: 999px; padding: 2px 8px; }
.rb-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 0.75rem; }
.rb-field-grid label { display: grid; gap: 6px; font-size: 14px; font-weight: 500; color: var(--text-body); }
.rb-span-2 { grid-column: 1 / -1; }
.rb-form input:not([type=checkbox]):not([type=radio]), .rb-form select, .rb-form textarea {
  width: 100%; font: 400 15px var(--font-sans); color: var(--text-primary);
  background: var(--bg-deep); border: 1px solid var(--border-mid); border-radius: var(--radius-sm);
  padding: 11px 12px;
}
.rb-form textarea { resize: vertical; }
.rb-form input:focus, .rb-form select:focus, .rb-form textarea:focus { outline: none; border-color: var(--green); }
.rb-check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 0.75rem; }
.rb-opt { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-deep); cursor: pointer; }
.rb-opt:has(input:checked) { border-color: var(--green-border); background: var(--green-dim); color: var(--text-primary); }
.rb-opt input { accent-color: var(--green); margin-top: 4px; }
.rb-hint { font-size: 13.5px; color: var(--text-dim); }
.rb-form-foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.rb-form-foot .rb-hint { max-width: 48ch; }
.rb-form-done { padding: 2rem; }
.rb-form-done h2 { margin-bottom: 0.5rem; }
.rb-form-done p { color: var(--text-muted); margin-bottom: 1.25rem; }
@media (max-width: 640px) { .rb-field-grid, .rb-check-grid { grid-template-columns: 1fr; } }

/* About photo */
.ab-photo { padding: 0 !important; overflow: hidden; text-align: center; }
.ab-photo img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.ab-photo-name { font-weight: 650; color: var(--text-primary); margin-top: 0.9rem; }
.ab-photo-role { font-size: 13.5px; color: var(--text-dim); padding-bottom: 1.1rem; }
