/* Dean Izod Reel. Layout: full-screen bands on black; Anton caps for every heading, label and control; one blue used as a full band, a rule and the footer wordmark. */
:root {
  --di-surface: var(--wp--preset--color--surface, #000);
  --di-deep: #000;
  --di-fill: var(--wp--preset--color--fill, #1C1C22);
  --di-hairline: rgba(250, 247, 241, 0.2);
  --di-ink: var(--wp--preset--color--ink, #FAF7F1);
  --di-body: var(--wp--preset--color--text-body, #B3B4BD);
  --di-accent: var(--wp--preset--color--accent, #0064FF);
  --di-blue: var(--wp--preset--color--accent-text, #5F7CFF);
  --di-display: var(--wp--preset--font-family--anton, Anton, Impact, sans-serif);
  --di-mono: var(--di-display);
  --di-serif: var(--wp--preset--font-family--inter, Inter, sans-serif);
  --di-gutter: clamp(1.25rem, 4vw, 3.5rem);
  --di-max: 1560px;
  --di-pad: max(var(--di-gutter), calc((100% - var(--di-max)) / 2));
  --di-band: clamp(4.5rem, 10vw, 9rem);
  color-scheme: dark;
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks { padding: 0; overflow-x: clip; }
.wp-site-blocks > * { margin-block-start: 0; }
:where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--di-blue); outline-offset: 3px; border-radius: 2px; }
h1, h2, h3 { text-wrap: balance; }
img { max-width: 100%; height: auto; }

/* Scroll progress rule along the bottom edge */
.di-progress { position: fixed; left: 0; bottom: 0; height: 4px; width: 100%; background: var(--di-accent); transform-origin: left; transform: scaleX(0); z-index: 50; pointer-events: none; }

/* Three-tone headline */
.di-tone span, .di-white, .di-outline, .di-blue, .di-hero-white, .di-hero-outline, .di-hero-blue, .di-contact-white, .di-contact-blue { display: block; }
.di-white, .di-hero-white, .di-contact-white { color: var(--di-ink); }
.di-outline, .di-hero-outline { color: transparent; -webkit-text-stroke: 1px var(--di-ink); }
.di-blue, .di-hero-blue, .di-contact-blue { color: var(--di-blue); }

/* Shared pieces */
.di-label, .di-label a {
  font-family: var(--di-display);
  font-size: 0.75rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--di-ink);
  text-decoration: none;
  margin: 0;
}
.di-label a:hover { color: var(--di-blue); }
ul.di-plain { list-style: none; padding: 0; margin: 0; }
.di-arrow { margin: 0; font-family: var(--di-display); font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; }
.di-arrow a { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 0.35rem; }
.di-arrow a::after { content: "\2192"; display: inline-block; margin-left: 0.7em; font-family: var(--wp--preset--font-family--inter, sans-serif); transition: transform 0.2s; }
.di-arrow a:hover { text-decoration: none; color: var(--di-blue); }
.di-arrow a:hover::after { transform: translateX(5px); }

.di-main > * { margin-block-start: 0; }
.di-main--pad { padding-top: 7rem; }
.di-section { padding-block: var(--di-band); padding-inline: var(--di-pad); border-top: 1px solid var(--di-hairline); }
.di-section__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem 2rem; flex-wrap: wrap; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.di-section__head > * { margin: 0; }
.di-section__head .di-label { flex-basis: 100%; }
.di-section__head h2 { font-size: clamp(2.6rem, 6.4vw, 5.4rem); line-height: 0.92; }

.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--di-ink); border: 1px solid rgba(250, 247, 241, 0.6); padding: 14px 27px 13px; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--di-ink); color: #000; border-color: var(--di-ink); }
.wp-block-button__link { transition: background 0.2s, color 0.2s, border-color 0.2s; }

/* Header */
.di-header-wrap { position: absolute; inset: 0 0 auto 0; z-index: 20; }
.di-header { padding: 1.9rem var(--di-gutter); gap: 1.5rem; }
.di-header .wp-block-site-logo img { display: block; }
.di-nav { font-family: var(--di-display); font-size: 0.875rem; letter-spacing: 0.1em; text-transform: uppercase; }
.di-nav .wp-block-navigation__container { gap: 2.4rem; align-items: center; }
.di-nav a { color: var(--di-ink); text-decoration: none; }
.di-nav a:hover { color: var(--di-blue); text-decoration: none; }
.di-nav .di-nav__cta .wp-block-navigation-item__content { border: 1px solid rgba(250, 247, 241, 0.6); border-radius: 60px; padding: 0.7rem 1.5rem 0.6rem; transition: background 0.2s, color 0.2s; }
.di-nav .di-nav__cta .wp-block-navigation-item__content:hover { background: var(--di-ink); color: #000; }
.wp-block-navigation__responsive-container-open { color: var(--di-ink); }
.wp-block-navigation__responsive-container.is-menu-open { background: #000; color: var(--di-ink); padding: 1.5rem var(--di-gutter); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { font-size: 3rem; letter-spacing: 0.01em; gap: 0.75rem; line-height: 1; }
.wp-block-navigation__responsive-container.is-menu-open .di-nav__cta .wp-block-navigation-item__content { font-size: 1rem; letter-spacing: 0.1em; margin-top: 1.5rem; }

/* Hero: the showreel fills the first screen; its own type is the headline */
.di-hero { position: relative; height: 100vh; min-height: 34rem; max-height: 68rem; background: #000; overflow: hidden; }
.di-hero > * { margin: 0; }
.di-reel { position: absolute; inset: 0; margin: 0; }
.di-reel video { display: block; width: 100%; height: 100%; object-fit: cover; }
.di-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0) 22%, rgba(0, 0, 0, 0) 72%, rgba(0, 0, 0, 0.7) 100%); pointer-events: none; }
.di-hero__meta { position: absolute; z-index: 2; left: var(--di-gutter); right: var(--di-gutter); bottom: 1.75rem; display: flex; justify-content: space-between; gap: 0.5rem 1rem; flex-wrap: wrap; }
.di-hero__meta > * { margin: 0; }

/* Page heads on inner pages */
.di-pagehead { padding: clamp(2.5rem, 6vw, 5rem) var(--di-pad) clamp(2.5rem, 5vw, 4rem); display: flex; flex-direction: column; gap: 1.5rem; }
.di-pagehead > * { margin: 0; }
.di-pagehead h1 { font-size: clamp(3.2rem, 11vw, 10.5rem); line-height: 0.9; max-width: 14ch; }
.di-pagehead--case h1 { font-size: clamp(2.6rem, 7vw, 6.5rem); max-width: 18ch; }
.di-pagehead__lede, .di-pagehead .wp-block-post-excerpt { max-width: 52ch; font-size: clamp(1.05rem, 1.35vw, 1.3rem); line-height: 1.5; color: var(--di-ink); }
.di-pagehead .wp-block-post-excerpt p { margin: 0; }

/* Discipline chips */
.di-chips { display: flex; flex-wrap: wrap; gap: 0.6rem; padding-top: 1rem; }
.di-chips > * { margin: 0; }
.di-chips ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.di-chips li, .di-chips__all { font-family: var(--di-display); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--di-body); border: 1px solid rgba(250, 247, 241, 0.4); border-radius: 60px; padding: 0.6rem 1.1rem 0.5rem; position: relative; transition: border-color 0.2s, color 0.2s; }
.di-chips li a, .di-chips__all a { color: var(--di-ink); text-decoration: none; }
.di-chips li a::before, .di-chips__all a::before { content: ""; position: absolute; inset: 0; border-radius: 60px; }
.di-chips li:hover, .di-chips__all:hover, .di-chips li.current-cat { border-color: var(--di-blue); }
.di-chips li.current-cat a { color: var(--di-blue); }

/* Statement: one paragraph of headline type across the page */
.di-statement { padding: clamp(5rem, 11vw, 10rem) var(--di-pad); display: flex; flex-direction: column; gap: clamp(1.75rem, 3vw, 2.75rem); align-items: flex-start; }
.di-statement > * { margin: 0; }
.di-statement__text { font-size: clamp(2.5rem, 7.2vw, 7.25rem); line-height: 0.98; letter-spacing: 0.005em; }
.di-statement__lede { max-width: 46ch; font-size: clamp(1.05rem, 1.35vw, 1.3rem); line-height: 1.5; color: var(--di-ink); }

/* Marquees */
.di-marquees { padding-block: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid var(--di-hairline); }
.di-marquees > * { margin: 0; }
.di-marquees__label { padding-inline: var(--di-gutter); margin-bottom: 1.25rem; }
.di-marquee { overflow-x: auto; scrollbar-width: none; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.di-marquee:last-child { margin-bottom: 0; }
.di-marquee::-webkit-scrollbar { display: none; }
.di-marquee.is-running { overflow: hidden; }
.di-marquee__track { display: flex; width: max-content; gap: 3.5rem; padding-inline: var(--di-gutter); }
.di-marquee__track > * { margin: 0; flex: none; }
.di-marquee.is-running .di-marquee__track { padding-inline: 0; animation: di-marquee var(--di-marquee-time, 40s) linear infinite; }
.di-marquee--reverse.is-running .di-marquee__track { animation-direction: reverse; }
.di-marquee.is-running:hover .di-marquee__track { animation-play-state: paused; }
@keyframes di-marquee { to { transform: translateX(calc(-50% - 1.75rem)); } }
.di-marquee__track > p { font-family: var(--di-display); text-transform: uppercase; font-size: clamp(1.9rem, 3.6vw, 3.4rem); line-height: 1.1; letter-spacing: 0.01em; white-space: nowrap; color: var(--di-ink); }
.di-marquee__track--venues > p { color: transparent; -webkit-text-stroke: 1px var(--di-ink); }

/* Giant line that scrolls across the page */
.di-bigline { padding-block: clamp(4rem, 9vw, 8rem); border-top: 1px solid var(--di-hairline); }
.di-bigline .di-marquee__track { gap: 5rem; }
.di-bigline .di-marquee.is-running .di-marquee__track { animation-name: di-marquee-big; }
@keyframes di-marquee-big { to { transform: translateX(calc(-50% - 2.5rem)); } }
.di-bigline .di-marquee__track > p { font-size: clamp(4rem, 13vw, 12.5rem); line-height: 1; }
.di-bigline .di-marquee__track > p:nth-child(3n) { color: var(--di-blue); }

/* Selected work: one project per screen, each sliding over the last */
.di-panels-wrap { border-top: 1px solid var(--di-hairline); }
.di-panels-wrap > * { margin: 0; }
ul.di-panels { list-style: none; margin: 0; padding: 0; }
ul.di-panels > li { position: sticky; top: 0; height: 100vh; min-height: 30rem; margin: 0; overflow: hidden; background: #000; }
.di-panel { position: relative; height: 100%; display: grid; place-items: center; }
.di-panel > * { margin: 0; }
.di-panel .wp-block-post-featured-image { position: absolute; inset: 0; margin: 0; }
.di-panel .wp-block-post-featured-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease; }
.di-panel:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.di-panel::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.68) 0%, rgba(0, 0, 0, 0.42) 55%, rgba(0, 0, 0, 0.6) 100%); pointer-events: none; }
.di-panel__text { position: relative; z-index: 2; text-align: center; padding-inline: var(--di-gutter); display: flex; flex-direction: column; gap: 1.1rem; align-items: center; }
.di-panel__text > * { margin: 0; }
.di-panel__text .wp-block-post-title { font-size: clamp(3rem, 10.2vw, 9.25rem); line-height: 0.9; letter-spacing: 0.01em; max-width: 14ch; }
.di-panel__text .wp-block-post-title a { color: var(--di-ink); text-decoration: none; }
.di-panel__text .wp-block-post-title a::before { content: ""; position: absolute; inset: -50vh -50vw; }
.di-panel__text .wp-block-post-terms a { position: relative; z-index: 3; }
.di-panels__foot { position: relative; z-index: 3; background: #000; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.75rem var(--di-gutter); border-top: 1px solid var(--di-hairline); }
.di-panels__foot > * { margin: 0; }

/* Numbered rows */
.di-rows { padding: clamp(3rem, 6vw, 5rem) var(--di-pad) var(--di-band); border-top: 1px solid var(--di-hairline); position: relative; z-index: 3; background: #000; }
.di-rows > * { margin: 0; }
.di-rows > .di-label { margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.di-row { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 2rem 4rem; align-items: start; padding-block: clamp(2.25rem, 4.5vw, 4rem); border-top: 1px solid var(--di-hairline); }
.di-row > * { margin: 0; }
.di-row__head > * { margin: 0; }
.di-row__num { font-family: var(--di-display); font-size: 1.15rem; letter-spacing: 0.04em; color: var(--di-ink); margin-bottom: 0.9rem !important; }
.di-row h3 { font-size: clamp(2.6rem, 6.2vw, 5.6rem); line-height: 0.9; max-width: 12ch; }
.di-row ul { padding-top: 0.4rem; }
.di-row li { font-size: clamp(1rem, 1.25vw, 1.2rem); line-height: 1.3; padding-block: 0.55rem; color: var(--di-ink); }
.di-row li:nth-child(3) { opacity: 0.75; }
.di-row li:nth-child(4) { opacity: 0.5; }
.di-rows > .di-arrow { padding-top: 2rem; border-top: 1px solid var(--di-hairline); }

/* Light band */
.di-light { background: var(--di-ink); color: #000; padding: clamp(5rem, 11vw, 10rem) var(--di-pad); display: flex; flex-direction: column; gap: clamp(2rem, 3.5vw, 3rem); align-items: flex-start; }
.di-light > * { margin: 0; }
.di-light h2 { color: #000; font-size: clamp(1.9rem, 4.3vw, 4.3rem); line-height: 1.02; max-width: 32ch; text-wrap: pretty; }
.di-light .di-arrow a:hover { color: var(--di-accent); }

/* Accent band */
.di-why { background: var(--di-accent); color: var(--di-ink); padding: clamp(4.5rem, 9vw, 8rem) var(--di-pad); overflow: hidden; }
.di-why > * { margin: 0; }
.di-why__title { color: #000; font-size: clamp(3rem, 12.3vw, 12.5rem); line-height: 0.84; letter-spacing: 0; white-space: nowrap; margin: 0 0 clamp(3rem, 6vw, 5.5rem) -0.04em !important; }
.di-pillars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem 2rem; }
.di-pillars > * { margin: 0; }
.di-pillar { border-top: 2px solid #000; padding-top: 1.25rem; }
.di-pillar > * { margin: 0; }
.di-pillar h3 { color: #000; font-size: clamp(1.6rem, 2.3vw, 2.25rem); line-height: 0.95; margin-bottom: 1rem; }
.di-pillar p { color: var(--di-ink); font-size: 1rem; line-height: 1.5; max-width: 34ch; }
.di-contact .di-pillar { border-top: 1px solid var(--di-ink); }
.di-contact .di-pillar h3 { color: var(--di-ink); }
.di-contact .di-pillar p { color: var(--di-body); }

/* Proof */
.di-proof { padding: var(--di-band) var(--di-pad); display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1.5rem; }
.di-proof > * { margin: 0; }
.di-proof__figure { font-family: var(--di-display); line-height: 0.85; font-size: clamp(6rem, 26vw, 24rem); color: var(--di-ink); }
.di-proof h3 { font-size: clamp(1.6rem, 3vw, 2.75rem); max-width: 18ch; }

/* Project grids */
.di-query > * { margin: 0; }
ul.di-grid { list-style: none; padding: 0; margin: 0; display: grid; gap: 3rem 1.25rem; }
ul.di-grid > li { margin: 0; min-width: 0; }
.di-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.di-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.di-grid--feature { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.di-grid--feature > li { grid-column: span 2; }
.di-grid--feature > li:nth-child(1), .di-grid--feature > li:nth-child(2) { grid-column: span 3; }
.di-plate { position: relative; }
.di-plate > * { margin: 0; }
.di-plate .wp-block-post-featured-image { margin: 0; overflow: hidden; border-radius: 0; background: var(--di-fill); }
.di-plate .wp-block-post-featured-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.di-plate:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.di-plate__caption { display: flex; flex-direction: column; gap: 0.5rem; padding-top: 1rem; border-bottom: 2px solid transparent; }
.di-plate__caption > * { margin: 0; }
.di-plate__caption .wp-block-post-title { font-size: clamp(1.5rem, 2.3vw, 2.2rem); line-height: 0.95; }
.di-plate__caption .wp-block-post-title a { color: var(--di-ink); text-decoration: none; transition: color 0.15s; }
.di-plate__caption .wp-block-post-title a::before { content: ""; position: absolute; inset: 0; z-index: 1; }
.di-plate:hover .wp-block-post-title a { color: var(--di-blue); }
.di-plate .wp-block-post-terms.di-label a { position: relative; z-index: 2; }
.di-plate__excerpt { margin-top: 0.75rem; max-width: 52ch; font-size: 0.95rem; }
.di-plate__excerpt p { margin: 0; }
.di-grid--two .wp-block-post-title { font-size: clamp(2rem, 3.8vw, 3.6rem); }

/* Case study */
.di-case-hero { margin: 0 var(--di-pad) !important; }
.di-case-hero img { display: block; width: 100%; border-radius: 4px; }
.di-case { border-top: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.6fr); gap: 3rem 4rem; align-items: start; }
.di-case > * { margin: 0; }
.di-spec { position: sticky; top: 2rem; display: flex; flex-direction: column; gap: 1.5rem; }
.di-spec > * { margin: 0; }
.di-spec__item { border-top: 1px solid var(--di-hairline); padding-top: 1rem; }
.di-spec__item > * { margin: 0; }
.di-spec__value { color: var(--di-ink); margin-top: 0.4rem !important; }
.di-case > .di-prose:only-child { grid-column: 1 / -1; max-width: 760px; }

.di-prose > * { margin-block: 0 1.25rem; max-width: 68ch; }
.di-prose > :last-child { margin-bottom: 0; }
.di-prose.has-global-padding, .di-prose .has-global-padding { padding-inline: 0; }
.di-prose h2 { font-size: clamp(2rem, 4vw, 3.4rem); margin-top: clamp(3rem, 6vw, 5rem); padding-top: 1.5rem; border-top: 1px solid var(--di-hairline); max-width: none; }
.di-prose h3 { font-size: 1.5rem; margin-top: 2.5rem; color: var(--di-blue); }
.di-prose h2 + h3 { margin-top: 1.5rem; }
.di-prose p { font-size: var(--wp--preset--font-size--body-l, 1.1rem); }
.di-prose strong { color: var(--di-ink); }
.di-prose > .wp-block-gallery, .di-prose > figure, .di-prose > .wp-block-columns, .di-prose > .di-case-meta, .di-prose > .wp-block-video, .di-prose > .wp-block-group { max-width: none; }
.di-prose .wp-block-gallery { margin-block: 2rem; gap: 1.25rem; }
.di-prose .wp-block-image img { border-radius: 4px; }
.di-prose figcaption { font-size: 0.8125rem; color: var(--di-body); }
.di-case-meta { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 1.25rem 2rem; padding-block: 1.5rem; border-block: 1px solid var(--di-hairline); margin-bottom: 2.5rem !important; }
.di-case-meta__item > * { margin: 0 !important; max-width: none; }
.di-case-meta__label { font-family: var(--di-mono); font-size: 0.72rem !important; letter-spacing: 0.18em; text-transform: uppercase; }
.di-case-meta__value { color: var(--di-ink); margin-top: 0.35rem !important; font-size: 1rem !important; }
.wp-block-pullquote.di-case-insight { margin: 2.5rem 0; padding: 0 0 0 1.5rem; border: 0; border-left: 3px solid var(--di-accent); text-align: left; max-width: none; }
.wp-block-pullquote.di-case-insight blockquote { margin: 0; }
.wp-block-pullquote.di-case-insight p {  font-size: clamp(1.5rem, 2.6vw, 2.25rem); line-height: 1.25; color: var(--di-ink); margin: 0; }
.di-results { gap: 2rem; padding-block: 1.5rem; border-block: 1px solid var(--di-hairline); }
.di-results__stat { font-family: var(--di-display); font-size: clamp(2.25rem, 4vw, 3.5rem) !important; line-height: 1; color: var(--di-blue); margin: 0 0 0.5rem; }
.di-results__note { margin: 0; }
.di-attribution { font-size: 0.8125rem !important; color: var(--di-body); }
.di-placeholder { border: 1px dashed var(--di-hairline); padding: 1rem; border-radius: 4px; }

/* Pages written in the editor (About): each group becomes a band with its heading on the left */
.di-prose--page { padding: clamp(2.5rem, 6vw, 5rem) var(--di-pad) var(--di-band); }
.di-prose--page > * { max-width: none; margin: 0; }
.di-prose--page > .di-hero, .di-prose--page > .di-contact { padding: 0 0 clamp(2rem, 4vw, 3.5rem) !important; }
.di-prose--page h1 { font-size: clamp(3rem, 9vw, 8.5rem) !important; line-height: 0.95 !important; letter-spacing: 0 !important; }
.di-prose--page > .wp-block-group { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); column-gap: 4rem; padding: clamp(2.5rem, 5vw, 4rem) 0 !important; border-top: 1px solid var(--di-hairline); }
.di-prose--page > .wp-block-group > * { grid-column: 2; margin: 0 0 1.1rem !important; max-width: 62ch; }
.di-prose--page > .wp-block-group > :last-child { margin-bottom: 0 !important; }
.di-prose--page > .wp-block-group > h2 { grid-column: 1; grid-row: 1 / span 40; border: 0; padding: 0; margin: 0 !important; font-size: clamp(2rem, 3.6vw, 3.25rem); max-width: 12ch; align-self: start; }
.di-prose--page > .wp-block-group > h3 { margin-top: 2rem !important; font-size: 1.5rem; color: var(--di-blue); }
.di-prose--page .has-lede-font-size {  font-size: clamp(1.2rem, 1.6vw, 1.5rem) !important; line-height: 1.4; color: var(--di-ink); }
.di-prose--page > .wp-block-group.di-cta-block { display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem; border-top: 3px solid var(--di-accent); border-radius: 0; padding: clamp(2.5rem, 5vw, 4rem) !important; margin-top: clamp(2rem, 4vw, 3rem); }
.di-prose--page > .wp-block-group.di-cta-block > * { margin: 0 !important; max-width: none; }
.di-prose--page > .wp-block-group.di-cta-block h2 { font-size: clamp(2.4rem, 6vw, 5rem); max-width: none; }
@media (max-width: 800px) {
  .di-prose--page > .wp-block-group { grid-template-columns: minmax(0, 1fr); }
  .di-prose--page > .wp-block-group > *, .di-prose--page > .wp-block-group > h2 { grid-column: 1; grid-row: auto; }
  .di-prose--page > .wp-block-group > h2 { margin-bottom: 1.5rem !important; max-width: none; }
}

/* Pager */
.di-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.di-pager > * { margin: 0; }
.di-pager .post-navigation-link-next { text-align: right; grid-column: 2; }
.di-pager .wp-block-post-navigation-link { font-family: var(--di-mono); font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--di-body); }
.di-pager .wp-block-post-navigation-link a { display: block; margin-top: 0.5rem; font-family: var(--di-display); font-size: clamp(1.4rem, 2.6vw, 2.25rem); letter-spacing: 0.01em; line-height: 1.02; color: var(--di-ink); text-decoration: none; }
.di-pager .wp-block-post-navigation-link a:hover { color: var(--di-blue); }

/* CTA */
.di-cta { padding: var(--di-band) 0 clamp(3rem, 6vw, 5rem); display: flex; flex-direction: column; gap: 1.75rem; align-items: center; text-align: center; border-top: 1px solid var(--di-hairline); }
.di-cta > * { margin: 0; }
.di-cta h2 { font-size: clamp(2.8rem, 8.4vw, 7.75rem); line-height: 0.92; max-width: 14ch; padding-inline: var(--di-gutter); }
.di-cta p { max-width: 44ch; font-size: clamp(1.05rem, 1.35vw, 1.3rem); color: var(--di-ink); padding-inline: var(--di-gutter); }
.di-strip-wrap { width: 100%; margin-top: clamp(2rem, 4vw, 3.5rem) !important; }
ul.di-strip { list-style: none; margin: 0; padding: 0 var(--di-gutter); display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 1rem; }
ul.di-strip > li { margin: 0; }
ul.di-strip > li:nth-child(even) { transform: translateY(1.5rem); }
ul.di-strip .wp-block-post-featured-image { margin: 0; overflow: hidden; }
ul.di-strip img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
ul.di-strip li:hover img { transform: scale(1.06); }

/* Contact */
.di-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 3rem 5rem; align-items: start; }
.di-contact > * { margin: 0; }
.di-contact__side { display: flex; flex-direction: column; gap: 2.5rem; }
.di-contact__side > * { margin: 0; }
.di-contact__email a { font-family: var(--di-display); font-size: clamp(1.5rem, 2.6vw, 2.25rem); color: var(--di-blue); letter-spacing: 0.01em; }
.di-contact__form > * { margin: 0; }
.di-contact__form h3 { font-size: 1.5rem; margin-bottom: 1.75rem; }
.di-form { max-width: 40rem; }
.di-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.di-form__group { border: 0; padding: 0; margin: 0 0 1.5rem; }
.di-form__legend { padding: 0; margin-bottom: 0.6rem; font-family: var(--di-mono); font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--di-body); }
.di-form__row { display: flex; gap: 1rem; flex-wrap: wrap; align-items: flex-end; }
.di-form__row .di-form__field { flex: 1 1 11rem; margin-bottom: 0; }
.di-form__row .di-form__field--cc { flex: 0 0 7rem; }
.di-form__field { margin: 0 0 1.25rem; }
.di-form__field label { display: block; margin-bottom: 0.4rem; font-size: 0.8125rem; }
.di-form__req, .di-form__opt { opacity: 0.7; }
.di-form input[type="text"], .di-form input[type="email"], .di-form input[type="tel"], .di-form textarea { width: 100%; box-sizing: border-box; padding: 0.85rem 0.9rem; border: 1px solid var(--di-hairline); border-radius: 2px; background: var(--di-fill); color: var(--di-ink); font: inherit; }
.di-form input:focus, .di-form textarea:focus { border-color: var(--di-blue); }
.di-form textarea { resize: vertical; }
.di-form__help { margin: 0 0 1.75rem; font-size: 0.8125rem; }
.di-form__submit { margin: 1.75rem 0 0; }
.di-form__submit button { padding: 15px 28px 14px; border: 0; border-radius: 60px; background: var(--di-ink); color: #000; font-family: var(--di-display); font-size: 0.8125rem; font-weight: 400; letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer; transition: background 0.2s; }
.di-form__submit button:hover { background: var(--di-accent); color: var(--di-ink); }
.di-form__notice { border-left: 3px solid var(--di-accent); padding: 0.75rem 1rem; background: var(--di-fill); color: var(--di-ink); margin: 0 0 1.5rem; }
.di-form__notice--error { border-left-color: #FF8A00; }

/* Footer */
.di-footer { background: #000; border-top: 1px solid var(--di-hairline); padding: clamp(3.5rem, 7vw, 6rem) var(--di-gutter) 0; overflow: hidden; }
.di-footer > * { margin: 0; }
.di-footer__grid { display: grid; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)); gap: 2.5rem 2rem; }
.di-footer__grid > * { margin: 0; }
.di-footer__about > * { margin: 0; }
.di-footer__about p { margin-top: 1.5rem; max-width: 26ch; font-size: 1.05rem; line-height: 1.45; color: var(--di-ink); }
.di-footer__col > * { margin: 0; }
.di-footer__col .di-label { margin-bottom: 1.1rem; color: var(--di-blue); }
.di-footer__col li { padding-block: 0.3rem; color: var(--di-ink); }
.di-footer__col a { color: var(--di-ink); }
.di-footer__legal { margin-top: clamp(3rem, 6vw, 5rem); padding-top: 1.5rem; border-top: 1px solid var(--di-hairline); font-size: 0.8125rem; color: var(--di-body); }
.di-footer__legal > * { margin: 0; }
.di-wordmark { font-family: var(--di-display); text-transform: uppercase; color: var(--di-accent); font-size: 25.5vw; line-height: 0.8; white-space: nowrap; text-align: center; letter-spacing: 0; margin: clamp(2rem, 4vw, 3.5rem) calc(var(--di-gutter) * -1) -0.115em !important; user-select: none; }

/* Tablet */
@media (max-width: 1000px) {
  .di-pillars, .di-grid--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .di-case, .di-contact { grid-template-columns: minmax(0, 1fr); }
  .di-spec { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  ul.di-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  ul.di-strip > li:nth-child(n+5) { display: none; }
}

/* Phone */
@media (max-width: 680px) {
  .di-row { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .di-grid--three, .di-grid--two, .di-grid--feature, .di-pillars, .di-spec, .di-pager { grid-template-columns: minmax(0, 1fr); }
  .di-pager .post-navigation-link-next { grid-column: auto; text-align: left; }
  .di-footer__grid { grid-template-columns: minmax(0, 1fr); }
  .di-hero { height: 86vh; }
  .di-hero__meta { flex-direction: column; }
  ul.di-panels > li { height: 82vh; }
  .di-main--pad { padding-top: 6rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .di-marquee.is-running .di-marquee__track { animation: none; }
  .di-marquee.is-running { overflow-x: auto; }
  ul.di-panels > li { position: static; }
  *, *::before, *::after { transition-duration: 0.01ms !important; }
}

/* Galleries inside case studies hold their columns whatever size the source image is */
.di-prose .wp-block-gallery.has-nested-images { display: flex; flex-wrap: wrap; }
.di-prose .wp-block-gallery.has-nested-images figure.wp-block-image { min-width: 0; max-width: 100%; flex: 1 1 calc(50% - 1.25rem); margin: 0; }
.di-prose .wp-block-gallery.has-nested-images figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 680px) { .di-prose .wp-block-gallery.has-nested-images figure.wp-block-image { flex-basis: 100%; } }
