/* ====================================================================
   Bible Memorization Resources — slate redesign (2026-05-31)
   Ported from design_handoff_resources/resources.css. Tokens come from
   extensions/index_new/styles.css (.theme-light/.theme-dark under
   .mv-root[data-palette=slate]); .btn/.container come from there too. All
   page styles are .rsc-* and only loaded on this page — no leakage either
   way. Scoped extras (root offset, responsive) live at the bottom. Same
   approach as the Training Courses port (.tc-*).
   ==================================================================== */

/* ---- per-category color tints ---- */
.rsc-c-indigo { --rsc: var(--accent); }
.rsc-c-cyan   { --rsc: var(--brand); }
.rsc-c-amber  { --rsc: var(--warning); }
.rsc-c-green  { --rsc: var(--success); }
.rsc-c-pink   { --rsc: var(--pink); }

/* ink (inverting) primary button — black-on-light / white-on-dark */
.btn.rsc-btn-ink {
  background: var(--text-1);
  color: var(--bg);
  border: 1px solid var(--text-1);
}
.btn.rsc-btn-ink:hover { background: var(--text-2); border-color: var(--text-2); }

/* ====================================================================
   HERO (logged-out) — breadcrumb + headline + lead + stat strip
   ==================================================================== */
.rsc-hero {
  background: var(--bg);
  border-bottom-left-radius: var(--radius-xl);
  border-bottom-right-radius: var(--radius-xl);
  position: relative;
  z-index: 2;
}
.rsc-hero-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 28px var(--sp-10) 72px;
}
.rsc-breadcrumb {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; color: var(--text-3);
  margin-bottom: 48px;
}
.rsc-breadcrumb a.lnk { color: var(--text-3); cursor: pointer; text-decoration: none; }
.rsc-breadcrumb a.lnk:hover { color: var(--text-1); }
.rsc-breadcrumb .cur { color: var(--text-1); font-weight: 500; }
.rsc-breadcrumb .chev { color: var(--text-muted); transform: rotate(-90deg); }

.rsc-hero-grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: var(--sp-16);
  align-items: end;
}
.rsc-hero-copy h1 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: 64px;
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--text-1);
  margin: 0 0 var(--sp-5);
}
.rsc-hero-copy p {
  font-size: 18px;
  line-height: 1.6;
  color: var(--text-2);
  max-width: 32em;
  margin: 0;
}
.rsc-hero-stats { display: flex; flex-direction: column; gap: 10px; }
.rsc-hero-stat {
  display: flex; align-items: center; gap: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  padding: 14px 16px;
}
.rsc-hero-stat .ic {
  flex: none;
  width: 38px; height: 38px; border-radius: var(--radius-sm);
  background: color-mix(in oklab, var(--rsc) 14%, transparent);
  color: var(--rsc);
  display: inline-flex; align-items: center; justify-content: center;
}
.rsc-hero-stat .v {
  font-family: var(--font-serif);
  font-size: 22px; font-weight: 600;
  color: var(--text-1);
  letter-spacing: -0.01em;
  line-height: 1;
  white-space: nowrap;
}
.rsc-hero-stat > div { min-width: 0; }
.rsc-hero-stat .l { font-size: 12.5px; color: var(--text-3); margin-top: 3px; }

/* ====================================================================
   SECTION SCAFFOLD + category header
   ==================================================================== */
.rsc-section { padding: 64px 0; }
.rsc-section.alt { background: var(--bg-section); }
.rsc-section-inner { max-width: 1240px; margin: 0 auto; padding: 0 var(--sp-10); }

.rsc-cat-head { margin-bottom: var(--sp-8); }
.rsc-cat-head h2 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: 30px; line-height: 1.1;
  color: var(--text-1);
  letter-spacing: -0.018em;
  margin: 0 0 8px;
  display: flex; align-items: center; gap: 12px;
}
.rsc-cat-head h2 .gi {
  flex: none;
  width: 34px; height: 34px; border-radius: var(--radius-sm);
  background: color-mix(in oklab, var(--rsc) 14%, transparent);
  color: var(--rsc);
  display: inline-flex; align-items: center; justify-content: center;
}
.rsc-cat-head p {
  font-size: 15.5px; line-height: 1.6;
  color: var(--text-3);
  max-width: 52em;
  margin: 0;
}

/* ====================================================================
   RESOURCE CARD — logo tile + body (name, url, blurb, tags)
   ==================================================================== */
.rsc-list { display: flex; flex-direction: column; gap: var(--sp-5); }

.rsc-card {
  display: grid;
  grid-template-columns: 232px minmax(0, 1fr);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: transform .15s, border-color .15s;
}
.rsc-card:hover { transform: translateY(-3px); border-color: var(--border-strong); }

.rsc-logo-panel {
  background:
    linear-gradient(150deg, color-mix(in oklab, var(--rsc) 12%, var(--bg-section)), var(--bg-section) 80%);
  border-right: 1px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  padding: 28px;
  min-height: 188px;
  text-decoration: none;
}
.rsc-logo {
  max-width: 148px;
  max-height: 132px;
  width: 100%; height: auto;
  object-fit: contain;
}
.rsc-logo-fallback {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  color: var(--rsc);
}
.rsc-logo-fallback .tile {
  width: 84px; height: 84px; border-radius: var(--radius-md);
  background: var(--surface);
  border: 1px solid color-mix(in oklab, var(--rsc) 28%, var(--border));
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: var(--shadow-card);
}
.rsc-logo-fallback .name {
  font-family: var(--font-mono);
  font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--text-muted);
  text-align: center;
  max-width: 12em;
}

.rsc-card-body { padding: 24px 28px; display: flex; flex-direction: column; }
.rsc-card-head { margin-bottom: 4px; }
.rsc-card-body h3 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: 21px; line-height: 1.2;
  color: var(--text-1);
  letter-spacing: -0.012em;
  margin: 0;
}
.rsc-card-body h3 a { color: inherit; text-decoration: none; }
.rsc-card-body h3 a:hover { text-decoration: underline; }
.rsc-card-url {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13.5px; font-weight: 500;
  color: var(--accent);
  text-decoration: none;
  margin-bottom: 12px;
}
.rsc-card-url svg { opacity: 0.7; }
.rsc-card-url:hover { text-decoration: underline; }
.rsc-card-body p {
  font-size: 14.5px; line-height: 1.6;
  color: var(--text-2);
  margin: 0 0 18px;
  max-width: 64em;
}
.rsc-card-body p a { color: var(--accent); text-decoration: none; font-weight: 500; }
.rsc-card-body p a:hover { text-decoration: underline; }

.rsc-card-foot {
  display: flex; align-items: center; gap: 10px;
  flex-wrap: wrap;
  margin-top: auto;
}
.rsc-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.rsc-tag {
  display: inline-flex; align-items: center;
  padding: 5px 12px;
  border-radius: var(--radius-pill);
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 12px; font-weight: 600;
  letter-spacing: 0.01em;
}
.rsc-visit {
  margin-left: auto;
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 13px; font-weight: 600;
  color: var(--text-2);
  background: transparent;
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  padding: 8px 16px;
  cursor: pointer;
  text-decoration: none;
  transition: all .15s;
}
.rsc-visit:hover { color: var(--text-1); border-color: var(--border-strong); }

/* ====================================================================
   SUGGEST / FINAL CTA (logged-out)
   ==================================================================== */
.rsc-cta { padding: 92px 0 108px; text-align: center; }
.rsc-cta h2 { font-family: var(--font-serif); font-weight: 500; font-size: 42px; color: var(--text-1); margin: 0 0 var(--sp-4); letter-spacing: -0.02em; }
.rsc-cta p { font-size: 18px; color: var(--text-2); max-width: 32em; margin: 0 auto var(--sp-8); }
.rsc-cta-actions { display: flex; justify-content: center; gap: var(--sp-3); flex-wrap: wrap; }
.rsc-cta-actions .btn { padding: 13px 26px; font-size: 15px; text-decoration: none; }

/* ====================================================================
   LOGGED-IN (in-app) — page header + suggest strip
   ==================================================================== */
.rsc-app-page { box-sizing: border-box; max-width: 1440px; margin-left: auto; margin-right: auto; padding: 40px 64px 64px; display: flex; flex-direction: column; gap: 40px; }
@media (max-width: 1600px) { .rsc-app-page { padding-left: 48px; padding-right: 48px; } }
@media (max-width: 1180px) { .rsc-app-page { padding-left: 40px; padding-right: 40px; } }
@media (max-width: 767px)  { .rsc-app-page { padding-left: 16px; padding-right: 16px; } }
.rsc-app-head h1 { font-family: var(--font-serif); font-weight: 500; font-size: 44px; color: var(--text-1); margin: 0 0 8px; letter-spacing: -0.02em; }
.rsc-app-head p { font-size: 15px; color: var(--text-3); max-width: 46em; margin: 0; }

.rsc-app-cat { display: flex; flex-direction: column; }

.rsc-suggest {
  display: flex; align-items: center; gap: 18px;
  background: linear-gradient(135deg, var(--accent-soft), transparent 70%), var(--surface);
  border: 1px solid color-mix(in oklab, var(--accent) 26%, var(--border));
  border-radius: var(--radius-xl);
  padding: 22px 26px;
}
.rsc-suggest .ic {
  flex: none;
  width: 42px; height: 42px; border-radius: var(--radius-md);
  background: var(--accent-soft); color: var(--accent);
  display: inline-flex; align-items: center; justify-content: center;
}
.rsc-suggest .copy { flex: 1; min-width: 0; }
.rsc-suggest .copy h4 {
  font-family: var(--font-serif);
  font-size: 18px; font-weight: 600; color: var(--text-1);
  letter-spacing: -0.01em; margin: 0 0 3px;
}
.rsc-suggest .copy p { font-size: 13.5px; color: var(--text-3); margin: 0; }
.btn.rsc-btn-suggest { padding: 11px 20px; font-size: 14px; white-space: nowrap; text-decoration: none; }

/* ====================================================================
   Root + in-app shell offset (same model as Training Courses .tc-inapp)
   60px icon rail + 224px home_loggedin secondary nav = 284px, + 68px top bar.
   ==================================================================== */
.rsc-root { min-height: 100%; }
.mv-root.rsc-inapp {
  margin-left: 284px;
  padding-top: 68px;
  min-height: calc(100vh - 68px);
}
@media (max-width: 1180px) { .mv-root.rsc-inapp { margin-left: 60px; } }
@media (max-width: 880px)  { .mv-root.rsc-inapp { margin-left: 0; } }
/* iPad-portrait gutter fix: rail off-canvas via tlp- (768–1180px portrait); the reset above only fires <=880, so re-assert across the full tablet-portrait range (iPad Pro 12.9" = 1024px). Landscape keeps its rail. */
@media only screen and (min-device-width: 768px) and (max-device-width: 1180px) and (orientation: portrait) { .mv-root.rsc-inapp { margin-left: 0; } }
@media (max-width: 768px)  { .mv-root.rsc-inapp { padding-top: 64px; } }
@media (max-width: 560px)  { .mv-root.rsc-inapp { padding-top: 60px; } }

/* ====================================================================
   Responsive
   ==================================================================== */
@media (max-width: 1180px) {
  .rsc-hero-grid { grid-template-columns: 1fr; }
  .rsc-hero-stats { flex-direction: row; flex-wrap: wrap; }
  .rsc-hero-stat { flex: 1; min-width: 200px; }
}
@media (max-width: 1024px) {
  .rsc-hero-copy h1 { font-size: 50px; }
  .rsc-cta h2 { font-size: 36px; }
}
@media (max-width: 880px) {
  .rsc-app-page { padding-top: 32px; padding-bottom: 56px; }
}
@media (max-width: 768px) {
  .rsc-hero-inner { padding: 20px var(--sp-6) 56px; }
  .rsc-breadcrumb { margin-bottom: 32px; }
  .rsc-hero-copy h1 { font-size: 40px; }
  .rsc-hero-copy p { font-size: 16px; }
  .rsc-section { padding: 48px 0; }
  .rsc-section-inner { padding: 0 var(--sp-6); }
  .rsc-cat-head h2 { font-size: 26px; }
  .rsc-cta { padding: 64px 0 72px; }
  .rsc-cta h2 { font-size: 32px; }
  .rsc-app-page { padding-top: 28px; padding-bottom: 48px; gap: 32px; }
  .rsc-app-head h1 { font-size: 34px; }
  .rsc-suggest { flex-direction: column; align-items: flex-start; gap: 14px; }
  .rsc-suggest .btn { align-self: stretch; justify-content: center; }
}
@media (max-width: 720px) {
  .rsc-card { grid-template-columns: 1fr; }
  .rsc-logo-panel { border-right: 0; border-bottom: 1px solid var(--border); min-height: 0; padding: 24px; }
  .rsc-card-foot { gap: 12px; }
  .rsc-visit { margin-left: 0; }
}
.re-eye { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--brand); margin-bottom: 12px; }
.rsc-hero-copy h1 em, .rsc-app-head h1 em { font-style: italic; font-weight: 500; color: var(--brand); }
