/* wordpress/blog-child-theme/assets/css/blog-redesign.css
   Ported from the approved mockup: blog-mockups/option-b-v2.html
   See docs/superpowers/specs/2026-08-12-blog-redesign-design.md for the design rationale. */

:root{
  --bg:#fdfdfb;
  --bg-card:#ffffff;
  --bg-muted:#f4f3ef;
  --ink:#1a1a1a;
  --ink-soft:#3f3f3f;
  --gray:#6b7280;
  --gray-light:#9ca3af;
  --hairline:#e5e3dd;
  --accent:#014D7D;
  --accent-soft:#ebf1f5;
  --code-bg:#0d1b2a;
  --code-text:#d3e8f5;
}

/* Reset only within our own containers — the parent theme's global reset stays intact
   for anything outside .asa-blog (comments, search page, etc. are untouched by this file). */
.asa-blog, .asa-blog *{box-sizing:border-box;}
.asa-blog{
  background:var(--bg); color:var(--ink);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  line-height:1.5; -webkit-font-smoothing:antialiased;
}
.asa-blog a{color:inherit;text-decoration:none;}
.asa-blog .container{max-width:1120px;margin:0 auto;padding:0 24px;}
@media(min-width:768px){.asa-blog .container{padding:0 40px;}}

/* MASTHEAD */
.asa-blog .masthead-top{border-bottom:1px solid var(--hairline);}
.asa-blog .masthead-top .container{display:flex;justify-content:space-between;align-items:center;padding:9px 24px;
  font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--gray);text-transform:uppercase;letter-spacing:.06em;}
.asa-blog .masthead-top .meta{display:flex;align-items:center;gap:14px;}
.asa-blog .masthead-top .divider{color:var(--hairline);}
.asa-blog .masthead-top .about{display:inline-flex;align-items:center;gap:5px;color:var(--gray);}
.asa-blog .masthead-top .about:hover{color:var(--accent);}
.asa-blog .masthead-top .about svg{flex-shrink:0;opacity:.8;}
.asa-blog header.asa-header{border-bottom:1px solid var(--hairline);background:var(--bg);}
.asa-blog .nav{display:flex;align-items:center;justify-content:space-between;padding:22px 0;}
.asa-blog .logo{font-family:'Source Serif 4',serif;font-weight:700;font-size:24px;letter-spacing:-0.01em;}
.asa-blog .logo em{font-style:italic;color:var(--accent);}
.asa-blog .nav-links{display:none;gap:30px;font-size:14px;color:var(--ink-soft);font-weight:500;}
.asa-blog .nav-links a{border-bottom:2px solid transparent;padding-bottom:2px;}
.asa-blog .nav-links a:hover{border-color:var(--accent);}
@media(min-width:768px){.asa-blog .nav-links{display:flex;}}

.asa-blog .section-label{
  font-family:'JetBrains Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:.14em;
  color:var(--accent);font-weight:500;
}

/* HERO */
.asa-blog .hero{padding:48px 0 40px;}
.asa-blog .hero-kicker{margin-bottom:14px;display:block;}
.asa-blog .hero .page-title{font-family:'Source Serif 4',serif;font-size:30px;font-weight:700;margin-bottom:6px;}
.asa-blog .hero .page-sub{color:var(--gray);font-size:16px;max-width:580px;}

.asa-blog .featured{
  display:grid;grid-template-columns:1fr;gap:28px;
  padding-top:36px;margin-top:36px;border-top:1px solid var(--hairline);
}
@media(min-width:900px){.asa-blog .featured{grid-template-columns:1.05fr 1fr;align-items:start;gap:48px;}}
.asa-blog .featured-img{width:100%;aspect-ratio:1200/630;object-fit:cover;display:block;background:var(--bg-muted);border-radius:4px;}
.asa-blog .featured-body .section-label{display:block;margin-bottom:14px;}
.asa-blog .featured-body h2{font-family:'Source Serif 4',serif;font-size:28px;line-height:1.25;font-weight:700;margin-bottom:14px;}
@media(min-width:768px){.asa-blog .featured-body h2{font-size:32px;}}
.asa-blog .featured-body h2 a:hover{color:var(--accent);}
.asa-blog .featured-body .dek{color:var(--ink-soft);font-size:17px;line-height:1.6;margin-bottom:18px;}
.asa-blog .byline{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--gray);}
.asa-blog .avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;
  justify-content:center;font-family:'Source Serif 4',serif;font-weight:700;font-size:12px;flex-shrink:0;}

/* CATEGORY TABS — real WordPress category archive links, not JS filtering */
.asa-blog .tabs{display:flex;gap:28px;border-bottom:1px solid var(--hairline);margin:56px 0 0;overflow-x:auto;}
.asa-blog .tab{
  font-family:'JetBrains Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:.1em;
  color:var(--gray);padding:0 0 14px;border-bottom:2px solid transparent;white-space:nowrap;
}
.asa-blog .tab:hover{color:var(--ink);}
.asa-blog .tab.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600;}

/* GRID */
.asa-blog .grid{display:grid;grid-template-columns:1fr;gap:24px;padding:36px 0 24px;}
@media(min-width:700px){.asa-blog .grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.asa-blog .grid{grid-template-columns:repeat(3,1fr);}}
.asa-blog .card{
  background:var(--bg-card);border:1px solid var(--hairline);border-radius:12px;overflow:hidden;
  display:flex;flex-direction:column;transition:border-color .2s, transform .2s, box-shadow .2s;
}
.asa-blog .card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 10px 28px rgba(20,20,20,0.06);}
.asa-blog .card img{width:100%;aspect-ratio:1200/630;height:auto;object-fit:cover;display:block;background:var(--bg-muted);}
.asa-blog .card-body{padding:20px;display:flex;flex-direction:column;flex:1;}
.asa-blog .card-body .section-label{margin-bottom:10px;}
.asa-blog .card-body h3{font-family:'Source Serif 4',serif;font-size:19px;font-weight:700;line-height:1.35;margin-bottom:10px;}
.asa-blog .card-body h3 a:hover{color:var(--accent);}
.asa-blog .card-body p{color:var(--gray);font-size:14px;line-height:1.6;margin-bottom:16px;flex:1;}
.asa-blog .card-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--gray-light);border-top:1px solid var(--hairline);padding-top:12px;}

/* PAGINATION */
.asa-blog .wp-pagination{display:flex;gap:8px;justify-content:center;padding:24px 0 64px;}
.asa-blog .wp-pagination a, .asa-blog .wp-pagination span{
  min-width:36px;height:36px;padding:0 10px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--hairline);border-radius:8px;font-size:13px;color:var(--ink-soft);
  font-family:'JetBrains Mono',monospace;
}
.asa-blog .wp-pagination .current{background:var(--accent);color:#fff;border-color:var(--accent);}
.asa-blog .wp-pagination a:hover{border-color:var(--accent);color:var(--accent);}

/* FOOTER */
.asa-blog footer.asa-footer{border-top:1px solid var(--hairline);padding:36px 0;text-align:center;color:var(--gray);font-size:13px;}

/* SINGLE POST */
.asa-blog .post-reading{max-width:700px;margin:0 auto;padding:48px 24px 90px;}
.asa-blog .post-reading .section-label{margin-bottom:18px;display:block;}
.asa-blog .post-reading h1{font-family:'Source Serif 4',serif;font-size:34px;font-weight:700;line-height:1.22;margin-bottom:18px;}
@media(min-width:768px){.asa-blog .post-reading h1{font-size:44px;}}
.asa-blog .post-reading .byline{margin-bottom:32px;padding-bottom:28px;border-bottom:1px solid var(--hairline);}
.asa-blog .post-reading .body-copy{font-size:18px;line-height:1.8;color:var(--ink);}
.asa-blog .post-reading .body-copy p{margin-bottom:24px;}
.asa-blog .post-reading .body-copy h2{font-family:'Source Serif 4',serif;font-size:26px;font-weight:700;margin:40px 0 16px;}
.asa-blog .post-reading .body-copy h3{font-family:'Source Serif 4',serif;font-size:21px;font-weight:600;margin:32px 0 14px;}
.asa-blog .post-reading .body-copy ul, .asa-blog .post-reading .body-copy ol{margin:0 0 24px 24px;}
.asa-blog .post-reading .body-copy li{margin-bottom:8px;}
.asa-blog .post-reading .body-copy img{max-width:100%;height:auto;border-radius:8px;margin:8px 0;}
.asa-blog .post-reading .body-copy blockquote{
  font-family:'Source Serif 4',serif;font-style:italic;
  border-left:3px solid var(--accent);padding:2px 0 2px 22px;margin:32px 0;
  color:var(--ink-soft);font-size:22px;line-height:1.5;
}
.asa-blog .post-reading .body-copy code{
  font-family:'JetBrains Mono',monospace;background:var(--accent-soft);color:var(--accent);
  padding:2px 6px;border-radius:4px;font-size:15px;
}
.asa-blog .post-reading .body-copy pre{
  background:var(--code-bg);border-radius:10px;padding:20px;overflow-x:auto;margin:26px 0;
}
.asa-blog .post-reading .body-copy pre code{background:none;color:var(--code-text);padding:0;font-size:14px;line-height:1.6;}

/* Real content tables (not just code blocks) — wrapped by asa_blog_wrap_content_tables() in functions.php */
.asa-blog .asa-table-scroll{overflow-x:auto;margin:24px 0;border:1px solid var(--hairline);border-radius:8px;}
.asa-blog .asa-table-scroll table{width:100%;border-collapse:collapse;font-size:15px;}
.asa-blog .asa-table-scroll td, .asa-blog .asa-table-scroll th{padding:10px 14px;border-bottom:1px solid var(--hairline);text-align:left;}

/* The syntax-highlighter plugin's own tables already scroll via
   .urvanov-syntax-highlighter-main{overflow-x:auto} — don't double-frame them.
   (The wrap filter runs at priority 999, so it now also wraps every expanded
   code-block table, not just genuine content tables.) */
.asa-blog .urvanov-syntax-highlighter-main .asa-table-scroll{border:0;border-radius:0;margin:0;}

/* Urvanov Syntax Highlighter — restyle to match the dark code-block treatment.
   Note: this plugin emits some inline `!important` sizing styles per-block (font-size, line-height)
   from its own settings screen — if code looks too small/large after activation, adjust in
   wp-admin → Ajustes → Urvanov Syntax Highlighter rather than fighting it here. */
.asa-blog .urvanov-syntax-highlighter-main{
  background:var(--code-bg) !important;border-radius:10px;overflow-x:auto;margin:26px 0;
}
.asa-blog .crayon-table{background:transparent !important;}
.asa-blog .crayon-toolbar{background:rgba(255,255,255,0.05) !important;border-bottom:1px solid rgba(255,255,255,0.1) !important;}
.asa-blog .crayon-language{color:var(--code-text) !important;font-family:'JetBrains Mono',monospace !important;}
.asa-blog .crayon-nums{background:rgba(255,255,255,0.03) !important;}
.asa-blog .crayon-num{color:rgba(255,255,255,0.3) !important;}
.asa-blog .crayon-line{color:var(--code-text) !important;font-family:'JetBrains Mono',monospace !important;}

/* ---- Comments -------------------------------------------------------------
   single.php calls comments_template(), which renders WordPress's default
   markup (#comments.comments-area > ol.comment-list > li.comment > article.comment-body,
   then #respond.comment-respond > form.comment-form). This block only makes that
   markup read as part of the editorial design — it is deliberately NOT a redesign
   of the comment UI. It lives inside .post-reading, so it already inherits the
   700px reading column; scoping to .asa-blog .post-comments keeps it from leaking. */
.asa-blog .post-comments{margin-top:56px;padding-top:40px;border-top:1px solid var(--hairline);}
.asa-blog .post-comments .comments-title,
.asa-blog .post-comments .comment-reply-title{
  font-family:'Source Serif 4',serif;font-size:22px;font-weight:700;line-height:1.3;margin-bottom:28px;color:var(--ink);
}
.asa-blog .post-comments .comment-reply-title small{font-family:'Inter',sans-serif;font-size:13px;font-weight:400;margin-left:10px;}
.asa-blog .post-comments a{color:var(--accent);}
.asa-blog .post-comments a:hover{text-decoration:underline;}

/* Comment list + threading */
.asa-blog .post-comments .comment-list,
.asa-blog .post-comments .comment-list .children{list-style:none;margin:0;padding:0;}
.asa-blog .post-comments .comment-list .children{margin-top:20px;padding-left:20px;border-left:1px solid var(--hairline);}
@media(min-width:768px){.asa-blog .post-comments .comment-list .children{padding-left:28px;}}
.asa-blog .post-comments .comment-body{padding:0 0 24px;margin-bottom:24px;border-bottom:1px solid var(--hairline);}
.asa-blog .post-comments .comment-list > li:last-child > .comment-body{border-bottom:0;}
.asa-blog .post-comments .comment-author{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.asa-blog .post-comments .avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;}
.asa-blog .post-comments .fn{font-style:normal;font-weight:600;font-size:14px;color:var(--ink);}
.asa-blog .post-comments .says{font-size:13px;color:var(--gray-light);}
.asa-blog .post-comments .comment-metadata{margin:4px 0 12px 42px;}
.asa-blog .post-comments .comment-metadata a{
  font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--gray);text-transform:uppercase;letter-spacing:.04em;
}
.asa-blog .post-comments .comment-metadata a:hover{color:var(--accent);}
.asa-blog .post-comments .comment-content{font-size:16px;line-height:1.7;color:var(--ink-soft);}
.asa-blog .post-comments .comment-content p{margin:0 0 12px;}
.asa-blog .post-comments .comment-content p:last-child{margin-bottom:0;}
.asa-blog .post-comments .reply{margin-top:12px;}
.asa-blog .post-comments .comment-reply-link{
  font-family:'JetBrains Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:500;
}

/* Comment form */
.asa-blog .post-comments .comment-respond{margin-top:48px;}
.asa-blog .post-comments .comment-form p{margin:0 0 18px;}
.asa-blog .post-comments .comment-notes,
.asa-blog .post-comments .comment-form-cookies-consent label{font-size:13px;color:var(--gray);line-height:1.6;}
.asa-blog .post-comments .comment-form label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--ink-soft);}
.asa-blog .post-comments .comment-form-cookies-consent label{display:inline;margin-left:6px;font-weight:400;}
.asa-blog .post-comments .required{color:var(--accent);}
.asa-blog .post-comments .comment-form input[type=text],
.asa-blog .post-comments .comment-form input[type=email],
.asa-blog .post-comments .comment-form input[type=url],
.asa-blog .post-comments .comment-form textarea{
  width:100%;max-width:100%;padding:11px 14px;font-family:'Inter',sans-serif;font-size:15px;color:var(--ink);
  background:var(--bg-card);border:1px solid var(--hairline);border-radius:8px;
}
.asa-blog .post-comments .comment-form textarea{min-height:150px;resize:vertical;line-height:1.6;}
.asa-blog .post-comments .comment-form input:focus,
.asa-blog .post-comments .comment-form textarea:focus{outline:none;border-color:var(--accent);}
.asa-blog .post-comments .comment-form input[type=submit]{
  width:auto;cursor:pointer;padding:12px 26px;border:1px solid var(--accent);border-radius:8px;
  background:var(--accent);color:#fff;font-family:'Inter',sans-serif;font-size:14px;font-weight:600;
}
.asa-blog .post-comments .comment-form input[type=submit]:hover{background:#013a5f;border-color:#013a5f;}
