:root {
  --canvas: #f7f7f5;
  --ink: #171717;
  --muted: #64686d;
  --accent: #e21914;
  --h1: 68px;
  --h2: 56px;
  --module: 24px;
  --lead: 24px;
  --header: 72px;
  background: var(--canvas);
  color: var(--ink);
  color-scheme: light;
  font-family: "SF Pro Display", "SF Pro Text", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; }
h1,h2,h3,p { margin: 0; overflow-wrap: anywhere; }
h1 { font-size: var(--h1); font-weight: 620; line-height: 1.12; letter-spacing: -.064em; }
h2,.featured-title { font-size: var(--h2); font-weight: 620; line-height: 1.2; letter-spacing: -.052em; }
h3 { font-size: var(--module); font-weight: 620; line-height: 1.45; letter-spacing: -.018em; }
a { color: inherit; text-decoration: none; }
a:focus-visible,summary:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
img { display: block; max-width: 100%; }
.content-shell { width: min(1180px,calc(100% - 80px)); margin-inline: auto; }
.site-header { position: fixed; inset: 0 0 auto; height: var(--header); z-index: 3; color: #fff; background: rgba(7,11,16,.78); border-bottom: 1px solid rgba(255,255,255,.16); }
.header-inner { max-width: 1460px; padding: 0 40px; height: var(--header); margin: auto; display: flex; align-items: center; gap: 32px; }
.brand { display: inline-flex; flex: 0 0 auto; }
.brand img { width: 92px; height: 31px; object-fit: contain; }
.desktop-nav { display: flex; height: 100%; align-items: center; gap: 36px; margin: auto; }
.desktop-nav a { position: relative; display: inline-flex; align-items: center; height: 100%; font-size: 16px; font-weight: 600; white-space: nowrap; }
.desktop-nav a[aria-current]::after { content: ''; position: absolute; bottom: 0; inset-inline: 0; height: 2px; background: var(--accent); }
.contact-link { border: 1px solid rgba(255,255,255,.65); border-radius: 999px; padding: 8px 20px; font-size: 16px; line-height: 1.5; white-space: nowrap; }
.mobile-menu { display: none; }
.language-switcher { position: relative; flex: 0 0 auto; }
.language-switcher summary,.mobile-menu summary { list-style: none; }
.language-switcher summary::-webkit-details-marker,.mobile-menu summary::-webkit-details-marker { display: none; }
.language-switcher-trigger { display: flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; cursor: pointer; font-size: 16px; }
.language-switcher-list { position: absolute; right: 0; top: calc(100% + 8px); width: 148px; padding: 8px; background: #f7f7f5; color: var(--ink); border-radius: 12px; box-shadow: 0 16px 42px rgba(4,8,12,.16); }
.language-switcher-list a { display: flex; align-items: center; min-height: 44px; padding-inline: 10px; font-size: 16px; }
.language-switcher-list a[aria-current] { color: var(--accent); }
.language-switcher-list a:hover { text-decoration: underline; }
.skip-link { position: fixed; left: 18px; top: -80px; z-index: 4; padding: 12px; background: #fff; font-size: 16px; }
.skip-link:focus { top: 12px; }

/* Approved R3 news layout. Shared header rules are supplied by header.css last. */
.news-hero { position:relative; height:clamp(720px,78svh,880px); isolation:isolate; color:#fff; background:#070b10; }
.hero-media { position:absolute; z-index:-1; inset:0; overflow:hidden; }
.hero-media img { width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-shade { position:absolute; inset:0; pointer-events:none; }
.hero-grid { padding-top:216px; }
.hero-copy { max-width:650px; }
.hero-eyebrow { display:block; font-size:14px; font-weight:600; line-height:20px; color:#d1d5d7; margin-bottom:14px; }
.hero-copy h1 { line-height:82px; }
.hero-copy p { margin-top:24px; max-width:520px; color:#d1d5d7; font-size:var(--lead); line-height:1.6; }
.primary-link { display:inline-flex; justify-content:center; align-items:center; margin-top:38px; min-height:48px; padding:12px 24px; background:#fff; color:var(--ink); border-radius:999px; font-size:16px; font-weight:600; line-height:24px; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.news-section,.industry-section { padding-top:104px; }
.news-section,.industry-section,.media-tools,.news-card { scroll-margin-top:calc(var(--header) + 32px); }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:48px; }
.section-heading h2 { line-height:68px; }
.text-link { display:inline-flex; min-height:44px; align-items:center; font-size:16px; line-height:24px; white-space:nowrap; }
.news-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.featured-card + .news-grid { margin-top:28px; }
.news-card { min-width:0; background:#fff; border-radius:18px; }
.story-link { display:flex; flex-direction:column; height:100%; border-radius:inherit; transition:box-shadow 160ms; }
.story-link:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.news-media { aspect-ratio:16/10; overflow:hidden; border-radius:18px 18px 0 0; background:#eeeff0; flex-shrink:0; }
.news-media > img { width:100%; height:100%; object-fit:contain; }
.report-media > img { padding:20px; }
.story-copy { min-width:0; display:flex; flex-direction:column; flex:1; padding:24px; }
.story-copy h3 { font-size:var(--module); line-height:34px; letter-spacing:-.018em; }
.story-source { font-size:16px; line-height:24px; color:var(--muted); margin-bottom:12px; }
.story-bottom { padding-top:18px; margin-top:auto; }
.story-bottom time,.story-bottom > span { font-size:14px; line-height:20px; color:var(--muted); }
.featured-card { border-radius:28px; }
.featured-card .story-link { display:grid; grid-template-columns:1fr 1fr; min-height:416px; }
.featured-card .news-media { aspect-ratio:auto; border-radius:28px 0 0 28px; }
.brand-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:56px; padding:34px; position:relative; }
.brand-pair::after { content:''; width:1px; height:48px; background:rgba(23,23,23,.16); position:absolute; left:50%; top:50%; transform:translateY(-50%); }
.brand-pair > img { height:auto; max-height:120px; object-fit:contain; }
.featured-card .brand-pair { padding:48px; gap:88px; }
.featured-card .story-copy { padding:40px; justify-content:center; }
.featured-card .story-copy h3 { font-size:var(--h2); line-height:1.2; letter-spacing:-.052em; }
.featured-card h3 > span { display:block; }
.featured-card .story-bottom { margin-top:0; padding-top:32px; }
.text-card .story-copy { justify-content:center; }
.text-card .story-bottom { margin-top:0; padding-top:24px; }
.directory-section { padding-top:112px; padding-bottom:80px; }
.breadcrumb { display:flex; align-items:center; gap:12px; font-size:16px; line-height:24px; min-height:44px; color:var(--muted); }
.directory-section h1 { margin-top:19px; line-height:82px; }
.directory-count { margin-top:24px; font-size:16px; line-height:24px; color:var(--muted); }
.directory-section .news-grid { margin-top:48px; }
.directory-end { margin-top:64px; text-align:center; }
.pagination { display:flex; align-items:center; justify-content:center; gap:12px; font-size:16px; }
.pagination a,.pagination > span { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; padding:0 12px; border-radius:50%; }
.pagination [aria-current] { background:var(--ink); color:#fff; }
.pagination [aria-disabled] { color:var(--muted); opacity:.5; }
.page-count { font-size:14px; line-height:20px; color:var(--muted); margin-top:16px; }
.return-link { margin-top:24px; }
.media-tools { margin-top:104px; padding-bottom:104px; display:grid; grid-template-columns:minmax(280px,450fr) minmax(0,730fr); }
.media-contact h2 { line-height:68px; }
.media-contact-note { margin-top:24px; font-size:var(--lead); line-height:38px; color:var(--muted); }
.email-action { display:inline-flex; align-items:center; gap:32px; min-height:48px; margin-top:24px; font-size:20px; line-height:28px; font-weight:620; white-space:nowrap; }
.email-action > span:first-child { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:8px; }
.media-tools a:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.brand-resources { padding-top:22px; min-width:0; }
.brand-resources h3 { line-height:34px; }
.brand-downloads { display:grid; grid-template-columns:minmax(245px,420fr) minmax(245px,310fr); margin-top:72px; }
.brand-download { display:grid; grid-template-columns:96px 125px; align-items:center; column-gap:24px; min-height:64px; width:245px; }
.logo-preview { display:grid; place-items:center; width:96px; height:64px; border-radius:12px; background:#edeeeb; }
.logo-preview.inverse { background: #111820; }
.logo-preview img { width:70px; height:auto; object-fit:contain; }
.download-copy { display:grid; gap:8px; font-size:18px; line-height:28px; }
.download-copy > span:first-child { font-weight:600; }
.download-action { display:flex; align-items:center; justify-content:space-between; font-size:20px; line-height:28px; font-weight:620; white-space:nowrap; }
.download-arrow { font-size:20px; line-height:28px; text-align:center; }

@media (hover:hover) {
 .story-link:hover { box-shadow:0 0 0 1px #c9cbcd; }
 .text-link:hover,.pagination a:hover,.email-action:hover,.brand-download:hover .download-copy > span:last-child { text-decoration:underline; text-underline-offset:4px; }
 .primary-link:hover { background:#e9e9e7; }
}
@media (prefers-reduced-motion:no-preference) { html { scroll-behavior:smooth; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
@media (max-width:900px) {
 :root { --h1:56px; --h2:42px; --module:22px; --lead:22px; --header:64px; }
 .content-shell { width:calc(100% - 40px); }
 .news-hero { height:max(730px,92svh); }
 .hero-grid { padding-top:145px; }
 .hero-copy h1 { line-height:68px; }
 .hero-copy p { max-width:520px; }
 .section-heading h2 { line-height:52px; }
 .news-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 .featured-card .story-link { grid-template-columns:1fr; min-height:0; }
 .featured-card .news-media { aspect-ratio:16/9; border-radius:28px 28px 0 0; }
 .featured-card .story-copy { padding:32px; }
 .featured-card .story-copy h3 { line-height:52px; }
 .story-copy h3 { line-height:31px; }
 .directory-section h1 { line-height:68px; }
 .media-tools { grid-template-columns:minmax(0,1fr); gap:72px; }
 .media-contact h2 { line-height:52px; }
 .media-contact-note { line-height:35.2px; }
 .brand-resources { padding-top:0; }
 .brand-resources h3 { line-height:32px; }
 .brand-downloads { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; margin-top:24px; }
}
@media (max-width:620px) {
 :root { --h1:40px; --h2:32px; }
 .content-shell { width:calc(100% - 36px); }
 .news-hero { height:780px; }
 .hero-media img { height:130%; object-position:49% 50%; }
 .hero-eyebrow { margin-bottom:13px; }
 .hero-copy h1 { line-height:48px; }
 .hero-copy p { margin-top:26px; max-width:210px; line-height:35.2px; }
 .primary-link { margin-top:23px; }
 .news-section,.industry-section { padding-top:72px; }
 .section-heading { gap:12px; margin-bottom:32px; }
 .section-heading h2 { line-height:42px; }
 .news-grid { grid-template-columns:minmax(0,1fr); }
 .featured-card { border-radius:18px; }
 .featured-card .news-media { border-radius:18px 18px 0 0; }
 .featured-card .brand-pair { padding:28px 34px; gap:56px; }
 .brand-pair::after { height:32px; }
 .featured-card .story-copy { padding:24px; }
 .featured-card .story-copy h3 { line-height:42px; }
 .featured-card .story-bottom { padding-top:18px; }
 .directory-section { padding-top:90px; }
 .directory-section h1 { margin-top:19px; line-height:52px; }
 .directory-section .news-grid { margin-top:40px; }
 .directory-end { margin-top:48px; }
 .media-tools { margin-top:72px; padding-bottom:88px; }
 .media-contact h2 { line-height:42px; }
 .email-action { margin-top:20px; }
 .brand-downloads { grid-template-columns:minmax(0,1fr); row-gap:40px; }
 .brand-download + .brand-download { position:relative; }
 .brand-download + .brand-download::before { content:''; position:absolute; top:-20px; left:0; width:calc(100vw - 36px); height:1px; background:#d6d7d6; }
}
