/* The Open File: article, author and index pages.
   Builds on /caseprep.css (tokens, top bar, buttons, tags, cards, footer). */

/* keep The Open File link visible in the top bar on small screens */
@media (max-width: 860px) { .cp-nav a.of-keep { display: inline; } }
@media (max-width: 420px) { .cp-nav { gap: 14px; } .cp-mark small { display: none; } }

.of-hero { padding: 64px 0 46px; border-bottom: 1px solid var(--cp-rule); background: var(--cp-surface); }
.of-hero h1 { max-width: 22ch; margin-bottom: 18px; }
.of-hero .of-sub { font-size: 1.08rem; max-width: 60ch; }
.of-crumb { font-family: var(--cp-mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--cp-muted); margin-bottom: 18px; max-width: none; }
.of-crumb a { color: var(--cp-muted); text-decoration: none; }
.of-crumb a:hover { color: var(--cp-brass); }

.of-byline { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-family: var(--cp-mono); font-size: .72rem; letter-spacing: .04em; color: var(--cp-muted); margin-top: 22px; max-width: none; }
.of-byline a { color: var(--cp-ink); text-decoration: none; font-weight: 600; }
.of-byline a:hover { color: var(--cp-brass); }

.of-avatar { display: inline-grid; place-items: center; flex: none; border-radius: 50%; background: var(--av); color: var(--cp-surface); font-family: var(--cp-mono); font-weight: 600; letter-spacing: .04em; }

/* tags per client */
.of-tag.ai { color: var(--cp-iq); background: var(--cp-iq-bg); border-color: var(--cp-iq-line); }
.of-tag.dui { color: var(--cp-print); background: var(--cp-print-bg); border-color: var(--cp-print-line); }
.of-tag.santa { color: var(--cp-brass); background: var(--cp-brass-bg); border-color: var(--cp-brass-line); }

/* article body */
.of-article { max-width: 720px; margin: 0 auto; padding: 52px var(--cp-gutter) 20px; }
.of-dek { font-family: var(--cp-serif); font-size: 1.25rem; line-height: 1.5; color: var(--cp-ink); margin-bottom: 30px; }
.of-prose h2 { margin: 42px 0 14px; font-size: clamp(1.32rem, 3vw, 1.62rem); }
.of-prose h3 { margin: 26px 0 8px; }
.of-prose p, .of-prose li { font-size: 1.04rem; line-height: 1.72; }
.of-prose ul, .of-prose ol { padding-left: 1.3em; margin: 0 0 20px; max-width: var(--cp-measure); }
.of-prose li { margin-bottom: 7px; }
.of-prose li::marker { color: var(--cp-brass); }
.of-prose blockquote { margin: 0 0 18px; padding: 14px 18px; border-left: 3px solid var(--cp-brass); background: var(--cp-sunk); font-family: var(--cp-mono); font-size: .88rem; line-height: 1.65; color: var(--cp-body); border-radius: 0 6px 6px 0; }
.of-note { font-size: .86rem !important; color: var(--cp-muted); border-top: 1px solid var(--cp-rule); padding-top: 18px; margin-top: 38px; }

/* promotion box: stays dark in both themes */
.of-promo { margin: 38px 0 28px; background: var(--cp-field); color: var(--cp-on-field-dim); border-radius: 10px; padding: 30px 30px 32px; border-top: 3px solid var(--cp-brass); }
.of-promo .cp-eyebrow { color: var(--cp-on-field-dim); }
.of-promo h2 { color: var(--cp-on-field); margin: 0 0 12px; font-size: clamp(1.3rem, 3vw, 1.6rem); }
.of-promo p { color: var(--cp-on-field-dim); font-size: .98rem; }
.of-promo .of-one { color: var(--cp-on-field); font-weight: 600; }
.of-promo .cp-btn { margin-top: 8px; }
.of-promo small { display: block; margin-top: 16px; font-size: .74rem; color: var(--cp-on-field-dim); opacity: .85; }

/* author box */
.of-author { display: grid; grid-template-columns: auto 1fr; gap: 22px; align-items: start; margin-bottom: 40px; }
.of-author h3 { font-family: var(--cp-serif); font-size: 1.3rem; margin-bottom: 2px; }
.of-author h3 a { color: var(--cp-ink); text-decoration: none; }
.of-author h3 a:hover { color: var(--cp-brass); }
.of-role { font-family: var(--cp-mono); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--cp-brass); margin-bottom: 10px; }
.of-more { font-family: var(--cp-mono); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
@media (max-width: 560px) { .of-author { grid-template-columns: 1fr; } }

/* cards */
.of-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 16px; }
.of-card { display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: inherit; transition: border-color .15s, transform .15s; }
.of-card:hover { border-color: var(--cp-brass); transform: translateY(-2px); }
.of-card h3 { font-family: var(--cp-serif); font-size: 1.16rem; line-height: 1.3; margin: 2px 0 0; }
.of-card p { font-size: .92rem; margin: 0; color: var(--cp-body); }
.of-card .cp-tag { align-self: flex-start; }
.of-meta { margin-top: auto; padding-top: 8px; font-family: var(--cp-mono); font-size: .66rem; letter-spacing: .05em; color: var(--cp-muted); }
.of-writer { align-items: flex-start; }

/* filter */
.of-filter { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 26px; }
.of-filter .cp-btn[aria-pressed="false"] { background: transparent; color: var(--cp-ink); border-color: var(--cp-rule); }
.of-filter .cp-btn[aria-pressed="false"]:hover { background: var(--cp-brass-bg); color: var(--cp-brass); border-color: var(--cp-brass); }

/* author profile */
.of-profile { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }
.of-two { display: grid; grid-template-columns: 1.5fr 1fr; gap: 40px; align-items: start; }
.of-passions ul { list-style: none; padding: 0; margin: 0; }
.of-passions li { padding: 10px 0; border-top: 1px solid var(--cp-rule-soft); font-size: .95rem; }
.of-passions li:first-child { border-top: none; }
@media (max-width: 760px) { .of-two { grid-template-columns: 1fr; } }

.of-section { padding: 60px 0; border-top: 1px solid var(--cp-rule); }
.of-section.sunk { background: var(--cp-sunk); }
