/* ============================================================
   brief.css: styles for the Market Brief archive only.
   Loaded by the layout's pageCss option on /market-brief/ and on
   the issue pages under /market-brief/issues/.

   It adds nothing global. Every selector starts at a .brief class
   or at .page-brief, it uses the site palette and the existing
   spacing scale, and it borrows .board, .form-panel, .quote-grid,
   .cell and .prose from pages.css rather than restating them.
   Tap targets in here are at least 40px in both directions.
   ============================================================ */

/* ---------- the intro facts row ---------- */
.brief-facts{
  list-style:none;display:grid;gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:6px;overflow:hidden;
  grid-template-columns:repeat(3,1fr);margin-top:36px;
}
.brief-facts li{background:var(--card);padding:20px 22px;}
.brief-facts .kicker{margin-bottom:6px;}
.brief-fact-v{display:block;font-family:'Fraunces',Georgia,serif;font-size:1.1rem;color:var(--ink);line-height:1.3;}
@media(max-width:640px){ .brief-facts{grid-template-columns:1fr;} }

/* ---------- the closed state, before an email ---------- */
.brief-closed{
  background:var(--card);border:1px solid var(--line);border-radius:6px;
  padding:34px 28px;
}
.brief-closed p{color:var(--dim);font-size:0.95rem;line-height:1.65;max-width:56ch;}
.brief-closed .kicker{margin-bottom:12px;}
.brief-count{display:block;margin-top:16px;color:var(--sky-deep);text-transform:none;letter-spacing:0.06em;}

/* ---------- the archive board ---------- */
.brief-board{margin-bottom:0;}
.brief-scope{
  margin:0;padding:14px 20px;background:var(--tint);color:var(--ink);
  font-size:0.86rem;line-height:1.55;border-bottom:1px solid var(--line-cool);
}
.brief-scope:empty{display:none;}
.brief-rows{list-style:none;margin:0;padding:0;}
.brief-row{
  padding:18px 20px;border-bottom:1px solid var(--line-cool);
  border-left:3px solid var(--steel);
}
.brief-row:last-child{border-bottom:none;}
.brief-row[hidden]{display:none;}
.brief-row-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.brief-date{color:var(--sky-deep);text-transform:none;letter-spacing:0.04em;font-size:0.74rem;}
.brief-tag{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:0.64rem;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--dim);border:1px solid var(--line);
  border-radius:3px;padding:3px 8px;
}
.brief-tag[hidden]{display:none;}
.brief-title{
  font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.12rem;line-height:1.35;
  color:var(--ink);margin:8px 0 6px;
}
.brief-summary{color:var(--dim);font-size:0.9rem;line-height:1.6;max-width:62ch;}
.brief-row-cta{margin-top:10px;font-size:0.88rem;color:var(--dim);min-height:40px;display:flex;align-items:center;}
.brief-row-cta:empty{display:none;}
.brief-open{
  display:inline-flex;align-items:center;min-height:40px;padding:8px 2px;
  font-weight:600;color:var(--sky-deep);text-decoration:none;
  border-bottom:1px solid transparent;
}
.brief-open:hover{border-bottom-color:var(--sky-deep);}
.brief-open::after{content:' \2192';}

/* A locked row is visibly different and still fully readable. */
.brief-row.is-locked{border-left-color:var(--line);background:var(--tint);}
.brief-row.is-locked .brief-title{color:var(--dim);}
.brief-row.is-locked .brief-row-cta{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:0.72rem;
  letter-spacing:0.06em;color:var(--dim);
}
.brief-empty{
  margin:0;padding:18px 20px;background:var(--sand);color:var(--ink);
  font-size:0.88rem;line-height:1.6;border-top:1px solid var(--line-cool);
}
.brief-empty[hidden]{display:none;}

/* ---------- the gate and the signup ---------- */
.brief-gate .gate-h,.brief-signup .signup-h{font-size:clamp(1.4rem,2.4vw,1.8rem);margin-bottom:12px;}
.brief-gate [hidden],.brief-signup [hidden]{display:none;}
.brief-gate .gate-status.is-problem,.brief-signup .signup-status.is-problem{color:#B3261E;}
.brief-demo{
  margin-top:22px;padding:14px 16px;background:var(--tint);
  border-left:3px solid var(--steel);border-radius:3px;
  font-size:0.8rem;line-height:1.6;color:var(--ink);
}
.brief-unsub{margin-top:20px;border-top:1px solid var(--line);padding-top:16px;}
.brief-why{align-self:center;}
.brief-why p{color:var(--dim);font-size:0.95rem;line-height:1.7;max-width:52ch;}
.brief-why p + p{margin-top:14px;}
.brief-why .kicker{margin-bottom:12px;}
.brief-signup-sec .quote-grid{align-items:stretch;}
@media(max-width:899px){ .brief-signup-col{order:2;} .brief-why{order:1;} }

/* ---------- the current issue hook ---------- */
.brief-current{
  background:var(--card);border:1px solid var(--line);border-radius:6px;padding:34px 28px;
}
.brief-current-title{
  font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.35rem;line-height:1.3;
  color:var(--ink);margin:10px 0 10px;
}
.brief-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
.brief-chip{
  background:var(--tint);color:var(--ink);border:1px solid var(--line);border-radius:3px;
  padding:8px 12px;font-size:0.82rem;line-height:1.3;
}

/* ---------- one issue page ---------- */
.brief-issue-sec{padding:0 0 72px;}
.brief-sample{
  display:inline-block;background:var(--sand);color:var(--ink);
  border-radius:3px;padding:7px 12px;margin-bottom:26px;
  text-transform:none;letter-spacing:0.06em;font-size:0.72rem;
}
.brief-body{max-width:64ch;}
.brief-body[hidden]{display:none;}
.brief-body h2{font-size:clamp(1.3rem,2.4vw,1.7rem);}
.brief-back{margin-top:32px;}
.brief-back a{display:inline-flex;align-items:center;min-height:40px;}
.brief-locked-panel{
  background:var(--card);border:1px solid var(--line);border-radius:6px;
  padding:34px 28px;max-width:56ch;
}
.brief-locked-h{
  font-family:'Fraunces',Georgia,serif;font-size:1.3rem;color:var(--ink);margin-bottom:10px;
}
.brief-locked-panel .form-note{margin-bottom:22px;}
.brief-locked-panel .btn{display:inline-flex;align-items:center;min-height:44px;}
.brief-cta-sec{padding-bottom:72px;}

/* ---------- phone ---------- */
@media(max-width:640px){
  .brief-closed,.brief-current,.brief-locked-panel{padding:26px 20px;}
  .brief-row{padding:16px 16px;}
  .brief-scope,.brief-empty{padding:14px 16px;}
  .brief-title{font-size:1.06rem;}
}
@media(max-width:390px){
  .brief-row-top{gap:6px;}
  .brief-chip{font-size:0.78rem;}
}

/* Current-issue and email entry points share a clear responsive layout. */
.brief-entry-section{padding-top:8px;padding-bottom:72px}
.brief-entry-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:28px;align-items:stretch}
.brief-current-card,.brief-subscribe{min-width:0;padding:clamp(24px,3vw,40px);border:1px solid var(--line);border-radius:10px}
.brief-current-card{background:var(--tint);display:flex;flex-direction:column;align-items:flex-start}
.brief-current-card h2,.brief-subscribe h2{font-size:clamp(1.6rem,2.4vw,2rem);line-height:1.25;margin:14px 0}
.brief-current-card>p,.brief-subscribe-intro{font-size:.96rem;line-height:1.7;color:var(--dim);margin:0 0 26px;max-width:48ch}
.brief-current-card .btn{margin-top:auto;gap:12px}
.brief-subscribe{background:#fff;box-shadow:0 12px 32px #1c2a3d08;scroll-margin-top:120px}
.brief-subscribe-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.brief-subscribe-row .field{margin:0;min-width:0}
.brief-subscribe-row input,.brief-subscribe-row .btn{min-height:52px}
.brief-subscribe-row input{border-color:var(--line-cool);font-size:16px}
.brief-subscribe-row .btn{white-space:nowrap;padding-inline:22px}
.brief-subscribe .form-note{font-size:.82rem;line-height:1.65;margin:18px 0 0}
.brief-subscribe .form-note a{text-underline-offset:3px}
.brief-subscribe .brief-done{padding:18px 20px;border-left:3px solid var(--blue);background:var(--tint);border-radius:4px}
.brief-subscribe-form{scroll-margin-top:120px}
@media(max-width:960px){.brief-entry-grid{grid-template-columns:1fr;gap:24px}.brief-current-card .btn{margin-top:0}.brief-entry-grid h2{max-width:none}.brief-current-card>p{max-width:65ch}}
@media(max-width:520px){.brief-entry-section{padding-bottom:40px}.brief-entry-grid{gap:20px}.brief-subscribe-row{grid-template-columns:1fr;gap:14px}.brief-subscribe-row .btn,.brief-current-card .btn{width:100%;white-space:normal;text-align:center}.brief-current-card,.brief-subscribe{padding:24px 20px}}
