/* Post layout and sidebar panels. Loaded after dark-mode.css. */
.fw-sidebar-page .mh-wrapper {
    --post-accent: var(--fw-link);
    --post-button-ink: var(--fw-on-accent);
    --post-tint: var(--fw-red-tint);
}
.fw-sidebar-page .mh-wrapper:has(> #main-content > article) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(250px, 25vw, 290px);
    gap: 32px;
    align-items: start;
}
/* The parent clearfix must not become an extra grid item. */
.fw-sidebar-page .mh-wrapper:has(> #main-content > article)::before,
.fw-sidebar-page .mh-wrapper:has(> #main-content > article)::after { display: none; }
.fw-sidebar-page .mh-wrapper > #main-content,
.fw-sidebar-page .mh-wrapper > .mh-sidebar {
    float: none;
    width: auto;
    min-width: 0;
    margin: 0;
}
.fw-sidebar-page .mh-wrapper > .mh-sidebar,
.fw-sidebar-page .mh-wrapper > .mh-sidebar * { box-sizing: border-box; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar { overflow-wrap: anywhere; }
/* Match each article section's category sidebar accent. */
.single-post .mh-wrapper:where(:has(> #main-content > article.category-market-watch)) { --post-accent: var(--fw-steel); }
.single-post .mh-wrapper:where(:has(> #main-content > article.category-set-reviews)) { --post-accent: var(--fw-gold-dark); }
.single-post .mh-wrapper:where(:has(> #main-content > article.category-card-spotlight)) { --post-accent: var(--fw-navy); }
[data-fw-theme="dark"] .single-post .mh-wrapper:where(:has(> #main-content > article.category-card-spotlight)) { --post-accent: var(--fw-steel); }
/* Same widget panels, headings, lists and forms as the category sidebar. */
.fw-sidebar-page .mh-wrapper > .mh-sidebar .mh-widget {
    margin: 0 0 26px;
    padding: 20px;
    background: var(--fw-soft);
    border: 1px solid var(--fw-border);
    border-top: 3px solid var(--post-accent);
}
.fw-sidebar-page .mh-wrapper > .mh-sidebar .fw-archive-widget-title,
.fw-sidebar-page .mh-wrapper > .mh-sidebar .mh-widget-title {
    display: block;
    margin: 0 0 15px;
    padding: 0;
    color: var(--fw-text);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
    text-transform: none;
}
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-latest-posts { margin: 0; padding: 0; list-style: none; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-latest-posts li { padding: 13px 0; margin: 0; border-bottom: 1px solid var(--fw-border); }
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-latest-posts li:first-child { padding-top: 0; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-latest-posts li:last-child { padding-bottom: 0; border-bottom: 0; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-latest-posts a { color: var(--fw-text); font-size: 14px; line-height: 1.5; font-weight: 700; text-decoration: none; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar a:hover { color: var(--post-accent); }
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-categories { list-style: none; padding: 0; margin: 0; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-categories li { padding: 0; border: 0; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-categories a { display: block; padding: 10px 0; min-height: 44px; font-size: 14px; line-height: 1.6; font-weight: 600; border-bottom: 1px solid var(--fw-border); }
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-categories .current-cat > a { color: var(--post-accent); font-weight: 700; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-categories .children { padding-left: 14px; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar input[type="email"] {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 12px !important;
    min-height: 46px;
    border: 1px solid var(--fw-input-border);
    background: var(--fw-surface);
    color: var(--fw-text);
    font-size: 16px !important;
}
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-jetpack-subscriptions button {
    width: 100%;
    min-height: 46px;
    margin: 0 !important;
    padding: 12px 14px !important;
    border: 0;
    border-radius: 0;
    background: var(--post-accent);
    color: var(--post-button-ink);
    font-size: 14px !important;
    font-weight: 700;
}
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-jetpack-subscriptions__form-elements { display: flex; flex-direction: column; gap: 10px; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar #subscribe-email,
.fw-sidebar-page .mh-wrapper > .mh-sidebar #subscribe-submit { width: 100%; margin: 0; padding: 0; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-jetpack-subscriptions__container { min-width: 0; width: 100%; }

.fw-sidebar-page .mh-wrapper > .mh-sidebar .mh-widget:last-child { margin-bottom: 0; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar :is(.fw-archive-widget-title, .mh-widget-title) {
    border: 0;
    text-transform: none;
}
.fw-sidebar-page .mh-wrapper > .mh-sidebar .mh-widget-title-inner { border: 0; padding: 0; }
.fw-sidebar-page .mh-wrapper > .mh-sidebar input[type="email"] {
    max-width: 100%;
    background: var(--fw-surface);
    border-color: var(--fw-border);
}
.fw-sidebar-page .mh-wrapper > .mh-sidebar .wp-block-jetpack-subscriptions button {
    color: var(--post-button-ink);
    white-space: normal;
}
.fw-sidebar-page .mh-wrapper > .mh-sidebar a:focus-visible,
.fw-sidebar-page .mh-wrapper > .mh-sidebar button:focus-visible,
.fw-sidebar-page .mh-wrapper > .mh-sidebar input:focus-visible {
    outline: 3px solid var(--post-accent);
    outline-offset: 3px;
}
@media (max-width: 960px) {
    .fw-sidebar-page .mh-wrapper:has(> #main-content > article) { grid-template-columns: minmax(0, 1fr); }
    .fw-sidebar-page .mh-wrapper > .mh-sidebar {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px;
        align-items: start;
    }
    .fw-sidebar-page .mh-wrapper > .mh-sidebar .mh-widget { margin: 0; }
}
@media (max-width: 600px) {
    .fw-sidebar-page .mh-wrapper > .mh-sidebar { grid-template-columns: minmax(0, 1fr); }
}
/* Hololive: accent the article and sidebar while retaining section components. */
.single-post.fw-hololive-post .mh-wrapper {
    --post-accent: #007a8f;
    --post-tint: #edfafd;
    --post-highlight: #27c7df;
}
[data-fw-theme="dark"] .single-post.fw-hololive-post .mh-wrapper {
    --post-accent: #70dcea;
    --post-tint: #18333b;
    --post-highlight: #70dcea;
}
.single-post.fw-hololive-post article.category-hololive > .entry-header {
    padding-bottom: 20px;
    margin-bottom: 24px;
    border-bottom: 4px solid var(--post-highlight);
}
.single-post.fw-hololive-post .entry-meta-categories a,
.single-post.fw-hololive-post .entry-content p a:not(.wp-block-button__link),
.single-post.fw-hololive-post .entry-content .foilwire-sources a {
    color: var(--post-accent);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.single-post.fw-hololive-post .entry-content .foilwire-briefing {
    border-top-color: var(--post-highlight);
    background: var(--post-tint);
}
.single-post.fw-hololive-post .entry-content .foilwire-briefing h2 { color: var(--post-accent); }
.single-post.fw-hololive-post .entry-content:has(> .foilwire-deck) .wp-block-quote {
    border-left-color: var(--post-highlight);
    background: var(--post-tint);
}
.single-post.fw-hololive-post article.category-hololive a:focus-visible {
    outline: 3px solid var(--post-accent);
    outline-offset: 3px;
}

.single-post.fw-hololive-post .entry-content .foilwire-briefing li::marker { color: var(--post-accent); }

/* Jetpack sharing: aligned buttons with readable, theme-aware colors. */
.single-post .entry-content ul.wp-block-jetpack-sharing-buttons.jetpack-sharing-buttons__services-list {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 6px;
    margin: 24px 0;
    padding: 0;
    list-style: none;
    align-items: stretch;
}
.single-post .entry-content .wp-block-jetpack-sharing-buttons > li.jetpack-sharing-button__list-item {
    display: flex;
    position: relative;
    float: none;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
}
.single-post .entry-content .wp-block-jetpack-sharing-buttons a.jetpack-sharing-button__button {
    box-sizing: border-box;
    display: flex;
    position: relative;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-width: 0;
    min-height: 38px;
    margin: 0;
    padding: 6px 8px;
    border: 1px solid var(--fw-border);
    border-radius: 6px;
    background: var(--fw-soft);
    color: var(--fw-text);
    box-shadow: none;
    font: 600 12px/1.3 'Open Sans', Arial, sans-serif;
    text-decoration: none;
    text-align: center;
    white-space: normal;
}
.single-post .entry-content .wp-block-jetpack-sharing-buttons .social-logo {
    display: block;
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    margin: 0;
    fill: currentColor;
    color: var(--post-accent);
}
.single-post .entry-content .wp-block-jetpack-sharing-buttons .jetpack-sharing-button__service-label {
    min-width: 0;
    margin: 0;
    padding: 0;
    color: inherit;
    font: inherit;
    overflow-wrap: anywhere;
}
/* One compact row of icons; the article column is too narrow for seven names
   at most sizes. Each button keeps its name for screen readers. */
.single-post .entry-content .wp-block-jetpack-sharing-buttons a.jetpack-sharing-button__button { padding-inline: 4px; }
.single-post .entry-content .wp-block-jetpack-sharing-buttons .jetpack-sharing-button__service-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.single-post .entry-content .wp-block-jetpack-sharing-buttons a.jetpack-sharing-button__button:hover,
.single-post .entry-content .wp-block-jetpack-sharing-buttons a.jetpack-sharing-button__button:focus-visible {
    border-color: var(--post-accent);
    background: var(--post-accent);
    color: var(--post-button-ink);
    text-decoration: none;
}
.single-post .entry-content .wp-block-jetpack-sharing-buttons a.jetpack-sharing-button__button:is(:hover, :focus-visible) .social-logo {
    color: inherit;
}
.single-post .entry-content .wp-block-jetpack-sharing-buttons a.jetpack-sharing-button__button:focus-visible {
    outline: 3px solid var(--post-accent);
    outline-offset: 3px;
}
/* Keep Jetpack's copied-link notification outside the button's layout. Hidden
   until Jetpack's script shows it (an inline display style), even where Jetpack's
   own rule loads late, as on Set Reviews, whose row the theme adds. */
.single-post .entry-content .wp-block-jetpack-sharing-buttons .tooltiptext {
    display: none;
    position: absolute;
    z-index: 5;
    left: 50%;
    bottom: calc(100% + 8px);
    transform: translateX(-50%);
    width: max-content;
    max-width: min(220px, 80vw);
    padding: 8px 10px;
    border: 1px solid var(--fw-border);
    border-radius: 6px;
    background: var(--fw-text);
    color: var(--fw-surface);
    font: 600 12px/1.4 'Open Sans', Arial, sans-serif;
    pointer-events: none;
}

/* Related reading: Jetpack supplies images and relevance; the theme owns layout.
   These selectors also retain a readable layout if a post has no image. */
.single-post .mh-post-nav { display: none; }

.single-post #jp-relatedposts {
    clear: both;
    margin: 36px 0 30px;
    padding: 24px 0 0;
    border-top: 1px solid var(--fw-border);
}
.single-post #jp-relatedposts .jp-relatedposts-headline {
    display: block;
    float: none;
    margin: 0 0 20px;
    padding: 0;
    color: var(--fw-text);
    font-size: 21px;
    line-height: 1.3;
    font-weight: 800;
}
.single-post #jp-relatedposts .jp-relatedposts-headline em {
    font-style: normal;
    font-weight: inherit;
}
.single-post #jp-relatedposts .jp-relatedposts-headline em::before { display: none; }
.single-post #jp-relatedposts .jp-relatedposts-items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
}
.single-post #jp-relatedposts .jp-relatedposts-items::after { display: none; }
.single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post {
    box-sizing: border-box;
    float: none;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0 0 14px;
    opacity: 1;
    border-bottom: 1px solid var(--fw-border);
    background: transparent;
    overflow-wrap: anywhere;
}
.single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post > a:has(img) {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 4 / 3;
    margin: 0 0 12px;
    overflow: hidden;
    border-radius: 6px;
    background: var(--fw-image-placeholder);
}
.single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: none;
    margin: 0;
    padding: 0;
    object-fit: contain;
    border: 0;
}
.single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title {
    display: block;
    margin: 0 0 8px;
    padding: 0;
    font-size: 16px;
    line-height: 1.45;
    font-weight: 700;
}
.single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a {
    color: var(--fw-text);
    font: inherit;
    text-decoration: none;
    box-shadow: none;
    border: 0;
}
.single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover {
    color: var(--post-accent);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.single-post #jp-relatedposts a:focus-visible {
    outline: 2px solid var(--post-accent);
    outline-offset: 3px;
}
.single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date,
.single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context {
    display: block;
    margin: 3px 0 0;
    color: var(--fw-muted);
    font-size: 12px;
    line-height: 1.5;
    opacity: 1;
}
.single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-excerpt { display: none; }

@media (max-width: 767px) {
    .single-post #jp-relatedposts .jp-relatedposts-items {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }
    .single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:has(> a img) {
        display: grid;
        grid-template-columns: clamp(90px, 27vw, 160px) minmax(0, 1fr);
        grid-template-rows: auto auto 1fr;
        column-gap: 16px;
        align-items: start;
    }
    .single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post > a:has(img) {
        grid-column: 1;
        grid-row: 1 / span 4;
        width: 100%;
        margin: 0;
    }
    .single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title,
    .single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date,
    .single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context { grid-column: 2; }
    .single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title { font-size: 15px; }
}

/* Titles remain the keyboard-accessible link when Jetpack has no image. */
.single-post #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post a.jp-relatedposts-post-aoverlay { display: none; }
/* Commission note under the share buttons (functions.php): faint, small type. */
.single-post .entry-content .fw-affiliate-note {
    margin: 0 0 24px;
    padding: 0;
    color: var(--fw-muted);
    font-size: 12px;
    line-height: 1.5;
}
.single-post .entry-content .wp-block-jetpack-sharing-buttons + .fw-affiliate-note { margin-top: -14px; }
/* Understated post-only rights notice above the site footer. */
.single-post .fw-affiliate-disclosure {
    clear: both;
    box-sizing: border-box;
    max-width: 1080px;
    margin: 16px auto;
    padding: 0 20px;
    color: var(--fw-muted);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.6;
    text-align: center;
}

/* X posts arrive as a short quote and grow into a 420-990px card once X's script
   draws them, pushing the article down as it is read. Hold about their usual
   height until then; if X never loads (a blocker), give the space back. */
.entry-content .embed-x:has(> blockquote.twitter-tweet) {
    min-height: 560px;
    animation: fw-embed-release 0s 8s forwards;
}
@media (min-width: 601px) {
    .entry-content .embed-x:has(> blockquote.twitter-tweet) { min-height: 680px; }
}
@keyframes fw-embed-release { to { min-height: 0; } }

/* Slideshow dots are 6px; give each a 24px tap area without changing the look. */
.entry-content .wp-block-jetpack-slideshow .swiper-pagination-bullet { position: relative; }
.entry-content .wp-block-jetpack-slideshow .swiper-pagination-bullet::after {
    content: "";
    position: absolute;
    inset: -9px;
}

/* A floated figure sizes itself from its image's width attribute until the file
   arrives (1024px on a phone), then snaps to the column. Cap it from the start. */
.entry-content figure:is(.alignleft, .alignright) { max-width: calc(100% - 20px); }
