/* Shared compositions inherit the active design's palette, typography and spacing. */
body.canvas :is(.ac-single-artwork, .ac-site-header, .ac-site-footer) { font-family: var(--ac-font-body); color: var(--ac-text); }
body.canvas :is(.ac-single-artwork, .ac-site-header, .ac-site-footer) :is(h1, h2, .site-title) { font-family: var(--ac-font-heading); }
body.canvas .ac-single-artwork.container { width: min(calc(100% - var(--ac-page-gutter-total)), var(--canvas-container-max)); max-width: none; margin-inline: auto; }
body.canvas .ac-single-artwork { padding-block: calc(var(--ac-layout-gap) * .55) var(--ac-layout-gap); }
.ac-single-artwork * { min-width: 0; box-sizing: border-box; }
.ac-artwork-back { margin-bottom: calc(var(--ac-layout-gap) * .6); font-size: 1.3rem; }
.ac-artwork-back a { display: inline-flex; align-items: center; min-height: 44px; }
body.canvas .ac-single-artwork h1 { margin: 0 0 1.6rem; text-align: left; overflow-wrap: anywhere; }
body.canvas .ac-single-artwork h2 { margin: 0; }
.ac-artwork-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: var(--ac-layout-gap); align-items: start; }
.ac-artwork-gallery { background: var(--ac-background); color: var(--ac-text); }
.ac-single-artwork .art_imagegallery { width: 100%; }
.ac-single-artwork .cde-art-slide { margin: 0; padding: clamp(16px, 3vw, 40px); }
.ac-single-artwork .cde-art-slide[hidden], .ac-single-artwork .cde-art-gallery-controls[hidden] { display: none; }
.ac-single-artwork .cde-art-image-link { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; }
.ac-single-artwork .cde-art-image { display: block; width: 100%; height: 100%; object-fit: contain; }
.ac-single-artwork figcaption { margin-top: 1.6rem; font-size: 1.2rem; }
.ac-single-artwork .cde-art-gallery-controls { display: flex; align-items: center; gap: 1rem; padding: 0 1.6rem 1.6rem; }
.ac-single-artwork .cde-art-thumbnails { display: flex; gap: .8rem; overflow-x: auto; flex: 1; padding: .4rem; }
body.canvas .ac-single-artwork .cde-art-gallery-controls button { min-width: 44px; min-height: 44px; padding: .6rem; margin: 0; flex-shrink: 0; }
.ac-single-artwork .cde-art-thumbnails img { display: block; width: 44px; height: 44px; object-fit: contain; }
.ac-single-artwork [data-art-slide][aria-pressed="true"] { outline: 2px solid var(--ac-focus); outline-offset: 1px; }
.ac-single-artwork .art_metapanel_rows { display: grid; gap: 1rem; padding-block: 1.8rem; border-block: 1px solid var(--ac-border); margin-block: 1.8rem; }
.ac-single-artwork .art_metapanel_rows > div { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.ac-single-artwork .art_metapanel_label { font-weight: 500; }
.ac-single-artwork .art_metapanel_value { overflow-wrap: anywhere; }
.ac-single-artwork .art_buttonwrap { display: flex; flex-wrap: wrap; align-items: center; gap: 1.6rem; }
.ac-single-artwork .art_price { font-size: 2.8rem; font-family: var(--ac-font-heading); }
body.canvas .ac-single-artwork .art_price * { color: var(--ac-text); }
body.canvas .ac-single-artwork .button { min-height: 44px; margin: 0; white-space: normal; }
.ac-single-artwork .cde-art-purchase-status { flex-basis: 100%; font-size: 1.4rem; }
.ac-single-artwork .cde-art-purchase-status:empty { display: none; }
.ac-single-artwork .art_sold_msg { border: 1px solid var(--ac-border); padding: 1rem 1.5rem; }
.ac-artwork--studio-split .art_buttonwrap { align-items: stretch; flex-direction: column; }
.ac-artwork--studio-split .art_addtocart .button { width: 100%; }
.ac-artwork-story { display: grid; grid-template-columns: minmax(0, .6fr) minmax(0, 1fr); gap: var(--ac-layout-gap); border-top: 1px solid var(--ac-border); margin-top: calc(var(--ac-layout-gap) * .65); padding-top: calc(var(--ac-layout-gap) * .5); }
.ac-artwork-description { max-width: 65ch; overflow-wrap: anywhere; }
.ac-artwork-description > :first-child { margin-top: 0; }
.ac-artwork-description > :last-child { margin-bottom: 0; }
.ac-artwork--exhibition-view .ac-artwork-heading { text-align: center; margin-bottom: calc(var(--ac-layout-gap) * .65); }
body.canvas .ac-artwork--exhibition-view h1 { text-align: center; }
.ac-artwork--exhibition-view .ac-artwork-hero { display: block; }
.ac-artwork--exhibition-view .cde-art-image-link { aspect-ratio: 1.9 / 1; }
.ac-artwork--exhibition-view .ac-artwork-information { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; border-block: 1px solid var(--ac-border); margin-top: 2rem; padding-block: 2rem; align-items: center; }
.ac-artwork--exhibition-view .art_metapanel_rows { border: 0; padding: 0; margin: 0; }
.ac-artwork--exhibition-view .art_buttonwrap { justify-content: space-between; }
.ac-artwork--exhibition-view .ac-artwork-story { border: 0; }
.ac-artwork--collector-sheet .ac-artwork-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 2rem; border-bottom: 1px solid var(--ac-border); margin-bottom: 2.4rem; padding-bottom: 2.4rem; }
.ac-artwork--collector-sheet .ac-artwork-heading h1 { flex-basis: 60%; margin-bottom: 0; }
.ac-artwork--collector-sheet .ac-artwork-hero { grid-template-columns: minmax(0, .3fr) minmax(0, 1fr); gap: calc(var(--ac-layout-gap) * .4); }
.ac-artwork--collector-sheet .ac-artwork-gallery { grid-column: 2; grid-row: 1; }
.ac-artwork--collector-sheet .ac-artwork-information { grid-column: 1; grid-row: 1; background: var(--ac-background); color: var(--ac-text); padding: 2.4rem; align-self: stretch; }
.ac-artwork--collector-sheet .art_metapanel_rows > div { flex-direction: column; gap: .2rem; }
.ac-artwork--collector-sheet .art_metapanel_rows { border: 0; }
.ac-artwork--collector-sheet .cde-art-image-link { aspect-ratio: 1.25 / 1; }
body.canvas .ac-site-header { border-bottom: 1px solid var(--ac-border); background: var(--ac-background); }
.ac-header-row { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 1.8rem; }
body.canvas .ac-site-header .site-branding { flex: 0 1 auto; min-width: 0; text-align: left; }
body.canvas :is(.ac-site-header, .ac-site-footer) .site-title { font-size: clamp(2.4rem, 2.5vw, 3.2rem); line-height: 1.2; overflow-wrap: anywhere; margin: 0; }
body.canvas :is(.ac-site-header, .ac-site-footer) .site-logo img { display: block; max-width: min(220px, 35vw); max-height: 80px; width: auto; height: auto; }
.ac-header-links { display: flex; align-items: center; justify-content: end; gap: 2.4rem; }
.ac-site-header .menu { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 1.8rem; padding: 0; margin: 0; }
.ac-site-header .menu li { position: relative; margin: 0; list-style: none; }
.ac-site-header a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
.ac-site-header .ac-inline-nav .sub-menu { display: none; position: absolute; z-index: 20; top: 100%; left: 0; min-width: 18rem; max-width: 80vw; padding: 1rem; margin: 0; border: 1px solid var(--ac-border); list-style: none; }
.ac-site-header .ac-inline-nav li:is(:hover, :focus-within) > .sub-menu { display: block; }
.ac-site-header .ac-inline-nav .sub-menu .sub-menu { position: static; padding-left: 1rem; border: 0; }
.ac-site-header .ac-inline-nav .sub-menu a { display: flex; }
body.canvas .ac-site-header .ac-menu-toggle { min-width: 44px; min-height: 44px; padding: .6rem; margin: 0; }
.ac-site-header .ac-menu-toggle[hidden] { display: none; }
.ac-site-header--inline .ac-menu-toggle { display: none; }
.ac-site-header--centred.ac-drawer-ready .ac-header-row { display: grid; grid-template-columns: minmax(44px, 1fr) minmax(0, 2fr) minmax(44px, 1fr); }
.ac-site-header--centred.ac-drawer-ready .ac-menu-toggle { grid-column: 1; grid-row: 1; justify-self: start; }
body.canvas .ac-site-header--centred.ac-drawer-ready .site-branding { grid-column: 2; grid-row: 1; justify-self: center; text-align: center; }
.ac-site-header--centred.ac-drawer-ready .ac-header-links { grid-column: 3; grid-row: 1; }
.ac-site-header--centred.ac-drawer-ready .ac-inline-nav { display: none; }
body.canvas .ac-navigation-drawer { box-sizing: border-box; position: fixed; inset: 0 auto 0 0; margin: 0; width: min(420px, 90vw); max-width: none; height: 100dvh; max-height: none; border: 0; padding: 2.4rem; background: var(--ac-background); color: var(--ac-text); overflow: auto; }
.ac-navigation-drawer::backdrop { background: color-mix(in srgb, var(--ac-text) 45%, transparent); }
.ac-navigation-drawer:not([open]) { display: none; }
.ac-navigation-drawer .ac-menu-close { display: block; margin-left: auto; }
.ac-site-header .ac-drawer-nav .menu { display: block; margin-top: 3rem; }
.ac-site-header .ac-drawer-nav a { display: flex; padding: .8rem 0; }
.ac-site-header .ac-drawer-nav .sub-menu { position: static; display: block; visibility: visible; opacity: 1; list-style: none; padding: 0 0 0 2rem; margin: 0; background: transparent; }
body.canvas .ac-site-footer { padding-block: var(--ac-layout-gap) 3rem; background: var(--ac-background); }
.ac-footer-invitation { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-bottom: calc(var(--ac-layout-gap) * .6); }
.ac-footer-invitation h2 { margin: 0; }
.ac-site-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.ac-footer-colophon { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.5rem; border-top: 1px solid var(--ac-border); padding-top: 2rem; }
.ac-footer-links { display: flex; flex-wrap: wrap; gap: 2rem; }
.ac-site-footer .menu { list-style: none; padding: 0; margin: 0; }
.ac-site-footer .menu li { list-style: none; margin: 0; }
.ac-footer-links .menu { display: flex; flex-wrap: wrap; gap: 2rem; }
.ac-site-footer .sub-menu { padding-left: 1.5rem; list-style: none; background: transparent; }
.ac-footer-columns { display: grid; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)); gap: var(--ac-layout-gap); padding-bottom: calc(var(--ac-layout-gap) * .6); }
.ac-footer-widgets { margin-top: 2rem; }
@media (max-width: 900px) {
    .ac-site-header--inline.ac-drawer-ready .ac-menu-toggle { display: block; }
    .ac-site-header--inline.ac-drawer-ready .ac-inline-nav { display: none; }
    .ac-site-header--inline.ac-drawer-ready .site-branding { flex: 1; }
    .ac-artwork--collector-sheet .ac-artwork-hero { grid-template-columns: minmax(0, .45fr) minmax(0, 1fr); }
}
@media (max-width: 720px) {
    body.canvas .ac-single-artwork.container { width: calc(100% - max(32px, var(--ac-page-gutter-total))); }
    .ac-artwork-hero, .ac-artwork-story { grid-template-columns: minmax(0, 1fr); gap: 2.4rem; }
    .ac-artwork--exhibition-view .cde-art-image-link { aspect-ratio: .8 / 1; }
    .ac-artwork--studio-split .cde-art-image-link { aspect-ratio: .8 / 1; }
    .ac-artwork--exhibition-view .ac-artwork-information { grid-template-columns: minmax(0, 1fr); }
    .ac-artwork--exhibition-view .art_buttonwrap { flex-direction: column; align-items: stretch; }
    .ac-artwork--exhibition-view .art_addtocart .button { width: 100%; }
    .ac-artwork--collector-sheet .ac-artwork-heading { display: block; }
    .ac-artwork--collector-sheet .ac-artwork-heading .art_buttonwrap { justify-content: space-between; margin-top: 1.6rem; }
    .ac-artwork--collector-sheet .ac-artwork-hero { display: flex; flex-direction: column; gap: 2rem; }
    .ac-artwork--collector-sheet .ac-artwork-gallery, .ac-artwork--collector-sheet .ac-artwork-information { width: 100%; }
    .ac-artwork--collector-sheet .cde-art-image-link { aspect-ratio: .8 / 1; }
    .ac-footer-invitation, .ac-footer-colophon, .ac-footer-links, .ac-footer-links .menu { flex-direction: column; align-items: flex-start; gap: 1rem; }
    .ac-footer-columns { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
    .ac-header-row, .ac-header-links { gap: 1rem; }
    body.canvas :is(.ac-site-header, .ac-site-footer) .site-title { font-size: 2.4rem; }
}

/* Canvas article rules describe listing rows, not this single-artwork composition. */
body.canvas .ac-single-artwork .ac-artwork-content { padding: 0; border: 0; }
body.canvas .ac-site-header a { text-decoration: none; }
body.canvas .ac-site-header a:hover { text-decoration: underline; }
body.canvas .ac-site-header .menu a { background: transparent; color: var(--ac-text); }
body.canvas .ac-site-header .menu a:is(:hover, :focus-visible) { background: var(--ac-button-bg); color: var(--ac-button-text); }
body.canvas .ac-site-header .ac-drawer-nav .sub-menu { box-shadow: none; border: 0; }
body.canvas .ac-site-footer .sub-menu { display: block; position: static; min-width: 0; box-shadow: none; border: 0; }
body.canvas .ac-site-footer .menu a { padding: .2rem 0; background: transparent; color: var(--ac-text); }
body.canvas .ac-site-footer .menu a:hover { color: var(--ac-link-hover); }
.ac-site-header--centred .ac-header-row { display: grid; grid-template-columns: minmax(44px, 1fr) minmax(0, 2fr) minmax(44px, 1fr); }
body.canvas .ac-site-header--centred .site-branding { grid-column: 2; grid-row: 1; justify-self: center; text-align: center; }
.ac-site-header--centred .ac-header-links { grid-column: 3; grid-row: 1; }
.ac-footer-columns .menu { display: block; }
.ac-site-header .ac-drawer-nav .sub-menu { min-width: 0; max-width: 100%; }
.ac-site-header .ac-drawer-nav a, .ac-site-footer a { overflow-wrap: anywhere; }
.ac-artwork-gallery:empty { display: none; }
.ac-artwork-hero:has(> .ac-artwork-gallery:empty) { display: block; }

/* Footer rule follows the content width; links underline only on interaction. */
body.canvas .ac-site-footer--columns > .container::before { content: ""; display: block; border-top: 3px solid var(--ac-border); margin-bottom: calc(var(--ac-layout-gap) * .6); }
body.canvas .ac-site-footer a { text-decoration: none; }
body.canvas .ac-site-footer a:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: .2em; }
.ac-footer-columns > nav { min-width: 0; container-type: inline-size; }
.ac-footer-columns > nav:last-child:nth-child(2) { grid-column: 2 / -1; }
body.canvas .ac-footer-columns > nav > .menu { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 2rem; }
@container (min-width: 360px) {
    body.canvas .ac-footer-columns > nav > .menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .ac-footer-columns { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
    .ac-footer-columns > nav:last-child:nth-child(2) { grid-column: auto; }
}
@media (max-width: 600px) {
    body.canvas .ac-footer-columns > nav > .menu { grid-template-columns: minmax(0, 1fr); }
}
