/* Research Locker. Generated by build_research_locker.py -- edit that, not this.
   Namespaced rlk-* so it cannot collide with the retired locker-* rules or with
   anything in the shared style.css. */
.rlk { max-width: 1000px; }
.rlk-stats { display:flex; justify-content:space-around; background:var(--bg); border-top:3px solid var(--red);
             border-bottom:1px solid var(--border); padding:22px 16px; margin:28px 0; }
.rlk-stat { text-align:center; }
.rlk-stat__num { display:block; font-family:Merriweather,Georgia,serif; font-size:34px; font-weight:900; color:var(--red); line-height:1.1; }
.rlk-stat__label { display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--mid-gray); margin-top:4px; }

.rlk-hero { display:block; text-decoration:none; color:inherit; border:1px solid var(--border); border-left:4px solid var(--red);
            padding:20px 22px; margin-bottom:26px; background:#fff; transition:box-shadow .18s, transform .18s; }
.rlk-hero:hover { box-shadow:0 6px 22px rgba(0,0,0,.09); transform:translateY(-1px); }
.rlk-hero__eyebrow { display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:700; text-transform:uppercase;
                     letter-spacing:.07em; color:var(--red); }
.rlk-hero__dot { width:7px; height:7px; border-radius:50%; background:var(--red); }
.rlk-hero__date { display:block; font-size:12px; font-weight:700; color:var(--mid-gray); margin-top:9px; }
.rlk-hero__title { font-family:Merriweather,Georgia,serif; font-size:25px; font-weight:900; line-height:1.25; margin:5px 0 0; }
.rlk-hero__desc { font-size:15px; line-height:1.55; color:#333; margin:9px 0 0; }
.rlk-hero__cta { display:inline-block; margin-top:13px; font-size:13px; font-weight:700; color:var(--red); }

.rlk-controls { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.rlk-search { flex:1 1 260px; padding:10px 13px; font-size:15px; font-family:inherit; border:1px solid var(--border); }
.rlk-search:focus { outline:2px solid var(--red); outline-offset:-2px; }
.rlk-sort { display:flex; gap:6px; }
.rlk-sortbtn, .rlk-chip { cursor:pointer; font-family:inherit; background:#fff; border:1px solid var(--border);
                          padding:7px 13px; font-size:12px; font-weight:700; color:var(--mid-gray); }
.rlk-sortbtn.is-active, .rlk-chip.is-active { background:var(--red); border-color:var(--red); color:#fff; }
.rlk-chips { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:18px; }
.rlk-chip__n { opacity:.65; font-weight:400; margin-left:3px; }
.rlk-empty { color:var(--mid-gray); font-size:15px; padding:26px 0; }

.rlk-list { border-top:1px solid var(--border); }
.rlk-row { display:grid; grid-template-columns:46px 132px 150px 1fr auto; gap:14px; align-items:center;
           padding:15px 0; border-bottom:1px solid var(--border); text-decoration:none; color:inherit; }
.rlk-row:hover { background:#fafafa; }
.rlk-row[hidden] { display:none; }
.rlk-row__num { font-family:Merriweather,Georgia,serif; font-size:17px; font-weight:700; color:var(--mid-gray); text-align:center; }
.rlk-row__date { font-size:13px; font-weight:700; color:var(--mid-gray); }
.rlk-pill { display:inline-block; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
            color:var(--red); border:1px solid currentColor; padding:3px 8px; white-space:nowrap; }
.rlk-pill--soft { color:var(--mid-gray); }
.rlk-row__title { display:block; font-size:16px; font-weight:700; line-height:1.35; }
.rlk-row:hover .rlk-row__title { color:var(--red); }
.rlk-row__desc { display:block; font-size:13px; line-height:1.5; color:#555; margin-top:3px; }
.rlk-row__action { font-size:11px; font-weight:700; color:var(--red); white-space:nowrap; }

.rlk-back { display:inline-block; font-size:13px; font-weight:700; color:var(--red); text-decoration:none; margin-bottom:18px; }
.rlk-doc__meta { display:flex; align-items:center; gap:12px; margin-bottom:9px; }
.rlk-doc__date { font-size:13px; font-weight:700; color:var(--mid-gray); }
.rlk-doc__title { font-family:Merriweather,Georgia,serif; font-size:33px; font-weight:900; line-height:1.2; margin:0 0 14px; }
.rlk-doc__summary { font-size:17px; line-height:1.65; color:#222; margin:0 0 24px; max-width:70ch; }
.rlk-dl { display:inline-flex; align-items:baseline; gap:10px; background:var(--red); color:#fff; text-decoration:none;
          font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; padding:14px 26px; transition:background .2s; }
.rlk-dl:hover { background:var(--red-dark); }
.rlk-dl__meta { font-size:11px; font-weight:400; opacity:.85; text-transform:none; letter-spacing:0; }

/* 768px matches the breakpoint the surrounding page chrome already uses. The
   retired locker-* rules broke at 600px, leaving a 601-768px dead zone where the
   grid stayed desktop-wide inside mobile typography. */
@media (max-width: 768px) {
  .rlk-stats { padding:18px 10px; }
  .rlk-stat__num { font-size:27px; }
  .rlk-hero__title { font-size:21px; }
  .rlk-doc__title { font-size:26px; }
  .rlk-row { grid-template-columns:34px 1fr auto; gap:10px; row-gap:5px; }
  .rlk-row__num { grid-row:1 / span 3; align-self:start; padding-top:2px; }
  .rlk-row__date { grid-column:2; }
  .rlk-row__cat { grid-column:3; grid-row:1; justify-self:end; }
  .rlk-row__body { grid-column:2 / span 2; }
  .rlk-row__action { grid-column:2 / span 2; justify-self:start; }
  .rlk-dl { width:100%; justify-content:center; }
}
