/* ==========================================================================
   Analysis page — "The Wickman Record"
   Pattern cards, source cards, and page-level layout for /analysis.html.
   Loaded only by templates/analysis.html.
   ========================================================================== */

.an-hero{ padding:52px 0 10px; }
.an-hero h1{ font-family:var(--font-display); font-size:clamp(2rem,4.4vw,3.1rem); line-height:1.08; margin:14px 0 16px; max-width:20ch; }
.an-hero h1 em{ font-style:normal; color:var(--red-bright); }
.an-hero .hero-lede{ max-width:72ch; font-size:1.12rem; }

.an-stamp{
  display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center;
  margin-top:20px; font-family:var(--font-mono); font-size:.72rem;
  letter-spacing:.04em; text-transform:uppercase; color:var(--muted);
}
.an-stamp span{ display:inline-flex; align-items:center; gap:7px; }
.an-stamp span::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--red); }

/* --- Pattern cards ------------------------------------------------------- */
.pat-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:16px; margin:26px 0 8px;
}
.pat-card{
  position:relative; border:1px solid var(--line); border-radius:12px;
  background:var(--bg-soft); padding:20px 20px 18px; overflow:hidden;
}
.pat-card::before{
  content:""; position:absolute; inset:0 auto 0 0; width:4px;
  background:linear-gradient(180deg,var(--red),var(--red-deep));
}
.pat-num{
  font-family:var(--font-display); font-size:.8rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--red-bright); display:block; margin-bottom:8px;
}
.pat-card h3{ font-family:var(--font-display); font-size:1.18rem; line-height:1.25; margin:0 0 10px; }
.pat-card p{ font-size:.92rem; line-height:1.6; margin:0 0 12px; color:var(--text); }
.pat-figure{
  display:flex; align-items:baseline; gap:9px; margin:2px 0 12px;
  padding-top:10px; border-top:1px solid var(--line-soft);
}
.pat-figure b{ font-family:var(--font-display); font-size:1.9rem; line-height:1; color:var(--text); }
.pat-figure span{ font-size:.76rem; color:var(--muted); line-height:1.35; }
.pat-links{ display:flex; flex-wrap:wrap; gap:6px 12px; font-size:.78rem; }
.pat-links a{ color:var(--red-bright); text-decoration:none; border-bottom:1px solid transparent; }
.pat-links a:hover{ border-bottom-color:var(--red-bright); }

/* --- Pattern "Read more" fold -------------------------------------------- */
.pat-card{ display:flex; flex-direction:column; }
.pat-more{
  margin-top:auto; padding-top:10px; border-top:1px solid var(--line-soft);
}
.pat-more > summary{
  cursor:pointer; list-style:none; display:flex; align-items:center; gap:7px;
  font-family:var(--font-display); font-size:.74rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--red-bright);
}
.pat-more > summary::-webkit-details-marker{ display:none; }
.pat-more > summary::before{
  content:"\25B8"; display:inline-block; transition:transform .16s ease;
}
.pat-more[open] > summary::before{ transform:rotate(90deg); }
.pat-more > summary:hover{ color:var(--text); }
.pat-more-body{ padding-top:12px; }
.pat-more-body p{ font-size:.9rem; line-height:1.6; margin:0 0 12px; color:var(--text); }
.pat-more-body .pat-links{ margin-top:2px; }

/* --- Pattern tile summary ------------------------------------------------ */
.pat-sum{
  font-size:.84rem; line-height:1.5; color:var(--muted);
  margin:0 0 12px;
}
.pat-sum em{ color:var(--text); font-style:italic; }

/* --- Playbook fold ------------------------------------------------------- */
.playbook-more{
  margin:22px 0 0; padding:0 16px;
  border:1px solid var(--line); border-radius:10px; background:var(--bg-soft);
}
.playbook-more > summary{
  cursor:pointer; list-style:none; padding:14px 0;
  font-family:var(--font-display); font-size:.8rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--red-bright);
  display:flex; align-items:center; gap:8px;
}
.playbook-more > summary::-webkit-details-marker{ display:none; }
.playbook-more > summary::before{
  content:"\25B8"; display:inline-block; transition:transform .16s ease;
}
.playbook-more[open] > summary::before{ transform:rotate(90deg); }
.playbook-more[open] > summary{ border-bottom:1px solid var(--line-soft); }
.playbook-more > summary:hover{ color:var(--text); }
.playbook-more-body{ padding-top:4px; }
.playbook-more-body > p:last-child{ margin-bottom:18px; }

/* --- Patterns lede moved below the grid ---------------------------------- */
.patterns-lede{
  margin:26px 0 0; padding:18px 20px;
  border:1px solid var(--line); border-left:4px solid var(--red);
  border-radius:10px; background:var(--bg-soft);
}
.patterns-lede > p{
  font-size:.92rem; line-height:1.62; color:var(--text); margin:0;
}
.patterns-lede-more{ margin-top:14px; }
.patterns-lede-more > summary{
  cursor:pointer; list-style:none; display:flex; align-items:center; gap:8px;
  font-family:var(--font-display); font-size:.76rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--red-bright);
}
.patterns-lede-more > summary::-webkit-details-marker{ display:none; }
.patterns-lede-more > summary::before{
  content:"\25B8"; display:inline-block; transition:transform .16s ease;
}
.patterns-lede-more[open] > summary::before{ transform:rotate(90deg); }
.patterns-lede-more > summary:hover{ color:var(--text); }
.patterns-lede-body{ padding-top:12px; }
.patterns-lede-body p{
  font-size:.9rem; line-height:1.65; color:var(--muted); margin:0 0 12px;
}
.patterns-lede-body p:last-child{ margin-bottom:0; }

/* --- Source cards -------------------------------------------------------- */
.src-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px; margin:24px 0 8px;
}
.src-card{
  border:1px solid var(--line); border-radius:12px; background:var(--bg-soft);
  padding:18px 18px 16px; display:flex; flex-direction:column;
}
.src-top{ display:flex; justify-content:space-between; gap:10px; align-items:baseline; margin-bottom:8px; }
.src-outlet{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--red-bright); }
.src-date{ font-family:var(--font-mono); font-size:.68rem; color:var(--muted); }
.src-card h3{ font-family:var(--font-display); font-size:1.02rem; line-height:1.3; margin:0 0 10px; }
.src-card h3 a{ color:var(--text); text-decoration:none; }
.src-card h3 a:hover{ color:var(--red-bright); }
.src-quote{
  font-size:.88rem; line-height:1.55; color:var(--text); margin:0 0 12px;
  border-left:2px solid var(--red); padding-left:12px; font-style:italic;
}
.src-card .src-why{ font-size:.8rem; line-height:1.5; color:var(--muted); margin:0 0 12px; }
.src-card .src-link{ margin-top:auto; font-size:.78rem; }
.src-card .src-link a{ color:var(--red-bright); text-decoration:none; }
.src-card .src-link a:hover{ text-decoration:underline; }

/* --- Verdict / balance panel -------------------------------------------- */
.an-balance{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px;
  margin:24px 0 8px;
}
.an-balance .bal{
  border:1px solid var(--line); border-radius:12px; padding:18px 18px 14px;
  background:var(--bg-soft);
}
.an-balance .bal.good{ border-top:3px solid #1c7a45; }
.an-balance .bal.bad{ border-top:3px solid var(--red); }
.an-balance .bal h3{ font-family:var(--font-display); font-size:1.05rem; margin:0 0 10px; }
.an-balance .bal ul{ margin:0; padding-left:1.1rem; }
.an-balance .bal li{ font-size:.88rem; line-height:1.55; margin:.35rem 0; color:var(--text); }

/* --- Update note --------------------------------------------------------- */
.an-update{
  border:1px solid var(--line); border-left:4px solid var(--red);
  background:var(--panel); border-radius:10px; padding:16px 18px; margin:20px 0;
}
.an-update h3{ font-family:var(--font-display); font-size:1.02rem; margin:0 0 8px; }
.an-update p{ font-size:.9rem; line-height:1.6; margin:0 0 8px; color:var(--text); }
.an-update p:last-child{ margin-bottom:0; }
.an-update code{
  font-family:var(--font-mono); font-size:.82em; background:var(--panel-2);
  padding:1px 5px; border-radius:4px; border:1px solid var(--line-soft);
}

/* --- Law fold ------------------------------------------------------------ */
.law-fold{
  border:1px solid var(--line); border-radius:10px; background:var(--bg-soft);
  margin:18px 0; padding:0 16px;
}
.law-fold summary{
  cursor:pointer; padding:13px 0; font-weight:700; font-size:.9rem;
  color:var(--red-bright); list-style:none;
}
.law-fold summary::-webkit-details-marker{ display:none; }
.law-fold summary::before{ content:"\25B8"; display:inline-block; margin-right:8px; transition:transform .16s ease; }
.law-fold[open] summary::before{ transform:rotate(90deg); }
.law-fold p,.law-fold ul{ font-size:.88rem; line-height:1.6; color:var(--text); }
.law-fold > *:last-child{ margin-bottom:14px; }

@media (max-width:820px){
  .an-balance{ grid-template-columns:1fr; }
}
@media print{
  .pat-card,.src-card,.an-balance .bal{ break-inside:avoid; box-shadow:none; }
  .law-fold{ break-inside:avoid; }
  .pat-more > summary,
  .playbook-more > summary,
  .patterns-lede-more > summary{ display:none; }
  .pat-more{ border-top:1px solid #ccc; }
  .playbook-more,.patterns-lede{ break-inside:avoid; }
}
