/* revamp6 — "Institutional Monochrome" · layout only. Colour lives in the theme. */
*,*::before,*::after { box-sizing: border-box; }
body { margin:0; background: var(--ds-bg); color: var(--ds-ink);
  font-family: Manrope, ui-sans-serif, system-ui, sans-serif; font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; }
.wrap { max-width:1180px; margin:0 auto; padding:0 clamp(1.25rem,4vw,2.5rem); }

/* --- chrome --- */
.mq-head { display:flex; align-items:center; justify-content:space-between; gap:2rem;
  padding:1.15rem 0; border-bottom:1px solid var(--ds-rule); }
.mq-head img { height:26px; width:auto; filter: var(--ds-logo-filter); }
.mq-nav { display:flex; gap:1.6rem; flex-wrap:wrap; }
.mq-nav a { color:var(--ds-ink-muted); text-decoration:none; font-size:.92rem; font-weight:500; }
.mq-nav a:hover { color:var(--ds-accent); }
.mq-cta { display:inline-block; background:var(--ds-accent); color:var(--ds-ink-inverse);
  padding:.6rem 1.1rem; border-radius:var(--ds-radius-role); font-size:.86rem; font-weight:600;
  text-decoration:none; border:1px solid var(--ds-accent); }
.mq-cta:hover { background:var(--ds-accent-hover); border-color:var(--ds-accent-hover); }
a:focus-visible, .mq-cta:focus-visible { outline:2px solid var(--ds-focus); outline-offset:3px; }

/* --- section machinery: a band is a full-bleed purple surface --- */
.sec { padding: clamp(3.5rem,7vw,6rem) 0; }
.sec--band { background:var(--ds-surface-deep); color:var(--ds-ink-on-deep); }
.sec--band .eyebrow, .sec--band .sub, .sec--band .blurb { color:#C5B3EA; }
.sec--band a { color:#D6C7FF; }
.sec--band .mq-cta { background:#D6C7FF; color:#2A0850; border-color:#D6C7FF; }
.sec--band .rule { background:rgba(214,199,255,.28); }

.eyebrow { font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ds-ink-faint); font-weight:600; margin:0 0 1rem; }
h1 { font-size:clamp(2.3rem,5.2vw,3.9rem); line-height:1.04; letter-spacing:-.03em;
  font-weight:800; margin:0 0 1.4rem; text-wrap:balance; max-width:19ch; }
h2 { font-size:clamp(1.5rem,3.2vw,2.15rem); line-height:1.14; letter-spacing:-.022em;
  font-weight:700; margin:0 0 1rem; text-wrap:balance; max-width:24ch; }
h3 { font-size:1.06rem; font-weight:700; letter-spacing:-.008em; margin:0 0 .45rem; }
.sub { font-size:clamp(1.02rem,1.9vw,1.16rem); color:var(--ds-ink-muted); max-width:56ch; margin:0; }
.blurb { color:var(--ds-ink-muted); font-size:.95rem; margin:0; max-width:42ch; }
.actions { display:flex; gap:1rem; flex-wrap:wrap; align-items:center; margin-top:2rem; }
.link { color:var(--ds-accent); font-weight:600; font-size:.92rem; text-decoration:none;
  border-bottom:1px solid currentColor; padding-bottom:1px; }
.rule { height:1px; background:var(--ds-rule); border:0; margin:0; }

/* --- capability tiles, three treatments --- */
.tiles { display:grid; gap:1px; background:var(--ds-rule); margin-top:2.5rem; }
@media (min-width:760px) { .tiles { grid-template-columns:repeat(3,1fr); } }
.tile { background:var(--ds-bg); padding:1.75rem 1.5rem; }
.sec--band .tile { background:var(--ds-surface-deep); }

.tiles--card { background:none; gap:1.25rem; }
.tiles--card .tile { background:var(--ds-surface); color:var(--ds-ink-inverse);
  border-radius:var(--ds-radius-role); padding:1.9rem 1.6rem; }
.tiles--card .tile h3 { color:#14141C; }
.tiles--card .tile .blurb { color:#4E4E5E; }

.tiles--index { background:none; gap:0; display:block; }
.tiles--index .tile { background:none; display:grid; grid-template-columns:3.5rem 1fr;
  gap:1.5rem; padding:1.6rem 0; border-top:1px solid var(--ds-rule); align-items:start; }
.tiles--index .num { font-size:.78rem; font-weight:600; letter-spacing:.1em;
  color:var(--ds-ink-faint); padding-top:.28rem; }

/* --- hero media, three treatments -----------------------------------------
   The image never carries meaning and never carries copy: every headline is
   real text in the DOM over reserved dead space that was specified at
   generation time. Each image is captioned on the page as generated, and says
   what it is not. */
.sec--bleed { position:relative; isolation:isolate; overflow:hidden;
  padding-top:clamp(5rem,11vw,9rem); padding-bottom:clamp(5rem,11vw,9rem); }
.sec--bleed .bleed-img { position:absolute; inset:0; z-index:-2;
  width:100%; height:100%; object-fit:cover; }
.sec--bleed::before { content:""; position:absolute; inset:0; z-index:-1; }
.sec--bleed--dark-ink::before {
  background:linear-gradient(90deg, rgba(255,255,255,.92) 0%,
    rgba(255,255,255,.86) 42%, rgba(255,255,255,0) 72%); }
.sec--bleed--light-ink { color:#FFFFFF; }
.sec--bleed--light-ink::before {
  background:linear-gradient(90deg, rgba(20,8,40,.86) 0%,
    rgba(20,8,40,.66) 46%, rgba(20,8,40,.18) 100%); }
.sec--bleed--light-ink .eyebrow, .sec--bleed--light-ink .sub { color:#D8CCEF; }
.sec--bleed--light-ink .mq-cta { background:#D6C7FF; color:#2A0850; border-color:#D6C7FF; }
.sec--bleed--light-ink .link { color:#D6C7FF; }

.sec--texture { position:relative; isolation:isolate; overflow:hidden; }
.sec--texture .bleed-img { position:absolute; inset:0; z-index:-2;
  width:100%; height:100%; object-fit:cover; opacity:.55; }
.sec--texture::before { content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(42,8,80,.72), rgba(42,8,80,.92)); }

.figure { margin:2.5rem 0 0; }
.figure img { width:100%; height:auto; display:block;
  border-radius:var(--ds-radius-role); }
.credit { font-size:.76rem; line-height:1.5; color:var(--ds-ink-faint);
  margin:.7rem 0 0; max-width:64ch; }
.sec--bleed--light-ink .credit, .sec--texture .credit { color:#BBA9DC; }
.credit--float { margin-top:1.75rem; }

/* --- credibility row --- */
.partners { display:flex; flex-wrap:wrap; gap:.65rem 2rem; margin:2rem 0 0; padding:0; list-style:none; }
.partners li { font-size:.92rem; font-weight:600; color:var(--ds-ink-muted); }

/* --- statement --- */
.statement { font-size:clamp(1.35rem,3vw,2rem); line-height:1.28; letter-spacing:-.02em;
  font-weight:700; max-width:26ch; margin:0; text-wrap:balance; }

/* --- footer --- */
.mq-foot { border-top:1px solid var(--ds-rule); padding:2.5rem 0 3.5rem;
  color:var(--ds-ink-faint); font-size:.86rem; display:flex; justify-content:space-between;
  gap:1.5rem; flex-wrap:wrap; }
.badge { display:inline-block; border:1px solid var(--ds-rule); padding:.3rem .6rem;
  font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ds-ink-faint); }
