/**
 * DIVEIN — Foxiz Parent Theme Overrides
 *
 * Global CSS rules that modify Foxiz parent theme output, third-party plugin
 * styles, and WordPress core block defaults.
 *
 * Lives in its own file (NOT design-tokens.css) so the token file stays pure
 * — CSS custom properties only.
 *
 * Loaded on the frontend by `inc/divein-design-tokens.php` via
 * `divein_enqueue_foxiz_overrides_frontend()` with `divein-design-tokens`
 * declared as a dependency, so this file always loads AFTER tokens and can
 * reference `var(--*)` freely.
 *
 * Frontend-only: these rules target Foxiz frontend selectors (`.rbct`,
 * `.single-header`, etc.) that don't exist in editor contexts.
 *
 * ============================================================================
 * WHY THIS FILE EXISTS / WHAT BELONGS HERE
 * ============================================================================
 * This file absorbs rules that used to live in WordPress Customizer
 * "Additional CSS" (migrated in v1.43.0). Adding a new parent-theme override?
 * Put it here in the appropriate section. Design tokens go in design-tokens.css.
 * Block-specific rules go in the block's own Code/dev/blocks/{block}/style.css.
 *
 * @package FoxizChild
 * @since   1.42.6
 * @updated 1.43.0 — Absorbed Customizer "Additional CSS" rules
 */


/* ============================================================================
 * 1. FOXIZ PARENT THEME CSS VARIABLE OVERRIDES
 *
 * Overrides variables defined in foxiz/assets/css/main.css (~line 87) to
 * enforce DIVEIN typography site-wide. Goal: Open Sans for body, Montserrat
 * for headings, kill Raleway and Lora entirely.
 *
 * NOTE: Foxiz and Elementor each have their own font settings stored in the
 * WordPress database that override these variables for navigation and
 * Elementor widgets respectively. Those settings are changed manually in
 * WP admin:
 *   - Foxiz Customizer → Typography panels
 *   - Elementor editor → Site Settings → Global Fonts
 * See CHANGELOG v1.43.0 for the full manual checklist.
 *
 * `:root` uses `!important` defensively because WP Customizer "Additional CSS"
 * (which loads LAST in <head>) historically contained competing `:root`
 * overrides. With Additional CSS cleared in v1.43.0 the `!important` may be
 * droppable, but it costs nothing to keep as armor.
 * ============================================================================ */

:root {
  /* Foxiz typography variables (Foxiz defaults: Oxygen body, Raleway headings) */
  --body-family: 'Open Sans' !important;
  --body-fsize: 16px;
  --h1-family: 'Montserrat' !important;
  --h2-family: 'Montserrat' !important;
  --h3-family: 'Montserrat' !important;
  --h4-family: 'Montserrat' !important;
  --h5-family: 'Montserrat' !important;
  --h6-family: 'Montserrat' !important;
  --heading-family: 'Montserrat' !important;
  --meta-fsize: 11px;

  /* WP Gutenberg: kill the default content-width constraint — lets layout
     containers (Foxiz rb-wide-container etc.) fully control content width. */
  --wp--style--global--content-size: unset !important;
}


/* ============================================================================
 * 2. FOXIZ SINGLE HEADER + META
 * Post/review/page header byline, avatar, meta dates
 * ============================================================================ */

/* Multi-author avatar overlap — `!important` required because Foxiz sets
 * `.smeta-in > .meta-avatar img { margin-left: 0 !important }` which would
 * otherwise win due to its `!important` regardless of specificity. */
.meta-avatar.multiple-avatar img:not(:first-child) {
  margin-left: -10px !important;
}

/* Single-header meta avatar sizing (reset Foxiz left margin) */
.smeta-in > .meta-avatar img {
  width: 30px;
  height: 30px;
  margin-left: 0 !important;
  border-radius: var(--avatar-radius, 100%);
}

/* Meta row font size (10px intentional — below token scale) */
.single-header .smeta-sec div {
  font-size: 10px;
}

.smeta-sec {
  gap: 0 !important;
}

/* Top spacing on single-header — `!important` required because Foxiz has
 * layout-scoped rules like `.single-standard-1 .single-header { padding-top: 20px }`
 * with specificity (0,2,0) which beats our `.single-header` (0,1,0). */
.single-header {
  padding-top: var(--space-sm) !important;
}


/* ============================================================================
 * 3. FOXIZ CONTAINER WIDTHS
 * Article/review/top-guide content container widths
 * ============================================================================ */

.rb-small-container,
.type-review .rb-small-container,
.top-guide-page .rb-small-container {
  max-width: 1080px;
}

.rb-wide-container,
.type-review .rb-wide-container,
.top-guide-page .rb-wide-container {
  max-width: 1280px;
}


/* ============================================================================
 * 4. FOXIZ FEATURED IMAGE + GALLERY CAROUSEL
 * ============================================================================ */

.s-feat img {
  max-height: 650px;
}

.format-gallery-carousel .carousel-img-holder img {
  max-height: 450px;
  width: auto;
}


/* ============================================================================
 * 5. FOXIZ BODY + LISTS
 * Body line height + re-enable list bullets (Foxiz removes them by default)
 * ============================================================================ */

body {
  line-height: var(--leading-loose);
}

/* Re-enable list bullets in article/comment/Elementor/rb-text contexts.
 * `list-style: unset !important` is needed because Foxiz base removes bullets
 * via `list-style: none` at high specificity.
 *
 * `:not(.list)` excludes DIVEIN custom-styled lists that use the `.list` base
 * class (review-data block's `.list-check` / `.list-cross` pros/cons lists and
 * review-grid block's same pattern). These lists render checkmark / X icons
 * via `::before` pseudo-elements AND set their own `list-style: none`. Without
 * this exclusion, our `.rbct ul` selector has higher specificity (0,1,1) than
 * the block's `.list-check` (0,1,0), wins the cascade, `list-style: unset`
 * resolves to browser default `disc`, and users see both a bullet dot AND the
 * checkmark icon on every pros/cons item. Bug reported + fixed in v1.43.3.
 *
 * CONVENTION for future DIVEIN blocks: any block that custom-styles a `<ul>`
 * and wants to disable default bullets should apply `class="list ..."` so this
 * `:not(.list)` exclusion keeps the bullet-restoration rule from re-adding
 * markers over the top of custom `::before` icons. */
ul.wp-block-list,
.rbct ul:not(.list),
.comment-content ul:not(.list),
.elementor-widget-text-editor ul:not(.list),
.rb-text ul:not(.list) {
  padding-left: var(--space-md);
  list-style: unset !important;
}

.comment-content li,
.rbct li,
.elementor-widget-text-editor li {
  position: relative;
  margin-bottom: 0;
}

.rbct li > ol,
.rbct li > ul,
.comment-content li > ol,
.comment-content li > ul,
.elementor-widget-text-editor li > ol,
.elementor-widget-text-editor li > ul {
  padding-top: 0;
  padding-left: var(--space-lg);
  margin-top: 0;
}


/* ============================================================================
 * 6. FOXIZ RELATED POSTS + POST LISTS
 * ============================================================================ */

.related-sec .p-wrap {
  border-bottom: 1px solid var(--gray-50);
}

.p-list-inline .entry-title:hover i {
  border-radius: 50%;
  background-color: transparent;
  color: var(--green-500);
}

.hover-ani-7 .p-url {
  background-image: linear-gradient(var(--green-300), var(--green-300));
}

.block-h.heading-layout-c6 {
  margin-top: -32px;
}


/* ============================================================================
 * 7. FOXIZ HEADER LOGO + AVATARS
 * ============================================================================ */

/* Header logo sizing. The `!important` on border-radius was removed in
 * v1.43.5 after the user cleared Elementor Kit's global `img { border-radius:
 * 10px }` rule that was the competing source. If a future Elementor Kit or
 * plugin re-introduces a global img border-radius, this may need `!important`
 * again — test via `getComputedStyle` on .logo-wrap img first. */
.logo-wrap img {
  border-radius: 0;
  max-height: 30px;
}

.the-logo a:hover,
.logo-wrap a:hover img {
  filter: brightness(1.5);
  opacity: 1;
}

/* Comment avatar hover zoom */
img.avatar {
  transition: transform var(--transition-fast);
}
img.avatar:hover {
  transform: scale(1.25);
}


/* ============================================================================
 * 8. FIGCAPTION DECORATIVE TOP-BORDER
 *
 * Foxiz default (foxiz/assets/css/main.css ~16262):
 *     figcaption:not(:empty):before, .wp-caption-text:before {
 *         display: var(--caption-bdisplay, inline-block);
 *         width: 30px;
 *         border-top: 1px solid;
 *     }
 *
 * We want a shorter, softer-colored version visible on image and embed block
 * figcaptions everywhere. Before v1.43.0 there was a Customizer rule hiding
 * ALL figcaption decorations site-wide, which forced us to use `.rbct`
 * specificity scoping and `!important` just to beat it (v1.42.7). With the
 * Customizer rule gone (v1.43.0), we can use a simple global selector without
 * `!important`.
 *
 * Visual diff vs Foxiz default: 20px width (vs 30px), `darkgray` border color
 * (vs currentColor = body text color), same position.
 * ============================================================================ */

.wp-block-image figcaption:before,
.wp-block-embed figcaption:before {
  display: inline-block;
  width: 20px;
  height: 0.3em;
  margin-right: 7px;
  content: '';
  border-top: 1px solid darkgray;
}


/* ============================================================================
 * 9. PRESTO PLAYER + PLYR
 * Video player (Plyr is bundled inside Presto Player's shadow DOM wrapper)
 * ============================================================================ */

/* Plyr element must fill its shadow-DOM wrapper. Required !important because
   Plyr ships inline styles on these elements. */
.plyr {
  height: 100% !important;
}

.plyr__video-wrapper {
  background: var(--color-white) !important;
}

/* Presto Player manages its own aspect-ratio — disable Foxiz's padding-bottom
   hack which creates double-height video embeds. */
.pvideo-embed.is-presto-player .embed-holder {
  padding-bottom: 0;
}

/* Presto Player video caption (`.widget-video-caption` class is added by
   `inc/divein-presto-player.php` when rendering the figcaption). */
figcaption.widget-video-caption.wp-caption-text {
  margin: 0 var(--space-md) var(--space-lg);
  font-size: var(--text-xs);
  text-align: center;
}

/* Header-video figcaption (Presto Player block inside site header) —
   positioned absolutely over the video at the bottom. 9px is intentional
   for overlay readability. */
header .presto-block-video figcaption {
  position: absolute;
  bottom: 5px;
  width: 100%;
  margin: 0;
  font-size: 9px;
  color: var(--color-white);
  text-align: center;
}


/* ============================================================================
 * 10. WORDPRESS CORE + ELEMENTOR — ROUNDED MEDIA
 * ============================================================================ */

.wp-block-video,
.elementor-image-carousel-wrapper {
  border-radius: var(--radius);
}


/* ============================================================================
 * 11. STACKABLE BLOCK OVERRIDES
 * Stackable is a third-party block library. These styles apply to specific
 * Stackable background schemes used across the site.
 *
 * NOTE on scheme IDs: `scheme-default-3` and `scheme-custom-7839` are
 * Stackable-generated class names tied to site-wide color schemes. If the
 * scheme IDs change (e.g. after a Stackable migration or rebuild), these
 * selectors need to be updated.
 * ============================================================================ */

.stk-block-feature {
  --stk-column-gap: var(--space-md);
}

.wp-block-stackable-feature.stk-block-feature {
  margin-bottom: var(--space-lg);
}

/* Stackable background scheme — beige/orange gradient (default-3) */
.stk--background-scheme--scheme-default-3 {
  background: linear-gradient(301deg, var(--orange-50) 0%, var(--beige-50) 60%, var(--beige-100) 100%);
  background-color: var(--beige-100);
  border-color: var(--beige-400);
  transition: background var(--transition-base);
}
.stk--background-scheme--scheme-default-3:hover {
  background: linear-gradient(101deg, var(--beige-100) 0%, var(--beige-100) 40%, var(--orange-50) 100%);
  background-color: var(--beige-100);
  border-color: var(--beige-600);
}

/* Stackable background scheme — blue radial (custom-7839) */
.stk--background-scheme--scheme-custom-7839 {
  background: radial-gradient(circle at 90% 20%, var(--blue-600) 0%, var(--blue-800) 45%, var(--blue-900) 100%);
  border: 1px solid rgba(255, 255, 255, 0.27);
  box-shadow: var(--gray-500) 0 0 8px 0, rgba(255, 255, 255, 0.05) 0 1px 9px 11px inset;
}
.stk--background-scheme--scheme-custom-7839:hover {
  background: radial-gradient(circle at 90% 20%, var(--blue-700) 0%, var(--blue-800) 45%, var(--blue-900) 100%);
  border: 1px solid rgba(255, 255, 255, 0.27);
  box-shadow: var(--gray-500) 0 0 8px 0, rgba(255, 255, 255, 0.05) 0 1px 9px 11px inset;
}
.stk--background-scheme--scheme-custom-7839 p {
  color: var(--lightblue-50);
}
.stk--background-scheme--scheme-custom-7839 .recommended-in a {
  background-color: var(--blue-50);
  border-radius: var(--radius-sm);
  padding: 2px var(--space-sm);
  text-decoration: none;
  font-size: var(--text-xs);
  color: var(--blue-800);
}
.stk--background-scheme--scheme-custom-7839 .is-style-cta-orange-highlight a {
  background: linear-gradient(to bottom, transparent 60%, var(--lightblue-600) 60%);
}
.stk--background-scheme--scheme-custom-7839 h4.stk-block-heading__text {
  color: var(--lightblue-50);
}


/* ============================================================================
 * 12. CONTENT CLASSES — used in post content / Elementor templates
 *
 * These class selectors are not emitted by any theme file — they're used as
 * hand-applied CSS classes in post content (Gutenberg HTML blocks) or
 * Elementor widget "CSS Classes" field. They're migrated here with a VERIFY
 * USAGE marker so a future cleanup can audit whether they're still referenced
 * in the site's content database.
 *
 * TODO v1.43+: Search wp_posts.post_content for each selector below and
 * delete any that have zero hits.
 * ============================================================================ */

/* Highlight-anchor effect (yellow-highlighter style underline) */
.blue-100-override a {
  background: linear-gradient(to bottom, transparent 60%, var(--blue-100) 60%);
}

/* "Recommended in X" pill list — used inside Stackable feature blocks */
.recommended-in {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 1px;
  align-items: center;
  margin-top: 0;
}
.recommended-in a {
  background-color: var(--orange-100);
  border-radius: var(--radius-sm);
  padding: 1px 6px;
  text-decoration: none;
  font-size: var(--text-xs);
  font-weight: 400;
  color: var(--orange-800);
}

/* `.defaultradius` utility — hand-applied in Gutenberg HTML blocks */
.defaultradius,
.defaultradius img {
  border-radius: var(--radius);
}

/* FAQ layout classes */
.faq-column {
  gap: var(--space-3xl);
}
.faq-wheretobuy {
  padding: 0 var(--space-xl);
  background-color: var(--green-50);
  border-radius: var(--radius);
}


/* ============================================================================
 * 13. AUTHOR ARCHIVE — CATEGORY PILL OVERLAY + HORIZONTAL SCROLL
 *
 * On author archive cards, the category pill row is pulled up to overlay the
 * bottom of the featured image and forced onto a single horizontally
 * scrollable line — mirrors the `.reviewbox-meta` scroll pattern used in
 * divein-foxiz-overrides.php for Top Guide pages (minus the JS-driven
 * scroll arrows — posts typically have 1–3 categories so overflow is rare).
 *
 * DOM for each card (Foxiz p-grid-box-2):
 *   .p-wrap > .grid-box
 *     > .feat-holder > .p-featured > a.p-flink > img         (featured image)
 *     > .p-categories.p-top > a.p-category                   (pill row — sibling)
 *     > h6.entry-title                                       (title)
 *
 * Because `.p-categories.p-top` is a SIBLING of `.feat-holder` (not a child),
 * absolute positioning against the image doesn't work without DOM shuffling.
 * Instead we pull the pill row up with a negative top margin + z-index so it
 * sits visually inside the image frame while staying in document flow. The
 * title then sits right below the pill row and the card shrinks slightly.
 *
 * Scoped to `body.author` only — `.p-categories.p-top` is reused by Foxiz in
 * other loop layouts site-wide. Do not broaden without testing every layout.
 * ============================================================================ */

body.author .p-categories.p-top {
  position: relative;
  /* z-index MUST beat Foxiz main.css `.grid-box .feat-holder { z-index: 10 }`
   * (line ~7071) — otherwise the featured image paints on top of the pill row.
   * Foxiz's own native overlay (`.feat-holder .p-top`, line ~8644) uses z-index
   * 20, so we stay under that. 15 is the safe middle ground. */
  z-index: 15;
  /* -35px = user's original -25px adjusted for the increased vertical
   * padding (was 6px → now 16px, delta 10px). Preserves the same visual
   * position — pills straddle the image bottom edge. */
  margin-top: -35px;
  margin-bottom: var(--space-xs); /* restore breathing room before the title */
  /* Vertical padding must accommodate the Foxiz hover shadow on
   * `.ecat-bg-1 .p-category:hover::before { box-shadow: 0 3px 12px ... }`
   * (foxiz main.css line ~19549). The shadow extends ~15px below the pill
   * (blur 12px + offset 3px). `overflow-x: auto` forces `overflow-y: auto`
   * (CSS spec), which clips at the padding-box edge. 16px > 15px → shadow
   * fits within the padding-box and is not clipped. */
  padding: 16px var(--space-sm);

  /* Single line + horizontal scroll when categories overflow the card width */
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;          /* Firefox */
  -ms-overflow-style: none;       /* Legacy Edge/IE */
}

/* Hide scrollbar in Chromium/Safari */
body.author .p-categories.p-top::-webkit-scrollbar {
  display: none;
}

/* Prevent individual pills from shrinking and keep labels on one line */
body.author .p-categories.p-top .p-category {
  flex-shrink: 0;
  white-space: nowrap;
}

/* Mouse-drag cursor hints (JS toggles .is-grabbing during drag) */
body.author .p-categories.p-top.is-overflowing {
  cursor: grab;
}
body.author .p-categories.p-top.is-grabbing {
  cursor: grabbing;
  user-select: none;
}

/* --- 13B: CSS mask-image fade indicator for overflow scroll ---
 *
 * Uses `mask-image` (NOT a wrapper div with pseudo-element gradients) to
 * fade the edges of the scroll container. This approach:
 * - Works on ANY background (image, white, gradient) because mask-image
 *   controls alpha of the element itself, not painting white on top.
 * - Doesn't need a wrapper div with `overflow: hidden` (which was
 *   clipping hover shadows and interfering with scroll).
 * - Fades the category pills themselves at the edges, signalling overflow.
 *
 * JS toggles classes on `.p-categories.p-top` directly:
 * - `.is-overflowing` = has overflow (enables mask)
 * - `.at-start` = scrolled to left edge (no left fade)
 * - `.at-end` = scrolled to right edge (no right fade)
 *
 * The mask has 3 states:
 * - at-start: fade right only   (mask: black 0, black calc(100%-32px), transparent 100%)
 * - at-end:   fade left only    (mask: transparent 0, black 32px, black 100%)
 * - middle:   fade both edges   (mask: transparent 0, black 32px, black calc(100%-32px), transparent 100%)
 */
body.author .p-categories.p-top.is-overflowing {
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0,
    black 32px,
    black calc(100% - 32px),
    transparent 100%
  );
  mask-image: linear-gradient(
    to right,
    transparent 0,
    black 32px,
    black calc(100% - 32px),
    transparent 100%
  );
}

/* At start (scroll position 0): no left fade, only right */
body.author .p-categories.p-top.is-overflowing.at-start {
  -webkit-mask-image: linear-gradient(
    to right,
    black 0,
    black calc(100% - 32px),
    transparent 100%
  );
  mask-image: linear-gradient(
    to right,
    black 0,
    black calc(100% - 32px),
    transparent 100%
  );
}

/* At end (scrolled all the way right): no right fade, only left */
body.author .p-categories.p-top.is-overflowing.at-end {
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0,
    black 32px,
    black 100%
  );
  mask-image: linear-gradient(
    to right,
    transparent 0,
    black 32px,
    black 100%
  );
}

/* At both start AND end (content fits — shouldn't have .is-overflowing but defend) */
body.author .p-categories.p-top.is-overflowing.at-start.at-end {
  -webkit-mask-image: none;
  mask-image: none;
}


/* ============================================================================
 * 14. POST FORMAT OVERLAY BADGES — GLASSMORPHISM BOTTOM-RIGHT ICON
 *
 * Post cards with a format (video / gallery / audio) get a small icon overlay
 * rendered via `.p-format-overlay.format-style-bottom` — Foxiz's default
 * positions it flush to the bottom-right corner of the featured image with a
 * quarter-round white background (`border-radius: 50% 0 0`). This override
 * rebrands that to a circular glassmorphism pill floating 10px inside the
 * image corner — cleaner visual and matches the DIVEIN overlay language used
 * elsewhere (lightbox backdrop, header meta pills).
 *
 * Site-wide on purpose — applies to every Foxiz post card with a format
 * overlay. If this needs to be scoped later (e.g. to `body.author` like
 * Section 13), add a scoping selector and test that the other contexts
 * (home, archives, related posts) still look right.
 *
 * Foxiz defaults being overridden (from foxiz/assets/css/main.css):
 *   line ~7736: `.p-format-overlay.format-style-bottom { right: 0; bottom: 0; z-index: 100 }`
 *   line ~7748: `.p-format-overlay.format-style-bottom .p-format { padding: 7px 5px 5px 7px; border-radius: 50% 0 0; background: var(--solid-white) }`
 *   line ~7779: `.format-style-bottom .gallery-count { top: 2px; right: 0 }`
 *   line ~20801 (@media ≥1025px): `.format-style-bottom.format-size-big .p-format { padding: 10px 7px 7px 10px }`
 *   line ~20805 (@media ≥1025px): `.format-style-bottom.format-size-big .p-format .gallery-count { top: 5px; right: 5px }`
 *
 * `padding: 8px !important` on the inner `.p-format` is a defensive guard
 * against the `@media (width >= 1025px)` Foxiz rule at ~20801 which sets
 * a larger asymmetric padding. Our rule has equal specificity (0,3,0) and
 * loads later, so source order would win — but media-query timing on load
 * can be subtle and the user's prototype included the `!important`, so we
 * keep it.
 * ============================================================================ */

.p-format-overlay.format-style-bottom {
  top: auto;
  right: 10px;
  bottom: 10px;
  left: auto;
  z-index: 100;
}

.p-format-overlay.format-style-bottom .p-format {
  position: relative;
  padding: 8px !important;
  border-radius: 50%;
  color: var(--body-fcolor);
  backdrop-filter: blur(30px);
  background-color: rgb(255 255 255 / 50%);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 30px;
}

.format-style-bottom.format-size-big .p-format .gallery-count {
  top: -2px;
  right: -5px;
}


/* ========================================================================
   §15 — Author archive CPT filter bar (v1.45.0)
   Horizontal pill navigation between author header and post grid.
   Server-side filtering via ?type= query parameter.
   ======================================================================== */

.divein-author-filter {
  padding: var(--space-lg) 0 var(--space-sm);
}

.divein-author-filter__bar {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
}

.divein-author-filter__label {
  font-family: var(--heading-family, 'Montserrat', sans-serif);
  font-size: var(--text-sm, 0.875rem);
  font-weight: 700;
  color: var(--body-fcolor, #1e1d1b);
  white-space: nowrap;
  margin-right: var(--space-xs, 0.25rem);
}

.divein-author-filter__pill {
  display: inline-flex;
  align-items: center;
  padding: 6px 16px;
  font-family: var(--heading-family, 'Montserrat', sans-serif);
  font-size: var(--text-sm, 0.875rem);
  font-weight: 600;
  line-height: 1.4;
  color: var(--lightblue-700, #3e82a9);
  background: transparent;
  border: 1.5px solid var(--lightblue-500, #6bb3d9);
  border-radius: 9999px;
  text-decoration: none;
  cursor: pointer;
  transition: all 150ms ease;
  white-space: nowrap;
}

.divein-author-filter__pill:hover {
  color: var(--color-white, #fff);
  background: var(--lightblue-500, #6bb3d9);
  border-color: var(--lightblue-500, #6bb3d9);
  text-decoration: none;
}

.divein-author-filter__pill.is-active {
  color: var(--color-white, #fff);
  background: var(--blue-900, #07275a);
  border-color: var(--blue-900, #07275a);
}

.divein-author-filter__pill.is-active:hover {
  background: var(--blue-800, #172d58);
  border-color: var(--blue-800, #172d58);
}

/* Mobile: slightly smaller pills */
@media (max-width: 767px) {
  .divein-author-filter__bar {
    gap: 6px;
  }
  .divein-author-filter__pill {
    padding: 4px 12px;
    font-size: 0.8125rem;
  }
}

/* ============================================================================
 * §16 — SearchWP form styling
 * ============================================================================
 * Styles for the SearchWP Live Ajax Search form widget (`.searchwp-form`).
 * Migrated from WP Customizer Additional CSS + icon replacement.
 * ============================================================================ */

/* Search input — icon space on the left */
form.searchwp-form input.swp-input--search {
  background-position: left 12px top 50% !important;
  padding-right: .7em !important;
  padding-left: 38px !important;
}

/* Quick-search hint text below input */
.searchwp-form-quick-search {
  font-size: 9px;
  margin-left: 38px;
  padding-top: 0;
  margin-top: -6px;
}

/* Submit button — circular pill with original arrow icon replacing "S" text.
 * Uses the original PNG asset provided in the design (52×52 RGBA, dark arrow).
 * The background property needs !important to beat SearchWP plugin inline styles. */
input.search-submit.swp-button {
  font-size: 0 !important;
  color: transparent !important;
  border-radius: 50px !important;
  line-height: 0 !important;
  height: 30px !important;
  width: 30px !important;
  padding: 0 !important;
  margin-top: auto;
  margin-bottom: auto;
  margin-left: -25px;
  z-index: 1;
  background: white url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAC9UlEQVR4AeyYS6hNURjHbxggySuvlBgor0gpIgNvIhMmhFIoeUTIQHmUgUdRFAbKo5iQV4hEoVCihIk8Ul4DJHmUuPf3H9x77l5n7X3XPue079dt3b7f/tZa59tnf//1nb3X2rddXRv7i4KsFzRWKFao4BmIP7mCJzz35WKFck9ZwSfEChU84bkvZ6FCK8n6B9yHEVCVWRC0CwVdYBw8hKVQsVkQ1LNZ9p1pH4eD0B5ymwVBvqRXM3gVukIusypIIqZzuAndIdgsC5KIsRxuQS8IMuuCJGI0B1UqSFSrCiLRUBtF4B3oB5lWa0EduFofGAYTYR4sg82wB47BBbgLL+AzhNpQAq9DN0i1LEEdOas/DAclNxe/BNbBdjgKl+EePIcP8Ac+gfpKWslLxG7GNoHESaS+Twn2ZiyPjST4Iig3XLn5BPUl7BX8hvfwDJTcJfwJOADbYAXMgQmgiujnUNHawfl5bBLBp8CXe51vcCPBg8GyzSe5fVBmPkGzyqJsDqwnrcWQMJ+gQYkI252tbno+QfVukOF+Jzc3n6A3bpDRviZee75Eej5B2hQmgox2dpKXnry4kvkE7efjPAse4YWblo8dvqv6BH0kUI9tPRy0OZxJfxGsBX3JIfwZuAFP4B38hKJM113OxfSTwyXNJ0gRvzi8hUeg7cZpvF66tENYQ3shzIAxMBD0xqkbdABt7bsm4xfAKtCTSFU/SfsKPICX8A3ymiZQa9DftBPTBKXFZ41r26OdxVOCbsNZOAx6xd6A16u1dhbjaQ+BHqC9Hy7IJGYakfr/A85vtRTkv0L26L/sj5s+bRTzpWkkpdHaglLSSgw/pjcVWhRDjHcvp3Er6H7T/fg1NCHLFTqPiCnwHYLNqqC9KNDTTE9bmuFmQVDzCqgtIXrD/R8uoxQZLKh0Ss1bW/hGLczX8FrXzuErNguCjpC9FubZ+NdQlVkQVJUA9+QoyJ0Ra/1YIWsVcfOJFXJnxFo/VshaRdx8YoXcGbHWbwAAAP//ATvMgAAAAAZJREFUAwACAWhphOPxgQAAAABJRU5ErkJggg==") no-repeat center / 16px 16px !important;
}

/* §17  WordPress alignment classes — float inside nested containers
 * WP layout system (.is-layout-flow > .alignleft) and Foxiz (.rbct > .alignleft)
 * both use child combinator — alignment breaks inside nested wrappers like
 * expandable blocks. These descendant-selector rules fix that.
 * Specificity (0,3,0) beats Foxiz .wp-block-image.is-resized (0,2,0). */
.rbct .wp-block-image.alignleft {
  float: left;
  margin-right: 1.5rem;
  margin-left: 0;
}
.rbct .wp-block-image.alignright {
  float: right;
  margin-left: 1.5rem;
  margin-right: 0;
}
.rbct .wp-block-image.aligncenter {
  margin-left: auto;
  margin-right: auto;
}

/* ================================================================
   §18  Author archive — H1 bio-title + H2 bio-subtitle (job)
   ----------------------------------------------------------------
   Paired with the `foxiz_author_bio_title()` pluggable override in
   `divein-foxiz-overrides.php`. The override renders:
     <h1 class="bio-title">Name [verified tick]</h1>
     <h2 class="bio-subtitle">Job title</h2>

   Foxiz's h1 base rule uses --h1-fsize (larger than h2 by default), so
   after the H2→H1 swap the name becomes visually more prominent —
   which matches its new semantic role as the true page H1.

   The H2 below it is a SUBTITLE, not a section heading. We style it
   to look subordinate: smaller, lighter weight, muted color, no
   decorative underline (which .bio-title inherits from Foxiz at
   main.css line ~17872).
   ================================================================ */

.author-header .bio-title {
  margin: 0;
}

.author-header .bio-subtitle {
  /* Visually subordinate to the H1. Muted tone, no underline. */
  font-size: var(--text-lg, 1.125rem);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: normal;
  color: var(--color-text-muted, #6b7280);
  margin: 6px 0 0;
  /* Kill Foxiz's H2 base color + any inherited text-decoration. */
  text-decoration: none;
}

