/* ========================================================= GLOBAL TYPOGRAPHY ========================================================= */ main.macro-home, main.macro-home *, main.macro-home p, main.macro-home h1, main.macro-home h2, main.macro-home h3, main.macro-home h4, main.macro-home h5, main.macro-home input, main.macro-home button, main.macro-home a, .site-header, .site-header *, .site-footer, .site-footer * { font-family: “Inter”, -apple-system, BlinkMacSystemFont, “Segoe UI”, Helvetica, Arial, sans-serif !important; } /* ========================================================= BACKGROUND ========================================================= */ body.home, body.page-template-front-page { background-color: #fffaf0 !important; } main.macro-home { background-color: #fffaf0 !important; background-image: /* orange / cream — top left */ radial-gradient( ellipse 72% 22% at -5% 8%, rgba(255,187,92,0.38) 0%, rgba(255,221,151,0.20) 38%, transparent 72% ), /* teal / green — top right */ radial-gradient( ellipse 68% 25% at 105% 18%, rgba(94,174,197,0.36) 0%, rgba(147,207,168,0.24) 42%, transparent 74% ), /* lavender — middle */ radial-gradient( ellipse 72% 24% at 52% 39%, rgba(137,126,255,0.30) 0%, rgba(192,183,255,0.18) 40%, transparent 72% ), /* yellow / green — right-middle */ radial-gradient( ellipse 62% 23% at 105% 57%, rgba(169,207,82,0.32) 0%, rgba(246,210,99,0.18) 44%, transparent 74% ), /* peach — lower left */ radial-gradient( ellipse 58% 22% at -5% 78%, rgba(255,178,110,0.28) 0%, rgba(255,222,184,0.14) 42%, transparent 72% ), /* lavender — lower right */ radial-gradient( ellipse 60% 20% at 78% 91%, rgba(177,163,255,0.20) 0%, rgba(211,204,255,0.10) 40%, transparent 72% ), linear-gradient( 180deg, #fffaf0 0%, #fffdf4 100% ) !important; background-repeat: no-repeat !important; background-size: 100% 100% !important; background-attachment: scroll !important; font-weight: 500; color: #424242; } main.macro-home p { font-weight: 500 !important; letter-spacing: -0.01em; } /* ========================================================= EYEBROW LABEL ========================================================= */ .macro-home .macro-eyebrow { font-size: 16px !important; line-height: 1.3 !important; font-weight: 600 !important; letter-spacing: 0 !important; color: #424242 !important; margin: 0 0 24px 0 !important; text-transform: none !important; } /* ========================================================= HERO ========================================================= */ .macro-home .macro-hero { min-height: calc(100vh – 100px); display: flex; align-items: center; padding: 80px 24px; } .macro-home .macro-hero-inner { max-width: 1080px; width: 100%; } .macro-home h1.macro-hero-title { font-size: clamp(38px, 5vw, 60px) !important; line-height: 1.03 !important; font-weight: 700 !important; letter-spacing: -0.035em !important; color: #424242 !important; max-width: 820px !important; margin: 0 0 28px 0 !important; text-transform: none !important; /* Prevent Abisko/browser hyphenation in the hero heading */ hyphens: none !important; -webkit-hyphens: none !important; -ms-hyphens: none !important; word-break: normal !important; overflow-wrap: normal !important; } .macro-home .macro-hero-lede { font-size: 16px !important; line-height: 1.55 !important; font-weight: 500 !important; color: #626262 !important; max-width: 610px !important; margin: 0 0 34px 0 !important; } /* ========================================================= BUTTONS ========================================================= */ .macro-home .macro-btn-primary .wp-block-button__link, .macro-home .macro-btn-secondary .wp-block-button__link { background: #dcecff !important; color: #257bfe !important; border: 0 !important; border-radius: 14px !important; padding: 13px 20px !important; font-family: “Inter”, sans-serif !important; font-size: 16px !important; line-height: 1.2 !important; font-weight: 600 !important; letter-spacing: -0.01em !important; text-transform: none !important; text-decoration: none !important; box-shadow: none !important; transition: background-color 0.18s ease, transform 0.18s ease !important; } .macro-home .macro-btn-primary .wp-block-button__link:hover, .macro-home .macro-btn-secondary .wp-block-button__link:hover { background: #c9e2ff !important; color: #126cf3 !important; transform: translateY(-1px); } /* ========================================================= GENERAL SECTION HEADINGS ========================================================= */ .macro-home h2.macro-section-title { font-size: 30px !important; line-height: 1.08 !important; font-weight: 700 !important; letter-spacing: -0.025em !important; color: #424242 !important; margin: 0 0 20px 0 !important; text-transform: none !important; } .macro-home h2.macro-research-headline { font-size: clamp(26px,3.5vw,32px) !important; line-height: 1.08 !important; font-weight: 700 !important; letter-spacing: -0.025em !important; color: #424242 !important; max-width: 640px !important; margin: 0 !important; text-transform: none !important; } .macro-home .macro-section-body { font-size: 16px !important; line-height: 1.55 !important; font-weight: 500 !important; color: #626262 !important; margin: 0 0 26px 0 !important; } /* ========================================================= MISSION ========================================================= */ .macro-home .macro-mission-section { min-height: 90vh; display: flex; align-items: center; padding: 80px 24px; } .macro-home .macro-mission-inner { max-width: 1080px; width: 100%; gap: 48px; } /* ========================================================= VIDEO ========================================================= */ .macro-home .macro-video-label { font-size: 14px !important; line-height: 1.5 !important; font-weight: 500 !important; color: #626262 !important; margin: 14px 0 0 0 !important; } .macro-home .macro-video-placeholder { background: #424242; border-radius: 10px; aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.2s; } .macro-home .macro-video-placeholder:hover { background: #222; } .macro-home .macro-video-play { width: 60px; height: 60px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,0.35); background: rgba(255,255,255,0.08); display: flex; align-items: center; justify-content: center; } .macro-home .macro-video-play svg { margin-left: 3px; } /* ========================================================= RESEARCH ========================================================= */ .macro-home .macro-research-section { max-width: 1080px; margin: 0 auto; padding: 64px 24px 110px; } .macro-home .macro-research-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 32px; } .macro-home .macro-research-grid { display: grid !important; grid-template-columns: repeat(3,1fr) !important; column-gap: 32px !important; row-gap: 48px !important; } .macro-home .macro-research-card { display: block; text-decoration: none !important; color: inherit; } .macro-home .macro-research-chart { border-radius: 10px; overflow: hidden; aspect-ratio: 5 / 3.5; margin-bottom: 16px; border: 1.5px solid rgba(100,100,100,0.14); background: rgba(255,253,244,0.74); padding: 24px; display: flex; align-items: center; justify-content: center; transition: transform 0.2s ease, box-shadow 0.2s ease; } .macro-home .macro-research-card:hover .macro-research-chart { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(15,23,42,0.08); } .macro-home .macro-research-chart svg { width: 100%; height: 100%; display: block; } .macro-home .macro-research-title { font-size: 15px !important; line-height: 1.45 !important; font-weight: 500 !important; color: #257bfe !important; text-decoration: underline !important; text-underline-offset: 3px !important; margin: 0 0 6px 0 !important; letter-spacing: -0.01em !important; text-transform: none !important; } .macro-home .macro-research-card:hover .macro-research-title { opacity: 0.72; } .macro-home .macro-research-date { font-size: 12px !important; color: #959389 !important; margin: 0 !important; font-weight: 500 !important; } /* ========================================================= LATEST UPDATES ========================================================= */ .macro-home .macro-updates-section { max-width: 1080px; margin: 0 auto; padding: 0 24px 110px; } .macro-home .macro-updates-grid { display: grid !important; grid-template-columns: 1.4fr 1fr !important; gap: 48px !important; align-items: start !important; } .macro-home .macro-featured-image { aspect-ratio: 4 / 3; background: #dcecff; border-radius: 10px; display: flex; align-items: center; justify-content: center; overflow: hidden; } .macro-home .macro-featured-image span { font-size: 13px; font-weight: 500; color: #257bfe; } .macro-home .macro-tag-pill { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 8px; font-size: 10px; font-weight: 600; background: #dcecff; color: #257bfe; text-transform: uppercase; letter-spacing: 0.04em; } .macro-home .macro-featured-meta, .macro-home .macro-side-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; font-size: 13px; color: #626262; font-weight: 500; } .macro-home .macro-featured-title { font-size: 24px !important; line-height: 1.2 !important; font-weight: 700 !important; letter-spacing: -0.025em !important; color: #424242 !important; margin: 0 0 14px 0 !important; text-transform: none !important; } .macro-home .macro-featured-excerpt { font-size: 16px !important; line-height: 1.55 !important; font-weight: 500 !important; color: #626262 !important; margin: 0 0 22px 0 !important; } .macro-home .macro-updates-button { display: inline-block; background: #dcecff !important; color: #257bfe !important; padding: 13px 20px !important; border-radius: 14px !important; font-size: 16px !important; font-weight: 600 !important; letter-spacing: -0.01em !important; text-decoration: none !important; } .macro-home .macro-updates-button:hover { background: #c9e2ff !important; } .macro-home .macro-side-item { padding: 20px 0; border-bottom: 1px solid rgba(100,100,100,0.14); } .macro-home .macro-side-item:last-child { border-bottom: none; } .macro-home .macro-side-title { font-size: 16px !important; line-height: 1.4 !important; font-weight: 600 !important; letter-spacing: -0.015em !important; color: #424242 !important; margin: 0 !important; text-transform: none !important; } /* ========================================================= NEWSLETTER ========================================================= */ .macro-home .macro-newsletter { max-width: 1080px; margin: 0 auto 100px !important; padding: 52px 56px !important; border: none !important; border-radius: 14px; background: linear-gradient( 105deg, rgba(255,250,241,0.92) 0%, rgba(255,247,223,0.86) 48%, rgba(186,195,245,0.84) 100% ); } .macro-home .macro-newsletter-eyebrow { font-size: 28px !important; line-height: 1.15 !important; font-weight: 700 !important; letter-spacing: -0.035em !important; color: #111 !important; margin: 0 0 10px 0 !important; text-transform: none !important; } .macro-home .macro-newsletter-headline { font-size: 16px !important; line-height: 1.5 !important; font-weight: 600 !important; letter-spacing: -0.01em !important; color: #424242 !important; margin: 0 0 22px 0 !important; max-width: none !important; text-transform: none !important; } .macro-home .macro-newsletter-form { display: flex !important; flex-wrap: nowrap !important; gap: 0 !important; width: 100%; max-width: 460px !important; border: 2px solid #257bfe; border-radius: 13px; overflow: hidden; background: rgba(255,255,255,0.30); } .macro-home .macro-newsletter-input { flex: 1; min-width: 0 !important; height: 58px; padding: 0 16px !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; font-size: 15px !important; font-weight: 500 !important; color: #424242 !important; outline: none !important; box-shadow: none !important; } .macro-home .macro-newsletter-input::placeholder { color: #777 !important; opacity: 1; } .macro-home .macro-newsletter-button { height: 58px; padding: 0 22px !important; border: 0 !important; border-left: 2px solid #257bfe !important; border-radius: 0 !important; background: transparent !important; font-size: 15px !important; font-weight: 600 !important; color: #257bfe !important; cursor: pointer; } .macro-home .macro-newsletter-button:hover { background: rgba(220,236,255,0.65) !important; } /* ========================================================= MOBILE ========================================================= */ @media (max-width: 900px) { .macro-home .macro-hero { min-height: auto; padding: 70px 24px 90px; } .macro-home h1.macro-hero-title { font-size: 38px !important; } .macro-home .macro-mission-section { min-height: auto; padding: 70px 24px 100px; } .macro-home .macro-research-grid { grid-template-columns: 1fr !important; row-gap: 34px !important; } .macro-home .macro-updates-grid { grid-template-columns: 1fr !important; gap: 36px !important; } .macro-home h2.macro-section-title, .macro-home h2.macro-research-headline { font-size: 27px !important; } } @media (max-width: 700px) { .macro-home .macro-btn-primary .wp-block-button__link, .macro-home .macro-btn-secondary .wp-block-button__link { font-size: 15px !important; padding: 12px 18px !important; border-radius: 12px !important; } .macro-home .macro-newsletter { margin-left: 18px !important; margin-right: 18px !important; padding: 36px 24px !important; } .macro-home .macro-newsletter-eyebrow { font-size: 25px !important; } .macro-home .macro-newsletter-form { max-width: 100% !important; } .macro-home .macro-newsletter-input, .macro-home .macro-newsletter-button { height: 54px; } } /* ========================================================= FIGMA SCALE MATCH — HERO + RESEARCH Final overrides ========================================================= */ /* ———- HERO: larger, narrower text ratio ———- */ .macro-home .macro-hero { min-height: calc(100vh – 76px) !important; display: flex !important; align-items: center !important; padding: 105px 24px 125px !important; } .macro-home .macro-hero-inner { width: calc(100% – 48px) !important; max-width: 1360px !important; margin-left: auto !important; margin-right: auto !important; } .macro-home .macro-hero .macro-eyebrow { font-size: 18px !important; line-height: 1.3 !important; font-weight: 600 !important; margin-bottom: 30px !important; } .macro-home h1.macro-hero-title { font-size: clamp(64px, 5vw, 86px) !important; line-height: 0.99 !important; font-weight: 700 !important; letter-spacing: -0.045em !important; max-width: 860px !important; margin: 0 0 42px 0 !important; } .macro-home .macro-hero-lede { font-size: 18px !important; line-height: 1.55 !important; font-weight: 500 !important; max-width: 760px !important; margin: 0 0 42px 0 !important; } .macro-home .macro-hero .macro-btn-primary .wp-block-button__link { font-size: 18px !important; line-height: 1.2 !important; padding: 15px 27px !important; border-radius: 14px !important; } /* ———- RESEARCH: use more desktop width ———- */ .macro-home .macro-research-section { width: calc(100% – 96px) !important; max-width: 1400px !important; margin-left: auto !important; margin-right: auto !important; padding: 90px 0 125px !important; } /* Heading/button row */ .macro-home .macro-research-section > .wp-block-columns { width: 100% !important; align-items: flex-start !important; gap: 48px !important; margin-bottom: 48px !important; } .macro-home .macro-research-section > .wp-block-columns > .wp-block-column:first-child { flex-basis: 68% !important; } .macro-home .macro-research-section > .wp-block-columns > .wp-block-column:last-child { flex-basis: 32% !important; } .macro-home h2.macro-research-headline { font-size: clamp(36px, 3.3vw, 48px) !important; line-height: 1.03 !important; font-weight: 700 !important; letter-spacing: -0.04em !important; max-width: 790px !important; margin: 0 !important; } .macro-home .macro-research-section > .wp-block-columns .wp-block-buttons { margin-top: 2px !important; margin-bottom: 0 !important; } /* Bigger 3-column research cards */ .macro-home .macro-research-grid { width: 100% !important; display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: 38px !important; row-gap: 58px !important; } .macro-home .macro-research-chart { width: 100% !important; aspect-ratio: 1.38 / 1 !important; padding: 30px !important; margin-bottom: 18px !important; } .macro-home .macro-research-title { font-size: 17px !important; line-height: 1.35 !important; margin-bottom: 8px !important; } .macro-home .macro-research-date { font-size: 13px !important; } /* ———- Responsive ———- */ @media (max-width: 1400px) { .macro-home .macro-hero-inner { max-width: 1160px !important; } .macro-home h1.macro-hero-title { font-size: clamp(58px, 5.2vw, 76px) !important; max-width: 790px !important; } .macro-home .macro-research-section { width: calc(100% – 64px) !important; } } @media (max-width: 1000px) { .macro-home .macro-hero { min-height: auto !important; padding: 90px 24px 105px !important; } .macro-home .macro-hero-inner { width: 100% !important; } .macro-home h1.macro-hero-title { font-size: 54px !important; max-width: 720px !important; } .macro-home .macro-hero-lede { font-size: 17px !important; max-width: 680px !important; } .macro-home .macro-research-section { width: calc(100% – 48px) !important; padding: 70px 0 100px !important; } .macro-home h2.macro-research-headline { font-size: 38px !important; } } @media (max-width: 900px) { .macro-home .macro-research-section > .wp-block-columns { gap: 24px !important; } .macro-home .macro-research-grid { grid-template-columns: 1fr !important; row-gap: 38px !important; } .macro-home .macro-research-chart { aspect-ratio: 16 / 10 !important; } } @media (max-width: 650px) { .macro-home .macro-hero { padding: 70px 22px 85px !important; } .macro-home .macro-hero .macro-eyebrow { font-size: 15px !important; margin-bottom: 24px !important; } .macro-home h1.macro-hero-title { font-size: 42px !important; line-height: 1.02 !important; max-width: 100% !important; margin-bottom: 28px !important; } .macro-home .macro-hero-lede { font-size: 16px !important; max-width: 100% !important; margin-bottom: 32px !important; } .macro-home .macro-hero .macro-btn-primary .wp-block-button__link { font-size: 16px !important; padding: 13px 21px !important; } .macro-home .macro-research-section { width: calc(100% – 36px) !important; } .macro-home .macro-research-section > .wp-block-columns { display: block !important; } .macro-home .macro-research-section > .wp-block-columns .wp-block-buttons { justify-content: flex-start !important; margin-top: 24px !important; } .macro-home h2.macro-research-headline { font-size: 31px !important; } } /* ========================================================= CONSISTENCY PASS — MATCH FIGMA HORIZONTAL RHYTHM Keeps hero sizing unchanged; aligns Research with Mission, Updates, and Newsletter instead of stretching edge-to-edge. ========================================================= */ .macro-home .macro-research-section { width: 100% !important; max-width: 1080px !important; margin-left: auto !important; margin-right: auto !important; padding: 90px 24px 125px !important; } .macro-home .macro-research-section > .wp-block-columns { width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; margin-bottom: 44px !important; gap: 40px !important; align-items: flex-start !important; } .macro-home .macro-research-section > .wp-block-columns > .wp-block-column:first-child { flex-basis: 70% !important; } .macro-home .macro-research-section > .wp-block-columns > .wp-block-column:last-child { flex-basis: 30% !important; } .macro-home h2.macro-research-headline { max-width: 700px !important; font-size: clamp(34px, 3vw, 44px) !important; line-height: 1.04 !important; letter-spacing: -0.035em !important; } .macro-home .macro-research-grid { width: 100% !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: 32px !important; row-gap: 54px !important; } .macro-home .macro-research-chart { width: 100% !important; aspect-ratio: 1.42 / 1 !important; padding: 28px !important; margin-bottom: 16px !important; } .macro-home .macro-research-title { font-size: 16px !important; line-height: 1.35 !important; margin-bottom: 7px !important; } .macro-home .macro-research-date { font-size: 12px !important; } /* Keep the research rail consistent at smaller widths too */ @media (max-width: 1100px) { .macro-home .macro-research-section { max-width: none !important; width: 100% !important; padding-left: 32px !important; padding-right: 32px !important; } } @media (max-width: 900px) { .macro-home .macro-research-section { padding: 70px 24px 100px !important; } .macro-home .macro-research-section > .wp-block-columns { display: block !important; margin-bottom: 36px !important; } .macro-home .macro-research-section > .wp-block-columns > .wp-block-column { flex-basis: 100% !important; } .macro-home .macro-research-section .wp-block-buttons { justify-content: flex-start !important; margin-top: 24px !important; } .macro-home .macro-research-grid { grid-template-columns: 1fr !important; row-gap: 38px !important; } .macro-home h2.macro-research-headline { font-size: 32px !important; max-width: 100% !important; } } @media (max-width: 650px) { .macro-home .macro-research-section { padding-left: 18px !important; padding-right: 18px !important; } } /* ========================================================= DYNAMIC HOME CONTENT Research = latest 6 posts in Research category Updates = latest 5 posts in Updates category ========================================================= */ /* ———- DYNAMIC RESEARCH GRID ———- */ .macro-home .macro-research-dynamic { width: 100% !important; } .macro-home .macro-research-dynamic .wp-block-latest-posts__list.is-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: 32px !important; row-gap: 54px !important; width: 100% !important; margin: 0 !important; padding: 0 !important; list-style: none !important; } .macro-home .macro-research-dynamic .wp-block-latest-posts__list.is-grid > li { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; min-width: 0 !important; display: flex !important; flex-direction: column !important; } .macro-home .macro-research-dynamic .wp-block-latest-posts__featured-image { width: 100% !important; aspect-ratio: 1.42 / 1 !important; margin: 0 0 16px 0 !important; padding: 18px !important; border: 1.5px solid rgba(100,100,100,0.14) !important; border-radius: 10px !important; overflow: hidden !important; background: rgba(255,253,244,0.74) !important; display: flex !important; align-items: center !important; justify-content: center !important; box-sizing: border-box !important; } .macro-home .macro-research-dynamic .wp-block-latest-posts__featured-image a { display: flex !important; width: 100% !important; height: 100% !important; align-items: center !important; justify-content: center !important; } .macro-home .macro-research-dynamic .wp-block-latest-posts__featured-image img { display: block !important; width: 100% !important; height: 100% !important; max-width: none !important; margin: 0 !important; object-fit: contain !important; transition: transform 0.2s ease !important; } .macro-home .macro-research-dynamic .wp-block-latest-posts__list > li:hover .wp-block-latest-posts__featured-image img { transform: translateY(-2px) !important; } .macro-home .macro-research-dynamic .wp-block-latest-posts__post-title { display: block !important; font-family: “Inter”, sans-serif !important; font-size: 16px !important; line-height: 1.35 !important; font-weight: 500 !important; letter-spacing: -0.01em !important; color: #257bfe !important; text-decoration: underline !important; text-decoration-thickness: 1px !important; text-underline-offset: 3px !important; margin: 0 0 7px 0 !important; hyphens: none !important; -webkit-hyphens: none !important; word-break: normal !important; overflow-wrap: normal !important; } .macro-home .macro-research-dynamic .wp-block-latest-posts__post-title:hover { opacity: 0.72 !important; } .macro-home .macro-research-dynamic .wp-block-latest-posts__post-date { display: block !important; margin: 0 !important; font-family: “Inter”, sans-serif !important; font-size: 12px !important; line-height: 1.4 !important; font-weight: 500 !important; color: #959389 !important; } /* ———- DYNAMIC UPDATES ———- */ .macro-home .macro-updates-loading, .macro-home .macro-updates-empty { padding: 48px 0 !important; font-size: 14px !important; line-height: 1.5 !important; font-weight: 500 !important; color: #959389 !important; } .macro-home .macro-featured-image-link { display: block !important; text-decoration: none !important; } .macro-home .macro-featured-image img { display: block !important; width: 100% !important; height: 100% !important; object-fit: cover !important; } .macro-home .macro-featured-title a, .macro-home .macro-side-title a { color: inherit !important; text-decoration: none !important; } .macro-home .macro-featured-title a:hover, .macro-home .macro-side-title a:hover { text-decoration: underline !important; text-underline-offset: 3px !important; } .macro-home a.macro-side-item { display: block !important; color: inherit !important; text-decoration: none !important; } .macro-home .macro-featured-image–fallback { background: #dcecff !important; } .macro-home .macro-featured-image–fallback span { color: #257bfe !important; font-size: 13px !important; font-weight: 600 !important; } /* ———- RESPONSIVE DYNAMIC CONTENT ———- */ @media (max-width: 900px) { .macro-home .macro-research-dynamic .wp-block-latest-posts__list.is-grid { grid-template-columns: 1fr !important; row-gap: 38px !important; } .macro-home .macro-research-dynamic .wp-block-latest-posts__featured-image { aspect-ratio: 16 / 10 !important; } } /* ========================================================= FINAL SECTION LABEL + RESEARCH/UPDATES FLOW FIX Important: WordPress’s Latest Posts block was previously aligned left, which can float the block and make the next section rise up beside/against it. This removes that behavior and forces normal document flow before adding the intended spacing. ========================================================= */ /* All four homepage section labels */ .macro-home .macro-hero .macro-eyebrow, .macro-home .macro-mission-section .macro-eyebrow, .macro-home .macro-research-section .macro-eyebrow, .macro-home .macro-updates-section .macro-eyebrow { font-size: 20px !important; line-height: 1.3 !important; font-weight: 600 !important; letter-spacing: -0.01em !important; color: #257bfe !important; margin-bottom: 28px !important; text-transform: none !important; } /* Force the dynamic Research grid to occupy normal page flow */ .macro-home .macro-research-dynamic { display: flow-root !important; width: 100% !important; float: none !important; clear: both !important; } .macro-home .macro-research-dynamic .wp-block-latest-posts, .macro-home .macro-research-dynamic .wp-block-latest-posts__list { float: none !important; clear: both !important; } /* Make the Research section fully contain its dynamic grid */ .macro-home .macro-research-section { display: flow-root !important; overflow: visible !important; padding-bottom: 100px !important; } /* Guaranteed visible separation before Latest Updates */ .macro-home .macro-updates-section { clear: both !important; margin-top: 0 !important; padding-top: 120px !important; } /* Tablet */ @media (max-width: 900px) { .macro-home .macro-hero .macro-eyebrow, .macro-home .macro-mission-section .macro-eyebrow, .macro-home .macro-research-section .macro-eyebrow, .macro-home .macro-updates-section .macro-eyebrow { font-size: 18px !important; margin-bottom: 24px !important; } .macro-home .macro-research-section { padding-bottom: 80px !important; } .macro-home .macro-updates-section { padding-top: 80px !important; } } /* Mobile */ @media (max-width: 650px) { .macro-home .macro-hero .macro-eyebrow, .macro-home .macro-mission-section .macro-eyebrow, .macro-home .macro-research-section .macro-eyebrow, .macro-home .macro-updates-section .macro-eyebrow { font-size: 17px !important; margin-bottom: 20px !important; } .macro-home .macro-research-section { padding-bottom: 60px !important; } .macro-home .macro-updates-section { padding-top: 60px !important; } } /* ========================================================= FINAL HOME POLISH — BALANCED SPACING + HEADER GAP FIX ========================================================= */ /* Keep the whole site canvas on the same beige */ html, body, body.home, body.page-template-front-page, .wp-site-blocks, .site-header { background-color: #fffdf4 !important; } /* Remove Abisko / block-theme gaps around the header template part */ .wp-site-blocks { gap: 0 !important; } .wp-site-blocks > * { margin-block-start: 0 !important; margin-block-end: 0 !important; } .site-header, .site-header > *, .site-header .wp-block-html { margin: 0 !important; padding-block: 0 !important; } /* The fixed header needs a spacer for page positioning, but a solid spacer was creating that plain beige/white-looking band before the homepage gradient. Make the spacer transparent and extend the homepage gradient upward behind it. */ body.home .macro-site-header-spacer, body.page-template-front-page .macro-site-header-spacer { background: transparent !important; position: relative; z-index: 0; } body.home main.macro-home, body.page-template-front-page main.macro-home { margin-top: -88px !important; padding-top: 88px !important; position: relative; z-index: 0; } /* Spacing balance: Keep The Issue -> Our Mission roomy, but use a moderate Mission -> Research transition. */ .macro-home .macro-mission-section { min-height: auto !important; padding-top: 170px !important; padding-bottom: 92px !important; } .macro-home .macro-research-section { padding-top: 88px !important; } /* Video fills its column cleanly */ .macro-home .wp-block-video { margin: 0 !important; } .macro-home .wp-block-video video { display: block !important; width: 100% !important; height: auto !important; border-radius: 10px !important; } /* Tablet */ @media (max-width: 900px) { .macro-home .macro-mission-section { padding-top: 110px !important; padding-bottom: 66px !important; } .macro-home .macro-research-section { padding-top: 66px !important; } } /* Mobile header spacer is 82px */ @media (max-width: 760px) { body.home main.macro-home, body.page-template-front-page main.macro-home { margin-top: -82px !important; padding-top: 82px !important; } } /* Mobile */ @media (max-width: 650px) { .macro-home .macro-mission-section { padding-top: 90px !important; padding-bottom: 52px !important; } .macro-home .macro-research-section { padding-top: 56px !important; } } /* ========================================================= LATEST UPDATES LABEL EMPHASIS ========================================================= */ .macro-home .macro-updates-section .macro-eyebrow { font-size: 22px !important; font-weight: 700 !important; color: #257bfe !important; } @media (max-width: 900px) { .macro-home .macro-updates-section .macro-eyebrow { font-size: 20px !important; } } @media (max-width: 650px) { .macro-home .macro-updates-section .macro-eyebrow { font-size: 18px !important; } }

The issue

The media system is increasingly consolidated

Two to four corporations dominate in each sector, limiting the diversity and democratic potential of cultural production. Yet, the data and visual evidence that would reveal this danger is hidden from public access. This is where MACRO Lab comes in.

Our mission

Facilitate awareness with access to critical data

MACRO Lab aggregates, analyzes, and disseminates data on media ownership and consolidation trends. We make this information freely available to researchers, journalists, policymakers, and the public — because an informed citizenry depends on access to the truth about who controls the information environment.

Watch a forty-second video of MACRO Lab co-directors Andrew and Shawna describe the purpose of MACRO Lab

Latest updates

Loading latest updates…
(function () { const root = document.getElementById(‘macro-home-updates’); if (!root || root.dataset.initialized === ‘true’) return; root.dataset.initialized = ‘true’; const SITE_URL = ‘https://quote.ucsd.edu/macrolab’; const CATEGORY_SLUG = ‘updates’; function stripHtml(html) { const tmp = document.createElement(‘div’); tmp.innerHTML = html || ”; return tmp.textContent || tmp.innerText || ”; } function escapeHtml(value) { return String(value ?? ”) .replace(/&/g, ‘&’) .replace(//g, ‘>’) .replace(/”/g, ‘"’) .replace(/’/g, ‘'’); } function formatDate(dateStr) { return new Date(dateStr).toLocaleDateString( ‘en-US’, { month: ‘short’, day: ‘numeric’, year: ‘numeric’ } ); } function getPostImage(post) { const media = post._embedded && post._embedded[‘wp:featuredmedia’]; if (media && media[0] && media[0].source_url) { return media[0].source_url; } return ”; } function getDisplayTag(post) { const groups = post._embedded && post._embedded[‘wp:term’]; if (!groups) return ‘Update’; const terms = groups.flat ? groups.flat() : [].concat.apply([], groups); const tag = terms.find(term => term && term.taxonomy === ‘post_tag’); if (tag && tag.name) return tag.name; const otherCategory = terms.find( term => term && term.taxonomy === ‘category’ && term.slug !== CATEGORY_SLUG ); return otherCategory && otherCategory.name ? otherCategory.name : ‘Update’; } function cleanExcerpt(post, limit) { const raw = stripHtml( post.excerpt && post.excerpt.rendered ? post.excerpt.rendered : ” ).trim(); if (!raw) return ”; return raw.length > limit ? raw.substring(0, limit).trim() + ‘…’ : raw; } function renderFeatured(post) { const link = escapeHtml(post.link); const title = escapeHtml( stripHtml(post.title && post.title.rendered) ); const image = getPostImage(post); const tag = escapeHtml(getDisplayTag(post)); const date = escapeHtml(formatDate(post.date)); const excerpt = escapeHtml(cleanExcerpt(post, 260)); const imageMarkup = image ? ‘‘ + ‘‘ + ‘‘ : ‘‘ + ‘‘ + ‘‘; return ( ‘‘ ); } function renderSide(post) { const link = escapeHtml(post.link); const title = escapeHtml( stripHtml(post.title && post.title.rendered) ); const tag = escapeHtml(getDisplayTag(post)); const date = escapeHtml(formatDate(post.date)); return ( ‘‘ + ‘
‘ + ‘‘ + tag + ‘‘ + ‘‘ + date + ‘‘ + ‘
‘ + ‘

‘ + title + ‘

‘ + ‘
‘ ); } async function init() { try { const catRes = await fetch( SITE_URL + ‘/wp-json/wp/v2/categories?slug=’ + encodeURIComponent(CATEGORY_SLUG) ); if (!catRes.ok) throw new Error(‘Could not load Updates category.’); const categories = await catRes.json(); if (!categories.length) { root.innerHTML = ‘
No Updates category found.
‘; return; } const postsRes = await fetch( SITE_URL + ‘/wp-json/wp/v2/posts?categories=’ + categories[0].id + ‘&per_page=5&_embed’ ); if (!postsRes.ok) throw new Error(‘Could not load Updates posts.’); const posts = await postsRes.json(); if (!posts.length) { root.innerHTML = ‘
No updates have been published yet.
‘; return; } const featured = posts[0]; const sidePosts = posts.slice(1, 5); root.innerHTML = ‘
‘ + renderFeatured(featured) + ‘
‘ + sidePosts.map(renderSide).join(”) + ‘
‘ + ‘
‘; } catch (error) { console.error(‘MACRO homepage updates error:’, error); root.innerHTML = ‘
‘ + ‘Latest updates could not be loaded.’ + ‘
‘; } } if (document.readyState === ‘loading’) { document.addEventListener(‘DOMContentLoaded’, init, { once: true }); } else { init(); } })();

Stay Up To Date

Sign up to receive occasional emails about new visualizations and developments at MACRO