@font-face {
    font-family: "Barlow Condensed";
    src: url("../fonts/barlow-condensed-extralight.ttf") format("truetype");
    font-style: normal;
    font-weight: 200;
    font-display: swap;
}

@font-face {
    font-family: "Barlow Condensed";
    src: url("../fonts/barlow-condensed-semibold.woff2") format("woff2");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: "Barlow";
    src: url("../fonts/barlow-extralight.ttf") format("truetype");
    font-style: normal;
    font-weight: 200;
    font-display: swap;
}

@font-face {
    font-family: "Barlow";
    src: url("../fonts/barlow-regular.ttf") format("truetype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Barlow";
    src: url("../fonts/barlow-light.ttf") format("truetype");
    font-style: normal;
    font-weight: 300;
    font-display: swap;
}

:root {
    --red: #bb3030;
    --black: #090909;
    --paper: #ffffff;
    --soft: #f3f3f1;
    --line: #d5d5d2;
    --page-gutter: 100px;
}

* { box-sizing: border-box; }

html {
    font-size: 10.5px;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--paper);
    color: var(--black);
    font-family: "Barlow", Arial, sans-serif;
    font-size: 1.5rem;
    font-weight: 300;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

body.menu-open,
body.modal-open { overflow: hidden; }

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }

h1, h2, h3, .wordmark, .main-nav a, .eyebrow, .rule-label, .button {
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-weight: 600;
    letter-spacing: .15em;
    line-height: 1.08;
    text-transform: uppercase;
}

h1 { margin: 0; font-size: 3.15rem; }
h2 { font-size: 2.25rem; }
p { margin: 0 0 1.8rem; }

.skip-link {
    position: fixed;
    top: -10rem;
    left: 2rem;
    z-index: 1000;
    padding: 1rem 1.5rem;
    background: #fff;
    color: #000;
}
.skip-link:focus { top: 2rem; }

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

.site-header {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 90;
    display: flex;
    width: 100%;
    align-items: flex-start;
    justify-content: space-between;
    padding: 2.6rem max(var(--page-gutter), 30px);
    pointer-events: none;
}

.site-header > * { pointer-events: auto; }

.wordmark {
    display: block;
    max-width: 54rem;
    color: #000;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 30px;
    font-style: normal;
    font-weight: 600;
    line-height: 36px;
    white-space: nowrap;
}

.is-home .wordmark,
.is-home .site-header { color: #000; }

.header-tools {
    display: flex;
    align-items: center;
    gap: 2rem;
    padding-top: .5rem;
}

.basket-link {
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    font-size: 1.1rem;
}

.menu-toggle {
    position: relative;
    z-index: 120;
    width: 3.3rem;
    height: 2.7rem;
    padding: .2rem 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.menu-toggle span {
    display: block;
    width: 100%;
    height: 1px;
    margin: .65rem 0;
    background: currentColor;
    transition: transform .3s ease, opacity .2s ease;
}

.menu-open .menu-toggle { color: #fff; }
.menu-open .menu-toggle span:nth-child(1) { transform: translateY(.75rem) rotate(45deg); }
.menu-open .menu-toggle span:nth-child(2) { opacity: 0; }
.menu-open .menu-toggle span:nth-child(3) { transform: translateY(-.75rem) rotate(-45deg); }
.menu-open .wordmark,
.menu-open .basket-link { visibility: hidden; opacity: 0; }
.menu-open .site-header { z-index: 410; }

.menu-panel {
    position: fixed;
    inset: 0;
    z-index: 400;
    visibility: hidden;
    overflow: hidden;
    background: #111;
    color: #fff;
    opacity: 0;
    transition: opacity .35s ease, visibility .35s;
}

.menu-panel.is-open { visibility: visible; opacity: 1; }

.menu-visual {
    position: absolute;
    inset: 0 44% 0 0;
    overflow: hidden;
    background: #222;
}

.menu-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .12);
}

.menu-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 76% center;
}

.menu-inner {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    display: flex;
    width: 44%;
    min-width: 36rem;
    flex-direction: column;
    gap: 2.6rem;
    overflow-y: auto;
    padding: 8.8rem clamp(3rem, 4vw, 6.2rem) 5rem;
    background: #000;
    transform: translateX(4rem);
    transition: transform .45s cubic-bezier(.2,.65,.3,1);
}

.menu-panel.is-open .menu-inner { transform: translateX(0); }

.main-nav { display: flex; flex-direction: column; align-items: flex-start; gap: 3.1rem; }
.main-nav li { list-style: none; }
.main-nav a { font-family: "Barlow", Arial, sans-serif; font-size: 1.55rem; font-weight: 400; letter-spacing: .16em; line-height: 1.1; text-transform: uppercase; }
.main-nav a:hover, .main-nav a:focus { color: var(--red); }
.main-nav a:nth-child(9),
.main-nav a:nth-child(10) { color: #b6b6b6; }

.menu-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2.6rem;
}

.language-list a {
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 1.45rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    cursor: pointer;
}

.language-list { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.language-list a:first-child { color: var(--red); }

.menu-search {
    display: flex;
    width: 100%;
    height: 4.3rem;
    align-items: center;
    border: 1px solid rgba(255,255,255,.85);
}

.menu-search input {
    min-width: 0;
    flex: 1;
    height: 100%;
    padding: 0 1rem;
    border: 0;
    outline: 0;
    background: transparent;
    color: #fff;
    font-size: 1.25rem;
}

.menu-search input::placeholder { color: #fff; opacity: 1; }

.menu-search button {
    display: grid;
    width: 4.2rem;
    height: 100%;
    place-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
}

.menu-search svg {
    width: 2.1rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 2;
}

.menu-socials { display: flex; align-items: center; gap: 1.5rem; color: #777; }
.menu-socials a { display: block; width: 1.8rem; height: 1.8rem; }
.menu-socials svg { width: 100%; height: 100%; fill: currentColor; stroke: currentColor; stroke-width: 1.8; }
.menu-socials .play { fill: #000; stroke: none; }
.menu-socials rect, .menu-socials circle { fill: none; }
.menu-socials .dot { fill: currentColor; stroke: none; }

.search-panel {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: grid;
    visibility: hidden;
    place-items: center;
    padding: 4rem;
    background: rgba(0,0,0,.96);
    color: #fff;
    opacity: 0;
    transition: .25s ease;
}
.search-panel.is-open { visibility: visible; opacity: 1; }
.search-panel form { width: min(86rem, 100%); }
.search-panel label { display: block; margin-bottom: 2rem; letter-spacing: .14em; text-transform: uppercase; }
.search-panel input { width: 100%; padding: 1.2rem 0; border: 0; border-bottom: 1px solid #fff; outline: 0; background: transparent; color: #fff; font-size: 3rem; }
.search-close, .notice-close, .enquiry-close { position: absolute; top: 2.5rem; right: 3rem; border: 0; background: transparent; color: inherit; font-size: 3.2rem; cursor: pointer; }

.hero-slider {
    position: sticky;
    top: 0;
    z-index: 1;
    height: 100vh;
    min-height: 58rem;
    overflow: hidden;
    background: #111;
}
.hero-slide { position: absolute; inset: 0; visibility: hidden; background-position: center; background-size: cover; opacity: 0; transform: scale(1.025); transition: opacity 1s ease, transform 6s ease, visibility 1s; }
.hero-slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.2), rgba(0,0,0,.03) 42%, rgba(0,0,0,.55)); }
.hero-slide.is-active { visibility: visible; opacity: 1; transform: scale(1); }
.hero-copy { position: absolute; z-index: 2; bottom: 6.2rem; left: var(--page-gutter); color: #fff; }
.hero-copy p { margin: 0 0 .5rem; font-family: "Barlow Condensed"; font-size: clamp(3.3rem, 4.6vw, 6.6rem); font-weight: 600; letter-spacing: .15em; line-height: 1.08; text-transform: uppercase; }
.hero-copy a { border-bottom: 1px solid currentColor; font-size: 1.25rem; letter-spacing: .16em; text-transform: uppercase; }
.slider-controls { position: absolute; z-index: 4; right: var(--page-gutter); bottom: 4rem; display: flex; align-items: center; gap: 1.5rem; color: #fff; font-size: 1.2rem; letter-spacing: .12em; }
.slider-controls button { border: 0; background: transparent; color: #fff; font-size: 2.7rem; cursor: pointer; }

.home-notice {
    position: relative;
    z-index: 5;
    padding: 4rem max(var(--page-gutter), 7.7vw) 7rem;
    background: #fff;
    color: #090909;
    text-align: center;
}

.home-notice > h2 {
    margin: 0 0 4.4rem;
    font-size: 2.2rem;
}

.home-notice-block {
    width: min(100%, 108rem);
    margin: 0 auto 4rem;
}

.home-notice-block:last-child { margin-bottom: 0; }

.home-notice-block h3 {
    margin: 0 0 1.2rem;
    font-family: "Barlow", Arial, sans-serif;
    font-size: 1.45rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: uppercase;
}

.home-notice-block p {
    margin: 0 auto .7rem;
    font-size: 1.5rem;
    line-height: 2.05;
}

.page-shell { min-height: 75vh; padding: 14.5rem var(--page-gutter) 12rem; }
.store-page { padding-right: max(20px, var(--page-gutter)); padding-left: max(20px, var(--page-gutter)); }
.page-shell > h1 { margin-bottom: 6rem; }
.page-heading-row, .works-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 4rem; margin-bottom: 6rem; }
.page-heading-row button, .works-toolbar button, .store-tabs button, .view-switch button { padding: .2rem 0; border: 0; border-bottom: 1px solid transparent; background: transparent; font-size: 1.2rem; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.page-heading-row button.is-active, .works-toolbar button.is-active, .store-tabs button.is-active, .view-switch button.is-active { border-color: #111; }
.view-switch, .store-tabs { display: flex; gap: 2.5rem; }

.quiet-filter { display: block; width: min(48rem, 100%); margin: -2.5rem 0 5rem; padding: 1rem 0; border: 0; border-bottom: 1px solid var(--line); outline: 0; }
.artist-columns { max-width: 82rem; columns: 2; column-gap: 8rem; }
.artist-columns a { display: block; break-inside: avoid; padding: .48rem 0; font-size: 1.45rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.artist-columns a:hover { color: var(--red); }
.artist-preview-layout { display: grid; grid-template-columns: minmax(44rem, .92fr) minmax(45rem, 1.08fr); gap: clamp(5rem, 7vw, 11rem); align-items: start; }
.artist-preview-layout[hidden] { display: none; }
.featured-artist-list { columns: 2; column-gap: clamp(3rem, 5vw, 8rem); }
.featured-artist-list a { display: block; break-inside: avoid; padding: .48rem 0; font-size: 1.45rem; font-weight: 600; letter-spacing: .09em; line-height: 1.25; text-transform: uppercase; transition: color .18s ease; }
.artist-columns a:focus-visible, .featured-artist-list a:focus-visible { outline: 1px solid currentColor; outline-offset: 2px; }
.artist-preview { position: sticky; top: 12rem; aspect-ratio: 1.52 / 1; overflow: hidden; background: #f7f7f7; }
.artist-preview img { width: 100%; height: 100%; object-fit: cover; opacity: 1; transition: opacity .18s ease; }
.artist-preview img.is-changing { opacity: .25; }

.works-toolbar > div:first-child > * { display: inline-block; margin-right: 2rem; }
.works-toolbar h1 { display: block !important; margin: 0 0 2.5rem; }
.filter-set { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 1.2rem; max-width: 64rem; }
.filter-set select, .filter-set input { min-width: 13rem; padding: .8rem 2rem .8rem .3rem; border: 0; border-bottom: 1px solid #222; border-radius: 0; background: transparent; outline: 0; font-size: 1.2rem; text-transform: uppercase; }

.artwork-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7rem 3rem; }
.artwork-card[hidden], .artist-columns a[hidden] { display: none; }
.artwork-image { display: flex; height: min(29vw, 42rem); align-items: center; justify-content: center; overflow: hidden; background: #fafafa; }
.artwork-image img { width: 100%; height: 100%; object-fit: contain; transition: transform .4s ease; }
.artwork-image:hover img { transform: scale(1.015); }
.artwork-card h2 { margin: 1.8rem 0 .7rem; font-family: "Barlow"; font-size: 1.24rem; font-weight: 400; letter-spacing: .08em; line-height: 1.5; }
.artwork-card p { margin-bottom: 1.4rem; font-size: 1.25rem; }

/* The Storeroom follows the compact, editorial masonry catalogue treatment. */
.woocommerce-store-grid { display: block; column-count: 3; column-gap: 2.4rem; }
.woocommerce-store-grid .artwork-card { display: inline-block; width: 100%; margin: 0 0 2.6rem; break-inside: avoid; vertical-align: top; }
.woocommerce-store-grid .artwork-image { display: block; height: auto; overflow: hidden; background: transparent; }
.woocommerce-store-grid .artwork-image img { display: block; width: 100%; height: auto; object-fit: initial; }
.woocommerce-store-grid .store-artwork-caption { padding-top: .9rem; }
.woocommerce-store-grid .artwork-card h2 { margin: 0; font-family: "Barlow Condensed", Impact, sans-serif; font-size: 1.4rem; font-weight: 600; letter-spacing: .16em; line-height: 1.15; text-transform: uppercase; }
.woocommerce-store-grid .artwork-card p { margin: .45rem 0 0; font-family: "Barlow Condensed", Impact, sans-serif; font-size: 1.05rem; font-weight: 600; letter-spacing: .14em; line-height: 1.15; text-transform: uppercase; }

.button { display: inline-flex; min-height: 3.8rem; align-items: center; justify-content: center; padding: .9rem 2.3rem; border: 1px solid var(--red); background: var(--red); color: #fff; font-size: 1.1rem; cursor: pointer; }
.button.outline { background: transparent; color: var(--red); }
.button:hover { filter: brightness(.92); }

.detail-hero { display: grid; grid-template-columns: minmax(28rem, .75fr) minmax(38rem, 1.25fr); gap: 8vw; min-height: 63rem; align-items: center; }
.detail-hero img { width: 100%; max-height: 70rem; object-fit: contain; }
.detail-copy { max-width: 53rem; }
.detail-copy h1 { margin: 1.6rem 0 4rem; font-size: clamp(3.4rem, 5vw, 7rem); }
.eyebrow, .rule-label { margin: 0; font-size: 1.15rem; }
.lead { font-size: 2rem; line-height: 1.45; }
.section-heading { margin: 12rem 0 4rem; border-top: 1px solid var(--line); padding-top: 2.5rem; }

.artwork-view { display: grid; grid-template-columns: minmax(40rem, 1.35fr) minmax(31rem, .65fr); gap: 8vw; align-items: start; }
.artwork-image-wrap { display: flex; min-height: 62rem; align-items: center; justify-content: center; background: #fafafa; }
.artwork-image-wrap img { max-height: 74rem; object-fit: contain; }
.artwork-information { padding-top: 4rem; }
.artwork-information h1 { margin: 1.5rem 0 1rem; font-size: clamp(3rem, 4.5vw, 5.6rem); }
.artwork-information h2 { margin: 0 0 3rem; font-family: "Barlow"; font-size: 1.6rem; font-weight: 300; letter-spacing: .02em; text-transform: none; }
.price { margin: 3rem 0; font-size: 1.7rem; }
.artwork-information dl { display: grid; grid-template-columns: 10rem 1fr; margin: 0 0 4rem; padding-top: 2rem; border-top: 1px solid var(--line); font-size: 1.3rem; }
.artwork-information dt, .artwork-information dd { margin: 0; padding: .8rem 0; border-bottom: 1px solid var(--line); }
.artwork-information dt { text-transform: uppercase; }
.artwork-information .button { margin: 0 .8rem .8rem 0; }

.editorial-grid { display: grid; gap: 6rem 3rem; }
.editorial-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.editorial-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.editorial-card { display: block; min-width: 0; }
.editorial-card-media { display: block; width: 100%; aspect-ratio: 1 / 1; overflow: hidden; background: var(--soft); }
.editorial-card img,
.editorial-card-image-placeholder { display: block; width: 100%; height: 100%; }
.editorial-card img { object-fit: cover; transition: transform .35s ease; }
.editorial-card:hover img { transform: scale(1.015); }
.editorial-card-image-placeholder { background: #f3f2ef; }
.editorial-card-content { display: block; padding-top: 1.25rem; }
.editorial-card h2 { margin: 0 0 .8rem; font-size: 1.55rem; line-height: 1.12; }
.editorial-card-date { display: block; margin: 0; font-family: "Barlow Condensed", Impact, sans-serif; font-size: 1.1rem; font-weight: 600; letter-spacing: .13em; line-height: 1.2; text-transform: uppercase; }
.editorial-card-description { display: block; margin-top: 1rem; font-size: 1.35rem; letter-spacing: 0; line-height: 1.5; }
.editorial-card-read-more { display: block; margin-top: 1.2rem; font-family: "Barlow Condensed", Impact, sans-serif; font-size: 1.1rem; letter-spacing: .14em; line-height: 1.2; text-transform: uppercase; }

/* News articles keep their images in the original positions within the copy. */
.news-article-header { max-width: 110rem; margin: 0 0 4rem; }
.news-article-header h1 { font-size: 20px; line-height: 1.35; }
.news-article-content { max-width: 84rem; margin: 0; columns: 1; font-size: 19px; line-height: 1.65; }
.prose.news-article-content,
.news-article-content .prose { column-count: 1; column-width: auto; columns: 1; }
.news-article-content p,
.news-article-content li { font-size: 19px; }
.news-article-content h1,
.news-article-content h2,
.news-article-content h3 { margin-top: 4rem; font-size: 20px; line-height: 1.35; }
.news-article-content figure { max-width: 100%; margin: 3rem 0; }
.news-article-content img { max-width: 100%; height: auto; }
.news-article-content figcaption { margin-top: .8rem; color: #6d6d6d; font-size: 1.25rem; line-height: 1.5; }
.news-article-share { display: inline-block; margin-top: 3rem; font-family: "Barlow Condensed", Impact, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.news-article-share:hover { text-decoration: underline; text-underline-offset: .35rem; }
.rule-label { margin: -3rem 0 4rem; padding-top: 1.8rem; border-top: 1px solid #111; }

.feature-article > h1 { max-width: 100rem; font-size: clamp(4rem, 8vw, 11rem); }
.feature-article > .subtitle { margin: -4rem 0 5rem; font-size: 1.4rem; letter-spacing: .1em; text-transform: uppercase; }
.feature-intro { display: grid; grid-template-columns: minmax(28rem, 1fr) minmax(24rem, .7fr); gap: 12vw; align-items: end; margin: 2rem 0 8rem; }
.feature-intro h2 { max-width: 80rem; margin: 0; font-size: clamp(4rem, 7.5vw, 10rem); }
.feature-intro .eyebrow { padding-bottom: 1rem; }
.prose { max-width: 92rem; margin: 0 auto 8rem; columns: 2; column-gap: 8rem; font-size: 1.7rem; }
.prose.narrow { max-width: 68rem; margin-top: 6rem; columns: 1; }
.wide-image { width: 100%; max-height: 88vh; object-fit: cover; }
.feature-article .prose img { display: block; max-width: 100%; height: auto; }
.feature-article .prose figure { max-width: 100%; margin: 3rem 0; }
.feature-article .prose figcaption { margin-top: .8rem; color: #6d6d6d; font-size: 1.25rem; line-height: 1.5; }
.feature-article .prose iframe { max-width: 100%; }
.news-pagination { margin: 6rem 0 2rem; }
.news-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.news-pagination a,
.news-pagination span { display: grid; min-width: 4rem; height: 4rem; padding: 0 1.2rem; place-items: center; border: 1px solid #d7d7d7; color: inherit; text-decoration: none; }
.news-pagination .current { border-color: #111; background: #111; color: #fff; }
.split-feature { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: center; margin-top: 12rem; }
.split-feature img { width: 100%; max-height: 70rem; object-fit: cover; }
.split-feature > div { max-width: 50rem; }
.split-feature h2 { font-size: clamp(3.5rem, 5vw, 7rem); }
.text-link { padding-bottom: .4rem; border-bottom: 1px solid; font-size: 1.2rem; letter-spacing: .15em; text-transform: uppercase; }

/* Exhibitions and collection stories */
.agod-editorial-page .basket-link,
.section-exhibitions .basket-link { display: none; }

.exhibitions-page > h1 { margin-bottom: 5.2rem; }
.exhibitions-rule {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    margin-bottom: 4.2rem;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: .15em;
    line-height: 1;
    text-transform: uppercase;
}
.exhibitions-rule::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.exhibitions-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5rem 2.8rem; }
.exhibition-card { display: block; min-width: 0; }
.exhibition-card img { width: 100%; aspect-ratio: 1; object-fit: cover; background: #f6f6f5; }
.exhibition-card h2 { margin: 1.9rem 0 .7rem; font-size: 1.7rem; line-height: 1.25; }
.exhibition-card p { margin-bottom: .7rem; }
.exhibition-card .exhibition-subtitle,
.exhibition-card .exhibition-date {
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: .11em;
    line-height: 1.35;
    text-transform: uppercase;
}
.exhibition-card .exhibition-date { padding-top: .5rem; color: #6d6d6b; }
.exhibition-description { padding-top: .8rem; color: #555; font-size: 1.3rem; line-height: 1.65; }
.editorial-read-more {
    display: inline-block;
    margin-top: .8rem;
    padding-bottom: .2rem;
    border-bottom: 1px solid currentColor;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.agod-editorial { overflow: hidden; }
.agod-editorial > h1 { margin-bottom: 4.5rem; font-size: 2.7rem; }
.final-series-introduction > h1 {
    margin-bottom: 4.5rem;
    color: #000;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 18.9px;
    font-style: normal;
    font-weight: 600;
    line-height: 25.2px;
}
.editorial-full-bleed { position: relative; left: 50%; width: 100vw; margin-left: -50vw; }
.editorial-opening-copy { color: #777; font-size: 1.45rem; line-height: 2; }
.editorial-opening-copy p { margin-bottom: 2.8rem; }
.editorial-text-panel { width: min(85rem, 100%); margin: 6.5rem auto 8rem; font-size: 1.45rem; line-height: 1.9; }
.editorial-text-panel h2 { margin: 0 0 2.2rem; font-size: 1.85rem; }
.editorial-text-panel p { margin-bottom: 2rem; }
.editorial-panel-label {
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: .14em;
    line-height: 1.4;
    text-transform: uppercase;
}

.painted-history-feature { display: grid; grid-template-columns: 56.5% minmax(0, 43.5%); align-items: center; margin-top: 4.8rem; }
.painted-history-image { display: block; padding-right: 5rem; }
.painted-history-image img { width: 100%; aspect-ratio: 1; object-fit: cover; object-position: center; background: #f7f7f6; }
.painted-history-copy { display: block; max-width: 50rem; padding: 4rem 0; }
.painted-history-copy h2 { margin: 0 0 4rem; font-size: 3.1rem; line-height: 1.2; }
.painted-history-copy p { margin: 0; font-size: 1.35rem; line-height: 1.75; }

.editorial-hero { height: 75vh; min-height: 52rem; background-position: center; background-size: cover; }
.editorial-hero-emily {
    background-image: linear-gradient(rgba(0,0,0,.2), rgba(0,0,0,.2)), url("../images/editorial/emily-wall-hero.webp");
}
.editorial-concept-panel { margin-top: 9rem; }
.editorial-concept-panel h2 { margin-bottom: .8rem; }
.editorial-concept-panel .editorial-panel-label { margin-bottom: 3rem; color: #777; }

.editorial-carousel { margin-top: 8rem; margin-bottom: 8rem; }
.editorial-carousel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
    padding: 0 var(--page-gutter) 2rem;
}
.editorial-carousel-header p { margin: 0; }
.editorial-carousel-controls { display: flex; flex-shrink: 0; gap: .7rem; }
.editorial-carousel-controls button {
    display: grid;
    width: 3.4rem;
    height: 3.4rem;
    place-items: center;
    border: 1px solid #bdbdb9;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
}
.editorial-carousel-track {
    display: flex;
    gap: 2rem;
    overflow-x: auto;
    padding: 0 var(--page-gutter) 1.5rem;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-color: #222 #e8e8e5;
    scrollbar-width: thin;
}
.editorial-carousel-track figure { flex: 0 0 auto; margin: 0; scroll-snap-align: start; }
.editorial-carousel-track img { width: auto; max-width: none; height: min(55rem, 55vh); object-fit: contain; }
.editorial-carousel-track figcaption { max-width: 50rem; padding-top: .8rem; color: #777; font-size: 1.05rem; }

.editorial-related { margin-top: 10rem; }
.editorial-related > h2 { margin: 0 0 4.5rem; font-size: 1.85rem; }
.editorial-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6rem 4rem; }
.editorial-related-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.editorial-related-grid h3 {
    margin: 1.8rem 0 .8rem;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.7rem;
    font-weight: 600;
    letter-spacing: .14em;
    line-height: 1.25;
    text-transform: uppercase;
}
.editorial-related-grid p { margin-bottom: 1.2rem; font-size: 1.3rem; line-height: 1.7; }
.editorial-related-grid .editorial-card-subtitle {
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.final-series-introduction {
    width: 100%;
    max-width: none;
    padding: clamp(3rem, 4.5vw, 6rem) 0;
}
.final-series-deck {
    margin: 0 0 3.5rem;
    color: #000;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 13.125px;
    font-style: normal;
    font-weight: 600;
    letter-spacing: .12em;
    line-height: 18.375px;
    text-transform: uppercase;
}
.final-series-story {
    color: #000;
    font-family: "Barlow", sans-serif;
    font-size: 15.225px;
    font-style: normal;
    font-weight: 200;
    line-height: 32.55px;
}
.final-series-story p { margin-bottom: 2.2rem; }
.final-series-credit { color: #777; }
.final-series-collection-title {
    margin: 8rem 0 10rem;
    color: var(--red);
    font-size: 1.8rem;
    text-align: center;
    text-decoration: underline;
    text-underline-offset: .5rem;
}
.final-artwork-panel { display: flex; align-items: center; margin-bottom: 7.5rem; }
.final-artwork-image { display: flex; width: 60%; min-height: 60rem; align-items: center; justify-content: center; padding: 3rem; background: #fafafa; }
.final-artwork-image img { width: 100%; max-height: 82vh; object-fit: contain; }
.final-artwork-copy { width: 40%; padding-left: 7rem; }
.final-artwork-copy h2 { margin: 0 0 2.4rem; font-size: 3rem; line-height: 1.3; }
.final-artwork-subtitle {
    margin: 0 0 1.8rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid var(--line);
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.final-artwork-copy dl { display: grid; grid-template-columns: 10rem 1fr; margin: 0; font-size: 1.3rem; }
.final-artwork-copy dt,
.final-artwork-copy dd { margin: 0; padding: .5rem 0; }
.final-artwork-copy dt { text-transform: uppercase; }
.final-process-image { height: 75vh; min-height: 52rem; margin-bottom: 7.5rem; background-position: center; background-size: cover; }
.final-series-exhibitions { margin-top: 11rem; }
.final-series-exhibitions > h2 { margin: 0 0 4rem; font-size: 1.85rem; }
.final-series-exhibition-table { display: grid; grid-template-columns: 15% 85%; gap: 1.6rem; font-size: 1.35rem; line-height: 1.65; }
.final-series-year {
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-weight: 600;
    letter-spacing: .12em;
}

@media (min-width: 900px) {
    .final-process-image { background-attachment: fixed; }
}

.store-tabs { margin: -3rem 0 6rem; }
.section-title { margin: 0 0 4rem; font-size: 1.8rem; }
.basket-page { max-width: 105rem; }
.basket-item { display: grid; grid-template-columns: 10rem 1fr auto auto; gap: 2rem; align-items: center; padding: 2rem 0; border-top: 1px solid var(--line); }
.basket-item img { width: 10rem; height: 10rem; object-fit: contain; background: #fafafa; }
.basket-item button { border: 0; background: transparent; text-decoration: underline; cursor: pointer; }
.basket-total { display: flex; justify-content: space-between; margin: 3rem 0; padding-top: 2rem; border-top: 1px solid #111; font-size: 2rem; }
.empty-basket { padding: 4rem 0; border-top: 1px solid var(--line); }

.contact-page { max-width: 90rem; }
.contact-form { display: grid; grid-template-columns: 20rem 1fr; gap: 2rem 4rem; align-items: start; }
.contact-form label { padding-top: 1rem; letter-spacing: .1em; text-transform: uppercase; }
.contact-form input, .contact-form textarea { width: 100%; padding: 1rem 0; border: 0; border-bottom: 1px solid #111; border-radius: 0; outline: 0; resize: vertical; }
.form-note { margin-top: 3rem; font-size: 1.2rem; }
.form-success { margin-bottom: 3rem; padding: 1.5rem; border: 1px solid var(--red); color: var(--red); }
.social-row { display: flex; gap: 3rem; margin-top: 8rem; padding-top: 2rem; border-top: 1px solid var(--line); font-size: 1.2rem; letter-spacing: .12em; text-transform: uppercase; }

/* Manage Cookies on its own line, the copyright under it, both ranged left.
   Previously the two were pushed to opposite ends of the page by
   space-between, which read as a toolbar rather than a colophon and left the
   copyright stranded against the right margin. */
.site-footer {
    display: grid;
    justify-content: start;
    gap: 1.2rem 3rem;
    padding: 3.5rem var(--page-gutter) 4rem;
    border-top: 1px solid var(--line);
    font-size: 1.1rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.site-footer button {
    justify-self: start;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-weight: 600;
    letter-spacing: .15em;
    text-decoration: none;
    text-transform: uppercase;
}

.is-home .site-footer {
    position: relative;
    z-index: 5;
    padding: 3.5rem max(var(--page-gutter), 7.7vw) 6rem;
    background: #fff;
    color: #090909;
}

.cookie-banner {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 300;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4rem;
    padding: 1.5rem var(--page-gutter);
    border-top: 1px solid #cfcfcb;
    background: rgba(255,255,255,.98);
    box-shadow: 0 -1rem 3rem rgba(0,0,0,.07);
}
.cookie-banner[hidden] { display: none; }
.cookie-banner strong { font-weight: 600; }
.cookie-banner p { margin: .2rem 0 0; font-size: 1.2rem; }
.cookie-actions { display: flex; flex-shrink: 0; align-items: center; gap: 1rem; }
.cookie-actions > button:first-child { border: 0; background: transparent; font-size: 1.1rem; text-decoration: underline; cursor: pointer; }

.notice-modal, .enquiry-modal {
    position: fixed;
    inset: 0;
    z-index: 250;
    display: grid;
    visibility: hidden;
    place-items: center;
    padding: 3rem;
    background: rgba(0,0,0,.78);
    opacity: 0;
    transition: .25s ease;
}
.notice-modal.is-open, .enquiry-modal.is-open { visibility: visible; opacity: 1; }
.notice-card, .enquiry-modal form { position: relative; width: min(64rem, 100%); max-height: calc(100vh - 6rem); overflow: auto; padding: 5rem; background: #fff; }
.notice-card h2, .enquiry-modal h2 { margin: 3rem 0 1.5rem; font-size: 2.3rem; }
.notice-card .button { margin-top: 1rem; }
.enquiry-modal form { display: grid; gap: 1.5rem; }
.enquiry-modal input, .enquiry-modal textarea { padding: 1rem; border: 1px solid var(--line); }

@media (max-width: 1050px) {
    :root { --page-gutter: 3rem; }
    .final-series-introduction { padding: clamp(3rem, 4.5vw, 6rem); }
    .artwork-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .artwork-image { height: 39vw; }
    .woocommerce-store-grid { column-count: 3; }
    .woocommerce-store-grid .artwork-image { height: auto; }
    .editorial-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .exhibitions-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .editorial-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .final-artwork-copy { padding-left: 4rem; }
    .artist-preview-layout { grid-template-columns: minmax(34rem, .9fr) minmax(38rem, 1.1fr); gap: 4rem; }
}

@media (max-width: 760px) {
    :root { --page-gutter: 3rem; }
    html { font-size: 9.5px; }
    .wordmark { max-width: 31rem; font-size: 30px; line-height: 36px; white-space: normal; }
    .site-header { padding-top: 2rem; }
    .menu-visual { right: 44%; }
    .menu-inner { width: 44%; min-width: 0; gap: 2.3rem; padding: 8.5rem 3rem 4rem; }
    .main-nav { gap: 3rem; }
    .main-nav a { font-size: 1.45rem; }
    .menu-meta { gap: 2.2rem; }
    .hero-copy { right: 2rem; bottom: 8rem; }
    .hero-copy p { font-size: 3.5rem; }
    .slider-controls { right: auto; left: 2rem; bottom: 3rem; }
    .home-notice { padding: 5rem 2rem 6rem; }
    .home-notice > h2 { margin-bottom: 4rem; }
    .home-notice-block { margin-bottom: 4.5rem; }
    .home-notice-block p { font-size: 1.45rem; line-height: 1.75; }
    .page-shell { padding-top: 13rem; padding-bottom: 8rem; }
    .page-shell > h1 { margin-bottom: 4rem; }
    .page-heading-row, .works-toolbar { display: block; margin-bottom: 4rem; }
    .view-switch { margin-top: 2rem; }
    .filter-set { justify-content: flex-start; margin-top: 3rem; }
    .filter-set select, .filter-set input { width: calc(50% - .6rem); }
    .artist-columns { columns: 1; }
    .artist-preview-layout { grid-template-columns: 1fr; gap: 4rem; }
    .featured-artist-list { columns: 1; }
    .artist-preview { position: static; order: -1; }
    .artwork-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5rem 1.5rem; }
    .artwork-image { height: 58vw; }
    .woocommerce-store-grid { column-count: 2; column-gap: 1.5rem; }
    .woocommerce-store-grid .artwork-card { margin-bottom: 2rem; }
    .woocommerce-store-grid .artwork-image { height: auto; }
    .detail-hero, .artwork-view, .split-feature, .feature-intro { grid-template-columns: 1fr; gap: 4rem; }
    .detail-hero { min-height: 0; }
    .detail-copy h1 { font-size: 4rem; }
    .artwork-image-wrap { min-height: 42rem; }
    .artwork-information { padding-top: 0; }
    .editorial-grid.three, .editorial-grid.four { grid-template-columns: 1fr; }
    .prose { columns: 1; }
    .feature-article > h1 { font-size: 5.4rem; }
    .feature-intro h2 { font-size: 4.5rem; }
    .exhibitions-page > h1 { margin-bottom: 4rem; }
    .exhibitions-rule { margin-bottom: 6rem; }
    .exhibitions-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem 3rem; }
    .agod-editorial > h1 { margin-bottom: 3rem; font-size: 2.5rem; }
    .final-series-introduction > h1 { margin-bottom: 3rem; }
    .editorial-opening-copy { font-size: 1.4rem; line-height: 2.28; }
    .editorial-opening-copy p { margin-bottom: 3.6rem; }
    .painted-history-feature { grid-template-columns: 1fr; margin-top: 4rem; }
    .painted-history-image { padding-right: 0; }
    .painted-history-copy { padding: 4rem 0 0; }
    .painted-history-copy h2 { margin-bottom: 2.5rem; font-size: 2.7rem; }
    .editorial-hero,
    .final-process-image { height: 58vh; min-height: 34rem; }
    .editorial-text-panel { margin: 5rem auto 6rem; }
    .editorial-carousel { margin-top: 6rem; margin-bottom: 6rem; }
    .editorial-carousel-header { align-items: flex-start; }
    .editorial-carousel-track { gap: 1.2rem; }
    .editorial-carousel-track img { height: min(44rem, 48vh); }
    .editorial-related { margin-top: 7rem; }
    .editorial-related-grid { grid-template-columns: 1fr; gap: 5rem; }
    .final-series-collection-title { margin: 6rem 0 7rem; }
    .final-artwork-panel { flex-direction: column; margin-bottom: 5rem; }
    .final-artwork-image { width: 100%; min-height: 42rem; padding: 2rem; }
    .final-artwork-image img { max-height: 70vh; }
    .final-artwork-copy { width: 100%; padding: 3rem 0 0; }
    .final-artwork-copy h2 { margin-bottom: 1.5rem; font-size: 2.6rem; }
    .final-process-image { margin-bottom: 5rem; background-attachment: scroll; }
    .final-series-exhibitions { margin-top: 7rem; }
    .final-series-exhibition-table { grid-template-columns: 20% 80%; gap: 2rem 1.2rem; }
    .contact-form { grid-template-columns: 1fr; gap: .5rem; }
    .contact-form label { padding-top: 1.5rem; }
    .contact-form span { display: none; }
    .basket-item { grid-template-columns: 7rem 1fr auto; }
    .basket-item img { width: 7rem; height: 7rem; }
    .basket-item button { grid-column: 2 / -1; justify-self: start; }
    .cookie-banner { align-items: flex-start; flex-direction: column; gap: 4rem; padding: 2.2rem 2rem 3rem; }
    .cookie-banner p { margin-top: .6rem; font-size: 1.45rem; line-height: 2.7; }
    .cookie-actions { width: 100%; flex-wrap: wrap; justify-content: flex-end; }
    .cookie-actions .button { flex: 0 0 auto; }
    .cookie-actions .button:last-child { min-width: 8.5rem; }
    .notice-card, .enquiry-modal form { padding: 4rem 2.5rem; }
    .is-home .site-footer { gap: 1rem; padding: 3rem 2rem 5rem; }
}

@media (max-width: 600px) {
    .menu-visual { display: none; }
    .menu-inner { width: 100%; min-width: 0; padding: 8.5rem 3rem 4rem; }
}

@media (max-width: 459px) {
    :root { --page-gutter: 2rem; }
    .exhibitions-grid { grid-template-columns: 1fr; gap: 5rem; }
}

@media (max-width: 430px) {
    .artwork-grid { grid-template-columns: 1fr; }
    .artwork-image { height: 100vw; }
    .woocommerce-store-grid { column-count: 1; }
    .woocommerce-store-grid .artwork-image { height: auto; }
    .filter-set select, .filter-set input { width: 100%; }
    .social-row { flex-direction: column; gap: 1rem; }
    .editorial-carousel-header { gap: 1.5rem; }
    .editorial-carousel-controls button { width: 3rem; height: 3rem; }
    .editorial-carousel-track img { height: 38vh; }
    .final-artwork-image { min-height: 34rem; }
    .final-series-exhibition-table { grid-template-columns: 1fr; gap: .4rem; }
    .final-series-year { margin-top: 1.8rem; }
    .cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .cookie-actions > button:first-child { grid-column: 1 / -1; justify-self: start; }
    .cookie-actions .button { width: 100%; padding-right: 1rem; padding-left: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Live catalogue parity: Available Works, Storeroom and record detail views. */
.works-page,
.store-page {
    padding-top: 14.5rem;
}

.works-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 4rem;
    margin-bottom: 4.4rem;
}

.works-heading h1,
.store-page > h1 {
    font-size: 2.65rem;
}

.works-categories,
.store-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 2.8rem;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.35rem;
    font-weight: 600;
    letter-spacing: .15em;
    line-height: 1.2;
    text-transform: uppercase;
}

.works-categories a,
.store-tabs a {
    padding-bottom: .35rem;
    border-bottom: 1px solid transparent;
}

.works-categories a.is-active,
.store-tabs a.is-active {
    border-color: currentColor;
}

.works-filter-form {
    display: flex;
    min-height: 4rem;
    align-items: center;
    justify-content: flex-end;
    gap: 2.5rem;
    margin: 0 0 6rem;
}

.works-filter-form label {
    position: relative;
    display: block;
}

.works-filter-form label > span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.works-filter-form select,
.works-filter-form input {
    width: auto;
    min-width: 11rem;
    height: 3.8rem;
    padding: 0 2.2rem 0 0;
    border: 0;
    border-radius: 0;
    outline: 0;
    background-color: transparent;
    color: #111;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.3rem;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.works-filter-form input {
    width: 12rem;
    padding-right: 0;
    border-bottom: 1px solid transparent;
}

.works-filter-form input:focus {
    border-color: #111;
}

.works-filter-form input::placeholder {
    color: #111;
    opacity: 1;
}

.filter-submit {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.filter-reset {
    padding-bottom: .25rem;
    border-bottom: 1px solid;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.works-page .artwork-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6rem 4rem;
}

.works-page .artwork-image {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    background: #f7f7f5;
}

.works-page .artwork-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.artwork-card-caption {
    padding-top: 1.7rem;
}

.works-page .artwork-card h2,
.works-page .artwork-card p {
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.works-page .artwork-card h2 {
    margin: 0 0 .7rem;
    font-size: 1.45rem;
    line-height: 1.45;
}

.works-page .artwork-card p {
    margin: 0 0 1.7rem;
    font-size: 1.2rem;
}

.button-compact {
    min-height: 3.6rem;
    padding: .8rem 1.45rem;
    font-size: 1.05rem;
}

.catalogue-empty {
    padding: 8rem 0;
    border-top: 1px solid var(--line);
    text-align: center;
}

.catalogue-pagination {
    margin-top: 8rem;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.catalogue-pagination ul {
    display: flex;
    justify-content: center;
    gap: 1.8rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.catalogue-pagination .current {
    padding-bottom: .3rem;
    border-bottom: 1px solid;
}

.store-page .store-tabs {
    margin: -3.6rem 0 6rem;
}

.store-page .section-title {
    margin-bottom: 5rem;
    font-size: 2rem;
}

.single-agod_artwork .site-header,
.single-product .site-header {
    display: none;
}

.catalogue-detail {
    position: relative;
    display: grid;
    min-height: 100vh;
    grid-template-columns: minmax(28rem, 35rem) minmax(0, 1fr);
    gap: clamp(5rem, 8vw, 13rem);
    padding: 8.7rem 7vw 7rem;
    background: #fff;
}

.catalogue-detail-panel {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    max-width: 35rem;
}

.catalogue-detail-media {
    display: flex;
    min-width: 0;
    min-height: calc(100vh - 16rem);
    grid-column: 2;
    grid-row: 1;
    align-items: center;
    justify-content: center;
}

.catalogue-image-button {
    display: flex;
    width: 100%;
    height: 100%;
    max-height: calc(100vh - 15rem);
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}

/*
 * Fills the frame rather than sitting at its intrinsic size.
 *
 * With `width: auto` the picture rendered at whatever pixel width the file
 * happened to be, so an image narrower than the column -- which is most of
 * them once WordPress has resized on upload -- floated small in the middle of
 * a much larger empty space. Filling the box and letting `contain` do the
 * letterboxing keeps the aspect ratio exactly as before, but a short source now
 * scales up to the frame instead of leaving it half empty.
 */
.catalogue-image-button img {
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: calc(100vh - 15rem);
    object-fit: contain;
}

.catalogue-detail-panel h1 {
    margin: 0 0 4.5rem;
    font-size: 2.6rem;
    line-height: 1.2;
}

.catalogue-detail-title {
    margin: 0 0 1.4rem;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.6rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.catalogue-caption p {
    margin: 0 0 .8rem;
    font-size: 1.5rem;
    line-height: 1.4;
}

.catalogue-detail-price {
    margin: 3.2rem 0 1.7rem;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.65rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.catalogue-primary-action {
    width: 100%;
    min-height: 4.4rem;
}

.catalogue-secondary-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: .7rem;
}

.catalogue-add-to-cart,
.catalogue-enquire-action {
    min-width: 0;
}

.catalogue-add-to-cart form,
.catalogue-add-to-cart .quantity {
    margin: 0 !important;
}

.catalogue-add-to-cart .quantity {
    display: none !important;
}

.catalogue-add-to-cart button,
.catalogue-enquire-action {
    width: 100%;
    min-height: 4.4rem;
    padding: .8rem 1rem;
    border: 1px solid #aaa;
    border-radius: 0;
    background: transparent;
    color: #111;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
    cursor: pointer;
}

.catalogue-secondary-actions > :last-child {
    border-left: 0;
}

.catalogue-currency {
    margin-top: 4.5rem;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.catalogue-currency span {
    margin-left: 1rem;
}

.catalogue-wall-link {
    display: flex;
    align-items: center;
    gap: 1.3rem;
    margin-top: 2.6rem;
    padding: 0;
    border: 0;
    background: transparent;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.35rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    cursor: pointer;
}

.catalogue-description {
    margin-top: 4.2rem;
    font-size: 1.45rem;
}

.catalogue-description p {
    margin-bottom: .7rem;
}

.catalogue-share {
    margin-top: 4rem;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.catalogue-share summary {
    display: inline-block;
    padding: .4rem .8rem;
    border: 1px solid #bbb;
    cursor: pointer;
}

.catalogue-share summary::before {
    content: "+";
}

.catalogue-share[open] summary::before {
    content: "−";
}

.catalogue-share div {
    padding-top: 1rem;
}

.catalogue-detail-close {
    position: absolute;
    top: 2.8rem;
    right: 3rem;
    z-index: 2;
    width: 2.5rem;
    height: 2.5rem;
}

.catalogue-detail-close span {
    position: absolute;
    top: 1.2rem;
    left: 0;
    width: 100%;
    height: 1px;
    background: #111;
}

.catalogue-detail-close span:first-child { transform: rotate(45deg); }
.catalogue-detail-close span:last-child { transform: rotate(-45deg); }

.catalogue-detail-navigation {
    position: absolute;
    right: 3rem;
    bottom: 2.5rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    font-size: 1.2rem;
}

.catalogue-detail-navigation a {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    font-size: 2.7rem;
    line-height: 1;
}

.catalogue-image-modal {
    position: fixed;
    inset: 0;
    z-index: 600;
    display: flex;
    visibility: hidden;
    align-items: center;
    justify-content: center;
    padding: 6rem;
    background: rgba(255, 255, 255, .98);
    opacity: 0;
    transition: opacity .25s ease, visibility .25s;
}

.catalogue-image-modal.is-open {
    visibility: visible;
    opacity: 1;
}

.catalogue-image-modal.is-wall {
    background: linear-gradient(to bottom, #eee 0, #eee 72%, #c9bca9 72%, #c9bca9 100%);
}

.catalogue-image-modal.is-wall::after {
    content: "";
    position: absolute;
    right: 20%;
    bottom: 12%;
    left: 20%;
    height: 1.8rem;
    border-radius: 50%;
    background: rgba(0, 0, 0, .12);
    filter: blur(1.5rem);
}

.catalogue-image-modal img {
    position: relative;
    z-index: 1;
    max-width: 90vw;
    max-height: 86vh;
    object-fit: contain;
}

.catalogue-image-modal.is-wall img {
    max-width: 54vw;
    max-height: 58vh;
    box-shadow: 0 1.6rem 3rem rgba(0, 0, 0, .2);
}

.catalogue-image-modal-close {
    position: absolute;
    top: 2rem;
    right: 3rem;
    z-index: 3;
    border: 0;
    background: transparent;
    font-size: 3.5rem;
    font-weight: 300;
    cursor: pointer;
}

@media (max-width: 1050px) {
    .works-page .artwork-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .works-filter-form { justify-content: flex-start; flex-wrap: wrap; }
    .catalogue-detail { grid-template-columns: minmax(25rem, 32rem) minmax(0, 1fr); gap: 5rem; padding-right: 4rem; padding-left: 4rem; }
}

@media (max-width: 760px) {
    .works-page, .store-page { padding-top: 11.5rem; }
    .works-heading { display: block; margin-bottom: 3.5rem; }
    .works-heading h1 { margin-bottom: 1.5rem; }
    .works-filter-form { gap: 1rem 2.4rem; margin-bottom: 4.5rem; }
    .works-filter-form select, .works-filter-form input { min-width: 0; width: auto; max-width: 13rem; }
    .works-page .artwork-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4.5rem 3rem; }
    .works-page .artwork-card h2 { font-size: 1.35rem; }
    .catalogue-detail { display: flex; min-height: 100vh; flex-direction: column; gap: 5rem; padding: 7rem 2rem 8rem; }
    .catalogue-detail-media { min-height: 0; order: 1; }
    .catalogue-detail-panel { width: 100%; max-width: none; order: 2; }
    .catalogue-image-button, .catalogue-image-button img { max-height: 70vh; }
    .catalogue-detail-panel h1 { margin-bottom: 2.2rem; }
    .catalogue-image-modal { padding: 4rem 2rem; }
    .catalogue-image-modal.is-wall img { max-width: 80vw; }
}

@media (max-width: 430px) {
    .works-page .artwork-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; }
    .works-page .artwork-card h2 { font-size: 1.2rem; }
    .works-page .artwork-card p { font-size: 1.1rem; }
    .button-compact { min-height: 3.4rem; padding-right: 1rem; padding-left: 1rem; }
}

/* Our Origins mirrors the long-form feature-panel treatment of the reference site. */
.origins-page > h1 {
    margin-bottom: 10.5rem;
    color: #000;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 18.9px;
    font-style: normal;
    font-weight: 600;
    line-height: 25.2px;
}

.origins-panel {
    margin-bottom: 10rem;
}

.origins-panel:last-child {
    margin-bottom: 0;
}

.origins-panel-heading {
    margin-bottom: 3.5rem;
}

.origins-panel-heading h2 {
    margin: 0 0 1rem;
    color: #000;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 19px;
    font-style: normal;
    font-weight: 600;
    letter-spacing: .14em;
    line-height: 25.2px;
    text-transform: uppercase;
}

.origins-panel-heading p {
    margin: 0;
    color: #000;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 13.125px;
    font-style: normal;
    font-weight: 600;
    letter-spacing: .12em;
    line-height: 18.375px;
    text-transform: uppercase;
}

.origins-copy {
    color: #111;
    font-family: "Barlow", sans-serif;
    font-size: 15.225px;
    font-style: normal;
    font-weight: 300;
    line-height: 32.55px;
}

.origins-copy p {
    margin: 0 0 2.8rem;
}

.origins-copy p:last-child {
    margin-bottom: 0;
}

.origins-panel--text[data-panel="6"] .origins-copy,
.origins-panel--split[data-panel="9"] .origins-copy,
.origins-panel--text[data-panel="10"] .origins-copy,
.origins-panel--text[data-panel="14"] .origins-copy {
    color: #696969;
    font-size: 13.2px;
    line-height: 25px;
}

.origins-panel--continuation {
    margin-top: -5rem;
}

.origins-panel--split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(5rem, 7vw, 10rem);
    align-items: start;
}

.origins-split-media {
    display: grid;
    min-height: 70rem;
    background: #f5f5f3;
}

.origins-split-media > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.origins-split-media--collage {
    min-height: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    background: transparent;
}

.origins-split-media--collage > img {
    aspect-ratio: 1;
}

.origins-split-content {
    padding-top: 1.5rem;
}

.origins-panel--gallery {
    position: relative;
    left: 50%;
    width: 100vw;
    margin-left: -50vw;
}

.origins-panel--gallery > .origins-panel-heading {
    padding-right: var(--page-gutter);
    padding-left: var(--page-gutter);
}

.origins-gallery-track {
    display: flex;
    gap: 2rem;
    overflow-x: auto;
    padding: 0 var(--page-gutter) 2rem;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-color: #222 #e7e7e4;
    scrollbar-width: thin;
}

.origins-gallery-track figure {
    flex: 0 0 auto;
    margin: 0;
    scroll-snap-align: start;
}

.origins-gallery-track img {
    width: auto;
    max-width: none;
    height: min(55rem, 55vh);
    object-fit: contain;
}

.origins-gallery-track figcaption {
    width: min(46rem, 80vw);
    padding-top: 1rem;
    color: #666;
    font-size: 1.15rem;
    line-height: 1.55;
}

.origins-panel--hero {
    position: relative;
    left: 50%;
    width: 100vw;
    min-height: 68rem;
    margin-left: -50vw;
    overflow: hidden;
    background: #151515;
}

.origins-panel--hero > img {
    width: 100%;
    height: max(68rem, 72vh);
    object-fit: cover;
}

.origins-panel--hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.55));
}

.origins-hero-heading {
    position: absolute;
    right: var(--page-gutter);
    bottom: 6rem;
    left: var(--page-gutter);
    z-index: 1;
    color: #fff;
}

.origins-hero-heading .origins-panel-heading {
    margin: 0;
}

.origins-hero-heading .origins-panel-heading h2,
.origins-hero-heading .origins-panel-heading p {
    color: #fff;
}

.origins-hero-heading .origins-panel-heading h2 {
    font-size: clamp(3.8rem, 5vw, 7rem);
    line-height: 1.05;
}

.origins-thanks {
    color: var(--red);
    font-family: "Barlow Condensed", sans-serif;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
}

@media (max-width: 1050px) {
    .origins-page > h1 { margin-bottom: 8rem; }
    .origins-panel { margin-bottom: 8rem; }
    .origins-panel--continuation { margin-top: -3rem; }
    .origins-panel--split { grid-template-columns: 1fr; gap: 4rem; }
    .origins-split-media { min-height: 0; }
    .origins-split-media:not(.origins-split-media--collage) > img { max-height: 75vh; object-position: center 24%; }
    .origins-split-content { padding-top: 0; }
}

@media (max-width: 760px) {
    .origins-page { padding-top: 18rem; }
    .origins-page > h1 { margin-bottom: 6rem; }
    .origins-panel { margin-bottom: 7rem; }
    .origins-panel-heading { margin-bottom: 2.5rem; }
    .origins-copy { font-size: 15px; line-height: 29px; }
    .origins-panel--text[data-panel="6"] .origins-copy,
    .origins-panel--split[data-panel="9"] .origins-copy,
    .origins-panel--text[data-panel="10"] .origins-copy,
    .origins-panel--text[data-panel="14"] .origins-copy { font-size: 13px; line-height: 24px; }
    .origins-copy p { margin-bottom: 2.4rem; }
    .origins-split-media--collage { gap: .8rem; }
    .origins-gallery-track { gap: 1.2rem; }
    .origins-gallery-track img { height: min(39rem, 47vh); }
    .origins-panel--hero { min-height: 46rem; }
    .origins-panel--hero > img { height: max(46rem, 58vh); }
    .origins-hero-heading { bottom: 4rem; }
    .origins-hero-heading .origins-panel-heading h2 { font-size: 4rem; }
}

@media (max-width: 430px) {
    .origins-split-media--collage { grid-template-columns: 1fr; }
    .origins-gallery-track img { height: 34rem; }
}

/* News archive search
   ------------------------------------------------------------------ */

.news-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 2rem 3rem;
}

.news-heading h1 {
    margin-bottom: 0;
}

.news-search-form {
    display: flex;
    min-height: 4rem;
    align-items: center;
    gap: 2rem;
}

.news-search-form label {
    position: relative;
    display: block;
}

.news-search-form .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.news-search-form input {
    width: 22rem;
    max-width: 100%;
    height: 3.8rem;
    padding: 0;
    border: 0;
    border-bottom: 1px solid #d7d7d7;
    border-radius: 0;
    outline: 0;
    background-color: transparent;
    color: #111;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.3rem;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.news-search-form input:focus {
    border-bottom-color: #111;
}

.news-search-form input::placeholder {
    color: #111;
    opacity: .55;
}

.news-search-submit {
    padding: 0 0 .25rem;
    border: 0;
    border-bottom: 1px solid;
    background: none;
    color: inherit;
    cursor: pointer;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.news-search-summary {
    margin: 2.5rem 0 0;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
    opacity: .6;
}

@media (max-width: 720px) {
    .news-heading {
        flex-direction: column;
        align-items: stretch;
    }

    /* The label wraps the input, so it has to grow before the input can. */
    .news-search-form label {
        flex: 1 1 auto;
        min-width: 0;
    }

    .news-search-form input { width: 100%; }
}

/* -----------------------------------------------------------------------------
   News live filter
   -------------------------------------------------------------------------- */

/* Used by the filter to hide the summary line and the Clear link until there is
   something to say. A class rather than an inline style, so the server render
   and the script agree on what hidden means. */
.is-hidden {
    display: none !important;
}

/* The grid dims while a search is in flight. Enough to say "this is being
   replaced" without the page appearing to break; the old results stay readable
   underneath, which matters when somebody is still typing. */
.editorial-grid.is-filtering {
    opacity: 0.45;
    transition: opacity 0.12s ease-out;
    pointer-events: none;
}

.news-search-summary[aria-live] {
    min-height: 1.2em;
}

/* Nothing should jump when the pagination empties on a single-page result. */
.news-pagination:empty {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    .editorial-grid.is-filtering {
        transition: none;
    }
}

/* ---------------------------------------------------------------------------
   Available Works: live search
   ------------------------------------------------------------------------ */

/* The search sits at the left end of the filter row and the filters stay at the
   right. margin-right:auto rather than a wrapping element, so the row remains a
   single flex line and every field keeps the same baseline. */
.works-search {
    margin-right: auto;
}

/* Unlike the filter selects, this one has to read as a field before it is used:
   it is the first thing on the row and nothing else explains what it does. So
   the rule under it is always drawn, not only on focus. */
.works-filter-form .works-search input {
    width: min(26rem, 38vw);
    border-bottom: 1px solid #111;
}

.works-search-summary {
    margin: -4rem 0 3rem;
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
}

/* Dims while a search is in flight. Enough to say "this is being replaced"
   without the page appearing to break; the old results stay readable
   underneath, which matters when somebody is still typing. */
[data-works-results].is-filtering {
    opacity: 0.45;
    transition: opacity 0.12s ease-out;
    pointer-events: none;
}

/* Nothing should jump when the pagination empties on a single-page result. */
.catalogue-pagination:empty {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    [data-works-results].is-filtering {
        transition: none;
    }
}

@media (max-width: 1050px) {
    /* Once the row wraps there is no left and right any more, so the search
       takes the full first line rather than sitting stranded beside a gap. */
    .works-search {
        width: 100%;
        margin-right: 0;
    }

    .works-filter-form .works-search input {
        width: 100%;
        max-width: none;
    }

    .works-search-summary {
        margin-top: -3rem;
    }
}

/* ---------------------------------------------------------------------------
   News archive cards: headline and date only
   ------------------------------------------------------------------------ */

/* The date sits on one line across the row rather than wherever each headline
   happens to end. These headlines run to three lines, and a date that floated
   up under the short ones left the row looking misaligned. The card stretches
   to the tallest in its row, the content fills what is left of it, and the date
   is pushed to the bottom. */
.news-archive .editorial-card {
    display: flex;
    flex-direction: column;
}

.news-archive .editorial-card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.news-archive .editorial-card h2 {
    margin-bottom: 1.4rem;
}

.news-archive .editorial-card-date {
    margin-top: auto;
}
