/* site.css - public Cornell Council for the Arts website.
   Copied to <site>/assets/site.css by every build. No framework, no jQuery. */

@font-face { font-family: "Barlow"; font-weight: 400; font-style: normal; font-display: swap; src: url("fonts/barlow-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Barlow"; font-weight: 500; font-style: normal; font-display: swap; src: url("fonts/barlow-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Barlow"; font-weight: 600; font-style: normal; font-display: swap; src: url("fonts/barlow-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Barlow"; font-weight: 700; font-style: normal; font-display: swap; src: url("fonts/barlow-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-weight: 600; font-style: normal; font-display: swap; src: url("fonts/montserrat-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Barlow"; font-weight: 300; font-style: normal; font-display: swap; src: url("fonts/barlow-latin-300-normal.woff2") format("woff2"); }
@font-face { font-family: "Roboto"; font-weight: 300; font-style: italic; font-display: swap; src: url("fonts/roboto-latin-300-italic.woff2") format("woff2"); }
@font-face { font-family: "Roboto"; font-weight: 300; font-style: normal; font-display: swap; src: url("fonts/roboto-latin-300-normal.woff2") format("woff2"); }
@font-face { font-family: "Roboto"; font-weight: 400; font-style: normal; font-display: swap; src: url("fonts/roboto-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Roboto"; font-weight: 400; font-style: italic; font-display: swap; src: url("fonts/roboto-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Roboto"; font-weight: 500; font-style: normal; font-display: swap; src: url("fonts/roboto-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Roboto"; font-weight: 700; font-style: normal; font-display: swap; src: url("fonts/roboto-latin-700-normal.woff2") format("woff2"); }

:root {
  --red: #b31b1b;
  --red-dark: #8f1515;
  --header-bg: var(--red);
  --ink: #0a0a0a;
  --head: #232323;
  --ink-2: #3d3d3d;
  --muted: #6b6b6b;
  --line: #e2e2e2;
  --paper: #ffffff;
  --paper-2: #f5f4f2;
  --black: #0d0d0d;
  --focus: #1f6feb;
  --success: #2f6f3e;
  --warning: #8a6116;
  --error: #a5191a;
  --info: #274f6e;
  --font-head: "Barlow", "Helvetica Neue", Arial, system-ui, sans-serif;
  --font-body: "Roboto", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --wrap: 1140px;
  --measure: 760px;
  --gutter: clamp(15px, 3vw, 30px);
  --font-btn: "Montserrat", "Barlow", Arial, sans-serif;
  --radius: 2px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 16px/24px var(--font-body); text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--red); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 1000; background: #fff; color: #000; padding: 10px 16px; font-weight: 700; }
.skip-link:focus { top: 12px; }
main:focus { outline: none; }
.wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }

h1, h2, h3, h4, h5, h6 { font-family: var(--font-head); font-weight: 600; line-height: 1.1; letter-spacing: 0; margin: 1.1em 0 20px; color: var(--head); }
h1 { font-size: clamp(2.3rem, 5vw, 3.75rem); }
h2 { font-size: clamp(2.1rem, 4.6vw, 3.4375rem); line-height: 1.09; }
h3 { font-size: clamp(1.9rem, 4vw, 3rem); line-height: 1.125; }
h4 { font-size: clamp(1.7rem, 3.4vw, 2.5rem); line-height: 1.15; font-weight: 500; }
h5 { font-size: clamp(1.45rem, 2.8vw, 2rem); line-height: 1.25; font-weight: 500; }
h6 { font-size: clamp(1.25rem, 2.2vw, 1.5625rem); line-height: 1.2; font-weight: 500; }
p { margin: 0 0 25px; }
.prose > :first-child, .col > :first-child, .group-inner > :first-child { margin-top: 0; }
.prose > :last-child { margin-bottom: 0; }
/* the last block in a column / section adds no space of its own */
.col > :last-child, .group-inner > :last-child, .content > .wrap > :last-child { margin-bottom: 0; }
/* a spacer IS the gap: the block before it adds nothing extra */
.content :has(+ .b-spacer) { margin-bottom: 0; }
.b-spacer + .b-heading { margin-top: 0; }
.prose ul, .prose ol { padding-left: 35px; margin: 0 0 25px; }
.prose li { margin: 0; }
.prose blockquote { margin: 1.5em 0; padding: .2em 0 .2em 1.2em; border-left: 3px solid var(--red); font-size: 1.1em; color: var(--ink-2); }
.prose table { border-collapse: collapse; width: 100%; margin: 1em 0 1.5em; font-size: .95em; }
.prose th, .prose td { border-bottom: 1px solid var(--line); padding: .55em .6em; text-align: left; vertical-align: top; }
.prose img { margin: 1em 0; }
.prose .alignleft { float: left; margin: .3em 1.5em 1em 0; max-width: 45%; }
.prose .alignright { float: right; margin: .3em 0 1em 1.5em; max-width: 45%; }
.prose .aligncenter { margin-left: auto; margin-right: auto; }
.prose hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }
.has-text-align-center, .text-center { text-align: center; }
.has-text-align-right, .text-right { text-align: right; }
.text-large { font-size: 1.2rem; line-height: 1.6; }
.text-small { font-size: .9rem; }

/* ---------- buttons ---------- */
.btn { display: inline-block; padding: 12px 40px 13px; font: 600 15px/25px var(--font-btn); letter-spacing: .5px; text-transform: uppercase; text-decoration: none; text-align: center; border: 2px solid transparent; border-radius: 0; cursor: pointer; transition: background .3s, color .3s, border-color .3s; }
.btn.btn-medium { font-size: 12px; line-height: 24px; padding: 6px 25px 5px; }
.btn.btn-small { font-size: 11px; line-height: 24px; padding: 4px 24px; }
.btn.btn-rounded { border-radius: 50px; }
.btn.has-arrow::before { content: ""; display: inline-block; width: 16px; height: 12px; margin-right: 8px; vertical-align: -1px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12'%3E%3Cpath d='M0 6h14M9 1l5 5-5 5' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12'%3E%3Cpath d='M0 6h14M9 1l5 5-5 5' fill='none' stroke='%23000' stroke-width='1.3'/%3E%3C/svg%3E") center/contain no-repeat; }
.btn-dark { background: #232323; border-color: #232323; color: #fff; }
.btn-white { background: #fff; border-color: #fff; color: #232323; }
.btn-white:hover { background: transparent; color: #fff; }
.btn-dark:hover, .btn-dark:focus-visible { background: transparent; color: #232323; }
.btn-red { background: var(--red); color: #fff; }
.btn-red:hover { background: var(--red-dark); color: #fff; }
.btn-outline { border-color: currentColor; color: var(--ink); background: transparent; }
.btn-outline:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.btn-outline-light { border-color: #fff; color: #fff; background: transparent; }
.b-slider .btn-outline-light { font-size: 12px; line-height: 24px; padding: 6px 25px 5px; }
.btn-outline-light:hover { background: #fff; color: #000; }
.btn-link { padding: 0; border: 0; background: none; color: var(--ink); text-decoration: underline; text-transform: none; letter-spacing: 0; font: 600 1rem var(--font-head); }
.btn-link::after { content: " \2192"; }

/* ---------- announcement + header ---------- */
.announcement { background: #000; color: #fff; font-size: .9rem; padding: 8px 0; text-align: center; }
.announcement a { color: #fff; }
.site-header { background: var(--header-bg); color: #fff; position: sticky; top: 0; z-index: 50; }
.header-inner { display: flex; align-items: center; gap: 24px; min-height: 72px; max-width: 1170px; padding: 0 15px; }
.brand { flex: 0 0 auto; display: block; padding: 10px 0; }
.brand img { height: 50px; width: auto; }
.site-nav { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.menu, .sub-menu { list-style: none; margin: 0; padding: 0; }
.site-nav .menu { display: flex; align-items: center; }
.site-nav .menu > .menu-item { position: relative; display: flex; align-items: center; }
.site-nav .menu > .menu-item > a, .site-nav .menu > .menu-item > .menu-label { display: block; padding: 26px 20px; color: #fff; text-decoration: none; font: 600 14px/20px var(--font-head); letter-spacing: .21px; text-transform: capitalize; }
.site-nav .menu > .menu-item > a:hover, .site-nav .menu > .menu-item.is-current > a, .site-nav .menu > .menu-item.is-ancestor > a { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; color: #fff; }
.sub-toggle { background: none; border: 0; color: #fff; width: 22px; height: 30px; margin-left: -10px; padding: 0; cursor: pointer; }
.sub-toggle::before { content: ""; display: block; margin: 0 auto; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); }
.site-nav .sub-menu { position: absolute; top: 100%; left: 0; min-width: 230px; background: #111; padding: 10px 0; box-shadow: 0 10px 30px rgba(0,0,0,.25); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s; }
.site-nav .menu-item:hover > .sub-menu, .site-nav .menu-item:focus-within > .sub-menu, .site-nav .menu-item.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.site-nav .sub-menu a { display: block; padding: 9px 22px; color: #ddd; text-decoration: none; font: 500 .92rem/1.35 var(--font-head); }
.site-nav .sub-menu a:hover, .site-nav .sub-menu .is-current > a { color: #fff; background: rgba(255,255,255,.07); }
.header-search { display: flex; align-items: center; border-left: 1px solid rgba(255,255,255,.25); padding-left: 14px; margin-left: 8px; }
.header-search svg { width: 14px; height: 14px; }
.header-search input { width: 0; opacity: 0; border: 0; border-bottom: 1px solid #fff; background: transparent; color: #fff; font: 400 .95rem var(--font-body); padding: 4px 0; transition: width .2s, opacity .2s; }
.header-search input::placeholder { color: rgba(255,255,255,.75); }
.header-search:focus-within input, .header-search.is-open input { width: 160px; opacity: 1; padding: 4px 6px; }
.header-search button { background: none; border: 0; color: #fff; cursor: pointer; padding: 8px; display: flex; }
.nav-toggle { display: none; margin-left: auto; background: none; border: 1px solid rgba(255,255,255,.6); color: #fff; padding: 9px 14px; font: 600 .8rem var(--font-head); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; align-items: center; gap: 10px; }
.nav-toggle-bars, .nav-toggle-bars::before, .nav-toggle-bars::after { display: block; width: 18px; height: 2px; background: currentColor; position: relative; }
.nav-toggle-bars::before, .nav-toggle-bars::after { content: ""; position: absolute; left: 0; }
.nav-toggle-bars::before { top: -6px; } .nav-toggle-bars::after { top: 6px; }

@media (max-width: 960px) {
  .nav-toggle { display: inline-flex; }
  .brand img { height: 38px; }
  .site-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #111; flex-direction: column; align-items: stretch; padding: 8px 0 18px; max-height: calc(100vh - 72px); overflow-y: auto; }
  .no-js .site-nav, .site-nav.is-open { display: flex; }
  .no-js .site-nav { position: static; }
  .site-nav .menu { flex-direction: column; align-items: stretch; }
  .site-nav .menu > .menu-item { flex-wrap: wrap; border-bottom: 1px solid rgba(255,255,255,.08); }
  .site-nav .menu > .menu-item > a, .site-nav .menu > .menu-item > .menu-label { flex: 1; padding: 14px var(--gutter); }
  .sub-toggle { width: 54px; height: 48px; margin: 0; }
  .site-nav .sub-menu { position: static; width: 100%; opacity: 1; visibility: visible; transform: none; box-shadow: none; display: none; background: #1b1b1b; padding: 4px 0 10px; }
  .site-nav .menu-item:hover > .sub-menu, .site-nav .menu-item:focus-within > .sub-menu { display: none; }
  .site-nav .menu-item.is-open > .sub-menu { display: block; }
  .site-nav .sub-menu a { padding: 10px calc(var(--gutter) + 16px); }
  .header-search { border: 0; padding: 14px var(--gutter) 0; }
  .header-search input { width: 100%; opacity: 1; padding: 8px 6px; flex: 1; }
}

/* ---------- page headers ---------- */
.page-header { padding: clamp(36px, 6vw, 72px) 0 clamp(18px, 3vw, 32px); }
.page-title { margin: 0; }
.page-subtitle { font: 400 1.25rem/1.5 var(--font-head); color: var(--ink-2); margin: .6em 0 0; }
.page-intro { margin-top: 1em; max-width: var(--measure); }
.post-meta { margin: 1em 0 0; color: var(--muted); font: 500 .92rem var(--font-head); letter-spacing: .02em; }
.post-meta a { color: var(--muted); } .post-meta .sep { margin: 0 .4em; }
.breadcrumbs ol { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; font: 500 .8rem var(--font-head); letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.breadcrumbs li + li::before { content: "/"; margin-right: 6px; color: #b5b5b5; }
.breadcrumbs a { color: var(--muted); text-decoration: none; } .breadcrumbs a:hover { color: var(--red); }
.featured { margin-bottom: 36px; }
.featured img { width: 100%; }
.project-hero { background: #111; }
.project-hero img { width: 100%; max-height: 78vh; object-fit: cover; }
.project-header { text-align: center; }
.project-header .breadcrumbs ol { justify-content: center; }
.is-home main > .content { padding-top: clamp(24px, 5vw, 52px); }

/* ---------- content + templates ---------- */
.content { padding-bottom: clamp(48px, 8vw, 96px); }
.tmpl-narrow > .wrap > *, .type-post.tmpl-default > .wrap > .b-text, .type-post.tmpl-default > .wrap > .b-heading, .type-post.tmpl-default > .wrap > .b-quote,
.type-post.tmpl-default > .wrap > .b-button, .type-post.tmpl-default > .wrap > .b-file, .type-post.tmpl-default > .wrap > .post-tags { max-width: var(--measure); }
body.tmpl-narrow .page-header > .wrap, body.tmpl-narrow .featured, .tmpl-narrow > .wrap { max-width: calc(var(--measure) + 2 * var(--gutter)); }
.content > .wrap > * + * { margin-top: 0; }
.b-text, .b-html, .b-quote, .b-image, .b-gallery, .b-embed, .b-details, .b-posts, .b-accordion, .b-file, .b-button, .b-columns, .b-slider { margin-bottom: 24px; }
.b-heading { margin-bottom: 20px; }
.b-image + .b-heading, .b-spacer + .b-text { margin-top: 0; }
.b-heading.align-center, .b-button.align-center { text-align: center; }
.b-heading.align-right, .b-button.align-right { text-align: right; }
.b-heading.size-small { font-size: 20px; line-height: 26px; } .b-heading.size-medium { font-size: clamp(1.6rem, 3vw, 2.2rem); }
.b-heading.size-box { font-size: 16px; line-height: 20px; font-weight: 600; margin-bottom: 30px; }
.b-heading.size-xsmall { font-size: 12px; line-height: 20px; font-weight: 600; margin-bottom: 5px; }
.b-heading.font-body { font-family: var(--font-body); }
.b-heading.w300 { font-weight: 300; } .b-heading.w400 { font-weight: 400; } .b-heading.w500 { font-weight: 500; } .b-heading.w600 { font-weight: 600; } .b-heading.w700 { font-weight: 700; }
.b-heading.tt-uppercase { text-transform: uppercase; } .b-heading.tt-capitalize { text-transform: capitalize; }
.b-heading a { text-decoration: none; color: inherit; } .b-heading a:hover { color: var(--red); }
.b-heading.size-large { font-size: clamp(2rem, 4vw, 3rem); } .b-heading.size-xlarge { font-size: clamp(2.6rem, 6vw, 4.6rem); letter-spacing: -0.03em; }
.b-sep { border: 0; border-top: 1px solid #ededed; margin: 24px 0; }
.b-spacer + .b-sep { margin-top: 0; }
.b-sep:has(+ .b-spacer) { margin-bottom: 0; }
.b-sep + .b-heading, .b-heading:first-child { margin-top: 0; }
.b-sep.sep-thick { border-top: 4px solid var(--ink); }
.b-sep.sep-short { width: 80px; border-top: 3px solid var(--red); }
.b-quote { margin-left: 0; margin-right: 0; padding: 4px 0 4px 24px; border-left: 4px solid var(--red); font: 400 1.35rem/1.5 var(--font-head); }
.b-quote cite { display: block; margin-top: .6em; font: 500 .95rem var(--font-body); font-style: normal; color: var(--muted); }
.b-quote cite::before { content: "\2014\00a0"; }

.b-image { margin-left: 0; margin-right: 0; }
.b-image img { margin: 0 auto; }
.b-image.align-left { float: left; max-width: min(45%, 480px); margin: 6px 28px 16px 0; }
.b-image.align-right { float: right; max-width: min(45%, 480px); margin: 6px 0 16px 28px; }
.b-image.align-full { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.b-image.align-full img { width: 100vw; max-width: none; }
.b-image figcaption, .b-gallery figcaption, .b-embed figcaption { font-size: .85rem; color: var(--muted); margin-top: 8px; }
.content > .wrap::after, .col::after { content: ""; display: table; clear: both; }

.b-gallery { margin-left: 0; margin-right: 0; }
.b-gallery ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(var(--gcols, 3), minmax(0, 1fr)); }
.b-gallery.cols-1 { --gcols: 1; } .b-gallery.cols-2 { --gcols: 2; } .b-gallery.cols-3 { --gcols: 3; } .b-gallery.cols-4 { --gcols: 4; } .b-gallery.cols-5 { --gcols: 5; } .b-gallery.cols-6 { --gcols: 6; }
.b-gallery.crop img { aspect-ratio: 4 / 3; width: 100%; object-fit: cover; }
.b-gallery.style-masonry ul { display: block; columns: var(--gcols, 3); column-gap: 14px; }
.b-gallery.style-masonry li { break-inside: avoid; margin-bottom: 14px; }
.b-gallery.style-carousel ul { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; }
.b-gallery.style-carousel li { flex: 0 0 min(80%, 520px); scroll-snap-align: start; }
.b-gallery a { display: block; overflow: hidden; }
.b-gallery a img { transition: transform .35s ease; }
.b-gallery a:hover img { transform: scale(1.03); }
@media (max-width: 700px) { .b-gallery ul { --gcols: 2 !important; grid-template-columns: repeat(2, minmax(0, 1fr)); } .b-gallery.cols-1 ul { grid-template-columns: 1fr; } }

.b-columns { display: grid; grid-template-columns: var(--cols); gap: 30px; }
.b-columns.gap-none { gap: 0; } .b-columns.gap-small { gap: 14px; } .b-columns.gap-large { gap: 56px; }
.b-columns.valign-center { align-items: center; } .b-columns.valign-bottom { align-items: end; }
.col { min-width: 0; }
@media (max-width: 960px) { .b-columns.stack-tablet { grid-template-columns: repeat(2, minmax(0, 1fr)); } .b-columns.stack-tablet:has(> .col:nth-child(2):last-child) { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .b-columns.stack-tablet, .b-columns.stack-mobile { grid-template-columns: 1fr; } }

.b-group { margin: 0 0 32px; background-size: cover; background-position: center; }
.b-group.width-full { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.b-group.width-full > .group-inner { max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.b-group.pad-small > .group-inner { padding-top: 20px; padding-bottom: 20px; }
.b-group.pad-normal > .group-inner { padding-top: 48px; padding-bottom: 48px; }
.b-group.pad-large > .group-inner { padding-top: 96px; padding-bottom: 96px; }
.b-group.width-container:not(.bg-none) > .group-inner { padding-left: clamp(20px, 4vw, 48px); padding-right: clamp(20px, 4vw, 48px); }
.b-group.bg-light { background-color: var(--paper-2); }
.b-group.bg-white { background-color: #fff; color: var(--ink); }
.b-group.bg-gray { background-color: #d4d4d4; }
.b-group.align-center > .group-inner { text-align: center; }
.b-group.align-center .b-image img, .b-group.align-center .b-button { margin-left: auto; margin-right: auto; }
.b-group { position: relative; }
.b-group > .group-inner { position: relative; z-index: 1; }
.b-group.bg-video { background-color: #111; color: #fff; overflow: hidden; }
.group-video { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
video.group-video { width: 100%; height: 100%; object-fit: cover; }
div.group-video iframe { position: absolute; top: 50%; left: 50%; width: max(100%, 177.78vh); height: max(100%, 56.25vw); transform: translate(-50%, -50%); border: 0; }
@media (prefers-reduced-motion: reduce) { .group-video { display: none; } }
.b-group.bg-image.has-panel, .b-group.bg-video.has-panel { box-shadow: none; color: var(--ink); }
.b-group.bg-image.has-panel > .group-inner, .b-group.bg-video.has-panel > .group-inner { padding-left: clamp(16px, 6vw, 72px); padding-right: clamp(16px, 6vw, 72px); }
.b-group.has-panel > .group-inner > .b-group { margin-bottom: 0; }
.b-group.bg-dark, .b-group.bg-image { background-color: #111; color: #fff; }
.b-group.bg-red { background-color: var(--red); color: #fff; }
.b-group.bg-image { box-shadow: inset 0 0 0 100vmax rgba(0,0,0,.45); }
.b-group:is(.bg-dark, .bg-red, .bg-image, .bg-video) :is(h1, h2, h3, h4, h5, h6, a) { color: #fff; }
.b-group:is(.bg-white, .bg-light, .bg-gray) :is(h1, h2, h3, h4, h5, h6, a) { color: var(--ink); }
.b-group:is(.bg-white, .bg-light, .bg-gray) { color: var(--ink); }
.b-group:is(.bg-dark, .bg-red, .bg-image, .bg-video) .btn-dark { background: #fff; color: #000; }
.b-group:is(.bg-white, .bg-light, .bg-gray) .btn-dark { background: #232323; color: #fff; }

.b-spacer { width: 100%; }
@media (max-width: 700px) { .b-spacer { max-height: 40px; } }

.b-embed { margin-left: 0; margin-right: 0; }
.embed-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #000; }
.aspect-4x3 .embed-frame { aspect-ratio: 4 / 3; } .aspect-1x1 .embed-frame { aspect-ratio: 1; }
.aspect-audio .embed-frame { aspect-ratio: auto; height: 166px; background: none; }
.embed-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.b-details { margin: 0 0 28px; border-top: 1px solid var(--line); font-size: .95rem; }
.b-details .row { display: grid; grid-template-columns: minmax(110px, 34%) 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.b-details dt { font: 600 .92rem var(--font-head); }
.b-details dd { margin: 0; }

.b-file .file-link { display: inline-flex; gap: 12px; align-items: baseline; padding: 14px 18px; border: 1px solid var(--line); text-decoration: none; }
.b-file .file-link::before { content: "\2193"; font-weight: 700; color: var(--red); }
.b-file .file-meta { color: var(--muted); font-size: .85rem; }
.b-file .file-link:hover { border-color: var(--ink); }

.b-accordion details { border-bottom: 1px solid var(--line); }
.b-accordion details:first-child { border-top: 1px solid var(--line); }
.b-accordion summary { cursor: pointer; padding: 16px 36px 16px 0; font: 600 1.1rem var(--font-head); list-style: none; position: relative; }
.b-accordion summary::-webkit-details-marker { display: none; }
.b-accordion summary::after { content: "+"; position: absolute; right: 6px; top: 12px; font-size: 1.5rem; font-weight: 400; }
.b-accordion details[open] summary::after { content: "\2212"; }
.b-accordion details > div { padding: 0 0 18px; }
.b-accordion details { border: 0; margin-bottom: 14px; }
.b-accordion details:first-child { border-top: 0; }
.b-accordion summary { background: #d6d6d6; padding: 22px 64px 22px 28px; font: 500 1.1rem/1.4 var(--font-body); }
.b-accordion summary::after { right: 26px; top: 18px; }
.b-accordion details > div { padding: 24px 28px 8px; }

/* ---------- slider ---------- */
.b-slider { position: relative; overflow: hidden; background: #000; color: #fff; }
.b-slider.color-red { background: var(--red); } .b-slider.color-gray { background: #2b2b2b; }
.b-slider .slide { display: none; }
.b-slider .slide.is-active, .no-js .b-slider .slide:first-child { display: grid; }
.b-slider.layout-split .slide { grid-template-columns: 1fr 1fr; min-height: clamp(320px, 42vw, 500px); }
.b-slider.layout-split .slide-text { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 6vw, 72px); }
.b-slider .slide-title { color: #fff; margin: 0 0 .5em; font-size: clamp(1.8rem, 3.2vw, 2.6rem); letter-spacing: -0.03em; }
.b-slider .slide-text p { font-weight: 300; font-size: 1.05rem; max-width: 30em; margin-bottom: 1.6em; }
.b-slider .slide-text .btn { align-self: flex-start; }
.b-slider .slide-media { position: relative; min-height: 260px; }
.b-slider .slide-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.b-slider.layout-cover .slide, .b-slider.layout-image .slide { grid-template-columns: 1fr; min-height: clamp(340px, 50vw, 600px); }
.b-slider.layout-cover .slide > *, .b-slider.layout-image .slide > * { grid-area: 1 / 1; }
.b-slider.layout-cover .slide-text { position: relative; z-index: 2; align-self: end; padding: clamp(24px, 5vw, 60px); background: linear-gradient(transparent, rgba(0,0,0,.75)); }
.slider-controls { position: absolute; z-index: 3; bottom: 16px; right: 16px; display: flex; gap: 6px; align-items: center; }
.slider-controls button { background: rgba(0,0,0,.55); color: #fff; border: 1px solid rgba(255,255,255,.5); width: 38px; height: 38px; cursor: pointer; font-size: 1rem; display: grid; place-items: center; }
.slider-controls button:hover { background: #fff; color: #000; }
.slider-dots { display: flex; gap: 6px; margin-right: 8px; }
.slider-dots button { width: 12px; height: 12px; border-radius: 50%; padding: 0; background: rgba(255,255,255,.4); border: 0; }
.slider-dots button[aria-current="true"] { background: #fff; }
@media (max-width: 760px) { .b-slider.layout-split .slide { grid-template-columns: 1fr; } .b-slider.layout-split .slide-media { order: -1; min-height: 240px; } .slider-controls { bottom: auto; top: 12px; } }

/* ---------- cards / listings ---------- */
.cards { display: grid; gap: 32px 28px; grid-template-columns: repeat(var(--ccols, 3), minmax(0, 1fr)); }
.cards.cols-1 { --ccols: 1; } .cards.cols-2 { --ccols: 2; } .cards.cols-3 { --ccols: 3; } .cards.cols-4 { --ccols: 4; } .cards.cols-5 { --ccols: 5; } .cards.cols-6 { --ccols: 6; }
.card-link { display: block; text-decoration: none; color: inherit; height: 100%; }
.card-img { overflow: hidden; background: var(--paper-2); aspect-ratio: 4 / 3; }
.card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.card-link:hover .card-img img { transform: scale(1.04); }
.card-body { padding-top: 14px; }
.card-meta { margin: 0 0 6px; font: 500 .8rem var(--font-head); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.card-title { margin: 0 0 6px; font-size: 1.25rem; line-height: 1.25; }
.card-link:hover .card-title { color: var(--red); }
.card-sub { margin: 0 0 6px; font: 500 .95rem var(--font-head); color: var(--ink-2); }
.card-excerpt { margin: 0; color: var(--ink-2); font-size: .95rem; }
.cards.layout-list { grid-template-columns: 1fr; gap: 0; }
.cards.layout-list .card { border-bottom: 1px solid var(--line); }
.cards.layout-list .card:first-child { border-top: 1px solid var(--line); }
.cards.layout-list .card-link { display: grid; grid-template-columns: minmax(0, 340px) 1fr; gap: 32px; padding: 30px 0; align-items: start; }
.cards.layout-list .card-link:not(:has(.card-img)) { grid-template-columns: 1fr; }
.cards.layout-list .card-body { padding-top: 0; }
.cards.layout-list .card-title { font-size: 1.5rem; }
.cards.layout-overlay .card-link { position: relative; }
.cards.layout-overlay .card-img { aspect-ratio: 1; }
.cards.layout-overlay .card-img-empty { background: #555; }
.cards.layout-overlay .card-body { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 18px; background: rgba(0,0,0,.45); color: #fff; transition: background .25s; }
.cards.layout-overlay .card-title { color: #fff; font-size: 1.15rem; }
.cards.layout-overlay .card-sub, .cards.layout-overlay .card-meta { color: rgba(255,255,255,.85); }
.cards.layout-overlay .card-link:hover .card-body { background: rgba(179,27,27,.82); }
.cards.layout-compact .card-img { display: none; }
.cards.layout-compact .card-title { font-size: 1.05rem; }
.cards .card.is-hidden { display: none; }
@media (max-width: 960px) { .cards:not(.layout-list) { grid-template-columns: repeat(min(var(--ccols, 3), 2), minmax(0, 1fr)); } }
@media (max-width: 640px) { .cards:not(.layout-list):not(.layout-overlay) { grid-template-columns: 1fr; } .cards.layout-list .card-link { grid-template-columns: 1fr; gap: 14px; } }
.card-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.card-filter button { background: none; border: 1px solid var(--line); padding: 7px 14px; font: 500 .85rem var(--font-head); cursor: pointer; }
.card-filter button.is-active, .card-filter button:hover { background: var(--ink); color: #fff; border-color: var(--ink); }

.pager ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 40px 0 0; }
.pager a, .pager span { display: block; padding: 8px 14px; border: 1px solid var(--line); text-decoration: none; font: 600 .9rem var(--font-head); }
.pager span[aria-current] { background: var(--ink); color: #fff; border-color: var(--ink); }
.pager a:hover { border-color: var(--ink); }

.post-tags { margin-top: 32px; font-size: .9rem; color: var(--muted); }
.post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--line); }
.post-nav a { text-decoration: none; font: 600 1.05rem/1.3 var(--font-head); }
.post-nav a span { display: block; font: 500 .75rem var(--font-head); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.post-nav .next { text-align: right; }

/* ---------- search ---------- */
.search-form { display: flex; gap: 10px; max-width: 640px; margin-bottom: 18px; }
.search-form input { flex: 1; padding: 12px 14px; font: 400 1rem var(--font-body); border: 1px solid #999; border-radius: var(--radius); }
.search-status { color: var(--muted); }
.search-results mark { background: #fbe7a1; color: inherit; }
.sitemap-page .prose ul ul { margin-bottom: .4em; }

/* ---------- footer ---------- */
.site-footer { background: #000; color: #fff; padding: clamp(48px, 7vw, 96px) 0 60px; }
.site-footer a { color: #fff; }
.footer-brand img { width: min(570px, 90%); height: auto; margin-bottom: 40px; }
.footer-about { max-width: 980px; }
.footer-address { margin: 1.2em 0; }
.footer-menu { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 4px 0; }
.footer-menu li { display: inline-flex; align-items: center; }
.footer-menu li + li::before { content: "\2022"; margin: 0 .55em; }
.footer-menu .sub-menu, .footer-menu .sub-toggle { display: none; }

/* ---------- lightbox ---------- */
.lightbox-dialog { position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,.92); display: flex; align-items: center; justify-content: center; padding: 56px 64px; }
.lightbox-dialog[hidden] { display: none; }
.lightbox-dialog figure { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; }
.lightbox-dialog img { max-width: 100%; max-height: calc(100vh - 140px); object-fit: contain; }
.lightbox-dialog figcaption { color: #ddd; margin-top: 10px; font-size: .9rem; text-align: center; }
.lightbox-dialog button { position: absolute; background: none; border: 0; color: #fff; font-size: 2rem; cursor: pointer; width: 56px; height: 56px; }
.lightbox-dialog .lb-close { top: 8px; right: 8px; }
.lightbox-dialog .lb-prev { left: 4px; top: 50%; transform: translateY(-50%); }
.lightbox-dialog .lb-next { right: 4px; top: 50%; transform: translateY(-50%); }

@media print {
  .site-header, .site-footer, .slider-controls, .post-nav, .skip-link, .card-filter { display: none !important; }
  .b-slider .slide { display: grid !important; break-inside: avoid; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; }
}
.col > .b-group.align-center > .group-inner > .b-image:first-child img { width: 100%; }

/* custom-colored sections (colors carried over from the old site) */
.b-group.bg-custom { background-color: var(--group-bg); }
.b-group.bg-custom.on-dark, .b-group.bg-custom.on-dark :is(h1, h2, h3, h4, h5, h6, a, li) { color: #fff; }
.b-group.bg-custom.on-dark .btn-dark { background: #fff; color: #000; }
.b-group.pad-small.width-container:not(.bg-none) > .group-inner { padding: 22px 24px; }
/* label/value lists (project info boxes) */
.prose ul.info-list { list-style: none; padding: 0; margin: 0; }
.prose ul.info-list li { margin: 0; padding: 12px 0; border-bottom: 1px solid rgba(127,127,127,.35); }
.prose ul.info-list li:first-child { padding-top: 0; }
.prose ul.info-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.prose ul.info-list strong { display: block; margin-bottom: 4px; }

/* ===================== fidelity pass: old CCA theme details ===================== */
/* page top spacing: pages that start with their own heading get the old "top space" */
.content.tmpl-no-title { padding-top: clamp(40px, 7.5vw, 104px); }
.content.tmpl-no-title.first-full, .content.tmpl-no-title.first-full > .wrap > .b-group:first-child { padding-top: 0; margin-top: 0; }
.content.tmpl-no-title.first-slider, .content.tmpl-no-title.first-group:not(.first-full), .content.tmpl-no-title.first-image, .content.tmpl-no-title.first-gallery { padding-top: clamp(24px, 4vw, 56px); }
.is-home main > .content { padding-top: clamp(24px, 4vw, 56px); }

/* dark title band + breadcrumb strip (news posts, category pages) */
.page-header.band { padding: 0; }
.band-title { background: #0a0a0a; color: #fff; padding: 36px 0; }
.band-title .page-title { color: #fff; font: 500 18px/26px var(--font-head); text-transform: uppercase; letter-spacing: 0; margin: 0; }
.band-title .page-subtitle { color: #c9c9c9; font-size: 15px; margin: 6px 0 0; }
.band-crumbs { border-bottom: 1px solid #ededed; padding: 16px 0; margin-bottom: clamp(32px, 6vw, 80px); }
.band-crumbs .breadcrumbs ol { margin: 0; text-transform: none; letter-spacing: 0; font: 400 12px/20px var(--font-body); }
.band-crumbs .breadcrumbs li + li::before { content: "\2022"; }
.band-crumbs .post-meta { margin: 4px 0 0; font: 400 12px/20px var(--font-body); text-transform: uppercase; }
body.tmpl-narrow .band-title > .wrap, body.tmpl-narrow .band-crumbs > .wrap { max-width: calc(var(--wrap) + 2 * var(--gutter)); }

/* links: body links are underlined only where the editor underlined them or in running text */
.prose a { text-decoration: underline; }
.prose ul.check-list a, .prose ul.info-list a, .prose ul.plain-list a { text-decoration: none; }
.prose ul.check-list a:hover, .prose ul.info-list a:hover { text-decoration: underline; }

/* headings with a line icon (feature boxes) */
.b-heading.has-icon { display: flex; align-items: center; gap: 30px; }
.h-icon { flex: 0 0 auto; width: 50px; height: 50px; background: currentColor; -webkit-mask: var(--ico) center/contain no-repeat; mask: var(--ico) center/contain no-repeat; }
.ico-book { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M3 9h18c2 0 3 1 3 3v28c0-2-1-3-3-3H3zM45 9H27c-2 0-3 1-3 3v28c0-2 1-3 3-3h18z'/%3E%3Cpath d='M7 15h12M7 20h12M7 25h12M7 30h12M29 15h12M29 20h12M29 25h12M29 30h12'/%3E%3C/svg%3E"); }
.ico-globe { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Ccircle cx='24' cy='24' r='20'/%3E%3Cellipse cx='24' cy='24' rx='9' ry='20'/%3E%3Cpath d='M4 24h40M7 14h34M7 34h34M24 4v40'/%3E%3C/svg%3E"); }
.ico-pencil { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M6 8l8-4 26 26-2 10-10 2zM14 4l-2 10 26 26M6 8l6 6M4 44h40'/%3E%3C/svg%3E"); }
.ico-brush { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Crect x='10' y='4' width='28' height='16'/%3E%3Cpath d='M10 14h28M10 20v6h28v-6M21 26v12a3 3 0 006 0V26M16 4v6M22 4v8M28 4v6'/%3E%3C/svg%3E"); }
.ico-trophy { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M13 5h22v12c0 8-5 13-11 13s-11-5-11-13zM13 9H5c0 8 3 12 9 13M35 9h8c0 8-3 12-9 13M24 30v8M15 43h18M18 38h12v5H18z'/%3E%3C/svg%3E"); }
.ico-check { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='2.2'%3E%3Cpath d='M5 26l12 13L43 8'/%3E%3C/svg%3E"); }
.ico-mail { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Crect x='4' y='9' width='40' height='30'/%3E%3Cpath d='M4 9l20 17L44 9'/%3E%3C/svg%3E"); }
.ico-star { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M24 4l6 13 14 2-10 10 2 14-12-7-12 7 2-14L4 19l14-2z'/%3E%3C/svg%3E"); }
.ico-calendar { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Crect x='5' y='9' width='38' height='34'/%3E%3Cpath d='M5 18h38M15 4v10M33 4v10'/%3E%3C/svg%3E"); }
.ico-pin { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M24 44S9 28 9 18a15 15 0 0130 0c0 10-15 26-15 26z'/%3E%3Ccircle cx='24' cy='18' r='6'/%3E%3C/svg%3E"); }

/* images */
.b-image.size-small img { max-width: min(300px, 100%); }
.b-image.align-start img, .b-image.align-start { margin-left: 0; margin-right: auto; }
.b-image.align-end img { margin-left: auto; margin-right: 0; }
.b-image figcaption { font-size: 12.8px; line-height: 24px; color: var(--ink); margin-top: 3px; }
.b-image.align-center figcaption { text-align: center; }

/* check lists (old "list" element): red tick, hairline between items */
.prose ul.check-list { list-style: none; padding: 0; margin: 0 0 25px; }
.prose ul.check-list li { position: relative; padding: 0 0 10px 22px; margin: 0 0 10px; border-bottom: 1px solid #e5e5e5; }
.prose ul.check-list li:last-child { border-bottom: 0; }
.prose ul.check-list li::before { content: ""; position: absolute; left: 0; top: 7px; width: 12px; height: 10px; background: var(--red);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 4L11 1' fill='none' stroke='%23000' stroke-width='1.8'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 4L11 1' fill='none' stroke='%23000' stroke-width='1.8'/%3E%3C/svg%3E") center/contain no-repeat; }
/* project info boxes */
.prose ul.info-list li { padding: 8px 0; border-bottom: 1px solid rgba(0,0,0,.1); }
.prose ul.info-list strong { font-weight: 700; margin-bottom: 5px; }
.b-group.on-dark .prose ul.info-list li { border-bottom-color: rgba(255,255,255,.25); }
.b-group.pad-small.width-container:not(.bg-none) > .group-inner { padding: 20px 22px; }

/* columns nested in a centered section go back to left unless they center themselves */
.b-group.align-center .b-columns { text-align: left; }
.b-group.align-center .b-columns .b-group.align-center > .group-inner { text-align: center; }
.b-columns { gap: 30px; margin-bottom: 0; }
.b-columns > .col > :last-child { margin-bottom: 30px; }

/* sections: white panels inside photo sections, slider text always light */
.b-slider .slide-title, .b-slider .slide-text, .b-slider .slide-text p { color: #fff; }
.b-slider .slide-title { font-size: 40px; line-height: 40px; letter-spacing: -3px; font-weight: 600; margin-bottom: 30px; }
.b-slider .slide-text p { font-weight: 300; font-size: 16px; line-height: 26px; max-width: 17em; margin-bottom: 25px; }
.b-slider.layout-split .slide { min-height: clamp(320px, 38vw, 500px); }
.b-slider.layout-split .slide-text { padding: clamp(28px, 7vw, 80px); }
.slider-controls { left: 0; right: 0; bottom: 18px; justify-content: center; }
.slider-controls .sl-prev, .slider-controls .sl-next { position: absolute; top: auto; bottom: clamp(140px, 17vw, 230px); width: 30px; height: 30px; background: rgba(255,255,255,.9); color: #232323; border: 0; }
.slider-controls .sl-prev { left: 20px; background: rgba(120,120,120,.75); color: #fff; } .slider-controls .sl-next { right: 20px; }
.slider-controls .sl-pause { position: absolute; right: 14px; bottom: 0; width: 26px; height: 26px; font-size: 9px; background: transparent; border: 0; opacity: .6; }
.slider-dots button { width: 8px; height: 8px; background: rgba(140,140,140,.6); }
.b-group.bg-image.pad-large > .group-inner, .b-group.bg-video.pad-large > .group-inner { padding-top: clamp(40px, 8vw, 110px); padding-bottom: clamp(40px, 8vw, 110px); }
.b-group.bg-white.width-container > .group-inner, .b-group.bg-dark.width-container > .group-inner { padding: clamp(20px, 3vw, 32px); }

/* picture cards (artist tiles) */
.b-card { margin: 0 0 30px; }
.pcard-link { display: block; text-decoration: none; color: inherit; }
.pcard-img { position: relative; display: block; overflow: hidden; background: #2b2b2b; }
.pcard-img img { width: 100%; height: auto; transition: transform .5s ease, opacity .3s; }
.pcard-veil { position: absolute; inset: 0; background: var(--card-hover, #232323); opacity: 0; transition: opacity .3s ease; }
.pcard-body { display: block; text-align: center; margin-top: 17px; }
.pcard-title { display: block; font: 500 12px/20px var(--font-body); text-transform: uppercase; color: var(--head); }
.pcard-sub { display: block; font: 400 11px/14px var(--font-body); text-transform: uppercase; color: #939393; }
.pcard.style-below .pcard-link:hover .pcard-veil, .pcard.style-below .pcard-link:focus-visible .pcard-veil { opacity: .8; }
.pcard.style-below .pcard-link:hover .pcard-title { color: var(--red); }
.pcard.style-overlay .pcard-veil { background: #232323; opacity: .5; }
.pcard-over { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 16px; transition: transform .35s ease, opacity .35s ease; }
.pcard.style-overlay .pcard-title, .pcard.style-overlay .pcard-sub { font: 600 12px/20px var(--font-head); letter-spacing: 2px; text-transform: none; color: #fff; }
.pcard-btn { position: absolute; left: 50%; top: 50%; transform: translate(-50%, 40px); opacity: 0; background: #fff; color: #232323; border-radius: 50px; padding: 5px 29px; font: 600 11px/24px var(--font-btn); letter-spacing: .5px; text-transform: uppercase; white-space: nowrap; transition: transform .35s ease, opacity .35s ease; }
.pcard.style-overlay .pcard-link:hover .pcard-over, .pcard.style-overlay .pcard-link:focus-visible .pcard-over { transform: translateY(-40px); opacity: 0; }
.pcard.style-overlay .pcard-link:hover .pcard-btn, .pcard.style-overlay .pcard-link:focus-visible .pcard-btn { transform: translate(-50%, -50%); opacity: 1; }
.pcard.style-overlay .pcard-link:hover .pcard-veil { opacity: .75; }
.pcard.style-overlay .pcard-link:hover img { transform: scale(1.04); }

/* listing rows (category pages, posts page) */
.cards.layout-list .card-link { grid-template-columns: minmax(0, 41%) 1fr; gap: 30px; padding: 40px 0; }
.cards.layout-list .card { border-bottom: 1px solid #232323; }
.cards.layout-list .card:first-child { border-top: 0; }
.cards.layout-list .card-img { aspect-ratio: auto; background: none; }
.cards.layout-list .card-img img { height: auto; }
.cards.layout-list .card-title { font: 500 18px/26px var(--font-head); margin: 10px 0 2px; }
.cards.layout-list .card-meta { font: 400 11px/20px var(--font-body); color: #939393; margin-bottom: 14px; }
.cards.layout-list .card-body { display: flex; flex-direction: column; }
.cards.layout-list .card-title { order: -1; }
.cards.layout-list .card-excerpt { font-size: 16px; color: var(--ink); max-width: 34em; }
.card-more { align-self: flex-start; margin-top: 16px; }
.card-link:hover .card-more { background: transparent; color: #232323; }

/* scroll-in reveal (cards, tiles); only when JS is on and motion is OK */
@media (prefers-reduced-motion: no-preference) {
  .js .reveal { opacity: 0; transform: translateY(28px); transition: opacity .6s ease, transform .6s ease; transition-delay: var(--reveal-delay, 0ms); }
  .js .reveal.is-in { opacity: 1; transform: none; }
}

/* back to top */
.to-top { position: fixed; right: 30px; bottom: 30px; z-index: 40; width: 36px; height: 36px; display: grid; place-items: center; color: var(--red); text-decoration: none; font-size: 22px; opacity: 0; transition: opacity .3s; }
.to-top.is-on { opacity: 1; }
.to-top[hidden] { display: none; }
@media (max-width: 760px) { .b-slider .slide-title { font-size: 30px; line-height: 32px; letter-spacing: -1.5px; } .slider-controls .sl-prev, .slider-controls .sl-next { display: none; } .cards.layout-list .card-link { grid-template-columns: 1fr; } }

.b-group .b-slider .slide-title, .b-slider h2.slide-title, .b-group .b-slider .slide-text p { color: #fff; }
/* a white panel directly on the white page is not a panel */
.content > .wrap > .b-group.bg-white.width-container { margin-bottom: 0; }
.content > .wrap > .b-group.bg-white.width-container > .group-inner { padding: 0; }
/* big headings shrink to fit narrow columns */
.b-columns > .col { container-type: inline-size; }
.col h2.b-heading:not([class*="size-"]) { font-size: clamp(1.5rem, 13cqw, 3.4375rem); }
.col h3.b-heading:not([class*="size-"]) { font-size: clamp(1.4rem, 12cqw, 3rem); }
.col h4.b-heading:not([class*="size-"]) { font-size: clamp(1.3rem, 11cqw, 2.5rem); }
.b-image.size-large img { max-width: min(1024px, 100%); }
