/* =========================================================================
   3ROCK GLOBAL — The Memory Standard
   Design system stylesheet
   -------------------------------------------------------------------------
   Fonts: display = Tusker Grotesk (4800 Super), body = General Sans.
   Both supplied font families are self-hosted in /assets/fonts/.
   ========================================================================= */

/* ---- Self-hosted licensed fonts (client supplies the files) ------------- */
@font-face {
  font-family: "Tusker Grotesk";
  src: url("../fonts/TuskerGrotesk-4800Super.woff2") format("woff2");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "General Sans";
  src: url("../fonts/GeneralSans-Variable.woff2") format("woff2-variations"),
       url("../fonts/GeneralSans-Variable.woff2") format("woff2");
  font-weight: 200 700;
  font-style: normal;
  font-display: swap;
}

/* ---- Design tokens ------------------------------------------------------ */
:root {
  --bg: #0a0c0d;
  --black: #000000;
  --teal: #0b2a2e;
  --card-black: #111a1c;
  --card-teal: #2b4449;
  --cyan: #31B6CB;
  --cyan-bright: #31B6CB;
  --amber: #D19A33;
  --cream: #f2efe9;
  --white: #ffffff;
  --muted: #F2EFE9;

  --border: rgba(168, 175, 174, 0.18);
  --border-strong: rgba(168, 175, 174, 0.32);

  --font-display: "Tusker Grotesk", Impact, "Arial Narrow", sans-serif;
  --font-body: "General Sans", system-ui, -apple-system, sans-serif;

  --maxw: 1200px;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --header-h: 76px;
  --radius: 4px;
}

/* ---- Reset -------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  background: var(--bg);
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--cream);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }

/* ---- Layout helpers ----------------------------------------------------- */
.container {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.container--wide { max-width: 1360px; }
.container--narrow { max-width: 900px; }

.section { padding-block: clamp(3.5rem, 8vw, 7rem); }
.section--tight { padding-block: clamp(2.5rem, 5vw, 4rem); }

.bg-bg { background: var(--bg); }
.bg-black { background: var(--black); }
.bg-teal { background: var(--teal); }

.center { text-align: center; }
.stack > * + * { margin-top: 1.25rem; }

/* ---- Typography --------------------------------------------------------- */
.display {
  font-family: var(--font-display);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.02;
  letter-spacing: 0.005em;
  margin: 0;
  color: var(--cream);
  text-wrap: balance;
}
h1.display { font-size: clamp(2.6rem, 7vw, 5.6rem); }
h2.display { font-size: clamp(2rem, 5vw, 3.6rem); }
h3.display { font-size: clamp(1.5rem, 3vw, 2.2rem); }

.display--xl { font-size: clamp(3rem, 9vw, 7rem) !important; line-height: 0.98; }

.cyan { color: var(--cyan-bright); }
.cyan-mid { color: var(--cyan); }
.amber { color: var(--amber); }
.muted { color: var(--muted); }

.eyebrow {
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--cyan);
  margin: 0 0 1.2rem;
}
.eyebrow--muted { color: var(--muted); }

.lead {
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  color: var(--muted);
  line-height: 1.65;
  max-width: 60ch;
  margin: 0;
}
.body { color: var(--muted); margin: 0 0 1rem; }
.body:last-child { margin-bottom: 0; }
.body--cream { color: var(--cream); }

/* ---- Buttons ------------------------------------------------------------ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.85rem 1.6rem;
  border-radius: 999px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform 0.15s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  white-space: nowrap;
}
.btn:hover { transform: translateY(-2px); }
.btn--filled { background: var(--cyan-bright); color: var(--black); }
.btn--filled:hover { background: #31B6CB; }
.btn--cyan { background: var(--cyan-bright); color: #052227; }
.btn--cyan:hover { background: #31B6CB; }
.btn--outline { background: transparent; color: var(--cyan-bright); border-color: var(--cyan-bright); }
.btn--outline:hover { border-color: #31B6CB; background: rgba(242, 239, 233, 0.06); }
.btn--sm { padding: 0.7rem 1.2rem; font-size: 0.72rem; }
.btn-row { display: flex; flex-wrap: wrap; gap: 0.9rem; }

.link-arrow {
  color: var(--cyan);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  display: inline-flex;
  gap: 0.4rem;
  align-items: center;
}
.link-arrow:hover { color: var(--cyan-bright); }

/* =========================================================================
   HEADER
   ========================================================================= */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(10, 12, 13, 0.82);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
}
.site-header__inner {
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}
.site-header__logo img { height: 30px; width: auto; }
.site-nav {
  display: flex;
  align-items: center;
  gap: clamp(1.2rem, 2.5vw, 2.4rem);
}
.site-nav a {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cream);
  opacity: 0.82;
  transition: opacity 0.2s ease, color 0.2s ease;
}
.site-nav a:hover { opacity: 1; }
.site-nav a.is-active { color: var(--cyan-bright); opacity: 1; }
.site-header__cta { display: flex; align-items: center; gap: 1rem; }

.nav-toggle {
  display: none;
  background: none;
  border: 0;
  color: var(--cream);
  cursor: pointer;
  padding: 0.4rem;
}
.nav-toggle svg { width: 26px; height: 26px; }

@media (max-width: 900px) {
  .site-nav {
    position: fixed;
    inset: var(--header-h) 0 auto 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    background: var(--black);
    border-bottom: 1px solid var(--border);
    padding: 0.5rem var(--gutter) 1.5rem;
    transform: translateY(-140%);
    transition: transform 0.3s ease;
    height: auto;
  }
  .site-nav.is-open { transform: translateY(0); }
  .site-nav a { padding: 0.9rem 0; font-size: 0.95rem; width: 100%; border-bottom: 1px solid var(--border); }
  .site-header__cta .btn--header-audit { display: none; }
  .nav-toggle { display: inline-flex; }
}

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer {
  background: var(--black);
  border-top: 1px solid var(--border);
  padding-block: clamp(3rem, 6vw, 4.5rem);
}
.site-footer__grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 2.5rem;
}
.site-footer__logo img { height: 34px; margin-bottom: 1rem; }
.site-footer__tag { color: var(--muted); font-size: 0.9rem; margin: 0 0 1.6rem; }
.footer-col h4 {
  color: var(--cyan);
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0 0 1.1rem;
  font-weight: 600;
}
.footer-col ul { list-style: none; margin: 0; padding: 0; }
.footer-col li { margin-bottom: 0.6rem; }
.footer-col a, .footer-col span { color: var(--muted); font-size: 0.9rem; }
.footer-col a:hover { color: var(--cream); }
.footer-col .dim { color: rgba(168,175,174,0.55); }
.social-row { display: flex; gap: 0.6rem; margin-top: 1.6rem; }
.social-row a { display: inline-flex; opacity: 0.8; transition: opacity 0.2s ease; }
.social-row a:hover { opacity: 1; }
.social-row img { height: 30px; width: 30px; }
.site-footer__copy {
  text-align: center;
  color: rgba(168,175,174,0.55);
  font-size: 0.8rem;
  margin-top: 3rem;
}
@media (max-width: 820px) {
  .site-footer__grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .site-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .site-footer__grid { grid-template-columns: 1fr; }
}

/* =========================================================================
   PROCESS / NUMBERED CARDS
   ========================================================================= */
.card-grid {
  display: grid;
  gap: 1.25rem;
}
.cols-2 { grid-template-columns: repeat(2, 1fr); }
.cols-3 { grid-template-columns: repeat(3, 1fr); }
.cols-4 { grid-template-columns: repeat(4, 1fr); }
.cols-5 { grid-template-columns: repeat(5, 1fr); }

@media (max-width: 900px) {
  .cols-3, .cols-4, .cols-5 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .cols-2, .cols-3, .cols-4, .cols-5 { grid-template-columns: 1fr; }
}

.card {
  background: var(--card-black);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.75rem;
}
.bg-teal .card { background: rgba(17, 26, 28, 0.55); }

.process-card__num {
  font-family: var(--font-display);
  font-size: 2.4rem;
  line-height: 1;
  color: rgba(168, 175, 174, 0.28);
  margin-bottom: 1.5rem;
}
.process-card__title {
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: 1.1rem;
  letter-spacing: 0.04em;
  margin: 0 0 0.75rem;
  color: var(--cream);
}
.process-card__body { color: var(--muted); font-size: 0.9rem; margin: 0; line-height: 1.6; }

/* Signal cards (icon-free numbered, used on The Standard / Research) */
.signal-card { text-align: left; }
.signal-card .process-card__num { color: rgba(108, 237, 255, 0.22); }

/* =========================================================================
   STAT TABLES & STAT BLOCKS
   ========================================================================= */
.data-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--border);
  background: var(--card-black);
}
.bg-teal .data-table, .data-table--onteal { background: rgba(9, 20, 22, 0.5); }
.data-table th, .data-table td {
  text-align: left;
  padding: 1.1rem 1.4rem;
  border-bottom: 1px solid var(--border);
  font-size: 0.9rem;
}
.data-table thead th {
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.68rem;
  font-weight: 600;
}
.data-table tbody td:first-child {
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.78rem;
  color: var(--cream);
}
.data-table .stat-val {
  font-family: var(--font-display);
  color: var(--amber);
  font-size: 1.4rem;
  letter-spacing: 0.02em;
}
.data-table tr:last-child td { border-bottom: 0; }

/* stat blocks (big amber numbers side by side) */
.stat-block-row {
  display: grid;
  border: 1px solid var(--border);
  background: var(--card-black);
}
.stat-block-row.n2 { grid-template-columns: repeat(2, 1fr); }
.stat-block-row.n3 { grid-template-columns: repeat(3, 1fr); }
.bg-teal .stat-block-row { background: rgba(9, 20, 22, 0.5); }
.stat-block {
  padding: 2.2rem 1.5rem;
  text-align: center;
  border-right: 1px solid var(--border);
}
.stat-block:last-child { border-right: 0; }
.stat-block__num {
  font-family: var(--font-display);
  color: var(--amber);
  font-size: clamp(2.4rem, 5vw, 3.4rem);
  line-height: 1;
  margin-bottom: 0.6rem;
}
.stat-block__label {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--cream);
  margin: 0 0 0.4rem;
}
.stat-block__sub { color: var(--muted); font-size: 0.82rem; margin: 0; }
@media (max-width: 640px) {
  .stat-block-row.n3, .stat-block-row.n2 { grid-template-columns: 1fr; }
  .stat-block { border-right: 0; border-bottom: 1px solid var(--border); }
  .stat-block:last-child { border-bottom: 0; }
}

/* number counters (About / big impact stats) */
.counter-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
.counter {
  border: 1px solid var(--border);
  background: var(--card-black);
  padding: 2.5rem;
  text-align: center;
}
.counter__num {
  font-family: var(--font-display);
  color: var(--amber);
  font-size: clamp(3rem, 7vw, 5rem);
  line-height: 1;
}
.counter__label { color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.85rem; margin-top: 0.8rem; }
@media (max-width: 640px) { .counter-row { grid-template-columns: 1fr; } }

/* =========================================================================
   WORK CARDS
   ========================================================================= */
.work-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
}
@media (max-width: 720px) { .work-grid { grid-template-columns: 1fr; } }

.work-card {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--teal);
  display: block;
}
.work-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.work-card:hover .work-card__img { transform: scale(1.04); }
.work-card__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.15) 45%, rgba(0,0,0,0.85) 100%);
}
.work-card--empty { background: var(--teal); }
.work-card--empty .work-card__scrim { background: none; }
.work-card__tag {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: var(--cyan-bright);
  color: #052227;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  text-transform: none;
}
.work-card__content {
  position: absolute;
  left: 1.5rem;
  right: 1.5rem;
  bottom: 1.4rem;
}
.work-card__brand {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 0.4rem;
}
.work-card__title {
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: clamp(1.05rem, 2vw, 1.45rem);
  line-height: 1.05;
  color: var(--white);
  margin: 0;
}
.work-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1.1rem;
  margin-top: 0.7rem;
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  align-items: center;
}
.work-card__readcase {
  color: var(--cyan);
  font-weight: 600;
  margin-left: auto;
}

/* Work page filter bar */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  align-items: flex-end;
  padding-block: 1.5rem;
  border-bottom: 1px solid var(--border);
}
.filter-field { display: flex; flex-direction: column; gap: 0.4rem; }
.filter-field label {
  font-size: 0.66rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}
.filter-field select {
  appearance: none;
  background: var(--card-black) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%23a8afae' stroke-width='1.5'/></svg>") no-repeat right 0.7rem center;
  border: 1px solid var(--border);
  color: var(--cream);
  padding: 0.6rem 2rem 0.6rem 0.8rem;
  border-radius: var(--radius);
  font-size: 0.85rem;
  min-width: 150px;
  cursor: pointer;
}
.filter-field--sort { margin-left: auto; }
.work-empty {
  padding: 4rem 1rem;
  text-align: center;
  color: var(--muted);
  grid-column: 1 / -1;
}
@media (max-width: 720px) {
  .filter-field { flex: 1 1 40%; }
  .filter-field select { min-width: 0; width: 100%; }
  .filter-field--sort { margin-left: 0; }
}

/* =========================================================================
   HEROES
   ========================================================================= */
.hero {
  padding-top: clamp(3.5rem, 7vw, 6rem);
  padding-bottom: clamp(3rem, 6vw, 5rem);
}
.hero__eyebrow { color: var(--cyan); }

/* image-backed case-study hero */
.hero-media {
  position: relative;
  min-height: clamp(420px, 62vh, 640px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.hero-media__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-media__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.15) 40%, rgba(0,0,0,0.85) 100%);
}
.hero-media__content { position: relative; padding-bottom: clamp(2rem, 5vw, 4rem); }
.hero-media__brand { color: var(--white); font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; margin: 0 0 1rem; font-weight: 600; }
.hero-media .display { color: var(--white); }
.hero-media__sub { color: rgba(255,255,255,0.85); margin-top: 1.2rem; max-width: 52ch; }

/* home 3D visual band */
.hero-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: clamp(240px, 32vw, 360px);
}
.hero-split__media { position: relative; overflow: hidden; background: var(--black); }
.hero-split__media img { width: 100%; height: 100%; object-fit: cover; }
.hero-split__brand {
  background: #0e1416;
  background-image: radial-gradient(120% 140% at 100% 50%, rgba(49,182,203,0.08), transparent 60%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  border-left: 1px solid var(--border);
}
.hero-split__brand img { width: min(70%, 420px); height: auto; }
@media (max-width: 720px) {
  .hero-split { grid-template-columns: 1fr; }
  .hero-split__media { aspect-ratio: 16/10; }
  .hero-split__brand { padding: 3rem 2rem; border-left: 0; border-top: 1px solid var(--border); }
}

/* gradient hero (Smirnoff / Research / PlayOJO) */
.hero-gradient {
  background: radial-gradient(120% 90% at 50% 0%, #0c2d33 0%, #08181b 55%, #05090a 100%);
  min-height: clamp(360px, 55vh, 560px);
  display: flex;
  align-items: flex-end;
  padding-bottom: clamp(2.5rem, 6vw, 5rem);
}

/* =========================================================================
   MISC SECTION PIECES
   ========================================================================= */
.split {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(1.5rem, 5vw, 4rem);
  align-items: start;
}
.split--even { grid-template-columns: 1fr 1fr; align-items: center; }
@media (max-width: 820px) { .split, .split--even { grid-template-columns: 1fr; } }

.pill-note {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  padding: 0.4rem 0.9rem;
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cyan);
  margin-bottom: 1rem;
}
.pill-note--muted { color: var(--muted); }

.rule { border: 0; border-top: 1px solid var(--border); margin: 0; }

.callout {
  text-align: center;
  color: var(--cyan);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.9rem;
  max-width: 62ch;
  margin-inline: auto;
  line-height: 1.7;
}

.quote {
  font-family: var(--font-body);
  font-size: clamp(1.1rem, 2vw, 1.5rem);
  line-height: 1.5;
  color: var(--cream);
  font-style: italic;
  border-left: 3px solid var(--cyan);
  padding-left: 1.5rem;
  margin: 0;
}

/* logo strip */
.logo-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1.8rem;
  justify-content: center;
  color: var(--cream);
}
.logo-strip span {
  font-weight: 600;
  font-size: 0.95rem;
  opacity: 0.8;
}

/* client names inline (home) */
.client-line {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: clamp(1rem, 2.2vw, 1.6rem);
  color: var(--cream);
  line-height: 1.5;
}

/* video embed placeholder */
.video-embed {
  position: relative;
  aspect-ratio: 16 / 9;
  background: var(--card-black);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.video-embed img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.55; }
.video-embed__play {
  position: relative;
  width: 72px; height: 72px;
  border-radius: 999px;
  background: rgba(108, 237, 255, 0.92);
  display: flex; align-items: center; justify-content: center;
}
.video-embed__play::after {
  content: "";
  border-left: 20px solid #052227;
  border-top: 12px solid transparent;
  border-bottom: 12px solid transparent;
  margin-left: 5px;
}
.video-embed__label { position: absolute; bottom: 1rem; left: 1rem; color: var(--muted); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; }

/* image gallery */
.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
}
.gallery img { aspect-ratio: 4/3; object-fit: cover; width: 100%; border-radius: var(--radius); }
@media (max-width: 720px) { .gallery { grid-template-columns: repeat(2, 1fr); } }

/* credits table (case studies) */
.credits {
  display: grid;
  border: 1px solid var(--border);
  background: var(--card-black);
}
.bg-teal .credits { background: rgba(9,20,22,0.5); }
.credits__cell { padding: 1.5rem; text-align: center; border-right: 1px solid var(--border); }
.credits__cell:last-child { border-right: 0; }
.credits__label { color: var(--cyan); text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.66rem; font-weight: 600; margin: 0 0 0.5rem; }
.credits__val { color: var(--cream); font-size: 0.95rem; }
@media (max-width: 720px) {
  .credits { grid-template-columns: 1fr 1fr !important; }
  .credits__cell { border-bottom: 1px solid var(--border); }
}

/* two-up feature blurbs (About) */
.feature-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
@media (max-width: 820px) { .feature-3 { grid-template-columns: 1fr; } }
.feature h3 { font-family: var(--font-display); text-transform: uppercase; font-size: 1.2rem; margin: 0 0 0.75rem; color: var(--cyan-bright); }

/* CTA banner */
.cta-banner { text-align: center; }
.cta-banner .display { margin-bottom: 1.5rem; }

/* form */
.form-field { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1.1rem; }
.form-field label { font-size: 0.78rem; color: var(--cream); }
.form-field input, .form-field textarea {
  background: var(--card-black);
  border: 1px solid var(--border);
  color: var(--cream);
  padding: 0.8rem 1rem;
  border-radius: var(--radius);
  font-family: inherit;
  font-size: 0.9rem;
}
.form-field input:focus, .form-field textarea:focus { outline: none; border-color: var(--cyan); }

/* carousel */
.carousel { position: relative; }
.carousel__track {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0.5rem;
}
.carousel__track::-webkit-scrollbar { height: 6px; }
.carousel__track::-webkit-scrollbar-thumb { background: var(--card-teal); border-radius: 999px; }
.carousel__item {
  flex: 0 0 auto;
  width: clamp(240px, 42vw, 380px);
  scroll-snap-align: start;
}
.carousel__item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius); }
.carousel__nav { display: flex; gap: 0.6rem; justify-content: flex-end; margin-bottom: 1rem; }
.carousel__btn {
  width: 42px; height: 42px;
  border-radius: 999px;
  border: 1px solid var(--border-strong);
  background: transparent;
  color: var(--cream);
  cursor: pointer;
  font-size: 1.1rem;
  line-height: 1;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.carousel__btn:hover { background: rgba(242,239,233,0.08); border-color: var(--cream); }

/* banner (About) */
.banner {
  background: var(--card-teal);
  border-radius: var(--radius);
  padding: clamp(2rem, 5vw, 3.5rem);
  text-align: center;
}
.bg-bg .banner { background: var(--card-black); border: 1px solid var(--border); }
.banner .display { color: var(--cream); }

/* reveal animation */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; transition: none; }
  html { scroll-behavior: auto; }
}

/* utility */
.mt-0 { margin-top: 0; }
.mt-1 { margin-top: 0.5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mt-4 { margin-top: 2rem; }
.mb-2 { margin-bottom: 1rem; }
.maxw-60 { max-width: 60ch; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Approved October 2026 design refinements */
:root { --header-h: 72px; --maxw: 1240px; }
.section { padding-block: clamp(3.75rem, 6.2vw, 6rem); }
.section--tight { padding-block: clamp(2.5rem, 4vw, 3.75rem); }
.display { letter-spacing: -.012em; }
.display--xl { font-size: clamp(3rem, 6.6vw, 6.4rem) !important; }
.card { border-color: rgba(93,229,242,.15); }
.btn--filled, .btn--cyan { background: #31B6CB; color: #061519; }
.btn--outline { border-color: #31B6CB; color: #31B6CB; }
.site-header { background: #090b0c; }
.stat-block__num, .stat-val { color: var(--amber); }
/* The approved artwork uses full-width photography and tighter vertical rhythm. */
.case-hero img, .work-card img { object-fit: cover; }
@media (max-width: 767px) { .display--xl { font-size: clamp(2.8rem, 12vw, 5rem) !important; } .section { padding-block: 3.25rem; } }

/* Approved October 2026 design refinements */
:root { --header-h: 72px; --maxw: 1240px; }
.section { padding-block: clamp(3.75rem, 6.2vw, 6rem); }
.section--tight { padding-block: clamp(2.5rem, 4vw, 3.75rem); }
.display { letter-spacing: -.012em; }
.display--xl { font-size: clamp(3rem, 6.6vw, 6.4rem) !important; }
.card { border-color: rgba(93,229,242,.15); }
.btn--filled, .btn--cyan { background: #31B6CB; color: #061519; }
.btn--outline { border-color: #31B6CB; color: #31B6CB; }
.site-header { background: #090b0c; }
.stat-block__num, .stat-val { color: var(--amber); }
/* The approved artwork uses full-width photography and tighter vertical rhythm. */
.case-hero img, .work-card img { object-fit: cover; }
@media (max-width: 767px) { .display--xl { font-size: clamp(2.8rem, 12vw, 5rem) !important; } .section { padding-block: 3.25rem; } }

/* October 2026 approved design alignment */
:root { --teal:#0c292d; --cyan:#31B6CB; --cyan-bright:#31B6CB; --amber:#D19A33; --card-black:#101b1e; }
.section { padding-top:clamp(3.5rem,6vw,6.5rem); padding-bottom:clamp(3.5rem,6vw,6.5rem); }
.hero-gradient { background:var(--teal); }
.stat-block__num { color:var(--amber); }
/* The approved Work Hub design uses a full-width two-column image gallery. */
.work-grid { gap:0 !important; }
.work-card { border-radius:0 !important; }
/* Responsive, image-backed case studies */
.case-approved-hero { position:relative; min-height:clamp(460px,58vw,730px); display:flex; align-items:flex-end; background:#080a0b; overflow:hidden; }
.case-approved-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.case-approved-hero:after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.91),transparent 65%); }
.case-approved-hero .container { position:relative; z-index:1; padding-bottom:3.5rem; }
.case-approved-hero .display { max-width:900px; }
@media(max-width:700px) { .case-approved-hero { min-height:480px; } .case-approved-hero .container { padding-bottom:2rem; } }

/* October approved-layout refinements */
.work-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; }
.work-card { min-height:clamp(260px,29vw,480px); overflow:hidden; }
.work-card__img { width:100%; height:100%; object-fit:cover; }
.work-card__content { z-index:2; }
.stat-block__num { color:var(--amber); }
.case-approved-hero > img { object-position:center center; }
@media(max-width:760px){
 .work-grid{grid-template-columns:1fr;}
 .work-card{min-height:330px;}
 .credits[style*="repeat(5"]{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
 .credits[style*="repeat(3"]{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
 .stat-block-row.n2{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:420px){.credits[style*="repeat("]{grid-template-columns:1fr!important;}}

/* Approved homepage — scoped refinements, 14 October 2026 */
body:has(.home-evidence-grid) .site-header__inner { position:relative; }
@media(min-width:901px){body:has(.home-evidence-grid) .site-nav {position:absolute;left:50%;transform:translateX(-50%);gap:clamp(1rem,2vw,2rem);white-space:nowrap;}}
body:has(.home-evidence-grid) .site-header__logo img {height:37px;}
body:has(.home-evidence-grid) .btn {border-radius:999px;}
body:has(.home-evidence-grid) .hero-split {grid-template-columns: 36% 64%;min-height:300px;}
body:has(.home-evidence-grid) .hero-split__brand {background:#111115;}
body:has(.home-evidence-grid) .hero-split__brand img {width:min(74%,520px);}
.home-feature-video {width:100%;height:100%;object-fit:cover;display:block;min-height:280px;background:#07090a;}
.home-signal-title {font-family:var(--font-body);font-weight:700;font-size:.95rem;letter-spacing:0;text-transform:uppercase;margin:0 0 .6rem;color:var(--cream);}
.home-evidence-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;}
.home-evidence-stat {background:#0d3034;border:1px solid rgba(255,255,255,.09);text-align:center;padding:1.5rem .8rem;}
.home-evidence-stat strong {display:block;font-family:var(--font-display);font-size:clamp(2.4rem,4vw,4rem);line-height:1.1;color:var(--amber);}
.home-evidence-stat h3 {font:700 .85rem Inter,sans-serif;text-transform:uppercase;margin:.8rem 0;}
.home-evidence-stat p {font-size:.76rem;color:var(--muted);line-height:1.5;margin:0;}
.btn--home-light {background:var(--cream);border-color:var(--cream);color:#073039;font-weight:700;}
.btn--home-light:hover {background:#fff;border-color:#fff;color:#073039;}
.home-audience-card {display:block;position:relative;min-height:180px;padding-bottom:3rem;color:inherit;text-decoration:none;}
.home-audience-title {font:700 1.25rem Inter,sans-serif;text-transform:uppercase;margin:0 0 .75rem;color:var(--cream);}
.home-audience-arrow {position:absolute;bottom:1rem;left:1.4rem;color:var(--cyan-bright);font-size:1.4rem;transition:transform .2s;}
.home-audience-card:hover .home-audience-arrow {transform:translateX(6px);}
@media(max-width:760px){.home-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.home-feature-video{min-height:210px;}body:has(.home-evidence-grid) .hero-split{grid-template-columns:1fr;}}
@media(max-width:420px){.home-evidence-grid{gap:.5rem}.home-evidence-stat{padding:1rem .5rem}.home-evidence-stat strong{font-size:2.5rem}}

/* Homepage fidelity correction: approved navigation and opening section */
@media (min-width:901px) {
  body:has(.home-evidence-grid) .site-header__inner {justify-content:flex-end;}
  body:has(.home-evidence-grid) .site-header__logo {margin-right:auto;}
  body:has(.home-evidence-grid) .site-nav {position:static;left:auto;transform:none;margin-left:auto;justify-content:flex-end;gap:clamp(1.1rem,2vw,2.1rem);}
  body:has(.home-evidence-grid) .site-header__cta {margin-left:clamp(.8rem,2vw,2rem);}
}
body:has(.home-evidence-grid) .site-nav a {font-weight:700;opacity:1;}
.home-opening {background:#090b0c;}
.home-opening .body {color:var(--cream);}
.home-opening .body + .body {margin-top:1rem;}
.home-opening__research {font-size:.76rem;line-height:1.65;color:var(--cream);margin:1.1rem 0 0;max-width:62ch;}
.home-opening .btn-row {margin-top:1.4rem;}

/* Homepage hero rebuild — scoped, intentionally supersedes legacy display rules */
@media (min-width: 821px) {
  .home-opening { background: #090b0c !important; padding-block: 45px 48px !important; }
  .home-opening .container { max-width: 1360px; }
  .home-opening .split { display:grid; grid-template-columns: 0.91fr 1.09fr; gap: clamp(38px, 5vw, 78px); align-items:start; }
  .home-opening h1.display.display--xl { font-size: clamp(42px, 4.2vw, 61px) !important; line-height: .99; letter-spacing: -.025em; text-wrap: initial; max-width: 600px; }
  .home-opening .eyebrow { font-size: clamp(12px, 1.1vw, 15px); letter-spacing: .015em; font-weight: 700; margin: 0 0 14px; line-height: 1.35; }
  .home-opening .body { font-size: clamp(12px, 1vw, 14px); line-height: 1.55; margin: 0 0 16px; }
  .home-opening .home-opening__statement { color: #f5f3ee; font-weight: 700; margin-top: 20px; }
  .home-opening .home-opening__research { color:#c2c4c4; font-size: clamp(11px, .93vw, 13px); line-height: 1.5; margin: 16px 0 0; max-width:none; }
  .home-opening__research a { text-decoration: underline; text-underline-offset: 2px; }
  .home-opening .btn-row { margin-top: 25px; gap: 20px; }
  .home-opening .btn { padding: 10px 21px; font-size: 11px; min-height: 38px; }
  body:has(.home-opening) .site-header__inner { justify-content: flex-start; }
  body:has(.home-opening) .site-header__logo { margin-right: auto; }
  body:has(.home-opening) .site-nav { position: static; transform:none; left:auto; margin-left:auto; justify-content:flex-end; gap: clamp(20px,2.3vw,36px); }
  body:has(.home-opening) .site-nav a { font-size: 12px; font-weight: 700; letter-spacing:.025em; opacity:1; }
  body:has(.home-opening) .site-header__cta { margin-left: 22px; }
}
@media (min-width: 821px) and (max-width: 1100px) {
 .home-opening h1.display.display--xl { font-size: clamp(40px, 4.3vw, 49px) !important; }
}
@media (max-width: 820px) {
 .home-opening { background: #090b0c !important; padding-block: 46px !important; }
 .home-opening h1.display.display--xl { font-size: clamp(42px, 9.2vw, 70px) !important; line-height:1; }
 .home-opening .home-opening__statement { font-weight:700; color:#f5f3ee; }
 .home-opening .eyebrow {letter-spacing:.04em; font-weight:700;}
}

/* Approved homepage hero: feedback corrections, 14 October 2026 */
.home-opening .home-forgotten {
  color:#969d9d; position:relative; display:inline-block; white-space:nowrap;
  background-image:none;
}
.home-opening .home-forgotten::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:50%;
  height:0.075em;
  background:#31B6CB;
  z-index:2;
  pointer-events:none;
  transform:translateY(-50%);
}
.home-opening .body strong {font-weight:700;color:#f5f3ee;font-style:normal;}
.home-opening .home-opening__statement {font-style:normal;font-weight:700;}
.home-opening .home-opening__research a {font-style:normal;font-weight:600;}
.home-opening .btn, body:has(.home-opening) .site-header__cta .btn {font-weight:800;}

/* Mobile-only audit CTA: never duplicate the desktop navigation button. */
.site-nav .btn--mobile-audit { display: none; }
@media (max-width: 900px) {
  .site-nav .btn--mobile-audit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 22px;
    padding: 13px 18px;
    border: 0;
    border-radius: 999px;
    background: var(--cyan-bright, #31B6CB);
    color: #071014;
    font-weight: 800;
    text-align: center;
    opacity: 1;
    letter-spacing: .04em;
  }
  .site-nav .btn--mobile-audit:hover,
  .site-nav .btn--mobile-audit:focus-visible { color: #071014; opacity: 1; }
}


/* Homepage below-the-fold redesign. Scoped classes preserve the approved hero and header. */
.home-video-band .hero-split {grid-template-columns:36% 64%;min-height:0;height:clamp(220px,24vw,360px);}
.home-video-band .hero-split__media,.home-video-band .hero-split__brand {min-height:0;height:100%;}
.home-video-band .hero-split__brand {background:#141316;display:flex;align-items:center;justify-content:center;}
.home-video-band .hero-split__brand img {width:min(60%,440px);max-height:75%;}
.home-video-band .home-feature-video {height:100%;min-height:0;object-fit:cover;}
.home-attention,.home-advisory,.home-evidence,.home-work,.home-science,.home-audiences,.home-final-cta {padding-block:clamp(52px,6vw,88px);}
.home-attention .split {align-items:center;}
.home-attention .display,.home-advisory .display,.home-evidence .display,.home-work .display,.home-science .display,.home-audiences .display {font-size:clamp(32px,3.65vw,53px);line-height:1.04;}
.home-attention .stack {gap:9px;}
.home-attention .stack .card {padding:20px 24px;background:#101b1d;border:1px solid #263438;}
.home-attention .home-signal-title {font-family:var(--font-body);font-weight:700;font-size:14px;letter-spacing:0;}
.home-attention .stack .process-card__body {font-size:13px;line-height:1.55;}
.home-advisory {background:#0b2a2e;}
.home-advisory .process-card {text-align:center;min-height:220px;border-top:2px solid #31B6CB;padding:30px 25px;}
.home-advisory .process-card__title {font-family:var(--font-body);font-size:16px;font-weight:700;}
.home-advisory .process-card__body {font-size:13px;}
.home-advisory .callout {color:#31B6CB;font-size:13px;text-transform:uppercase;font-weight:700;letter-spacing:.02em;}
.home-evidence {background:#090b0c;}
.home-evidence .home-evidence-grid {grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.home-evidence .home-evidence-stat {padding:23px 13px;background:#0c2b2f;border:1px solid #18363a;}
.home-evidence .home-evidence-stat strong {font-size:clamp(42px,4.4vw,67px);color:#D19A33;line-height:1;}
.home-evidence .home-evidence-stat h3 {font-size:12px;margin:13px 0 7px;}
.home-evidence .home-evidence-stat p {font-size:12px;}
.home-work .work-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.home-work .work-card {display:flex;flex-direction:column;min-height:0;height:auto;aspect-ratio:auto;background:#102226;border:1px solid #213237;overflow:hidden;}
.home-work .work-card__img {position:relative;inset:auto;display:block;width:100%;height:auto;aspect-ratio:1.48;object-fit:cover;flex:none;}
.home-work .work-card__scrim {display:none;}
.home-work .work-card__tag {z-index:2;top:8px;right:8px;font-size:9px;padding:5px 7px;}
.home-work .work-card__content {position:relative;left:auto;right:auto;bottom:auto;padding:13px 12px 15px;flex:1;display:flex;flex-direction:column;}
.home-work .work-card__brand {font-size:10px;margin-bottom:5px;color:#e4e9e8;}
.home-work .work-card__title {font-family:var(--font-body);font-size:clamp(13px,1.13vw,16px);font-weight:800;line-height:1.25;}
.home-work .work-card__meta {margin-top:auto;padding-top:16px;font-size:9px;gap:6px 9px;}
.home-work .work-card__readcase {display:none;}
.home-work .lead {max-width:750px;font-size:14px;}
.home-science .split {align-items:center;}
.home-science .split img {border-radius:0!important;aspect-ratio:1.4!important;}
.home-science .eyebrow {font-weight:700;}
.home-audiences .home-audience-card {min-height:165px;background:#101b1d;border:1px solid #263438;padding:23px 22px 45px;}
.home-audiences .home-audience-title {font-size:16px;}
.home-audiences .home-audience-arrow {bottom:13px;left:22px;}
.home-final-cta .display.display--xl {font-size:clamp(43px,5.6vw,82px)!important;}
.home-final-cta .split {align-items:center;}
@media(max-width:1050px){.home-work .work-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.home-evidence .home-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:760px){.home-video-band .hero-split{grid-template-columns:1fr;height:auto;}.home-video-band .hero-split__media{height:250px;}.home-video-band .hero-split__brand{height:220px;}.home-attention,.home-advisory,.home-evidence,.home-work,.home-science,.home-audiences,.home-final-cta{padding-block:48px;}.home-advisory .process-card{min-height:0;}.home-work .work-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.home-final-cta .display.display--xl{font-size:clamp(40px,9vw,65px)!important;}}
@media(max-width:520px){.home-work .work-grid{grid-template-columns:1fr;}.home-evidence .home-evidence-grid{gap:8px;}.home-evidence .home-evidence-stat{padding:18px 9px;}.home-evidence .home-evidence-stat strong{font-size:40px;}}


/* 2026-10-15: Homepage below-the-fold refinements, deliberately scoped to
   preserve the client-approved navigation and opening hero. */
.home-video-band {background:#090b0c;line-height:0;overflow:hidden;}
.home-video-band .home-main-video {display:block;width:100%;height:auto;aspect-ratio:1630/420;object-fit:cover;}
.home-attention .home-attention-callout {color:var(--cyan);text-transform:uppercase;font-weight:800;font-size:clamp(11px,.88vw,13px);letter-spacing:.025em;line-height:1.4;}
.home-attention .home-signal-title {text-transform:uppercase;font-weight:800;font-size:clamp(13px,1.06vw,16px);line-height:1.3;}
.home-advisory .process-card__num {font-family:var(--font-body);font-size:12px;line-height:1.2;font-weight:700;letter-spacing:.04em;color:var(--cyan);}
.home-advisory .process-card__title {font-family:var(--font-body);font-size:clamp(14px,1.1vw,16px);font-weight:800;line-height:1.3;text-transform:uppercase;}
.home-advisory .process-card {display:flex;flex-direction:column;align-items:center;gap:12px;}
.home-advisory .process-card__body {margin-top:0;}
.home-attention .btn--home-light,
.home-advisory .btn--home-light,
.home-evidence .btn--home-light,
.home-work .btn--home-light,
.home-science .btn--home-light {color:var(--cyan)!important;font-weight:800;padding:9px 17px!important;min-height:0;font-size:11px;line-height:1.35;border-radius:999px;}
.home-attention .btn--home-light:hover,
.home-advisory .btn--home-light:hover,
.home-evidence .btn--home-light:hover,
.home-work .btn--home-light:hover,
.home-science .btn--home-light:hover {color:#31B6CB!important;}
.home-evidence .display,.home-work .display,.home-science .display {line-height:1.02;}
.home-evidence .home-evidence-stat h3 {text-transform:uppercase;font-weight:800;line-height:1.35;}
.home-evidence > .container > .reveal > .body {color:var(--cream);}
.home-work .center > .eyebrow {font-weight:800;}
.home-work .work-grid {gap:14px;}
.home-work .work-card__brand {font-weight:800;text-transform:uppercase;}
.home-work .work-card__title {text-transform:uppercase;font-weight:800;line-height:1.25;}
.home-science .eyebrow {font-weight:800;text-transform:uppercase;line-height:1.4;}
.home-audiences .home-audience-card {position:relative;padding-bottom:58px;min-height:175px;}
.home-audiences .home-audience-card .process-card__body {margin-bottom:20px;}
.home-audiences .home-audience-arrow {bottom:19px;}
.home-final-cta .btn-row .btn {padding:10px 21px;font-size:11px;min-height:38px;font-weight:800;}
.home-final-cta .btn--outline {color:var(--cyan-bright);}
@media (max-width:760px) {
  .home-video-band .home-main-video {aspect-ratio:16/9;object-fit:cover;}
  .home-audiences .home-audience-card {min-height:0;padding-bottom:60px;}
}

/* Licensed brand fonts: prevent artificial thickening of Tusker 4800 Super. */
.home-opening h1, .home-attention h2, .home-advisory h2, .home-evidence h2, .home-work h2, .home-science h2, .home-start h2, .home-closing h2 { font-synthesis: none; }

/* 2026-10-18: Adobe XD navigation typography only.
   XD desktop: General Sans Variable Semibold, 16px, 20px text height. */
@media (min-width: 901px) {
  .site-header .site-nav > a:not(.btn),
  body:has(.home-opening) .site-header .site-nav > a:not(.btn) {
    font-family: "General Sans", sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 20px;
    letter-spacing: 0;
    opacity: 1;
  }
  .site-header .site-header__cta .btn--header-audit {
    font-family: "General Sans", sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 20px;
    letter-spacing: 0;
  }
  /* Allow links and button to fit without crowding the desktop header. */
  body:has(.home-opening) .site-header .site-nav {gap:clamp(14px,1.65vw,26px);}
  body:has(.home-opening) .site-header .site-header__cta {margin-left:clamp(12px,1.5vw,22px);}
}
@media (max-width: 900px) {
  .site-header .site-nav > a:not(.btn) {
    font-family:"General Sans",sans-serif; font-size:15px; font-weight:600;
    line-height:21px; letter-spacing:0;
  }
  .site-header .site-nav .btn--mobile-audit {
    font-family:"General Sans",sans-serif; font-size:14px; font-weight:600;
    line-height:20px; letter-spacing:0;
  }
}

/* 2026-10-18: Header audit CTA matches navigation Semibold weight. */
.site-header .site-header__cta .btn--header-audit,
body:has(.home-opening) .site-header .site-header__cta .btn--header-audit,
.site-header .site-nav .btn--mobile-audit { font-weight: 600 !important; }

/* Reusable XD section-eyebrow typography: General Sans Semibold, 24/30px.
   Use .section-eyebrow for the same treatment on other pages. */
.section-eyebrow,
.home-opening .eyebrow.section-eyebrow {
  font-family: "General Sans", sans-serif;
  font-size: 24px;
  font-weight: 600;
  line-height: 30px;
  letter-spacing: 0;
  text-transform: uppercase;
  color: #31B6CB;
}
@media (max-width: 900px) {
  .section-eyebrow, .home-opening .eyebrow.section-eyebrow { font-size: clamp(16px, 2.5vw, 21px); line-height: 1.25; }
}
@media (max-width: 600px) {
  .section-eyebrow, .home-opening .eyebrow.section-eyebrow { font-size: 16px; line-height: 21px; }
}

/* Shared responsive content width — XD artboard maximum: 1640px.
   Full-bleed section backgrounds remain viewport-wide. */
:root { --maxw: 1640px; }
.container,
.container--wide { max-width: 1640px; }
@media (min-width: 821px) {
  .home-opening .container { max-width: 1640px; }
}

/* Fluid homepage hero columns — retain shared 1640px container limit.
   Override legacy 600px heading limit and 61px font cap. */
@media (min-width: 821px) {
  .home-opening .split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: clamp(28px, 3vw, 56px);
  }
  .home-opening .split > * { min-width: 0; }
  .home-opening h1.display.display--xl {
    max-width: none;
    width: 100%;
    font-size: clamp(42px, 4.1vw, 78px) !important;
    line-height: .99;
  }
}


/* ======================================================================
   3ROCK TYPOGRAPHY SYSTEM — Adobe XD homepage inspection, 18 Oct 2026
   Reusable type-* utilities can be applied across the remaining pages.
   Desktop values correspond to the XD 1640px content artboard; smaller
   viewports scale fluidly. Keep backgrounds/layout rules separate.
   ====================================================================== */
:root {
  --type-display: "Tusker Grotesk", Impact, "Arial Narrow", sans-serif;
  --type-text: "General Sans", sans-serif;
}
.type-display {
  font-family:var(--type-display);
  font-weight:800;
  font-synthesis:none;
  letter-spacing:0;
  line-height:1.142857;
  text-transform:uppercase;
}
/* XD: Tusker 4800 Super, 70px / 80px */
.home-opening .type-display--hero,
.home-opening h1.type-display--hero {
  font-size:clamp(42px,4.27vw,70px) !important;
  line-height:1.142857;
}
.home-attention h2.type-display--section,
.home-advisory h2.type-display--section,
.home-evidence h2.type-display--section,
.home-work h2.type-display--section,
.home-science h2.type-display--section,
.home-audiences h2.type-display--section {
  font-size:clamp(36px,4.27vw,70px) !important;
  line-height:1.142857;
}
/* XD final CTA: Tusker 4800 Super, 115px / 130px */
.home-final-cta h2.type-display--cta {
  font-size:clamp(48px,7.02vw,115px) !important;
  line-height:1.130435;
}
/* XD section labels: General Sans Semibold, 20px / 32px */
.type-kicker, .home-advisory .eyebrow.type-kicker,
.home-evidence .eyebrow.type-kicker,
.home-work .eyebrow.type-kicker,
.home-science .eyebrow.type-kicker {
  font-family:var(--type-text);font-size:20px;font-weight:600;
  line-height:32px;letter-spacing:0;text-transform:uppercase;
  color:#31B6CB;
}
/* XD attention signal headings: 22px Semibold / 29px */
.type-card-heading, .home-attention .home-signal-title.type-card-heading {
  font-family:var(--type-text);font-size:22px;font-weight:600;
  line-height:29px;letter-spacing:0;text-transform:uppercase;
}
/* XD step numbers: 18px Semibold / 32px */
.type-step-number, .home-advisory .process-card__num.type-step-number {
  font-family:var(--type-text);font-size:18px;font-weight:600;
  line-height:32px;letter-spacing:0;color:#31B6CB;
}
/* XD advisory card titles use the same Semibold type family */
.home-advisory .process-card__title.type-card-heading {
  font-family:var(--type-text);font-weight:600;font-size:22px;line-height:29px;
}
/* XD callouts: 18px Semibold / 28px */
.type-callout, .home-advisory .callout.type-callout,
.home-science .eyebrow.type-callout,
.home-attention .eyebrow.type-callout {
  font-family:var(--type-text);font-size:18px;font-weight:600;
  line-height:28px;letter-spacing:0;text-transform:uppercase;color:#31B6CB;
}
/* XD body examples: 16px Regular / 24px */
.type-body, .home-attention .process-card__body.type-body,
.home-advisory .process-card__body.type-body,
.home-audiences .process-card__body.type-body,
.home-evidence .home-evidence-stat p.type-body {
  font-family:var(--type-text);font-size:16px;font-weight:400;
  line-height:24px;letter-spacing:0;
}
/* XD buttons: General Sans Semibold 16px / 20px; 44px text row */
.type-button, .home-attention .btn.type-button,
.home-advisory .btn.type-button,.home-evidence .btn.type-button,
.home-work .btn.type-button,.home-science .btn.type-button,
.home-opening .btn.type-button,.home-final-cta .btn.type-button {
  font-family:var(--type-text);font-size:16px;font-weight:600;
  line-height:20px;letter-spacing:0;
}
/* XD evidence card titles: 16px Semibold / 24px */
.home-evidence .home-evidence-stat h3.type-stat-label {
  font-family:var(--type-text);font-size:16px;font-weight:600;
  line-height:24px;letter-spacing:0;text-transform:uppercase;
}
/* XD evidence research attribution: 14px Regular / 24px */
.home-evidence p.type-research-note {
  font-family:var(--type-text);font-size:14px !important;font-weight:400;
  line-height:24px;letter-spacing:0;
}
/* XD featured-work tags: 14px Medium / 24px */
.home-work .work-card__tag.type-card-tag {
  font-family:var(--type-text);font-size:14px;font-weight:500;
  line-height:24px;letter-spacing:0;
}
.home-work .work-card__meta.type-meta,
.home-work .work-card__brand.type-meta {
  font-family:var(--type-text);font-size:14px;font-weight:500;
  line-height:24px;letter-spacing:0;
}
/* XD audience headings: 32px Semibold / 43px */
.home-audiences .home-audience-title.type-audience-heading {
  font-family:var(--type-text);font-size:32px;font-weight:600;
  line-height:43px;letter-spacing:0;text-transform:uppercase;
}
/* XD stat numbers retain Tusker / brand amber */
.home-evidence .home-evidence-stat strong.type-stat-number {
  font-family:var(--type-display);font-synthesis:none;
}
/* Responsive hierarchy: compact body/card typography, but keep XD sizes
   at wide desktop. These are intentionally type-only changes. */
@media(max-width:1199px) {
  .type-kicker, .home-advisory .eyebrow.type-kicker,
  .home-evidence .eyebrow.type-kicker,.home-work .eyebrow.type-kicker,
  .home-science .eyebrow.type-kicker {font-size:clamp(15px,1.5vw,20px);line-height:1.5;}
  .home-attention .home-signal-title.type-card-heading,
  .home-advisory .process-card__title.type-card-heading {font-size:clamp(17px,1.8vw,22px);line-height:1.35;}
  .home-audiences .home-audience-title.type-audience-heading {font-size:clamp(22px,2.3vw,32px);line-height:1.35;}
  .home-attention .eyebrow.type-callout,.home-advisory .callout.type-callout,
  .home-science .eyebrow.type-callout {font-size:clamp(14px,1.5vw,18px);line-height:1.5;}
}
@media(max-width:760px) {
  .home-opening h1.type-display--hero {font-size:clamp(42px,10vw,62px) !important;line-height:1.08;}
  .home-attention h2.type-display--section,.home-advisory h2.type-display--section,
  .home-evidence h2.type-display--section,.home-work h2.type-display--section,
  .home-science h2.type-display--section,.home-audiences h2.type-display--section {
    font-size:clamp(36px,9vw,56px) !important;line-height:1.08;
  }
  .home-final-cta h2.type-display--cta {font-size:clamp(48px,10vw,76px) !important;line-height:1.08;}
  .type-body,.home-attention .process-card__body.type-body,
  .home-advisory .process-card__body.type-body,
  .home-audiences .process-card__body.type-body,
  .home-evidence .home-evidence-stat p.type-body {font-size:15px;line-height:23px;}
  .type-button,.home-attention .btn.type-button,.home-advisory .btn.type-button,
  .home-evidence .btn.type-button,.home-work .btn.type-button,
  .home-science .btn.type-button,.home-opening .btn.type-button,
  .home-final-cta .btn.type-button {font-size:13px;line-height:19px;}
  .home-evidence .home-evidence-stat h3.type-stat-label {font-size:14px;line-height:21px;}
  .home-work .work-card__tag.type-card-tag {font-size:12px;line-height:18px;}
}

/* ======================================================================
   SHARED BUTTON SPACING + HERO BODY COPY — XD review, 18 October 2026
   Keep these utilities reusable across every page using the shared CSS.
   ====================================================================== */
:root { --button-padding-block: 14px; --button-padding-inline: 32px; }
/* Overrides earlier homepage-specific button padding rules. */
.btn,
.btn.btn--sm,
.home-opening .btn,
.home-final-cta .btn-row .btn,
.home-attention .btn--home-light,
.home-advisory .btn--home-light,
.home-evidence .btn--home-light,
.home-work .btn--home-light,
.home-science .btn--home-light,
.site-header .site-header__cta .btn,
.site-header .site-nav .btn--mobile-audit {
  padding: var(--button-padding-block) var(--button-padding-inline) !important;
  box-sizing: border-box;
  min-height: 0;
}
/* XD: hero body text is General Sans Regular 18px with 28px leading. */
.home-opening .body.type-body,
.home-opening .home-opening__statement.type-body {
  font-family: "General Sans", sans-serif;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
}
.home-opening .body.type-body strong { font-weight: 600; }
/* Keep the same font family and hierarchy while avoiding cramped mobile text. */
@media (max-width: 760px) {
  .home-opening .body.type-body,
  .home-opening .home-opening__statement.type-body {
    font-size: 16px;
    line-height: 25px;
  }
}

/* XD corrections: homepage supporting text + shared footer, 18 Oct 2026.
   Shared utilities are available to other pages without duplicating declarations. */
.type-support-copy {
  font-family: "General Sans", sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: 0;
}
.home-opening .home-opening__research.type-support-copy {
  font-size: 18px;
  line-height: 28px;
  max-width: none;
}
.type-research-note {
  font-family: "General Sans", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
}
.home-evidence p.type-research-note {
  font-size: 16px !important;
  line-height: 24px;
  max-width: 800px;
}
.type-work-intro {
  font-family: "General Sans", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  text-align: center;
}
.home-work .lead.type-work-intro {
  font-size: 16px;
  line-height: 24px;
  max-width: 800px;
  margin-inline: auto;
}
/* Footer: XD navigation 16px / 28px; copyright 14px / 24px. */
.site-footer .footer-col a,
.site-footer .footer-col span {
  font-family: "General Sans", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: 0;
}
.site-footer .site-footer__copy {
  font-family: "General Sans", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  text-align: center;
}
@media (max-width: 760px) {
  .home-opening .home-opening__research.type-support-copy {font-size: 16px;line-height: 25px;}
  .home-evidence p.type-research-note,.home-work .lead.type-work-intro {font-size: 15px;line-height: 23px;}
  .site-footer .footer-col a,.site-footer .footer-col span {font-size: 15px;line-height: 25px;}
}

/* Shared evidence highlights and footer brand tagline */
.type-stat-highlight { color: var(--amber, #D19A33); }
.site-footer__tag { font-family: var(--font-body, "General Sans", sans-serif); font-size: 16px; line-height: 1.5; font-weight: 400; }
@media (max-width: 600px) { .site-footer__tag { font-size: 14px; } }

/* Featured work cards: shared arrow treatment with audience cards; no typography changes. */
.home-work .work-grid { gap: 24px; }
.home-work .work-card { position: relative; }
.home-work .work-card__content { padding-bottom: 54px; }
.home-work .work-card__arrow {
  left: 18px;
  bottom: 16px;
  display: block;
}
.home-work .work-card:hover .work-card__arrow,
.home-work .work-card:focus-visible .work-card__arrow { transform: translateX(6px); }
@media (max-width: 760px) { .home-work .work-grid { gap: 16px; } }

/* Fluid layout for Evidence intro and final CTA. 1640px is the shared
   content cap; avoid legacy character-width and fixed-column limits. */
.home-evidence .home-evidence__intro {
  width: 100%;
  max-width: none;
}
.home-evidence .home-evidence__intro > h2 {
  max-width: none;
}
@media (min-width: 821px) {
  .home-final-cta .split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(28px, 3vw, 56px);
  }
  .home-final-cta .split > * { min-width: 0; }
  .home-final-cta h2.type-display--cta {
    max-width: none;
    width: 100%;
  }
}


/* ======================================================================
   3ROCK GLOBAL — SHARED SUBPAGE UI PASS (19 October 2026)
   All pages share the injected header and type/button utilities.
   Homepage-specific approved rules are intentionally not overridden.
   ====================================================================== */
@media (min-width: 901px) {
  /* Mirror approved homepage: logo left, navigation and CTA right. */
  .site-header__inner { justify-content: flex-start; }
  .site-header__logo { margin-right: auto; flex-shrink: 0; }
  .site-header .site-nav {
    position: static; left: auto; transform: none;
    margin-left: auto; justify-content: flex-end;
    gap: clamp(14px, 1.65vw, 26px); white-space: nowrap;
  }
  .site-header__cta { margin-left: clamp(12px, 1.5vw, 22px); }
}
/* Shared active state works for The Standard, Work/cases, Research and About. */
.site-header .site-nav > a.is-active:not(.btn) { color: var(--cyan-bright); opacity: 1; }
/* Shared General Sans 600 navigation/button typography. */
.site-header .site-nav > a:not(.btn),
.site-header .site-header__cta .btn,
.site-header .site-nav .btn--mobile-audit {
  font-family: var(--type-text); font-weight: 600 !important;
  letter-spacing: 0; text-transform: uppercase;
}
@media (min-width: 901px) {
  .site-header .site-nav > a:not(.btn),
  .site-header .site-header__cta .btn { font-size: 16px; line-height: 20px; }
}
/* Reusable subpage typography mapped to homepage-approved classes. */
body:not(:has(.home-opening)) .display.type-display--section {
  font-family: var(--type-display); font-weight: 800;
  font-size: clamp(36px, 4.27vw, 70px);
  line-height: 1.142857; letter-spacing: 0;
}
body:not(:has(.home-opening)) .eyebrow.type-kicker {
  font-family: var(--type-text); font-size: 20px;
  line-height: 32px; font-weight: 600;
  letter-spacing: 0; text-transform: uppercase;
}
body:not(:has(.home-opening)) .lead.type-body,
body:not(:has(.home-opening)) .body.type-body,
body:not(:has(.home-opening)) .process-card__body.type-body {
  font-family: var(--type-text); font-size: 16px;
  line-height: 24px; font-weight: 400; letter-spacing: 0;
}
body:not(:has(.home-opening)) .process-card__title.type-card-heading {
  font-family: var(--type-text); font-size: 22px;
  line-height: 29px; font-weight: 600; letter-spacing: 0;
}
body:not(:has(.home-opening)) .process-card__num.type-step-number {
  font-family: var(--type-text); font-size: 18px;
  line-height: 32px; font-weight: 600;
}
body:not(:has(.home-opening)) .callout.type-callout {
  font-family: var(--type-text); font-size: 18px;
  line-height: 28px; font-weight: 600; letter-spacing: 0;
}
/* All variants use approved homepage button geometry; colours remain variant-specific. */
body:not(:has(.home-opening)) .btn.type-button {
  font-family: var(--type-text); font-size: 16px;
  font-weight: 600; line-height: 20px; letter-spacing: 0;
  padding: 14px 32px !important; border-radius: 999px;
}
/* The homepage light button is a shared variant, not a homepage-only colour. */
.btn--home-light { background: var(--cream); border-color: var(--cream); color: #073039; }
.btn--home-light:hover { background: #fff; border-color: #fff; color: #073039; }
@media (max-width: 900px) {
  body:not(:has(.home-opening)) .display.type-display--section { font-size: clamp(34px, 6.4vw, 56px); }
  body:not(:has(.home-opening)) .eyebrow.type-kicker { font-size: clamp(15px, 2vw, 20px); line-height: 1.5; }
  body:not(:has(.home-opening)) .btn.type-button { font-size: 14px; line-height: 20px; }
}
@media (max-width: 600px) {
  body:not(:has(.home-opening)) .display.type-display--section { font-size: clamp(32px, 9vw, 48px); }
  body:not(:has(.home-opening)) .lead.type-body,
  body:not(:has(.home-opening)) .body.type-body,
  body:not(:has(.home-opening)) .process-card__body.type-body { font-size: 15px; line-height: 23px; }
  body:not(:has(.home-opening)) .process-card__title.type-card-heading { font-size: 19px; line-height: 26px; }
}


/* The Standard — XD layout refinements, 19 October 2026.
   Scoped styles preserve the approved homepage typography. */
.standard-hero {
  padding-top: clamp(76px, 8vw, 128px);
  padding-bottom: clamp(60px, 7vw, 112px);
  min-height: 0;
  align-items: center;
}
.standard-hero .container--narrow { max-width: 1180px; }
.standard-hero .lead { max-width: 900px; margin-inline: auto; }
.standard-section-intro { max-width: none; width: 100%; margin-inline: auto; }
.standard-section-intro .display { max-width: none; }
.standard-section-intro .lead { max-width: 1000px; margin-inline: auto; }
.standard-signals .standard-signal-grid { gap: 24px; }
.standard-signals .signal-card { min-width: 0; }
/* XD: Tusker Grotesk 4800 Super, 80px, 20% opacity for 01–05. */
.standard-signals .signal-card .process-card__num.type-step-number {
  font-family: var(--type-display); font-size: 80px; line-height: 1;
  font-weight: 800; font-synthesis: none; letter-spacing: 0;
  color: rgba(168,175,174,.20); margin-bottom: 6px;
}
.standard-signals .callout, .standard-method .callout { text-align: center; }
.standard-method .center > .lead { text-align: center; margin-inline: auto; max-width: none; }
.standard-method-grid { gap: 24px; }
.standard-method-grid .process-card { border-top: 3px solid #31B6CB; }
.standard-evidence-highlight {
  width: 100%; max-width: 1290px; margin-inline: auto;
  text-align: center; border: 1px solid #D19A33;
}
.standard-evidence-highlight .type-stat-highlight { color: #D19A33; font-weight: 600; }
.standard-evidence .standard-research-note {
  font-family: var(--type-text); font-size: 16px; line-height: 24px;
  font-weight: 400; color: var(--cream); max-width: 969px;
  margin-inline: auto; text-align: center;
}
.standard-research-actions { gap: 24px; }
.standard-audiences .card-grid { gap: 24px; }
.standard-audiences .card { border-top: 3px solid #31B6CB; }
/* Reusable final-CTA column alignment, suitable for other subpages. */
.site-final-cta .split { align-items: center; }
.site-final-cta .split > * { min-width: 0; }
@media (min-width: 821px) {
  .site-final-cta .split { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
}
@media (max-width: 900px) {
  .standard-signals .standard-signal-grid, .standard-method-grid, .standard-audiences .card-grid { gap: 16px; }
  .standard-signals .signal-card .process-card__num.type-step-number { font-size: 64px; }
}
@media (max-width: 600px) {
  .standard-hero { padding-top: 56px; }
  .standard-signals .signal-card .process-card__num.type-step-number { font-size: 52px; }
  .standard-evidence .standard-research-note { font-size: 15px; line-height: 23px; }
  .standard-research-actions { gap: 14px; }
}

/* Maintain approved spacing between homepage featured work cards. */
.home-work .work-grid { column-gap: 24px; row-gap: 24px; }
@media(max-width:760px){.home-work .work-grid{column-gap:16px;row-gap:16px;}}

/* The Standard — follow-up refinements, 19 October 2026 */
.standard-audiences { background: var(--bg, #080b0c); }
/* The two long section callouts should use the full 1640px content area. */
.standard-signals .callout.type-callout,
.standard-method .callout.type-callout {
  width: 100%; max-width: none; margin-inline: auto;
}
@media (min-width: 1100px) {
  .standard-signals .callout.type-callout,
  .standard-method .callout.type-callout { white-space: nowrap; }
}
@media (max-width: 1099px) {
  .standard-signals .callout.type-callout,
  .standard-method .callout.type-callout { white-space: normal; }
}
/* Approved shared button variants; retain common geometry and hover behavior. */
.btn.btn--home-light.type-button {
  background: var(--cream, #f5f3ec); color: #31B6CB;
  border: 1px solid var(--cream, #f5f3ec);
  font-family: var(--type-text); font-weight: 600;
  padding: 14px 32px; border-radius: 999px;
  text-decoration: none;
}
.btn.btn--home-light.type-button:hover { background: #fff; border-color: #fff; color: #31B6CB; }
.btn.btn--outline.type-button {
  background: transparent; color: #31B6CB;
  border: 1px solid #31B6CB;
  font-family: var(--type-text); font-weight: 600;
  padding: 14px 32px; border-radius: 999px;
  text-decoration: none;
}
.btn.btn--outline.type-button:hover { background: rgba(49,182,203,.12); color: #31B6CB; }

/* Global 3Rock logo dimensions — approved Adobe XD desktop artwork: 209 x 56px.
   Applied to the shared JS-rendered header and footer on every page. */
.site-header .site-header__logo img,
body:has(.home-evidence-grid) .site-header .site-header__logo img,
.site-footer .site-footer__logo img {
  display: block;
  width: 209px;
  height: auto;
  max-width: 100%;
}
@media (max-width: 760px) {
  .site-header .site-header__logo img,
  body:has(.home-evidence-grid) .site-header .site-header__logo img {
    width: 150px;
    height: auto;
  }
  .site-footer .site-footer__logo img { width: 185px; height: auto; }
}
@media (max-width: 390px) {
  .site-header .site-header__logo img,
  body:has(.home-evidence-grid) .site-header .site-header__logo img { width: 135px; }
}

/* Desktop footer logo: 350px, with mobile size unchanged. */
@media (min-width: 761px) {
  .site-footer .site-footer__logo img {
    width: 350px;
    height: auto;
    max-width: 100%;
  }
}

/* Homepage Featured Work: explicit gaps, preserving existing card typography. */
@media (min-width: 1061px) {
  .home-work .work-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 24px; row-gap: 24px; }
}
@media (min-width: 521px) and (max-width: 1060px) {
  .home-work .work-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; row-gap: 16px; }
}
@media (max-width: 520px) {
  .home-work .work-grid { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 16px; }
}
.home-work .work-grid > .work-card { min-width: 0; width: 100%; box-sizing: border-box; }

/* Featured Work arrows: identical size, position and motion to audience-card arrows. */
.home-work .work-card__arrow {
  left: 22px;
  bottom: 19px;
  font-size: 1.4rem;
  color: var(--cyan-bright);
  transition: transform .2s;
}
.home-work .work-card:hover .work-card__arrow,
.home-work .work-card:focus-visible .work-card__arrow {
  transform: translateX(6px);
}

/* Homepage Featured Work — match approved card gutters and text-aligned arrows.
   The older global `.work-grid { gap: 0 !important; }` must be overridden. */
.home-work .work-grid {
  gap: 24px !important;
}
/* The arrow sits inside the text content wrapper, not at the card edge. */
.home-work .work-card__content .work-card__arrow {
  left: 0;
  bottom: 10px;
}
@media (max-width: 1060px) {
  .home-work .work-grid { gap: 16px !important; }
}

/* Featured Work: align arrow with the 12px left inset of card text. */
.home-work .work-card__content .work-card__arrow {
  left: 12px;
}


/* PlayOJO case study: approved long-form layout; page-scoped, no homepage overrides. */
.page-playojo .container--wide{max-width:1640px;}
.page-playojo .section{padding-block:clamp(56px,5vw,96px);}
.page-playojo .hero-media.playojo-hero{min-height:clamp(460px,46vw,740px);background:#0a0c0d;}
.page-playojo .playojo-hero__video{width:100%;height:100%;object-fit:cover;object-position:center center;}
.page-playojo .playojo-hero .hero-media__scrim{background:linear-gradient(180deg,rgba(0,0,0,.06) 0%,rgba(0,0,0,.08) 42%,rgba(0,0,0,.88) 100%);}
.page-playojo .playojo-hero .hero-media__content{padding-bottom:clamp(35px,4vw,72px);}
.page-playojo .playojo-hero .display--xl{font-size:clamp(48px,5.4vw,100px)!important;max-width:none;}
.page-playojo .playojo-hero .hero-media__sub{max-width:1000px;font-size:clamp(15px,1.2vw,19px);line-height:1.5;}
.page-playojo .playojo-study-note{padding-block:22px;border-bottom:1px solid var(--border);}
.page-playojo .playojo-study-note .body{font-size:15px;line-height:1.6;}
.page-playojo .display{font-size:clamp(42px,4.3vw,80px);line-height:1.02;}
.page-playojo .playojo-brief .split{grid-template-columns:0.88fr 1.12fr;gap:clamp(40px,5vw,100px);}
.page-playojo .playojo-brief .body{font-size:clamp(16px,1.15vw,18px);line-height:1.65;}
.page-playojo .playojo-results .stat-block-row{background:#101e20;display:grid;gap:0;border:1px solid #355155;margin-top:32px;}
.page-playojo .playojo-results .stat-block{padding:clamp(20px,2vw,38px);text-align:center;border-right:1px solid #355155;}
.page-playojo .playojo-results .stat-block:last-child{border-right:0;}
.page-playojo .stat-block__num{font-family:var(--font-display);font-size:clamp(48px,4.8vw,82px);line-height:1;color:#D19A33;}
.page-playojo .stat-block__label{font-size:clamp(13px,1vw,17px);font-weight:700;}
.page-playojo .stat-block__sub{font-size:clamp(13px,1vw,16px);line-height:1.5;}
.page-playojo .playojo-results .lead{max-width:1150px;font-size:clamp(16px,1.2vw,19px);line-height:1.65;}
.page-playojo .playojo-comparison .maxw-60{max-width:820px;}
.page-playojo .playojo-comparison .split{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(25px,3vw,55px);}
.page-playojo .playojo-comparison .stat-block-row{border:1px solid #31474a;background:#0f1c1e;}
.page-playojo .playojo-comparison .stat-block{padding:26px 18px;text-align:center;}
.page-playojo .playojo-comparison .split img{width:100%;height:auto;aspect-ratio:auto!important;object-fit:contain!important;border-radius:0!important;}
.page-playojo .playojo-comparison .split .card{padding:0!important;background:transparent;border:0;}
.page-playojo .playojo-comparison .split .card>div:first-child{display:none!important;}
.page-playojo .playojo-comparison .muted{font-size:14px!important;line-height:1.6;}
.page-playojo .playojo-method .card-grid{gap:0;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:32px;}
.page-playojo .playojo-method .signal-card{border:1px solid #355155;border-right:0;border-radius:0;background:#101d20;padding:clamp(18px,1.7vw,30px);}
.page-playojo .playojo-method .signal-card:last-child{border-right:1px solid #355155;}
.page-playojo .playojo-method .process-card__title,.page-playojo .playojo-why .process-card__title{font-size:clamp(17px,1.25vw,22px);line-height:1.25;font-weight:700;}
.page-playojo .playojo-method .process-card__body,.page-playojo .playojo-why .process-card__body{font-size:clamp(14px,1vw,16px);line-height:1.6;}
.page-playojo .playojo-why .card-grid{gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));}
.page-playojo .playojo-why .card{background:#101d20;border:1px solid #2b4145;padding:clamp(22px,2vw,36px);}
.page-playojo .playojo-category .reveal:first-child{max-width:1120px;margin-inline:auto;}
.page-playojo .playojo-category .lead{font-size:clamp(16px,1.15vw,19px);line-height:1.65;}
.page-playojo .playojo-category .credits{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:0;}
.page-playojo .playojo-category .credits__cell{padding:24px 12px;}
.page-playojo .playojo-category .btn{padding:14px 32px;}
@media(max-width:1050px){.page-playojo .playojo-method .card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}.page-playojo .playojo-method .signal-card{border:1px solid #355155;}.page-playojo .playojo-category .credits{grid-template-columns:repeat(3,minmax(0,1fr))!important;}}
@media(max-width:820px){.page-playojo .playojo-brief .split,.page-playojo .playojo-comparison .split{grid-template-columns:1fr;}.page-playojo .playojo-hero .display--xl{font-size:clamp(44px,9vw,75px)!important;}.page-playojo .playojo-results .stat-block-row{grid-template-columns:1fr;}.page-playojo .playojo-results .stat-block{border-right:0;border-bottom:1px solid #355155;}.page-playojo .playojo-results .stat-block:last-child{border-bottom:0;}.page-playojo .playojo-why .card-grid{grid-template-columns:1fr;}.page-playojo .playojo-category .credits{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
@media(max-width:600px){.page-playojo .hero-media.playojo-hero{min-height:530px;}.page-playojo .playojo-hero__video{object-position:48% center;}.page-playojo .playojo-method .card-grid{grid-template-columns:1fr;}.page-playojo .playojo-category .credits{grid-template-columns:1fr!important;}.page-playojo .playojo-category .credits__cell{border-right:0;}.page-playojo .playojo-comparison .stat-block-row.n2{grid-template-columns:repeat(2,minmax(0,1fr));}.page-playojo .playojo-comparison .stat-block{padding:18px 8px;}}
@media(prefers-reduced-motion:reduce){.page-playojo .playojo-hero__video{display:none;}.page-playojo .playojo-hero{background:#090b0c url(../img/playojo-video-poster.jpg) center/cover no-repeat;}}

/* PlayOJO follow-up: scoped fixes; approved shared typography/button classes. */
.page-playojo .playojo-study-note { border-bottom: 0; }
.page-playojo .playojo-study-note .container { border-bottom: 1px solid var(--border); padding-bottom: 22px; }
.page-playojo .playojo-study-label { color: var(--cyan-bright); }
.page-playojo .playojo-comparison .playojo-comparison-kicker { font-family: var(--type-text); font-weight: 600; font-size: 20px; line-height: 32px; text-transform: uppercase; color: #31B6CB; letter-spacing: 0; }
.page-playojo .playojo-comparison .stat-block-row { background: var(--black, #090b0c); }
.page-playojo .playojo-gold { color: #D19A33; }
@media (max-width: 760px) { .page-playojo .playojo-comparison .playojo-comparison-kicker { font-size: 16px; line-height: 1.5; } }


/* Coca-Cola case study — scoped to match approved PlayOJO design system. */
.page-coca-cola .container--wide { max-width:1640px; }
.page-coca-cola .section { padding-block:clamp(56px,5vw,96px); }
.page-coca-cola .display { font-size:clamp(42px,4.3vw,80px);line-height:1.02; }
.page-coca-cola .hero-media.coca-cola-hero { min-height:clamp(470px,46vw,740px);background:#0a0c0d url(../img/coca-cola-video-poster.jpg) center/cover no-repeat; }
.page-coca-cola .coca-cola-hero__video { width:100%;height:100%;object-fit:cover;object-position:center; }
.page-coca-cola .coca-cola-hero .hero-media__scrim { background:linear-gradient(180deg,rgba(0,0,0,.04) 0%,rgba(0,0,0,.12) 38%,rgba(0,0,0,.88) 100%); }
.page-coca-cola .coca-cola-hero .hero-media__content { padding-bottom:clamp(35px,4vw,72px); }
.page-coca-cola .coca-cola-hero .display--xl { font-size:clamp(48px,5.4vw,100px)!important;max-width:1100px; }
.page-coca-cola .coca-cola-hero .hero-media__sub { max-width:1000px;font-size:clamp(15px,1.2vw,19px);line-height:1.5; }
.page-coca-cola .coca-cola-work .split { grid-template-columns:.88fr 1.12fr;gap:clamp(40px,5vw,100px); }
.page-coca-cola .coca-cola-work .body { font-size:clamp(16px,1.15vw,18px);line-height:1.65; }
.page-coca-cola .coca-cola-why .container { max-width:1200px; }
.page-coca-cola .coca-cola-why .eyebrow { font-family:var(--type-text);font-weight:600;font-size:clamp(16px,1.25vw,20px);line-height:1.6;color:var(--cyan-bright);letter-spacing:0; }
.page-coca-cola .coca-cola-why .lead { max-width:1040px;font-size:clamp(16px,1.15vw,19px);line-height:1.65; }
.page-coca-cola .coca-cola-credits .credits { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:1100px;margin-inline:auto;gap:0;border:1px solid var(--border);background:#101d20; }
.page-coca-cola .coca-cola-credits .credits__cell { padding:clamp(20px,2vw,32px) 14px; }
.page-coca-cola .coca-cola-credits .credits__label { font-size:clamp(12px,1vw,16px);letter-spacing:0; }
.page-coca-cola .coca-cola-credits .credits__val { font-size:clamp(15px,1.15vw,18px); }
@media(max-width:820px) { .page-coca-cola .coca-cola-work .split { grid-template-columns:1fr;gap:26px; } .page-coca-cola .coca-cola-hero .display--xl { font-size:clamp(44px,9vw,75px)!important; } }
@media(max-width:600px) { .page-coca-cola .hero-media.coca-cola-hero { min-height:530px; } .page-coca-cola .coca-cola-credits .credits { grid-template-columns:1fr; } .page-coca-cola .coca-cola-credits .credits__cell { border-right:0;border-bottom:1px solid var(--border); } .page-coca-cola .coca-cola-credits .credits__cell:last-child { border-bottom:0; } }
@media(prefers-reduced-motion:reduce) { .page-coca-cola .coca-cola-hero__video { display:none; } }

/* Case-study hero videos: preserve full source frame above copy on mobile.
   Shared by PlayOJO and Coca-Cola; desktop video-overlay layout is unchanged. */
@media (max-width: 767px) {
  .page-playojo .hero-media.playojo-hero,
  .page-coca-cola .hero-media.coca-cola-hero {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    min-height: 0;
    height: auto;
    overflow: visible;
    background: #0a0c0d;
  }
  .page-playojo .playojo-hero__video,
  .page-coca-cola .coca-cola-hero__video {
    position: relative;
    inset: auto;
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: center;
    flex: 0 0 auto;
  }
  .page-playojo .playojo-hero .hero-media__scrim,
  .page-coca-cola .coca-cola-hero .hero-media__scrim {
    display: none;
  }
  .page-playojo .playojo-hero .hero-media__content,
  .page-coca-cola .coca-cola-hero .hero-media__content {
    position: relative;
    width: 100%;
    padding-top: 28px;
    padding-bottom: 38px;
  }
}

/* Homepage: device-specific showreel. Keep desktop and mobile videos separate. */
.home-video-band .home-main-video--mobile { display:none; }
@media (max-width:760px) {
  .home-video-band .home-main-video--desktop { display:none; }
  .home-video-band .home-main-video--mobile { display:block; width:100%; height:auto; aspect-ratio:auto; object-fit:contain; }
}


/* Bacardi case study: shared case-study UI and approved design alignment. */
.page-bacardi .container--wide {max-width:1640px;}
.page-bacardi .section {padding-block:clamp(56px,5vw,96px);}
.page-bacardi .display {font-size:clamp(42px,4.3vw,80px);line-height:1.02;}
.page-bacardi .hero-media.bacardi-hero {min-height:clamp(470px,46vw,740px);background:#0a0c0d url(../img/bacardi-video-poster.jpg) center/cover no-repeat;}
.page-bacardi .bacardi-hero__video {width:100%;height:100%;object-fit:cover;object-position:center;}
.page-bacardi .bacardi-hero .hero-media__scrim {background:linear-gradient(180deg,rgba(0,0,0,.04) 0%,rgba(0,0,0,.12) 38%,rgba(0,0,0,.88) 100%);}
.page-bacardi .bacardi-hero .hero-media__content {padding-bottom:clamp(35px,4vw,72px);}
.page-bacardi .bacardi-hero .display--xl {font-size:clamp(48px,5.4vw,100px)!important;max-width:1100px;}
.page-bacardi .bacardi-hero .hero-media__sub {max-width:1000px;font-size:clamp(15px,1.2vw,19px);line-height:1.5;}
.page-bacardi .bacardi-work .split,.page-bacardi .bacardi-why .split {grid-template-columns:.88fr 1.12fr;gap:clamp(40px,5vw,100px);}
.page-bacardi .bacardi-work .body,.page-bacardi .bacardi-why .body {font-size:clamp(16px,1.15vw,18px);line-height:1.65;}
.page-bacardi .bacardi-why .eyebrow {font-family:var(--type-text);font-weight:600;font-size:clamp(16px,1.25vw,20px);line-height:1.6;color:var(--cyan-bright);letter-spacing:0;}
.page-bacardi .bacardi-results .stat-block-row {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:1100px;margin-inline:auto;gap:0;border:1px solid var(--border);background:#101d20;}
.page-bacardi .bacardi-results .stat-block {padding:clamp(20px,2vw,38px);text-align:center;}
.page-bacardi .bacardi-results .stat-block__num {font-family:var(--font-display);font-size:clamp(48px,4.8vw,82px);line-height:1;color:#D19A33;}
.page-bacardi .bacardi-results .stat-block__label {font-size:clamp(13px,1vw,17px);font-weight:700;}
.page-bacardi .bacardi-results .stat-block__sub {font-size:clamp(13px,1vw,16px);line-height:1.5;}
.page-bacardi .bacardi-results .lead {max-width:1100px;font-size:clamp(16px,1.15vw,19px);line-height:1.65;}
.page-bacardi .bacardi-credits .credits {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:1100px;margin-inline:auto;gap:0;border:1px solid var(--border);background:#101d20;}
.page-bacardi .bacardi-credits .credits__cell {padding:clamp(20px,2vw,32px) 14px;}
.page-bacardi .bacardi-credits .credits__label {font-size:clamp(12px,1vw,16px);letter-spacing:0;}
.page-bacardi .bacardi-credits .credits__val {font-size:clamp(15px,1.15vw,18px);}
.page-bacardi .bacardi-credits .muted {font-size:clamp(14px,1vw,16px);line-height:1.6;}
@media(max-width:820px){.page-bacardi .bacardi-work .split,.page-bacardi .bacardi-why .split {grid-template-columns:1fr;gap:26px;}.page-bacardi .bacardi-hero .display--xl {font-size:clamp(44px,9vw,75px)!important;}}
@media(max-width:767px){
 .page-bacardi .hero-media.bacardi-hero {display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;min-height:0;height:auto;overflow:visible;background:#0a0c0d;}
 .page-bacardi .bacardi-hero__video {position:relative;inset:auto;display:block;width:100%;height:auto;max-width:100%;object-fit:contain;object-position:center;flex:0 0 auto;}
 .page-bacardi .bacardi-hero .hero-media__scrim {display:none;}
 .page-bacardi .bacardi-hero .hero-media__content {position:relative;width:100%;padding:28px 20px 42px;background:#0a0c0d;}
 .page-bacardi .bacardi-hero .display--xl {font-size:clamp(42px,10vw,65px)!important;line-height:1.02;}
 .page-bacardi .bacardi-hero .hero-media__sub {font-size:16px;line-height:1.5;}
 .page-bacardi .bacardi-credits .credits {grid-template-columns:1fr;}
 .page-bacardi .bacardi-credits .credits__cell {border-right:0;border-bottom:1px solid var(--border);}
 .page-bacardi .bacardi-credits .credits__cell:last-child {border-bottom:0;}
}
@media(max-width:480px){.page-bacardi .bacardi-results .stat-block-row {grid-template-columns:1fr;}.page-bacardi .bacardi-results .stat-block {border-right:0;border-bottom:1px solid var(--border);}.page-bacardi .bacardi-results .stat-block:last-child {border-bottom:0;}}
@media(prefers-reduced-motion:reduce){.page-bacardi .bacardi-hero__video {display:none;}}

/* Smirnoff case study: shared case-study UI and approved design alignment. */
.page-smirnoff .container--wide {max-width:1640px;}
.page-smirnoff .section {padding-block:clamp(56px,5vw,96px);}
.page-smirnoff .display {font-size:clamp(42px,4.3vw,80px);line-height:1.02;}
.page-smirnoff .hero-media.smirnoff-hero {min-height:clamp(470px,46vw,740px);background:#0a0c0d url(../img/smirnoff-video-poster.jpg) center/cover no-repeat;}
.page-smirnoff .smirnoff-hero__video {width:100%;height:100%;object-fit:cover;object-position:center;}
.page-smirnoff .smirnoff-hero .hero-media__scrim {background:linear-gradient(180deg,rgba(0,0,0,.04) 0%,rgba(0,0,0,.12) 38%,rgba(0,0,0,.88) 100%);}
.page-smirnoff .smirnoff-hero .hero-media__content {padding-bottom:clamp(35px,4vw,72px);}
.page-smirnoff .smirnoff-hero .display--xl {font-size:clamp(48px,5.4vw,100px)!important;max-width:1100px;}
.page-smirnoff .smirnoff-hero .hero-media__sub {max-width:1000px;font-size:clamp(15px,1.2vw,19px);line-height:1.5;}
.page-smirnoff .smirnoff-work .split,.page-smirnoff .smirnoff-why .split {grid-template-columns:.88fr 1.12fr;gap:clamp(40px,5vw,100px);}
.page-smirnoff .smirnoff-work .body,.page-smirnoff .smirnoff-why .body {font-size:clamp(16px,1.15vw,18px);line-height:1.65;}
.page-smirnoff .smirnoff-why .eyebrow {font-family:var(--type-text);font-weight:600;font-size:clamp(16px,1.25vw,20px);line-height:1.6;color:var(--cyan-bright);letter-spacing:0;}
.page-smirnoff .smirnoff-results .stat-block-row {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:1100px;margin-inline:auto;gap:0;border:1px solid var(--border);background:#101d20;}
.page-smirnoff .smirnoff-results .stat-block {padding:clamp(20px,2vw,38px);text-align:center;}
.page-smirnoff .smirnoff-results .stat-block__num {font-family:var(--font-display);font-size:clamp(48px,4.8vw,82px);line-height:1;color:#D19A33;}
.page-smirnoff .smirnoff-results .stat-block__label {font-size:clamp(13px,1vw,17px);font-weight:700;}
.page-smirnoff .smirnoff-results .stat-block__sub {font-size:clamp(13px,1vw,16px);line-height:1.5;}
.page-smirnoff .smirnoff-results .lead {max-width:1100px;font-size:clamp(16px,1.15vw,19px);line-height:1.65;}
.page-smirnoff .smirnoff-credits .credits {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));max-width:1400px;margin-inline:auto;gap:0;border:1px solid var(--border);background:#101d20;}
.page-smirnoff .smirnoff-credits .credits__cell {padding:clamp(20px,2vw,32px) 14px;}
.page-smirnoff .smirnoff-credits .credits__label {font-size:clamp(12px,1vw,16px);letter-spacing:0;}
.page-smirnoff .smirnoff-credits .credits__val {font-size:clamp(15px,1.15vw,18px);}
.page-smirnoff .smirnoff-credits .muted {font-size:clamp(14px,1vw,16px);line-height:1.6;}
@media(max-width:820px){.page-smirnoff .smirnoff-work .split,.page-smirnoff .smirnoff-why .split {grid-template-columns:1fr;gap:26px;}.page-smirnoff .smirnoff-hero .display--xl {font-size:clamp(44px,9vw,75px)!important;}}
@media(max-width:767px){
 .page-smirnoff .hero-media.smirnoff-hero {display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;min-height:0;height:auto;overflow:visible;background:#0a0c0d;}
 .page-smirnoff .smirnoff-hero__video {position:relative;inset:auto;display:block;width:100%;height:auto;max-width:100%;object-fit:contain;object-position:center;flex:0 0 auto;}
 .page-smirnoff .smirnoff-hero .hero-media__scrim {display:none;}
 .page-smirnoff .smirnoff-hero .hero-media__content {position:relative;width:100%;padding:28px 20px 42px;background:#0a0c0d;}
 .page-smirnoff .smirnoff-hero .display--xl {font-size:clamp(42px,10vw,65px)!important;line-height:1.02;}
 .page-smirnoff .smirnoff-hero .hero-media__sub {font-size:16px;line-height:1.5;}
 .page-smirnoff .smirnoff-credits .credits {grid-template-columns:1fr;}
 .page-smirnoff .smirnoff-credits .credits__cell {border-right:0;border-bottom:1px solid var(--border);}
 .page-smirnoff .smirnoff-credits .credits__cell:last-child {border-bottom:0;}
}
@media(max-width:480px){.page-smirnoff .smirnoff-results .stat-block-row {grid-template-columns:1fr;}.page-smirnoff .smirnoff-results .stat-block {border-right:0;border-bottom:1px solid var(--border);}.page-smirnoff .smirnoff-results .stat-block:last-child {border-bottom:0;}}
@media(prefers-reduced-motion:reduce){.page-smirnoff .smirnoff-hero__video {display:none;}}

@media (max-width:1050px) and (min-width:768px){.page-smirnoff .smirnoff-credits .credits{grid-template-columns:repeat(3,minmax(0,1fr));}.page-smirnoff .smirnoff-credits .credits__cell:nth-child(3){border-right:0;}}


/* Work Hub grid typography — Adobe XD approved desktop styles, 19 Oct 2026.
   Deliberately scoped: homepage Featured Work cards remain unchanged. */
body:has(#work-grid) #work-grid .work-card__brand {
  font-family: var(--font-body); font-size:20px; font-weight:600;
  line-height:1.6; letter-spacing:0; text-transform:uppercase;
  color:var(--white); margin:0 0 2px;
}
body:has(#work-grid) #work-grid .work-card__title {
  font-family:var(--font-body); font-size:32px; font-weight:600;
  line-height:1; letter-spacing:0; text-transform:uppercase;
  color:var(--white); margin:0;
}
body:has(#work-grid) #work-grid .work-card__meta {
  font-family:var(--font-body); font-size:16px; font-weight:500;
  line-height:2; letter-spacing:0; text-transform:uppercase;
  color:var(--white); margin-top:12px;
}
body:has(#work-grid) #work-grid .work-card__readcase {
  font-family:var(--font-body); font-size:14px; font-weight:600;
  line-height:1.3; letter-spacing:0; text-transform:uppercase;
  color:var(--cyan); white-space:nowrap;
}
@media (max-width:1199px) {
  body:has(#work-grid) #work-grid .work-card__brand {font-size:18px;}
  body:has(#work-grid) #work-grid .work-card__title {font-size:clamp(22px,2.5vw,30px);line-height:1.08;}
  body:has(#work-grid) #work-grid .work-card__meta {font-size:14px;line-height:1.6;}
  body:has(#work-grid) #work-grid .work-card__readcase {font-size:13px;}
}
@media (max-width:720px) {
  body:has(#work-grid) #work-grid .work-card__brand {font-size:16px;}
  body:has(#work-grid) #work-grid .work-card__title {font-size:clamp(20px,5.5vw,26px);line-height:1.12;}
  body:has(#work-grid) #work-grid .work-card__meta {font-size:12px;line-height:1.5;gap:5px 10px;}
  body:has(#work-grid) #work-grid .work-card__readcase {font-size:12px;}
}

/* Work page mobile overflow fix + video lightbox (cards 5–16). */
#work-grid {min-width:0;max-width:100%;}
#work-grid > .work-card {min-width:0;max-width:100%;box-sizing:border-box;}
#work-grid .work-card__content {min-width:0;box-sizing:border-box;}
#work-grid .work-card__title {overflow-wrap:anywhere;}
#work-grid .work-card__tag {max-width:calc(100% - 24px);white-space:normal;text-align:center;box-sizing:border-box;overflow-wrap:break-word;}
#work-grid .work-card__meta {min-width:0;}
#work-grid .work-card__readcase {margin-left:0;white-space:normal;}
#work-grid .work-card--video {cursor:pointer;}
#work-grid .work-card--video:focus-visible {outline:3px solid var(--cyan);outline-offset:-3px;}
@media(max-width:767px){
  #work-grid {display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%;}
  #work-grid > .work-card {width:100%;min-height:clamp(310px,105vw,440px);aspect-ratio:auto;}
  #work-grid .work-card__content {left:20px;right:20px;bottom:22px;}
  #work-grid .work-card__meta {gap:5px 10px;}
  #work-grid .work-card__readcase {flex-basis:100%;}
  #work-grid .work-card__tag {right:12px;top:12px;}
  body:has(#work-grid) {overflow-x:clip;}
}
.work-video-modal[hidden] {display:none!important;}
.work-video-modal {position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vw,32px);box-sizing:border-box;}
.work-video-modal__backdrop {position:absolute;inset:0;background:rgba(0,0,0,.9);}
.work-video-modal__panel {position:relative;z-index:1;width:min(1100px,100%);max-height:calc(100dvh - 24px);overflow:auto;background:#0a0c0d;border:1px solid #29454a;padding:clamp(18px,3vw,32px);box-sizing:border-box;}
.work-video-modal__close {position:absolute;top:8px;right:12px;background:transparent;border:0;color:#f2efe9;font-size:36px;line-height:1;cursor:pointer;padding:6px 12px;}
.work-video-modal__title {font-family:var(--font-body);font-size:clamp(16px,2vw,22px);font-weight:600;color:#f2efe9;margin:0 50px 18px 0;}
.work-video-modal__player {display:block;width:100%;height:auto;max-height:75dvh;background:#000;object-fit:contain;}
.work-video-modal__pending {color:#f2efe9;margin:20px 0 4px;}
body.work-video-open {overflow:hidden;}

/* Work Hub tiles: fill the full card at every viewport size.
   Scoped to Work Hub; does not alter homepage Featured Work or case studies. */
#work-grid > .work-card { position: relative; overflow: hidden; }
#work-grid > .work-card > img.work-card__img {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center center;
}

/* Work Hub only: seamless black canvas between navigation, filters, grid and footer. */
body:has(#work-grid),
body:has(#work-grid) main,
body:has(#work-grid) main > section,
body:has(#work-grid) main .bg-bg { background-color: #090b0c !important; }
body:has(#work-grid) .site-header { border-bottom: 0 !important; }
body:has(#work-grid) .site-footer { border-top: 0 !important; background-color: #090b0c !important; }
/* Keep image cover behavior across all Work tiles. */
#work-grid > .work-card > .work-card__img { width:100%; height:100%; object-fit:cover; object-position:center; }


/* Research page — approved 08 Research layout, scoped to preserve global UI */
.page-research main{background:#0a0c0d;}
.page-research main .container--wide{width:calc(100% - 2 * var(--gutter));max-width:1640px;margin-inline:auto;}
.page-research .section{padding-block:clamp(58px,5.2vw,96px);}
.page-research .hero-gradient{background:#0b2a2e;}
.page-research .research-section-1{padding-block:clamp(72px,6vw,120px);}
.page-research .research-section-1 .display{font-size:clamp(58px,6vw,112px);line-height:.96;}
.page-research .research-section-1 .lead{max-width:1050px;}
.page-research .research-section-2 .center{max-width:1120px;}
.page-research .research-section-2 .display,.page-research .research-section-3 .display,.page-research .research-section-4>div>.center .display,.page-research .research-section-5 .display,.page-research .research-section-6 .display{font-size:clamp(52px,5.2vw,96px);line-height:1.02;}
.page-research .research-section-2 .card-grid.cols-5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-top:60px;}
.page-research .research-section-2 .signal-card{min-width:0;background:#111a1c;border:1px solid #2d4447;border-right:0;border-radius:0;padding:clamp(18px,1.6vw,32px);}
.page-research .research-section-2 .signal-card:last-child{border-right:1px solid #2d4447;}
.page-research .research-section-2 .process-card__num{font:800 clamp(54px,5.3vw,94px)/.95 var(--font-display);color:rgba(242,239,233,.2);}
.page-research .research-section-2 .process-card__title{font-family:var(--font-body);font-size:clamp(17px,1.45vw,25px);font-weight:700;line-height:1.12;text-transform:uppercase;color:var(--cream);}
.page-research .research-section-2 .process-card__body{font-size:clamp(13px,1vw,17px);line-height:1.45;color:var(--cream);}
.page-research .research-section-2 .callout{max-width:1120px;margin:55px auto 0;text-align:center;}
.page-research .research-section-3{padding-top:50px;}
.page-research .research-section-3 .split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,100px);align-items:start;}
.page-research .research-section-3 .split>div:nth-child(2){font-size:clamp(15px,1.1vw,18px);line-height:1.6;}
.page-research .research-study-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin-top:48px;border:1px solid #365052;background:#111d20;}
.page-research .research-study-stat{padding:clamp(18px,2vw,34px) 14px;text-align:center;border-right:1px solid #365052;display:flex;flex-direction:column;align-items:center;gap:12px;}
.page-research .research-study-stat:last-child{border-right:0;}
.page-research .research-study-stat strong{font:800 clamp(34px,3.5vw,66px)/1 var(--font-display);color:var(--amber);white-space:nowrap;}
.page-research .research-study-stat span{font-size:clamp(12px,.95vw,16px);line-height:1.35;}
.page-research .research-section-4{background:#0b2a2e;}
.page-research .research-section-4 .counter__num{font-size:clamp(100px,12vw,210px);color:var(--amber);font-family:var(--font-display);line-height:1;}
.page-research .research-section-4 .center>.lead{max-width:850px;}
.page-research .research-section-4 .data-table{width:100%;table-layout:fixed;background:#111a1c;}
.page-research .research-section-4 .data-table td,.page-research .research-section-4 .data-table th{padding:clamp(12px,1.4vw,23px);}
.page-research .research-section-4 .data-table .stat-val{font:800 clamp(23px,2.4vw,44px)/1 var(--font-display);color:var(--amber);}
.page-research .research-section-4 .stat-block-row{max-width:none;background:#111a1c;border:1px solid #34494b;gap:0;}
.page-research .research-section-4 .stat-block{padding:clamp(22px,2vw,38px);}
.page-research .research-section-4 .stat-block__num{font-size:clamp(64px,7vw,124px);line-height:1;color:var(--amber);}
.page-research .research-section-4 .stat-block__label{font-size:clamp(13px,1.1vw,17px);}
.page-research .research-section-4 .card-grid.cols-2{gap:clamp(35px,4vw,80px);margin-top:75px;}
.page-research .research-section-4 .card-grid.cols-2>div{text-align:center;}
.page-research .research-section-4 .card-grid.cols-2 h3{font-size:clamp(36px,3.5vw,65px);line-height:1.05;}
.page-research .research-section-4 .btn-row{justify-content:center;gap:24px;}
.page-research .research-section-5{background:#0a0c0d;}
.page-research .research-section-5 .card-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.page-research .research-section-5 .card{min-height:350px;border-radius:0;background:#111a1c;padding:clamp(22px,2vw,38px);}
.page-research .research-section-5 .process-card__title{font-family:var(--font-body);font-size:clamp(21px,1.7vw,29px);font-weight:700;text-transform:uppercase;}
.page-research .research-section-5 .process-card__body{font-size:clamp(14px,1vw,17px);line-height:1.55;}
.page-research .research-section-6{background:#0b2a2e;}
.page-research .research-section-6 .split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(45px,5vw,100px);align-items:start;}
.page-research .research-section-6 form.card{background:#111a1c;border:1px solid #34494b;border-radius:0;padding:clamp(25px,2vw,42px);}
.page-research .research-section-6 form .btn{width:100%;}
.page-research .research-section-6 .form-field{margin-bottom:14px;}
.page-research .research-section-6 .form-field input,.page-research .research-section-6 .form-field textarea{background:#152426;border:1px solid #34494b;}
@media(max-width:1000px){.page-research .research-section-2 .card-grid.cols-5{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}.page-research .research-section-2 .signal-card{border:1px solid #2d4447;}.page-research .research-study-stats{grid-template-columns:repeat(3,minmax(0,1fr));}.page-research .research-study-stat:nth-child(3){border-right:0;}.page-research .research-study-stat:nth-child(-n+3){border-bottom:1px solid #365052;}}
@media(max-width:700px){.page-research .research-section-1 .display{font-size:clamp(48px,11vw,78px);}.page-research .research-section-2 .card-grid.cols-5{grid-template-columns:1fr 1fr;}.page-research .research-section-3 .split,.page-research .research-section-6 .split,.page-research .research-section-4 .card-grid.cols-2{grid-template-columns:1fr;}.page-research .research-section-5 .card-grid.cols-3{grid-template-columns:1fr;}.page-research .research-section-5 .card{min-height:0;}.page-research .research-section-4 .data-table{display:block;overflow-x:auto;white-space:nowrap;}.page-research .research-study-stats{grid-template-columns:repeat(2,minmax(0,1fr));}.page-research .research-study-stat{border-bottom:1px solid #365052;}.page-research .research-study-stat:nth-child(3){border-right:1px solid #365052;}.page-research .research-study-stat:nth-child(even){border-right:0;}.page-research .research-study-stat:nth-last-child(-n+2){border-bottom:0;}.page-research .research-section-4 .stat-block-row.n3{grid-template-columns:1fr;}.page-research .research-section-4 .stat-block-row.n2{grid-template-columns:1fr 1fr;}.page-research .research-section-4 .stat-block__num{font-size:clamp(52px,10vw,84px);}}

/* Research review corrections — 19 Oct 2026. Scoped to this page. */
.page-research .research-section-1{padding-top:clamp(76px,8vw,128px);padding-bottom:clamp(60px,7vw,112px);min-height:0;}
.page-research .research-section-2 .signal-card .process-card__num.type-step-number{font-family:var(--type-display);font-size:80px;line-height:1;font-weight:800;font-synthesis:none;letter-spacing:0;color:rgba(168,175,174,.20);margin-bottom:6px;}
.page-research .research-section-2 .callout.type-callout{font-family:var(--type-text);font-size:18px;line-height:28px;font-weight:600;letter-spacing:0;color:var(--cream);text-transform:none;max-width:992px;text-align:center;}
.page-research .research-section-3 .split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
.page-research .research-section-3 .research-study-heading .display{max-width:100%;}
.page-research .research-section-3 .research-study-description{padding-top:0;}
.page-research .research-section-3 .research-study-description .body{font-size:16px;line-height:24px;color:var(--cream);}
.page-research .research-warcpub{font-size:14px;line-height:24px;color:var(--muted);margin:18px auto 0;text-align:center;}
.page-research .research-finding-subtitle{font-family:var(--type-text);font-weight:600;font-size:32px;line-height:1.15;text-transform:uppercase;text-align:center;color:var(--cream);margin:8px 0 24px;}
.page-research .research-attention-note{font-family:var(--type-text);font-size:16px;line-height:24px;color:var(--cream);text-align:center;max-width:1040px;margin-inline:auto;}
.page-research .research-section-4 .eyebrow.eyebrow--muted.type-kicker{font-family:var(--type-text);font-size:16px;line-height:32px;font-weight:600;letter-spacing:0;color:#a8afae;text-transform:uppercase;}
.page-research .research-section-4 .stat-block__label{font-family:var(--type-text);font-size:16px;line-height:24px;font-weight:400;color:var(--cream);text-align:center;}
.page-research .research-section-4 .stat-block{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.page-research .btn--white.type-button{background:var(--cream);color:#31B6CB;border-color:var(--cream);}
.page-research .btn--white.type-button:hover{background:#fff;color:#31B6CB;}
.page-research .research-section-5 .card{display:flex;flex-direction:column;align-items:flex-start;}
.page-research .research-section-5 .research-team-label{font-family:var(--type-text);font-size:18px;line-height:24px;font-weight:600;letter-spacing:0;color:#a8afae;text-transform:uppercase;margin:0 0 12px;}
.page-research .research-section-5 .research-team-arrow{font-family:var(--type-text);font-size:24px;line-height:1;color:var(--cyan-bright);margin-top:auto;padding-top:24px;transition:transform .2s;}
.page-research .research-section-6 .research-paper-subscribers{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:32px;padding-bottom:46px;border-bottom:1px solid #365052;}
.page-research .research-section-6 .research-paper-subscribers strong{font-family:var(--type-text);font-size:18px;font-weight:700;color:var(--cream);}
.page-research .research-section-6 .research-paper-nonsubscriber{margin-top:42px;}
.page-research .research-section-6 .research-paper-nonsubscriber h3{font-family:var(--type-text);font-size:26px;line-height:1.25;color:var(--cream);font-weight:700;margin:0 0 18px;}
.page-research .research-section-6 .research-paper-nonsubscriber p{font-family:var(--type-text);font-size:16px;line-height:24px;color:var(--cream);margin:0;}
@media(max-width:1000px){.page-research .research-section-2 .signal-card .process-card__num.type-step-number{font-size:64px;}}
@media(max-width:700px){.page-research .research-section-1{padding-top:56px;}.page-research .research-section-2 .signal-card .process-card__num.type-step-number{font-size:52px;}.page-research .research-finding-subtitle{font-size:clamp(22px,5vw,32px);}.page-research .research-section-6 .research-paper-subscribers{gap:16px;}}

/* Research findings 01–05: approved teal labels */
.page-research .research-section-4 .eyebrow.eyebrow--muted.type-kicker { color: var(--cyan); }

/* Research Finding 03 benchmark descriptions: sentence case as approved PDF */
.page-research .research-section-4 .stat-block__label { text-transform: none; letter-spacing: 0; }

/* Research Finding 03 benchmark headings: match teal FINDING 01–05 labels */
.page-research .research-section-4 .eyebrow.eyebrow--muted.type-kicker { color: var(--cyan); }

/* Research: benchmark headings are muted grey, distinct from teal Finding labels. */
.page-research .research-section-4 .research-benchmark-heading.eyebrow.type-kicker {
  color: #a8afae;
  font-family: var(--type-text);
  font-size: 16px;
  font-weight: 600;
  line-height: 32px;
  letter-spacing: 0;
  text-align: center;
  text-transform: uppercase;
}
/* Research: centre the privacy note under the paper request form. */
.page-research .research-section-6 .research-form-privacy-note { text-align: center; }


/* Case-study hero video: subtle buffered-progress overlay over poster image. */
.hero-video-loader {
  position: absolute;
  z-index: 3;
  right: clamp(18px, 3vw, 44px);
  bottom: clamp(16px, 2.4vw, 30px);
  width: 126px;
  pointer-events: none;
  opacity: .82;
  transition: opacity .35s ease, visibility .35s ease;
}
.hero-video-loader.is-hidden { opacity: 0; visibility: hidden; }
.hero-video-loader__label {
  display: block;
  margin-bottom: 7px;
  color: rgba(255,255,255,.82);
  font: 500 9px/1.2 var(--font-body);
  letter-spacing: .13em;
  text-transform: uppercase;
  text-align: right;
}
.hero-video-loader__track {
  display: block;
  height: 2px;
  overflow: hidden;
  background: rgba(255,255,255,.28);
}
.hero-video-loader__fill {
  display: block;
  height: 100%;
  width: 35%;
  background: var(--cyan-bright);
  animation: hero-video-loading 1.7s ease-in-out infinite;
}
.hero-video-loader.has-progress .hero-video-loader__fill { animation: none; transition: width .3s ease; }
@keyframes hero-video-loading {
  0% { transform: translateX(-110%); }
  100% { transform: translateX(400%); }
}
/* Mobile case-study heroes place their video above the text: keep loader on the media. */
@media (max-width: 767px) {
  .hero-video-loader { top: 16px; right: 16px; bottom: auto; width: 100px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-video-loader { display: none; }
}
/* Use the same thin arrow glyph across all cards */
.home-audience-arrow,
.work-card__arrow,
.research-team-arrow {
    font-family: var(--font-body);
    font-weight: 400 !important;
    /*font-style: normal !important;*/
}
/* Research form success message */
#research-form-status {
    text-align: center;
    color: #31B6CB;
    font-size: 16px;
    line-height: 1.5;
}
/* 2026-10-26: Video loader visible on mobile case studies and both homepage formats. */
.hero-media { isolation: isolate; }
.hero-media .hero-video-loader { z-index: 8; }
@media (max-width: 767px) {
  .hero-media .hero-video-loader { top: clamp(16px, 4vw, 24px); right: 16px; bottom: auto; width: 116px; }
}
.home-video-band { position: relative; isolation: isolate; background: #090b0c url('../img/home-video-poster.jpg') center / cover no-repeat; }
.home-video-band .home-main-video { position: relative; z-index: 1; }
.home-video-band .home-video-loader-layer { position: absolute; z-index: 5; inset: 0; pointer-events: none; }
.home-video-band .home-video-loader-layer .hero-video-loader { right: clamp(18px, 3vw, 44px); bottom: clamp(16px, 2.4vw, 30px); top: auto; }
.home-video-band .home-main-video--desktop + .home-video-loader-layer { display: block; }
.home-video-band .home-main-video--mobile + .home-video-loader-layer { display: none; }
@media (max-width: 760px) {
  .home-video-band .home-main-video--desktop + .home-video-loader-layer { display: none; }
  .home-video-band .home-main-video--mobile + .home-video-loader-layer { display: block; }
  .home-video-band .home-video-loader-layer .hero-video-loader { top: 16px; right: 16px; bottom: auto; width: 116px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-video-loader { display: block; }
  .hero-video-loader__fill { animation: none; width: 35%; }
}
