/* Sonar: theme layer on top of the Sonar foundation. CSS only. */
:root{ --sonar-ui: var(--wp--custom--font-ui, system-ui, sans-serif); --sonar-hw: var(--wp--custom--heading-weight, 600); --sonar-r: var(--wp--custom--radius--base, 6px); --sonar-card: var(--snr-surface-2); }
@supports (color: color-mix(in srgb, red, blue)) { :root{ --sonar-card: color-mix(in srgb, var(--snr-ink) 4%, var(--snr-surface)); } }
.sonar-label, .is-style-label, .sonar-label a{ font-family:var(--sonar-ui); font-size:.72rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--snr-ink-soft); text-decoration:none; margin:0; }
.sonar-pill{ display:inline-flex; align-items:center; margin:0; padding:.36rem .6rem; border-radius:999px; background:var(--snr-accent-soft); color:var(--snr-accent-ink); font-family:var(--sonar-ui); font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; line-height:1; }
.sonar-deck, .is-style-deck, .sonar-lede{ font-size:var(--wp--preset--font-size--medium); color:var(--snr-ink-soft); line-height:1.5; }
.sonar-soft{ color:var(--snr-ink-soft); }
.wp-block-post-terms, .wp-block-post-date, .wp-block-post-author-name, .wp-block-query-pagination, .wp-block-categories, .wp-block-navigation{ font-family:var(--sonar-ui); }
.sonar-meta{ gap:.45rem .8rem; margin-bottom:.4rem; font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--small); color:var(--snr-ink-soft); }
.sonar-meta > *{ margin:0; }
.sonar-meta a{ color:var(--snr-ink-soft); }
.sonar-reading, .sonar-count{ font-family:var(--sonar-ui); }
.sonar-updated-label{ margin-right:.15em; }
/* Header */
.sonar-header{ border-bottom:1px solid var(--snr-line); }
.sonar-header-row{ gap:var(--wp--preset--spacing--30); }
.sonar-header .wp-block-site-title{ font-family:var(--wp--custom--font-display); font-weight:var(--sonar-hw); font-size:var(--wp--preset--font-size--medium); letter-spacing:-.01em; margin:0; }
.sonar-header .wp-block-site-title a{ color:var(--snr-ink); text-decoration:none; }
.sonar-header-actions{ gap:var(--wp--preset--spacing--40); }
.sonar-header .wp-block-navigation{ font-size:var(--wp--preset--font-size--small); }
.sonar-header .wp-block-navigation a{ color:var(--snr-ink-soft); text-decoration:none; }
.sonar-header .wp-block-navigation a:hover{ color:var(--snr-ink); }
.wp-block-navigation__responsive-container.is-menu-open{ padding:var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); background:var(--snr-surface); color:var(--snr-ink); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{ font-size:var(--wp--preset--font-size--large); padding-block:.35em; color:var(--snr-ink); }
@media (max-width:600px){ .sonar-header .sonar-header-cta{ display:none; } }
/* Sections */
.sonar-section{ margin-top:var(--wp--preset--spacing--70); }
.sonar-sec-head{ margin-bottom:var(--wp--preset--spacing--40); gap:var(--wp--preset--spacing--30); }
.sonar-sec-head h2{ margin:0; }
.sonar-sec-link{ margin:0; font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--small); }
.sonar-sec-link a{ color:var(--snr-accent-ink); }
.sonar-cards.is-layout-grid, .sonar-pillar-grid.is-layout-grid{ grid-template-columns:repeat(auto-fit, minmax(min(15rem, 100%), 1fr)); }
.sonar-cards, .sonar-pillar-grid{ gap:var(--wp--preset--spacing--30); }
.sonar-card{ height:100%; padding:var(--wp--preset--spacing--40); border:1px solid var(--snr-line); border-radius:var(--sonar-r); background:var(--snr-surface); }
.sonar-card:hover{ border-color:var(--snr-accent); }
.sonar-card .sonar-card-title{ font-size:var(--wp--preset--font-size--medium); line-height:1.25; margin:.55em 0 .3em; }
.sonar-card .sonar-card-title a{ color:var(--snr-ink); text-decoration:none; }
.sonar-card .wp-block-post-excerpt{ color:var(--snr-ink-soft); font-size:var(--wp--preset--font-size--small); margin:0; }
.sonar-card .wp-block-post-excerpt__excerpt, .sonar-pillar-card .wp-block-post-excerpt__excerpt, .sonar-pillar-item .wp-block-post-excerpt__excerpt{ margin:0; }
.sonar-pillar-card{ height:100%; padding:var(--wp--preset--spacing--40); background:var(--sonar-card); border-top:3px solid var(--snr-accent); border-radius:0 0 var(--sonar-r) var(--sonar-r); }
.sonar-pillar-card .wp-block-post-title{ font-size:var(--wp--preset--font-size--large); margin:.3em 0; }
.sonar-pillar-card .wp-block-post-title a{ color:var(--snr-ink); text-decoration:none; }
.sonar-pillar-card .wp-block-post-excerpt{ font-size:var(--wp--preset--font-size--small); color:var(--snr-ink-soft); margin:0; }
.sonar-count{ font-size:.8rem; font-weight:600; color:var(--snr-accent-ink); margin:.8em 0 0; }
.sonar-list{ list-style:none; padding:0; margin:0; }
.sonar-list > li{ border-top:1px solid var(--snr-line); padding-block:var(--wp--preset--spacing--30); margin:0; }
.sonar-list > li:last-child{ border-bottom:1px solid var(--snr-line); }
.sonar-list-title{ font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--base); font-weight:600; line-height:1.35; margin:0; }
.sonar-list-title a{ color:var(--snr-ink); text-decoration:none; }
.sonar-list-title a:hover{ text-decoration:underline; }
.sonar-list-meta{ gap:.3rem .9rem; margin-top:.25rem; font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--small); color:var(--snr-ink-soft); }
.sonar-list-meta > *{ margin:0; }
.sonar-list-meta a{ color:inherit; }
/* Article */
.sonar-article-head .wp-block-post-title{ margin:.25em 0 .3em; }
.sonar-byline{ gap:.2rem .6rem; margin-top:var(--wp--preset--spacing--40); font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--small); color:var(--snr-ink-soft); }
.sonar-byline > *{ margin:0; }
.sonar-byline a{ color:var(--snr-ink); font-weight:600; text-decoration:none; }
.sonar-byline .wp-block-post-author-name::after{ content:"·"; margin-left:.6rem; color:var(--snr-ink-soft); }
.sonar-body{ font-size:calc(var(--wp--preset--font-size--base) * 1.05); line-height:1.75; }
.sonar-body h2{ margin-top:1.8em; }
.snr-takeaways, .sonar-takeaways{ padding:var(--wp--preset--spacing--40); background:var(--snr-accent-soft); border-radius:var(--sonar-r); }
.snr-takeaways > :first-child{ color:var(--snr-ink); }
.wp-block-quote.is-style-pull{ border:0; padding:0; margin-block:var(--wp--preset--spacing--50); font-family:var(--wp--custom--font-display); font-weight:var(--sonar-hw); font-size:var(--wp--preset--font-size--x-large); line-height:1.3; color:var(--snr-accent-ink); }
.wp-block-quote cite{ display:block; font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--small); font-style:normal; color:var(--snr-ink-soft); }
.sonar-part-of{ gap:.6rem; padding-block:var(--wp--preset--spacing--30); border-block:1px solid var(--snr-line); }
.sonar-part-of .wp-block-post-terms a{ color:var(--snr-ink); font-weight:600; }
.sonar-siblings{ list-style:none; padding:0; margin:var(--wp--preset--spacing--20) 0 0; }
.sonar-siblings > li{ margin:0; border-top:1px solid var(--snr-line); }
.sonar-sibling{ font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--base); margin:0; }
.sonar-sibling a{ display:block; padding-block:.7rem; color:var(--snr-ink); text-decoration:underline; text-decoration-color:var(--snr-line); line-height:1.35; }
.sonar-author-card{ gap:var(--wp--preset--spacing--30); padding-block:var(--wp--preset--spacing--40); border-block:1px solid var(--snr-line); }
.sonar-author-card .wp-block-avatar img{ border-radius:50%; }
.sonar-author-card .wp-block-post-author-name{ font-weight:600; }
.sonar-author-card .wp-block-post-author-biography{ font-size:var(--wp--preset--font-size--small); color:var(--snr-ink-soft); }
.wp-block-details{ border-top:1px solid var(--snr-line); padding-block:.8rem; }
.wp-block-details summary{ font-weight:600; cursor:pointer; min-height:28px; }
/* Pillar */
.sonar-pillar-meta{ gap:.3rem .9rem; font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--small); color:var(--snr-ink-soft); }
.sonar-pillar-meta > *{ margin:0; }
.sonar-pillar-meta .sonar-count{ font-size:inherit; margin:0; }
.sonar-pillar-list{ list-style:none; padding:0; counter-reset:sonar-p; }
.sonar-pillar-list > li{ margin:0; counter-increment:sonar-p; display:grid; grid-template-columns:2.6rem 1fr; padding-block:var(--wp--preset--spacing--30); border-top:1px solid var(--snr-line); }
.sonar-pillar-list > li::before{ content:counter(sonar-p, decimal-leading-zero); font-family:var(--sonar-ui); font-weight:700; color:var(--snr-accent-ink); }
.sonar-pillar-item .wp-block-post-title{ font-size:var(--wp--preset--font-size--medium); margin:0 0 .2em; }
.sonar-pillar-item .wp-block-post-title a{ color:var(--snr-ink); text-decoration:none; }
.sonar-pillar-item .wp-block-post-excerpt{ color:var(--snr-ink-soft); font-size:var(--wp--preset--font-size--small); margin:0; }
/* Newsletter */
.sonar-newsletter{ margin-top:var(--wp--preset--spacing--70); background:var(--snr-accent-soft); border-radius:var(--sonar-r); padding:var(--wp--preset--spacing--60) var(--wp--preset--spacing--50); }
.sonar-newsletter-inner{ align-items:center; gap:var(--wp--preset--spacing--40); }
.sonar-newsletter h2{ margin:.25em 0 .3em; }
.sonar-newsletter .sonar-soft{ margin:0; color:var(--snr-ink); }
.sonar-newsletter .sonar-label{ color:var(--snr-ink); }
.sonar-newsletter .sonar-core-subscribe, .sonar-newsletter form{ display:flex; flex-wrap:wrap; gap:.5rem; }
.sonar-newsletter input[type="email"]{ flex:1 1 13rem; padding:.5rem .8rem; font:inherit; min-height:44px; }
.wp-block-group.is-style-panel{ padding:var(--wp--preset--spacing--40); border:1px solid var(--snr-line); border-radius:var(--sonar-r); }
.wp-block-group.is-style-band{ padding:var(--wp--preset--spacing--50); background:var(--snr-accent-soft); border-radius:var(--sonar-r); }
.sonar-topics-list{ list-style:none; padding:0; margin:var(--wp--preset--spacing--30) 0 0; display:flex; flex-wrap:wrap; gap:.5rem; }
.sonar-topics-list li a{ display:inline-flex; align-items:center; min-height:44px; padding:0 .9rem; border:1px solid var(--snr-line); border-radius:999px; color:var(--snr-ink); text-decoration:none; font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--small); }
.sonar-chips{ gap:.5rem; }
.sonar-chips .wp-block-button__link{ border-radius:999px; min-height:44px; display:inline-flex; align-items:center; padding:.4rem 1rem; font-size:var(--wp--preset--font-size--small); }
/* Footer */
.sonar-footer{ border-top:1px solid var(--snr-line); color:var(--snr-ink-soft); font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--small); }
.sonar-footer .wp-block-site-title{ font-family:var(--wp--custom--font-display); font-weight:var(--sonar-hw); font-size:var(--wp--preset--font-size--medium); color:var(--snr-ink); margin:0; }
.sonar-footer-tagline{ margin:.3em 0 0; max-width:28rem; }
.sonar-footer-nav a{ color:var(--snr-ink-soft); text-decoration:none; }
.sonar-footer-nav a:hover{ color:var(--snr-ink); }
.sonar-footer-nav .wp-block-navigation-item__content{ min-height:44px; display:inline-flex; align-items:center; }
.sonar-credit{ margin:var(--wp--preset--spacing--40) 0 0; }
.sonar-credit a{ color:inherit; }
.wp-block-search__input{ min-height:44px; }
/* Dark mode: the primary button stays light and strong whatever the brand colour. */
:root{ --sonar-btn-dark: var(--snr-ink); }
@supports (color: oklch(from red l c h)) {
  :root{ --sonar-btn-dark: oklch(from var(--snr-brand) max(l, calc(0.7 + 0.24 * (1 - min(c / 0.06, 1)))) min(c, 0.16) h); }
}
@media (prefers-color-scheme: dark) {
  html:not(.snr-no-dark):not([data-theme="light"]) .wp-block-button:not(.is-style-outline):not(.is-style-text) > .wp-block-button__link,
  html:not(.snr-no-dark):not([data-theme="light"]) .sonar-core-subscribe button{ background-color:var(--sonar-btn-dark); color:var(--snr-surface); }
}
html[data-theme="dark"] .wp-block-button:not(.is-style-outline):not(.is-style-text) > .wp-block-button__link,
html[data-theme="dark"] .sonar-core-subscribe button{ background-color:var(--sonar-btn-dark); color:var(--snr-surface); }
@media print{ .sonar-newsletter, .sonar-header-actions{ display:none !important; } }



/* Filters */
.sonar-filters{ display:grid; gap:.6rem; margin-block:var(--wp--preset--spacing--40); font-family:var(--sonar-ui); }
.sonar-filter-row{ display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.sonar-filter-label{ min-width:4.5rem; font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--snr-ink-soft); }
.sonar-chip{ display:inline-flex; align-items:center; min-height:40px; padding:0 .85rem; border:1px solid var(--snr-line); border-radius:999px; color:var(--snr-ink); text-decoration:none; font-size:var(--wp--preset--font-size--small); }
.sonar-chip:hover{ border-color:var(--snr-accent); }
.sonar-chip.is-on{ background:var(--snr-ink); border-color:var(--snr-ink); color:var(--snr-surface); }
:root{ --sonar-mono: var(--wp--preset--font-family--jetbrains-mono, ui-monospace, SFMono-Regular, Menlo, monospace); }
code, pre, .wp-block-code{ font-family:var(--sonar-mono); }
.wp-block-code{ background:color-mix(in srgb, var(--snr-accent) 7%, #121417); color:#E6EAEE; border:1px solid var(--snr-line); border-radius:var(--sonar-r); padding:1rem 1.1rem; overflow-x:auto; font-size:.86rem; line-height:1.6; }
.wp-block-code code{ background:none; color:inherit; padding:0; }
:not(pre) > code{ background:var(--sonar-card); padding:.1em .35em; border-radius:4px; font-size:.9em; }
.sonar-bars{ display:inline-flex; gap:3px; margin-right:.35rem; vertical-align:-1px; }
.sonar-bars i{ width:7px; height:12px; border-radius:2px; background:var(--snr-line); }
.sonar-l1 i:nth-child(-n+1), .sonar-l2 i:nth-child(-n+2), .sonar-l3 i:nth-child(-n+3){ background:var(--snr-accent); }
.sonar-level{ font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--small); color:var(--snr-ink-soft); margin:0; }
.sonar-hero{ padding-block:var(--wp--preset--spacing--60) var(--wp--preset--spacing--50); border-bottom:1px solid var(--snr-line); }
.sonar-hero h1{ font-size:var(--wp--preset--font-size--display); max-width:18ch; margin:.3em 0 .3em; }
.sonar-track{ display:flex; gap:4px; margin:1rem 0 0; }
.sonar-track span{ flex:1; height:6px; border-radius:3px; background:color-mix(in srgb, var(--snr-accent) 40%, var(--snr-surface)); }
.sonar-card .sonar-meta{ margin-top:.6rem; }
/* Guide */
.sonar-cols{ gap:var(--wp--preset--spacing--60) !important; margin-top:var(--wp--preset--spacing--40); }
.sonar-main{ min-width:0; }
.sonar-main > *{ max-width:44rem; }
@media (max-width:781px){ .sonar-aside{ display:none; } }
@media (min-width:782px){ .sonar-aside{ position:sticky; top:var(--wp--preset--spacing--40); align-self:flex-start; } }
.sonar-toc{ font-family:var(--sonar-ui); font-size:.92rem; }
.sonar-toc ol{ list-style:none; padding:0; margin:.6rem 0 0; border-left:2px solid var(--snr-line); }
.sonar-toc li{ padding:.35rem 0 .35rem .9rem; margin-left:-2px; border-left:2px solid transparent; }
.sonar-toc li:hover{ border-color:var(--snr-accent); }
.sonar-toc a{ color:var(--snr-ink-soft); text-decoration:none; }
.sonar-toc a:hover{ color:var(--snr-accent-ink); }
.sonar-position{ font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--small); color:var(--snr-ink-soft); margin:0 0 .6rem; }
.sonar-tested{ gap:.4rem 1rem; padding:.6rem .9rem; border:1px dashed var(--snr-line); border-radius:var(--sonar-r); font-family:var(--sonar-ui); font-size:var(--wp--preset--font-size--small); color:var(--snr-ink-soft); margin-block:var(--wp--preset--spacing--40); }
.sonar-tested > *{ margin:0; }
.sonar-tested strong{ color:var(--snr-ink); }
.sonar-before{ gap:var(--wp--preset--spacing--30); padding:var(--wp--preset--spacing--40); border:1px solid var(--snr-line); border-radius:var(--sonar-r); background:var(--sonar-card); margin-block:var(--wp--preset--spacing--40); }
.sonar-before h3{ font-size:1rem; margin:0 0 .3rem; }
.sonar-before p{ margin:0; font-size:.95rem; }
.sonar-body{ counter-reset:sonar-step; }
.sonar-step{ counter-increment:sonar-step; position:relative; padding-left:3.4rem; margin-block:var(--wp--preset--spacing--50); }
.sonar-step::before{ content:counter(sonar-step); position:absolute; left:0; top:.15rem; width:2.4rem; height:2.4rem; border-radius:var(--sonar-r); display:grid; place-items:center; background:var(--snr-accent); color:var(--snr-on-accent); font-family:var(--sonar-ui); font-weight:700; }
.sonar-step > h2:first-child{ margin-top:0; font-size:var(--wp--preset--font-size--large); }
.sonar-callout{ border-left:3px solid var(--snr-accent); background:var(--snr-accent-soft); padding:.8rem 1rem; border-radius:0 var(--sonar-r) var(--sonar-r) 0; margin-block:var(--wp--preset--spacing--30); font-size:.95rem; }
.sonar-callout > *{ margin:0; }
.sonar-pager{ display:grid; grid-template-columns:1fr 1fr; gap:var(--wp--preset--spacing--30); margin-top:var(--wp--preset--spacing--60); }
.sonar-pager a{ display:block; padding:var(--wp--preset--spacing--30); border:1px solid var(--snr-line); border-radius:var(--sonar-r); color:var(--snr-ink); text-decoration:none; font-family:var(--sonar-ui); }
.sonar-pager a:hover{ border-color:var(--snr-accent); }
.sonar-pager a[rel="next"]{ text-align:right; grid-column:2; }
.sonar-pager span{ display:block; font-size:.8rem; color:var(--snr-ink-soft); }
/* Path */
.sonar-pillar-head .snr-breadcrumbs, .sonar-pillar-head nav[aria-label]{ margin-bottom:var(--wp--preset--spacing--30); }
.sonar-path-list .sonar-pillar-item .sonar-level{ margin-top:.25rem; }
.sonar-levels{ gap:.5rem; margin-top:var(--wp--preset--spacing--30); }
