/* Native WooCommerce forms, notices and gallery;
no checkout or payment logic is replaced. */
.shop-main {
    padding-bottom:75px;
    min-height:50vh;
}

.woocommerce-result-count {
    font-size:11px;
    display:inline-block;
    margin-bottom:30px;
}

.woocommerce-ordering {
    float:right;
    margin-bottom:30px;
}

.woocommerce-ordering select {
    font-size:11px;
    padding:8px 25px 8px 10px;
}

ul.products {
    clear:both;
}

.woocommerce-pagination ul {
    list-style:none;
    display:flex;
    justify-content:center;
    gap:20px;
    padding:35px 0 0;
}

.woocommerce-pagination .current {
    color:var(--orange);
}

.single-product div.product {
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
    gap:60px;
    align-items:start;
}

/* A continuous photo column with a sticky purchase panel on desktop. */
.product-images { min-width: 0; }
.product-images__item { margin: 0 0 28px; }
.product-images__item:last-child { margin-bottom: 0; }
.product-images__item a { display: block; }
.product-images__item img { display: block; width: 100%; height: auto; }
.single-product .summary {
    position: sticky;
    top: 28px;
    max-height: calc(100dvh - 56px);
    overflow-y: auto;
    scrollbar-width: thin;
}
.admin-bar.single-product .summary { top: 60px; max-height: calc(100dvh - 88px); }
/* The hidden quantity wrapper was still occupying a flex slot and its gap. */
.summary form.cart .quantity:has(input[type="hidden"]) { display: none; }

.product_title {
    font-size:clamp(40px,4.5vw,66px);
    margin:0 0 20px;
}

.product-author,.product-dimensions {
    font-size:13px;
}

.product-dimensions {
    margin:5px 0 22px;
}

.product-purchase > .price {
    font-family:var(--serif);
    font-size:28px;
    margin:0 0 25px;
}

.woocommerce-product-details__short-description {
    font-family:var(--serif);
    font-size:21px;
    line-height:1.45;
}

.summary .stock {
    font-size:11px;
    margin-block:25px 12px;
}

.summary .out-of-stock {
    font-family:var(--serif);
    font-size:24px;
    font-style:italic;
}

.summary form.cart {
    display:flex;
    gap:12px;
    margin:0 0 32px;
}

.single_add_to_cart_button {
    width:100%;
    padding:19px!important;
}

.quantity input {
    width:70px;
}

.artwork-details {
    border-top:1px solid var(--line);
    padding-top:25px;
    margin-top:28px;
}

.edition {
    color:var(--orange);
    font-size:20px;
    margin:0 0 18px;
}

.artwork-details dl {
    font-size:11px;
    margin:0;
}

.artwork-details dl>div {
    display:grid;
    grid-template-columns:130px 1fr;
    gap:15px;
    margin-bottom:10px;
}

.artwork-details dd {
    margin:0;
}

.artwork-details dt {
    color:var(--muted);
}

.product-story {
    font-family:var(--serif);
    font-size:18px;
    margin-top:28px;
}

.woocommerce-message,.woocommerce-info,.woocommerce-error {
    display:flow-root;
    padding:18px 22px;
    margin:0 0 30px;
    border:1px solid var(--line);
    border-left:3px solid var(--orange);
    list-style:none;
    line-height:1.7;
}

.woocommerce-message .button {
    float:right;
    margin-left:15px;
    padding:7px 12px;
}

.woocommerce-notices-wrapper:empty {
    display:none;
}

.woocommerce-notices-wrapper {
    grid-column:1/-1;
}

.woocommerce table.shop_table {
    width:100%;
    border-collapse:collapse;
    text-align:left;
    margin-bottom:30px;
}

.shop_table th,.shop_table td {
    padding:18px 12px;
    border-bottom:1px solid var(--line);
    font-size:12px;
}

.shop_table .product-thumbnail img {
    width:100px;
}

.shop_table .product-remove a {
    font-size:24px;
}

.shop_table .actions {
    text-align:right;
}

.coupon {
    display:flex;
    gap:10px;
    float:left;
}

.cart-collaterals {
    display:flex;
    justify-content:flex-end;
}

.cart_totals {
    width:50%;
    margin-top:35px;
}

.cart_totals h2,.woocommerce-billing-fields h3,.woocommerce-shipping-fields h3,#order_review_heading {
    font-size:32px;
}

.checkout-button {
    width:100%;
    text-align:center;
}

.woocommerce form .form-row {
    margin:0 0 20px;
}

.form-row label {
    display:block;
    font-size:12px;
    margin-bottom:7px;
}

.form-row .input-text,.form-row select {
    width:100%;
}

.form-row input[type=checkbox]+span {
    display:inline;
}

.form-row .required {
    color:var(--orange);
}

.form-row-first {
    width:48%;
    float:left;
}

.form-row-last {
    width:48%;
    float:right;
}

.form-row-wide,.clear {
    clear:both;
}

.col2-set {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
    margin-bottom:45px;
}

.woocommerce-checkout-review-order {
    max-width:850px;
}

.wc_payment_methods {
    list-style:none;
    padding:0;
}

.wc_payment_method {
    border-bottom:1px solid var(--line);
    padding:18px 0;
}

.payment_box {
    padding:15px 0;
    font-family:var(--serif);
    font-size:18px;
}

.place-order {
    margin-top:25px!important;
}

.woocommerce-terms-and-conditions-wrapper {
    font-size:12px;
    margin-bottom:25px;
}

.woocommerce-privacy-policy-text a {
    text-decoration:underline;
}

.woocommerce-checkout #payment .button {
    margin-top:12px;
}

.woocommerce-invalid input {
    border-color:#ab281c!important;
}

.woocommerce-MyAccount-navigation ul {
    list-style:none;
    padding:0;
    display:flex;
    gap:20px;
    flex-wrap:wrap;
}

.woocommerce-MyAccount-content {
    padding-block:30px;
}

.woocommerce-form-login,.woocommerce-form-register {
    max-width:580px;
}

.woocommerce .select2-container .select2-selection--single {
    height:47px;
    background:transparent;
    border:1px solid var(--line);
    border-radius:0;
}

.woocommerce .select2-container .select2-selection__rendered {
    line-height:45px;
    padding-left:12px;
}

.woocommerce .select2-container .select2-selection__arrow {
    top:10px;
}

.woocommerce ul.order_details {
    list-style:none;
    padding:0;
    display:flex;
    flex-wrap:wrap;
    gap:30px;
}

.woocommerce ul.order_details strong {
    display:block;
}

.woocommerce address {
    font-style:normal;
}

@media(max-width:1000px) {
    .single-product div.product {
        gap:35px;
    }
    .artwork-details dl>div {
        grid-template-columns:110px 1fr;
    }
}

@media(max-width:760px) {
    .single-product div.product {
        grid-template-columns:1fr;
        gap:35px;
    }
    .single-product .summary {
        position: static;
        max-height: none;
        overflow: visible;
        max-width:100%;
    }
    .product_title {
        font-size:48px;
    }
    .woocommerce-ordering {
        float:none;
        display:block;
        width:100%;
    }
    .woocommerce-ordering select { width:100%; }
    .woocommerce-result-count {
        margin-bottom:10px;
    }
    .col2-set {
        grid-template-columns:1fr;
        gap:20px;
    }
    .cart_totals {
        width:100%;
    }
    .shop_table .product-thumbnail {
        display:none;
    }
    .shop_table th,.shop_table td {
        padding:12px 5px;
        font-size:10px;
    }
    .coupon {
        float:none;
        flex-wrap:wrap;
        margin-bottom:15px;
    }
    .shop_table .actions {
        text-align:left;
    }
    .woocommerce-message,.woocommerce-info,.woocommerce-error {
        padding:18px;
    }
    .woocommerce-message .button,
    .woocommerce-info .button,
    .woocommerce-error .button {
        float:none;
        display:block;
        width:100%;
        margin:16px 0 0;
        min-height:44px;
        text-align:center;
    }

    .form-row-first,.form-row-last {
        float:none;
        width:100%;
    }
    .woocommerce-cart-form {
        overflow-x:auto;
    }
    .woocommerce-MyAccount-navigation ul {
        gap:15px;
        font-size:11px;
    }
}

.shop_table .product-remove .remove {
    display:inline-block;
    border:0;
    background:none;
    padding:4px;
    color:var(--ink);
    text-decoration:none;
    font-size:24px;
    line-height:1;
}

.shop_table .product-remove .remove:hover {
    color:var(--orange);
}


/* Cart and checkout use the same full container as the catalogue. */
.woocommerce-cart .page-article > .entry-content,
.woocommerce-checkout .page-article > .entry-content {
    max-width: none;
    width: 100%;
}
.woocommerce-cart .wp-block-woocommerce-cart,
.woocommerce-checkout .wp-block-woocommerce-checkout {
    max-width: none;
    width: 100%;
    margin-inline: 0;
    font-size: 15px;
}
.wc-block-components-title { font-family: var(--serif); }
.wc-block-components-button:not(.is-link) {
    background: var(--ink);
    color: var(--paper);
    border: 1px solid var(--ink);
    border-radius: 0;
    font-family: var(--mono);
    font-size: 13px;
    text-transform: uppercase;
    min-height: 54px;
}
.wc-block-components-button:not(.is-link):hover { background: var(--orange); border-color: var(--orange); }
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-components-textarea,
.wc-block-components-panel,
.wc-block-components-order-summary,
.wc-block-components-checkout-step,
.wc-block-components-totals-coupon__input input { border-radius: 0 !important; }
/* Let Blocks own floating-label input padding and checkbox geometry. */
.wc-block-components-text-input input:not([type=checkbox]):not([type=radio]) {
    padding: 1.5em .5em .5em;
    background: transparent;
}
.wc-block-components-checkbox input[type=checkbox] { border-radius: 0; }

.entry-content .wc-block-components-button { text-decoration: none; }
.wc-blocks-components-select .wc-blocks-components-select__select {
    border-radius: 0;
    background: transparent;
}

/* Empty Cart block: editorial introduction and the catalogue's shared cards. */
.pt-empty-cart__intro {
    padding-block: 6px 44px;
    border-bottom: 1px solid var(--line);
    margin-bottom: 42px;
}
.pt-empty-cart__intro h2 {
    font-family: var(--serif);
    font-size: clamp(28px, 3.2vw, 44px);
    margin-bottom: 16px;
}
.pt-empty-cart__intro p {
    font-size: 14px;
    margin-bottom: 26px;
}
.pt-empty-cart__intro .wp-block-button__link {
    border-radius: 0;
    text-decoration: none;
}
.cart-recommendations__title {
    font-family: var(--serif);
    font-size: 30px;
    margin-bottom: 30px;
}
.entry-content .cart-recommendations .artwork-link {
    text-decoration: none;
}
.entry-content .cart-recommendations .artwork-caption p {
    margin-bottom: 0;
}
.wp-block-woocommerce-empty-cart-block .cart-recommendations .artwork-grid {
    padding: 0;
    margin: 0;
    list-style: none;
}
@media (max-width: 760px) {
    .pt-empty-cart__intro { padding-bottom: 32px; margin-bottom: 32px; }
    .cart-recommendations__title { font-size: 26px; }
}

/* One native purchase form; fixed below the gallery only on mobile. */
@media (max-width: 760px) {
    body.single-product:has(.product-purchase--fixed) {
        padding-bottom: var(--purchase-bar-height, 145px);
    }
    .single-product .product-purchase--fixed {
        position: fixed;
        inset: auto 0 0;
        z-index: 50;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 5px 16px;
        padding: 14px var(--gutter) calc(14px + env(safe-area-inset-bottom));
        background: var(--paper);
        border-top: 1px solid var(--line);
        max-height: 50dvh;
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    .product-purchase--fixed .product_title {
        grid-column: 1;
        grid-row: 1;
        font-size: 24px;
        margin: 0;
    }
    .product-purchase--fixed .product-dimensions {
        grid-column: 1;
        grid-row: 2;
        font-size: 11px;
        margin: 0;
    }
    .product-purchase--fixed > .price {
        grid-column: 2;
        grid-row: 1 / 3;
        align-self: center;
        font-size: 21px;
        margin: 0;
        white-space: nowrap;
    }
    .product-purchase--fixed .product-author,
    .product-purchase--fixed .stock.in-stock { display: none; }
    .product-purchase--fixed .woocommerce-product-details__short-description { display: none; }
    .product-purchase--fixed form.cart {
        grid-column: 1 / -1;
        margin: 5px 0 0;
    }
    .product-purchase--fixed .single_add_to_cart_button {
        min-height: 44px;
        padding: 12px 16px !important;
    }
    .product-purchase--fixed .out-of-stock {
        grid-column: 1 / -1;
        margin: 5px 0 0;
        font-size: 18px;
    }
    .menu-open .product-purchase--fixed { visibility: hidden; }
}
/* The native mobile preloader otherwise occupies space after the close button. */
.pswp .pswp__top-bar .pswp__preloader {
    position: absolute;
    left: 50%;
    top: 0;
    margin-left: -22px;
    pointer-events: none;
}
