/* ============================================================
   TrustHer — Mobile Feed component (thf-)
   Shared, reusable "vertical topics + horizontal swipe" pattern.
   Import AFTER trusther-tokens.css (relies on its tokens; never
   redefines them). All classes are prefixed `thf-` so the component
   can drop into any page without colliding with page CSS.
   ============================================================ */

.thf-root{background:var(--paper);color:var(--ink);font-family:var(--sans);
  -webkit-font-smoothing:antialiased}
.thf-root *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}

/* Scroll surface = the vertical feed. On desktop it centres into a calm,
   phone-width reading column; on mobile it is full-bleed. */
.thf-feed{max-width:520px;margin:0 auto;min-height:100dvh;background:var(--paper);
  overflow-x:hidden}
@media(min-width:560px){
  .thf-feed{margin:24px auto;min-height:auto;border:1px solid var(--line);
    border-radius:28px;overflow:hidden;box-shadow:0 30px 90px -40px rgba(31,29,43,.4)}
}

/* ── Sticky top: wordmark + story-style topic tray ── */
.thf-top{position:sticky;top:0;z-index:40;background:rgba(251,250,248,.88);
  backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);
  border-bottom:1px solid var(--line)}
.thf-brand{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px}
.thf-wm{font-family:var(--serif);font-weight:700;font-size:21px;letter-spacing:-.01em;color:var(--ink);
  text-decoration:none}
.thf-wm b{color:var(--rose)}
.thf-me{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

.thf-tray{display:flex;gap:15px;overflow-x:auto;padding:4px 18px 13px;scrollbar-width:none}
.thf-tray::-webkit-scrollbar{display:none}
.thf-chip{flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;width:62px;
  background:none;border:none;cursor:pointer;padding:0}
.thf-ring{width:58px;height:58px;border-radius:50%;padding:2.5px;
  background:linear-gradient(135deg,var(--rose),var(--rose-soft));display:flex;align-items:center;justify-content:center;
  transition:transform .15s}
.thf-chip:active .thf-ring{transform:scale(.94)}
.thf-ring.thf-rev{background:linear-gradient(135deg,var(--amber),#E7C98B)}
.thf-ring img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid var(--paper);background:var(--cream)}
.thf-chip-lbl{font-size:13px;font-weight:600;color:var(--ink-2);text-align:center;line-height:1.15}

/* ── A topic block in the vertical feed ── */
.thf-topic{padding:24px 0 10px;scroll-margin-top:140px}
.thf-topic + .thf-topic{border-top:1px solid var(--line)}
.thf-thead{display:flex;align-items:center;gap:14px;padding:0 18px 14px}
.thf-ill{flex:none;width:54px;height:54px;border-radius:16px;object-fit:cover;background:var(--cream);
  border:1px solid var(--line)}
.thf-thead h2{font-family:var(--serif);font-weight:600;font-size:29px;line-height:1.1;margin:0;letter-spacing:-.01em}
.thf-sub{font-size:16px;color:var(--muted);margin-top:5px}
.thf-revtag{display:inline-block;margin-left:8px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--amber);background:#FBF1E2;
  border:1px solid rgba(183,121,31,.35);vertical-align:middle;white-space:nowrap}

.thf-swipehint{display:flex;align-items:center;justify-content:center;gap:7px;padding:2px 18px 0;
  font-size:14px;font-weight:600;letter-spacing:.04em;color:var(--muted)}
.thf-swipehint svg{color:var(--rose)}

/* ── Horizontal swipe rail of depth cards ── */
.thf-rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:4px 18px 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.thf-rail::-webkit-scrollbar{display:none}
.thf-card{flex:none;width:90%;scroll-snap-align:center;background:var(--white);
  border:1px solid var(--line);border-radius:20px;padding:22px 20px;
  box-shadow:0 1px 2px rgba(31,29,43,.04),0 14px 30px -20px rgba(31,29,43,.28);
  display:flex;flex-direction:column;min-height:270px}

.thf-clbl{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);display:flex;align-items:center;gap:8px;margin-bottom:15px}
.thf-clbl::before{content:"";width:16px;height:2px;border-radius:2px;background:var(--rose)}
.thf-card.thf-k-voice .thf-clbl::before{background:var(--rose)}
.thf-card.thf-k-res .thf-clbl::before{background:var(--violet)}
.thf-card.thf-k-act .thf-clbl::before{background:var(--green)}
.thf-card.thf-k-conseq .thf-clbl::before{background:var(--amber)}

.thf-voice{font-family:var(--serif);font-style:italic;font-weight:500;font-size:24px;line-height:1.4;
  color:var(--ink);margin:0}
.thf-by{margin-top:15px;font-size:13.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.thf-said{font-size:18.5px;line-height:1.55;color:var(--ink-2);margin:0}
.thf-said + .thf-said{margin-top:14px}
.thf-src{margin-top:18px;display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.thf-srcchip{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:999px;
  background:var(--cream);border:1px solid var(--line);font-size:15.5px;font-weight:600;color:var(--violet);
  text-decoration:none}
.thf-lvl{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

.thf-acts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.thf-acts li{position:relative;padding-left:28px;font-size:18px;line-height:1.5;color:var(--ink-2)}
.thf-acts li::before{content:"";position:absolute;left:2px;top:8px;width:12px;height:12px;border-radius:50%;
  border:2px solid var(--green)}

.thf-conseq{font-size:18.5px;line-height:1.55;color:var(--ink-2);margin:0}
.thf-note{margin-top:16px;padding:14px 16px;background:#FBF6EE;border-left:3px solid var(--amber);
  border-radius:0 12px 12px 0;font-size:16px;line-height:1.5;color:var(--ink-2)}
.thf-note b{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--amber);margin-bottom:7px}

/* National-scope variant of the note box (doctrine §6, violet fence) */
.thf-note.thf-national{background:#F2F0FB;border-left-color:var(--violet)}
.thf-note.thf-national b{color:var(--violet)}

/* CTA card */
.thf-card.thf-k-cta{background:linear-gradient(160deg,#fff,#FCEFF5);border-color:var(--rose-soft);
  justify-content:center}
.thf-card.thf-k-cta h3{font-family:var(--serif);font-size:27px;font-weight:600;margin:0 0 11px;line-height:1.12}
.thf-card.thf-k-cta p{font-size:17px;line-height:1.55;color:var(--ink-2);margin:0 0 20px}
.thf-go{display:inline-flex;align-items:center;gap:7px;background:var(--rose);color:#fff;text-decoration:none;
  font-weight:700;font-size:17.5px;padding:14px 24px;border-radius:999px;align-self:flex-start;
  box-shadow:0 12px 26px -10px rgba(217,79,139,.65)}

/* Swipe position dots */
.thf-dots{display:flex;gap:6px;justify-content:center;padding:14px 0 4px}
.thf-dots i{width:6px;height:6px;border-radius:50%;background:var(--line-strong);transition:width .25s,background .25s}
.thf-dots i.on{width:22px;background:var(--rose)}

.thf-foot{padding:26px 22px 44px;text-align:center;color:var(--muted);font-size:13px;line-height:1.55}
.thf-foot b{color:var(--ink-2)}

@media(prefers-reduced-motion:reduce){
  .thf-feed{scroll-behavior:auto}
  .thf-dots i,.thf-ring{transition:none}
}
