/*
 * DPE Public v2032 Digital
 * A contemporary, image-led system for the association website and program dossiers.
 * Checkout, legal, admin and payment surfaces do not load this file.
 */

@font-face {
  font-display: swap;
  font-family: "Bricolage DPE";
  font-style: normal;
  font-weight: 200 800;
  src: url("fonts/bricolage-grotesque-var.woff2") format("woff2");
}

html {
  background: #f6f9fe;
  color-scheme: light;
  scroll-behavior: smooth;
}

body.dpe-public {
  --page-bg: #f3f7fc;
  --paper: #ffffff;
  --paper-blue: #e9f1fb;
  --ink: #07142b;
  --ink-soft: #2d4260;
  --night: #010714;
  --navy: #061b3d;
  --navy-raised: #0b2b59;
  --blue: #145df5;
  --blue-hover: #0b4ccf;
  --cyan: #3fd5ed;
  --line: #cbd8e8;
  --line-dark: rgba(255, 255, 255, 0.16);
  --muted: #50657f;
  --shell: 1360px;
  --gutter: 40px;
  --radius: 8px;
  --shadow: 0 24px 72px rgba(7, 20, 43, 0.14);
  background: var(--page-bg);
  color: var(--ink);
  font-family: var(--dpe-font-body, "Inter DPE", Arial, sans-serif);
  font-size: 16px;
  font-synthesis: none;
  font-weight: 400;
  line-height: 1.56;
  margin: 0;
  overflow-x: clip;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.dpe-public *,
.dpe-public *::before,
.dpe-public *::after {
  box-sizing: border-box;
  letter-spacing: 0;
}

.dpe-public :where(h1, h2, h3, p, figure, figcaption, ul, ol, dl, dd) { margin: 0; }
.dpe-public :where(ul, ol) { padding: 0; }
.dpe-public img { display: block; height: auto; max-width: 100%; }
.dpe-public a { color: inherit; text-decoration: none; }
.dpe-public button,
.dpe-public input,
.dpe-public select,
.dpe-public textarea { font: inherit; }
.dpe-public [hidden] { display: none !important; }

.dpe-public :where(h1, h2, h3) {
  font-family: "Bricolage DPE", "Manrope DPE", Arial, sans-serif;
  font-style: normal;
  font-weight: 620;
  line-height: 1.01;
  overflow-wrap: normal;
  text-wrap: balance;
  word-break: normal;
}

.dpe-public h3 {
  font-size: 24px;
  line-height: 1.12;
}

.dpe-public h1 { font-size: 78px; }
.dpe-public h2 { font-size: 52px; }

.dpe-public :focus-visible {
  outline: 3px solid rgba(34, 196, 221, 0.66);
  outline-offset: 4px;
}

.skip-link {
  background: var(--paper);
  color: var(--ink);
  left: 18px;
  padding: 12px 16px;
  position: fixed;
  top: -80px;
  z-index: 1000;
}

.skip-link:focus { top: 16px; }

.dpe-shell {
  margin-inline: auto;
  max-width: var(--shell);
  padding-inline: var(--gutter);
  width: 100%;
}

.dpe-section { padding-block: 96px; }
.dpe-lead { color: var(--ink-soft); font-size: 19px; line-height: 1.56; }

.dpe-kicker,
.site-eyebrow {
  color: var(--blue);
  font-size: 11px;
  font-weight: 760;
  line-height: 1.3;
  text-transform: uppercase;
}

.dpe-actions,
.dpe-program-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.dpe-button,
.site-header__action,
.site-footer__cta {
  align-items: center;
  border: 1px solid transparent;
  border-radius: var(--radius);
  display: inline-flex;
  font-family: "Bricolage DPE", "Manrope DPE", Arial, sans-serif;
  font-size: 14px;
  font-weight: 680;
  gap: 10px;
  justify-content: center;
  min-height: 50px;
  padding: 0 22px;
  text-align: center;
  width: fit-content;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.dpe-button svg,
.dpe-text-link svg {
  fill: none;
  height: 17px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 17px;
}

.dpe-button:hover,
.site-header__action:hover,
.site-footer__cta:hover { transform: translateY(-2px); }

.dpe-public .dpe-button--primary,
.dpe-public .site-header__action {
  background: var(--blue);
  color: #fff;
}

.dpe-public .dpe-button--primary:hover,
.dpe-public .site-header__action:hover { background: var(--blue-hover); }

.dpe-public .dpe-button--quiet,
.dpe-public .dpe-button--light {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.34);
  color: #fff;
}

.dpe-public .dpe-button--quiet:hover,
.dpe-public .dpe-button--light:hover { background: rgba(255, 255, 255, 0.16); }

.dpe-public .dpe-button--dark { background: var(--ink); color: #fff; }
.dpe-public .dpe-button--dark:hover { background: var(--navy-raised); color: #fff; }

.dpe-text-link {
  align-items: center;
  color: var(--blue);
  display: inline-flex;
  font-size: 14px;
  font-weight: 700;
  gap: 9px;
  padding-block: 4px;
}

.dpe-text-link--light { color: #fff; }

.review-bar {
  align-items: center;
  background: var(--night);
  color: #b8c8dd;
  display: flex;
  font-size: 11px;
  justify-content: center;
  min-height: 30px;
  padding: 5px var(--gutter);
}

.review-bar > div { align-items: center; display: flex; gap: 12px; }
.review-bar strong { color: var(--cyan); font-size: 10px; }
.review-count { margin-left: auto; }

.site-header {
  background: rgba(1, 7, 20, 0.94);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  color: #fff;
  position: sticky;
  top: 0;
  transition: box-shadow 180ms ease;
  z-index: 100;
}

.site-header.is-compact { box-shadow: 0 18px 54px rgba(1, 7, 20, 0.28); }

.site-header__inner {
  align-items: center;
  display: grid;
  gap: 34px;
  grid-template-columns: auto 1fr auto;
  margin-inline: auto;
  max-width: var(--shell);
  min-height: 76px;
  padding-inline: var(--gutter);
  transition: min-height 180ms ease;
}

.site-header.is-compact .site-header__inner { min-height: 66px; }

.site-brand { display: inline-flex; width: 102px; }
.site-brand img { filter: brightness(0) invert(1); height: auto; width: 102px; }

.site-nav {
  align-items: stretch;
  display: flex;
  gap: 30px;
  height: 100%;
  justify-content: center;
}

.site-nav a {
  align-items: center;
  color: #c8d6e9;
  display: flex;
  font-family: "Bricolage DPE", "Manrope DPE", Arial, sans-serif;
  font-size: 13px;
  font-weight: 610;
  position: relative;
}

.site-nav a::after {
  background: var(--blue);
  bottom: 0;
  content: "";
  height: 2px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 160ms ease;
  width: 100%;
}

.site-nav a:hover,
.site-nav a[aria-current="page"] { color: #fff; }
.site-nav a:hover::after,
.site-nav a[aria-current="page"]::after { transform: scaleX(1); }

.dpe-public .site-header__action { background: var(--cyan); color: var(--night); min-height: 44px; padding-inline: 18px; }
.dpe-public .site-header__action:hover { background: #fff; color: var(--night); }
.site-header__action b { font-size: 16px; }

.site-menu { display: none; }
.site-scroll-progress {
  background: var(--cyan);
  bottom: -1px;
  height: 2px;
  left: 0;
  pointer-events: none;
  position: absolute;
  width: var(--scroll-progress, 0%);
}

/* Home hero */
.dpe-hero {
  background: var(--night);
  color: #fff;
  min-height: min(880px, calc(100svh - 76px));
  overflow: hidden;
  position: relative;
}

.dpe-hero__media,
.dpe-hero__media img,
.dpe-hero__shade { inset: 0; position: absolute; }

.dpe-hero__media img {
  height: 100%;
  object-fit: cover;
  object-position: 62% center;
  transform: translate3d(var(--hero-shift-x, 0), var(--hero-shift-y, 0), 0) scale(1.015);
  transition: transform 300ms ease-out;
  width: 100%;
}

.dpe-hero__shade {
  background: rgba(1, 7, 20, 0.38);
}

.dpe-hero::after {
  background: rgba(1, 7, 20, 0.82);
  content: "";
  inset: 0 52% 0 0;
  position: absolute;
}

.dpe-hero__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: min(760px, calc(100svh - 148px));
  padding-bottom: 112px;
  padding-top: 96px;
  position: relative;
  z-index: 2;
}

.dpe-hero .dpe-kicker { color: var(--cyan); margin-bottom: 22px; }
.dpe-hero h1 { font-size: 88px; max-width: 760px; }
.dpe-hero__thesis { color: #fff; font-family: "Bricolage DPE", "Manrope DPE", Arial, sans-serif; font-size: 29px; font-weight: 560; line-height: 1.18; margin-top: 22px; max-width: 720px; text-wrap: balance; }
.dpe-hero__lead { color: #cbd9e9; font-size: 18px; line-height: 1.65; margin-top: 20px; max-width: 650px; }
.dpe-hero .dpe-actions { margin-top: 30px; }

.dpe-hero__meta {
  bottom: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  z-index: 3;
}

.dpe-hero__meta span {
  border-left: 1px solid rgba(255, 255, 255, 0.22);
  color: #dbe7f4;
  font-size: 11px;
  font-weight: 600;
  min-height: 72px;
  padding: 28px 20px 18px;
  text-transform: uppercase;
}
.dpe-hero__meta span:last-child { border-right: 1px solid rgba(255, 255, 255, 0.22); }

.dpe-signal { background: var(--night); border-bottom: 1px solid rgba(255, 255, 255, 0.12); color: #fff; }
.dpe-signal .dpe-shell {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding-block: 18px;
}

.dpe-signal p {
  align-items: center;
  border-right: 1px solid var(--line);
  color: #cbd9e9;
  display: flex;
  font-size: 13px;
  font-weight: 600;
  gap: 10px;
  justify-content: center;
}
.dpe-signal p:last-child { border-right: 0; }
.dpe-signal svg { fill: none; height: 17px; stroke: var(--blue); stroke-width: 1.8; width: 17px; }

/* Shared editorial compositions */
.dpe-purpose { background: var(--page-bg); }
.dpe-purpose__grid,
.dpe-about-story__grid,
.dpe-programs-intro__grid,
.dpe-ideas-intro__grid,
.dpe-program-brief__grid {
  align-items: start;
  display: grid;
  gap: 64px;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.72fr);
}

.dpe-section-title h2,
.dpe-programs-intro h2,
.dpe-ideas-intro h2 { margin-top: 14px; max-width: 850px; }
.dpe-purpose__copy,
.dpe-about-story__copy { border-top: 1px solid var(--line); display: grid; gap: 19px; padding-top: 24px; }

.dpe-atlas,
.dpe-program-atlas,
.dpe-ideas-visual,
.dpe-method__visual,
.dpe-contact-visual,
.dpe-principles__visual {
  border-radius: var(--radius);
  margin-top: 48px;
  overflow: hidden;
  position: relative;
}

.dpe-atlas img,
.dpe-program-atlas img,
.dpe-ideas-visual img,
.dpe-method__visual img,
.dpe-contact-visual img,
.dpe-principles__visual img,
[data-art-layer] {
  transform: translate3d(0, var(--art-shift-y, 0), 0) scale(1.025);
  transition: transform 260ms ease-out;
}

.dpe-atlas img,
.dpe-program-atlas img,
.dpe-ideas-visual img,
.dpe-method__visual img,
.dpe-contact-visual img,
.dpe-principles__visual img {
  aspect-ratio: 16 / 6.6;
  object-fit: cover;
  width: 100%;
}

.dpe-atlas figcaption,
.dpe-program-atlas figcaption,
.dpe-method__visual figcaption,
.dpe-ideas-visual figcaption,
.dpe-contact-visual figcaption {
  align-items: center;
  background: rgba(1, 7, 20, 0.9);
  bottom: 0;
  color: #fff;
  display: flex;
  font-size: 11px;
  font-weight: 600;
  justify-content: space-between;
  left: 0;
  min-height: 48px;
  padding: 0 22px;
  position: absolute;
  right: 0;
  text-transform: uppercase;
}

.dpe-world {
  display: grid;
  gap: 12px;
  grid-template-columns: 1.45fr 1fr;
  margin-top: 12px;
}

.dpe-world__item {
  background: var(--navy);
  color: #fff;
  border-radius: var(--radius);
  min-height: 300px;
  overflow: hidden;
  position: relative;
}

.dpe-world__item--wide { grid-row: span 2; min-height: 612px; }
.dpe-world__item img { height: 100%; object-fit: cover; width: 100%; }
.dpe-world__item::after { background: rgba(1, 7, 20, 0.76); content: ""; inset: 50% 0 0; position: absolute; }
.dpe-world__item > div { bottom: 0; left: 0; padding: 30px; position: absolute; right: 0; z-index: 1; }
.dpe-world__item svg { fill: none; height: 22px; margin-bottom: 16px; stroke: var(--cyan); stroke-width: 1.7; width: 22px; }
.dpe-world__item .dpe-kicker { color: var(--cyan); margin-bottom: 10px; }
.dpe-world__item h3 { font-size: 30px; font-weight: 630; line-height: 1.05; max-width: 560px; }
.dpe-world__item p:last-child { color: #c8d6e8; margin-top: 12px; }

/* Program ecosystem */
.dpe-programs { background: var(--night); color: #fff; padding-bottom: 96px; }
.dpe-programs__canvas { min-height: 560px; overflow: hidden; position: relative; }
.dpe-programs__canvas > img { height: 560px; object-fit: cover; width: 100%; }
.dpe-programs__shade { background: rgba(1, 7, 20, 0.5); inset: 0; position: absolute; }
.dpe-programs__intro { bottom: 72px; left: 50%; position: absolute; transform: translateX(-50%); z-index: 2; }
.dpe-motion-ready .dpe-public .dpe-programs__intro[data-reveal] { transform: translate(-50%, 22px); }
.dpe-motion-ready .dpe-public .dpe-programs__intro[data-reveal].is-visible { transform: translate(-50%, 0); }
.dpe-programs__intro .dpe-kicker { color: var(--cyan); margin-bottom: 16px; }
.dpe-programs__intro h2 { font-size: 62px; max-width: 930px; }

.dpe-programs__index {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  margin-top: -34px;
  position: relative;
  z-index: 3;
}
.dpe-programs__index > a {
  align-items: end;
  background: var(--navy);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--radius);
  display: grid;
  grid-column: span 3;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto 1fr auto;
  min-height: 500px;
  overflow: hidden;
  padding: 0;
  position: relative;
  transition: border-color 180ms ease, transform 180ms ease;
}
.dpe-programs__index > a:first-child { grid-column: span 6; }
.dpe-programs__index > a::after { background: rgba(1, 7, 20, 0.84); content: ""; inset: 42% 0 0; position: absolute; z-index: 1; }
.dpe-programs__index > a:hover { border-color: rgba(63, 213, 237, 0.72); transform: translateY(-4px); }
.dpe-program-card__media { height: 100%; inset: 0; object-fit: cover; position: absolute; transition: transform 420ms ease; width: 100%; }
.dpe-programs__index > a:hover .dpe-program-card__media { transform: scale(1.025); }
.dpe-programs__index > a > span { align-self: start; color: var(--cyan); font-family: "Bricolage DPE", Arial, sans-serif; font-size: 12px; font-weight: 760; grid-column: 1; grid-row: 1; margin: 22px; position: relative; z-index: 2; }
.dpe-programs__index svg { align-self: start; fill: none; grid-column: 2; grid-row: 1; height: 25px; justify-self: end; margin: 22px; position: relative; stroke: var(--cyan); stroke-width: 1.6; width: 25px; z-index: 2; }
.dpe-programs__index div { align-self: end; grid-column: 1 / -1; grid-row: 3; min-width: 0; padding: 30px 64px 30px 30px; position: relative; z-index: 2; }
.dpe-programs__index small { color: var(--cyan); display: block; font-size: 10px; font-weight: 760; margin-bottom: 9px; text-transform: uppercase; }
.dpe-programs__index strong { display: block; font-family: "Bricolage DPE", "Manrope DPE", Arial, sans-serif; font-size: 31px; font-weight: 650; line-height: 1.02; overflow-wrap: normal; }
.dpe-programs__index > a:first-child strong { font-size: 42px; }
.dpe-programs__index p { color: #d0dceb; font-size: 14px; line-height: 1.5; margin-top: 12px; }
.dpe-programs__index b { bottom: 26px; color: var(--cyan); font-family: "Bricolage DPE", Arial, sans-serif; font-size: 25px; font-weight: 450; position: absolute; right: 26px; z-index: 3; }
.dpe-programs__index div + b { display: block; }
.dpe-programs__all { margin-top: 30px; }

/* Active course */
.dpe-course { background: var(--navy); color: #fff; }
.dpe-course__grid { align-items: stretch; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr); }
.dpe-course__media { min-height: 680px; overflow: hidden; position: relative; }
.dpe-course__media img { height: 100%; object-fit: cover; width: 100%; }
.dpe-course__media span { background: var(--cyan); color: var(--night); font-size: 10px; font-weight: 700; left: 28px; padding: 10px 13px; position: absolute; text-transform: uppercase; top: 28px; }
.dpe-course__content { align-content: center; background: var(--navy); border-left: 1px solid rgba(255,255,255,.14); display: grid; padding: 64px; }
.dpe-course__content .dpe-kicker { margin-bottom: 15px; }
.dpe-course__content h2 { margin-bottom: 20px; }
.dpe-course__content .dpe-kicker { color: var(--cyan); }
.dpe-course__content .dpe-lead { color: #c7d5e7; max-width: 580px; }
.dpe-facts { border-block: 1px solid rgba(255,255,255,.16); display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 38px 0; }
.dpe-facts li { border-right: 1px solid rgba(255,255,255,.16); min-width: 0; padding: 22px 12px 22px 0; }
.dpe-facts li + li { padding-left: 16px; }
.dpe-facts li:last-child { border-right: 0; }
.dpe-facts span { color: #91a7c2; display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.dpe-facts strong { display: block; font-size: 15px; margin-top: 6px; max-width: 100%; overflow-wrap: anywhere; }
.dpe-course__content small { color: #9db0c8; display: block; margin-top: 18px; }
.dpe-course__content .dpe-button--dark { background: #fff; color: var(--ink); justify-self: start; }
.dpe-course__content .dpe-button--dark:hover { background: var(--cyan); color: var(--night); }

/* Method and perspectives */
.dpe-method { background: #fff; }
.dpe-method > .dpe-shell { display: grid; gap: 0 64px; grid-template-columns: minmax(0, .88fr) minmax(420px, 1.12fr); }
.dpe-method__head { align-content: start; display: grid; gap: 18px; }
.dpe-method__head .dpe-kicker { grid-column: auto; }
.dpe-method__head p:last-child { color: var(--ink-soft); font-size: 18px; }
.dpe-method__visual { grid-column: 1; margin-top: 42px; }
.dpe-method__visual img { aspect-ratio: 4 / 3; }
.dpe-method__steps { border-top: 1px solid var(--line); display: grid; grid-column: 2; grid-row: 1 / span 2; list-style: none; margin-top: 0; position: relative; }
.dpe-method__steps::before,
.dpe-method__steps::after { display: none; }
.dpe-method__steps li { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 24px; grid-template-columns: 50px minmax(0, 1fr); min-width: 0; padding: 26px 0; position: relative; }
.dpe-method__steps li > span { color: var(--blue); display: block; font-family: "Bricolage DPE", Arial, sans-serif; font-size: 30px; font-weight: 640; line-height: 1; transition: color 180ms ease; }
.dpe-method__steps li.is-active > span { color: var(--blue); }
.dpe-method__steps svg { display: none; }
.dpe-method__steps h3 { font-size: 21px; margin-top: 0; }
.dpe-method__steps p { color: var(--muted); font-size: 15px; margin-top: 9px; }

.dpe-perspectives { background: var(--paper-blue); }
.dpe-perspectives__grid,
.dpe-team__grid { align-items: stretch; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
.dpe-perspectives__visual,
.dpe-team__visual { background: var(--navy); min-height: 640px; overflow: hidden; position: relative; }
.dpe-perspectives__visual img,
.dpe-team__visual img { height: 100%; object-fit: cover; width: 100%; }
.dpe-perspectives__visual::after,
.dpe-team__visual::after { background: rgba(2, 8, 23, 0.46); content: ""; inset: 0; position: absolute; }
.dpe-perspectives__visual > p,
.dpe-team__visual > p { bottom: 38px; color: #fff; font-family: "Bricolage DPE", "Manrope DPE", Arial, sans-serif; font-size: 34px; font-weight: 620; left: 38px; line-height: 1.04; max-width: 470px; position: absolute; z-index: 1; }
.dpe-perspectives__content,
.dpe-team__content { background: transparent; padding: 60px 0 60px 60px; }
.dpe-perspectives__content h2,
.dpe-team__content h2 { margin: 15px 0 36px; }
.dpe-perspective-list { border-top: 1px solid var(--line); }
.dpe-perspective-list article { border-bottom: 1px solid var(--line); display: grid; gap: 10px; grid-template-columns: 150px 1fr; padding-block: 24px; }
.dpe-perspective-list span { color: var(--blue); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.dpe-perspective-list h3 { font-size: 18px; }
.dpe-perspective-list p { color: var(--muted); font-size: 14px; grid-column: 2; }

.dpe-next { background: var(--navy); color: #fff; min-height: 460px; overflow: hidden; position: relative; }
.dpe-next > img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.dpe-next__shade { background: rgba(1, 7, 20, 0.72); inset: 0; position: absolute; }
.dpe-next__content { align-items: end; display: grid; gap: 50px; grid-template-columns: minmax(0, 1fr) auto; min-height: 460px; padding-block: 78px; position: relative; z-index: 1; }
.dpe-next .dpe-kicker { color: var(--cyan); margin-bottom: 15px; }
.dpe-next h2 { max-width: 980px; }
.dpe-next--compact,
.dpe-next--compact .dpe-next__content { min-height: 360px; }

/* Shared inner heroes */
.dpe-inner-hero,
.dpe-program-hero {
  background: var(--night);
  color: #fff;
  min-height: 640px;
  overflow: hidden;
  position: relative;
}

.dpe-inner-hero > img,
.dpe-program-hero > img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.dpe-inner-hero__shade,
.dpe-program-hero__shade { background: rgba(1, 7, 20, 0.58); inset: 0; position: absolute; }
.dpe-inner-hero::after,
.dpe-program-hero::after { background: rgba(1, 7, 20, 0.62); content: ""; inset: 0 48% 0 0; position: absolute; }
.dpe-inner-hero__content { display: flex; flex-direction: column; justify-content: end; min-height: 640px; padding-bottom: 76px; padding-top: 92px; position: relative; z-index: 1; }
.dpe-inner-hero .dpe-kicker { color: var(--cyan); margin-bottom: 18px; }
.dpe-inner-hero h1 { max-width: 880px; }
.dpe-inner-hero__content > p:last-child { color: #d3dfed; font-size: 18px; margin-top: 18px; max-width: 680px; }

/* About */
.dpe-about-story { background: #fff; }
.dpe-about-proof {
  background: var(--night);
  border-radius: var(--radius);
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  margin-top: 84px;
  overflow: hidden;
}
.dpe-about-proof figure { min-height: 560px; overflow: hidden; position: relative; }
.dpe-about-proof figure img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.dpe-about-proof figcaption {
  background: rgba(2, 8, 23, 0.84);
  bottom: 0;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  left: 0;
  line-height: 1.45;
  padding: 22px 26px;
  position: absolute;
  right: 0;
}
.dpe-about-proof ul { align-content: center; color: #fff; display: grid; list-style: none; padding: 54px; }
.dpe-about-proof li {
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.16);
  display: grid;
  gap: 18px;
  grid-template-columns: 34px minmax(0, 1fr);
  min-width: 0;
  padding-block: 24px;
}
.dpe-about-proof li:first-child { border-top: 1px solid rgba(255,255,255,.16); }
.dpe-about-proof li svg { fill: none; height: 25px; stroke: var(--blue); stroke-width: 1.7; width: 25px; }
.dpe-about-proof li span { color: #e8f0fa; font-size: 18px; font-weight: 600; line-height: 1.5; }

.dpe-principles { background: var(--night); color: #fff; }
.dpe-principles .dpe-kicker { color: var(--cyan); }
.dpe-principles__head { max-width: 760px; }
.dpe-principles__head h2 { margin-top: 15px; }
.dpe-principles__stage { margin-top: 48px; }
.dpe-principles__visual { margin-top: 0; }
.dpe-principles__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.dpe-principles__grid article { background: transparent; border-right: 1px solid rgba(255,255,255,.16); min-height: 310px; padding: 38px 32px; }
.dpe-principles__grid article:last-child { border-right: 0; }
.dpe-principles__grid span { color: var(--cyan); font-size: 11px; font-weight: 700; }
.dpe-principles__grid svg { fill: none; height: 28px; margin: 46px 0 22px; stroke: var(--cyan); stroke-width: 1.7; width: 28px; }
.dpe-principles__grid p { color: #aebfd3; margin-top: 14px; }
.dpe-team { background: var(--night); color: #fff; }
.dpe-team .dpe-kicker,
.dpe-team .dpe-perspective-list span { color: var(--cyan); }
.dpe-team .dpe-perspective-list { border-color: rgba(255,255,255,.16); }
.dpe-team .dpe-perspective-list article { border-color: rgba(255,255,255,.16); }
.dpe-team .dpe-perspective-list p { color: #aebfd3; }

/* Programs index */
.dpe-programs-intro { background: #fff; }
.dpe-programs-intro__grid > p,
.dpe-ideas-intro__grid > p { color: var(--ink-soft); font-size: 18px; padding-top: 28px; }
.dpe-program-atlas { margin-top: 56px; }
.dpe-program-index { background: #fff; padding-block: 92px; }
.dpe-program-profile {
  align-items: stretch;
  display: grid;
  gap: 52px;
  grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
  margin-inline: auto;
  max-width: var(--shell);
  min-width: 0;
  padding-inline: var(--gutter);
}
.dpe-program-profile + .dpe-program-profile { border-top: 1px solid var(--line); margin-top: 76px; padding-top: 76px; }
.dpe-program-profile--reverse .dpe-program-profile__media { order: 2; }
.dpe-program-profile__media { border-radius: var(--radius); min-height: 560px; overflow: hidden; position: relative; }
.dpe-program-profile__media img { height: 100%; object-fit: cover; width: 100%; }
.dpe-program-profile__media > span { align-items: center; background: var(--cyan); border-radius: 50%; color: var(--night); display: flex; font-size: 11px; font-weight: 800; height: 52px; justify-content: center; position: absolute; right: 22px; top: 22px; width: 52px; }
.dpe-program-profile__content { align-content: center; background: transparent; display: grid; min-width: 0; padding: 32px 0; }
.dpe-program-profile__content h2 { font-size: 52px; margin: 14px 0 18px; max-width: 100%; }
.dpe-program-profile__content > p:not(.dpe-kicker) { color: var(--muted); margin-top: 14px; }
.dpe-program-profile__facts { border-top: 1px solid var(--line); list-style: none; margin: 34px 0; }
.dpe-program-profile__facts li { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 12px; grid-template-columns: 22px 1fr; padding-block: 13px; }
.dpe-program-profile__facts svg { fill: none; height: 18px; stroke: var(--blue); stroke-width: 1.8; width: 18px; }
.dpe-program-profile__facts span { color: var(--ink-soft); font-size: 14px; }

/* Ideas */
.dpe-ideas-intro { background: #fff; }
.dpe-ideas-grid { background: var(--night); color: #fff; padding-top: 104px; }
.dpe-ideas-grid > .dpe-shell { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dpe-ideas-grid .dpe-kicker { color: var(--cyan); }
.dpe-idea { background: var(--navy); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius); min-height: 380px; padding: 48px; }
.dpe-idea:nth-child(odd) { border-right: 1px solid var(--line); }
.dpe-idea > span { color: var(--cyan); font-size: 11px; font-weight: 700; }
.dpe-idea > svg { fill: none; height: 30px; margin: 70px 0 22px; stroke: var(--cyan); stroke-width: 1.7; width: 30px; }
.dpe-idea h2 { font-size: 31px; margin-top: 10px; }
.dpe-idea p:last-child { color: #adbed3; margin-top: 16px; }
.dpe-idea--feature {
  background: var(--night);
  color: #fff;
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.82fr);
  min-height: 540px;
  padding: 0;
}
.dpe-idea__media { min-height: 540px; overflow: hidden; position: relative; }
.dpe-idea__media img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.dpe-idea--feature .dpe-idea__copy { align-content: center; display: grid; min-width: 0; padding: 56px; }
.dpe-idea__copy > span { color: var(--cyan); font-size: 11px; font-weight: 700; }
.dpe-idea__copy > svg { fill: none; height: 28px; margin: 48px 0 18px; stroke: var(--cyan); stroke-width: 1.7; width: 28px; }
.dpe-idea--feature .dpe-kicker { color: var(--cyan); }
.dpe-idea--feature h2 { color: #fff; font-size: 42px; }
.dpe-idea--feature p:last-child { color: #cbd9e8; }
.dpe-idea--wide { align-items: stretch; display: grid; grid-column: 1 / -1; grid-template-columns: 1fr 1fr; padding: 0; }
.dpe-idea--wide .dpe-idea__copy { align-content: center; display: grid; min-width: 0; padding: 50px; }
.dpe-idea--wide .dpe-idea__copy > span { color: var(--cyan); }
.dpe-idea--wide .dpe-idea__copy > svg { stroke: var(--cyan); }
.dpe-idea--wide figure { min-height: 440px; overflow: hidden; }
.dpe-idea--wide figure img { height: 100%; object-fit: cover; width: 100%; }

/* Contact */
.dpe-contact-start { background: #fff; }
.dpe-contact-start .dpe-section-title { max-width: 850px; }
.dpe-contact-start .dpe-section-title h2 { margin-top: 14px; }
.dpe-contact-start .dpe-section-title .dpe-lead { margin-top: 18px; }
.dpe-contact-stage { display: grid; gap: 72px; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); margin-top: 70px; }
.dpe-contact-paths { border-top: 1px solid var(--line); display: grid; }
.dpe-contact-paths a { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 16px; grid-template-columns: 40px 34px minmax(0, 1fr) 24px; min-height: 144px; padding: 28px 4px; }
.dpe-contact-paths a:hover h3 { color: var(--blue); }
.dpe-contact-paths span { color: var(--blue); font-family: "Bricolage DPE", Arial, sans-serif; font-size: 20px; font-weight: 640; }
.dpe-contact-paths svg { fill: none; height: 22px; stroke: var(--blue); stroke-width: 1.7; width: 22px; }
.dpe-contact-paths h3 { font-size: 22px; transition: color 160ms ease; }
.dpe-contact-paths p { color: var(--muted); font-size: 14px; margin-top: 7px; }
.dpe-contact-paths b { color: var(--blue); font-size: 18px; font-weight: 500; justify-self: end; }
.dpe-contact-visual { border-radius: var(--radius); margin-top: 0; min-height: 560px; }
.dpe-contact-visual img { aspect-ratio: auto; height: 100%; }
.dpe-contact-facts { background: var(--night); color: #fff; }
.dpe-contact-facts .dpe-kicker,
.dpe-contact-facts__list a { color: var(--cyan); }
.dpe-contact-facts__grid { display: grid; gap: 90px; grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr); }
.dpe-contact-facts__intro h2 { margin: 15px 0 18px; }
.dpe-contact-facts__intro p:last-child { color: #aebfd3; }
.dpe-contact-facts__intro .dpe-button { margin-top: 26px; }
.dpe-contact-facts__list { border-top: 1px solid rgba(255,255,255,.16); }
.dpe-contact-facts__list > div { border-bottom: 1px solid rgba(255,255,255,.16); display: grid; gap: 30px; grid-template-columns: 155px minmax(0, 1fr); padding-block: 20px; }
.dpe-contact-facts__list dt { color: #91a7c2; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.dpe-contact-facts__list dd { font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.dpe-contact-facts .dpe-contact-facts__list a { color: var(--cyan); text-decoration: underline; text-underline-offset: 3px; }

/* Program dossier */
.dpe-program-hero { min-height: 740px; }
.dpe-program-hero__inner { display: flex; flex-direction: column; min-height: 740px; padding-bottom: 66px; padding-top: 30px; position: relative; z-index: 1; }
.dpe-program-trail { color: #b9c9dc; font-size: 11px; }
.dpe-program-trail ol { display: flex; flex-wrap: wrap; gap: 9px; list-style: none; }
.dpe-program-trail li + li::before { content: "/"; margin-right: 9px; opacity: 0.55; }
.dpe-program-hero__content { display: flex; flex: 1; flex-direction: column; justify-content: center; max-width: 920px; padding-block: 68px; }
.dpe-program-hero .dpe-kicker { color: var(--cyan); margin-bottom: 12px; }
.dpe-program-state { align-items: center; color: #d5e3f1; display: flex; font-size: 11px; font-weight: 700; gap: 8px; margin-bottom: 19px; text-transform: uppercase; }
.dpe-program-state svg { fill: none; height: 16px; stroke: var(--cyan); stroke-width: 1.8; width: 16px; }
.dpe-program-hero h1 { max-width: 900px; }
.dpe-program-hero__role { color: #d8e4f1; font-size: 23px; line-height: 1.5; margin-top: 24px; max-width: 730px; }
.dpe-program-actions { margin-top: 30px; }
.dpe-program-hero__signature { border-top: 1px solid rgba(255,255,255,.22); color: #c4d3e4; font-size: 12px; font-weight: 600; padding-top: 17px; }

.dpe-program-brief { background: #fff; }
.dpe-program-brief h2 { margin-top: 15px; }
.dpe-program-brief__answer { border-left: 1px solid var(--line); padding: 12px 0 12px 58px; }
.dpe-program-brief__answer ul { border-top: 1px solid var(--line); list-style: none; margin-top: 26px; }
.dpe-program-brief__answer li { border-bottom: 1px solid var(--line); color: var(--ink-soft); padding-block: 13px; }

.dpe-program-composition,
.dpe-project-path,
.dpe-workbook-path,
.dpe-conversation-path,
.dpe-program-evidence { background: var(--paper-blue); }
.dpe-program-section-head h2 { margin-top: 15px; max-width: 760px; }
.dpe-program-section-head > p:last-child { color: var(--muted); font-size: 18px; margin-top: 18px; max-width: 680px; }
.dpe-concept-figure { background: var(--night); overflow: hidden; position: relative; }
.dpe-concept-figure img { height: 100%; object-fit: cover; width: 100%; }
.dpe-concept-figure figcaption { background: rgba(2, 8, 23, 0.82); bottom: 0; color: #fff; display: flex; justify-content: space-between; left: 0; padding: 16px 20px; position: absolute; right: 0; }
.dpe-concept-figure figcaption span { color: var(--cyan); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.dpe-concept-figure figcaption strong { font-size: 12px; }

.dpe-workbook__opening,
.dpe-project-lab__intro,
.dpe-conversation-ledger__opening,
.dpe-workbook-path__grid,
.dpe-conversation-path__grid,
.dpe-program-evidence__grid,
.dpe-conversation-evidence__grid,
.dpe-project-evidence__opening {
  align-items: center;
  display: grid;
  gap: 64px;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.dpe-project-lab__intro .dpe-concept-figure,
.dpe-conversation-ledger__opening .dpe-concept-figure,
.dpe-workbook__opening .dpe-concept-figure { min-height: 470px; }
.dpe-project-lab__intro .dpe-concept-figure { order: 2; }

.dpe-workbook__method,
.dpe-project-lab__principles,
.dpe-conversation-ledger__principles,
.dpe-workbook-path__steps,
.dpe-project-path__steps,
.dpe-conversation-path__entries {
  border-top: 1px solid var(--line);
  display: grid;
  list-style: none;
  margin-top: 64px;
}

.dpe-workbook__method,
.dpe-project-lab__principles { grid-template-columns: repeat(3, 1fr); }
.dpe-workbook__method li,
.dpe-project-lab__principles li { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); min-height: 260px; padding: 30px; }
.dpe-workbook__method li:last-child,
.dpe-project-lab__principles li:last-child { border-right: 0; }

.dpe-workbook__method span,
.dpe-project-lab__principles span,
.dpe-conversation-ledger__principles span,
.dpe-workbook-path__steps span,
.dpe-project-path__steps span,
.dpe-conversation-path__entries span { color: var(--blue); font-size: 11px; font-weight: 700; }

.dpe-workbook__method svg { fill: none; height: 25px; margin: 38px 0 16px; stroke: var(--blue); stroke-width: 1.7; width: 25px; }
.dpe-workbook__method h3,
.dpe-project-lab__principles h3 { margin-top: 52px; }
.dpe-workbook__method svg + div h3 { margin-top: 0; }
.dpe-workbook__method p,
.dpe-project-lab__principles p,
.dpe-conversation-ledger__principles p,
.dpe-workbook-path__steps p,
.dpe-project-path__steps p,
.dpe-conversation-path__entries p { color: var(--muted); margin-top: 10px; }

.dpe-workbook-path,
.dpe-project-path,
.dpe-conversation-path { background: var(--night); color: #fff; }
.dpe-workbook-path .dpe-kicker,
.dpe-project-path .dpe-kicker,
.dpe-conversation-path .dpe-kicker { color: var(--cyan); }
.dpe-workbook-path .dpe-program-section-head > p:last-child,
.dpe-project-path .dpe-program-section-head > p:last-child,
.dpe-conversation-path .dpe-program-section-head > p:last-child { color: #aebfd3; }
.dpe-workbook-path__steps,
.dpe-project-path__steps,
.dpe-conversation-path__entries { border-color: var(--line-dark); margin-top: 0; }
.dpe-workbook-path__steps span,
.dpe-project-path__steps span,
.dpe-conversation-path__entries span { color: var(--cyan); }
.dpe-workbook-path__steps li,
.dpe-project-path__steps li,
.dpe-conversation-path__entries li { border-bottom: 1px solid var(--line-dark); display: grid; gap: 26px; grid-template-columns: 38px minmax(0, 1fr); padding: 24px 0; }
.dpe-workbook-path__steps p,
.dpe-project-path__steps p,
.dpe-conversation-path__entries p { color: #aebfd3; }

.dpe-project-path__head { max-width: 820px; }
.dpe-project-path__steps { grid-template-columns: repeat(2, 1fr); margin-top: 48px; }
.dpe-project-path__steps li { border-right: 1px solid var(--line-dark); padding: 30px; }
.dpe-project-path__steps li:nth-child(even) { border-right: 0; }

.dpe-conversation-ledger { background: #fff; }
.dpe-conversation-ledger__principles li { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 26px; grid-template-columns: 44px minmax(0, 1fr); padding: 26px 0; }
.dpe-conversation-ledger__principles h3 { font-size: 22px; }

.dpe-program-evidence { background: #fff; }
.dpe-program-outcome-list { border-top: 1px solid var(--line); list-style: none; margin-top: 28px; }
.dpe-program-outcome-list li { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 12px; grid-template-columns: 20px 1fr; padding-block: 15px; }
.dpe-program-outcome-list svg { fill: none; height: 18px; stroke: var(--blue); stroke-width: 1.8; width: 18px; }
.dpe-program-proof { background: var(--paper-blue); border-left: 3px solid var(--blue); border-radius: 0 var(--radius) var(--radius) 0; padding: 38px; }
.dpe-program-proof__label { color: var(--blue); font-size: 10px; font-weight: 700; margin-bottom: 28px; text-transform: uppercase; }
.dpe-program-proof h3 { font-size: 21px; }
.dpe-program-proof h3:not(:first-of-type) { margin-top: 24px; }
.dpe-program-proof p:not(.dpe-program-proof__label) { color: var(--muted); margin-top: 8px; }
.dpe-program-editorial-note { color: var(--muted); font-size: 13px; margin-top: 24px; }
.dpe-program-offers { border-top: 1px solid var(--line); display: grid; gap: 24px; grid-template-columns: 140px 1fr; margin-top: 58px; padding-top: 24px; }
.dpe-program-offers > div { display: grid; gap: 22px; grid-template-columns: 180px 1fr auto; }
.dpe-program-offers p { color: var(--muted); }
.dpe-program-offers a { color: var(--blue); font-weight: 700; }

.dpe-program-next { background: var(--blue); color: #fff; }
.dpe-program-next > .dpe-shell { align-items: center; display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr) auto; min-height: 250px; padding-block: 54px; }
.dpe-program-next .dpe-kicker { color: #effdff; margin-bottom: 12px; }
.dpe-program-next h2 { font-size: 34px; max-width: 760px; }
.dpe-program-next .dpe-button--primary { background: #fff; color: var(--ink); }

/* Footer */
.site-footer { background: var(--night); border-top: 1px solid rgba(255,255,255,.12); color: #aebfd2; overflow: hidden; padding: 0 var(--gutter); position: relative; }
.site-footer__lead,
.site-footer__main,
.site-footer__trust-band,
.site-footer__closing { margin-inline: auto; max-width: calc(var(--shell) - (var(--gutter) * 2)); }
.site-footer__lead { align-items: end; border-bottom: 1px solid var(--line-dark); display: grid; gap: 54px; grid-template-columns: minmax(0, 1fr) auto; padding-block: 68px; }
.site-footer__lead .site-eyebrow { color: var(--cyan); margin-bottom: 12px; }
.site-footer__lead h2 { color: #fff; font-size: 48px; max-width: 820px; }
.dpe-public .site-footer__cta { background: var(--cyan); color: var(--night); }
.site-footer__main { display: grid; gap: 48px; grid-template-columns: 1.25fr 0.75fr 1fr 0.8fr; padding-block: 56px; }
.site-footer__identity img { filter: brightness(0) invert(1); width: 94px; }
.site-footer__identity p { margin-top: 22px; max-width: 280px; }
.site-footer__main strong { color: var(--cyan); display: block; font-size: 10px; font-weight: 700; margin-bottom: 17px; text-transform: uppercase; }
.site-footer__main nav,
.site-footer__contact,
.site-footer__legal-nav { align-content: start; display: grid; gap: 8px; }
.site-footer__main a:hover { color: #fff; }
.site-footer__trust-band { align-items: center; background: #eaf3ff; border-radius: var(--radius); color: var(--ink); display: grid; gap: 34px; grid-template-columns: 1fr auto; padding: 28px 32px; }
.site-footer__trust-band span { color: var(--blue); display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.site-footer__trust-band strong { display: block; margin-top: 5px; }
.site-footer__trust-band p { color: var(--muted); font-size: 11px; margin-top: 5px; }
.site-footer__trust-marks { align-items: center; display: flex; gap: 14px; }
.site-footer__trust-marks img { height: 50px; object-fit: contain; width: auto; }
.site-footer__closing { border-top: 1px solid var(--line-dark); display: flex; font-size: 10px; justify-content: space-between; padding-block: 26px; }
.site-footer__word { display: none; }

/* Motion, with a complete no-JS fallback. */
.dpe-motion-ready .dpe-public [data-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 620ms ease, transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
}
.dpe-motion-ready .dpe-public [data-reveal].is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1100px) {
  body.dpe-public { --gutter: 32px; }
  .dpe-public h1 { font-size: 68px; }
  .dpe-public h2 { font-size: 50px; }
  .dpe-hero h1 { font-size: 78px; }
  .dpe-programs__intro h2 { font-size: 54px; }
  .dpe-course__content,
  .dpe-perspectives__content,
  .dpe-team__content,
  .dpe-program-profile__content { padding: 52px; }
  .dpe-course__media,
  .dpe-program-profile__media { min-height: 540px; }
  .dpe-method > .dpe-shell { gap: 0 56px; grid-template-columns: minmax(0, .8fr) minmax(360px, 1.2fr); }
  .dpe-method__steps { grid-template-columns: 1fr; row-gap: 0; }
  .dpe-method__steps::before,
  .dpe-method__steps::after { display: none; }
}

@media (max-width: 860px) {
  body.dpe-public { --gutter: 22px; }
  .dpe-section { padding-block: 78px; }
  .site-header__inner { gap: 18px; grid-template-columns: auto 1fr auto; min-height: 68px; }
  .site-nav,
  .site-header__action { display: none; }
  .site-menu { display: block; justify-self: end; position: relative; }
  .site-menu > summary { align-content: center; cursor: pointer; display: grid; gap: 5px; height: 44px; justify-items: center; list-style: none; width: 44px; }
  .site-menu > summary::-webkit-details-marker { display: none; }
  .site-menu > summary span { background: #fff; display: block; height: 2px; width: 22px; }
  .site-menu[open] > summary span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .site-menu[open] > summary span:nth-child(2) { opacity: 0; }
  .site-menu[open] > summary span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .site-menu > nav { background: var(--night); border: 1px solid rgba(255,255,255,.14); box-shadow: var(--shadow); color: #fff; display: grid; min-width: 280px; padding: 18px; position: absolute; right: 0; top: 52px; }
  .site-menu > nav a { border-bottom: 1px solid var(--line); font-weight: 600; padding: 12px 4px; }
  .site-menu > nav .site-menu__course { background: var(--blue); color: #fff; margin-top: 14px; padding: 13px 14px; }

  .dpe-hero::after,
  .dpe-inner-hero::after,
  .dpe-program-hero::after { inset: 0 18% 0 0; }
  .dpe-hero__meta { grid-template-columns: repeat(2, 1fr); }
  .dpe-hero__meta span { min-height: 50px; padding: 16px; }

  .dpe-purpose__grid,
  .dpe-about-story__grid,
  .dpe-programs-intro__grid,
  .dpe-ideas-intro__grid,
  .dpe-program-brief__grid,
  .dpe-method__head,
  .dpe-contact-facts__grid { gap: 34px; grid-template-columns: 1fr; }
  .dpe-method > .dpe-shell { display: grid; gap: 0; grid-template-columns: 1fr; }
  .dpe-method__visual { grid-column: 1; }
  .dpe-method__steps { grid-column: 1; grid-row: auto; margin-top: 52px; }
  .dpe-purpose__copy,
  .dpe-about-story__copy,
  .dpe-programs-intro__grid > p,
  .dpe-ideas-intro__grid > p { padding-top: 0; }
  .dpe-world { grid-template-columns: 1fr 1fr; }
  .dpe-world__item--wide { grid-column: 1 / -1; grid-row: auto; min-height: 430px; }
  .dpe-programs__canvas,
  .dpe-programs__canvas > img { height: 500px; min-height: 500px; }
  .dpe-programs__index { margin-top: -24px; }
  .dpe-programs__index > a,
  .dpe-programs__index > a:first-child { grid-column: span 6; min-height: 440px; }
  .dpe-programs__index > a:first-child { grid-column: 1 / -1; }

  .dpe-course__grid,
  .dpe-perspectives__grid,
  .dpe-team__grid,
  .dpe-program-profile,
  .dpe-contact-stage,
  .dpe-workbook__opening,
  .dpe-project-lab__intro,
  .dpe-conversation-ledger__opening,
  .dpe-workbook-path__grid,
  .dpe-conversation-path__grid,
  .dpe-program-evidence__grid,
  .dpe-conversation-evidence__grid,
  .dpe-project-evidence__opening { grid-template-columns: 1fr; }
  .dpe-next__content,
  .dpe-program-next > .dpe-shell,
  .site-footer__lead { align-items: start; grid-template-columns: 1fr; }
  .dpe-program-profile--reverse .dpe-program-profile__media,
  .dpe-project-lab__intro .dpe-concept-figure { order: initial; }
  .dpe-course__media,
  .dpe-program-profile__media,
  .dpe-perspectives__visual,
  .dpe-team__visual { min-height: 500px; }
  .dpe-course__content { border-left: 0; border-top: 1px solid rgba(255,255,255,.14); }
  .dpe-program-profile { gap: 34px; }
  .dpe-program-profile__content h2 { font-size: 42px; }
  .dpe-method__steps { grid-template-columns: 1fr; }
  .dpe-about-proof,
  .dpe-principles__grid { grid-template-columns: 1fr; }
  .dpe-about-proof figure { min-height: 440px; }
  .dpe-about-proof ul { padding: 40px; }
  .dpe-principles__grid article { border-bottom: 1px solid var(--line); border-right: 0; min-height: auto; }
  .dpe-ideas-grid > .dpe-shell { grid-template-columns: 1fr; }
  .dpe-idea:nth-child(odd) { border-right: 0; }
  .dpe-idea--feature,
  .dpe-idea--wide { grid-template-columns: 1fr; }
  .dpe-program-brief__answer { border-left: 0; border-top: 1px solid var(--line); padding: 30px 0 0; }
  .dpe-workbook__method,
  .dpe-project-lab__principles { grid-template-columns: 1fr; }
  .dpe-workbook__method li,
  .dpe-project-lab__principles li { border-right: 0; min-height: auto; }
  .dpe-project-path__steps { grid-template-columns: 1fr; }
  .dpe-project-path__steps li { border-right: 0; }
  .site-footer__main { grid-template-columns: repeat(2, 1fr); }
  .site-footer__trust-band { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  body.dpe-public { --gutter: 18px; font-size: 15px; }
  .dpe-public h1,
  .dpe-hero h1 { font-size: 44px; line-height: 1; }
  .dpe-public h2,
  .dpe-programs__intro h2 { font-size: 36px; line-height: 1.02; }
  .dpe-public h3 { font-size: 20px; }
  .dpe-section { padding-block: 62px; }
  .review-bar { justify-content: flex-start; padding-inline: 12px; }
  .review-bar > div { align-items: flex-start; flex-direction: column; gap: 0; }
  .review-count { display: none; }
  .site-header__inner { min-height: 62px; }
  .site-brand,
  .site-brand img { width: 82px; }
  .site-menu > nav { min-width: min(310px, calc(100vw - 36px)); }

  .dpe-hero { min-height: 780px; }
  .dpe-hero__media img { object-position: 62% center; }
  .dpe-hero__shade { background: rgba(2, 8, 23, 0.68); }
  .dpe-hero::after { background: rgba(2, 8, 23, 0.28); inset: 0; }
  .dpe-hero__content { justify-content: end; min-height: 680px; padding-bottom: 46px; padding-top: 74px; }
  .dpe-hero__thesis { font-size: 22px; margin-top: 20px; }
  .dpe-hero__lead { font-size: 16px; line-height: 1.5; }
  .dpe-hero .dpe-actions { align-items: stretch; flex-direction: column; margin-top: 24px; }
  .dpe-hero .dpe-button { width: 100%; }
  .dpe-hero__meta { background: rgba(2,8,23,.84); grid-template-columns: repeat(2, 1fr); }
  .dpe-hero__meta span { border-bottom: 1px solid rgba(255,255,255,.18); font-size: 9px; }
  .dpe-signal .dpe-shell { grid-template-columns: 1fr; }
  .dpe-signal p { border-bottom: 1px solid var(--line); border-right: 0; justify-content: flex-start; min-height: 46px; }

  .dpe-atlas,
  .dpe-program-atlas,
  .dpe-ideas-visual,
  .dpe-method__visual { margin-top: 36px; padding-inline: 0; }
  .dpe-atlas img,
  .dpe-program-atlas img,
  .dpe-ideas-visual img,
  .dpe-method__visual img,
  .dpe-principles__visual img { aspect-ratio: 4 / 3; }
  .dpe-atlas figcaption,
  .dpe-program-atlas figcaption,
  .dpe-method__visual figcaption,
  .dpe-ideas-visual figcaption { align-items: flex-start; flex-direction: column; gap: 3px; padding-block: 12px; }
  .dpe-world { grid-template-columns: 1fr; padding-inline: 0; }
  .dpe-world__item,
  .dpe-world__item--wide { grid-column: auto; min-height: 390px; }
  .dpe-world__item > div { padding: 22px; }

  .dpe-programs { padding-bottom: 58px; }
  .dpe-programs__canvas,
  .dpe-programs__canvas > img { height: 520px; min-height: 520px; }
  .dpe-programs__intro { bottom: 36px; }
  .dpe-programs__index { gap: 10px; margin-top: -18px; padding-inline: 12px; }
  .dpe-programs__index > a,
  .dpe-programs__index > a:first-child { grid-column: 1 / -1; min-height: 390px; }
  .dpe-programs__index div { padding: 24px 58px 24px 24px; }
  .dpe-programs__index strong,
  .dpe-programs__index > a:first-child strong { font-size: 29px; }
  .dpe-programs__index p { display: block; font-size: 13px; }

  .dpe-course { padding-inline: 0; }
  .dpe-course__grid { padding-inline: 0; }
  .dpe-course__media { min-height: 440px; }
  .dpe-course__content,
  .dpe-perspectives__content,
  .dpe-team__content,
  .dpe-program-profile__content { padding: 38px 22px; }
  .dpe-facts { grid-template-columns: 1fr; }
  .dpe-facts li,
  .dpe-facts li + li { border-bottom: 1px solid var(--line); border-right: 0; padding: 14px 0; }
  .dpe-facts li:last-child { border-bottom: 0; }
  .dpe-method__head { display: block; }
  .dpe-method__head h2 { margin: 15px 0 18px; }
  .dpe-method__steps { grid-template-columns: 1fr; }
  .dpe-method__steps li { border-bottom: 1px solid var(--line); display: grid; gap: 18px; grid-template-columns: 46px 1fr; padding: 22px 0; }
  .dpe-method__steps li > span { font-size: 28px; height: auto; width: auto; }
  .dpe-method__steps li > div { min-width: 0; }
  .dpe-method__steps h3 { margin-top: 0; }
  .dpe-perspectives__visual,
  .dpe-team__visual { min-height: 430px; }
  .dpe-perspectives__visual > p,
  .dpe-team__visual > p { bottom: 24px; font-size: 25px; left: 22px; }
  .dpe-perspective-list article { grid-template-columns: 1fr; }
  .dpe-perspective-list p { grid-column: 1; }
  .dpe-next__content,
  .dpe-program-next > .dpe-shell,
  .site-footer__lead { align-items: start; grid-template-columns: 1fr; }

  .dpe-inner-hero,
  .dpe-inner-hero__content,
  .dpe-program-hero,
  .dpe-program-hero__inner { min-height: 560px; }
  .dpe-inner-hero::after,
  .dpe-program-hero::after { inset: 0; }
  .dpe-inner-hero__content { padding-bottom: 48px; }
  .dpe-inner-hero__content > p:last-child,
  .dpe-program-hero__role { font-size: 16px; }
  .dpe-about-proof { gap: 0; }
  .dpe-about-proof figure { min-height: 320px; }
  .dpe-about-proof ul { padding: 18px 22px 28px; }
  .dpe-about-proof li { gap: 14px; grid-template-columns: 30px minmax(0, 1fr); padding-block: 19px; }
  .dpe-about-proof li svg { height: 22px; width: 22px; }
  .dpe-about-proof li span { font-size: 15px; }
  .dpe-program-profile { padding-inline: 0; }
  .dpe-program-profile + .dpe-program-profile { margin-top: 28px; }
  .dpe-program-profile__media { min-height: 420px; }
  .dpe-program-profile__content h2 { font-size: 36px; }
  .dpe-ideas-grid > .dpe-shell { padding-inline: 0; }
  .dpe-idea { min-height: 260px; padding: 30px 22px; }
  .dpe-idea > svg { margin-top: 38px; }
  .dpe-idea--feature,
  .dpe-idea--wide { padding: 0; }
  .dpe-idea--feature .dpe-idea__copy,
  .dpe-idea--wide .dpe-idea__copy { padding: 34px 22px; }
  .dpe-idea__media,
  .dpe-idea--wide figure { min-height: 320px; }
  .dpe-idea--feature h2 { font-size: 31px; }
  .dpe-contact-stage { grid-template-columns: 1fr; }
  .dpe-contact-visual { min-height: 380px; }
  .dpe-contact-facts__list > div { gap: 8px; grid-template-columns: 1fr; }

  .dpe-program-actions { align-items: stretch; flex-direction: column; }
  .dpe-program-actions .dpe-button,
  .dpe-program-actions .dpe-text-link { justify-content: center; width: 100%; }
  .dpe-program-hero__signature { line-height: 1.45; }
  .dpe-project-lab__intro .dpe-concept-figure,
  .dpe-conversation-ledger__opening .dpe-concept-figure,
  .dpe-workbook__opening .dpe-concept-figure { min-height: 360px; }
  .dpe-workbook__method li,
  .dpe-project-lab__principles li { padding: 26px 0; }
  .dpe-project-path__steps li { padding-inline: 0; }
  .dpe-program-proof { padding: 26px 22px; }
  .dpe-program-offers { grid-template-columns: 1fr; }
  .dpe-program-offers > div { grid-template-columns: 1fr; }
  .dpe-program-next h2 { font-size: 29px; }

  .site-footer { padding-inline: var(--gutter); }
  .site-footer__lead { padding-block: 48px; }
  .site-footer__lead h2 { font-size: 31px; }
  .site-footer__main { grid-template-columns: 1fr; padding-block: 46px; }
  .site-footer__trust-band { padding: 22px 18px; }
  .site-footer__trust-marks { align-items: flex-start; flex-direction: column; }
  .site-footer__trust-marks img { max-width: 100%; }
  .site-footer__closing { align-items: flex-start; flex-direction: column; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .dpe-public *,
  .dpe-public *::before,
  .dpe-public *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
  .dpe-motion-ready .dpe-public [data-reveal] { opacity: 1; transform: none; }
  .dpe-public [data-art-layer],
  .dpe-public .dpe-hero__media img { transform: none; }
}

@media print {
  .review-bar,
  .site-header,
  .site-footer,
  .dpe-next { display: none !important; }
  .dpe-public { background: #fff; color: #000; }
  .dpe-public [data-reveal] { opacity: 1 !important; transform: none !important; }
}
