/* Prints keep their source square presentation; Paintings remain 3:4. */
.zk-prints-posts .wp-block-post-featured-image,.zk-prints-posts .wp-block-post-featured-image img,
.zk-print-page .zk-artwork-detail .zk-detail-featured,.zk-print-page .zk-artwork-detail .zk-detail-featured img{aspect-ratio:1/1}
.zk-collection-description{max-width:calc((100% - 12px)/2);margin:0 0 var(--wp--preset--spacing--zk-heading)}
.zk-collection-description p{margin:0 0 1em}
.zk-prints-posts:has(.zk-collection-description)>.zk-collection-title{margin-bottom:16px}
.zk-print-page .zk-detail-info details{border-bottom:1px solid var(--wp--preset--color--zk-muted);padding:16px 0;font-size:var(--wp--preset--font-size--zk-small)}
.zk-print-page .zk-detail-info details summary{cursor:pointer;font-weight:700}
.zk-print-page .zk-detail-info details p{margin:20px 0 0}
.zk-print-inquiry{display:inline-block;border:1px solid currentColor;padding:12px 20px;text-decoration:none}
.zk-content-grid{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:var(--wp--preset--spacing--zk-gutter);padding:var(--wp--preset--spacing--zk-section) var(--wp--preset--spacing--zk-edge)}
.zk-content-grid>*{min-width:0;margin:0}
.zk-content-grid>.zk-left-copy{grid-column:1/12}
.zk-content-grid>.zk-right-copy{grid-column:13/25}
.zk-print-paper>.zk-left-copy{grid-column:1/10}
.zk-print-paper>.zk-paper-image{grid-column:12/25;align-self:start}
.zk-paper-image img{display:block;width:100%;height:auto}
.zk-content-grid h2,.zk-content-grid h3{font-size:var(--wp--preset--font-size--zk-section);line-height:1.19;margin:0 0 20px}
.zk-content-grid p{margin:0 0 1em;line-height:1.4}
.zk-content-grid p+h2,.zk-content-grid p+h3{margin-top:40px}
.zk-bio-links{font-size:15px}
.zk-bio-links p{font-size:15px;color:#444444}
.zk-bio-links strong{color:var(--wp--preset--color--zk-ink)}
@media(max-width:767px){
 .zk-collection-description{max-width:none}
 .zk-content-grid{grid-template-columns:minmax(0,1fr);padding-left:var(--wp--preset--spacing--zk-edge-mobile);padding-right:var(--wp--preset--spacing--zk-edge-mobile);row-gap:60px}
 .zk-content-grid>.zk-left-copy,.zk-content-grid>.zk-right-copy,.zk-content-grid>.zk-paper-image{grid-column:1}
}
.zk-paper-image figure{aspect-ratio:638.14/494.17;overflow:hidden;margin:0}
.zk-paper-image figure img{width:100%;height:100%;object-fit:cover;object-position:center}
/* Print titles follow section text, matching white source titles on dark sections. */
.zk-prints-posts .wp-block-post-title,.zk-prints-posts .wp-block-post-title a{color:inherit}
/* Contact: source form spans ten columns; the portrait starts at column 13. */
@media(min-width:768px){.zk-contact-section>.zk-left-copy{grid-column:1/11}}
.zk-contact-section .wpcf7{width:100%;font-size:var(--wp--preset--font-size--zk-small)}
/* Measured against the source form: 40px fields, 100px message, 20px row gaps. */
.zk-contact-section fieldset{border:0;padding:0;margin:0 0 20px;min-width:0}
.zk-contact-section legend{padding:0 0 4px;margin:0;line-height:28px}
.zk-contact-names{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding-top:4px}
.zk-contact-section label{display:block;margin:0 0 20px;line-height:28px}
.zk-contact-names label{margin-bottom:0}
.zk-contact-required{opacity:.7;margin-left:.4em}
.zk-contact-section input:not([type=submit]),.zk-contact-section textarea{display:block;box-sizing:border-box;width:100%;max-width:100%;height:40px;border:1px solid color-mix(in srgb,currentColor 55%,transparent);background:#f2f2f2;color:inherit;border-radius:0;padding:5px 10px;font:inherit;line-height:28px;margin:4px 0 0}
.zk-contact-names input:not([type=submit]){margin-top:2px}
.zk-contact-section textarea{height:100px;resize:vertical}
/* CF7 auto-paragraphs must not add a second gap after each label. */
.zk-contact-section .wpcf7-form>p>br{display:none}
.zk-contact-section :is(input,textarea):focus-visible{outline:2px solid currentColor;outline-offset:3px}
.zk-contact-portrait figure{margin:0;aspect-ratio:3/4;overflow:hidden}
.zk-contact-portrait img{display:block;width:100%;height:100%;object-fit:cover}
.zk-contact-section .wpcf7-response-output{margin:24px 0;padding:12px}
.zk-contact-names>p{display:contents}
.zk-contact-section .wpcf7-form>p{margin:0}

/* Space from the final collection paragraph to the first print photograph. */
.zk-prints-posts>.zk-collection-description{display:flow-root;margin-bottom:40px}
.zk-prints-posts>.zk-collection-description>p:last-child{margin-bottom:0}
/* Biography reads down the complete left column, then down the right. */
.zk-bio-history>.wp-block-heading:not(:first-child){margin-top:40px}
.zk-bio-current>.zk-bio-tools{padding-left:1.2em;margin:24px 0;line-height:1.4}
.zk-bio-tools>li+li{margin-top:16px}

/* Shared Contact / Prints composition: copy starts 160px into the section. */
.zk-content-grid.zk-copy-portrait>.zk-right-copy{align-self:start}
.zk-copy-portrait>.zk-right-copy figure{margin:0;aspect-ratio:3/4;overflow:hidden}
.zk-copy-portrait>.zk-right-copy img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
@media(min-width:768px){
 .zk-content-grid.zk-copy-portrait>.zk-left-copy{grid-column:1/11;padding-top:calc(160px - var(--wp--preset--spacing--zk-section))}
 .zk-content-grid.zk-copy-portrait>.zk-right-copy{grid-column:13/25}
}
/* Contact composition aligns the form and photograph at their bottom edges. */
@media(min-width:768px){
 .zk-content-grid.zk-contact-section.zk-copy-portrait>.zk-left-copy{padding-top:0;align-self:end}
 .zk-content-grid.zk-contact-section.zk-copy-portrait>.zk-right-copy{align-self:end}
}
.zk-contact-section .wpcf7-form>p:last-of-type{line-height:0}
/* Prints copy ends flush with the portrait, without a trailing paragraph gap. */
@media(min-width:768px){
 .zk-content-grid.zk-print-paper.zk-copy-portrait>.zk-left-copy{padding-top:0;align-self:end}
 .zk-content-grid.zk-print-paper.zk-copy-portrait>.zk-right-copy{align-self:end}
 .zk-print-paper.zk-copy-portrait>.zk-left-copy>:last-child{margin-bottom:0}
}
/* Compact sentence-case form labels; entered text retains its original size. */
.zk-contact-section label{font-size:13px;text-transform:none}
.zk-contact-section label input,.zk-contact-section label textarea{font-size:var(--wp--preset--font-size--zk-small);text-transform:none}
/* Keep copy/form 80px above the photograph's bottom in the two-column layout. */
@media(min-width:768px){
 .zk-content-grid.zk-copy-portrait:is(.zk-contact-section,.zk-print-paper)>.zk-left-copy{padding-bottom:80px}
}
/* Copy starts 60px below the adjacent photograph, replacing bottom alignment. */
@media(min-width:768px){
 .zk-content-grid.zk-copy-portrait:is(.zk-contact-section,.zk-print-paper)>.zk-left-copy{align-self:start;padding-top:60px;padding-bottom:0}
 .zk-content-grid.zk-copy-portrait:is(.zk-contact-section,.zk-print-paper)>.zk-right-copy{align-self:start}
}

/* Final Prints information photograph uses a portrait crop. */
.zk-copy-portrait.zk-print-paper>.zk-right-copy figure{aspect-ratio:3/4}

/* Contact form on a black section: readable fields and visible submit button. */
.zk-contact-section.is-style-zk-black input:not([type=submit]),.zk-contact-section.is-style-zk-black textarea{background:#181818;color:#ccc;border-color:#666}
.zk-contact-section.is-style-zk-black input[type=submit]{background:#ccc;color:#000}

/* Muted year headings and their inherited dots distinguish the Bio timeline. */
.zk-bio-timeline.is-style-zk-black .wp-block-heading{color:#fff}
.zk-bio-timeline.is-style-zk-black .wp-block-heading::before{background:currentColor}

/* Prints collection cards remain square. */
.zk-prints-posts .wp-block-post-featured-image,.zk-prints-posts .wp-block-post-featured-image img{aspect-ratio:1/1}

/* Preserve portrait size and leave exactly 60px after Contact/Prints copy. */
@media(min-width:768px){
 .zk-content-grid.zk-copy-portrait:is(.zk-contact-section,.zk-print-paper)>.zk-left-copy{grid-column:1/13;margin-right:48px}
}


/* Summary focus follows input modality, like the native language dropdown. */
html:not(.zk-keyboard-input) .zk-print-page .zk-detail-info details summary:focus{outline:none;box-shadow:none}
html.zk-keyboard-input .zk-print-page .zk-detail-info details summary:focus{outline:2px solid currentColor;outline-offset:5px}


/* Bio timeline uses equal text columns. */
@media(min-width:768px){
 .zk-content-grid.zk-bio-timeline{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:60px}
 .zk-bio-timeline>.zk-left-copy{grid-column:1}
 .zk-bio-timeline>.zk-right-copy{grid-column:2}
}

/* Contact form ends 60px above the portrait bottom. */
@media(min-width:768px){
 .zk-content-grid.zk-copy-portrait.zk-contact-section>.zk-left-copy{align-self:end;padding-top:0;padding-bottom:60px}
 .zk-content-grid.zk-copy-portrait.zk-contact-section>.zk-right-copy{align-self:end}
}

/* Shop information ends 60px above the photograph bottom. */
@media(min-width:768px){
 .zk-content-grid.zk-copy-portrait.zk-print-paper>.zk-left-copy{align-self:end;padding-top:0;padding-bottom:60px}
 .zk-content-grid.zk-copy-portrait.zk-print-paper>.zk-right-copy{align-self:end}
}

/* Contact: form left, portrait right. The portrait starts at the section top; the sub-heading starts 60px below the portrait top (120px into the section) with the form 20px under it. */
@media(min-width:768px){
 .zk-content-grid.zk-copy-portrait.zk-contact-section{grid-template-rows:auto 1fr}
 .zk-content-grid.zk-copy-portrait.zk-contact-section>.zk-right-copy{grid-column:13/25;grid-row:1/3;align-self:start}
 .zk-content-grid.zk-copy-portrait.zk-contact-section>.zk-left-copy{grid-column:1/13;grid-row:2;margin:0 48px 0 0;align-self:start;padding-top:0;padding-bottom:0}
 .zk-contact-section>.zk-contact-heading{grid-column:1/13;grid-row:1;margin:60px 48px calc(20px - var(--wp--preset--spacing--zk-gutter)) 0}
}
@media(max-width:767px){.zk-contact-section>.zk-contact-heading{margin:0 0 -40px}}
.zk-contact-section:not(.is-style-zk-black) input:not([type=submit]),.zk-contact-section:not(.is-style-zk-black) textarea{background:#fff}

/* Bio links section and its footer are white; links stay graphite. */
body main .zk-bio-links.is-style-zk-light a:not(#link-colors a):not(#zk-x){color:#444444!important}
body.page-id-15 .zk-native-footer.is-style-zk-grey:not(.zk-footer-dark){background-color:var(--wp--preset--color--zk-white)}

/* Phones: the stacked Bio columns keep the same 40px between year blocks as inside a column. */
@media(max-width:767px){.zk-content-grid:is(.zk-bio-timeline,.zk-bio-links){row-gap:40px}}

/* Contact form feedback: a plain amber box as wide as the Message field, black text, no outline, for every state. */
.zk-contact-section .wpcf7 form[class] .wpcf7-response-output{box-sizing:border-box;width:100%;margin:24px 0 0;padding:11px 10px;border:0;background:#FFBE55;color:#000;line-height:28px}
/* While sending: no spinner; the Send button slowly alternates between black and amber. */
.zk-contact-section .wpcf7-spinner{display:none}
@keyframes zk-send-blink{0%,100%{background-color:var(--wp--preset--color--zk-black);color:var(--wp--preset--color--zk-on-dark)}50%{background-color:#FFBE55;color:#000}}
.zk-contact-section form.submitting input[type=submit]{animation:zk-send-blink 1.8s ease-in-out infinite;opacity:1}
@media(prefers-reduced-motion:reduce){.zk-contact-section form.submitting input[type=submit]{animation:none}}
