/**
 * R3.7A.2A: Insights-archive-SPECIFIC rules only -- genuine differences from Portfolio, never
 * duplicated generic behavior (the shared hero/results shell, filter drawer/chips/active-pills/
 * Clear-All/empty-state/pagination-suppression contract lives in the new shared `fgma-archive.css`,
 * consumed here unchanged via the generic `.fgma-archive-*` classes).
 *
 * Grid columns themselves (Production-confirmed: 2 mobile / 3 tablet+desktop, no 4-column breakpoint,
 * unlike Portfolio's 4-column desktop grid) are owned natively by Elementor's own Loop Grid widget
 * settings, exactly as Portfolio's own 4-column grid is -- never Custom CSS here.
 *
 * The grid GAP is a genuine, confirmed Insights-specific difference from Portfolio's own `--fgma-
 * space-sm` gap: Production's real values (`gap-x-lg`/`gap-y-xl` below its own `lg:` breakpoint) map
 * to the already-existing `--fgma-space-lg`/`--fgma-space-xl` tokens -- so `.fgma-insights-archive-
 * results` (applied alongside the shared, generic `.fgma-archive-results` class -- both together, the
 * same "generic shell class + archive-specific class only for the true difference" pattern
 * `.fgma-project-archive-card`/`.fgma-insight-card` already use for cards) owns it here, scoped so it
 * can never leak onto Portfolio's or any future archive's own `.fgma-archive-results` element.
 *
 * R3.7A.2E correction: R3.7A.2A missed Production's own `lg:gap-2xl` responsive override (confirmed
 * live: the grid's real class list is `grid-cols-2 gap-x-lg gap-y-xl md:grid-cols-3 lg:gap-2xl`) --
 * AT DESKTOP, Production's real gap is `--space-2xl` on BOTH axes (`gap` shorthand), not `gap-x-lg`/
 * `gap-y-xl`, which only apply below the `lg` breakpoint. This is the root cause of the confirmed
 * ~40px-vs-~80px DEV/Production mismatch: `--fgma-space-2xl` (confirmed byte-identical clamp formula
 * to Production's own `--space-2xl`) computes to ~80px at typical desktop viewports, matching the
 * confirmed real measurement, versus `--fgma-space-lg`'s own ~40px. Also confirms Production's real
 * `lg:` breakpoint for THIS site is `min-width: 900px` -- re-verified directly against the live
 * generated CSS's own `@media` wrapper (`@media (min-width:900px){...lg\:gap-2xl{gap:var(--space-
 * 2xl)}...}`), NOT the Tailwind framework default of 1024px R3.7A.2A had assumed -- reused here, and
 * corrected below on the card title rule that shares the identical real breakpoint.
 */
.fgma-insights-archive-results .elementor-widget-loop-grid .elementor-grid {
    column-gap: var(--fgma-space-lg);
    row-gap: var(--fgma-space-xl);
}

@media (min-width: 900px) {
    .fgma-insights-archive-results .elementor-widget-loop-grid .elementor-grid {
        column-gap: var(--fgma-space-2xl);
        row-gap: var(--fgma-space-2xl);
    }
}

/**
 * `.fgma-insight-card` -- a genuinely different card contract from `.fgma-project-archive-card`
 * (different CPT, different typography scale, different metadata semantics: Category text, not a
 * Practice Area line), even though the underlying structural PATTERN -- fixed 3:2 media frame,
 * `overflow: hidden`, hover-zoom on the real descendant `<img>` only (never the frame/wrapper itself),
 * colored title on hover -- is the exact same proven recipe R3.7A.1A-R4/R8 and R3.7A.1-V5 already
 * solved for Portfolio; confirmed live against Production's own real Insight card
 * (`.zoom-image{aspect-[3/2]}`, `.base-image{object-cover;group-hover:scale-[1.04]}`,
 * `.header-5{group-hover:text-red}`, `.text-grey.paragraph-sm`). Physical `width`/`height` (not
 * logical `inline-size`/`block-size`) are used deliberately on the image, mirroring the confirmed R8
 * rationale (mapping onto the exact same property Elementor's own competing `.elementor img{height:
 * auto}` rule sets).
 */
.fgma-insight-card__media {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: var(--fgma-media-ratio);
}

.elementor .fgma-insight-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s cubic-bezier(.4, 0, .2, 1);
}

.fgma-insight-card.fgma-insight-card__link:hover .fgma-insight-card__media img,
.fgma-insight-card.fgma-insight-card__link:focus-within .fgma-insight-card__media img {
    transform: scale(1.04);
}

/**
 * Title: Production's own confirmed real contract -- `AvenirMedium`/`--step-2`/`line-height:1.35` at
 * desktop (`lg:header-5`), `--space-md` at mobile/tablet (`.paragraph-list-item`) -- both map to
 * already-existing FGMA tokens (`--fgma-weight-medium`, `--fgma-step-2`, `--fgma-space-md`), no new
 * token introduced. Hover color mirrors the identical proven Portfolio title-hover pattern
 * (R3.7A.1-V3): the outer card link's own `:hover`/`:focus-within` recolors the title to the confirmed
 * brand-red token.
 *
 * R3.7A.2E correction: the desktop breakpoint below was `min-width: 1024px`, an unverified assumption
 * ("Tailwind's default `lg`"). Re-verified directly against Production's own live generated CSS this
 * pass (while investigating the grid-gap fix, same file, same `lg:` breakpoint family): THIS site's
 * real `lg:` breakpoint is `min-width: 900px` (confirmed via the actual `@media` wrapper around
 * `.lg\:gap-2xl`/`.lg\:header-5` alike) -- corrected to match exactly.
 *
 * R3.7A.2C: `color` corrected -- confirmed live, the Insight Archive Card's title is Elementor's newer
 * Atomic Heading widget (`e-heading-base`), a materially different DOM/link shape from Portfolio's
 * classic Heading widget: the visible text is a direct `<h2>` child of the card's own outer `<a>`
 * (`.fgma-insight-card.fgma-insight-card__link`), never wrapped in its own inner `<a>`/`.elementor-
 * heading-title` the way Portfolio's card title is -- and the Atomic widget itself sets no `color` of
 * its own anywhere in its generated CSS (confirmed: `.e-heading-base{margin:0px;}` is its only real
 * base rule). The title text was therefore falling through to plain CSS inheritance from its ancestor
 * `<a>`, landing on the theme's own real `hello-elementor` reset default,
 * `a{background-color:transparent;color:#c36;text-decoration:none}` (`#c36` = `#cc3366`, confirmed
 * live in `reset.css`) -- (0,0,1) specificity. This selector's own single class already reaches
 * (0,1,0), strictly greater, so it wins outright regardless of load order with no extra compounding
 * needed. Reuses the confirmed real FGMA black token, the same one Portfolio's own card title rest
 * state ultimately resolves to (there, via Elementor's classic-widget Style-tab Global Color binding
 * instead, since that DOM shape already had its own inner `<a>`/heading-title element for Elementor's
 * own per-instance CSS to target). This is a genuinely Insight-card-specific fix, not a shared
 * archive-card contract: Project's classic-widget DOM never has this gap at all, so there is nothing
 * to genericize here.
 */
.fgma-insight-card__title {
    display: block;
    margin-block-start: var(--fgma-space-sm);
    font-family: var(--fgma-font-family);
    font-weight: var(--fgma-weight-medium);
    font-size: var(--fgma-space-md);
    line-height: 1.35;
    color: var(--e-global-color-v4-fgma-black);
    transition: color .5s cubic-bezier(.4, 0, .2, 1);
}

/**
 * R3.7A.2L: confirmed live root cause of "effectively no vertical space between media and title" --
 * the rule above's own `margin-block-start` was already correct (already the confirmed real Production
 * value: Production's real title class includes `mt-sm`, which maps to `--space-sm`, byte-identical to
 * the existing `--fgma-space-sm` token already used above -- re-measured fresh this pass, not assumed)
 * but was silently losing to the SAME native rule the R3.7A.2C comment above already documented for a
 * different property: `.elementor .e-heading-base{margin:0px;}` (`base-desktop.css`) is (0,2,0),
 * strictly GREATER than the plain `.fgma-insight-card__title` selector's own (0,1,0) -- not even a
 * load-order tie, an outright loss -- so the native `margin:0px` always won regardless of stylesheet
 * order, zeroing the top margin entirely. Confirmed live the title element carries both classes
 * together (`<h2 class="fgma-insight-card__title e-heading-base">`). `.elementor
 * .fgma-insight-card__title.e-heading-base` reaches (0,3,0) using only real, confirmed-present stable
 * classes (`.elementor`, the semantic class, `.e-heading-base` -- the exact class the native rule
 * itself targets) -- strictly greater, wins outright regardless of load order, no `!important`. Scoped
 * to `margin-block-start` only -- deliberately NOT touching horizontal padding/geometry (frozen per
 * R3.7A.2K) and not a shared `.fgma-archive-card` concern: Portfolio's own card title is a classic
 * Heading widget (`elementor-widget-heading`, confirmed live, never `e-heading-base`) with its own
 * genuinely different `margin: 0` design (R3.7A.1A, no gap by design) -- the two archives have
 * different real Production contracts here, not a shared one to genericize.
 */
.elementor .fgma-insight-card__title.e-heading-base {
    margin-block-start: var(--fgma-space-sm);
}

@media (min-width: 900px) {
    .fgma-insight-card__title {
        font-size: var(--fgma-step-2);
    }
}

.fgma-insight-card.fgma-insight-card__link:hover .fgma-insight-card__title,
.fgma-insight-card.fgma-insight-card__link:focus-within .fgma-insight-card__title {
    color: var(--e-global-color-v4-fgma-brand-red);
}

/**
 * Category metadata line -- confirmed live identical typography contract to Portfolio's own
 * `.fgma-project-archive-card__meta` (R3.7A.1-V3/F2: `--fgma-step-0` + `line-height:1.35` +
 * `--fgma-gray`, the same Production `paragraph-sm`/`text-grey` mapping already proven), with the
 * confirmed real `mt-3xs` spacing token (`--fgma-space-3xs`, byte-identical clamp formula to
 * Production's own `--space-3xs`) instead of Portfolio's `margin: 0` (Portfolio's metadata sits
 * directly under the title with no gap of its own; Insights' real spacing evidence shows a small one).
 */
.fgma-insight-card__meta {
    margin: 0;
    margin-block-start: var(--fgma-space-3xs);
    font-size: var(--fgma-step-0);
    line-height: 1.35;
    color: var(--fgma-gray);
}

/**
 * R3.7Q-056: "Insights" eyebrow typography -- confirmed live, root cause is byte-identical to the
 * same gap already fixed for Team ("Team" eyebrow, R3.7Q-055): `.fgma-archive-eyebrow` (shared,
 * generic, `fgma-archive.css`) sets only `margin`/`font-size`, never `font-family` -- so it falls
 * through to Elementor's own generated per-template default (this template's own generated CSS,
 * confirmed live: `font-family: Roboto`). Color/font-size/line-height ratio already match Production
 * (re-measured live: `AvenirBook`/400/22.34px/1.35 line-height, color already the confirmed real
 * gray) -- only `font-family` (and, matching the Team fix's own reasoning for not leaving it to
 * incidental inheritance, `font-weight`) needs correcting.
 *
 * Scoped to `body.post-type-archive-insight` (WordPress's own native CPT-archive body class) so this
 * can never reach Team's, Expertise's or any other archive's own eyebrow -- mirrors the exact
 * scoping convention `fgma-team-archive.css` already established for the identical fix. No
 * `.elementor`/generated-class token is used, matching that same file's own established contract of
 * avoiding generated-class selectors entirely; not needed for specificity regardless:
 * `body.post-type-archive-insight .fgma-archive-eyebrow` is (0,2,1), which already exceeds the
 * generated rule's (0,2,0) on the tie-breaking third value alone -- no `!important`.
 */
body.post-type-archive-insight .fgma-archive-eyebrow {
    font-family: var(--fgma-font-family);
    font-weight: var(--fgma-weight-book);
}
