/* Artist Canvas colour semantics. Artwork and uploaded logos are never targeted. */
html, body.canvas { background: var(--ac-background); color: var(--ac-text); }
body.canvas :is([data-ac-surface], .ac-surface, .site-footer, .mobile-nav__bar, .canvas-mobile-panel, .canvas-mobile-menu, .sub-menu, .canvas-modal-dialog, .canvas-modal-content, .canvas-modal-frame, .woocommerce-error, .woocommerce-message, .woocommerce-info, .gform_validation_errors, .gfield_validation_message) { background-color: var(--ac-background); color: var(--ac-text); }
body.canvas :is(h1,h2,h3,h4,h5,h6,label,legend,.site-title,.item-title,.item-content,.cde-artist-profile__name) { color: var(--ac-text); }
body.canvas :is(.subheading,.item-subtitle,.item-label,.post-meta,.entry-meta,figcaption,small,.price,.woocommerce-Price-amount) { color: var(--ac-muted); opacity: 1; }
body.canvas a { color: var(--ac-link); text-decoration-color: currentColor; }
body.canvas a:hover { color: var(--ac-link-hover); }
body.canvas a:active { color: var(--ac-link-active); }
body.canvas :is(p,li,blockquote,figcaption) a { text-decoration: underline; text-underline-offset: .15em; }
body.canvas :is([aria-current="page"],.current-menu-item>a,[aria-selected="true"],[aria-pressed="true"]) { text-decoration: underline; text-underline-offset: .2em; font-weight: 700; }
body.canvas :is(button,.button,a.button,input[type="submit"],input[type="button"],.wp-element-button,.wp-block-button__link,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.wc-block-components-button) {
    background: var(--ac-button-bg); color: var(--ac-button-text); border: 2px solid var(--ac-button-border); opacity: 1; transition: none;
}
body.canvas :is(button,.button,a.button,input[type="submit"],input[type="button"],.wp-element-button,.wp-block-button__link,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.wc-block-components-button):hover {
    background: var(--ac-button-hover-bg); color: var(--ac-button-hover-text); border-color: var(--ac-button-hover-border); text-decoration: underline;
}
body.canvas :is(button,.button,a.button,input[type="submit"],input[type="button"],.wp-element-button,.wp-block-button__link,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.wc-block-components-button):active {
    background: var(--ac-button-active-bg); color: var(--ac-button-active-text); border-color: var(--ac-button-active-border); box-shadow: inset 0 0 0 1px currentColor;
}
body.canvas :is(.button.secondary,.button.alt-secondary,.canvas-mobile-toggle,.canvas-mobile-panel__close,.canvas-submenu-toggle) { background: var(--ac-secondary-bg); color: var(--ac-secondary-text); border-color: var(--ac-secondary-border); }
body.canvas :is(input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),textarea,select,.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.wc-block-components-text-input input) {
    background: var(--ac-field-bg); color: var(--ac-field-text); border: 2px solid var(--ac-field-border); opacity: 1; transition: none;
}
body.canvas :is(input,textarea)::placeholder { color: var(--ac-placeholder); opacity: 1; }
body.canvas :is(input[type="checkbox"],input[type="radio"]) { accent-color: var(--ac-link); }
body.canvas :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
    outline: 2px solid var(--ac-focus); outline-offset: 3px; box-shadow: 0 0 0 3px var(--ac-background);
}
body.canvas :is(button,input,select,textarea):disabled { opacity: 1; cursor: not-allowed; }
body.canvas :is(blockquote,.cde-tabs .tab-content,.cde-collapsible summary) { background: var(--ac-background); color: var(--ac-text); border-color: var(--ac-control-border); }
body.canvas :is(hr,table,th,td) { border-color: var(--ac-border); }
body.canvas :is(.woocommerce-error,.woocommerce-message,.woocommerce-info,.gform_validation_errors,.gfield_validation_message) { border-color: var(--ac-control-border); }
body.canvas :is(.woocommerce-error,.woocommerce-message,.woocommerce-info)::before { color: var(--ac-icon); }
body.canvas :is(.woocommerce span.onsale,.woocommerce .stock,.woocommerce .out-of-stock) { background: var(--ac-background); color: var(--ac-text); opacity: 1; }
body.canvas :is(.canvas-grid-card__content,.canvas-grid-card__overlay,.canvas-lightbox__caption) { background: var(--ac-background); color: var(--ac-text); }
/* CDE writes its palette foreground inline. This narrowly overrides that legacy declaration. */
body.canvas :is([style*="background-color: #000000"],[style*="background-color: #000;"],[style*="background-color: #EEEEEE"],[style*="background-color: #eeeeee"]) { color: var(--ac-text) !important; }
@media (forced-colors: active) {
    body.canvas :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline: 2px solid Highlight; box-shadow: none; }
    body.canvas :is(button,.button,input,select,textarea) { border-color: ButtonText; }
}

/* Match parent specificity on shared CDE cards, tabs and disclosure components. */
body.canvas .cde-grid-list .grid-list > li.cde-grid-item { --canvas-grid-card-surface: var(--ac-background); transition: none; }
body.canvas .cde-grid-list:not(.canvas-grid-list-alt-text) .cde-grid-item:not(.has-image):not(.has-icon).has-link:hover > .cde-grid-item-inner { background: var(--ac-background); }
body.canvas .cde-grid-list:not(.canvas-grid-list-alt-text) .cde-grid-item:not(.has-image):not(.has-icon).has-link > .cde-grid-item-inner { transition: none; }
body.canvas .cde-grid-list:not(.canvas-grid-list-alt-text) .cde-grid-item:not(.has-image) .item-subtitle,
body.canvas .cde-grid-list:not(.canvas-grid-list-alt-text) .cde-grid-item:not(.has-image):not(.has-icon) .item-subtitle { color: var(--ac-muted); }
body.canvas .cde-grid-list .grid-list > li.cde-grid-item:focus-within { outline: 2px solid var(--ac-focus); outline-offset: 3px; }
body.canvas .cde-grid-list .cde-grid-item-inner > a:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: -3px; }
body.canvas .cde-tabs .tabs { --canvas-tabs-muted: var(--ac-muted); background: var(--ac-background); }
body.canvas .cde-tabs .label:hover, body.canvas .cde-tabs .label:active,
body.canvas .cde-collapsible .cde-toggle-label:hover, body.canvas .cde-collapsible .cde-toggle-label:active,
body.canvas .cde-collapsible input.cde-toggle:checked + .cde-toggle-label { background: var(--ac-background); color: var(--ac-text); transition: none; }
body.canvas .cde-tabs .input:checked + .label::after { background: var(--ac-icon); }
body.canvas .cde-tabs .input:focus-visible + .label,
body.canvas .cde-collapsible input.cde-toggle:focus-visible + .cde-toggle-label { outline: 2px solid var(--ac-focus); outline-offset: 3px; }
body.canvas .cde-collapsible .cde-toggle-label::before { color: var(--ac-icon); }
body.canvas .canvas-modal-close, body.canvas .canvas-modal-close:hover { background: var(--ac-button-bg); color: var(--ac-button-text); }
body.canvas button.button.secondary, body.canvas a.button.secondary,
body.canvas button.canvas-mobile-toggle, body.canvas button.canvas-mobile-panel__close,
body.canvas button.canvas-submenu-toggle { background: var(--ac-secondary-bg); color: var(--ac-secondary-text); border-color: var(--ac-secondary-border); }
/* Gallery chrome recedes so the artwork remains the focus. */
body.canvas .pswp .pswp__bg, body.canvas .pswp .pswp__share-modal { background: var(--ac-background); }
body.canvas .pswp .pswp__top-bar, body.canvas .pswp .pswp__caption { background: transparent; }
body.canvas .pswp .pswp__top-bar { height: 64px; padding: 10px; box-sizing: border-box; }
body.canvas .pswp .pswp__caption__center { color: var(--ac-text); text-align: center; font-size: 13px; line-height: 1.5; max-width: 560px; padding: 12px 20px; }
body.canvas .pswp .pswp__counter { color: var(--ac-text); opacity: 1; font-size: 12px; font-variant-numeric: tabular-nums; top: 10px; left: 18px; padding: 0; }
body.canvas .pswp .pswp__ui button.pswp__button {
    width: 44px; height: 44px; min-width: 44px; padding: 0; margin: 0 0 0 6px;
    /* Shop PhotoSwipe declares its sprite and transparent fill !important. */
    background-image: none !important; background-color: var(--ac-background) !important; color: var(--ac-text); border: 0; border-radius: 50%;
    box-shadow: none; opacity: 1; transition: opacity 180ms ease-out, background-color 180ms ease-out;
}
body.canvas .pswp .pswp__ui button.pswp__button:hover { background-color: var(--ac-secondary-bg) !important; color: var(--ac-secondary-text); }
body.canvas .pswp .pswp__ui button.pswp__button:focus-visible { outline: 2px solid var(--ac-focus); outline-offset: 3px; }
body.canvas .pswp .pswp__ui button.pswp__button::before {
    content: ''; display: block; position: absolute; inset: 11px; width: 22px; height: 22px;
    background: currentColor !important; mask: var(--ac-gallery-icon) center / contain no-repeat;
    -webkit-mask: var(--ac-gallery-icon) center / contain no-repeat;
}
body.canvas .pswp .pswp__ui button.pswp__button--arrow--left { left: 16px; margin: -22px 0 0; }
body.canvas .pswp .pswp__ui button.pswp__button--arrow--right { right: 16px; margin: -22px 0 0; }
body.canvas .pswp .pswp__button--close { --ac-gallery-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%206l12%2012M18%206L6%2018%22/%3E%3C/svg%3E"); }
body.canvas .pswp .pswp__button--arrow--left { --ac-gallery-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M15%205l-7%207%207%207%22/%3E%3C/svg%3E"); }
body.canvas .pswp .pswp__button--arrow--right { --ac-gallery-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%205l7%207-7%207%22/%3E%3C/svg%3E"); }
body.canvas .pswp .pswp__button--zoom { --ac-gallery-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22/%3E%3Cpath%20d%3D%22M10%206v8M6%2010h8M15%2015l5%205%22/%3E%3C/svg%3E"); }
body.canvas .pswp .pswp__button--fs { --ac-gallery-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%203H3v5M16%203h5v5M21%2016v5h-5M3%2016v5h5%22/%3E%3C/svg%3E"); }
body.canvas .pswp .pswp__button--share { --ac-gallery-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2016V3M7%208l5-5%205%205M5%2013v8h14v-8%22/%3E%3C/svg%3E"); }
body.canvas .pswp.pswp--zoomed-in .pswp__button--zoom { --ac-gallery-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22/%3E%3Cpath%20d%3D%22M6%2010h8M15%2015l5%205%22/%3E%3C/svg%3E"); }
/* Override the theme's button opacity so PhotoSwipe can actually hide its controls. */
body.canvas .pswp .pswp__ui:is(.pswp__ui--idle, .pswp__ui--hidden) :is(.pswp__top-bar, .pswp__caption, .pswp__button--arrow--left, .pswp__button--arrow--right) { opacity: 0; pointer-events: none; }
body.canvas .pswp .pswp__ui:has(button:focus-visible) :is(.pswp__top-bar, .pswp__caption, .pswp__button--arrow--left, .pswp__button--arrow--right) { opacity: 1; pointer-events: auto; }
@media (prefers-reduced-motion: reduce) {
    body.canvas .pswp :is(.pswp__top-bar, .pswp__caption, button.pswp__button) { transition: none; }
}
body.canvas .flex-elm :is(.col-black,.col-light-grey) { background-color: var(--ac-background); color: var(--ac-text); }
body.canvas .flex-elm :is(.col-black,.col-light-grey) :is(p,h1,h2,h3),
body.canvas .flex-elm:is(.col-black,.col-light-grey) .col-none :is(p,h1,h2,h3) { background-color: transparent; color: var(--ac-text); }
body.canvas .flex-elm :is(.col-black,.col-light-grey) a:not(.button),
body.canvas .flex-elm:is(.col-black,.col-light-grey) .col-none a:not(.button) { color: var(--ac-link); text-decoration: underline; }
body.canvas :is(.wc-block-components-product-price__value,.wc-block-components-order-summary-item__individual-price,.wc-block-components-product-metadata) { color: var(--ac-muted); opacity: 1; }
body.canvas .wc-block-components-checkbox .wc-block-components-checkbox__input { background: var(--ac-field-bg); color: var(--ac-field-text); border: 2px solid var(--ac-field-border); }
body.canvas .wc-block-components-checkbox .wc-block-components-checkbox__input:checked { background: var(--ac-button-bg); color: var(--ac-button-text); }
body.canvas .wc-block-components-checkbox .wc-block-components-checkbox__mark { color: var(--ac-button-text); fill: currentColor; }
body.canvas .wc-block-components-notice-banner.is-error { background: var(--ac-background); color: var(--ac-text); border-color: var(--ac-control-border); }
body.canvas .wc-block-components-notice-banner:is(.is-info,.is-success) { background: var(--ac-background); color: var(--ac-text); border-color: var(--ac-control-border); }
body.canvas .wc-block-components-notice-banner > svg { background: var(--ac-icon); fill: var(--ac-background); }
/* Shared artists.digital layouts supplied by ad-branding; presentation remains theme-owned. */
body.canvas .ad-layout { --ad-rule: var(--ac-border); }
body.canvas .ad-layout :is(.ad-layout__metadata,.ad-layout__subheading,.ad-layout__dates) { color: var(--ac-muted); opacity: 1; }
body.canvas .ad-layout--page_intro.ad-layout--full-size-image::before { background: none; }
body.canvas .ad-layout--full-size-image :is(.ad-layout__header,.ad-layout__actions) { background: var(--ac-background); color: var(--ac-text); padding: 2rem; }
body.canvas .ad-layout--full-size-image .ad-layout__actions { justify-self: start; }
body.canvas .ad-layout--full-size-image .ad-layout__link:not(.button) { color: var(--ac-link); text-decoration: underline; }
body.canvas .gform_wrapper :is(.gfield_required,.gfield_label,.gform-field-label,.gfield_error .gfield_label) { color: var(--ac-text); }
body.canvas .gform_wrapper .gfield_error :is(input,textarea,select) { border-color: var(--ac-control-border); }
