/* Composition only: typography, palette, buttons and outer spacing come from Canvas/CDE. */
.ad-layout { --ad-gap: clamp(2rem, 4vw, 6rem); --ad-rule: color-mix(in srgb, currentColor 22%, transparent); }
.ad-layout .ad-layout__inner { position: relative; z-index: 1; padding-block: var(--ad-inner-padding, clamp(2rem, 4vw, 5rem)); overflow-wrap: anywhere; }
.ad-layout .ad-layout__inner *, .ad-layout .ad-layout__inner *::before, .ad-layout .ad-layout__inner *::after { box-sizing: border-box; }
.ad-layout .ad-layout__work, .ad-layout .ad-layout__collection, .ad-layout .ad-layout__card, .ad-layout .ad-layout__exhibition { margin: 0; padding: 0; border: 0; }
.ad-layout .ad-layout__header { margin-bottom: var(--ad-gap); max-width: 78rem; }
.ad-layout .ad-layout__header > :last-child, .ad-layout .ad-layout__text > :last-child { margin-bottom: 0; }
.ad-layout .ad-layout__subheading { font-size: .85em; letter-spacing: .06em; margin-bottom: 1.5rem; }
.ad-layout .ad-layout__media { margin: 0; min-width: 0; }
/* Use the small viewport so images also fit with mobile browser controls visible. */
.ad-layout, .cde-artist-profile { --ad-image-max-height: 100vh; --ad-image-max-height: 100svh; }
.ad-layout .ad-layout__inner img, .cde-artist-profile .cde-artist-profile__inner img { max-width: 100%; max-height: var(--ad-image-max-height); object-fit: contain; }
.ad-layout .ad-layout__image { display: block; width: auto; height: auto; margin-inline: auto; }
/* Keep the chosen portrait shapes when their height reaches the viewport limit. */
.ad-layout--artist_profile.ad-layout--image-portrait .ad-layout__image, .ad-layout--artist_profile.ad-layout--image-oval .ad-layout__image,
.cde-artist-profile.cde-artist-profile--image-portrait .cde-artist-profile__image, .cde-artist-profile.cde-artist-profile--image-oval .cde-artist-profile__image { max-width: min(100%, calc(var(--ad-image-max-height) * .8)); object-fit: cover; }
.ad-layout--artist_profile.ad-layout--image-square .ad-layout__image,
.cde-artist-profile.cde-artist-profile--image-square .cde-artist-profile__image { max-width: min(100%, var(--ad-image-max-height)); object-fit: cover; }
.cde-artist-profile .cde-artist-profile__image { margin-inline: auto; }
.ad-layout figcaption { font-size: .85em; margin-top: 1rem; }
.ad-layout .ad-layout__actions { display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; align-items: center; margin-top: 2.5rem; }
.ad-layout__actions { display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; align-items: center; margin-top: 2.5rem; }
.ad-layout .ad-layout__link { display: inline-block; }
.ad-layout a:focus-visible, .ad-layout__actions a:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.ad-layout .ad-layout__metadata, .ad-layout .ad-layout__dates { font-size: .9em; }
.ad-layout .ad-layout__intro { display: grid; gap: 0 var(--ad-gap); align-items: center; }
.ad-layout .ad-layout__intro .ad-layout__header { margin-bottom: 0; }
.ad-layout--quiet-statement .ad-layout__intro { max-width: 90rem; }
.ad-layout--quiet-statement .ad-layout__intro .ad-layout__media { max-width: 65rem; margin-top: var(--ad-gap); }
.ad-layout--image-led-split .ad-layout__intro:has(> .ad-layout__media) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ad-layout--image-led-split .ad-layout__intro > .ad-layout__media { grid-column: 2; grid-row: 1 / span 2; }
.ad-layout--image-led-split .ad-layout__intro > .ad-layout__header { align-self: end; }
.ad-layout--image-led-split .ad-layout__intro > .ad-layout__actions { grid-column: 1; align-self: start; }
.ad-layout .ad-layout__feature { display: grid; gap: var(--ad-gap); align-items: center; }
.ad-layout--artwork-first .ad-layout__feature > .ad-layout__media { width: min(100%, 92rem); margin-inline: auto; }
.ad-layout--artwork-first .ad-layout__feature-copy { position: relative; }
.ad-layout--details-alongside .ad-layout__feature:has(> .ad-layout__media) { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); }
.ad-layout .ad-layout__works { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ad-gap) 3rem; align-items: start; }
.ad-layout .ad-layout__work { min-width: 0; }
.ad-layout .ad-layout__work-link { display: block; color: inherit; text-decoration: none; }
.ad-layout .ad-layout__work-caption { margin-top: 1.5rem; }
.ad-layout .ad-layout__work-caption h3 { font-size: 1.15em; margin-bottom: .5rem; }
.ad-layout--aligned-grid .ad-layout__work .ad-layout__media { aspect-ratio: 4 / 3; max-height: var(--ad-image-max-height); display: flex; align-items: center; justify-content: center; }
.ad-layout--aligned-grid .ad-layout__work .ad-layout__image { width: 100%; height: 100%; object-fit: contain; }
/* Row-major grid retains DOM, keyboard and visual order, without masonry columns. */
.ad-layout--natural-height-grid .ad-layout__works { align-items: start; }
.ad-layout--editorial-sequence .ad-layout__works { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center; row-gap: clamp(4rem, 8vw, 12rem); }
.ad-layout--editorial-sequence .ad-layout__work:nth-child(4n + 1), .ad-layout--editorial-sequence .ad-layout__work:nth-child(4n) { grid-column: span 7; }
.ad-layout--editorial-sequence .ad-layout__work:nth-child(4n + 2), .ad-layout--editorial-sequence .ad-layout__work:nth-child(4n + 3) { grid-column: span 5; padding-inline: 8%; }
.ad-layout--compact-catalogue .ad-layout__works { grid-template-columns: minmax(0, 1fr); gap: 0; }
.ad-layout--compact-catalogue .ad-layout__work { padding-block: 2rem; border-top: 1px solid var(--ad-rule); }
.ad-layout--compact-catalogue .ad-layout__work-link { display: grid; grid-template-columns: minmax(8rem, 17rem) minmax(0, 1fr); gap: 3rem; align-items: center; }
.ad-layout--compact-catalogue .ad-layout__work-caption { margin: 0; }
.ad-layout--compact-catalogue .ad-layout__media { max-width: 17rem; }
.ad-layout .ad-layout__collections, .ad-layout .ad-layout__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ad-gap) 3rem; }
.ad-layout .ad-layout__collection, .ad-layout .ad-layout__card { min-width: 0; }
.ad-layout .ad-layout__collection > .ad-layout__collection-cover, .ad-layout--visual-cards .ad-layout__card > .ad-layout__media { margin-bottom: 2rem; }
.ad-layout .ad-layout__collection h3, .ad-layout .ad-layout__card h3 { font-size: 1.35em; }
.ad-layout--featured-collection-index .ad-layout__collections { grid-template-columns: minmax(0, 1fr); gap: 0; }
.ad-layout--featured-collection-index .ad-layout__collection { border-top: 1px solid var(--ad-rule); padding-block: 2rem; }
.ad-layout--featured-collection-index .ad-layout__collection:not(.ad-layout__featured) > .ad-layout__collection-cover { display: none; }
.ad-layout--featured-collection-index .ad-layout__collection:not(.ad-layout__featured) > div { display: grid; grid-template-columns: 1fr 1fr auto; align-items: start; gap: 1rem 2rem; }
.ad-layout--featured-collection-index .ad-layout__collection:not(.ad-layout__featured) .ad-layout__text { grid-column: 1 / 3; }
.ad-layout--featured-collection-index .ad-layout__featured { border: 0; padding-top: 0; display: grid; gap: var(--ad-gap); align-items: center; margin-bottom: 2rem; }
.ad-layout--featured-collection-index .ad-layout__featured:has(> .ad-layout__collection-cover) { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
.ad-layout--reading-column .ad-layout__inner { max-width: 78rem; margin-inline: auto; }
.ad-layout .ad-layout__story { display: grid; gap: 3rem var(--ad-gap); }
.ad-layout .ad-layout__quote { border: 0; padding: clamp(2rem, 3vw, 4rem); margin: 0; font-size: 1.4em; }
.ad-layout .ad-layout__quote cite { display: block; font-size: .65em; }
.ad-layout--editorial-composition .ad-layout__story:has(> .ad-layout__media) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: start; }
.ad-layout--editorial-composition .ad-layout__story:has(> .ad-layout__media) > .ad-layout__media { grid-column: 1; grid-row: 1 / span 2; }
.ad-layout--editorial-composition .ad-layout__story:has(> .ad-layout__media) > .ad-layout__text { grid-column: 2; }
.ad-layout--editorial-composition .ad-layout__story > .ad-layout__quote { grid-column: 1 / -1; max-width: 75rem; }
.ad-layout .ad-layout__profile { display: grid; gap: var(--ad-gap); align-items: center; }
.ad-layout .ad-layout__profile:has(> .ad-layout__media) { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.ad-layout--statement-led-profile .ad-layout__profile:has(> .ad-layout__media) { grid-template-columns: minmax(0, .35fr) minmax(0, 1fr); }
.ad-layout .ad-layout__statement-lead { font-size: clamp(2.8rem, 3.5vw, 4.8rem); line-height: 1.3; max-width: 100rem; margin-bottom: var(--ad-gap); }
.ad-layout--text-center .ad-layout__profile-copy, .ad-layout--text-center .ad-layout__statement-lead { text-align: center; }
.ad-layout--artist_profile.ad-layout--image-portrait .ad-layout__image, .ad-layout--artist_profile.ad-layout--image-oval .ad-layout__image { aspect-ratio: 4 / 5; object-fit: cover; }
.ad-layout--artist_profile.ad-layout--image-square .ad-layout__image { aspect-ratio: 1; object-fit: cover; }
.ad-layout--artist_profile.ad-layout--image-oval .ad-layout__image { border-radius: 50%; }
.ad-layout .ad-layout__exhibition { border-top: 1px solid var(--ad-rule); padding-block: 2.5rem; }
.ad-layout .ad-layout__exhibition-body { display: grid; grid-template-columns: minmax(12rem, .6fr) minmax(0, 1.4fr) auto; align-items: start; gap: 2rem; }
.ad-layout .ad-layout__exhibition h3 { font-size: 1.3em; }
.ad-layout .ad-layout__exhibition.ad-layout__featured { display: grid; align-items: center; gap: var(--ad-gap); border: 0; padding-top: 0; padding-bottom: var(--ad-gap); }
.ad-layout .ad-layout__exhibition.ad-layout__featured:has(> .ad-layout__media) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ad-layout .ad-layout__featured .ad-layout__exhibition-body { display: block; }
.ad-layout .ad-layout__contact { display: grid; gap: var(--ad-gap); align-items: start; }
.ad-layout--simple-invitation .ad-layout__contact { max-width: 90rem; }
.ad-layout--embedded-form .ad-layout__contact:has(> .ad-layout__form) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ad-layout .ad-layout__form { min-width: 0; }
.ad-layout .ad-layout__flexible { display: grid; gap: 3rem var(--ad-gap); align-items: start; }
.ad-layout .ad-layout__flexible > .ad-layout__header { margin: 0; }
.ad-layout--text-media-split .ad-layout__flexible:has(> .ad-layout__media) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ad-layout--text-media-split .ad-layout__flexible > .ad-layout__media { grid-column: 2; grid-row: 1 / span 3; }
.ad-layout--text-media-split .ad-layout__flexible > :not(.ad-layout__media) { grid-column: 1; }
.ad-layout--media-two-text-areas .ad-layout__flexible { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ad-layout--media-two-text-areas .ad-layout__flexible > .ad-layout__media { grid-column: 1 / -1; grid-row: 1; }
.ad-layout--media-two-text-areas .ad-layout__flexible > .ad-layout__media .ad-layout__image { max-height: min(60rem, var(--ad-image-max-height)); object-fit: contain; }
.ad-layout--media-two-text-areas .ad-layout__flexible > .ad-layout__header { grid-column: 1 / -1; }
.ad-layout--media-two-text-areas .ad-layout__flexible:not(:has(> .ad-layout__secondary)) > .ad-layout__primary { grid-column: 1 / -1; }
.ad-layout .ad-layout__video iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; }
.ad-layout--compact-editorial-list .ad-layout__cards { grid-template-columns: minmax(0, 1fr); gap: 0; }
.ad-layout--compact-editorial-list .ad-layout__card { padding-block: 2.5rem; border-top: 1px solid var(--ad-rule); display: grid; gap: 3rem; align-items: start; }
.ad-layout--compact-editorial-list .ad-layout__card:has(> .ad-layout__media) { grid-template-columns: minmax(10rem, 18rem) minmax(0, 1fr); }
@media (max-width: 1000px) {
 .ad-layout .ad-layout__works, .ad-layout .ad-layout__collections, .ad-layout .ad-layout__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .ad-layout--editorial-sequence .ad-layout__works { grid-template-columns: repeat(12, minmax(0, 1fr)); }
 .ad-layout--compact-catalogue .ad-layout__works, .ad-layout--featured-collection-index .ad-layout__collections, .ad-layout--compact-editorial-list .ad-layout__cards { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
 .ad-layout .ad-layout__intro, .ad-layout .ad-layout__feature, .ad-layout .ad-layout__profile, .ad-layout .ad-layout__contact, .ad-layout .ad-layout__flexible, .ad-layout .ad-layout__story, .ad-layout .ad-layout__featured { grid-template-columns: minmax(0, 1fr); }
 .ad-layout .ad-layout__intro:has(> .ad-layout__media), .ad-layout .ad-layout__feature:has(> .ad-layout__media), .ad-layout .ad-layout__profile:has(> .ad-layout__media), .ad-layout .ad-layout__contact:has(> .ad-layout__form), .ad-layout .ad-layout__flexible:has(> .ad-layout__media), .ad-layout .ad-layout__story:has(> .ad-layout__media), .ad-layout .ad-layout__featured:has(> .ad-layout__collection-cover), .ad-layout .ad-layout__exhibition.ad-layout__featured:has(> .ad-layout__media) { grid-template-columns: minmax(0, 1fr); }
 .ad-layout .ad-layout__intro > .ad-layout__media { margin-top: 2.5rem; }
 .ad-layout .ad-layout__intro > :is(.ad-layout__header, .ad-layout__media, .ad-layout__actions), .ad-layout .ad-layout__flexible > :is(.ad-layout__header, .ad-layout__media, .ad-layout__primary, .ad-layout__secondary), .ad-layout .ad-layout__story:has(> .ad-layout__media) > :is(.ad-layout__text, .ad-layout__media, .ad-layout__quote) { grid-column: auto; grid-row: auto; }
 .ad-layout--media-two-text-areas .ad-layout__flexible > .ad-layout__media { grid-row: 1; }
 .ad-layout .ad-layout__collections, .ad-layout .ad-layout__cards, .ad-layout--editorial-sequence .ad-layout__works { grid-template-columns: minmax(0, 1fr); }
 .ad-layout--editorial-sequence .ad-layout__work:nth-child(n) { grid-column: auto; padding: 0; }
 .ad-layout--compact-catalogue .ad-layout__work-link { grid-template-columns: minmax(6rem, 10rem) minmax(0, 1fr); gap: 2rem; }
 .ad-layout .ad-layout__exhibition-body { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
 .ad-layout--featured-collection-index .ad-layout__collection:not(.ad-layout__featured) > div { grid-template-columns: minmax(0, 1fr); }
 .ad-layout--featured-collection-index .ad-layout__collection:not(.ad-layout__featured) .ad-layout__text { grid-column: auto; }
 .ad-layout--compact-editorial-list .ad-layout__card:has(> .ad-layout__media) { grid-template-columns: minmax(6rem, 10rem) minmax(0, 1fr); gap: 2rem; }
}
@media (max-width: 420px) { .ad-layout .ad-layout__works { grid-template-columns: minmax(0, 1fr); } }

/* Preserve intro spacing while letting H1 use the theme page-heading size. */
.ad-layout .ad-layout__intro-heading {
 color: var(--canvas-color-subhead-fore, inherit);
 margin: 2.4rem 0 1rem;
}
.ad-layout h2.ad-layout__intro-heading {
 font-size: calc(clamp(2.6rem, 2.1rem + 1.2vw, 4rem) * var(--canvas-heading-scale, 1));
}

/* Alternation changes desktop placement only, preserving the mobile reading order. */
@media (min-width: 721px) {
 .ad-layout--text-media-split.ad-layout--media-left .ad-layout__flexible:has(> .ad-layout__media) > .ad-layout__media { grid-column: 1; }
 .ad-layout--text-media-split.ad-layout--media-left .ad-layout__flexible:has(> .ad-layout__media) > :not(.ad-layout__media) { grid-column: 2; }
}

/* Full-width Page intro image with padded overlay copy. */
.ad-layout--page_intro.ad-layout--full-size-image { position: relative; isolation: isolate; background-color: #463921; color: #fff; }
.ad-layout--full-size-image > .ad-layout__intro-background { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; object-fit: cover; z-index: -2; }
.ad-layout--page_intro.ad-layout--full-size-image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.65), rgba(0,0,0,.18)); z-index: -1; pointer-events: none; }
.ad-layout--full-size-image .ad-layout__inner { padding: var(--ad-inner-padding, clamp(4rem, 8vw, 10rem)) clamp(2rem, 5vw, 7rem); }
.ad-layout--full-size-image .ad-layout__intro { min-height: clamp(24rem, 45vw, 52rem); align-content: center; text-align: left; }
.ad-layout--full-size-image .ad-layout__header { max-width: 68rem; }
.ad-layout--full-size-image .ad-layout__header :is(h1, h2, p), .ad-layout--full-size-image .ad-layout__link:not(.button) { color: inherit; }

/* Missing collection covers retain a visual space with the collection title. */
.ad-layout .ad-layout__collection-placeholder { aspect-ratio: 4 / 3; padding: clamp(1.5rem, 3vw, 3rem); display: flex; align-items: flex-end; justify-content: flex-start; text-align: left; border: 1px solid var(--ad-rule); background: transparent; }
.ad-layout .ad-layout__collection-placeholder span { font-family: var(--ac-font-heading, inherit); font-size: clamp(2.8rem, 3.2vw, 4.4rem); line-height: 1.15; color: inherit; opacity: .3; }
.ad-layout a.ad-layout__collection-cover { display: block; color: inherit; text-decoration: none; }
.ad-layout .ad-layout__collection > div > a { margin-top: 1rem; display: inline-block; }

/* Collection covers share a responsive frame while keeping complete artworks visible. */
.ad-layout--collection-covers .ad-layout__collection-cover { aspect-ratio: 4 / 3; }
.ad-layout--collection-covers .ad-layout__collection-cover > .ad-layout__media { width: 100%; height: 100%; }
.ad-layout--collection-covers .ad-layout__collection-cover > figure.ad-layout__media { display: flex; align-items: center; justify-content: center; }
.ad-layout--collection-covers .ad-layout__collection-cover .ad-layout__image { width: 100%; height: 100%; object-fit: contain; object-position: var(--ac-image-position, center center); }

/* Equal-height grid cards keep the price and its divider on the row baseline. */
.ad-layout--aligned-grid .ad-layout__works { align-items: stretch; }
.ad-layout--aligned-grid .ad-layout__work { display: flex; }
.ad-layout--aligned-grid .ad-layout__work-link { display: flex; flex-direction: column; width: 100%; }
.ad-layout--aligned-grid .ad-layout__work-caption { display: flex; flex-direction: column; flex: 1; }
.ad-layout--aligned-grid .ad-layout__work-caption .ad-layout__price { margin-top: auto; }
.ad-layout--aligned-grid .ad-layout__work-caption .ad-layout__metadata { margin-bottom: 1.5rem; }
