/* kpsgill-outlook.css — After the Vote: Policy Outlook 2027–2030 (7 Nov 2026).
   Used by /policy/outlook-2027-2030/*, /archive/elections/2026/, /weekly/2026-11-07/ and the homepage outlook band.
   Builds on kpsgill-practice.css (--xp-* tokens) and kpsgill-malpractice.css (mm-* layout). */

/* ---------- article furniture ---------- */
.op .op-howto{border-left-color:var(--xp-gold,#B8863B);background:var(--xp-gold-soft,#F6ECD7)}
.op .op-howto .xp-callout-h{color:var(--xp-gold-text,#7E5B24)}
.op-ai{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;font:600 9.5px/1.7 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.08em;background:#E8E3F4;color:#4B3C7A;vertical-align:1px}
.op .mm-aud-p{background:#EEF1F6;color:var(--xp-navy,#12233F)}
.op-notes ol{font-size:14.5px;line-height:1.6;padding-left:22px}
.op-notes li{margin:0 0 8px;overflow-wrap:anywhere}
.op-notes li p{margin:0!important;font-size:14.5px;line-height:1.55}
.op-notes-lede{font-size:14.5px!important;color:var(--xp-muted,#565C67)}
.op sup a.footnote-ref{text-decoration:none;font-weight:600;padding:0 1px}
.op .footnote-backref{text-decoration:none;margin-left:4px}
.op-continue{padding:6px 0 18px}
.op-continue h2{font-family:Fraunces,Georgia,serif;font-size:22px;color:var(--xp-navy,#12233F);margin:18px 0 10px}
.op-continue p,.op-continue li{font-size:16px;line-height:1.65}
.op-continue ul{padding-left:20px}
.op .table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.op .table-scroll:focus-visible{outline:2px solid var(--xp-teal,#1F6F5C);outline-offset:2px}
.op .xp-table caption{caption-side:top;text-align:left;font:600 12px/1.4 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--xp-teal-deep,#175A4A);padding:0 0 8px}

/* ---------- collection cards ---------- */
.op-vols{margin:28px 0 8px}
.op-vol{margin:0 0 30px}
.op-vol-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;border-bottom:2px solid var(--xp-navy,#12233F);padding-bottom:6px;margin-bottom:14px}
.op-vol-k{margin:0!important;font:600 11px/1 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--xp-gold-text,#7E5B24)}
.op-vol-h h2{margin:0!important;font-size:24px}
.op-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.op-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:16px 18px 14px;border:1px solid var(--xp-line,#E4E2DA);border-radius:12px;background:var(--xp-card,#fff);text-decoration:none!important;transition:border-color .15s,transform .15s}
.op-card:hover{border-color:var(--xp-teal,#1F6F5C);transform:translateY(-1px)}
.op-card:focus-visible{outline:2px solid var(--xp-teal,#1F6F5C);outline-offset:2px}
.op-card strong{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:17px;line-height:1.3;color:var(--xp-navy,#12233F)}
.op-card em{font-style:normal;font-size:14.5px;line-height:1.5;color:#3A4250;flex:1}
.op-card-n,.op-card-m{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--xp-muted,#565C67)}
.op-card-n{color:var(--xp-gold-text,#7E5B24);font-weight:600}
.op-card-ai{align-self:flex-start;padding:2px 8px;border-radius:999px;font:600 10px/1.6 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;background:#E8E3F4;color:#4B3C7A}
.op-baseline-box{margin:26px 0;padding:18px 20px 8px;border:1px solid var(--xp-line,#E4E2DA);border-left:4px solid var(--xp-navy,#12233F);border-radius:10px;background:var(--xp-paper,#FBFAF7)}
.op-baseline-box h2{margin-top:0!important}
.op-baseline-note{font-size:15px!important;line-height:1.6}
.op-src{padding-left:20px}
.op-src li{margin:0 0 6px;font-size:15px;line-height:1.55;overflow-wrap:anywhere}
.op-src-used,.op-src-n{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.04em;color:var(--xp-muted,#565C67)}
.op-src-flag{font-size:12.5px;color:#8C3A2B}
[data-k-theme="dark"] .op-card em{color:#C9D3E0}
[data-k-theme="dark"] .op-ai,[data-k-theme="dark"] .op-card-ai{background:#2E2847;color:#D8CFF5}

/* ---------- homepage: AI flagship companions + After the Vote band ---------- */
.ho-ai{margin:26px 0 6px;padding-top:18px;border-top:1px solid var(--border,#E4E2DA)}
.ho-ai-k{margin:0 0 4px;font:600 11px/1.3 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#4B3C7A}
.ho-ai-lede{margin:0 0 14px;font-size:15.5px;line-height:1.55;color:#3A4250;max-width:72ch}
.ho-ai-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ho-ai-card{display:flex;flex-direction:column;gap:6px;padding:18px 20px 16px;border:1px solid #D9D2EA;border-left:4px solid #5B4A8A;border-radius:12px;background:#FCFBFE}
.ho-ai-card h3{margin:0;font-family:Fraunces,Georgia,serif;font-weight:600;font-size:21px;line-height:1.25}
.ho-ai-card h3 a{color:var(--navy,#12233F);text-decoration:none}
.ho-ai-card h3 a:hover{text-decoration:underline}
.ho-ai-card p{margin:0;font-size:15px;line-height:1.55;color:#2E384A}
.ho-ai-meta{font:500 10.5px/1.4 'IBM Plex Mono',ui-monospace,monospace!important;letter-spacing:.1em;text-transform:uppercase;color:#4B3C7A!important}
.ho-ai-foot{font-size:13.5px!important;color:var(--muted,#6F7068)!important}

.ho-otl{background:#12233F;color:#F3EFE6;padding:46px 0 40px;margin:0}
.ho-otl a{color:#F3E5C8}
.ho-otl a:hover{color:#fff}
.ho-otl .hb-in{max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,44px)}
.ho-otl-k{margin:0 0 10px;font:600 11.5px/1.4 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#E8C98F}
.ho-otl-h{margin:0 0 14px;font-family:Fraunces,Georgia,serif;font-weight:600;font-size:clamp(32px,4.6vw,54px);line-height:1.05;color:#fff}
.ho-otl-top{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:36px;align-items:start}
.ho-otl-dek p{margin:0 0 12px;font-size:17px;line-height:1.6;color:#E3E8F0;max-width:66ch}
.ho-otl-act{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 0}
.ho-btn{display:inline-block;padding:11px 18px;border-radius:8px;font-weight:600;font-size:15.5px;text-decoration:none!important}
.ho-btn--gold{background:#E8C98F;color:#12233F!important}
.ho-btn--gold:hover{background:#F3E5C8}
.ho-btn--line{border:1px solid rgba(243,229,200,.55);color:#F3E5C8!important}
.ho-btn--line:hover{border-color:#fff;color:#fff!important}
.ho-stage{margin:0;padding:0;list-style:none;border:1px solid rgba(243,229,200,.25);border-radius:12px;overflow:hidden}
.ho-stage li{padding:12px 16px;border-top:1px solid rgba(243,229,200,.18);font-size:14.5px;line-height:1.5;color:#E3E8F0}
.ho-stage li:first-child{border-top:0}
.ho-stage b{display:inline-block;min-width:0;margin-right:8px;padding:1px 8px;border-radius:999px;background:rgba(232,201,143,.16);color:#F3E5C8;font:600 10.5px/1.7 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}
.ho-stage-h{margin:0 0 8px;font:600 11px/1.3 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:#E8C98F}
.ho-otl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:32px 0 0}
.ho-otl-card{display:flex;flex-direction:column;gap:6px;padding:18px 18px 16px;border-radius:12px;background:#1A2E4F;border:1px solid rgba(243,229,200,.16)}
.ho-otl-card h3{margin:0;font-family:Fraunces,Georgia,serif;font-weight:600;font-size:19px;line-height:1.28}
.ho-otl-card h3 a{color:#fff;text-decoration:none}
.ho-otl-card h3 a:hover{text-decoration:underline}
.ho-otl-card p{margin:0;font-size:14.5px;line-height:1.55;color:#C9D3E0}
.ho-otl-card .ho-otl-ck{font:600 10.5px/1.4 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:#E8C98F}
.ho-otl-card .ho-otl-more{font-size:13.5px;color:#AAB6C6}
.ho-otl-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0 0}
.ho-otl-foot{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px;margin:30px 0 0;padding-top:22px;border-top:1px solid rgba(243,229,200,.2)}
.ho-otl-foot h3{margin:0 0 8px;font-family:Fraunces,Georgia,serif;font-size:20px;color:#fff}
.ho-otl-foot p{margin:0 0 8px;font-size:14.5px;line-height:1.6;color:#C9D3E0}
.ho-otl-src{font-size:13px!important;color:#AAB6C6!important}
.ho-otl-links{margin:0;padding:0;list-style:none}
.ho-otl-links li{margin:0 0 8px;font-size:15px}
@media (max-width:980px){.ho-otl-top,.ho-otl-foot{grid-template-columns:1fr;gap:22px}.ho-otl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.ho-ai-grid,.ho-otl-grid,.ho-otl-row{grid-template-columns:1fr}.ho-otl{padding:34px 0 30px}}
@media print{.ho-otl{background:#fff;color:#000}.ho-otl *{color:#000!important}}
