/* Product and Journal layouts, including WordPress's native block layout rules. */
.woocommerce.pm-single-product div.product::before,
.woocommerce.pm-single-product div.product::after { content: none; }
.woocommerce.pm-single-product div.product > .product-gallery,
.woocommerce.pm-single-product div.product > .summary { min-width: 0; align-self: start; }
.pm-single-product .product-thumbnails { gap: 10px; }
.pm-single-product .product-thumb { width: clamp(68px, 20vw, 105px); }
.pm-single-product .product-thumb img { width: 100%; object-fit: contain; }
.woocommerce.pm-single-product h1,
.woocommerce.pm-single-product h2,
.woocommerce.pm-single-product h3,
.woocommerce.pm-single-product .spec-row dd { overflow-wrap: anywhere; }
.woocommerce.pm-single-product div.product .summary .stock { color: var(--muted); font-size: 12px; letter-spacing: .08em; }
.woocommerce.pm-single-product div.product .summary .out-of-stock { color: var(--muted); }
.woocommerce.pm-single-product div.product .summary .single_add_to_cart_button { border-radius: 0; padding: 15px 25px; font-weight: 400; }
.woocommerce.pm-single-product div.product .summary .single_add_to_cart_button:hover { background: var(--muted); color: var(--paper); }
.woocommerce.pm-single-product .product_meta { line-height: 1.7; padding-top: 22px; border-top: 1px solid var(--line); }
.woocommerce.pm-single-product .woocommerce-product-details__short-description { font-size: 17px; line-height: 1.8; }
.woocommerce.pm-single-product div.product .woocommerce-tabs { margin: 0; padding-block: 30px; border-top: 1px solid var(--line); }
.woocommerce.pm-single-product .woocommerce-tabs .panel { background: transparent; color: var(--ink); }
.woocommerce.pm-single-product .woocommerce-tabs table { color: var(--ink); border-color: var(--line); }
.woocommerce.pm-single-product .woocommerce-tabs table td,
.woocommerce.pm-single-product .woocommerce-tabs table th { border-color: var(--line); padding: 10px 14px; text-align: start; }
.woocommerce.pm-single-product .woocommerce-tabs table tr:nth-child(even) td,
.woocommerce.pm-single-product .woocommerce-tabs table tr:nth-child(even) th { background: transparent; }
.woocommerce.pm-single-product .woocommerce-tabs table { border: 0; border-top: 1px solid var(--line); border-collapse: collapse; font-size: 14px; }
.woocommerce.pm-single-product .woocommerce-tabs table th,
.woocommerce.pm-single-product .woocommerce-tabs table td { border: 0; border-bottom: 1px solid var(--line); padding: 15px 0; }
.woocommerce.pm-single-product .woocommerce-tabs table th { width: 30%; font-weight: 400; color: var(--muted); padding-right: 24px; }
.woocommerce.pm-single-product .woocommerce-tabs table p { margin: 0; }
.woocommerce.pm-single-product .woocommerce-product-attributes-item__value { font-style: normal; }
.woocommerce.pm-single-product #review_form { max-width: 740px; padding-top: 25px; }
.woocommerce.pm-single-product #review_form #respond p { margin-block: 0 22px; font-size: 14px; line-height: 1.75; }
.woocommerce.pm-single-product #review_form label { display: block; margin-bottom: 8px; }
.woocommerce.pm-single-product #review_form input:not([type="checkbox"]):not([type="submit"]),
.woocommerce.pm-single-product #review_form textarea,
.woocommerce.pm-single-product #review_form select { border: 1px solid var(--line); background: var(--paper); color: var(--ink); padding: 13px 15px; width: 100%; font: inherit; border-radius: 0; }
.woocommerce.pm-single-product #review_form textarea { min-height: 160px; }
.woocommerce.pm-single-product #review_form .comment-reply-title { display: block; font: 400 30px/1.2 var(--serif); margin-bottom: 25px; }
.woocommerce.pm-single-product #review_form .comment-form-cookies-consent label { display: inline; }
.woocommerce.pm-single-product ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 35px; margin: 0; }
.woocommerce.pm-single-product ul.products::before,
.woocommerce.pm-single-product ul.products::after { content: none; }
.woocommerce.pm-single-product ul.products li.product { float: none; width: auto; margin: 0; min-width: 0; }
.woocommerce.pm-single-product ul.products li.product .woocommerce-loop-product__title { font: 400 clamp(26px, 2.5vw, 35px)/1.15 var(--serif); padding: 24px 0 12px; }
.woocommerce.pm-single-product ul.products li.product .price { color: var(--ink); font-size: 15px; }

.pm-artwork-creation { min-width: 0; padding-block: clamp(30px, 5vw, 70px); }
.pm-artwork-creation > h2 { font: 400 clamp(36px, 4.5vw, 60px)/1.08 var(--serif); letter-spacing: -.03em; max-width: 750px; margin: 0; }
.pm-artwork-creation > p { max-width: 660px; color: var(--muted); font-size: 15px; line-height: 1.8; margin: 0; }
.pm-artwork-creation.pm-process-story { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(22px, 3vw, 42px); row-gap: 24px; }
.pm-process-story > :not(.process-step) { grid-column: 1 / -1; }
.pm-process-story > .process-step { min-width: 0; padding-top: 20px; }
.pm-process-story > .process-step ~ .process-step { padding-top: 70px; }
.pm-process-story > .process-step ~ .process-step ~ .process-step { padding-top: 120px; }
.pm-process-story .process-step .wp-block-image { background: var(--wash); padding: 18px; }
.pm-process-story .process-step .wp-block-image img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: contain; }
.pm-process-story .process-step h3 { font: 400 clamp(27px, 2.8vw, 37px)/1.16 var(--serif); letter-spacing: -.025em; margin: 28px 0 17px; }
.pm-process-story .process-step p { font-size: 15px; color: var(--muted); line-height: 1.8; margin: 0; }
.pm-single-product .artwork-closeup { margin-block: 20px 45px; }

.journal-prose .journal-author { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-items: start; gap: 30px; margin-top: 65px; padding-top: 35px; }
.journal-author-portrait { min-width: 0; }
.journal-author .journal-author-portrait img,
.journal-author .journal-author-portrait .author-mark { display: block; width: 96px; height: 120px; object-fit: cover; margin: 0; }
.journal-author .journal-author-portrait .author-mark { display: grid; place-items: center; }
.journal-author-copy { min-width: 0; }
.journal-prose .journal-author-copy h2 { font-size: clamp(26px, 2.5vw, 34px); line-height: 1.15; overflow-wrap: anywhere; margin: 0 0 16px; }
.journal-prose .journal-author-copy .eyebrow { font-size: 10px; line-height: 1.6; margin: 0 0 13px; }
.journal-prose .journal-author-copy p:not(.eyebrow) { font-size: 15px; line-height: 1.75; }
.journal-author-copy .link-wrap { margin-top: 15px; }
.journal-related .journal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(22px, 3vw, 38px); }
.journal-related .journal-card { min-width: 0; }
.journal-related .journal-card-image img { height: 260px; }
.journal-related .journal-card h3 { font-size: clamp(27px, 2.6vw, 36px); }
/* Flow layout zeros the last child's margin. Padding keeps this gap even in saved templates. */
.single-post main.gallery-main { padding-bottom: clamp(56px, 7vw, 100px); }
.single-post .journal-end-cta { margin-bottom: 0; }

@media (max-width: 760px) {
 .woocommerce.pm-single-product div.product { gap: 35px; }
 .woocommerce.pm-single-product ul.products { grid-template-columns: minmax(0, 1fr); }
 .pm-artwork-creation.pm-process-story { grid-template-columns: minmax(0, 1fr); row-gap: 24px; }
 .pm-process-story > .process-step,
 .pm-process-story > .process-step ~ .process-step,
 .pm-process-story > .process-step ~ .process-step ~ .process-step { padding-top: 20px; }
 .pm-process-story .process-step .wp-block-image img { aspect-ratio: 1 / 1; }
 .pm-process-story .process-step h3 { font-size: 32px; margin-top: 24px; }
 .journal-prose .journal-author { grid-template-columns: 70px minmax(0, 1fr); gap: 20px; margin-top: 45px; }
 .journal-author .journal-author-portrait img,
 .journal-author .journal-author-portrait .author-mark { width: 70px; height: 88px; }
 .journal-related .journal-grid { grid-template-columns: minmax(0, 1fr); gap: 42px; }
 .journal-related .journal-card-image img { height: 290px; }
}
@media (max-width: 420px) {
 .site-header .mega-columns { grid-template-columns: minmax(0, 1fr); }
}

/* Artwork opening: a quiet vertical contact sheet beside one generous photograph. */
.pm-single-product .product-gallery { --photo-height: clamp(390px, 43vw, 610px); display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 12px 18px; align-items: start; }
.pm-single-product .product-main-image { grid-column: 2; grid-row: 1; height: var(--photo-height); padding: clamp(20px, 2.5vw, 38px); box-sizing: border-box; }
.pm-single-product .product-main-image a,
.pm-single-product .product-main-image img { height: 100%; width: 100%; }
.pm-single-product .product-gallery-placeholder .product-main-image { grid-column: 1 / -1; }
.pm-single-product .product-main-image > .status-badge { position: absolute; top: 13px; right: 13px; background: var(--paper); color: var(--ink); border: 1px solid var(--line); font-size: 11px; letter-spacing: .05em; padding: 7px 10px; z-index: 1; }
.pm-single-product .product-main-image > .status-badge.sold { color: var(--paper); background: var(--ink); }
.pm-single-product .product-thumbnails { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; max-height: var(--photo-height); overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--muted) transparent; padding: 2px; }
.pm-single-product .product-thumb { flex: 0 0 auto; width: 100%; min-width: 0; padding: 5px; box-sizing: border-box; }
.pm-single-product .product-thumb img { height: 65px; }
.pm-single-product .product-thumb span { font-size: 10px; }
.pm-single-product .product-thumb[aria-current] { border-color: var(--muted); }
.pm-single-product .product-thumbnails:focus-visible { outline: 1px solid var(--muted); outline-offset: 3px; }
.pm-single-product .gallery-hint { grid-column: 2; margin: 0; line-height: 1.7; font-size: 11px; }
.pm-single-product .summary .product_title { margin: 0 0 13px; }
.woocommerce.pm-single-product div.product .summary .pm-work-type { margin: 0 0 18px; font-size: 12px; letter-spacing: .15em; text-transform: uppercase; color: var(--muted); }
.woocommerce.pm-single-product div.product .summary .pm-print-sizes { margin: 0 0 25px; }
.pm-print-sizes > p:first-child { font-size: 12px; color: var(--muted); margin: 0 0 9px; }
.pm-print-sizes ul { list-style: none; display: flex; flex-wrap: wrap; gap: 7px; padding: 0; margin: 0; }
.pm-print-sizes li { border: 1px solid var(--line); padding: 7px 11px; font-size: 13px; }
.pm-print-sizes .pm-size-note { margin: 10px 0 0; font-size: 12px; line-height: 1.6; color: var(--muted); }
.pm-price-panel { padding-block: 0 20px; border-bottom: 1px solid var(--line); }
.pm-single-product .pm-price-panel > .price { margin: 0 0 14px; line-height: 1.4; }
.pm-currency-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 12px; }
.pm-currency-form label { color: var(--muted); }
.pm-currency-form select { min-height: 40px; max-width: 100%; border: 1px solid var(--line); background: var(--paper); color: var(--ink); font: inherit; padding: 7px 28px 7px 10px; border-radius: 0; }
.pm-currency-submit { min-height: 40px; padding: 7px 12px; border: 1px solid var(--line); background: var(--wash); color: var(--ink); font: inherit; }
.pm-currency-ready .pm-currency-submit { display: none; }
.pm-currency-note { font-size: 11px; line-height: 1.7; color: var(--muted); margin: 12px 0 0; }
.pm-rate-credit { display: block; }
.pm-currency-note a { text-decoration: underline; text-underline-offset: 3px; }
.woocommerce.pm-single-product .summary form.cart:not(.variations_form),
.woocommerce.pm-single-product .summary .woocommerce-variation-add-to-cart { display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; }
.woocommerce.pm-single-product .summary form.cart::before,
.woocommerce.pm-single-product .summary form.cart::after { content: none; }
.woocommerce.pm-single-product .summary form.cart div.quantity { margin: 0; float: none; display: flex; }
.woocommerce.pm-single-product .summary .quantity .qty { width: 72px; height: 54px; min-height: 54px; box-sizing: border-box; margin: 0; color: var(--ink); font-size: 16px; border-radius: 0; }
.woocommerce.pm-single-product div.product .summary .single_add_to_cart_button { height: 54px; min-height: 54px; box-sizing: border-box; margin: 0; float: none; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 0 24px; }
.woocommerce.pm-single-product .summary form.variations_form { display: block; }
.woocommerce.pm-single-product .variations { width: 100%; }
.woocommerce.pm-single-product .variations th { font-weight: 400; font-size: 13px; text-align: start; padding-right: 15px; }
.woocommerce.pm-single-product .variations select { min-height: 46px; width: 100%; background: var(--paper); color: var(--ink); border: 1px solid var(--line); font: inherit; padding: 9px; border-radius: 0; }
.pm-single-product .summary:has(.pm-currency-ready) .woocommerce-variation-price { display: none; }
.pm-variation-fallback { padding-top: 20px; }
.pm-variation-fallback > p { margin-bottom: 16px; font-size: 13px; }
.pm-variation-fallback label { display: block; margin-bottom: 6px; }
.pm-variation-fallback select { width: 100%; min-height: 46px; padding: 10px; background: var(--paper); color: var(--ink); border: 1px solid var(--line); font: inherit; }
.woocommerce.pm-single-product .artwork-specifications { grid-column: 1 / -1; margin: 0; padding: 48px 0 40px; grid-template-columns: .75fr 1.25fr; gap: 9%; }
.pm-single-product .artwork-specifications h2 { font-size: clamp(38px, 4vw, 54px); margin: 18px 0; }
.artwork-detail-copy { min-width: 0; }
.artwork-description { margin: 0 0 25px; font-size: 15px; line-height: 1.8; }
.artwork-description h3 { font: 400 26px/1.2 var(--serif); margin: 0 0 14px; }
.artwork-description p { margin: 0 0 14px; }
.pm-single-product .spec-row { padding: 12px 0; font-size: 13px; gap: 22px; }
.pm-single-product .artwork-closeup { background: var(--wash); box-shadow: 0 0 0 100vmax var(--wash); clip-path: inset(0 -100vmax); padding: 55px 0; margin: 0; gap: 10%; }
.pm-product-reviews { grid-column: 1 / -1; display: grid; grid-template-columns: .75fr 1.25fr; gap: 9%; padding: 50px 0; border-bottom: 1px solid var(--line); align-items: start; }
.pm-review-intro { position: sticky; top: calc(var(--nav-height) + 35px); }
.pm-review-intro h2 { font: 400 clamp(36px, 4vw, 52px)/1.08 var(--serif); margin: 18px 0 22px; }
.pm-review-intro > p:last-child { max-width: 320px; color: var(--muted); font-size: 14px; line-height: 1.8; }
.pm-review-content { min-width: 0; }
.pm-review-content #reviews h2 { font: 400 28px/1.2 var(--serif); margin: 0 0 20px; }
.woocommerce.pm-single-product #review_form { padding-top: 16px; }
.woocommerce.pm-single-product #review_form .comment-reply-title { font-size: 25px; }
.woocommerce.pm-single-product #review_form .comment-form-rating { margin-bottom: 22px; }
.woocommerce.pm-single-product #reviews #comments ol.commentlist { padding: 0; }
.woocommerce.pm-single-product #reviews #comments ol.commentlist li .comment-text { border-color: var(--line); border-radius: 0; }
.pm-extra-product-section { grid-column: 1 / -1; }
.woocommerce.pm-single-product .related { padding: 10px 0 20px; }
.woocommerce.pm-single-product .related > h2 { font: 400 clamp(29px, 3vw, 39px)/1.18 var(--serif); margin: 0 0 28px; max-width: 620px; }
.woocommerce.pm-single-product .related .section-head { align-items: end; margin-bottom: 28px; gap: 24px; }
.woocommerce.pm-single-product .related .section-head h2 { font: 400 clamp(29px, 3vw, 39px)/1.18 var(--serif); margin: 0; max-width: 620px; }
.woocommerce.pm-single-product .related .section-head .line-link { font-size: 12px; }
.woocommerce.pm-single-product .related ul.products li.product .woocommerce-loop-product__title { font-size: 27px; padding-top: 19px; }
.woocommerce.pm-single-product .related ul.products li.product .pm-card-slide img { height: 260px; }
.woocommerce.pm-single-product .related .pm-card-gallery { padding-bottom: 66px; }
.woocommerce.pm-single-product .related .pm-card-track { aspect-ratio: auto; }
/* The base storefront intentionally marks WooCommerce button colours important. */
.woocommerce.pm-single-product .related ul.products li.product .button { border: 1px solid var(--line); border-radius: 0; background: transparent !important; color: var(--ink) !important; font-weight: 400; font-size: 12px; padding: 12px 16px; display: inline-flex; align-items: center; }
@media (max-width: 1000px) and (min-width: 761px) {
 .woocommerce.pm-single-product div.product { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); column-gap: 5%; }
 .pm-single-product .product-gallery { grid-template-columns: 58px minmax(0, 1fr); gap: 10px; --photo-height: 420px; }
 .pm-single-product .product-main-image { padding: 16px; }
 .pm-single-product .product-thumb { padding: 3px; }
 .pm-single-product .product-thumb img { height: 50px; }
 .woocommerce.pm-single-product .summary .single_add_to_cart_button { padding-inline: 15px; }
 .pm-product-reviews { column-gap: 6%; }
}
@media (max-width: 760px) {
 .pm-single-product .product-gallery { --photo-height: clamp(300px, 95vw, 470px); grid-template-columns: 55px minmax(0, 1fr); gap: 10px; }
 .pm-single-product .product-main-image { padding: 16px; }
 .pm-single-product .product-thumb { padding: 3px; }
 .pm-single-product .product-thumb img { height: 52px; }
 .pm-single-product .product-main-image > .status-badge { top: 8px; right: 8px; padding: 5px 8px; font-size: 10px; }
 .pm-single-product .gallery-hint { font-size: 10px; }
 .pm-currency-form select { font-size: 16px; flex: 1; min-width: 0; }
 .woocommerce.pm-single-product .artwork-specifications { display: block; padding-block: 35px 10px; }
 .pm-single-product .artwork-specifications .image-note { margin-bottom: 28px; }
 .pm-single-product .spec-row { font-size: 13px; grid-template-columns: 1fr 1.4fr; gap: 18px; }
 .pm-single-product .artwork-closeup { grid-template-columns: minmax(0, 1fr); padding: 35px 0; gap: 24px; }
 .pm-product-reviews { grid-template-columns: minmax(0, 1fr); padding-block: 25px; gap: 28px; }
 .pm-review-intro { position: static; }
 .woocommerce.pm-single-product .related ul.products li.product .pm-card-slide img { height: 290px; }
}
