/*
Theme Name: LDI
Theme URI: https://ldidata.com
Description: Learn Data Insights v3 site - the approved HTML page prototypes served as full-page templates. Pages are generated into pages/*.php by `npm run build:site` from site/pages/; edit the prototypes, not the generated files. Single CTA (Get free LDI membership), FD-led homepage, brand tokens throughout.
Author: Learn Data Insights
Version: 0.1.0
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: ldi
*/

/* GENERATED FILE - do not edit. Source: site/shared/resource-hub.css
   Rebuild with: npm run build:site

   Enqueued by functions.php (ldi_enqueue_theme_styles) on wp_enqueue_scripts,
   so wp_print_styles prints it on wp_head at priority 8 - ahead of the theme's
   own chrome <style> at priority 20 and of every page's inline <style>, which
   injectWp() emits immediately after wp_head(). Page CSS therefore still wins
   every cascade tie, which is what AB#296 was about. */

/* ---------------------------------------------------------------------------
 * Resource hub component (AB#304).
 *
 * The card grid shared by the five "hub" pages: Courses, Events, ICAEW
 * Resources, Conference Sessions, Podcast Appearances. Until now each of those
 * five carried its own byte-identical copy of these 24 rules in its inline
 * <style> block; this is the single copy, served from the theme's enqueued
 * stylesheet.
 *
 * The prototypes in site/pages/ KEEP their copy so they still open standalone
 * in a browser. scripts/build-site.mjs strips the copy on the way into the
 * theme and fails the build if a page's copy has drifted from this file - that
 * assertion is the point of the exercise, not a side effect.
 *
 * Deliberately self-contained: every colour and font here is a literal, not a
 * var(). The five pages do NOT agree on their :root tokens (see AB#304's
 * inventory - 12 different :root blocks across 18 pages, two distinct design
 * systems), so a var() here would resolve differently per page. Keep it that
 * way until the token layer itself is unified.
 * ------------------------------------------------------------------------- */

.ldi-resource-hero{background:linear-gradient(180deg,#FBF7F0 0%,#fff 100%);padding:72px 0 52px;border-bottom:1px solid #E5DFD3}
.ldi-resource-shell{width:min(100%,1200px);margin:0 auto;padding:0 28px}
.ldi-resource-eyebrow{display:inline-block;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.76rem;font-weight:500;letter-spacing:.17em;text-transform:uppercase;color:#D34949;margin-bottom:16px}
.ldi-resource-hero h1{font-family:'Fraunces',Georgia,serif;font-size:clamp(2.35rem,4.8vw,3.8rem);font-weight:500;line-height:1.08;letter-spacing:-.02em;color:#0E1D35;margin:0 0 16px}
.ldi-resource-hero p{max-width:72ch;color:#5A5A5A;font-size:1.05rem;margin:0}
.ldi-resource-list{padding:76px 0 88px;background:#0E1D35;color:#fff}
.ldi-resource-list__head{text-align:center;max-width:720px;margin:0 auto 48px}
.ldi-resource-list__head h2{font-family:'Fraunces',Georgia,serif;font-size:clamp(1.8rem,3.2vw,2.45rem);font-weight:500;line-height:1.12;color:#fff;margin:0 0 12px}
.ldi-resource-list__head p{color:rgba(240,233,220,.7);margin:0}
.ldi-resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ldi-resource-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:6px;transition:transform .2s ease,background .2s ease,border-color .2s ease}
.ldi-resource-card:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.18);transform:translateY(-2px)}
.ldi-resource-card__media{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;background:#16304F}
.ldi-resource-card__media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.ldi-resource-card:hover .ldi-resource-card__media img{transform:scale(1.025)}
.ldi-resource-card__body{display:flex;flex-direction:column;flex:1;padding:28px}
.ldi-resource-card__type{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(184,137,92,.95);margin-bottom:12px}
.ldi-resource-card h3{font-family:'Fraunces',Georgia,serif;font-size:1.18rem;font-weight:600;line-height:1.25;color:#fff;margin:0 0 10px}
.ldi-resource-card h3 a{color:#fff;text-decoration:none}
.ldi-resource-card p{font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:.9rem;line-height:1.62;color:rgba(240,233,220,.68);margin:0 0 20px;flex:1}
.ldi-resource-card__link{align-self:flex-start;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.74rem;letter-spacing:.04em;color:rgba(184,137,92,.95);border-bottom:1px solid rgba(184,137,92,.35);padding-bottom:2px;text-decoration:none}
.ldi-resource-card__link:hover{color:#fff;border-color:rgba(255,255,255,.5)}
@media(max-width:900px){.ldi-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.ldi-resource-hero{padding:52px 0 38px}.ldi-resource-list{padding:56px 0 64px}.ldi-resource-grid{grid-template-columns:1fr}.ldi-resource-card__body{padding:24px}}
