/* ============================================================
   Financial Fellowship Lego v7 section styles.
   Merged from the five v7 page compositions: home, frameworks,
   anesthesiology new attending, recommended, unlocked.
   Every rule is scoped under the page wrapper
   <div class="lego-v7 lego-PAGE">. Brand kit 2026-09-08.

   Scopes:
     .lego-v7                          shared by every page
     .lego-v7:where(:not(.lego-home))  library variant of a block the
                                       homepage defines its own way
                                       (no added specificity)
     .lego-v7.lego-home                homepage variants
     .lego-v7.lego-unlocked            unlocked only rules
   Fonts load from screen.css (self hosted); none load here.
   ============================================================ */

/* ---------- FOUNDATION ---------- */
.lego-v7 { --paper:#FAFAFA; --ink:#040404; --blue:#26B2FD; --yellow:#FFD400; --violet:#7B6CFF; --green:#1CCF6A; --coral:#FF7A59; --red:#E5243B; --gray:#5c5c5c; --line:#e6e6e6; }
.lego-v7, .lego-v7 * { margin:0; padding:0; box-sizing:border-box; }
.lego-v7 { font-family:'Inter',-apple-system,sans-serif; font-size:16px; background:var(--paper); color:var(--ink); line-height:1.6; }
.lego-v7 .wrap { max-width:1140px; margin:0 auto; padding:0 24px; }
.lego-v7 .wrap.narrow { max-width:860px; }
.lego-v7 .band { width:100%; }
.lego-v7 .band .wrap { padding-top:64px; padding-bottom:64px; }
.lego-v7 .band.tight .wrap { padding-top:32px; padding-bottom:32px; }

/* ---------- SHARED BITS ---------- */
.lego-v7 .kicker { font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:13px; text-transform:uppercase; letter-spacing:2px; margin-bottom:16px; }
.lego-v7 .btn { display:inline-block; font-weight:700; font-size:17px; padding:16px 36px; border-radius:10px; text-decoration:none; border:3px solid var(--ink); }
.lego-v7 .btn.ink { background:var(--ink); color:#fff; }
.lego-v7 .btn.ink:hover { background:var(--blue); color:var(--ink); }
.lego-v7 .btn.green { background:var(--green); color:#fff; }
.lego-v7 .btn.green:hover { background:var(--yellow); color:var(--ink); }
.lego-v7 .btn.yellow { background:var(--yellow); color:var(--ink); }
.lego-v7 .btn.yellow:hover { background:var(--ink); color:#fff; }
.lego-v7 .btn.ghost { background:transparent; color:var(--ink); margin-left:12px; }
.lego-v7 .btn.ghost:hover { background:var(--ink); color:#fff; }

/* Pills: one set. stage=blue, spec=yellow, topic=violet, kind=green tint, video/text=format */
.lego-v7 .pill { display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:1px; padding:4px 12px; border-radius:20px; font-family:'IBM Plex Mono',monospace; border:2px solid var(--ink); }
.lego-v7 .pill.stage { background:#e8f7ff; color:#0a6ea8; }
.lego-v7 .pill.spec { background:var(--yellow); color:var(--ink); }
.lego-v7 .pill.topic { background:var(--violet); color:#fff; }
.lego-v7 .pill.kind { background:#e4f9ec; color:#0d7a3f; }
.lego-v7 .pill.video { background:#fff6d6; color:#8a6d00; }
.lego-v7 .pill.text { background:#fff; color:var(--gray); }

/* ---------- S01 HERO BAND / YELLOW ---------- */
.lego-v7 .s01 { background:var(--yellow); border-bottom:3px solid var(--ink); }
.lego-v7 .s01 .kicker { color:var(--ink); }
.lego-v7 .s01 h1 { font-family:'Archivo Black',sans-serif; font-size:clamp(44px,7vw,84px); line-height:1.02; margin-bottom:20px; color:var(--ink); }
.lego-v7 .s01 .sub { font-size:19px; max-width:640px; margin-bottom:32px; color:var(--ink); font-weight:500; }

/* ---------- S02 HERO / PAPER ---------- */
.lego-v7 .s02 { background:var(--paper); }
.lego-v7 .s02 .kicker { color:var(--violet); }
.lego-v7 .s02 h1 { font-family:'Archivo Black',sans-serif; font-size:clamp(36px,5vw,56px); line-height:1.08; margin-bottom:16px; }
.lego-v7 .s02 .sub { color:var(--gray); font-size:18px; max-width:680px; }

/* ---------- 04 / S03 HERO BAND / BLUE ---------- */
.lego-v7 .s03 { background:var(--blue); border-bottom:3px solid var(--ink); }
.lego-v7 .s03 .kicker { color:var(--ink); }
.lego-v7 .s03 h1 { font-family:'Archivo Black',sans-serif; font-size:clamp(44px,7vw,84px); line-height:1.02; margin-bottom:20px; color:#fff; }
.lego-v7 .s03 .sub { font-size:19px; max-width:640px; margin-bottom:32px; color:#fff; font-weight:500; }

/* ---------- 25 / S04 STATS BAR / BLACK ---------- */
.lego-v7 .s04 { background:var(--ink); }
.lego-v7 .s04 .stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:32px; }
.lego-v7 .s04 .stat .n { font-family:'Archivo Black',sans-serif; font-size:clamp(36px,4vw,54px); color:var(--yellow); line-height:1; margin-bottom:8px; }
.lego-v7 .s04 .stat .l { font-family:'IBM Plex Mono',monospace; font-size:13px; color:#cfcfcf; text-transform:uppercase; letter-spacing:1px; }

/* ---------- S05 CARD GRID / PAPER ---------- */
.lego-v7 .s05 { background:var(--paper); }
.lego-v7 .section-head { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:24px; flex-wrap:wrap; gap:8px; }
.lego-v7 .section-head h2 { font-family:'Archivo Black',sans-serif; font-size:clamp(28px,3.5vw,40px); }
.lego-v7 .section-head .count { font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--gray); }
.lego-v7 .group-label { font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:2px; color:var(--gray); margin:32px 0 16px; }
.lego-v7 .group-label:first-of-type { margin-top:0; }
.lego-v7 .cards { display:grid; gap:16px; }
.lego-v7 .card { background:#fff; border:3px solid var(--ink); border-radius:10px; padding:22px 26px; text-decoration:none; color:var(--ink); display:block; }
.lego-v7 .card:hover { background:var(--yellow); }
.lego-v7 .card .t { font-weight:700; font-size:18px; margin-bottom:8px; }
.lego-v7 .card .d { font-size:15px; color:var(--gray); margin-bottom:12px; }
.lego-v7 .meta { font-size:12px; color:var(--gray); display:flex; flex-wrap:wrap; gap:8px; align-items:center; }

/* ---------- S06 FEATURE BAND / BLUE ---------- */
.lego-v7 .s06 { background:var(--blue); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); }
.lego-v7 .s06 .section-head h2 { color:#fff; }
.lego-v7 .s06 .section-head .count { color:#fff; }
.lego-v7 .s06 .group-label { color:#fff; }
.lego-v7 .s06 .card:hover { background:var(--yellow); }

/* ---------- S07 STEPS ---------- */
.lego-v7 .s07 { background:var(--paper); }
.lego-v7 .start-here { display:grid; gap:16px; }
.lego-v7 .step { background:#fff; border:3px solid var(--ink); border-radius:10px; padding:26px 28px; text-decoration:none; color:var(--ink); display:flex; gap:20px; align-items:flex-start; }
.lego-v7 .step:hover { background:var(--yellow); }
.lego-v7 .step .num { font-family:'Archivo Black',sans-serif; font-size:40px; color:var(--blue); min-width:56px; line-height:1; }
.lego-v7 .step .t { font-weight:700; font-size:19px; margin-bottom:6px; }
.lego-v7 .step .d { font-size:15px; color:var(--gray); }

/* ---------- S08 EPISODE FEATURE / BLACK ---------- */
.lego-v7 .s08 { background:var(--ink); }
.lego-v7 .s08 .kicker { color:var(--yellow); }
.lego-v7 .s08 h2 { font-family:'Archivo Black',sans-serif; font-size:clamp(28px,3.5vw,40px); color:#fff; margin-bottom:24px; }
.lego-v7 .video-embed { position:relative; background:#000; border-radius:10px; aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; border:3px solid #fff; margin-bottom:20px; }
.lego-v7 .video-embed .play { width:0; height:0; border-left:44px solid #fff; border-top:28px solid transparent; border-bottom:28px solid transparent; margin-left:10px; }
.lego-v7 .video-embed p { color:#fff; font-family:'IBM Plex Mono',monospace; font-size:12px; opacity:0.7; }
.lego-v7 .episode-title { font-family:'Archivo Black',sans-serif; font-size:22px; color:#fff; margin-bottom:12px; }
.lego-v7 .episode-links { display:flex; gap:20px; flex-wrap:wrap; font-size:15px; font-weight:700; margin-bottom:24px; }
.lego-v7 .episode-links a { color:var(--yellow); }
.lego-v7 .older-label { font-family:'IBM Plex Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:2px; color:#8a8a8a; margin-bottom:12px; }
.lego-v7 .s08 .cards .card { background:#1a1a1a; border-color:#fff; }
.lego-v7 .s08 .cards .card .t { color:#fff; }
.lego-v7 .s08 .cards .card .d { color:#bdbdbd; }
.lego-v7 .s08 .cards .card:hover { background:#2a2a2a; }
.lego-v7 .s08 .meta { color:#8a8a8a; }

/* ---------- S09 CHIP CLOUD ---------- */
.lego-v7 .s09 { background:var(--paper); }
.lego-v7 .s09.yellow { background:var(--yellow); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); }
.lego-v7 .chip-row { display:flex; flex-wrap:wrap; gap:12px; }
.lego-v7 .chip { background:#fff; border:3px solid var(--ink); border-radius:24px; padding:10px 22px; font-weight:700; font-size:15px; text-decoration:none; color:var(--ink); }
.lego-v7 .chip:hover { background:var(--ink); color:#fff; }
.lego-v7 .s09.yellow .chip:hover { background:var(--ink); color:var(--yellow); }

/* ---------- S10 FILTER DECK ---------- */
.lego-v7 .s10 { background:var(--paper); }
.lego-v7 .filters { padding:8px 0 16px; display:flex; flex-wrap:wrap; gap:12px; align-items:end; }
.lego-v7 .filter-group { display:flex; flex-direction:column; gap:6px; }
.lego-v7 .filter-group label { font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:1px; color:var(--gray); }
.lego-v7 .filter-group select { padding:12px 16px; font-size:16px; border:3px solid var(--ink); border-radius:8px; background:#fff; min-width:200px; font-family:'Inter',sans-serif; font-weight:600; }
.lego-v7 .result-count { padding:12px 0 0; color:var(--gray); font-size:14px; font-family:'IBM Plex Mono',monospace; }
.lego-v7 .no-results { padding:40px; text-align:center; color:var(--gray); }

/* ---------- 39 / S11 A-Z DIRECTORY ---------- */
.lego-v7 .s11 { background:var(--paper); }
.lego-v7 .az-list { columns:3; column-gap:32px; padding-bottom:16px; }
@media (max-width:800px){ .lego-v7 .az-list { columns:2; } }
@media (max-width:520px){ .lego-v7 .az-list { columns:1; } }
.lego-v7 .az-list a { display:block; padding:10px 4px; text-decoration:none; color:var(--ink); font-weight:700; font-size:16px; break-inside:avoid; border-bottom:2px solid var(--line); }
.lego-v7 .az-list a:hover { color:var(--blue); }
.lego-v7 .az-list a.hidden { display:none; }

/* ---------- S12 ARTICLE BODY ---------- */
.lego-v7 .s12 { background:var(--paper); }
.lego-v7 .s12 h2 { font-family:'Archivo Black',sans-serif; font-size:26px; margin:40px 0 16px; }
.lego-v7 .summary { font-size:18px; background:#fff; border:3px solid var(--ink); border-left:12px solid var(--blue); padding:22px 26px; border-radius:0 10px 10px 0; margin-bottom:32px; font-weight:500; }
.lego-v7 .chapters { list-style:none; margin-bottom:8px; }
.lego-v7 .chapters li { padding:12px 0; border-bottom:2px solid var(--line); display:flex; gap:16px; font-size:16px; }
.lego-v7 .chapters .ts { font-family:'IBM Plex Mono',monospace; font-weight:600; color:var(--blue); min-width:56px; }
.lego-v7 .transcript-toggle { display:inline-block; margin:12px 0 0; padding:14px 28px; border:3px solid var(--ink); border-radius:8px; background:var(--yellow); font-weight:700; font-size:16px; cursor:pointer; font-family:'Inter',sans-serif; }
.lego-v7 .transcript { background:#fff; border:3px solid var(--ink); border-radius:10px; padding:28px; margin-top:16px; font-size:16px; }
.lego-v7 .transcript p { margin-bottom:14px; }
.lego-v7 .transcript .speaker { font-weight:700; }
.lego-v7:where(:not(.lego-home)) .prose p { margin-bottom:16px; font-size:17px; }
.lego-v7:where(:not(.lego-home)) .prose ul { margin:0 0 16px 22px; font-size:17px; }
.lego-v7:where(:not(.lego-home)) .prose li { margin-bottom:8px; }

/* ---------- S13 TOOL LAB ---------- */
.lego-v7 .s13 { background:var(--paper); }
.lego-v7 .tool { background:#fff; border:3px solid var(--ink); border-radius:10px; padding:32px; margin:8px 0; }
.lego-v7 .tool-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:640px){ .lego-v7 .tool-grid { grid-template-columns:1fr; } }
.lego-v7 .field { display:flex; flex-direction:column; gap:6px; margin-bottom:4px; }
.lego-v7 .field label { font-size:13px; font-weight:700; }
.lego-v7 .field input, .lego-v7 .field select { padding:14px 16px; font-size:17px; border:3px solid var(--ink); border-radius:8px; font-family:'Inter',sans-serif; background:#fff; width:100%; }
.lego-v7 .run { margin-top:16px; width:100%; padding:16px; background:var(--blue); border:3px solid var(--ink); border-radius:8px; font-weight:700; font-size:18px; cursor:pointer; font-family:'Inter',sans-serif; }
.lego-v7 .run:hover { background:var(--yellow); }
.lego-v7 .results { margin-top:24px; display:none; }
.lego-v7 .results.show { display:block; }
.lego-v7 .verdict { background:var(--yellow); border:3px solid var(--ink); border-radius:8px; padding:22px 24px; margin-top:8px; font-size:16px; }
.lego-v7 .verdict strong { display:block; margin-bottom:8px; font-size:18px; font-family:'Archivo Black',sans-serif; }
.lego-v7 .inputs-explained { display:grid; gap:10px; }
.lego-v7 .inputs-explained .row { background:#fff; border:3px solid var(--ink); border-radius:8px; padding:16px 20px; font-size:15px; }
.lego-v7 .inputs-explained .row strong { display:block; margin-bottom:2px; }
.lego-v7 .boundaries { background:#fff; border:3px solid var(--ink); border-radius:10px; padding:24px 26px; }
.lego-v7 .boundaries ul { margin:10px 0 0 20px; font-size:16px; }
.lego-v7 .boundaries li { margin-bottom:8px; }

/* ---------- S14 QUOTE BAND ---------- */
.lego-v7 .s14 { background:var(--violet); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); }
.lego-v7 .s14 blockquote { font-family:'Archivo Black',sans-serif; font-size:clamp(24px,3.5vw,40px); color:#fff; line-height:1.25; max-width:900px; }
.lego-v7 .s14 cite { display:block; margin-top:16px; font-family:'IBM Plex Mono',monospace; font-style:normal; font-size:14px; color:#fff; opacity:0.85; }

/* ---------- S15 CTA BAND / BLACK ---------- */
.lego-v7 .s15 { background:var(--ink); }
.lego-v7 .s15 h2 { font-family:'Archivo Black',sans-serif; font-size:clamp(32px,4.5vw,52px); color:#fff; margin-bottom:16px; }
.lego-v7 .s15 p { color:#cfcfcf; margin-bottom:28px; font-size:18px; max-width:600px; }

/* ---------- S16 ARTICLE META ---------- */
.lego-v7 .s16 { background:var(--paper); }
.lego-v7 .breadcrumb { font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--gray); padding:24px 0; }
.lego-v7 .breadcrumb a { color:var(--gray); }
.lego-v7 .freshness { font-size:13px; color:var(--gray); font-family:'IBM Plex Mono',monospace; }
.lego-v7 .author { font-size:15px; font-weight:700; margin:6px 0 24px; }

/* ---------- S17 RELATED RAIL ---------- */
.lego-v7 .s17 { background:var(--paper); }
.lego-v7 .rel-list { display:grid; gap:12px; }
.lego-v7 .rel-list a { background:#fff; border:3px solid var(--ink); border-radius:10px; padding:16px 22px; text-decoration:none; color:var(--ink); font-weight:700; font-size:16px; display:block; }
.lego-v7 .rel-list a:hover { background:var(--yellow); }
.lego-v7 .rel-list .kind { font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:2px; color:var(--violet); display:block; margin-bottom:4px; }

/* ---------- S19 FORM BLOCK ---------- */
.lego-v7 .s19 { background:var(--paper); }
.lego-v7 .form-panel { background:#fff; border:3px solid var(--ink); border-radius:10px; padding:32px; max-width:720px; }
.lego-v7 .form-panel h3 { font-family:'Archivo Black',sans-serif; font-size:24px; margin-bottom:8px; }
.lego-v7 .form-panel .form-sub { color:var(--gray); font-size:15px; margin-bottom:24px; }
.lego-v7 .form-panel .field { margin-bottom:18px; }
.lego-v7 .form-panel .field label { display:block; font-size:13px; font-weight:700; margin-bottom:6px; }
.lego-v7 .form-panel .field input, .lego-v7 .form-panel .field textarea, .lego-v7 .form-panel .field select { width:100%; padding:14px 16px; font-size:16px; border:3px solid var(--ink); border-radius:8px; font-family:'Inter',sans-serif; background:#fff; }
.lego-v7 .form-panel .field textarea { min-height:120px; resize:vertical; }
.lego-v7 .form-panel .field .hint { font-size:13px; color:var(--gray); margin-top:6px; }
.lego-v7 .form-submit { display:inline-block; background:var(--ink); color:#fff; font-weight:700; font-size:17px; padding:16px 40px; border-radius:10px; border:3px solid var(--ink); cursor:pointer; font-family:'Inter',sans-serif; }
.lego-v7 .form-submit:hover { background:var(--blue); color:var(--ink); }

/* ---------- 29 / S20 EMAIL CAPTURE (homepage centered variant below) ---------- */
.lego-v7 .s20 { background:var(--ink); }
.lego-v7 .s20 h2 { font-family:'Archivo Black',sans-serif; font-size:clamp(28px,3.5vw,40px); color:#fff; margin-bottom:12px; }
.lego-v7:where(:not(.lego-home)) .s20 p { color:#cfcfcf; font-size:17px; margin-bottom:24px; max-width:560px; }
.lego-v7:where(:not(.lego-home)) .capture-row { display:flex; gap:12px; flex-wrap:wrap; max-width:560px; }
.lego-v7 .capture-row input { flex:1; min-width:240px; padding:16px 20px; font-size:17px; border:3px solid #fff; border-radius:10px; font-family:'Inter',sans-serif; }
.lego-v7 .capture-row button { background:var(--yellow); color:var(--ink); font-weight:700; font-size:17px; padding:16px 32px; border-radius:10px; border:3px solid #fff; cursor:pointer; font-family:'Inter',sans-serif; }
.lego-v7 .capture-row button:hover { background:#fff; }

/* ---------- COLORWAY MODIFIERS ---------- */
.lego-v7 .band.blue { background:var(--blue); }
.lego-v7 .band.yellow { background:var(--yellow); }
.lego-v7 .band.black { background:var(--ink); }
.lego-v7 .band.violet { background:var(--violet); }
.lego-v7 .band.paper { background:var(--paper); }
.lego-v7 .band.violet h2, .lego-v7 .band.violet p, .lego-v7 .band.violet .prose, .lego-v7 .band.violet blockquote, .lego-v7 .band.violet cite { color:#fff; }
.lego-v7 .band.black details, .lego-v7 .band.black summary { color:#fff; }
.lego-v7 .band.black summary strong { color:#fff; }
.lego-v7 .band.blue .az-list a { color:var(--ink); }

/* ---------- 42 FOR / NOT-FOR SPLIT ---------- */
.lego-v7 .fornot { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.lego-v7 .for-box, .lego-v7 .not-box { border:3px solid var(--ink); border-radius:10px; padding:28px; }
.lego-v7 .for-box { background:var(--green); }
.lego-v7 .not-box { background:#E5243B; }
.lego-v7 .for-box h3, .lego-v7 .not-box h3 { font-family:'Archivo Black',sans-serif; font-size:22px; margin-bottom:14px; }
.lego-v7 .for-box h3 { color:var(--ink); }
.lego-v7 .not-box h3 { color:#fff; }
.lego-v7 .for-box ul, .lego-v7 .not-box ul { list-style:none; }
.lego-v7 .for-box li { margin-bottom:10px; font-weight:500; color:var(--ink); }
.lego-v7 .not-box li { margin-bottom:10px; font-weight:500; color:#fff; }
@media (max-width:640px){ .lego-v7 .fornot { grid-template-columns:1fr; } }

/* ---------- VIDEO, RIBBON, QUOTE, AUTHOR, PRODUCT, RELATED CARDS ---------- */
.lego-v7 .video-minimal { position:relative; border-radius:10px; overflow:hidden; border:3px solid var(--ink); aspect-ratio:16/9; background:#222; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.lego-v7 .video-minimal .play { position:relative; width:88px; height:88px; background:#fff; border-radius:50%; border:3px solid var(--ink); display:flex; align-items:center; justify-content:center; }
.lego-v7 .video-minimal .play::after { content:''; border-left:28px solid var(--ink); border-top:16px solid transparent; border-bottom:16px solid transparent; margin-left:8px; }
.lego-v7 .video-minimal:hover .play { background:var(--yellow); }
.lego-v7 .ribbon-callout { position:relative; background:#fff; border:3px solid var(--ink); border-radius:10px; padding:36px 24px 24px; margin:32px auto; max-width:640px; }
.lego-v7 .ribbon-callout .ribbon { position:absolute; top:-3px; left:24px; background:var(--blue); color:var(--ink); font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:12px; letter-spacing:2px; padding:8px 18px; border:3px solid var(--ink); border-radius:0 0 8px 8px; text-transform:uppercase; }
.lego-v7 .ribbon-callout h4 { font-family:'Archivo Black',sans-serif; font-size:20px; margin-bottom:8px; }
.lego-v7 .ribbon-callout p { color:var(--gray); font-size:15px; margin-bottom:12px; }
.lego-v7 .ribbon-callout a.go { font-weight:700; color:var(--ink); text-decoration:underline; text-decoration-thickness:3px; text-underline-offset:4px; }
.lego-v7 .quote-subtle { border-left:6px solid #d9d9d9; padding:8px 0 8px 28px; margin:36px 0; }
.lego-v7 .quote-subtle .src { font-size:14px; margin-bottom:10px; color:var(--gray); }
.lego-v7 .quote-subtle .src a { color:var(--blue); font-weight:600; }
.lego-v7 .quote-subtle blockquote { font-size:20px; font-style:italic; color:#444; line-height:1.6; }
.lego-v7 .quote-subtle cite { display:block; margin-top:10px; font-style:normal; font-size:14px; color:var(--gray); }
.lego-v7 .author-box { background:#fff; border:3px solid var(--ink); border-radius:16px; padding:44px 32px; text-align:center; max-width:660px; margin:56px auto; }
.lego-v7 .author-box .avatar { width:120px; height:120px; border-radius:50%; background:var(--blue); border:3px solid var(--ink); margin:0 auto 18px; display:flex; align-items:center; justify-content:center; font-family:'Archivo Black',sans-serif; font-size:36px; color:var(--ink); }
.lego-v7 .author-box h3 { font-family:'Archivo Black',sans-serif; font-size:26px; margin-bottom:12px; }
.lego-v7 .author-box p { color:var(--gray); font-size:16px; line-height:1.7; }
.lego-v7 .featured-product { text-align:center; }
.lego-v7 .featured-product .fp-card { background:#fff; border:3px solid var(--ink); border-radius:12px; padding:36px; max-width:560px; margin:24px auto 0; }
.lego-v7 .featured-product .fp-img { width:100%; aspect-ratio:16/9; background:var(--blue); border:3px solid var(--ink); border-radius:8px; margin-bottom:20px; display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:13px; }
.lego-v7 .featured-product h3 { font-family:'Archivo Black',sans-serif; font-size:24px; margin-bottom:10px; }
.lego-v7 .featured-product p { color:var(--gray); margin-bottom:20px; }
.lego-v7 .rel-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.lego-v7 .rel-card { text-decoration:none; color:var(--ink); }
.lego-v7 .rel-card .thumb { aspect-ratio:16/10; background:var(--blue); border:3px solid var(--ink); border-radius:8px; margin-bottom:10px; }
.lego-v7 .rel-card .t { font-weight:700; font-size:15px; line-height:1.4; }
@media (max-width:700px){ .lego-v7 .rel-cards { grid-template-columns:repeat(2,1fr); } }

/* ---------- COLOR EXPANSION ---------- */
.lego-v7 .band.green { background:var(--green); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); }
.lego-v7 .band.green h2, .lego-v7 .band.green .section-head .count { color:var(--ink); }
.lego-v7 .band.green .card:hover { background:var(--ink); }
.lego-v7 .band.green .card:hover .t, .lego-v7 .band.green .card:hover .d { color:#fff; }
.lego-v7 .band.violet .card:hover { background:var(--ink); }
.lego-v7 .band.violet .card:hover .t, .lego-v7 .band.violet .card:hover .d { color:#fff; }
.lego-v7 .band.violet .section-head .count { color:#fff; }
.lego-v7 .band.red { background:var(--red); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); }
.lego-v7 .band.red h2, .lego-v7 .band.red p { color:#fff; }
.lego-v7 .band.red .kicker { color:#fff; }

/* ---------- S21 HERO BAND / GREEN ---------- */
.lego-v7 .s21 { background:var(--green); border-bottom:3px solid var(--ink); }
.lego-v7 .s21 .kicker { color:var(--ink); }
.lego-v7 .s21 h1 { font-family:'Archivo Black',sans-serif; font-size:clamp(44px,7vw,84px); line-height:1.02; margin-bottom:20px; color:var(--ink); }
.lego-v7 .s21 .sub { font-size:19px; max-width:640px; margin-bottom:32px; color:var(--ink); font-weight:500; }

/* ---------- S22 CTA BAND / VIOLET ---------- */
.lego-v7 .s22 { background:var(--violet); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); }
.lego-v7 .s22 h2 { font-family:'Archivo Black',sans-serif; font-size:clamp(32px,4.5vw,52px); color:#fff; margin-bottom:16px; }
.lego-v7 .s22 p { color:#fff; opacity:0.92; margin-bottom:28px; font-size:18px; max-width:600px; }

/* ---------- TOP-5 LIST ---------- */
.lego-v7 .top5 { display:grid; }
.lego-v7 .top5-row { display:flex; gap:24px; padding:26px 4px; border-bottom:2px solid var(--line); align-items:flex-start; text-decoration:none; color:var(--ink); }
.lego-v7 .top5-row:last-child { border-bottom:none; }
.lego-v7 a.top5-row:hover .t { color:var(--blue); }
.lego-v7 .top5-num { font-family:'Archivo Black',sans-serif; font-size:46px; color:var(--violet); line-height:1; min-width:66px; }
.lego-v7 .top5-row .t { display:block; font-weight:700; font-size:19px; margin-bottom:4px; }
.lego-v7 .top5-row .d { display:block; color:var(--gray); font-size:15px; }
.lego-v7 .top5-cards { display:grid; gap:16px; }
.lego-v7 .top5-card { background:#fff; border:3px solid var(--ink); border-radius:10px; padding:24px 26px; display:flex; gap:20px; align-items:flex-start; text-decoration:none; color:var(--ink); }
.lego-v7 .top5-card:hover { background:var(--ink); }
.lego-v7 .top5-card:hover .t, .lego-v7 .top5-card:hover .d { color:#fff; }
.lego-v7 .top5-card .top5-num { font-size:38px; color:var(--green); min-width:56px; }
.lego-v7 .top5-card .t { font-weight:700; font-size:18px; margin-bottom:4px; }
.lego-v7 .top5-card .d { color:var(--gray); font-size:15px; }

/* ---------- V3 FIXES ---------- */
.lego-v7 .band.s15.blue { background:var(--blue); }
.lego-v7 .band.s15.blue h2, .lego-v7 .band.s15.blue p { color:#fff; }
.lego-v7 .band.s15.yellow { background:var(--yellow); }
.lego-v7 .band.s15.yellow h2 { color:var(--ink); }
.lego-v7 .band.s15.yellow p { color:#333; }
.lego-v7 .band.s20.blue { background:var(--blue); }
.lego-v7 .band.s20.blue h2, .lego-v7 .band.s20.blue p { color:#fff; }
.lego-v7 .band.s20.blue .capture-row button { background:var(--ink); color:#fff; border-color:var(--ink); }
.lego-v7 .band.s20.blue .capture-row button:hover { background:#fff; color:var(--ink); }
.lego-v7 .band.s14.yellow { background:var(--yellow); }
.lego-v7 .band.s14.yellow blockquote, .lego-v7 .band.s14.yellow cite { color:var(--ink); }
.lego-v7 .band.s14.blue { background:var(--blue); }
.lego-v7 .band.s14.green { background:var(--green); }
.lego-v7 .band.s14.green blockquote, .lego-v7 .band.s14.green cite { color:var(--ink); }
.lego-v7 .transcript-toggle { background:var(--violet); color:#fff; }
.lego-v7 .transcript-toggle:hover { background:var(--ink); color:#fff; }

/* 26 BIO */
.lego-v7 .bio-center { text-align:center; max-width:600px; margin:0 auto; padding:16px 0; }
.lego-v7 .bio-center .avatar { width:84px; height:84px; border-radius:50%; background:var(--green); border:3px solid var(--ink); margin:0 auto 16px; display:flex; align-items:center; justify-content:center; font-family:'Archivo Black',sans-serif; font-size:28px; color:var(--ink); }
.lego-v7 .bio-center h2 { font-family:'Archivo Black',sans-serif; font-size:clamp(26px,3.5vw,36px); margin-bottom:12px; }
.lego-v7 .bio-center p { color:var(--gray); font-size:16px; line-height:1.65; }
.lego-v7 .band.yellow .bio-center p { color:#3a3a3a; }

.lego-v7 .select-wrap { position:relative; }
.lego-v7 .form-panel .field .select-wrap > select, .lego-v7 .filter-group .select-wrap > select { appearance:none; -webkit-appearance:none; cursor:pointer; width:100%; padding:14px 52px 14px 16px; font-size:16px; font-weight:600; font-family:'Inter',sans-serif; color:var(--ink); background-color:var(--paper); border:3px solid var(--ink); border-radius:8px; }
.lego-v7 .filter-group .select-wrap > select { min-width:200px; }
.lego-v7 .select-wrap::after { content:""; position:absolute; right:20px; top:50%; width:11px; height:11px; border-right:4px solid var(--ink); border-bottom:4px solid var(--ink); transform:translateY(-70%) rotate(45deg); pointer-events:none; }
.lego-v7 .select-wrap:hover::after { border-color:var(--blue); }
.lego-v7 .form-panel .field .select-wrap > select:focus, .lego-v7 .filter-group .select-wrap > select:focus { outline:3px solid var(--blue); outline-offset:2px; }
.lego-v7 .record-btn { display:inline-flex; align-items:center; gap:10px; background:var(--red); color:#fff; font-weight:700; font-size:18px; padding:14px 26px; border:3px solid var(--ink); border-radius:10px; cursor:pointer; font-family:'Inter',sans-serif; margin-bottom:6px; }
.lego-v7 .record-btn:hover { background:var(--ink); }
.lego-v7 .or-divider { display:flex; align-items:center; gap:12px; margin:18px 0; color:var(--gray); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:1px; }
.lego-v7 .or-divider::before, .lego-v7 .or-divider::after { content:""; flex:1; height:2px; background:var(--line); }
.lego-v7 .for-box, .lego-v7 .not-box { background:#fff; border:3px solid var(--ink); border-radius:10px; padding:28px 28px 28px 32px; }
.lego-v7 .for-box { border-left:14px solid var(--green); }
.lego-v7 .not-box { border-left:14px solid var(--red); }
.lego-v7 .for-box h3, .lego-v7 .not-box h3 { color:var(--ink); }
.lego-v7 .for-box li, .lego-v7 .not-box li { color:var(--ink); }
.lego-v7 .ribbon-callout .ribbon { left:-3px; }
.lego-v7 .ribbon-callout h4 { margin-top:10px; }

/* ---------- V7 ADDITIONS ---------- */

/* 55: QA WANT vs DO NOT WANT */
.lego-v7 .qawrap { border:3px solid var(--ink); border-radius:12px; padding:28px; background:#fff; }
.lego-v7 .qawrap h3 { font-family:'Archivo Black',sans-serif; font-size:clamp(19px,2.5vw,24px); margin-bottom:20px; line-height:1.3; }
.lego-v7 .qa-panels { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.lego-v7 .qa-want, .lego-v7 .qa-dont { border:3px solid var(--ink); border-radius:10px; padding:22px 24px; }
.lego-v7 .qa-want { background:#d7f0e0; }
.lego-v7 .qa-dont { background:#f9dfe3; }
.lego-v7 .qa-label { font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:2px; margin-bottom:12px; }
.lego-v7 .qa-panels ul { margin-left:20px; font-size:16px; }
.lego-v7 .qa-panels li { margin-bottom:10px; }
.lego-v7 .qa-panels li:last-child { margin-bottom:0; }
@media (max-width:640px){ .lego-v7 .qa-panels { grid-template-columns:1fr; } }

/* 56: TOPIC-GROUPED QUESTION ACCORDION */
.lego-v7 .topic-acc h2 { font-family:'Archivo Black',sans-serif; font-size:clamp(30px,4.5vw,52px); text-align:center; line-height:1.1; margin-bottom:8px; }
.lego-v7 .topic-acc .rule { border-top:3px solid var(--ink); margin:24px 0 0; }
.lego-v7 .topic-row { border-bottom:2px solid var(--ink); }
.lego-v7 .topic-row summary { list-style:none; display:flex; align-items:center; gap:14px; padding:18px 4px; cursor:pointer; font-weight:700; font-size:18px; }
.lego-v7 .topic-row summary::-webkit-details-marker { display:none; }
.lego-v7 .topic-sq { width:18px; height:18px; border:2px solid var(--ink); flex-shrink:0; }
.lego-v7 .topic-sq.b { background:var(--blue); }
.lego-v7 .topic-sq.y { background:var(--yellow); }
.lego-v7 .topic-sq.v { background:var(--violet); }
.lego-v7 .topic-row summary .tog { margin-left:auto; font-family:'IBM Plex Mono',monospace; font-size:22px; font-weight:500; }
.lego-v7 .topic-row summary .plus::after { content:"+"; }
.lego-v7 .topic-row[open] summary .plus::after { content:"\2013"; }
.lego-v7 .topic-qs { padding:4px 4px 20px 36px; }
.lego-v7 .topic-qs a { display:block; color:var(--ink); font-size:16px; padding:8px 0; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.lego-v7 .topic-qs a:hover { color:var(--blue); }

/* Tag pills (from block 57; block 57 itself is revoked, the pills stay for block 59) */
.lego-v7 .tagpill { font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:1px; padding:5px 14px; border-radius:20px; border:2px solid var(--ink); white-space:nowrap; }
.lego-v7 .tagpill.b { background:var(--blue); color:var(--ink); }
.lego-v7 .tagpill.y { background:var(--yellow); color:var(--ink); }
.lego-v7 .tagpill.v { background:var(--violet); color:var(--ink); }
.lego-v7 .tagpill.w { background:#fff; color:var(--ink); }
.lego-v7 .tagpill.g { background:var(--green); color:var(--ink); }

/* 60: TOP QUESTIONS A, editorial numbered list */
.lego-v7 .tq60 h2 { font-family:'Archivo Black',sans-serif; font-size:clamp(30px,4.5vw,52px); margin-bottom:8px; }
.lego-v7 .tq60 .sub { color:var(--gray); font-size:17px; margin-bottom:36px; max-width:640px; }
.lego-v7 .tq60-row { display:flex; gap:28px; padding:28px 0; border-top:3px solid var(--ink); align-items:flex-start; text-decoration:none; color:var(--ink); }
.lego-v7 .tq60-row:last-child { border-bottom:3px solid var(--ink); }
.lego-v7 .tq60-num { font-family:'Archivo Black',sans-serif; font-size:52px; color:var(--blue); line-height:1; min-width:76px; }
.lego-v7 .tq60-row .t { font-weight:700; font-size:20px; margin-bottom:6px; }
.lego-v7 .tq60-row:hover .t { color:var(--blue); }
.lego-v7 .tq60-row .d { color:var(--gray); font-size:15px; }
.lego-v7 .tq60-row .meta { font-family:'IBM Plex Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:1px; color:var(--violet); margin-top:8px; }

/* 58: FRAMEWORK CARDS (homepage 10 up variant below) */
.lego-v7:where(:not(.lego-home)) .fw-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:800px){ .lego-v7:where(:not(.lego-home)) .fw-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .lego-v7:where(:not(.lego-home)) .fw-grid { grid-template-columns:1fr; } }
.lego-v7 .fw-card { background:#fff; border:3px solid var(--ink); border-radius:10px; overflow:hidden; }
.lego-v7 .fw-card .bar { height:10px; }
.lego-v7 .fw-card .bar.b1 { background:var(--blue); }
.lego-v7 .fw-card .bar.b2 { background:var(--violet); }
.lego-v7 .fw-card .bar.b3 { background:var(--yellow); }
.lego-v7:where(:not(.lego-home)) .fw-card .fw-body { padding:22px 24px; }
.lego-v7:where(:not(.lego-home)) .fw-card .t { font-family:'Archivo Black',sans-serif; font-size:20px; margin-bottom:8px; line-height:1.25; }
.lego-v7:where(:not(.lego-home)) .fw-card .d { font-size:15px; color:var(--gray); }

/* 59: RECOMMENDED PARTNER CARDS */
.lego-v7 .rec-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:900px){ .lego-v7 .rec-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .lego-v7 .rec-grid { grid-template-columns:1fr; } }
.lego-v7 .rec-card { background:#fff; border:3px solid var(--ink); border-radius:10px; padding:22px; display:flex; flex-direction:column; }
.lego-v7 .rec-logo { border:3px solid var(--ink); border-radius:8px; background:#fff; min-height:120px; display:flex; align-items:center; justify-content:center; padding:20px; margin-bottom:16px; text-align:center; }
.lego-v7 .rec-logo .lg { font-family:'Archivo Black',sans-serif; font-size:20px; line-height:1.3; }
.lego-v7 .rec-logo .lg small { display:block; font-family:'IBM Plex Mono',monospace; font-weight:500; font-size:11px; letter-spacing:2px; margin-top:6px; }
.lego-v7 .rec-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.lego-v7 .rec-tags .tagpill { font-size:10px; }
.lego-v7 .rec-card h3 { font-family:'Archivo Black',sans-serif; font-size:22px; margin-bottom:10px; line-height:1.25; }
.lego-v7 .rec-card p { font-size:15px; color:var(--ink); margin-bottom:20px; flex:1; }
.lego-v7 .rec-cta { display:block; text-align:center; background:var(--ink); color:#fff; font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:13px; letter-spacing:1px; padding:14px 20px; border-radius:8px; text-decoration:none; border:3px solid var(--ink); }
.lego-v7 .rec-cta:hover { background:var(--blue); color:var(--ink); }

/* ============================================================
   HOMEPAGE VARIANTS (.lego-home)
   ============================================================ */

/* PODCAST PLAYER BAND (Captivate embed) */
.lego-v7.lego-home .podband { background:var(--ink); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); }
.lego-v7.lego-home .podband .kicker { color:var(--yellow); }
.lego-v7.lego-home .podband h2 { font-family:'Archivo Black',sans-serif; font-size:clamp(28px,3.5vw,40px); color:#fff; margin-bottom:16px; }
.lego-v7.lego-home .podband .lede { color:#cfcfcf; font-size:17px; max-width:640px; margin-bottom:28px; }
.lego-v7 .captivate-player iframe { width:100%; height:200px; border:3px solid #fff; border-radius:10px; background:#000; display:block; }
.lego-v7.lego-home .pod-links { display:flex; gap:24px; flex-wrap:wrap; margin-top:20px; font-size:15px; font-weight:700; }
.lego-v7.lego-home .pod-links a { color:var(--yellow); }

/* 58 FRAMEWORK CARDS, 10 up variant */
.lego-v7.lego-home .fw-sec { background:var(--paper); }
.lego-v7.lego-home .fw-sec .kicker { color:var(--violet); }
.lego-v7.lego-home .fw-sec h2 { font-family:'Archivo Black',sans-serif; font-size:clamp(28px,3.5vw,40px); margin-bottom:12px; }
.lego-v7.lego-home .fw-sec .fw-sub { color:var(--gray); font-size:17px; max-width:680px; margin-bottom:32px; }
.lego-v7.lego-home .fw-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
@media (max-width:1000px){ .lego-v7.lego-home .fw-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px){ .lego-v7.lego-home .fw-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:440px){ .lego-v7.lego-home .fw-grid { grid-template-columns:1fr; } }
.lego-v7.lego-home .fw-card .fw-body { padding:20px 20px; }
.lego-v7.lego-home .fw-card .t { font-family:'Archivo Black',sans-serif; font-size:17px; margin-bottom:8px; line-height:1.25; }
.lego-v7.lego-home .fw-card .d { font-size:14px; color:var(--gray); }

/* ASK / FHA / CONTRIBUTE three box band, yellow */
.lego-v7.lego-home .ask3band { background:var(--yellow); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); }
.lego-v7.lego-home .ask3band h2 { font-family:'Archivo Black',sans-serif; font-size:clamp(28px,3.5vw,40px); margin-bottom:12px; color:var(--ink); }
.lego-v7.lego-home .ask3band .lede { font-size:17px; max-width:640px; margin-bottom:8px; color:var(--ink); }
.lego-v7.lego-home .ask3 { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:28px; }
@media (max-width:700px){ .lego-v7.lego-home .ask3 { grid-template-columns:1fr; } }
.lego-v7.lego-home .ask3 .card { background:#fff; border:3px solid var(--ink); border-radius:10px; padding:26px; text-decoration:none; color:var(--ink); display:block; }
.lego-v7.lego-home .ask3 .card:hover { background:var(--ink); }
.lego-v7.lego-home .ask3 .card:hover .t, .lego-v7.lego-home .ask3 .card:hover .d { color:#fff; }
.lego-v7.lego-home .ask3 .card .t { font-weight:700; font-size:19px; margin-bottom:8px; }
.lego-v7.lego-home .ask3 .card .d { font-size:15px; color:var(--gray); margin-bottom:16px; }
.lego-v7.lego-home .ask3 .card .go { font-weight:700; color:var(--blue); font-size:15px; }
.lego-v7.lego-home .ask3 .card:hover .go { color:var(--yellow); }

/* 19 FAQ BLUE */
.lego-v7.lego-home .faqblue { background:var(--blue); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); }
.lego-v7.lego-home .faqblue h2 { font-family:'Archivo Black',sans-serif; font-size:clamp(28px,3.5vw,40px); color:#fff; margin-bottom:24px; }
.lego-v7.lego-home .faqblue details { background:#fff; border:3px solid var(--ink); border-radius:10px; padding:18px 22px; margin-bottom:14px; }
.lego-v7.lego-home .faqblue summary { font-weight:700; font-size:17px; cursor:pointer; }
.lego-v7.lego-home .faqblue .prose p { margin-top:10px; font-size:16px; color:var(--ink); }

/* 29 CURBSIDE, centered variant */
.lego-v7.lego-home .s20 { background:var(--ink); text-align:center; }
.lego-v7.lego-home .s20 p { color:#cfcfcf; font-size:17px; margin-bottom:24px; max-width:560px; margin-left:auto; margin-right:auto; }
.lego-v7.lego-home .capture-row { display:flex; gap:12px; flex-wrap:wrap; max-width:560px; margin:0 auto; justify-content:center; }

/* ============================================================
   UNLOCKED ONLY (.lego-unlocked)
   ============================================================ */
.lego-v7.lego-unlocked .band.blue .section-head h2 { color:var(--ink); }

/* FAQ details */
.lego-v7.lego-unlocked details { border-bottom:2px solid var(--line); padding:18px 4px; }
.lego-v7.lego-unlocked details summary { font-size:17px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.lego-v7.lego-unlocked details summary::-webkit-details-marker { display:none; }
.lego-v7.lego-unlocked details summary::after { content:"+"; font-family:'IBM Plex Mono',monospace; font-size:20px; font-weight:600; }
.lego-v7.lego-unlocked details[open] summary::after { content:"\2013"; }
.lego-v7.lego-unlocked details .prose { padding-top:12px; }
.lego-v7.lego-unlocked .band.blue details { border-color:rgba(4,4,4,0.25); }

/* ============================================================
   BATCH A: SPECIALTY TEMPLATES (2026-10-02)
   specialty-door, stage-shell, specialties, stage.
   Reuses 04 / 09 / 38 / 39 / 50 / 56 / 60 primitives above;
   only the glue those pages need lives here.
   ============================================================ */

/* Theme JS toggles [hidden]; it must beat Lego display rules */
.lego-v7 [hidden] { display:none !important; }

/* 04 hero: breadcrumb carried in the mono kicker (stage page) */
.lego-v7 .s03 .crumb a { color:var(--ink); text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.lego-v7 .s03 .crumb a:hover { color:#fff; }

/* 09: card titles carried as headings keep the card title look */
.lego-v7 .card h2.t, .lego-v7 .card h3.t { font-family:'Inter',-apple-system,sans-serif; }
.lego-v7 .section-lede { color:var(--gray); font-size:17px; max-width:640px; margin:-8px 0 24px; }

/* Button row (stage shell CTAs, top 5 record CTA) */
.lego-v7 .action-row { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.lego-v7 .action-row .btn.ghost { margin-left:0; }
.lego-v7 a.record-btn { text-decoration:none; }
.lego-v7 .tq60-cta { margin-top:28px; }
.lego-v7 .tq60-cta p { font-weight:700; font-size:18px; }

/* 60: non-link rows (no hover color shift) */
.lego-v7 div.tq60-row:hover .t { color:var(--ink); }

/* 56: plain question items (no links yet) */
.lego-v7 .topic-qs span { display:block; color:var(--ink); font-size:16px; padding:8px 0; }

/* 38: search input styled as a filter deck control */
.lego-v7 .spec-search-group { width:100%; max-width:520px; }
.lego-v7 .spec-search { width:100%; padding:14px 16px; font-size:16px; font-weight:600; font-family:'Inter',sans-serif; color:var(--ink); background:#fff; border:3px solid var(--ink); border-radius:8px; }
.lego-v7 .spec-search:focus { outline:3px solid var(--blue); outline-offset:2px; }
.lego-v7 .spec-suggest { display:none; background:#fff; border:3px solid var(--ink); border-radius:8px; overflow:hidden; }
.lego-v7 .spec-suggest.is-open { display:grid; }
.lego-v7 .spec-suggest button { padding:12px 16px; border:0; border-bottom:2px solid var(--line); background:transparent; text-align:left; font-family:'IBM Plex Mono',monospace; font-size:14px; font-weight:600; color:var(--ink); cursor:pointer; }
.lego-v7 .spec-suggest button:last-child { border-bottom:0; }
.lego-v7 .spec-suggest button:hover { background:var(--yellow); }

/* 39: A-Z directory as a JS driven list (li items, not links) */
.lego-v7 ul.az-list { list-style:none; margin-top:16px; }
.lego-v7 .az-list li { display:block; padding:10px 4px; color:var(--ink); font-weight:700; font-size:16px; break-inside:avoid; border-bottom:2px solid var(--line); cursor:pointer; }
.lego-v7 .az-list li:hover, .lego-v7 .az-list li:focus { color:var(--blue); outline:none; }
.lego-v7 .az-list li.is-selected { color:var(--blue); text-decoration:underline; text-decoration-thickness:3px; text-underline-offset:4px; }

/* Specialty finder results: hit card (09) and miss panel (28) */
.lego-v7 .spec-hit { max-width:720px; margin-bottom:16px; }
.lego-v7 .spec-hit .btn { margin-top:4px; }
.lego-v7 .miss-actions { display:grid; gap:20px; }

/* Legacy partials embedded in Lego pages (speakpipe, artifact-upload).
   The .lego-v7 reset strips their screen.css spacing; restore it in Lego terms. */
.lego-v7 .ff-btn { display:inline-flex; align-items:center; gap:10px; min-height:0; font-family:'Inter',sans-serif; font-weight:700; font-size:17px; letter-spacing:normal; text-transform:none; line-height:1.3; padding:16px 36px; border:3px solid var(--ink); border-radius:10px; background:var(--ink); color:#fff; text-decoration:none; cursor:pointer; white-space:nowrap; }
.lego-v7 .ff-btn:hover { background:var(--blue); color:var(--ink); transform:none; box-shadow:none; }
.lego-v7 .ff-btn--record { background:var(--red); color:#fff; font-size:18px; padding:14px 26px; }
.lego-v7 .ff-btn--record:hover { background:var(--ink); color:#fff; }
.lego-v7 .ff-note { font-size:13px; color:var(--gray); margin-top:6px; font-weight:400; }
.lego-v7 .ff-form.ff-card { display:grid; gap:6px; min-height:0; padding:20px 0 0; background:transparent; border:0; border-top:2px solid var(--line); border-radius:0; }
.lego-v7 .ff-form.ff-card:hover { transform:none; box-shadow:none; }
.lego-v7 .ff-form label { font-size:13px; font-weight:700; margin-top:10px; }
.lego-v7 .ff-form input { width:100%; min-height:0; padding:14px 16px; font-size:16px; font-family:'Inter',sans-serif; border:3px solid var(--ink); border-radius:8px; background:#fff; color:var(--ink); }
.lego-v7 .ff-form input:focus { outline:3px solid var(--blue); outline-offset:2px; }
.lego-v7 .ff-form .ff-req { font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:1px; color:var(--gray); margin-left:6px; }
.lego-v7 .ff-success { padding:16px; border:3px solid var(--ink); border-radius:8px; background:#e4f9ec; font-weight:600; }
.lego-v7 .ff-go-row { margin-top:16px; }

/* ============================================================
   BATCH B: FRAMEWORK DETAIL PAGES (2026-10-02)
   framework-detail-page shell + the nine fw-* fills.
   Reuses 04 / 08 / 09 / 12 / 14 / 18 / 22 / 42 primitives above;
   only the glue those pages need lives here.
   ============================================================ */

/* 18: details chrome, same pattern as the unlocked FAQ */
.lego-v7.lego-framework-detail details { border-bottom:2px solid rgba(4,4,4,0.25); padding:18px 4px; }
.lego-v7.lego-framework-detail details summary { font-size:17px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.lego-v7.lego-framework-detail details summary::-webkit-details-marker { display:none; }
.lego-v7.lego-framework-detail details summary::after { content:"+"; font-family:'IBM Plex Mono',monospace; font-size:20px; font-weight:600; }
.lego-v7.lego-framework-detail details[open] summary::after { content:"\2212"; }
.lego-v7.lego-framework-detail details .prose { padding-top:12px; }

/* 42: one column when a page carries only the not-for side */
.lego-v7 .fornot.single { grid-template-columns:1fr; }
.lego-v7 .for-box p, .lego-v7 .not-box p { font-weight:500; color:var(--ink); }

/* 14: steps that do not link keep their resting look */
.lego-v7 div.step:hover { background:#fff; }

/* Inline links inside prose */
.lego-v7.lego-framework-detail .prose a { color:var(--ink); font-weight:600; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.lego-v7.lego-framework-detail .prose a:hover { color:var(--blue); }

/* ============================================================
   BATCH C: DISABILITY HUB (2026-10-02)
   disability-page. Reuses 04 / 08 / 09 / 10 primitives above;
   only the glue that page needs lives here.
   ============================================================ */

/* 10: section lede on blue reads white, same as the s06 heading */
.lego-v7 .s06 .section-lede { color:#fff; }

/* ============================================================
   BATCH D: CONVERTER PAGES (2026-10-02)
   submit-page, planner-page, hire-planner-page.
   Reuses 04 / 08 / 09 / 10 / 11 / 12 / 14 / 17 / 18 / 22 / 28 /
   32 / 42 / 55 primitives above; only the glue those pages need
   lives here.
   ============================================================ */

/* 28: panel title kept as an H2, same look as the block's h3 */
.lego-v7 .form-panel h2 { font-family:'Archivo Black',sans-serif; font-size:24px; margin-bottom:8px; }

/* 14: a step that carries its own button or record link */
.lego-v7 .step .step-go { margin-top:14px; }

/* 32: subheads, ordered lists and data tables inside the article body */
.lego-v7 .s12 h3 { font-family:'Archivo Black',sans-serif; font-size:20px; margin:28px 0 12px; }
.lego-v7 .s12 .prose ol { margin:0 0 16px 22px; font-size:17px; }
.lego-v7 .table-wrap { width:100%; overflow-x:auto; margin:8px 0 24px; }
.lego-v7 .lego-table { width:100%; border-collapse:collapse; background:#fff; border:3px solid var(--ink); font-size:15px; line-height:1.5; }
.lego-v7 .lego-table th, .lego-v7 .lego-table td { padding:12px 14px; text-align:left; vertical-align:top; border:2px solid var(--ink); }
.lego-v7 .lego-table thead th { background:var(--ink); color:#fff; font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:1px; }
.lego-v7 .lego-table tbody th { width:22%; font-weight:700; background:var(--paper); }

/* 55: several Q&A panels stacked under one article body heading */
.lego-v7 .s12 .prose + .qawrap { margin-top:24px; }
.lego-v7 .qawrap + .qawrap { margin-top:20px; }

/* 09 / 10 / 11 / 42: closing line after the cards or split */
.lego-v7 .section-lede.after { margin:24px 0 0; }

/* 10 / 11: cards that do not link keep their resting look */
.lego-v7 .band div.card:hover { background:#fff; }
.lego-v7 .band.violet div.card:hover { background:#fff; }
.lego-v7 .band.violet div.card:hover .t { color:var(--ink); }
.lego-v7 .band.violet div.card:hover .d { color:var(--gray); }

/* 18: details chrome, same pattern as the unlocked FAQ */
.lego-v7.lego-planner details, .lego-v7.lego-hire-planner details { border-bottom:2px solid rgba(4,4,4,0.25); padding:18px 4px; }
.lego-v7.lego-planner details summary, .lego-v7.lego-hire-planner details summary { font-size:17px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.lego-v7.lego-planner details summary::-webkit-details-marker, .lego-v7.lego-hire-planner details summary::-webkit-details-marker { display:none; }
.lego-v7.lego-planner details summary::after, .lego-v7.lego-hire-planner details summary::after { content:"+"; font-family:'IBM Plex Mono',monospace; font-size:20px; font-weight:600; }
.lego-v7.lego-planner details[open] summary::after, .lego-v7.lego-hire-planner details[open] summary::after { content:"\2212"; }
.lego-v7.lego-planner details .prose, .lego-v7.lego-hire-planner details .prose { padding-top:12px; }

/* 22: secondary buttons on the black CTA read white */
.lego-v7 .s15 .btn.ghost { color:#fff; border-color:#fff; }
.lego-v7 .s15 .btn.ghost:hover { background:#fff; color:var(--ink); }

/* ============================================================
   BATCH E: CONTENT PAGES (2026-10-02)
   how-to-page, curbside-page, podcast-page, book-page,
   about-page, simple-door-page.
   Reuses 04 / 08 / 09 / 14 / 18 / 22 / 28 / 29 / 32 primitives
   above; only the glue those pages need lives here.
   ============================================================ */

/* 18: details chrome, same pattern as the unlocked FAQ */
.lego-v7.lego-how-to details { border-bottom:2px solid rgba(4,4,4,0.25); padding:18px 4px; }
.lego-v7.lego-how-to details summary { font-size:17px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.lego-v7.lego-how-to details summary::-webkit-details-marker { display:none; }
.lego-v7.lego-how-to details summary::after { content:"+"; font-family:'IBM Plex Mono',monospace; font-size:20px; font-weight:600; }
.lego-v7.lego-how-to details[open] summary::after { content:"\2212"; }
.lego-v7.lego-how-to details .prose { padding-top:12px; }

/* Inline links inside prose */
.lego-v7.lego-how-to .prose a, .lego-v7.lego-curbside .prose a, .lego-v7.lego-about .prose a { color:var(--ink); font-weight:600; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.lego-v7.lego-how-to .prose a:hover, .lego-v7.lego-curbside .prose a:hover, .lego-v7.lego-about .prose a:hover { color:var(--blue); }
.lego-v7.lego-how-to .s09.yellow .prose a:hover { color:var(--ink); text-decoration-color:var(--blue); }
.lego-v7 .prose .asterisk { font-size:15px; }

/* 22: a note line after the button, link reads white on black */
.lego-v7 .s15 .btn + .cta-note { margin:24px 0 0; }
.lego-v7 .s15 .cta-note a { color:#fff; font-weight:700; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.lego-v7 .s15 .cta-note a:hover { color:var(--yellow); }

/* 28 panel inside the 04 hero (Curbside signup card) */
.lego-v7 .s03 .form-panel { max-width:560px; }

/* 29: centered per the registry revision; the Kit form sits in a white 28 panel */
.lego-v7.lego-curbside .s20 { text-align:center; }
.lego-v7.lego-curbside .s20 .wrap > p { margin-left:auto; margin-right:auto; }
.lego-v7.lego-curbside .s20 .form-panel { max-width:560px; margin:0 auto; text-align:left; }
.lego-v7.lego-curbside .s20 .form-panel p { color:var(--ink); font-size:16px; max-width:none; margin-bottom:0; }

/* Captivate player slot: restore the padding the .lego-v7 reset strips */
.lego-v7 .ff-embed-slot { padding:18px; }
.lego-v7.lego-podcast .action-row { margin-top:24px; }

/* 46 style circular photo on the about page */
.lego-v7 .about-photo { width:160px; height:160px; border-radius:50%; overflow:hidden; background:var(--blue); border:3px solid var(--ink); margin:32px auto 0; display:flex; align-items:center; justify-content:center; text-align:center; }
.lego-v7 .about-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.lego-v7 .about-photo-fallback { font-family:'Archivo Black',sans-serif; font-size:20px; line-height:1.2; color:var(--ink); padding:16px; }

/* ============================================================
   BATCH F: LEAF PAGES (2026-10-02)
   leaf-shell-page, fha-writeup-page.
   Reuses 04 / 22 primitives above; only the glue those pages
   need lives here.
   ============================================================ */

/* 04: quiet link carried in the hero sub, reads white on blue */
.lego-v7 .s03 .sub a.quiet-link { color:#fff; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.lego-v7 .s03 .sub a.quiet-link:hover { color:var(--ink); }

/* ============================================================
   BATCH G: UTILITY PAGES (2026-10-02)
   privacy-page, terms-page, error-404.
   Reuses 04 / 37 primitives above; only the glue those pages
   need lives here.
   ============================================================ */

/* 37: prose under the H1, section subheads and inline links */
.lego-v7 .s02.legal h1 { margin-bottom:24px; }
.lego-v7 .s02.legal .prose h2 { font-family:'Archivo Black',sans-serif; font-size:26px; margin:40px 0 16px; }
.lego-v7 .s02.legal .prose a { color:var(--ink); font-weight:600; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.lego-v7 .s02.legal .prose a:hover { color:var(--blue); }

/* ============================================================
   QUESTION PAGES: tighter section spacing (2026-10-04)
   Ryan flagged excessive white space between sections on question pages.
   Reduces .band padding from 64px to 32px on question pages only.
   Homepage and other pages keep the original spacing.
   ============================================================ */
.lego-v7 .question-page .band .wrap { padding-top:32px; padding-bottom:32px; }
.lego-v7 .question-page .band .wrap.narrow { padding-top:32px; padding-bottom:32px; }
