/* Cadenza theme (design: cadenza-two-mauve.vercel.app). Bootstrap 5 stays loaded for the page builder grid
   (widget width classes) and the CMS front-admin; everything visual is defined here. */

@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
    src: url("../fonts/inter-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter Tight"; font-style: normal; font-weight: 100 900; font-display: swap;
    src: url("../fonts/inter-tight-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
    src: url("../fonts/inter-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter Tight"; font-style: normal; font-weight: 100 900; font-display: swap;
    src: url("../fonts/inter-tight-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter Fallback"; src: local(Arial); ascent-override: 90.44%; descent-override: 22.52%; line-gap-override: 0%; size-adjust: 107.12%; }
@font-face { font-family: "Inter Tight Fallback"; src: local(Arial); ascent-override: 100.51%; descent-override: 25.03%; line-gap-override: 0%; size-adjust: 96.39%; }

:root {
    --cz-bg: #fafafa;
    --cz-fg: #0c0c0c;
    --cz-muted: #525252;
    --cz-accent: #d9531e;
    --cz-border: #dcdcdc;
    --cz-secondary: #ededed;
    --cz-sans: "Inter", "Inter Fallback", ui-sans-serif, system-ui, sans-serif;
    --cz-serif: "Inter Tight", "Inter Tight Fallback", ui-sans-serif, system-ui, sans-serif;
    --cz-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    --cz-pad: 24px;
    --cz-ease: cubic-bezier(.4, 0, .2, 1);
}
@media (min-width: 1024px) { :root { --cz-pad: 40px; } }

html { scroll-behavior: smooth; }
body {
    background: var(--cz-bg);
    color: var(--cz-fg);
    font-family: var(--cz-sans);
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
a { color: inherit; text-decoration: none; }
a:hover { color: inherit; }
img { max-width: 100%; }
h1, h2, h3, h4, h5 { font-family: var(--cz-serif); font-weight: 300; letter-spacing: -.025em; margin: 0; }
p { margin: 0; }
em, i { font-style: normal; }
h1 em, h2 em, h3 em, .cz-accent, .cz-statement em, .cz-lead em, .cz-label-left .cz-body em { color: var(--cz-accent); }
::selection { background: var(--cz-accent); color: #fff; }

.container { max-width: 1400px; padding-left: var(--cz-pad); padding-right: var(--cz-pad); }
.cz-wrap { max-width: 1400px; margin: 0 auto; padding: 0 var(--cz-pad); }

/* ---------- Shared bits ---------- */
.eyebrow {
    display: flex; align-items: center; gap: 12px;
    font-size: 12px; font-weight: 300; line-height: 1; letter-spacing: .3em; text-transform: uppercase;
    color: var(--cz-accent); margin: 0;
}
.eyebrow-line { flex: none; display: block; width: 32px; height: 1px; background: var(--cz-accent); }
.eyebrow.plain .eyebrow-line { display: none; }

.arrow-link, .link-row a {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 14px; font-weight: 300; letter-spacing: .025em; color: var(--cz-fg);
}
.arrow-link-text { border-bottom: 1px solid rgba(12, 12, 12, .3); padding-bottom: 4px; transition: color .15s var(--cz-ease), border-color .15s var(--cz-ease); }
.arrow { color: var(--cz-accent); transition: transform .3s var(--cz-ease); }
.arrow-link:hover .arrow-link-text { border-color: var(--cz-accent); color: var(--cz-accent); }
.arrow-link:hover .arrow { transform: translateX(4px); }
.link-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 40px; }

.cz-h2 { font-size: 36px; line-height: 1.05; }
@media (min-width: 640px) { .cz-h2 { font-size: 48px; } }
@media (min-width: 1024px) { .cz-h2 { font-size: 60px; line-height: 1.02; } }

.cz-lead { font-size: 16px; font-weight: 300; line-height: 1.625; color: var(--cz-muted); }
@media (min-width: 1024px) { .cz-lead { font-size: 19px; } }

.cz-body { font-size: 16px; font-weight: 300; line-height: 1.625; color: var(--cz-muted); }
.cz-body > * + * { margin-top: 20px; }
.cz-body a:not(.arrow-link) { color: var(--cz-fg); border-bottom: 1px solid rgba(12, 12, 12, .3); }
.cz-body a:not(.arrow-link):hover { color: var(--cz-accent); border-color: var(--cz-accent); }
.cz-body ul, .cz-body ol { padding-left: 1.2em; }
.cz-body h3 { font-size: 24px; color: var(--cz-fg); margin-top: 32px; }
.cz-body .link-row { margin-top: 32px; }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Header ---------- */
.cz-header { position: sticky; top: 0; z-index: 50; background: var(--cz-bg); border-bottom: 1px solid rgba(220, 220, 220, .6); }
.cz-header-inner { display: flex; align-items: center; justify-content: space-between; height: 80px; }
@media (min-width: 768px) { .cz-header-inner { height: 96px; } }
.cz-logo { display: block; flex: none; }
.cz-logo img { display: block; width: 190px; height: auto; transform: translateX(-1.53%); }
@media (min-width: 640px) { .cz-logo img { width: 238px; } }
@media (min-width: 768px) { .cz-logo img { width: 290px; } }
@media (min-width: 1024px) { .cz-logo img { width: 326px; } }

.cz-nav ul { list-style: none; margin: 0; padding: 0; }
.cz-nav a {
    position: relative; display: inline-block;
    font-size: 20px; line-height: 20px; font-weight: 300; letter-spacing: .025em; color: rgba(12, 12, 12, .8);
    transition: color .15s var(--cz-ease);
}
.cz-nav a::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 0; height: 1px; background: var(--cz-accent); transition: width .3s var(--cz-ease); }
.cz-nav a:hover, .cz-nav a.active { color: var(--cz-fg); }
.cz-nav a:hover::after, .cz-nav a.active::after { width: 100%; }
.cz-nav-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-right: -10px; background: none; border: 0; color: var(--cz-fg); }
.cz-nav-toggle svg { width: 24px; height: 24px; }
.cz-nav-toggle .icon-close { display: none; }
.cz-nav-open .cz-nav-toggle .icon-open { display: none; }
.cz-nav-open .cz-nav-toggle .icon-close { display: block; }

@media (min-width: 1024px) {
    .cz-nav ul { display: flex; align-items: center; gap: 36px; }
    .cz-nav-toggle { display: none; }
}
@media (max-width: 1023.98px) {
    .cz-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--cz-bg); border-bottom: 1px solid var(--cz-border); }
    .cz-nav-open .cz-nav { display: block; }
    .cz-nav ul { padding: 8px var(--cz-pad) 24px; }
    .cz-nav li { border-top: 1px solid var(--cz-border); }
    .cz-nav li:first-child { border-top: 0; }
    .cz-nav a { display: block; padding: 16px 0; font-size: 22px; }
    .cz-nav a::after { display: none; }
}

/* ---------- Footer ---------- */
.cz-footer { border-top: 1px solid var(--cz-border); padding: 40px 0; }
@media (min-width: 1024px) { .cz-footer { padding: 56px 0; } }
.cz-footer-grid { display: grid; grid-template-columns: 1fr; gap: 48px; }
.cz-footer-brand { display: flex; flex-direction: column; align-items: flex-start; }
.cz-footer-brand img { width: 272px; height: auto; }
.cz-footer address { margin: 24px 0 0; font-size: 14px; font-weight: 300; line-height: 1.625; color: var(--cz-muted); }
.cz-footer-mail { margin-top: 32px; display: inline-flex; align-items: baseline; gap: 8px; font-size: 16px; font-weight: 300; }
.cz-footer-mail .arrow-link-text { border-color: var(--cz-border); padding-bottom: 2px; }
.cz-footer-col-title { font-size: 12px; font-weight: 300; letter-spacing: .25em; text-transform: uppercase; color: var(--cz-muted); }
.cz-footer-col ul { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.cz-footer-col a { font-size: 14px; font-weight: 300; color: rgba(12, 12, 12, .8); transition: color .15s var(--cz-ease); }
.cz-footer-col a:hover, .cz-footer-bottom a:hover { color: var(--cz-accent); }
.cz-footer-bottom { margin-top: 64px; padding-top: 32px; border-top: 1px solid var(--cz-border); display: flex; flex-direction: column; gap: 8px; font-size: 12px; font-weight: 300; letter-spacing: .025em; color: var(--cz-muted); }
.cz-footer-bottom-left { display: flex; flex-direction: column; gap: 8px; }
.cz-footer-bottom ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; }
@media (min-width: 640px) {
    .cz-footer-brand img { width: 290px; }
    .cz-footer-bottom { flex-direction: row; align-items: center; justify-content: space-between; }
    .cz-footer-bottom-left { flex-direction: row; align-items: center; gap: 24px; }
}
@media (min-width: 768px) {
    .cz-footer-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; }
    .cz-footer-nav { order: 1; grid-column: span 3; }
    .cz-footer-connect { order: 2; grid-column: span 3; }
    .cz-footer-brand { order: 3; grid-column: 8 / span 5; align-items: flex-end; text-align: right; }
}
@media (min-width: 1024px) { .cz-footer-brand img { width: 326px; } }

/* ---------- Page sections (line breaks) ---------- */
.cz-section { border-bottom: 1px solid var(--cz-border); padding: 40px 0; }
@media (min-width: 1024px) { .cz-section { padding: 56px 0; } }
.cz-section:last-child, .cz-section.borderless { border-bottom: 0; }
.cz-section.tight { padding: 32px 0; }
@media (min-width: 1024px) { .cz-section.tight { padding: 40px 0; } }
.cz-section.flush { padding: 0; }
.cz-section.flush .container { padding-left: 0; padding-right: 0; }
.cz-section.flush .container > .row { margin-left: 0; margin-right: 0; }
.cz-section.flush .container > .row > * { padding-left: 0; padding-right: 0; }
.cz-section.dark { background: var(--cz-fg); color: var(--cz-bg); border-left: 2px solid var(--cz-accent); border-bottom: 0; }
.cz-section-fluid > .row { margin: 0; }
.cz-section-fluid > .row > * { padding: 0; }
.cz-section .row { row-gap: 0; }

/* ---------- Page header (subpages) ---------- */
.cz-page-head h1 { margin-top: 24px; font-size: 36px; line-height: 1.05; }
@media (min-width: 640px) { .cz-page-head h1 { font-size: 48px; } }
.cz-page-head.small { border-bottom: 0 !important; padding-bottom: 0 !important; }
.cz-page-head.big .cz-page-head-grid { display: grid; grid-template-columns: 1fr; gap: 32px; margin-top: 24px; }
.cz-page-head.big h1 { margin-top: 0; font-size: 48px; line-height: 1.02; text-wrap: balance; }
.cz-page-head.big .eyebrow + h1 { margin-top: 24px; }
.cz-page-head.big.short h1 { font-size: 60px; }
.cz-page-head.big .cz-lead { max-width: 448px; }
@media (min-width: 640px) {
    .cz-page-head.big h1 { font-size: 60px; }
    .cz-page-head.big.short h1 { font-size: 72px; }
}
@media (min-width: 1024px) {
    .cz-page-head.big .cz-page-head-grid { grid-template-columns: 7fr 5fr; align-items: end; gap: 40px; }
    .cz-page-head.big h1 { font-size: 72px; }
    .cz-page-head.big.short h1 { font-size: 96px; }
    .cz-page-head.big .cz-lead { justify-self: end; }
}

/* ---------- Box: hero ---------- */
.cz-hero { position: relative; overflow: hidden; padding-bottom: 40px; }
.cz-hero-inner { position: relative; z-index: 1; max-width: 1600px; margin: 0 auto; padding: 0 var(--cz-pad); }
.cz-hero-rule { height: 40px; border-bottom: 1px solid var(--cz-border); }
.cz-hero-text { display: flex; flex-direction: column; justify-content: center; padding: 20px 0 56px; }
.cz-hero .eyebrow.hero-eyebrow { display: none; margin-bottom: 32px; }
.cz-hero h1 { font-size: clamp(2.25rem, 11.5vw, 3.5rem); line-height: .98; letter-spacing: -.03em; text-wrap: balance; }
.cz-hero-body { margin-top: 32px; }
.cz-hero-body > p:not(.link-row) { max-width: 448px; font-size: 16px; font-weight: 300; line-height: 1.625; color: var(--cz-muted); }
.cz-hero-body .link-row { margin-top: 40px; }
.cz-hero-body .link-row a + a .arrow-link-text { border-bottom-color: transparent; color: var(--cz-muted); }
.cz-hero-media { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--cz-fg); }
.cz-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 30% center; }
.cz-hero-media::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 16px; background: var(--cz-accent); clip-path: polygon(0 0, 100% 0, 100% 45%, 0 100%); }
.cz-hero-frame { display: none; }
@media (min-width: 640px) {
    .cz-hero h1 { font-size: 60px; }
    .cz-hero-media { aspect-ratio: 16 / 10; }
}
@media (min-width: 768px) {
    .cz-hero-rule { height: 82px; }
    .cz-hero-text { padding-top: 40px; }
}
@media (min-width: 1024px) {
    .cz-hero-rule { height: 97px; width: 48%; padding-right: 64px; }
    .cz-hero-text { width: 48%; min-height: 74vh; padding: 64px 64px 0 0; }
    .cz-hero .eyebrow.hero-eyebrow { display: flex; }
    .cz-hero h1 { font-size: 76px; }
    .cz-hero-body { margin-top: 40px; }
    .cz-hero-body > p:not(.link-row) { font-size: 19px; }
    .cz-hero-body .link-row { margin-top: 48px; }
    .cz-hero.has-image .cz-hero-media { position: absolute; top: 0; right: 0; bottom: 40px; width: 53%; aspect-ratio: auto; background: none; clip-path: polygon(6% 0, 100% 0, 100% 100%, 1% 100%); }
    .cz-hero-media::after { display: none; }
    .cz-hero.has-image .cz-hero-frame { display: block; position: absolute; top: 0; right: 0; bottom: 40px; width: 53%; pointer-events: none; }
    .cz-hero-frame::before, .cz-hero-frame::after { content: ""; position: absolute; inset: 0; }
    .cz-hero-frame::before { background: rgba(217, 83, 30, .1); clip-path: polygon(4.4% 0, 6% 0, 1% 100%, -.6% 100%); }
    .cz-hero-frame::after { background: var(--cz-accent); clip-path: polygon(6% 0, 6.4% 0, 1.4% 100%, 1% 100%); }
}
@media (min-width: 1280px) { .cz-hero h1 { font-size: 88px; } }

/* Text-only hero (about page): the page's H1 with lead and an optional quote. */
.cz-hero.no-image { overflow: visible; padding: 0; }
.cz-hero.no-image .cz-hero-inner { max-width: none; padding: 0; }
.cz-hero.no-image .cz-hero-text { width: auto; min-height: 0; padding: 0; }
.cz-hero.no-image .eyebrow.hero-eyebrow { display: flex; margin-bottom: 32px; }
.cz-hero.no-image h1 { max-width: 672px; font-size: 36px; line-height: 1.02; letter-spacing: -.025em; }
.cz-hero.no-image .cz-hero-body { margin-top: 40px; }
.cz-hero.no-image .cz-hero-body > p:not(.link-row) { max-width: 680px; font-size: 18px; color: rgba(12, 12, 12, .7); }
@media (min-width: 640px) { .cz-hero.no-image h1 { font-size: 48px; } }
@media (min-width: 1024px) {
    .cz-hero.no-image { padding-right: 24px; }
    .cz-hero.no-image h1 { font-size: 52.8px; }
    .cz-hero.no-image .cz-hero-body > p:not(.link-row) { max-width: calc(18% + 680px); font-size: 20px; }
}
.cz-hero blockquote, .cz-body blockquote { margin: 48px 0 0; max-width: 680px; padding-top: 32px; border-top: 1px solid var(--cz-border); }
.cz-hero blockquote .eyebrow, .cz-body blockquote .eyebrow { color: var(--cz-muted); }
.cz-hero blockquote .eyebrow-line, .cz-body blockquote .eyebrow-line { display: none; }
.cz-hero blockquote p:not(.eyebrow), .cz-body blockquote p:not(.eyebrow) { margin-top: 20px; max-width: none !important; font-family: var(--cz-serif); font-size: 18px !important; line-height: 1.375; letter-spacing: -.025em; color: rgba(12, 12, 12, .75) !important; }
.cz-hero blockquote p:last-child:not(:first-child), .cz-body blockquote p:last-child:not(:first-child) { margin-top: 24px; font-family: var(--cz-sans); font-size: 14px !important; letter-spacing: .025em; color: var(--cz-muted) !important; }
@media (min-width: 1024px) {
    .cz-hero blockquote, .cz-body blockquote { margin-left: 18%; }
    .cz-hero blockquote p:not(.eyebrow) { font-size: 20px !important; }
}

/* ---------- Box: section head ---------- */
.cz-head { display: grid; grid-template-columns: 1fr; gap: 24px; margin-bottom: 48px; }
.cz-head h2 { margin-top: 16px; }
.cz-head .eyebrow + h2 { margin-top: 24px; }
.cz-head-side { align-self: start; }
@media (min-width: 640px) {
    .cz-head.with-link { grid-template-columns: 1fr auto; align-items: end; }
    .cz-head.with-link .cz-head-side { align-self: end; }
}
@media (min-width: 1024px) {
    .cz-head { margin-bottom: 64px; }
    .cz-head.with-lead { grid-template-columns: 7fr 5fr; align-items: end; gap: 40px; margin-bottom: 72px; }
    .cz-head.with-lead h2 { white-space: nowrap; }
    .cz-head.with-lead .cz-lead { width: calc(100% + 136px); transform: translateX(-136px); }
}
.cz-head.no-margin { margin-bottom: 0; }

/* ---------- Box: label left ---------- */
.cz-label-left { display: grid; grid-template-columns: 1fr; gap: 24px; }
.cz-label-left .cz-body { font-size: 16px; }
.cz-label-left.big .cz-body p { font-family: var(--cz-serif); font-size: 22.4px; line-height: 1.375; letter-spacing: -.025em; color: var(--cz-fg); }
@media (min-width: 1024px) {
    .cz-label-left { grid-template-columns: auto 1fr; gap: 48px; }
    .cz-label-left .cz-body { font-size: 19px; }
    .cz-label-left.big { grid-template-columns: 3fr 9fr; gap: 40px; }
    .cz-label-left.big .cz-body p { font-size: 24px; line-height: 1.35; }
}

/* ---------- Box: items (rows, columns, timeline) ---------- */
.cz-items-head { margin-bottom: 40px; }
.cz-items-list { list-style: none; margin: 0; padding: 0; counter-reset: cz-item; }
.cz-item { counter-increment: cz-item; position: relative; }
.cz-item h3 { color: var(--cz-fg); }
.cz-item-kicker, .cz-items.numbered .cz-item::before { display: block; font-family: var(--cz-mono); font-size: 12px; letter-spacing: .05em; font-variant-numeric: tabular-nums; color: var(--cz-accent); }
.cz-items.numbered .cz-item::before { content: counter(cz-item, decimal-leading-zero); font-size: 11px; margin-bottom: 12px; }
.cz-item-body { margin-top: 12px; font-size: 14px; font-weight: 300; line-height: 1.625; color: var(--cz-muted); }
.cz-item-body > * + * { margin-top: 8px; }

/* rows: title left, text right (home "What we do") */
.cz-items.rows .cz-item { display: grid; grid-template-columns: 1fr; gap: 8px; border-top: 1px solid var(--cz-border); padding: 28px 0; }
.cz-items.rows .cz-item:last-child { padding-bottom: 0; }
.cz-items.rows .cz-item h3 { font-size: 24px; font-weight: 400; line-height: 1.25; transition: color .15s var(--cz-ease); }
.cz-items.rows .cz-item:hover h3 { color: var(--cz-accent); }
.cz-items.rows .cz-item-body { margin-top: 0; font-size: 16px; }
@media (min-width: 640px) { .cz-items.rows .cz-item { grid-template-columns: 5fr 7fr; gap: 32px; } }
@media (min-width: 1024px) {
    .cz-items.rows .cz-item { padding: 36px 0; }
    .cz-items.rows .cz-item:last-child { padding-bottom: 0; }
    .cz-items.rows .cz-item h3 { font-size: 30px; }
}

/* columns */
.cz-items[class*="cols-"] .cz-items-list { display: grid; grid-template-columns: 1fr; column-gap: 40px; }
.cz-items[class*="cols-"] .cz-item { border-top: 1px solid var(--cz-border); padding: 24px 0 32px; }
.cz-items[class*="cols-"] .cz-item h3 { font-size: 20px; line-height: 1.25; }
@media (min-width: 640px) { .cz-items[class*="cols-"] .cz-items-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
    .cz-items.cols-3 .cz-items-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cz-items.cols-4 .cz-items-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .cz-items.cols-5 .cz-items-list { grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: 0; }
    .cz-items[class*="cols-"] .cz-item { padding-bottom: 0; }
}
.cz-items.numbered .cz-item { padding-top: 24px; }
.cz-items.numbered .cz-item h3 { font-size: 30px; line-height: 1.15; }
.cz-items.numbered .cz-item-body { font-size: 16px; }
@media (max-width: 1023.98px) { .cz-items.numbered .cz-item h3 { font-size: 26px; } }

/* timeline: dot on the top rule, kicker = year */
.cz-items.timeline .cz-item { padding-right: 32px; }
.cz-items.timeline .cz-item::after { content: ""; position: absolute; top: -3px; left: 0; width: 5px; height: 5px; border-radius: 50%; background: var(--cz-accent); }
.cz-items.timeline .cz-item h3 { margin-top: 12px; }
.cz-items.timeline .cz-item-body { margin-top: 12px; }

/* labels: the h3 is a small grey label (contact columns) */
.cz-items.labels .cz-item { padding-top: 40px; }
.cz-items.labels .cz-items-list { column-gap: 40px; }
.cz-items.labels .cz-item h3 { font-family: var(--cz-sans); font-size: 12px; font-weight: 300; line-height: 1.33; letter-spacing: .3em; text-transform: uppercase; color: var(--cz-muted); }
.cz-items.labels .cz-item-body { margin-top: 20px; font-size: 16px; }
.cz-items.labels .cz-item-body .link-row { margin-top: 12px; }
.cz-items.labels .cz-item-body a { font-size: 16px; }
.cz-items.labels .cz-item-body .arrow-link-text { border-color: var(--cz-border); padding-bottom: 2px; }
.cz-items.labels .cz-items-list { border-top: 1px solid var(--cz-border); }
.cz-items.labels .cz-item { border-top: 0 !important; }

/* kicker as a small grey label above a big title (partners) */
.cz-items.partners .cz-item-kicker { font-family: var(--cz-sans); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--cz-muted); }
.cz-items.partners .cz-item h3 { margin-top: 16px; font-size: 24px; font-weight: 300; }
.cz-items.partners .cz-item-body { font-size: 13px; }

/* label left of the list */
@media (min-width: 1024px) {
    .cz-items.label-left { display: grid; grid-template-columns: 4fr 8fr; gap: 64px; }
    .cz-items.label-left.cols-3 { grid-template-columns: 3fr 9fr; gap: 40px; }
    .cz-items.label-left .cz-items-head { margin-bottom: 0; }
}

/* ---------- Box: feature (image + text) ---------- */
.cz-feature { display: flex; flex-direction: column; gap: 48px; }
.cz-feature-media { position: relative; }
.cz-feature-media .main-image, .cz-feature-media .image-holder { height: 100%; }
.cz-feature-media img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5; }
.cz-feature-text { display: flex; flex-direction: column; min-width: 0; }
.cz-feature-text h2 { margin-top: 24px; font-size: 36px; line-height: 1.05; text-wrap: balance; }
.cz-feature-text .cz-body { margin-top: 32px; max-width: 560px; }
.cz-feature-text .cz-body .link-row { margin-top: 40px; }
@media (min-width: 640px) { .cz-feature-text h2 { font-size: 48px; } }
@media (min-width: 1024px) {
    .cz-feature { flex-direction: row; align-items: flex-start; gap: 96px; }
    .cz-feature.img-left { flex-direction: row; }
    .cz-feature.img-right { flex-direction: row-reverse; }
    .cz-feature-media { width: 50%; flex: none; }
    .cz-feature-text { flex: 1; }
}
/* slanted: full-bleed tall image with an accent line on its slanted edge (home "network") */
.cz-feature.slanted { gap: 0; }
.cz-feature.slanted .cz-feature-media { order: 2; min-height: 340px; }
.cz-feature.slanted .cz-feature-media img { position: absolute; inset: 0; aspect-ratio: auto; }
.cz-feature.slanted .cz-feature-text { order: 1; justify-content: center; padding: 40px var(--cz-pad); }
.cz-feature.slanted .cz-feature-text .cz-body { max-width: 448px; }
@media (min-width: 1024px) {
    .cz-feature.slanted { align-items: stretch; }
    .cz-feature.slanted .cz-feature-media { order: 1; width: calc(7 / 12 * 100%); min-height: 620px; }
    .cz-feature.slanted .cz-feature-media .main-image { position: absolute; inset: 0; overflow: hidden; clip-path: polygon(0 0, 100% 0, 94% 100%, 0 100%); }
    .cz-feature.slanted .cz-feature-media::after { content: ""; position: absolute; top: 0; bottom: 0; right: 0; width: 16%; background: var(--cz-accent); clip-path: polygon(37.5% 0, 39.5% 0, 2% 100%, 0 100%); }
    .cz-feature.slanted.img-right .cz-feature-media { order: 2; }
    .cz-feature.slanted .cz-feature-text { order: 2; padding: 56px 64px 56px 16px; }
    .cz-feature.slanted.img-right .cz-feature-text { order: 1; padding: 56px 16px 56px 64px; }
}

/* ---------- Box: person ---------- */
.cz-person { width: 66.67%; margin-left: auto; }
.cz-person img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 18%; filter: grayscale(1); background: var(--cz-secondary); }
.cz-person-name { margin-top: 20px; font-family: var(--cz-serif); font-size: 18px; font-weight: 300; letter-spacing: -.025em; }
.cz-person-body { margin-top: 4px; }
.cz-person-body p:not(.link-row) { font-size: 12px; font-weight: 300; letter-spacing: .2em; text-transform: uppercase; color: var(--cz-muted); }
.cz-person-body .link-row { margin-top: 8px; }
.cz-person-body .link-row a { color: var(--cz-muted); }
.cz-person-body .link-row .arrow-link-text { border: 0; padding: 0; }
@media (min-width: 640px) { .cz-person { width: 50%; } }
@media (min-width: 1024px) { .cz-person { width: 100%; max-width: 380px; margin-top: 56px; } }

/* ---------- Box: call to action (dark band) ---------- */
.cz-cta { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: end; }
.cz-cta h2 { margin-top: 24px; font-size: 36px; line-height: 1.05; color: var(--cz-bg); text-wrap: balance; }
.cz-cta-side { font-size: 16px; font-weight: 300; line-height: 1.625; color: #a1a1a1; }
.cz-cta-side > * + * { margin-top: 24px; }
.cz-cta-side .link-row a { font-family: var(--cz-serif); font-size: 24px; letter-spacing: -.025em; color: var(--cz-bg); }
.cz-cta-side .arrow-link-text { border: 0; padding: 0; }
.cz-cta-side .link-row a:hover .arrow-link-text { color: var(--cz-accent); }
@media (min-width: 640px) { .cz-cta h2 { font-size: 48px; } }
@media (min-width: 1024px) {
    .cz-cta { grid-template-columns: 7fr 5fr; gap: 40px; }
    .cz-cta h2 { font-size: 60px; }
    .cz-cta-side { justify-self: end; max-width: 380px; }
    .cz-cta-side .link-row a { font-size: 30px; }
    .cz-cta.email-only .cz-cta-side { max-width: none; }
}

/* ---------- Default box, tables (legal notice) ---------- */
.cz-box h2 { font-size: 36px; line-height: 1.05; margin-top: 24px; }
.cz-box .eyebrow + h2 { margin-top: 24px; }
.cz-box h2 + .cz-body { margin-top: 32px; }
.cz-box .cz-body table { width: 100%; max-width: 768px; border-collapse: collapse; border-top: 1px solid var(--cz-border); font-size: 14px; font-weight: 300; }
.cz-box .cz-body tr { border-bottom: 1px solid var(--cz-border); }
.cz-box .cz-body td, .cz-box .cz-body th { padding: 12px 0; vertical-align: top; text-align: left; font-weight: 300; }
.cz-box .cz-body td:first-child, .cz-box .cz-body th { width: 14rem; padding-right: 24px; color: var(--cz-muted); }
.cz-box .cz-body td + td { color: var(--cz-fg); }
@media (max-width: 639.98px) {
    .cz-box .cz-body tr, .cz-box .cz-body td { display: block; width: auto !important; }
    .cz-box .cz-body td:first-child { padding-bottom: 2px; }
    .cz-box .cz-body td + td { padding-top: 0; }
}
.cz-box .main-image { margin-bottom: 32px; }

/* ---------- Form (TSForms) ---------- */
.cz-section .box form { max-width: 768px; }
.cz-section .box form h2 { font-size: 36px; margin-bottom: 24px; }
.cz-section .box .fields { display: grid; grid-template-columns: 1fr; gap: 20px; }
.cz-section .box .form-control, .cz-section .box .form-select {
    border: 0; border-bottom: 1px solid var(--cz-border); border-radius: 0; background: transparent;
    padding-left: 0; padding-right: 0; font-weight: 300; color: var(--cz-fg); box-shadow: none;
}
.cz-section .box .form-control:focus, .cz-section .box .form-select:focus { border-color: var(--cz-accent); box-shadow: none; background: transparent; }
.cz-section .box .form-floating > label { padding-left: 0; padding-right: 0; font-size: 14px; font-weight: 300; color: var(--cz-muted); }
.cz-section .box .form-floating > .form-control:focus ~ label::after,
.cz-section .box .form-floating > .form-control:not(:placeholder-shown) ~ label::after { background: transparent; }
.cz-section .box textarea.form-control { min-height: 160px; }
.cz-section .box .form-check-label { font-size: 14px; font-weight: 300; color: var(--cz-muted); }
.cz-section .box .form-check-label a { color: var(--cz-fg); border-bottom: 1px solid rgba(12, 12, 12, .3); }
.cz-section .box .form-check-input:checked { background-color: var(--cz-accent); border-color: var(--cz-accent); }
.cz-section .box .button-holder { margin-top: 8px; }
.cz-section .box .button-holder .btn, .cz-section .box button[type="submit"] {
    display: inline-flex; align-items: center; gap: 8px; padding: 12px 28px; border: 1px solid var(--cz-fg); border-radius: 0;
    background: var(--cz-fg); color: var(--cz-bg); font-size: 14px; font-weight: 300; letter-spacing: .025em;
}
.cz-section .box .button-holder .btn:hover, .cz-section .box button[type="submit"]:hover { background: var(--cz-accent); border-color: var(--cz-accent); color: #fff; }
.cz-section .box .invalid-feedback, .cz-section .box .error-message { font-size: 13px; color: #b42318; }
@media (min-width: 768px) { .cz-section .box .fields { grid-template-columns: 1fr 1fr; column-gap: 32px; } .cz-section .box .fields > .form-control-group-textarea, .cz-section .box .fields > .textarea, .cz-section .box .fields > .form-check, .cz-section .box .fields > .checkbox, .cz-section .box .fields > .button-holder { grid-column: 1 / -1; } }

/* ---------- Gallery lists: artists ---------- */
.cz-artists { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 20px; }
@media (min-width: 1024px) { .cz-artists { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 32px; } }
.cz-artist-card { display: block; }
.cz-artist-card-media { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--cz-secondary); }
.cz-artist-card-media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.35); transition: transform .7s cubic-bezier(0, 0, .2, 1), filter .7s cubic-bezier(0, 0, .2, 1); }
.cz-artist-card:hover .cz-artist-card-media img { transform: scale(1.03); filter: grayscale(0); }
.cz-artist-card-meta { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--cz-border); display: flex; flex-direction: column; gap: 6px; transition: border-color .15s var(--cz-ease); }
.cz-artist-card:hover .cz-artist-card-meta { border-color: var(--cz-accent); }
.cz-artist-card-name { display: flex; align-items: baseline; gap: 8px; min-width: 0; font-family: var(--cz-serif); font-size: 18px; font-weight: 400; line-height: 1.25; overflow-wrap: break-word; }
.cz-artist-card-name .last { color: var(--cz-accent); }
.cz-artist-card-name .go { color: var(--cz-accent); opacity: 0; transform: translateX(-4px); transition: all .3s var(--cz-ease); }
.cz-artist-card:hover .cz-artist-card-name .go { opacity: 1; transform: none; }
.cz-artist-card-role { font-size: 10.4px; font-weight: 300; letter-spacing: .15em; text-transform: uppercase; color: var(--cz-muted); }
@media (min-width: 768px) {
    .cz-artist-card-meta { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 12px; }
    .cz-artist-card-name { font-size: 20px; }
    .cz-artist-card-role { flex: none; font-size: 12px; }
}
@media (min-width: 1024px) { .cz-artist-card-name { font-size: 24px; } }

/* staggered list page variant */
.cz-artists.staggered { grid-template-columns: 1fr; gap: 56px; }
.cz-artists.staggered .cz-artist-card-meta { display: block; border: 0; margin-top: 12px; padding: 0 4px; }
.cz-artists.staggered .cz-artist-card-name { display: block; font-family: var(--cz-sans); font-size: 40px; font-weight: 300; line-height: 1.12; letter-spacing: -.01em; }
.cz-artists.staggered .cz-artist-card-name span { display: block; }
.cz-artists.staggered .cz-artist-card-role { display: block; margin-top: 16px; }
.cz-artists.staggered .cz-artist-card-media img { filter: grayscale(1); }
.cz-artists.staggered .cz-artist-card:hover .cz-artist-card-media img { filter: grayscale(0); }
@media (min-width: 640px) { .cz-artists.staggered { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px 40px; } }
@media (min-width: 1024px) {
    .cz-artists.staggered { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 64px; padding: 0 70px; }
    .cz-artists.staggered li { padding-bottom: 80px; }
    .cz-artists.staggered li:nth-child(3n+2) { margin-top: 80px; }
    .cz-artists.staggered li:nth-child(3n) { margin-top: 40px; }
    .cz-artists.staggered .cz-artist-card-name { font-size: 40px; }
}

/* ---------- Gallery lists: projects ---------- */
.cz-project-meta { display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 400; letter-spacing: .12em; text-transform: uppercase; color: var(--cz-accent); }
.cz-project-meta > span { display: flex; align-items: center; gap: 12px; white-space: nowrap; }
.cz-project-meta .num { font-family: var(--cz-mono); font-variant-numeric: tabular-nums; }
.cz-project-meta .line { display: block; width: 32px; height: 1px; background: var(--cz-accent); }
.cz-project-meta .period { color: var(--cz-muted); }
.cz-project-meta .dot { display: none; }
@media (min-width: 768px) {
    .cz-project-meta { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 12px; letter-spacing: .2em; }
    .cz-project-meta .line { width: 24px; }
    .cz-project-meta .dot { display: inline; }
}
.cz-project-media { position: relative; }
.cz-project-media-frame { position: relative; overflow: hidden; background: var(--cz-secondary); aspect-ratio: 9 / 5; }
.cz-project-media-frame img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(0, 0, .2, 1); }
a:hover .cz-project-media-frame img { transform: scale(1.05); }
.cz-project-media .slant-line { display: none; position: absolute; top: 0; bottom: 0; width: 10%; background: var(--cz-accent); clip-path: polygon(58% 0, 60% 0, 2% 100%, 0 100%); }
.cz-project-title { margin-top: 16px; font-size: 30px; line-height: 1.25; text-wrap: balance; transition: color .15s var(--cz-ease); }
a:hover .cz-project-title { color: var(--cz-accent); }
.cz-project-summary { margin-top: 20px; max-width: 448px; font-size: 16px; font-weight: 300; line-height: 1.625; color: var(--cz-muted); }
.cz-project-more { margin-top: 28px; }
@media (min-width: 640px) { .cz-project-title { font-size: 36px; } }
@media (min-width: 1024px) {
    .cz-project-title { font-size: 48px; line-height: 1.1; }
    .cz-project-media.slanted .cz-project-media-frame { aspect-ratio: 16 / 9; }
    .cz-project-media.slanted.side-left .cz-project-media-frame { clip-path: polygon(6% 0, 100% 0, 100% 100%, 0 100%); }
    .cz-project-media.slanted.side-right .cz-project-media-frame { clip-path: polygon(0 0, 100% 0, 94% 100%, 0 100%); }
    .cz-project-media.slanted .slant-line { display: block; }
    .cz-project-media.side-left .slant-line { left: 0; }
    .cz-project-media.side-right .slant-line { right: 0; }
}
@media (max-width: 1023.98px) { .cz-project-media.slanted .cz-project-media-frame { aspect-ratio: 16 / 10; } }

/* home rows */
.cz-project-rows { display: flex; flex-direction: column; }
.cz-project-row { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; border-top: 1px solid var(--cz-border); padding: 32px 0; }
@media (min-width: 1024px) {
    .cz-project-row { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 64px; padding: 48px 0; }
    .cz-project-row .cz-project-media { grid-column: span 7; }
    .cz-project-row .cz-project-text { grid-column: span 5; padding-left: 16px; }
    .cz-project-row.flip .cz-project-media { order: 2; }
    .cz-project-row.flip .cz-project-text { order: 1; padding: 0 16px 0 0; }
}
.cz-project-rows-foot { border-top: 1px solid var(--cz-border); padding-top: 40px; }
.cz-project-rows-foot a { display: inline-flex; align-items: center; gap: 12px; font-family: var(--cz-serif); font-size: 24px; font-weight: 300; letter-spacing: -.025em; transition: color .15s var(--cz-ease); }
.cz-project-rows-foot a:hover { color: var(--cz-accent); }
.cz-project-rows-foot a:hover .arrow { transform: translateX(8px); }
@media (min-width: 640px) { .cz-project-rows-foot a { font-size: 30px; } }

/* list page: featured first, then two staggered columns */
.cz-project-feature .cz-project-media-frame { aspect-ratio: 9 / 5; }
.cz-project-feature-text { display: grid; grid-template-columns: 1fr; gap: 20px; margin-top: 32px; }
.cz-project-feature .cz-project-title { font-size: 40px; }
@media (min-width: 1024px) {
    .cz-project-feature .cz-project-media { width: calc(100% - 110px); }
    .cz-project-feature-text { grid-template-columns: 1fr 412px; align-items: start; }
    .cz-project-feature .cz-project-title { font-size: 72px; line-height: 1; }
    .cz-project-feature .cz-project-summary { margin-top: 0; }
}
.cz-project-grid { list-style: none; margin: 72px 0 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 64px; }
.cz-project-card .cz-project-text { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--cz-border); }
.cz-project-card .cz-project-title { margin-top: 12px; font-size: 32px; }
.cz-project-card .cz-project-media-frame { aspect-ratio: 16 / 10; }
.cz-project-card:nth-child(4n+1) .cz-project-media-frame { aspect-ratio: 4 / 5; }
@media (min-width: 1024px) {
    .cz-project-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 40px; row-gap: 0; }
    .cz-project-card { grid-column: span 5; padding-bottom: 96px; }
    .cz-project-card:nth-child(even) { grid-column: 7 / span 6; margin-top: 192px; }
    .cz-project-card .cz-project-title { font-size: 36px; }
}

/* ---------- Gallery entry page (artist, project) ---------- */
.cz-entry-back { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 300; letter-spacing: .025em; color: var(--cz-muted); transition: color .15s var(--cz-ease); }
.cz-entry-back:hover { color: var(--cz-fg); }
.cz-entry-back svg { width: 14px; height: 14px; }
.cz-dark .cz-entry-back { color: #a1a1a1; }
.cz-dark .cz-entry-back:hover { color: var(--cz-bg); }

.cz-artist-hero { display: grid; grid-template-columns: 1fr; gap: 32px; }
.cz-artist-hero-media { aspect-ratio: 6 / 7; overflow: hidden; background: var(--cz-secondary); }
.cz-artist-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.cz-artist-hero-text .cz-entry-back { margin-bottom: 40px; }
.cz-artist-role { margin-bottom: 20px; font-size: 12px; font-weight: 300; line-height: 1; letter-spacing: .3em; text-transform: uppercase; color: var(--cz-muted); }
.cz-artist-hero h1 { font-family: var(--cz-sans); font-size: 46.4px; font-weight: 300; line-height: .9; letter-spacing: -.02em; }
.cz-artist-hero h1 span { display: block; }
.cz-artist-hero h1 .last { margin-top: 12px; color: var(--cz-accent); }
.cz-artist-intro { margin-top: 32px; max-width: 480px; font-size: 20px; font-weight: 300; line-height: 1.625; color: rgba(12, 12, 12, .75); }
.cz-artist-hero-text .arrow-link { margin-top: 32px; }
@media (min-width: 640px) { .cz-artist-hero h1 { font-size: 60.8px; } }
@media (min-width: 1024px) {
    .cz-artist-hero { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 40px; }
    .cz-artist-hero-media { grid-column: 7 / span 6; grid-row: 1; }
    .cz-artist-hero-text { grid-column: 1 / span 6; grid-row: 1; margin-right: -40px; align-self: start; }
    .cz-artist-hero h1 { font-size: 81.6px; }
    .cz-artist-hero h1 .last { margin-top: 16px; }
}

.cz-entry-section { display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 1024px) {
    .cz-entry-section { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px; }
    .cz-entry-section > .cz-entry-label { grid-column: span 3; }
    .cz-entry-section > .cz-entry-content { grid-column: 4 / span 9; }
    .cz-entry-section.full > .cz-entry-label { grid-column: 1 / -1; }
    .cz-entry-section.full > .cz-entry-content { grid-column: 1 / -1; }
}
.cz-entry-text { max-width: 800px; display: flex; flex-direction: column; gap: 24px; }
.cz-entry-text p { font-size: 18px; font-weight: 300; line-height: 1.7; color: rgba(12, 12, 12, .8); text-wrap: pretty; }
.cz-entry-text a { border-bottom: 1px solid rgba(12, 12, 12, .3); }
.cz-entry-list { list-style: none; margin: 0; padding: 0; max-width: calc(7 / 9 * 100%); border-top: 1px solid var(--cz-border); border-bottom: 1px solid var(--cz-border); }
.cz-entry-list li { padding: 16px 0; font-size: 16px; font-weight: 300; line-height: 1.625; }
.cz-entry-list li + li { border-top: 1px solid var(--cz-border); }
@media (max-width: 1023.98px) { .cz-entry-list { max-width: none; } }

.cz-videos { display: grid; grid-template-columns: 1fr; gap: 40px; }
.cz-video-frame { position: relative; aspect-ratio: 16 / 9; background: var(--cz-fg); }
.cz-video-frame iframe, .cz-video-frame .ts-youtube, .cz-video-frame > div { position: absolute; inset: 0; width: 100% !important; height: 100% !important; border: 0; }
.cz-video-caption { margin-top: 12px; font-size: 14px; font-weight: 300; color: var(--cz-muted); }
.cz-videos.single { max-width: 800px; }
@media (min-width: 1024px) { .cz-videos.multi { grid-template-columns: 1fr 1fr; column-gap: 40px; } }

.cz-downloads { display: grid; grid-template-columns: 1fr; gap: 16px; }
.cz-download { display: flex; align-items: center; gap: 20px; padding: 14px; border: 1px solid var(--cz-border); transition: border-color .15s var(--cz-ease); }
.cz-download:hover { border-color: var(--cz-accent); }
.cz-download-icon { flex: none; display: flex; align-items: center; justify-content: center; width: 64px; height: 80px; background: var(--cz-secondary); font-size: 11px; letter-spacing: .25em; text-transform: uppercase; color: var(--cz-muted); }
.cz-download-text { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cz-download-label { font-size: 16px; font-weight: 300; color: var(--cz-fg); overflow-wrap: anywhere; }
.cz-download-action { font-size: 11px; letter-spacing: .25em; text-transform: uppercase; color: var(--cz-muted); }
.cz-download:hover .cz-download-action { color: var(--cz-accent); }
@media (min-width: 768px) { .cz-downloads { grid-template-columns: 1fr 1fr; } }

.cz-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cz-gallery a { display: block; overflow: hidden; background: var(--cz-secondary); }
.cz-gallery img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5; transition: transform .7s cubic-bezier(0, 0, .2, 1); }
.cz-gallery .wide img { aspect-ratio: 3 / 2; }
.cz-gallery a:hover img { transform: scale(1.03); }
.cz-gallery-credit { margin-top: 16px; font-size: 12px; font-weight: 300; letter-spacing: .05em; color: var(--cz-muted); }
@media (min-width: 1024px) { .cz-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.cz-project-hero h1 { margin-top: 24px; font-size: 48px; line-height: 1.02; text-wrap: balance; }
.cz-project-hero .eyebrow { margin-top: 32px; }
.cz-project-hero-media { margin-top: 32px; }
.cz-project-hero-media .cz-project-media-frame { aspect-ratio: 9 / 5; }
.cz-project-intro { margin-top: 48px; font-family: var(--cz-serif); font-size: 30px; font-weight: 300; line-height: 1.375; letter-spacing: -.025em; }
.cz-project-intro em { color: var(--cz-accent); }
.cz-project-intro p + p { margin-top: 16px; }
@media (min-width: 640px) { .cz-project-hero h1 { font-size: 60px; } }
@media (min-width: 1024px) {
    .cz-project-hero h1 { font-size: 72px; }
    .cz-project-hero-media { margin-left: calc(1 / 12 * 100%); }
    .cz-project-intro { margin-left: calc(3 / 12 * 100% + 10px); max-width: calc(9 / 12 * 100%); font-size: 32px; line-height: 1.25; }
}
.cz-facts { margin: 0; border-bottom: 1px solid var(--cz-border); }
.cz-facts > div { display: grid; grid-template-columns: 1fr; gap: 4px; padding: 14px 0; border-top: 1px solid var(--cz-border); }
.cz-facts > div:first-child { border-top: 0; padding-top: 0; }
.cz-facts dt { font-size: 11px; font-weight: 400; letter-spacing: .25em; text-transform: uppercase; color: var(--cz-muted); }
.cz-facts dd { margin: 0; font-size: 16px; font-weight: 300; color: var(--cz-fg); }
.cz-facts dd .arrow-link { font-size: 16px; }
.cz-facts dd .arrow-link-text { padding-bottom: 2px; }
@media (min-width: 640px) {
    .cz-facts > div { grid-template-columns: 1fr auto; align-items: baseline; gap: 24px; }
    .cz-facts dd { text-align: right; }
}
.cz-logos { background: #fff; padding: 40px 24px; text-align: center; }
.cz-logos-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 24px 48px; }
.cz-logos-row img { max-height: 56px; max-width: 180px; width: auto; height: auto; }
.cz-logos-note { margin: 32px auto 0; max-width: 768px; font-size: 12px; font-weight: 300; line-height: 1.6; color: var(--cz-muted); }
.cz-next { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: center; }
.cz-next-label { font-size: 12px; font-weight: 300; letter-spacing: .3em; text-transform: uppercase; color: var(--cz-muted); }
.cz-next-title { display: inline-flex; align-items: center; gap: 16px; margin-top: 16px; font-family: var(--cz-serif); font-size: 36px; font-weight: 300; letter-spacing: -.025em; transition: color .15s var(--cz-ease); }
.cz-next a:hover .cz-next-title { color: var(--cz-accent); }
.cz-next a:hover .arrow { transform: translateX(6px); }
.cz-next-media { width: 240px; max-width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: var(--cz-secondary); }
.cz-next-media img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1024px) {
    .cz-next { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px; }
    .cz-next-text { grid-column: 4 / span 6; }
    .cz-next-media { grid-column: 10 / span 3; justify-self: end; }
}

/* dark entry CTA */
.cz-dark { background: var(--cz-fg); color: var(--cz-bg); border-left: 2px solid var(--cz-accent); padding: 40px 0; }
@media (min-width: 1024px) { .cz-dark { padding: 56px 0; } }
.cz-dark .cz-cta + .cz-dark-foot { margin-top: 56px; padding-top: 32px; border-top: 1px solid rgba(255, 255, 255, .1); }

/* ---------- Error page ---------- */
.cz-error { padding: 96px 0; }
.cz-error h1 { margin-top: 24px; font-size: 48px; line-height: 1.02; }
.cz-error p { margin-top: 24px; max-width: 520px; font-size: 18px; font-weight: 300; line-height: 1.625; color: var(--cz-muted); }
.cz-error .link-row { margin-top: 40px; }
@media (min-width: 1024px) { .cz-error h1 { font-size: 72px; } }

/* ---------- Motion ---------- */
@media (prefers-reduced-motion: no-preference) {
    .cz-rise { animation: cz-rise .9s cubic-bezier(.2, .7, .2, 1) both; }
    @keyframes cz-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
.cz-footer-tagline p { margin: 0; }

/* The menu cell renders Bootstrap's ul.nav.navbar-nav (a column); the theme lays it out itself. */
.cz-nav .navbar-nav, .cz-footer-bottom .navbar-nav { flex-direction: row; }
.cz-footer-col .navbar-nav { flex-direction: column; }
.cz-nav .nav { padding: 0; margin: 0; }
.cz-footer .nav { padding: 0; }
.cz-footer-col .navbar-nav { margin-top: 20px; gap: 12px; }
.cz-footer-bottom .navbar-nav { margin: 0; gap: 8px 24px; }

/* Box pictures come wrapped (.main-image > .image-holder > picture > img) with width/height attributes:
   the frames below set the ratio, the image fills them. */
.cz-hero-media .main-image, .cz-hero-media .image-holder, .cz-hero-media picture,
.cz-feature-media picture { display: block; height: 100%; }
.cz-hero-media img { height: 100%; }
.cz-person img, .cz-feature-media img, .cz-gallery img, .cz-artist-card-media img, .cz-project-media-frame img,
.cz-artist-hero-media img, .cz-next-media img { height: auto; }
.cz-artist-card-media img, .cz-project-media-frame img, .cz-artist-hero-media img, .cz-next-media img { height: 100%; }
@media (max-width: 1023.98px) { .cz-nav .navbar-nav { flex-direction: column; } }

/* Mobile menu: the ".cz-nav .nav { padding: 0 }" rule above wins over the dropdown padding, so the links
   touched the screen edge (Gyuri, 2026-11-11). Restore the side padding and lift the panel off the page. */
@media (max-width: 1023.98px) {
    .cz-nav .nav, .cz-nav ul { padding: 8px var(--cz-pad) 24px; }
    .cz-nav { box-shadow: 0 16px 24px -12px rgba(0, 0, 0, .12); }
}

/* Home hero: the thin rule above the heading is a desktop element; on phones and tablets it doubled the
   header's bottom border (Gyuri, 2026-11-11). */
@media (max-width: 1023.98px) {
    .cz-hero-rule { display: none; }
    .cz-hero-text { padding-top: 40px; }
}
