/* Scoped to the imported Pietra Venetian Plaster Elementor template. */
.pietra-venetian-product {
    --pietra-primary: var(--e-global-color-primary, #704421);
    --pietra-secondary: var(--e-global-color-secondary, #b18462);
    --pietra-text: var(--e-global-color-text, #26221f);
    --pietra-accent: var(--e-global-color-accent, #8a4f23);
    --pietra-border: color-mix(in srgb, var(--pietra-text) 16%, transparent);
    --pietra-soft: color-mix(in srgb, var(--pietra-secondary) 8%, white);
    max-width: 1200px;
    margin-inline: auto;
    padding: 36px 24px 48px;
    color: var(--pietra-text);
}

.pietra-venetian-product > .e-con-inner,
.pietra-venetian-product.e-con {
    gap: 0;
}

/* Breadcrumb */
.pietra-breadcrumb.elementor-widget {
    width: 100%;
    align-self: stretch;
    margin: 0 0 22px !important;
    padding: 0 !important;
    font-size: 12px;
}

.pietra-breadcrumb .woocommerce-breadcrumb {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.pietra-breadcrumb a {
    color: inherit;
}

/* Product hero */
.pietra-product-hero {
    display: grid !important;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    gap: clamp(32px, 5vw, 64px);
    align-items: start;
    padding-bottom: 34px;
}

.pietra-hero-media,
.pietra-hero-purchase {
    min-width: 0;
}

.pietra-hero-purchase {
    gap: 0 !important;
}

/* Keep all WooCommerce product images square without cropping. */
.pietra-product-images .woocommerce-product-gallery {
    width: 100% !important;
}

.pietra-product-images .woocommerce-product-gallery__wrapper {
    margin: 0 !important;
}

.pietra-product-images .flex-viewport {
    aspect-ratio: 1 / 1;
    height: auto !important;
    background: #fff;
}

.pietra-product-images .woocommerce-product-gallery__image {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #fff;
}

.pietra-product-images .woocommerce-product-gallery__image > a {
    display: flex !important;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    background: #fff;
}

.pietra-product-images .woocommerce-product-gallery__image img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center !important;
}

.pietra-product-images .flex-control-thumbs {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
    margin-top: 10px !important;
}

.pietra-product-images .flex-control-thumbs li {
    width: auto !important;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #fff;
}

.pietra-product-images .flex-control-thumbs li img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
}

/* The category above the title is deliberately suppressed. */
.pietra-product-category {
    display: none !important;
}

.pietra-product-title.elementor-widget {
    margin: 0 !important;
}

.pietra-product-title .elementor-heading-title {
    margin: 0 !important;
    font-size: clamp(36px, 3.8vw, 52px) !important;
    line-height: 1.06 !important;
}

.pietra-subtitle-widget.elementor-widget {
    margin: 4px 0 18px !important;
}

.pietra-product-subtitle {
    margin: 0 !important;
    line-height: 1.4;
    opacity: .76;
}

.pietra-product-price.elementor-widget {
    margin: 0 0 2px !important;
}

.pietra-product-price .price {
    font-size: 27px !important;
    font-weight: 700;
    color: var(--pietra-text) !important;
}

.pietra-product-stock.elementor-widget {
    margin: 0 0 17px !important;
}

.pietra-product-stock .stock {
    color: #347a3b !important;
    font-size: 14px;
}

/* Variation controls and add to cart */
.pietra-add-to-cart.elementor-widget {
    width: 100%;
    margin: 8px 0 0 !important;
}

.pietra-add-to-cart form.cart,
.pietra-add-to-cart form.variations_form {
    width: 100%;
    margin: 0 !important;
}

.pietra-add-to-cart table.variations {
    width: 100%;
    margin-bottom: 17px !important;
}

.pietra-add-to-cart table.variations th,
.pietra-add-to-cart table.variations td {
    display: block;
    width: 100%;
    text-align: left;
    padding: 0 0 7px;
}

.pietra-add-to-cart table.variations label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: none;
}

.pietra-add-to-cart table.variations select {
    width: 100%;
    min-height: 54px;
    padding: 10px 14px;
    border: 1px solid var(--pietra-border);
    border-radius: 3px;
    background: #fff;
    font-size: 15px;
}

.pietra-add-to-cart .reset_variations {
    display: inline-block;
    margin-top: 4px;
    font-size: 10px;
}

.pietra-add-to-cart .single_variation_wrap,
.pietra-add-to-cart .woocommerce-variation-add-to-cart,
.pietra-add-to-cart .woocommerce-variation-add-to-cart.variations_button,
.pietra-add-to-cart form.cart:not(.variations_form) {
    width: 100%;
}

.pietra-add-to-cart .woocommerce-variation-add-to-cart,
.pietra-add-to-cart .woocommerce-variation-add-to-cart.variations_button,
.pietra-add-to-cart form.cart:not(.variations_form) {
    display: grid !important;
    grid-template-columns: 96px minmax(0, 1fr) !important;
    gap: 12px;
    align-items: stretch;
}

.pietra-add-to-cart .quantity {
    float: none !important;
    width: 96px !important;
    margin: 0 !important;
}

.pietra-add-to-cart .quantity input {
    width: 100%;
    min-height: 56px;
    border: 1px solid var(--pietra-border);
    border-radius: 3px;
}

.pietra-add-to-cart .single_add_to_cart_button,
.pietra-add-to-cart .single_add_to_cart_button.button,
.pietra-add-to-cart .single_add_to_cart_button.button.alt {
    float: none !important;
    width: 100% !important;
    min-height: 56px;
    margin: 0 !important;
    padding: 0 28px !important;
    border: 1px solid var(--pietra-accent) !important;
    border-radius: 4px !important;
    background: var(--pietra-accent) !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: .045em;
    line-height: 1.1 !important;
    text-align: center;
    text-transform: uppercase;
}

.pietra-add-to-cart .single_add_to_cart_button:hover,
.pietra-add-to-cart .single_add_to_cart_button:focus {
    filter: brightness(.92);
}

/* Product meta */
.pietra-product-meta.elementor-widget {
    margin: 17px 0 13px !important;
    font-size: 12px;
}

.pietra-product-meta .product_meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
}

.pietra-product-meta .detail-container::after {
    display: none !important;
}

.pietra-product-meta .sku_wrapper,
.pietra-product-meta .posted_in,
.pietra-product-meta .tagged_as,
.pietra-product-meta .brand_wrapper,
.pietra-product-meta [class*="brand"] {
    font-weight: 700;
}

.pietra-product-meta .sku,
.pietra-product-meta a,
.pietra-product-meta .pietra-meta-value {
    font-weight: 400;
}

.pietra-product-meta .pietra-meta-label {
    font-weight: 700;
}

/* Shipping */
.pietra-shipping {
    display: grid;
    grid-template-columns: 54px 1fr;
    gap: 12px;
    align-items: center;
    padding: 15px 0;
    border-top: 1px solid var(--pietra-border);
}

.pietra-shipping svg {
    width: 52px;
    color: var(--pietra-accent);
}

.pietra-shipping p {
    margin: 0 0 3px;
    font-size: 12px;
    line-height: 1.38;
}

.pietra-shipping .pietra-shipping-primary {
    font-weight: 700;
}

/* Payment methods - intentionally clean and typographic until a final logo strip is supplied. */
.pietra-payments {
    padding: 14px 16px 11px;
    border: 1px solid var(--pietra-border);
    border-radius: 3px;
    text-align: center;
}

.pietra-payment-title {
    margin: 0 0 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.pietra-payment-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px 16px;
    align-items: center;
}

.pietra-payment-list span {
    position: relative;
    font-size: 11px;
    font-weight: 650;
    line-height: 1.2;
    white-space: nowrap;
}

.pietra-payment-list span:not(:last-child)::after {
    position: absolute;
    right: -10px;
    content: "•";
    opacity: .35;
}

.pietra-payments small {
    display: block;
    margin-top: 9px;
    font-size: 9px;
    opacity: .65;
}

/* Trust badges */
.pietra-trust-widget {
    border-top: 1px solid var(--pietra-border);
    border-bottom: 1px solid var(--pietra-border);
}

.pietra-trust-badges {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    padding: 22px 0;
}

.pietra-trust-badge {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    min-width: 0;
}

.pietra-trust-badge > div {
    min-width: 0;
}

.pietra-trust-badge svg {
    width: 34px;
    color: var(--pietra-accent);
}

.pietra-trust-badge h3 {
    margin: 0 0 4px;
    font-size: 15px;
    font-weight: 500;
}

.pietra-trust-badge p {
    margin: 0;
    font-size: 11px;
    line-height: 1.4;
}

/* ACF content area */
.pietra-product-content-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(30px, 4vw, 56px);
    padding: 30px 0 24px;
    align-items: start;
}

.pietra-content-column {
    display: block !important;
}

.pietra-acf-block {
    margin-bottom: 24px;
}

.pietra-content-heading,
.pietra-acf-copy h2,
.pietra-acf-copy h3 {
    margin: 0 0 8px;
    font-size: 21px;
    font-weight: 500;
}

.pietra-acf-copy {
    font-size: 13px;
    line-height: 1.55;
}

.pietra-acf-copy p {
    margin: 0 0 12px;
}

.pietra-acf-copy ul {
    margin: 0;
    padding-left: 18px;
}

/* Keep the heading-less Technical Details field visually separated from the
 * content block immediately above it. */
.pietra-acf-block--technical-details {
    padding-top: 16px;
}

/* Technical Details has no fixed template heading because its subject varies.
 * Promote standalone bold lines to the same heading style as the other content
 * sections, while leaving ordinary bold emphasis within paragraphs untouched. */
.pietra-acf-copy .pietra-technical-details-heading {
    margin: 18px 0 8px;
}

.pietra-acf-copy .pietra-technical-details-heading:first-child {
    margin-top: 0;
}

.pietra-category-quote {
    position: relative;
    margin: 24px 0 0;
    padding: 10px 10px 8px 30px;
    border-left: 1px solid var(--pietra-secondary);
    color: var(--pietra-secondary);
}

.pietra-category-quote > span {
    position: absolute;
    top: -8px;
    left: 12px;
    font-size: 56px;
    line-height: 1;
}

.pietra-category-quote p {
    margin: 14px 0 10px;
    font-size: 20px;
    font-style: italic;
    line-height: 1.4;
}

.pietra-category-quote cite {
    font-size: 11px;
    font-style: normal;
    letter-spacing: .08em;
    text-transform: uppercase;
}

/* Shared lower-section headings */
.pietra-section-heading.elementor-widget {
    margin: 0 0 8px !important;
}

.pietra-section-heading .elementor-heading-title {
    margin: 0 !important;
    font-size: 22px !important;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.2 !important;
    text-transform: none;
}

/* Application examples */
.pietra-application-section {
    padding-top: 4px;
}

.pietra-gallery-widget.elementor-widget {
    margin: 0 !important;
}

.pietra-application-gallery {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

.pietra-application-image {
    display: block;
    overflow: hidden;
    border-radius: 4px;
    background: var(--pietra-soft);
}

.pietra-application-image img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform .25s ease;
}

.pietra-application-image:hover img {
    transform: scale(1.02);
}

/* Downloads */
.pietra-download-section {
    padding: 16px 0 12px;
}

.pietra-downloads {
    padding: 11px;
    border: 1px solid var(--pietra-border);
    background: var(--pietra-soft);
}

.pietra-brochure-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.pietra-brochure-grid.pietra-brochure-count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pietra-brochure-card {
    display: grid;
    grid-template-columns: minmax(110px, 180px) minmax(0, 1fr);
    gap: 22px;
    align-items: center;
    min-height: 0;
    padding: 10px 14px;
    background: color-mix(in srgb, white 78%, transparent);
}

.pietra-brochure-count-2 .pietra-brochure-card {
    grid-template-columns: minmax(90px, 130px) minmax(0, 1fr);
    gap: 16px;
}

.pietra-brochure-image {
    width: 100%;
    max-width: 180px;
}

.pietra-brochure-count-2 .pietra-brochure-image {
    max-width: 130px;
}

.pietra-brochure-image img {
    display: block;
    width: 100%;
    height: auto;
}

.pietra-download-kicker {
    margin: 0 0 4px;
    font-size: 10px;
    letter-spacing: .06em;
    opacity: .7;
    text-transform: uppercase;
}

.pietra-brochure-content h3 {
    margin: 0 0 6px;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.15;
}

.pietra-brochure-note {
    margin: 0 0 13px;
    font-size: 11px;
    font-style: italic;
    line-height: 1.4;
    opacity: .76;
}

.pietra-download-button,
.pietra-document-button {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    justify-content: center;
    padding: 12px 18px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .045em;
    line-height: 1.15;
    text-decoration: none;
    text-transform: uppercase;
}

.pietra-download-button {
    background: var(--pietra-accent);
    color: #fff !important;
}

.pietra-document-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.pietra-document-button {
    border: 1px solid var(--pietra-border);
    background: #fff;
    color: var(--pietra-text) !important;
}

/* Upsells */
.pietra-upsell-section {
    margin-top: 2px;
    padding-top: 12px;
    border-top: 1px solid var(--pietra-border);
}

.pietra-upsells .products > h2 {
    display: none;
}

.pietra-upsells ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.pietra-upsells ul.products::before,
.pietra-upsells ul.products::after {
    display: none !important;
}

.pietra-upsells ul.products li.product {
    display: flex;
    flex-direction: column;
    width: auto !important;
    margin: 0 !important;
    padding: 12px;
    border: 1px solid var(--pietra-border);
}

.pietra-upsells ul.products li.product .woocommerce-loop-product__title {
    font-size: 15px;
}

.pietra-upsells ul.products li.product .button {
    margin-top: auto;
    border-radius: 2px;
    background: var(--pietra-accent);
    color: #fff;
    font-size: 10px;
    text-align: center;
    text-transform: uppercase;
}

.pietra-is-empty {
    display: none !important;
}

/* Explicit SVG limits protect Elementor editor and preview modes. */
.pietra-shipping > svg {
    display: block !important;
    width: 52px !important;
    height: auto !important;
    max-width: 52px !important;
    flex: 0 0 52px;
}

.pietra-trust-badge > svg {
    display: block !important;
    width: 34px !important;
    height: 34px !important;
    max-width: 34px !important;
    flex: 0 0 34px;
}

.pietra-download-button svg,
.pietra-document-button svg {
    width: 20px !important;
    height: 20px !important;
    max-width: 20px !important;
    flex: 0 0 20px;
}

@media (max-width: 1024px) {
    .pietra-venetian-product {
        padding-inline: 20px;
    }

    .pietra-product-hero {
        grid-template-columns: 1fr 1fr;
        gap: 30px;
    }

    .pietra-trust-badges {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pietra-product-content-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pietra-application-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .pietra-brochure-grid.pietra-brochure-count-2 {
        grid-template-columns: 1fr;
    }

    .pietra-brochure-count-2 .pietra-brochure-card {
        grid-template-columns: minmax(110px, 180px) minmax(0, 1fr);
        gap: 22px;
    }

    .pietra-brochure-count-2 .pietra-brochure-image {
        max-width: 180px;
    }

    .pietra-upsells ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .pietra-venetian-product {
        padding: 24px 16px 36px;
    }

    .pietra-breadcrumb.elementor-widget {
        margin-bottom: 18px !important;
    }

    .pietra-product-hero {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .pietra-product-title .elementor-heading-title {
        font-size: clamp(34px, 10vw, 44px) !important;
    }

    .pietra-product-content-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .pietra-trust-badges {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .pietra-application-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 9px !important;
    }

    .pietra-brochure-card,
    .pietra-brochure-count-2 .pietra-brochure-card {
        grid-template-columns: minmax(90px, 125px) minmax(0, 1fr);
        gap: 14px;
        padding: 9px;
    }

    .pietra-brochure-image,
    .pietra-brochure-count-2 .pietra-brochure-image {
        max-width: 125px;
    }

    .pietra-brochure-content h3 {
        font-size: 18px;
    }

    .pietra-download-button,
    .pietra-document-button {
        padding: 10px 12px;
        font-size: 10px;
    }

    .pietra-upsells ul.products {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 430px) {
    .pietra-add-to-cart .woocommerce-variation-add-to-cart,
    .pietra-add-to-cart .woocommerce-variation-add-to-cart.variations_button,
    .pietra-add-to-cart form.cart:not(.variations_form) {
        grid-template-columns: 88px minmax(0, 1fr) !important;
        gap: 9px;
    }

    .pietra-add-to-cart .quantity {
        width: 88px !important;
    }

    .pietra-brochure-card,
    .pietra-brochure-count-2 .pietra-brochure-card {
        grid-template-columns: 1fr;
    }

    .pietra-brochure-image,
    .pietra-brochure-count-2 .pietra-brochure-image {
        max-width: 140px;
    }
}

/* ================================================================
   v0.3.0 compatibility and refinement layer
   The first imported template did not retain its Elementor wrapper
   classes. JavaScript now restores them, while these direct widget
   selectors provide an additional fallback.
   ================================================================ */
body.pietra-venetian-template {
    --pietra-primary: var(--e-global-color-primary, #704421);
    --pietra-secondary: var(--e-global-color-secondary, #b18462);
    --pietra-text: var(--e-global-color-text, #26221f);
    --pietra-accent: var(--e-global-color-accent, #8a4f23);
    --pietra-border: color-mix(in srgb, var(--pietra-text) 16%, transparent);
    --pietra-soft: color-mix(in srgb, var(--pietra-secondary) 8%, white);
}

/* Breadcrumb - align with the hero and give it proper space below the header. */
body.pietra-venetian-template .elementor-widget-woocommerce-breadcrumb,
body.pietra-venetian-template .pietra-breadcrumb {
    width: 100% !important;
    margin: 0 0 24px !important;
    padding: 0 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-breadcrumb .woocommerce-breadcrumb,
body.pietra-venetian-template .pietra-breadcrumb .woocommerce-breadcrumb {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 0 0 10px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
}

/* Product gallery - a true square white canvas for every main, variation and gallery image. */
body.pietra-venetian-template .elementor-widget-woocommerce-product-images .woocommerce-product-gallery,
body.pietra-venetian-template .pietra-product-images .woocommerce-product-gallery {
    width: 100% !important;
    max-width: none !important;
    background: #fff !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-images .flex-viewport,
body.pietra-venetian-template .pietra-product-images .flex-viewport {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
    background: #fff !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__wrapper,
body.pietra-venetian-template .pietra-product-images .woocommerce-product-gallery__wrapper {
    height: 100% !important;
    min-height: 100% !important;
    margin: 0 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image,
body.pietra-venetian-template .pietra-product-images .woocommerce-product-gallery__image {
    height: 100% !important;
    min-height: 100% !important;
    overflow: hidden !important;
    background: #fff !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image > a,
body.pietra-venetian-template .pietra-product-images .woocommerce-product-gallery__image > a {
    display: flex !important;
    width: 100% !important;
    height: 100% !important;
    align-items: center !important;
    justify-content: center !important;
    background: #fff !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image img,
body.pietra-venetian-template .pietra-product-images .woocommerce-product-gallery__image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    background: #fff !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-images .flex-control-thumbs,
body.pietra-venetian-template .pietra-product-images .flex-control-thumbs {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin: 10px 0 0 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-images .flex-control-thumbs li,
body.pietra-venetian-template .pietra-product-images .flex-control-thumbs li {
    width: auto !important;
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
    background: #fff !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-images .flex-control-thumbs li img,
body.pietra-venetian-template .pietra-product-images .flex-control-thumbs li img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    background: #fff !important;
}

/* Remove the isolated product category above the title. */
body.pietra-venetian-template .pietra-product-category,
body.pietra-venetian-template .pietra-category-link {
    display: none !important;
}

/* Product title, subtitle and price spacing. */
body.pietra-venetian-template .elementor-widget-woocommerce-product-title,
body.pietra-venetian-template .pietra-product-title {
    margin: 0 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-title .elementor-heading-title,
body.pietra-venetian-template .pietra-product-title .elementor-heading-title {
    margin: 0 !important;
    font-size: clamp(30px, 2.6vw, 38px) !important;
    line-height: 1.08 !important;
}

body.pietra-venetian-template .pietra-subtitle-widget {
    margin: 3px 0 20px !important;
}

body.pietra-venetian-template .pietra-product-subtitle {
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-price,
body.pietra-venetian-template .pietra-product-price {
    margin: 0 0 7px !important;
}

/* Variation controls and a much stronger, square-cornered purchase button. */
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart,
body.pietra-venetian-template .pietra-add-to-cart {
    width: 100% !important;
    margin: 10px 0 0 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart form.cart,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart form.variations_form,
body.pietra-venetian-template .pietra-add-to-cart form.cart,
body.pietra-venetian-template .pietra-add-to-cart form.variations_form {
    width: 100% !important;
    margin: 0 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart table.variations,
body.pietra-venetian-template .pietra-add-to-cart table.variations {
    width: 100% !important;
    margin: 0 0 18px !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart table.variations th,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart table.variations td,
body.pietra-venetian-template .pietra-add-to-cart table.variations th,
body.pietra-venetian-template .pietra-add-to-cart table.variations td {
    display: block !important;
    width: 100% !important;
    padding: 0 0 7px !important;
    text-align: left !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart table.variations label,
body.pietra-venetian-template .pietra-add-to-cart table.variations label {
    font-size: 13px !important;
    font-weight: 700 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart table.variations select,
body.pietra-venetian-template .pietra-add-to-cart table.variations select {
    width: 100% !important;
    min-height: 54px !important;
    padding: 10px 14px !important;
    border: 1px solid var(--pietra-border) !important;
    border-radius: 2px !important;
    background: #fff !important;
    font-size: 15px !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .woocommerce-variation-add-to-cart,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .woocommerce-variation-add-to-cart.variations_button,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart form.cart:not(.variations_form),
body.pietra-venetian-template .pietra-add-to-cart .woocommerce-variation-add-to-cart,
body.pietra-venetian-template .pietra-add-to-cart .woocommerce-variation-add-to-cart.variations_button,
body.pietra-venetian-template .pietra-add-to-cart form.cart:not(.variations_form) {
    display: grid !important;
    grid-template-columns: 104px minmax(0, 1fr) !important;
    gap: 12px !important;
    width: 100% !important;
    align-items: stretch !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity,
body.pietra-venetian-template .pietra-add-to-cart .quantity {
    float: none !important;
    width: 104px !important;
    min-height: 60px !important;
    margin: 0 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity input,
body.pietra-venetian-template .pietra-add-to-cart .quantity input {
    min-height: 60px !important;
    border-radius: 2px !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button.button,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button.button.alt,
body.pietra-venetian-template .pietra-add-to-cart .single_add_to_cart_button,
body.pietra-venetian-template .pietra-add-to-cart .single_add_to_cart_button.button,
body.pietra-venetian-template .pietra-add-to-cart .single_add_to_cart_button.button.alt {
    float: none !important;
    width: 100% !important;
    min-height: 60px !important;
    margin: 0 !important;
    padding: 0 30px !important;
    border: 1px solid var(--pietra-accent) !important;
    border-radius: 2px !important;
    background: var(--pietra-accent) !important;
    color: #fff !important;
    opacity: 1 !important;
    box-shadow: none !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    letter-spacing: .045em !important;
    line-height: 1.1 !important;
    text-align: center !important;
    text-transform: uppercase !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button:not(.disabled):hover,
body.pietra-venetian-template .pietra-add-to-cart .single_add_to_cart_button:not(.disabled):hover {
    background: color-mix(in srgb, var(--pietra-accent) 88%, black) !important;
    border-color: color-mix(in srgb, var(--pietra-accent) 88%, black) !important;
}

/* Product metadata - matching bold labels and colons. */
body.pietra-venetian-template .elementor-widget-woocommerce-product-meta,
body.pietra-venetian-template .pietra-product-meta {
    margin: 18px 0 13px !important;
    font-size: 12px !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .product_meta,
body.pietra-venetian-template .pietra-product-meta .product_meta {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px 18px !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .pietra-meta-label,
body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .detail-label,
body.pietra-venetian-template .pietra-product-meta .pietra-meta-label,
body.pietra-venetian-template .pietra-product-meta .detail-label {
    font-weight: 700 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .sku,
body.pietra-venetian-template .elementor-widget-woocommerce-product-meta a,
body.pietra-venetian-template .pietra-product-meta .sku,
body.pietra-venetian-template .pietra-product-meta a {
    font-weight: 400 !important;
}

/* Lower section headings - deliberately smaller and closer to their content. */
body.pietra-venetian-template .pietra-section-heading,
body.pietra-venetian-template .pietra-application-heading,
body.pietra-venetian-template .pietra-upsell-heading {
    margin: 0 0 12px !important;
}

body.pietra-venetian-template .pietra-section-heading .elementor-heading-title,
body.pietra-venetian-template .pietra-application-heading .elementor-heading-title,
body.pietra-venetian-template .pietra-upsell-heading .elementor-heading-title {
    margin: 0 !important;
    font-size: clamp(24px, 2.2vw, 28px) !important;
    font-weight: 500 !important;
    line-height: 1.15 !important;
}

body.pietra-venetian-template .pietra-application-section {
    padding-top: 8px !important;
}

/* More compact brochures with larger supporting text. */
body.pietra-venetian-template .pietra-downloads {
    padding: 10px !important;
}

body.pietra-venetian-template .pietra-brochure-card {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    gap: 20px !important;
    padding: 12px 14px !important;
}

body.pietra-venetian-template .pietra-brochure-count-2 .pietra-brochure-card {
    grid-template-columns: 82px minmax(0, 1fr) !important;
    gap: 14px !important;
}

body.pietra-venetian-template .pietra-brochure-image {
    width: 96px !important;
    max-width: 96px !important;
}

body.pietra-venetian-template .pietra-brochure-count-2 .pietra-brochure-image {
    width: 82px !important;
    max-width: 82px !important;
}

body.pietra-venetian-template .pietra-download-kicker {
    margin-bottom: 5px !important;
    font-size: 11px !important;
}

body.pietra-venetian-template .pietra-brochure-content h3 {
    margin-bottom: 7px !important;
    font-size: 24px !important;
    line-height: 1.15 !important;
}

body.pietra-venetian-template .pietra-brochure-note {
    margin-bottom: 14px !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
}

body.pietra-venetian-template .pietra-download-button,
body.pietra-venetian-template .pietra-document-button {
    min-height: 44px !important;
    padding: 11px 17px !important;
    border: 1px solid var(--pietra-accent) !important;
    border-radius: 2px !important;
    background: var(--pietra-accent) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
}

body.pietra-venetian-template .pietra-download-button svg,
body.pietra-venetian-template .pietra-document-button svg {
    width: 20px !important;
    height: 20px !important;
    color: #fff !important;
}

body.pietra-venetian-template .pietra-document-links {
    margin-top: 10px !important;
}

@media (max-width: 767px) {
    body.pietra-venetian-template .elementor-widget-woocommerce-breadcrumb .woocommerce-breadcrumb,
    body.pietra-venetian-template .pietra-breadcrumb .woocommerce-breadcrumb {
        padding-left: 0 !important;
    }

    body.pietra-venetian-template .elementor-widget-woocommerce-product-title .elementor-heading-title,
    body.pietra-venetian-template .pietra-product-title .elementor-heading-title {
        font-size: clamp(30px, 8vw, 38px) !important;
    }

    body.pietra-venetian-template .pietra-brochure-card,
    body.pietra-venetian-template .pietra-brochure-count-2 .pietra-brochure-card {
        grid-template-columns: 82px minmax(0, 1fr) !important;
        gap: 13px !important;
    }

    body.pietra-venetian-template .pietra-brochure-image,
    body.pietra-venetian-template .pietra-brochure-count-2 .pietra-brochure-image {
        width: 82px !important;
        max-width: 82px !important;
    }

    body.pietra-venetian-template .pietra-brochure-content h3 {
        font-size: 19px !important;
    }
}

@media (max-width: 430px) {
    body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .woocommerce-variation-add-to-cart,
    body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .woocommerce-variation-add-to-cart.variations_button,
    body.pietra-venetian-template .pietra-add-to-cart .woocommerce-variation-add-to-cart,
    body.pietra-venetian-template .pietra-add-to-cart .woocommerce-variation-add-to-cart.variations_button {
        grid-template-columns: 92px minmax(0, 1fr) !important;
    }

    body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity,
    body.pietra-venetian-template .pietra-add-to-cart .quantity {
        width: 92px !important;
    }
}

/* ================================================================
   v0.4.0 refinement layer
   ================================================================ */

/* Keep the main image canvas white, but allow the thumbnail area to
   sit naturally on the site's page background. */
body.pietra-venetian-template .elementor-widget-woocommerce-product-images .woocommerce-product-gallery,
body.pietra-venetian-template .pietra-product-images .woocommerce-product-gallery {
    background: transparent !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-images .flex-control-thumbs,
body.pietra-venetian-template .pietra-product-images .flex-control-thumbs {
    padding: 0 !important;
    background: transparent !important;
}

/* Variation label - slightly larger and visually attached to its selector. */
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart table.variations th.label,
body.pietra-venetian-template .pietra-add-to-cart table.variations th.label {
    padding: 0 0 4px !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart table.variations td.value,
body.pietra-venetian-template .pietra-add-to-cart table.variations td.value {
    padding: 0 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart table.variations label,
body.pietra-venetian-template .pietra-add-to-cart table.variations label {
    display: block !important;
    margin: 0 !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
}

/* Repair WooCommerce's variable-product purchase row. Astra and Elementor
   can both add shrink-to-fit rules here, so every parent is explicitly
   stretched before the quantity and button are laid out. */
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .single_variation_wrap,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .woocommerce-variation,
body.pietra-venetian-template .pietra-add-to-cart .single_variation_wrap,
body.pietra-venetian-template .pietra-add-to-cart .woocommerce-variation {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    clear: both !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .woocommerce-variation-add-to-cart,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .woocommerce-variation-add-to-cart.variations_button,
body.pietra-venetian-template .pietra-add-to-cart .woocommerce-variation-add-to-cart,
body.pietra-venetian-template .pietra-add-to-cart .woocommerce-variation-add-to-cart.variations_button {
    display: flex !important;
    flex-flow: row nowrap !important;
    width: 100% !important;
    max-width: none !important;
    gap: 12px !important;
    align-items: stretch !important;
    clear: both !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity,
body.pietra-venetian-template .pietra-add-to-cart .quantity {
    display: flex !important;
    flex: 0 0 110px !important;
    width: 110px !important;
    max-width: 110px !important;
    min-height: 58px !important;
    margin: 0 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .minus,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .plus,
body.pietra-venetian-template .pietra-add-to-cart .quantity .minus,
body.pietra-venetian-template .pietra-add-to-cart .quantity .plus {
    flex: 0 0 32px !important;
    width: 32px !important;
    min-width: 32px !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .qty,
body.pietra-venetian-template .pietra-add-to-cart .quantity .qty {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 58px !important;
    margin: 0 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button.button,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button.button.alt,
body.pietra-venetian-template .pietra-add-to-cart .single_add_to_cart_button,
body.pietra-venetian-template .pietra-add-to-cart .single_add_to_cart_button.button,
body.pietra-venetian-template .pietra-add-to-cart .single_add_to_cart_button.button.alt {
    display: flex !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 190px !important;
    min-height: 58px !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: nowrap !important;
}

/* Downloads now use one consistent card system. Brochures retain their
   supplied covers; technical and safety sheets receive a matching document
   cover so they no longer sit as disconnected buttons below the catalogue. */
body.pietra-venetian-template .pietra-downloads {
    padding: 12px !important;
}

body.pietra-venetian-template .pietra-download-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

body.pietra-venetian-template .pietra-download-count-1 {
    grid-template-columns: 1fr !important;
}

body.pietra-venetian-template .pietra-download-card,
body.pietra-venetian-template .pietra-brochure-card,
body.pietra-venetian-template .pietra-document-card {
    display: grid !important;
    grid-template-columns: 86px minmax(0, 1fr) !important;
    gap: 16px !important;
    align-items: center !important;
    min-width: 0 !important;
    padding: 14px !important;
    border: 1px solid color-mix(in srgb, var(--pietra-text) 10%, transparent) !important;
    background: color-mix(in srgb, white 76%, transparent) !important;
}

body.pietra-venetian-template .pietra-download-visual,
body.pietra-venetian-template .pietra-brochure-image,
body.pietra-venetian-template .pietra-document-visual {
    display: flex !important;
    width: 86px !important;
    max-width: 86px !important;
    height: 110px !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

body.pietra-venetian-template .pietra-brochure-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
}

body.pietra-venetian-template .pietra-document-cover {
    position: relative;
    display: flex;
    width: 76px;
    height: 100px;
    align-items: center;
    justify-content: center;
    color: var(--pietra-accent);
}

body.pietra-venetian-template .pietra-document-cover svg {
    display: block !important;
    width: 70px !important;
    height: 90px !important;
    max-width: 70px !important;
}

body.pietra-venetian-template .pietra-document-cover span {
    position: absolute;
    right: 8px;
    bottom: 15px;
    padding: 2px 5px;
    background: var(--pietra-accent);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.2;
}

body.pietra-venetian-template .pietra-download-content,
body.pietra-venetian-template .pietra-brochure-content,
body.pietra-venetian-template .pietra-document-content {
    min-width: 0 !important;
}

body.pietra-venetian-template .pietra-download-content h3,
body.pietra-venetian-template .pietra-brochure-content h3,
body.pietra-venetian-template .pietra-document-content h3 {
    margin: 0 0 8px !important;
    font-size: 19px !important;
    line-height: 1.18 !important;
}

body.pietra-venetian-template .pietra-download-button,
body.pietra-venetian-template .pietra-document-button {
    min-height: 40px !important;
    padding: 9px 13px !important;
    font-size: 10px !important;
}

body.pietra-venetian-template .pietra-download-section {
    padding-bottom: 34px !important;
}

body.pietra-venetian-template .pietra-upsell-section {
    margin-top: 8px !important;
    padding-top: 18px !important;
}

@media (max-width: 767px) {
    body.pietra-venetian-template .pietra-download-grid {
        grid-template-columns: 1fr !important;
    }

    body.pietra-venetian-template .pietra-download-card,
    body.pietra-venetian-template .pietra-brochure-card,
    body.pietra-venetian-template .pietra-document-card {
        grid-template-columns: 78px minmax(0, 1fr) !important;
        gap: 13px !important;
    }

    body.pietra-venetian-template .pietra-download-visual,
    body.pietra-venetian-template .pietra-brochure-image,
    body.pietra-venetian-template .pietra-document-visual {
        width: 78px !important;
        max-width: 78px !important;
        height: 100px !important;
    }
}

@media (max-width: 430px) {
    body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .woocommerce-variation-add-to-cart,
    body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .woocommerce-variation-add-to-cart.variations_button,
    body.pietra-venetian-template .pietra-add-to-cart .woocommerce-variation-add-to-cart,
    body.pietra-venetian-template .pietra-add-to-cart .woocommerce-variation-add-to-cart.variations_button {
        flex-wrap: wrap !important;
    }

    body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button,
    body.pietra-venetian-template .pietra-add-to-cart .single_add_to_cart_button {
        flex-basis: 100% !important;
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* ================================================================
   v0.5.0 refinement layer
   ================================================================ */

/* Tighter transition from the purchase area into the trust strip. */
body.pietra-venetian-template .pietra-product-hero {
    padding-bottom: 16px !important;
}

body.pietra-venetian-template .pietra-trust-badges {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
}

/* Stable three-part quantity control. Astra positions these controls
   differently in some releases, so the buttons and input are explicitly
   placed into a small grid with their own dividers. */
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity,
body.pietra-venetian-template .pietra-add-to-cart .quantity {
    display: grid !important;
    grid-template-columns: 34px minmax(42px, 1fr) 34px !important;
    flex: 0 0 116px !important;
    width: 116px !important;
    max-width: 116px !important;
    min-height: 58px !important;
    height: 58px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 1px solid var(--pietra-border) !important;
    border-radius: 3px !important;
    background: #fff !important;
    box-sizing: border-box !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .minus,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .plus,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .qty,
body.pietra-venetian-template .pietra-add-to-cart .quantity .minus,
body.pietra-venetian-template .pietra-add-to-cart .quantity .plus,
body.pietra-venetian-template .pietra-add-to-cart .quantity .qty {
    position: static !important;
    inset: auto !important;
    float: none !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 56px !important;
    min-height: 56px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    color: var(--pietra-text) !important;
    line-height: 56px !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .minus,
body.pietra-venetian-template .pietra-add-to-cart .quantity .minus {
    grid-column: 1 !important;
    border-right: 1px solid var(--pietra-border) !important;
    font-size: 18px !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .qty,
body.pietra-venetian-template .pietra-add-to-cart .quantity .qty {
    grid-column: 2 !important;
    -moz-appearance: textfield !important;
    appearance: textfield !important;
    font-size: 14px !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .plus,
body.pietra-venetian-template .pietra-add-to-cart .quantity .plus {
    grid-column: 3 !important;
    border-left: 1px solid var(--pietra-border) !important;
    font-size: 18px !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .qty::-webkit-outer-spin-button,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .qty::-webkit-inner-spin-button,
body.pietra-venetian-template .pietra-add-to-cart .quantity .qty::-webkit-outer-spin-button,
body.pietra-venetian-template .pietra-add-to-cart .quantity .qty::-webkit-inner-spin-button {
    margin: 0 !important;
    -webkit-appearance: none !important;
}

/* Official payment artwork supplied for the project. Individual SVGs keep
   every brand crisp and allow the list to wrap cleanly on small screens. */
body.pietra-venetian-template .pietra-payment-list {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: 430px !important;
    margin: 0 auto !important;
    align-items: center !important;
}

body.pietra-venetian-template .pietra-payment-list .pietra-payment-icon {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 34px !important;
    align-items: center !important;
    justify-content: center !important;
}

body.pietra-venetian-template .pietra-payment-list .pietra-payment-icon::after {
    display: none !important;
    content: none !important;
}

body.pietra-venetian-template .pietra-payment-list .pietra-payment-icon img {
    display: block !important;
    width: 100% !important;
    max-width: 52px !important;
    height: 34px !important;
    object-fit: contain !important;
    object-position: center !important;
}

/* Matching divider before the Application Examples section. */
body.pietra-venetian-template .pietra-application-section {
    margin-top: 0 !important;
    padding-top: 20px !important;
    border-top: 1px solid var(--pietra-border) !important;
}

/* Align every download card from the top. Titles reserve the same vertical
   space, so the buttons line up even when one title wraps. The optional note
   follows the button rather than pushing it down. */
body.pietra-venetian-template .pietra-download-card,
body.pietra-venetian-template .pietra-brochure-card,
body.pietra-venetian-template .pietra-document-card {
    align-items: start !important;
}

body.pietra-venetian-template .pietra-download-visual,
body.pietra-venetian-template .pietra-brochure-image,
body.pietra-venetian-template .pietra-document-visual {
    align-self: start !important;
}

body.pietra-venetian-template .pietra-download-content,
body.pietra-venetian-template .pietra-brochure-content,
body.pietra-venetian-template .pietra-document-content {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    width: 100% !important;
    height: 100% !important;
}

body.pietra-venetian-template .pietra-download-content h3,
body.pietra-venetian-template .pietra-brochure-content h3,
body.pietra-venetian-template .pietra-document-content h3 {
    width: 100% !important;
    min-height: 45px !important;
    margin-bottom: 7px !important;
}

body.pietra-venetian-template .pietra-download-button,
body.pietra-venetian-template .pietra-document-button {
    margin-top: 0 !important;
}

body.pietra-venetian-template .pietra-brochure-note {
    order: 4 !important;
    margin: 10px 0 0 !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
}

body.pietra-venetian-template .pietra-download-section {
    padding-bottom: 52px !important;
}

@media (max-width: 767px) {
    body.pietra-venetian-template .pietra-payment-list {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        max-width: 270px !important;
    }

    body.pietra-venetian-template .pietra-download-content h3,
    body.pietra-venetian-template .pietra-brochure-content h3,
    body.pietra-venetian-template .pietra-document-content h3 {
        min-height: 0 !important;
    }
}


/* ================================================================
   v0.6.0 refinement layer
   ================================================================ */

/* The supplied bank transfer artwork includes more internal whitespace than
   the card-brand SVGs. Scale only that artwork so its visible mark matches the
   apparent size of the other payment methods. */
body.pietra-venetian-template .pietra-payment-list .pietra-payment-bank-transfer img {
    transform: scale(1.45) !important;
    transform-origin: center !important;
}

/* Make the quantity value visually primary while keeping the controls quiet. */
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .minus,
body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .plus,
body.pietra-venetian-template .pietra-add-to-cart .quantity .minus,
body.pietra-venetian-template .pietra-add-to-cart .quantity .plus {
    background: #f3f1ee !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-add-to-cart .quantity .qty,
body.pietra-venetian-template .pietra-add-to-cart .quantity .qty {
    background: #fff !important;
    font-weight: 700 !important;
}

/* Slightly improve legibility of SKU, Category and Brand without allowing the
   compact metadata line to dominate the purchase area. */
body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .product_meta > span,
body.pietra-venetian-template .pietra-product-meta .product_meta > span,
body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .product_meta > span a,
body.pietra-venetian-template .pietra-product-meta .product_meta > span a,
body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .pietra-meta-label,
body.pietra-venetian-template .pietra-product-meta .pietra-meta-label {
    font-size: 12px !important;
    line-height: 1.45 !important;
}

/* Pull download buttons closer to their titles now that the optional note sits
   below the button. A modest reserved title height keeps neighbouring cards
   aligned if a title wraps. */
body.pietra-venetian-template .pietra-download-content h3,
body.pietra-venetian-template .pietra-brochure-content h3,
body.pietra-venetian-template .pietra-document-content h3 {
    min-height: 30px !important;
    margin-bottom: 3px !important;
}

/* Product recommendations are supplied to the existing Elementor Upsells
   widget by PHP. These selectors also cover Elementor versions that retain
   WooCommerce's related-products wrapper classes. */
body.pietra-venetian-template .pietra-upsells section.related.products > h2,
body.pietra-venetian-template .pietra-upsells section.up-sells.upsells.products > h2 {
    display: none !important;
}

/* ================================================================
   v0.6.1 refinement layer
   ================================================================ */

/* Give the compact product metadata a little more breathing room beneath the
   divider from the purchase form, and make it genuinely easier to read. */
body.pietra-venetian-template .elementor-widget-woocommerce-product-meta,
body.pietra-venetian-template .pietra-product-meta {
    margin-top: 13px !important;
    padding-top: 8px !important;
    font-size: 13px !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .product_meta,
body.pietra-venetian-template .pietra-product-meta .product_meta,
body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .product_meta > span,
body.pietra-venetian-template .pietra-product-meta .product_meta > span,
body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .product_meta > span a,
body.pietra-venetian-template .pietra-product-meta .product_meta > span a,
body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .pietra-meta-label,
body.pietra-venetian-template .pietra-product-meta .pietra-meta-label,
body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .detail-label,
body.pietra-venetian-template .pietra-product-meta .detail-label {
    font-size: 13px !important;
    line-height: 1.45 !important;
}

/* The bank-transfer SVG is now cropped to its real artwork bounds, so it no
   longer needs the earlier transform workaround. */
body.pietra-venetian-template .pietra-payment-list .pietra-payment-bank-transfer img {
    transform: none !important;
    width: 100% !important;
    max-width: 52px !important;
    height: 34px !important;
}

/* Related / upsell product cards - keep the image full width, but give all
   text proper internal padding. The summary becomes a flex column so titles,
   prices and buttons line up across cards even when titles wrap to two lines. */
body.pietra-venetian-template .pietra-upsells ul.products li.product,
body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product {
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    overflow: hidden !important;
}

body.pietra-venetian-template .pietra-upsells ul.products li.product .astra-shop-thumbnail-wrap,
body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product .astra-shop-thumbnail-wrap {
    width: 100% !important;
    margin: 0 !important;
}

body.pietra-venetian-template .pietra-upsells ul.products li.product .astra-shop-summary-wrap,
body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product .astra-shop-summary-wrap {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    padding: 12px 13px 13px !important;
    box-sizing: border-box !important;
}

body.pietra-venetian-template .pietra-upsells ul.products li.product .ast-woo-product-category,
body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product .ast-woo-product-category {
    min-height: 1.35em !important;
    margin: 0 0 4px !important;
    line-height: 1.35 !important;
}

body.pietra-venetian-template .pietra-upsells ul.products li.product .woocommerce-loop-product__title,
body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product .woocommerce-loop-product__title {
    display: -webkit-box !important;
    min-height: 2.7em !important;
    margin: 0 0 7px !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
}

body.pietra-venetian-template .pietra-upsells ul.products li.product .price,
body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product .price {
    display: block !important;
    min-height: 1.45em !important;
    margin: 0 0 9px !important;
    line-height: 1.45 !important;
}

body.pietra-venetian-template .pietra-upsells ul.products li.product .button,
body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product .button {
    display: flex !important;
    min-height: 34px !important;
    margin-top: auto !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px 10px !important;
    line-height: 1.2 !important;
}

/* ================================================================
   v0.6.2 refinement layer
   ================================================================ */

/* Balance the product metadata vertically between Elementor's native rules.
   The earlier version added space to the widget wrapper, which did not change
   the spacing inside the two divider lines. */
body.pietra-venetian-template .elementor-widget-woocommerce-product-meta,
body.pietra-venetian-template .pietra-product-meta {
    margin: 10px 0 0 !important;
    padding: 0 !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-meta .product_meta,
body.pietra-venetian-template .pietra-product-meta .product_meta {
    margin: 0 !important;
    padding-top: 13px !important;
    padding-bottom: 13px !important;
    align-items: center !important;
}

/* The bank-transfer badge uses a two-line wordmark, so it needs a slightly
   larger visual footprint than the card logos even after correcting the SVG. */
body.pietra-venetian-template .pietra-payment-list .pietra-payment-icon {
    overflow: visible !important;
}

body.pietra-venetian-template .pietra-payment-list .pietra-payment-bank-transfer img {
    width: 56px !important;
    max-width: 56px !important;
    height: 36px !important;
    transform: none !important;
}

/* Reduce the transition gap between the product purchase area and trust row. */
body.pietra-venetian-template .pietra-product-hero {
    padding-bottom: 6px !important;
}

body.pietra-venetian-template .pietra-trust-widget {
    margin-top: 0 !important;
}

body.pietra-venetian-template .pietra-trust-badges {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
}

/* Keep recommendations in normal document flow. Some Astra and Elementor
   mobile rules switch the list back to floated cards, while the earlier helper
   removed WooCommerce's clearfix. That combination allowed products to escape
   their container and continue underneath the footer. */
body.pietra-venetian-template .pietra-venetian-product,
body.pietra-venetian-template .pietra-upsell-section,
body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell,
body.pietra-venetian-template .pietra-upsells,
body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell > .elementor-widget-container,
body.pietra-venetian-template .pietra-upsells > .elementor-widget-container,
body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell section.products,
body.pietra-venetian-template .pietra-upsells section.products,
body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products,
body.pietra-venetian-template .pietra-upsells ul.products {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    position: relative !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products,
body.pietra-venetian-template .pietra-upsells ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    grid-auto-rows: auto !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    clear: both !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products::before,
body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products::after,
body.pietra-venetian-template .pietra-upsells ul.products::before,
body.pietra-venetian-template .pietra-upsells ul.products::after {
    display: none !important;
    content: none !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product,
body.pietra-venetian-template .pietra-upsells ul.products li.product {
    float: none !important;
    clear: none !important;
    position: relative !important;
    inset: auto !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    transform: none !important;
}

body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product img,
body.pietra-venetian-template .pietra-upsells ul.products li.product img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
}

@media (max-width: 1024px) {
    body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products,
    body.pietra-venetian-template .pietra-upsells ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 767px) {
    /* Two cards per row keeps the WooCommerce 300px thumbnails crisp and makes
       the recommendation section substantially shorter on phones. */
    body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products,
    body.pietra-venetian-template .pietra-upsells ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product .astra-shop-summary-wrap,
    body.pietra-venetian-template .pietra-upsells ul.products li.product .astra-shop-summary-wrap {
        padding: 9px 9px 10px !important;
    }

    body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product .woocommerce-loop-product__title,
    body.pietra-venetian-template .pietra-upsells ul.products li.product .woocommerce-loop-product__title {
        min-height: 2.7em !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
    }

    body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product .ast-woo-product-category,
    body.pietra-venetian-template .pietra-upsells ul.products li.product .ast-woo-product-category,
    body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product .price,
    body.pietra-venetian-template .pietra-upsells ul.products li.product .price {
        font-size: 11px !important;
    }

    body.pietra-venetian-template .elementor-widget-woocommerce-product-upsell ul.products li.product .button,
    body.pietra-venetian-template .pietra-upsells ul.products li.product .button {
        min-height: 32px !important;
        padding: 7px 5px !important;
        font-size: 9px !important;
        white-space: normal !important;
    }
}

/* ================================================================
   v0.6.3 refinement layer
   ================================================================ */

/* Keep all six payment methods on a single row at every breakpoint. The
   supplied artwork remains crisp because each item retains its own SVG. */
body.pietra-venetian-template .pietra-payment-list {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    max-width: 430px !important;
    gap: 5px !important;
}

/* The Bank Transfer source has a much wider, two-line wordmark than the card
   marks. Its SVG viewBox is now cropped around the artwork, and this small
   display adjustment makes its apparent weight match the others. */
body.pietra-venetian-template .pietra-payment-list .pietra-payment-bank-transfer img {
    width: 64px !important;
    max-width: 64px !important;
    height: 38px !important;
    transform: none !important;
}

/* Pull the trust strip slightly closer to the hero on desktop and tablet.
   The mobile stack is left in normal flow to avoid overlap. */
@media (min-width: 768px) {
    body.pietra-venetian-template .pietra-trust-widget {
        margin-top: -20px !important;
    }
}

@media (max-width: 767px) {
    body.pietra-venetian-template .pietra-payment-list {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
        width: 100% !important;
        max-width: none !important;
        gap: 3px !important;
    }

    body.pietra-venetian-template .pietra-payment-list .pietra-payment-icon {
        height: 30px !important;
    }

    body.pietra-venetian-template .pietra-payment-list .pietra-payment-icon img {
        max-width: 42px !important;
        height: 30px !important;
    }

    body.pietra-venetian-template .pietra-payment-list .pietra-payment-bank-transfer img {
        width: 54px !important;
        max-width: 54px !important;
        height: 32px !important;
    }
}

@media (max-width: 360px) {
    body.pietra-venetian-template .pietra-payments {
        padding-left: 9px !important;
        padding-right: 9px !important;
    }

    body.pietra-venetian-template .pietra-payment-list {
        gap: 1px !important;
    }

    body.pietra-venetian-template .pietra-payment-list .pietra-payment-icon img {
        max-width: 38px !important;
    }

    body.pietra-venetian-template .pietra-payment-list .pietra-payment-bank-transfer img {
        width: 48px !important;
        max-width: 48px !important;
    }
}


/* v0.6.4 - hide the complete Application Examples section, including its
   heading and divider, when no valid ACF application images are available. */
body.pietra-venetian-template .pietra-application-section-empty,
body.pietra-venetian-template .pietra-application-section-empty[hidden] {
    display: none !important;
}


/* v0.6.5 - collapse the complete downloads container when the product has no
   brochure, technical data sheet or safety data sheet. Previously Elementor's
   empty container remained in the layout and created a large blank gap after
   an already-hidden Application Examples section. */
body.pietra-venetian-template .pietra-download-section-empty,
body.pietra-venetian-template .pietra-download-section-empty[hidden] {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}


/* v0.6.6 - keep the trust strip in normal document flow. The previous desktop
   negative margin could overlap the payment box whenever a long product title,
   extra variation controls or a future colour selector made the purchase column
   taller than the image column. The hero now grows naturally to the height of
   its tallest column, with only a compact internal gap before the trust strip. */
body.pietra-venetian-template .pietra-product-hero {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding-bottom: 0 !important;
    align-items: start !important;
}

body.pietra-venetian-template .pietra-trust-widget {
    position: relative !important;
    inset: auto !important;
    clear: both !important;
    width: 100% !important;
    margin-top: 0 !important;
    transform: none !important;
}

body.pietra-venetian-template .pietra-trust-badges {
    padding-top: 12px !important;
    padding-bottom: 14px !important;
}

@media (min-width: 768px) {
    body.pietra-venetian-template .pietra-trust-widget {
        margin-top: 0 !important;
    }
}

/* ================================================================
   v0.6.7 site-wide product template
   ================================================================
   The helper now adds the legacy scoped body class to every single product.
   These direct hidden selectors provide an additional safeguard for empty
   Application Examples and Downloads containers on Tools and other categories. */
body.pietra-product-template .pietra-application-section-empty,
body.pietra-product-template .pietra-download-section-empty,
body.pietra-product-template .pietra-application-section-empty[hidden],
body.pietra-product-template .pietra-download-section-empty[hidden] {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    gap: 0 !important;
    overflow: hidden !important;
}


/* ================================================================
   v0.6.8 refinements
   ================================================================ */

/* Breadcrumbs were a little too fine compared with the rest of the page. */
body.pietra-product-template .elementor-widget-woocommerce-breadcrumb,
body.pietra-product-template .pietra-breadcrumb,
body.pietra-product-template .elementor-widget-woocommerce-breadcrumb .woocommerce-breadcrumb,
body.pietra-product-template .pietra-breadcrumb .woocommerce-breadcrumb {
    font-size: 14px !important;
    line-height: 1.45 !important;
}

/* A simple product uses a different WooCommerce form structure from a variable
   product. Use flexbox for that exact structure so the quantity and button keep
   the same deliberate gap as the variation add-to-cart row. */
body.pietra-product-template .elementor-widget-woocommerce-product-add-to-cart form.cart:not(.variations_form),
body.pietra-product-template .pietra-add-to-cart form.cart:not(.variations_form) {
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: stretch !important;
    gap: 12px !important;
    column-gap: 12px !important;
    width: 100% !important;
}

body.pietra-product-template .elementor-widget-woocommerce-product-add-to-cart form.cart:not(.variations_form) .quantity,
body.pietra-product-template .pietra-add-to-cart form.cart:not(.variations_form) .quantity {
    flex: 0 0 116px !important;
    width: 116px !important;
    margin: 0 !important;
}

body.pietra-product-template .elementor-widget-woocommerce-product-add-to-cart form.cart:not(.variations_form) .single_add_to_cart_button,
body.pietra-product-template .pietra-add-to-cart form.cart:not(.variations_form) .single_add_to_cart_button {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
}

/* Hide empty lower sections even if Elementor changes or drops a helper class.
   :has() is supported by current WordPress browser targets and is backed up by
   the JavaScript classes below. */
body.pietra-product-template .pietra-application-section:has(.pietra-empty-application-gallery),
body.pietra-product-template .pietra-download-section:has(.pietra-empty-downloads),
body.pietra-product-template .pietra-application-section-empty,
body.pietra-product-template .pietra-download-section-empty {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    gap: 0 !important;
    overflow: hidden !important;
}

/* When both Application Examples and Product Documents are absent, remove the
   combined trailing spacing that was left by the content grid and the two
   lower-section placeholders. */
body.pietra-product-template.pietra-no-lower-product-assets .pietra-product-content-grid,
body.pietra-product-template .pietra-venetian-product.pietra-no-lower-product-assets .pietra-product-content-grid {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

body.pietra-product-template.pietra-no-lower-product-assets .pietra-product-content-grid .pietra-acf-block:last-child,
body.pietra-product-template .pietra-venetian-product.pietra-no-lower-product-assets .pietra-product-content-grid .pietra-acf-block:last-child,
body.pietra-product-template.pietra-no-lower-product-assets .pietra-product-content-grid .pietra-category-quote:last-child,
body.pietra-product-template .pietra-venetian-product.pietra-no-lower-product-assets .pietra-product-content-grid .pietra-category-quote:last-child {
    margin-bottom: 0 !important;
}

body.pietra-product-template.pietra-no-lower-product-assets .pietra-upsell-section,
body.pietra-product-template .pietra-venetian-product.pietra-no-lower-product-assets .pietra-upsell-section {
    margin-top: 0 !important;
    padding-top: 18px !important;
}

@media (max-width: 430px) {
    body.pietra-product-template .elementor-widget-woocommerce-product-add-to-cart form.cart:not(.variations_form),
    body.pietra-product-template .pietra-add-to-cart form.cart:not(.variations_form) {
        gap: 9px !important;
        column-gap: 9px !important;
    }

    body.pietra-product-template .elementor-widget-woocommerce-product-add-to-cart form.cart:not(.variations_form) .quantity,
    body.pietra-product-template .pietra-add-to-cart form.cart:not(.variations_form) .quantity {
        flex-basis: 104px !important;
        width: 104px !important;
    }
}

/* ================================================================
   v0.6.9 refinement
   ================================================================
   When both Application Examples and Product Documents are absent, preserve
   a modest visual break before the recommendations divider. Earlier versions
   correctly removed the large empty placeholders, but brought the divider too
   close to the final description content. */
body.pietra-product-template.pietra-no-lower-product-assets .pietra-upsell-section,
body.pietra-product-template .pietra-venetian-product.pietra-no-lower-product-assets .pietra-upsell-section {
    margin-top: 20px !important;
}


/* v0.7.11 - Completely reset inherited FlexSlider/Astra thumbnail sizing.
   Every thumbnail occupies one equal grid cell, including every fourth item. */
body.pietra-product-template .elementor-widget-woocommerce-product-images .flex-control-thumbs,
body.pietra-product-template .pietra-product-images .flex-control-thumbs {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 10px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
    background: transparent !important;
}

body.pietra-product-template .elementor-widget-woocommerce-product-images .flex-control-thumbs > li,
body.pietra-product-template .elementor-widget-woocommerce-product-images .flex-control-thumbs > li:nth-child(n),
body.pietra-product-template .pietra-product-images .flex-control-thumbs > li,
body.pietra-product-template .pietra-product-images .flex-control-thumbs > li:nth-child(n) {
    display: block !important;
    float: none !important;
    clear: none !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    aspect-ratio: 1 / 1 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    background: #fff !important;
}

body.pietra-product-template .elementor-widget-woocommerce-product-images .flex-control-thumbs > li > img,
body.pietra-product-template .pietra-product-images .flex-control-thumbs > li > img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    object-fit: contain !important;
    object-position: center !important;
}


/* ================================================================
   v0.7.17 mobile purchase and payment refinements
   ================================================================ */

@media (max-width: 767px) {
    /* Simple products do not use WooCommerce's variation add-to-cart wrapper.
       Stack their quantity control and Add to Cart button to match the working
       mobile layout already used by variable products. */
    body.pietra-product-template .elementor-widget-woocommerce-product-add-to-cart form.cart:not(.variations_form):not(.grouped_form),
    body.pietra-product-template .pietra-add-to-cart form.cart:not(.variations_form):not(.grouped_form) {
        display: flex !important;
        flex-flow: column nowrap !important;
        align-items: stretch !important;
        width: 100% !important;
        max-width: 100% !important;
        gap: 10px !important;
        column-gap: 0 !important;
        box-sizing: border-box !important;
    }

    body.pietra-product-template .elementor-widget-woocommerce-product-add-to-cart form.cart:not(.variations_form):not(.grouped_form) .quantity,
    body.pietra-product-template .pietra-add-to-cart form.cart:not(.variations_form):not(.grouped_form) .quantity {
        flex: 0 0 auto !important;
        align-self: flex-start !important;
        width: 116px !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    body.pietra-product-template .elementor-widget-woocommerce-product-add-to-cart form.cart:not(.variations_form):not(.grouped_form) .single_add_to_cart_button,
    body.pietra-product-template .elementor-widget-woocommerce-product-add-to-cart form.cart:not(.variations_form):not(.grouped_form) .single_add_to_cart_button.button,
    body.pietra-product-template .elementor-widget-woocommerce-product-add-to-cart form.cart:not(.variations_form):not(.grouped_form) .single_add_to_cart_button.button.alt,
    body.pietra-product-template .pietra-add-to-cart form.cart:not(.variations_form):not(.grouped_form) .single_add_to_cart_button,
    body.pietra-product-template .pietra-add-to-cart form.cart:not(.variations_form):not(.grouped_form) .single_add_to_cart_button.button,
    body.pietra-product-template .pietra-add-to-cart form.cart:not(.variations_form):not(.grouped_form) .single_add_to_cart_button.button.alt {
        flex: 0 0 auto !important;
        align-self: stretch !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        box-sizing: border-box !important;
    }

    /* Six payment methods displayed as two centred rows of three on mobile. */
    body.pietra-product-template .pietra-payment-list {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        width: 100% !important;
        max-width: 300px !important;
        gap: 8px 10px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    body.pietra-product-template .pietra-payment-list .pietra-payment-icon {
        height: 34px !important;
    }

    body.pietra-product-template .pietra-payment-list .pietra-payment-icon img {
        max-width: 52px !important;
        height: 34px !important;
    }

    body.pietra-product-template .pietra-payment-list .pietra-payment-bank-transfer img {
        width: 56px !important;
        max-width: 56px !important;
        height: 36px !important;
    }
}


/* ================================================================
   v0.7.19 desktop sticky product gallery
   ================================================================ */

@media (min-width: 1025px) {
    /* The gallery remains visible while the longer purchase and tint-colour
       column scrolls. Because the sticky column remains inside the hero grid,
       it naturally stops when the two-column product section ends. */
    body.pietra-product-template .pietra-venetian-product {
        --pietra-sticky-gallery-offset: 130px;
    }

    body.pietra-product-template .pietra-product-hero {
        overflow: visible !important;
        align-items: start !important;
    }

    body.pietra-product-template .pietra-hero-media {
        position: -webkit-sticky !important;
        position: sticky !important;
        top: var(--pietra-sticky-gallery-offset, 130px) !important;
        align-self: start !important;
        height: fit-content !important;
        min-height: 0 !important;
    }
}


/* ================================================================
   v0.7.20 variable-product pricing prompt
   ================================================================ */

/* WooCommerce leaves the variation-price area blank until all required
   variation options have been selected. This prompt occupies that same
   purchase-area position and disappears as soon as the selection is complete. */
body.pietra-product-template .pietra-variation-price-prompt {
    display: block;
    width: 100%;
    margin: 8px 0 12px;
    color: #b42318;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    box-sizing: border-box;
}

body.pietra-product-template .pietra-variation-price-prompt[hidden] {
    display: none !important;
}

/* ================================================================
   v0.7.21 hide stale variation pricing after a selection is cleared
   ================================================================ */

/* WooCommerce may retain the previously selected price momentarily, or in
   some layouts indefinitely, after a variation dropdown is reset. While a
   required variation is missing, show only the pricing prompt. */
body.pietra-product-template
form.variations_form.pietra-variation-selection-incomplete
.single_variation .woocommerce-variation-price,
body.pietra-product-template
form.variations_form.pietra-variation-selection-incomplete
.single_variation .price {
    display: none !important;
}


/* ================================================================
   v0.8.0 native WooCommerce colour variation image swatches
   ================================================================ */

/* The native select remains in the form as WooCommerce's source of truth, but
   is visually hidden once the accessible image-button interface is available. */
body.pietra-product-template
form.variations_form.pietra-has-variation-colour-swatches
tr.pietra-colour-variation-row
select.pietra-colour-select-native {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

body.pietra-product-template .pietra-variation-swatches {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    width: 100%;
    margin: 4px 0 2px;
    box-sizing: border-box;
}

body.pietra-product-template .pietra-variation-swatch {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    min-width: 0;
    min-height: 98px;
    padding: 6px;
    overflow: hidden;
    border: 1px solid var(--pietra-border, #d8cec5);
    border-radius: 2px;
    background: #fff;
    color: var(--pietra-text, #302a26);
    box-shadow: none;
    font: inherit;
    line-height: 1.25;
    text-align: center;
    cursor: pointer;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color .16s ease, box-shadow .16s ease, opacity .16s ease, transform .16s ease;
}

body.pietra-product-template .pietra-variation-swatch:hover:not(:disabled) {
    border-color: #a97455;
    transform: translateY(-1px);
}

body.pietra-product-template .pietra-variation-swatch:focus-visible {
    outline: 2px solid #9a674b;
    outline-offset: 3px;
}

body.pietra-product-template .pietra-variation-swatch.is-selected {
    border: 2px solid #9a674b;
    padding: 5px;
    box-shadow: 0 0 0 2px rgba(154, 103, 75, .14);
}

body.pietra-product-template .pietra-variation-swatch-image-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 58px;
    overflow: hidden;
    background: #f3efeb;
}

body.pietra-product-template .pietra-variation-swatch-image-wrap img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
    object-position: center;
}

body.pietra-product-template .pietra-variation-swatch-label {
    display: block;
    min-width: 0;
    padding: 7px 3px 1px;
    overflow-wrap: anywhere;
    color: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
}

body.pietra-product-template .pietra-variation-swatch-status {
    display: block;
    min-height: 0;
    padding: 1px 2px 2px;
    color: #a33a31;
    font-size: 9px;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
}

body.pietra-product-template .pietra-variation-swatch--text-only {
    justify-content: center;
    min-height: 76px;
}

body.pietra-product-template .pietra-variation-swatch--text-only .pietra-variation-swatch-image-wrap {
    display: none;
}

body.pietra-product-template .pietra-variation-swatch--text-only .pietra-variation-swatch-label {
    padding: 10px 5px 4px;
    font-size: 13px;
}

body.pietra-product-template .pietra-variation-swatch:disabled,
body.pietra-product-template .pietra-variation-swatch[aria-disabled="true"] {
    cursor: not-allowed;
    transform: none;
}

body.pietra-product-template .pietra-variation-swatch.is-out-of-stock {
    opacity: .46;
    background: #f4f1ee;
}

body.pietra-product-template .pietra-variation-swatch.is-out-of-stock .pietra-variation-swatch-image-wrap::after {
    content: "";
    position: absolute;
    inset: 50% -12%;
    height: 2px;
    background: rgba(139, 49, 42, .72);
    transform: rotate(-23deg);
    transform-origin: center;
}

body.pietra-product-template .pietra-variation-swatch.is-unavailable:not(.is-out-of-stock) {
    opacity: .55;
    background: #f7f5f3;
}

@media (max-width: 1024px) {
    body.pietra-product-template .pietra-variation-swatches {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    body.pietra-product-template .pietra-variation-swatches {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
    }

    body.pietra-product-template .pietra-variation-swatch {
        min-height: 94px;
    }

    body.pietra-product-template .pietra-variation-swatch-image-wrap {
        height: 56px;
    }
}

/* ================================================================
   v0.8.1 colour-variation swatch refinements
   ================================================================ */

/* Keep every selector image on the same landscape canvas. This crops square
   or unusually proportioned source artwork instead of allowing one swatch to
   change the visible tile proportions. */
body.pietra-product-template .pietra-variation-swatch-image-wrap {
    position: relative;
    width: 100%;
    height: auto !important;
    aspect-ratio: 1.6 / 1;
    flex: 0 0 auto;
    border: 1px solid transparent;
    border-radius: 0;
    background: #f3efeb;
    box-sizing: border-box;
}

body.pietra-product-template .pietra-variation-swatch-image-wrap img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    object-fit: cover !important;
    object-position: center !important;
}

/* Match the site's tint-colour presentation: image and code without a white
   card surrounding the whole option. */
body.pietra-product-template .pietra-variation-swatch {
    min-height: 0;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none;
}

body.pietra-product-template .pietra-variation-swatch:hover:not(:disabled) {
    border-color: transparent;
    transform: none;
}

body.pietra-product-template .pietra-variation-swatch:hover:not(:disabled)
.pietra-variation-swatch-image-wrap {
    border-color: #a97455;
}

body.pietra-product-template .pietra-variation-swatch:focus-visible {
    outline: none;
}

body.pietra-product-template .pietra-variation-swatch:focus-visible
.pietra-variation-swatch-image-wrap {
    outline: 2px solid #9a674b;
    outline-offset: 3px;
}

body.pietra-product-template .pietra-variation-swatch.is-selected {
    padding: 0;
    border: 0;
    background: transparent !important;
    box-shadow: none;
}

body.pietra-product-template .pietra-variation-swatch.is-selected
.pietra-variation-swatch-image-wrap {
    border: 2px solid #9a674b;
    box-shadow: 0 0 0 2px rgba(154, 103, 75, .14);
}

body.pietra-product-template .pietra-variation-swatch-label {
    padding: 6px 2px 0;
}

body.pietra-product-template .pietra-variation-swatch.is-selected
.pietra-variation-swatch-label {
    color: #8b5e45;
}

body.pietra-product-template .pietra-variation-swatch.is-out-of-stock,
body.pietra-product-template .pietra-variation-swatch.is-unavailable:not(.is-out-of-stock) {
    background: transparent !important;
}

/* A missing image remains usable as a text tile, but does not reintroduce the
   full white-card treatment used by v0.8.0. */
body.pietra-product-template .pietra-variation-swatch--text-only {
    min-height: 0;
}

body.pietra-product-template .pietra-variation-swatch--text-only
.pietra-variation-swatch-label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 62px;
    padding: 8px;
    border: 1px dashed var(--pietra-border, #d8cec5);
    box-sizing: border-box;
}

/* Make the native reset link clearer and align it with the swatch grid. */
body.pietra-product-template
form.variations_form.pietra-has-variation-colour-swatches
.reset_variations.pietra-colour-reset-selection {
    display: inline-block;
    margin: 8px 0 0 4px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}


/* ================================================================
   v0.8.2 swatch cards and Checkout order-review refinements
   ================================================================ */

/* Restore the white option cards used in v0.8.0 while preserving the v0.8.1
   price, reset-link and Cart/Checkout variation-label improvements. */
body.pietra-product-template .pietra-variation-swatch {
    min-height: 98px;
    padding: 6px;
    overflow: hidden;
    border: 1px solid var(--pietra-border, #d8cec5);
    border-radius: 2px;
    background: #fff !important;
    box-shadow: none;
}

body.pietra-product-template .pietra-variation-swatch:hover:not(:disabled) {
    border-color: #a97455;
    transform: translateY(-1px);
}

body.pietra-product-template .pietra-variation-swatch:focus-visible {
    outline: 2px solid #9a674b;
    outline-offset: 3px;
}

body.pietra-product-template .pietra-variation-swatch:focus-visible
.pietra-variation-swatch-image-wrap {
    outline: none;
}

body.pietra-product-template .pietra-variation-swatch.is-selected {
    padding: 5px;
    border: 2px solid #9a674b;
    background: #fff !important;
    box-shadow: 0 0 0 2px rgba(154, 103, 75, .14);
}

body.pietra-product-template .pietra-variation-swatch.is-selected
.pietra-variation-swatch-image-wrap {
    border: 0;
    box-shadow: none;
}

body.pietra-product-template .pietra-variation-swatch-image-wrap {
    border: 0;
}

body.pietra-product-template .pietra-variation-swatch-label {
    padding: 7px 3px 1px;
}

body.pietra-product-template .pietra-variation-swatch.is-out-of-stock {
    background: #f4f1ee !important;
}

body.pietra-product-template .pietra-variation-swatch.is-unavailable:not(.is-out-of-stock) {
    background: #f7f5f3 !important;
}

body.pietra-product-template .pietra-variation-swatch--text-only {
    justify-content: center;
    min-height: 76px;
}

body.pietra-product-template .pietra-variation-swatch--text-only
.pietra-variation-swatch-label {
    min-height: 0;
    padding: 10px 5px 4px;
    border: 0;
    font-size: 13px;
}

@media (max-width: 767px) {
    body.pietra-product-template .pietra-variation-swatch {
        min-height: 94px;
    }
}

/* Give the product description more of the Checkout order-review table on
   both desktop and mobile. The subtotal remains wide enough for Australian
   currency values but no longer consumes nearly half of the row. */
body.woocommerce-checkout
.woocommerce-checkout-review-order-table {
    width: 100% !important;
    table-layout: fixed !important;
}

body.woocommerce-checkout
.woocommerce-checkout-review-order-table th.product-name,
body.woocommerce-checkout
.woocommerce-checkout-review-order-table td.product-name {
    width: 73% !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
    overflow-wrap: break-word;
    word-break: normal;
}

body.woocommerce-checkout
.woocommerce-checkout-review-order-table th.product-total,
body.woocommerce-checkout
.woocommerce-checkout-review-order-table td.product-total {
    width: 27% !important;
    min-width: 82px;
    padding-left: 8px !important;
    text-align: right !important;
    vertical-align: top !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}

body.woocommerce-checkout
.woocommerce-checkout-review-order-table .product-quantity {
    display: inline !important;
    white-space: nowrap !important;
}

/* Variation and tint details stay on a clean line beneath the product name. */
body.woocommerce-checkout
.woocommerce-checkout-review-order-table td.product-name dl.variation,
body.woocommerce-checkout
.woocommerce-checkout-review-order-table td.product-name .wc-item-meta,
body.woocommerce-checkout
.woocommerce-checkout-review-order-table td.product-name > p {
    clear: both;
    display: block;
    width: 100%;
    margin-top: 4px;
}

/* Make the complete order-review and payment area stand out from the warm page
   background. These selectors cover the standard WooCommerce heading and the
   review panel used by Astra and Elementor-based site layouts. */
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review,
body.woocommerce-checkout .woocommerce-checkout-review-order {
    background-color: #fff !important;
}

@media (max-width: 767px) {
    body.woocommerce-checkout
    .woocommerce-checkout-review-order-table th.product-name,
    body.woocommerce-checkout
    .woocommerce-checkout-review-order-table td.product-name {
        width: 72% !important;
        padding-right: 10px !important;
    }

    body.woocommerce-checkout
    .woocommerce-checkout-review-order-table th.product-total,
    body.woocommerce-checkout
    .woocommerce-checkout-review-order-table td.product-total {
        width: 28% !important;
        min-width: 78px;
        padding-left: 5px !important;
    }
}


/* ================================================================
   v0.8.3 equal swatch cards and Checkout table-structure correction
   ================================================================ */

/* Keep every Colour option in exactly the same grid track. This also protects
   the first option from broad theme button rules that can otherwise give it a
   different intrinsic width. */
body.pietra-product-template .pietra-variation-swatches {
    align-items: stretch;
}

body.pietra-product-template
.pietra-variation-swatches > .pietra-variation-swatch,
body.pietra-product-template
.pietra-variation-swatches > .pietra-variation-swatch:first-child {
    inline-size: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0;
    height: 100%;
    margin: 0 !important;
    padding: 6px 6px 2px;
    align-self: stretch;
    justify-self: stretch;
    box-sizing: border-box !important;
}

/* A selected card uses a second border pixel, so reduce its internal padding
   by one pixel to keep its outside dimensions identical to the other cards. */
body.pietra-product-template
.pietra-variation-swatches > .pietra-variation-swatch.is-selected {
    padding: 5px 5px 1px;
}

body.pietra-product-template .pietra-variation-swatch-image-wrap {
    display: block !important;
    inline-size: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    aspect-ratio: 1.6 / 1 !important;
    box-sizing: border-box !important;
}

body.pietra-product-template .pietra-variation-swatch-label {
    padding: 5px 3px 0;
}

/* Restore sensible spacing for a text-only fallback option. */
body.pietra-product-template
.pietra-variation-swatches > .pietra-variation-swatch--text-only {
    min-height: 70px;
    padding-bottom: 3px;
}

body.pietra-product-template
.pietra-variation-swatches > .pietra-variation-swatch--text-only
.pietra-variation-swatch-label {
    padding: 8px 5px 3px;
}

/* Astra/WooCommerce can apply separated or non-table display rules to the
   Checkout review. Percentage cell widths alone then leave a large visual gap
   between Product and Subtotal. Reinstate the native table formatting first,
   remove all cell spacing, and then apply one reliable 70/30 split. */
body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table {
    display: table !important;
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}

body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table thead {
    display: table-header-group !important;
}

body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table tbody {
    display: table-row-group !important;
}

body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table tfoot {
    display: table-footer-group !important;
}

body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table tr {
    display: table-row !important;
    width: auto !important;
    margin: 0 !important;
    column-gap: 0 !important;
    gap: 0 !important;
}

body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table th,
body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table td {
    display: table-cell !important;
    float: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table th.product-name,
body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table td.product-name,
body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table tfoot th {
    width: 70% !important;
    padding-right: 12px !important;
    text-align: left !important;
    vertical-align: top !important;
}

body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table th.product-total,
body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table td.product-total,
body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table tfoot td {
    width: 30% !important;
    min-width: 0 !important;
    padding-left: 8px !important;
    text-align: right !important;
    vertical-align: top !important;
    box-sizing: border-box !important;
}

/* Prices remain intact, while shipping labels and tax notes are allowed to
   wrap naturally within the now genuinely wider right-hand column. */
body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table td.product-total,
body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table .amount {
    white-space: nowrap !important;
}

body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table tfoot td,
body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table tfoot td label,
body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table tfoot td .includes_tax {
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table tfoot td .amount {
    white-space: nowrap !important;
}

body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table .product-quantity {
    display: inline !important;
    white-space: nowrap !important;
}

body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table td.product-name dl.variation,
body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table td.product-name .wc-item-meta,
body.woocommerce-checkout
 table.shop_table.woocommerce-checkout-review-order-table td.product-name > p {
    max-width: 100%;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    body.woocommerce-checkout
    table.shop_table.woocommerce-checkout-review-order-table th.product-name,
    body.woocommerce-checkout
    table.shop_table.woocommerce-checkout-review-order-table td.product-name,
    body.woocommerce-checkout
    table.shop_table.woocommerce-checkout-review-order-table tfoot th {
        width: 70% !important;
        padding-right: 9px !important;
    }

    body.woocommerce-checkout
    table.shop_table.woocommerce-checkout-review-order-table th.product-total,
    body.woocommerce-checkout
    table.shop_table.woocommerce-checkout-review-order-table td.product-total,
    body.woocommerce-checkout
    table.shop_table.woocommerce-checkout-review-order-table tfoot td {
        width: 30% !important;
        padding-left: 5px !important;
    }
}

/* ================================================================
   v0.8.4 optional product-specific Dulux colour-match request
   ================================================================ */

/* The existing purchase rows are flex layouts. When this optional full-width
   field is present, allow one deliberate line break before quantity and button. */
body.pietra-product-template
form.cart:has(.pietra-dulux-colour-match),
body.pietra-product-template
.woocommerce-variation-add-to-cart:has(.pietra-dulux-colour-match) {
    flex-wrap: wrap !important;
}

body.pietra-product-template .pietra-dulux-colour-match {
    flex: 0 0 100%;
    width: 100%;
    margin: 16px 0 18px;
    padding: 15px 16px 16px;
    border: 1px solid #ddd4cc;
    border-left: 3px solid #c98f6f;
    border-radius: 2px;
    background: #fff;
    box-sizing: border-box;
}

body.pietra-product-template .pietra-dulux-colour-match__title {
    margin: 0 0 7px;
    color: #2b2724;
    font-family: "Manrope", sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
}

body.pietra-product-template .pietra-dulux-colour-match__notice {
    margin: 0 0 12px;
    color: #5d5650;
    font-family: "Manrope", sans-serif;
    font-size: 12px;
    line-height: 1.55;
}

body.pietra-product-template .pietra-dulux-colour-match__field {
    margin: 0;
}

body.pietra-product-template .pietra-dulux-colour-match__field label {
    display: block;
    margin: 0 0 6px;
    color: #2b2724;
    font-family: "Manrope", sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}

body.pietra-product-template .pietra-dulux-colour-match__field .required {
    color: #b42318;
}

body.pietra-product-template
.pietra-dulux-colour-match__field input[type="text"] {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #d5ccc5;
    border-radius: 0;
    background: #fff;
    color: #2b2724;
    box-shadow: none;
    font-family: "Manrope", sans-serif;
    font-size: 14px;
    line-height: 1.35;
    box-sizing: border-box;
}

body.pietra-product-template
.pietra-dulux-colour-match__field input[type="text"]:focus {
    border-color: #c98f6f;
    outline: 2px solid rgba(201, 143, 111, 0.22);
    outline-offset: 1px;
    box-shadow: none;
}

@media (max-width: 767px) {
    body.pietra-product-template .pietra-dulux-colour-match {
        padding: 14px 14px 15px;
    }
}


/* ================================================================
   v0.8.5 Dulux field purchase-row layout repair
   ================================================================ */

/* The field is rendered inside WooCommerce's purchase form. Use an explicit
   two-row grid so it occupies the full first row and cannot compress the
   quantity control or Add to Cart button into narrow columns. */
body.pietra-product-template
.elementor-widget-woocommerce-product-add-to-cart
form.cart:not(.variations_form):has(> .pietra-dulux-colour-match),
body.pietra-product-template
.pietra-add-to-cart
form.cart:not(.variations_form):has(> .pietra-dulux-colour-match) {
    display: grid !important;
    grid-template-columns: 116px minmax(0, 1fr) !important;
    grid-template-areas:
        "dulux dulux"
        "quantity button" !important;
    align-items: stretch !important;
    gap: 12px !important;
    column-gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

body.pietra-product-template
.elementor-widget-woocommerce-product-add-to-cart
.woocommerce-variation-add-to-cart:has(> .pietra-dulux-colour-match),
body.pietra-product-template
.elementor-widget-woocommerce-product-add-to-cart
.woocommerce-variation-add-to-cart.variations_button:has(> .pietra-dulux-colour-match),
body.pietra-product-template
.pietra-add-to-cart
.woocommerce-variation-add-to-cart:has(> .pietra-dulux-colour-match),
body.pietra-product-template
.pietra-add-to-cart
.woocommerce-variation-add-to-cart.variations_button:has(> .pietra-dulux-colour-match) {
    display: grid !important;
    grid-template-columns: 116px minmax(0, 1fr) !important;
    grid-template-areas:
        "dulux dulux"
        "quantity button" !important;
    align-items: stretch !important;
    gap: 12px !important;
    column-gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

body.pietra-product-template
form.cart:has(> .pietra-dulux-colour-match)
> .pietra-dulux-colour-match,
body.pietra-product-template
.woocommerce-variation-add-to-cart:has(> .pietra-dulux-colour-match)
> .pietra-dulux-colour-match {
    grid-area: dulux !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 16px 0 4px !important;
}

body.pietra-product-template
form.cart:has(> .pietra-dulux-colour-match)
> .quantity,
body.pietra-product-template
.woocommerce-variation-add-to-cart:has(> .pietra-dulux-colour-match)
> .quantity {
    grid-area: quantity !important;
    align-self: stretch !important;
    margin: 0 !important;
}

body.pietra-product-template
form.cart:has(> .pietra-dulux-colour-match)
> .single_add_to_cart_button,
body.pietra-product-template
.woocommerce-variation-add-to-cart:has(> .pietra-dulux-colour-match)
> .single_add_to_cart_button {
    grid-area: button !important;
    align-self: stretch !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 58px !important;
    height: 58px !important;
    margin: 0 !important;
    padding: 0 24px !important;
    box-sizing: border-box !important;
}

@media (max-width: 767px) {
    body.pietra-product-template
    .elementor-widget-woocommerce-product-add-to-cart
    form.cart:not(.variations_form):has(> .pietra-dulux-colour-match),
    body.pietra-product-template
    .pietra-add-to-cart
    form.cart:not(.variations_form):has(> .pietra-dulux-colour-match),
    body.pietra-product-template
    .elementor-widget-woocommerce-product-add-to-cart
    .woocommerce-variation-add-to-cart:has(> .pietra-dulux-colour-match),
    body.pietra-product-template
    .pietra-add-to-cart
    .woocommerce-variation-add-to-cart:has(> .pietra-dulux-colour-match) {
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-areas:
            "dulux"
            "quantity"
            "button" !important;
        gap: 10px !important;
        column-gap: 0 !important;
    }

    body.pietra-product-template
    form.cart:has(> .pietra-dulux-colour-match)
    > .pietra-dulux-colour-match,
    body.pietra-product-template
    .woocommerce-variation-add-to-cart:has(> .pietra-dulux-colour-match)
    > .pietra-dulux-colour-match {
        margin-bottom: 2px !important;
    }

    body.pietra-product-template
    form.cart:has(> .pietra-dulux-colour-match)
    > .quantity,
    body.pietra-product-template
    .woocommerce-variation-add-to-cart:has(> .pietra-dulux-colour-match)
    > .quantity {
        justify-self: start !important;
    }

    body.pietra-product-template
    form.cart:has(> .pietra-dulux-colour-match)
    > .single_add_to_cart_button,
    body.pietra-product-template
    .woocommerce-variation-add-to-cart:has(> .pietra-dulux-colour-match)
    > .single_add_to_cart_button {
        width: 100% !important;
        max-width: 100% !important;
    }
}


/* ================================================================
   v0.8.6 optional pre-made sample requirements
   ================================================================ */

body.pietra-product-template .pietra-sample-requirements {
    flex: 0 0 100%;
    width: 100%;
    margin: 16px 0 18px;
    padding: 15px 16px 16px;
    border: 1px solid #ddd4cc;
    border-left: 3px solid #c98f6f;
    border-radius: 2px;
    background: #fff;
    box-sizing: border-box;
}

body.pietra-product-template .pietra-sample-requirements__title {
    margin: 0 0 7px;
    color: #2b2724;
    font-family: "Manrope", sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
}

body.pietra-product-template .pietra-sample-requirements__notice {
    margin: 0 0 12px;
    color: #5d5650;
    font-family: "Manrope", sans-serif;
    font-size: 12px;
    line-height: 1.55;
}

body.pietra-product-template .pietra-sample-requirements__field {
    margin: 0;
}

body.pietra-product-template .pietra-sample-requirements__field label {
    display: block;
    margin: 0 0 6px;
    color: #2b2724;
    font-family: "Manrope", sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}

body.pietra-product-template .pietra-sample-requirements__field .required {
    color: #b42318;
}

body.pietra-product-template
.pietra-sample-requirements__field textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 96px;
    margin: 0;
    padding: 10px 12px;
    resize: vertical;
    border: 1px solid #d5ccc5;
    border-radius: 0;
    background: #fff;
    color: #2b2724;
    box-shadow: none;
    font-family: "Manrope", sans-serif;
    font-size: 14px;
    line-height: 1.45;
    box-sizing: border-box;
}

body.pietra-product-template
.pietra-sample-requirements__field textarea:focus {
    border-color: #c98f6f;
    outline: 2px solid rgba(201, 143, 111, 0.22);
    outline-offset: 1px;
    box-shadow: none;
}

/* Generalise the v0.8.5 purchase-row repair so either optional request
   field can occupy a full-width row without compressing quantity or button.
   Multiple request fields would also stack safely if ever enabled together. */
body.pietra-product-template
.elementor-widget-woocommerce-product-add-to-cart
form.cart:not(.variations_form):has(> .pietra-product-request-field),
body.pietra-product-template
.pietra-add-to-cart
form.cart:not(.variations_form):has(> .pietra-product-request-field),
body.pietra-product-template
.elementor-widget-woocommerce-product-add-to-cart
.woocommerce-variation-add-to-cart:has(> .pietra-product-request-field),
body.pietra-product-template
.pietra-add-to-cart
.woocommerce-variation-add-to-cart:has(> .pietra-product-request-field) {
    display: grid !important;
    grid-template-columns: 116px minmax(0, 1fr) !important;
    grid-template-areas: none !important;
    align-items: stretch !important;
    gap: 12px !important;
    column-gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

body.pietra-product-template
form.cart:has(> .pietra-product-request-field)
> .pietra-product-request-field,
body.pietra-product-template
.woocommerce-variation-add-to-cart:has(> .pietra-product-request-field)
> .pietra-product-request-field {
    grid-area: auto !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 16px 0 4px !important;
}

body.pietra-product-template
form.cart:has(> .pietra-product-request-field)
> .quantity,
body.pietra-product-template
.woocommerce-variation-add-to-cart:has(> .pietra-product-request-field)
> .quantity {
    grid-area: auto !important;
    grid-column: 1 !important;
    align-self: stretch !important;
    margin: 0 !important;
}

body.pietra-product-template
form.cart:has(> .pietra-product-request-field)
> .single_add_to_cart_button,
body.pietra-product-template
.woocommerce-variation-add-to-cart:has(> .pietra-product-request-field)
> .single_add_to_cart_button {
    grid-area: auto !important;
    grid-column: 2 !important;
    align-self: stretch !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 58px !important;
    height: 58px !important;
    margin: 0 !important;
    padding: 0 24px !important;
    box-sizing: border-box !important;
}

@media (max-width: 767px) {
    body.pietra-product-template .pietra-sample-requirements {
        padding: 14px 14px 15px;
    }

    body.pietra-product-template
    .elementor-widget-woocommerce-product-add-to-cart
    form.cart:not(.variations_form):has(> .pietra-product-request-field),
    body.pietra-product-template
    .pietra-add-to-cart
    form.cart:not(.variations_form):has(> .pietra-product-request-field),
    body.pietra-product-template
    .elementor-widget-woocommerce-product-add-to-cart
    .woocommerce-variation-add-to-cart:has(> .pietra-product-request-field),
    body.pietra-product-template
    .pietra-add-to-cart
    .woocommerce-variation-add-to-cart:has(> .pietra-product-request-field) {
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-areas: none !important;
        gap: 10px !important;
        column-gap: 0 !important;
    }

    body.pietra-product-template
    form.cart:has(> .pietra-product-request-field)
    > .pietra-product-request-field,
    body.pietra-product-template
    .woocommerce-variation-add-to-cart:has(> .pietra-product-request-field)
    > .pietra-product-request-field {
        grid-column: 1 !important;
        margin-bottom: 2px !important;
    }

    body.pietra-product-template
    form.cart:has(> .pietra-product-request-field)
    > .quantity,
    body.pietra-product-template
    .woocommerce-variation-add-to-cart:has(> .pietra-product-request-field)
    > .quantity {
        grid-column: 1 !important;
        justify-self: start !important;
    }

    body.pietra-product-template
    form.cart:has(> .pietra-product-request-field)
    > .single_add_to_cart_button,
    body.pietra-product-template
    .woocommerce-variation-add-to-cart:has(> .pietra-product-request-field)
    > .single_add_to_cart_button {
        grid-column: 1 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* --------------------------------------------------------------------------
   Cart cross-sells - Complete your System
   -------------------------------------------------------------------------- */

/*
 * A cross-sell may be assigned to several product systems, so its single
 * WooCommerce/Astra category label can be misleading in the cart. Hide only
 * that label inside the cart cross-sell section. Category labels elsewhere on
 * the site remain unchanged.
 */
body.woocommerce-cart .cross-sells .ast-woo-product-category {
    display: none !important;
}

/* --------------------------------------------------------------------------
   v0.8.11 - Product samples, Complete Your System and related products
   -------------------------------------------------------------------------- */

body.woocommerce-cart .cross-sells > h2 {
    margin-bottom: 8px !important;
}

body.woocommerce-cart .cross-sells .pietra-cart-cross-sells-intro {
    max-width: 880px;
    margin: 0 0 22px;
    color: var(--ast-global-color-3, #4a443f);
    font-size: 15px;
    line-height: 1.6;
}

body.pietra-product-template .pietra-product-recommendation-section {
    width: 100%;
    margin: 30px 0 0;
    padding: 28px;
    box-sizing: border-box;
    border-radius: 3px;
}

body.pietra-product-template .pietra-sample-recommendations {
    background: #f6f3f1;
    border: 1px solid #c8ad98;
    border-left: 5px solid var(--pietra-accent, #8a4f23);
}

body.pietra-product-template .pietra-system-recommendations {
    background: #fff;
    border: 1px solid #d8ccc4;
    box-shadow: 0 7px 22px rgba(38, 34, 31, .06);
}

body.pietra-product-template .pietra-product-recommendation-intro {
    max-width: 920px;
    margin: 0 0 22px;
}

body.pietra-product-template .pietra-product-recommendation-heading {
    margin: 0 0 10px;
    color: var(--pietra-text, #26221f);
    font-family: var(--e-global-typography-primary-font-family, inherit);
    font-size: clamp(30px, 3vw, 38px);
    font-weight: 500;
    line-height: 1.12;
}

body.pietra-product-template .pietra-system-recommendations .pietra-product-recommendation-heading {
    font-size: clamp(29px, 2.8vw, 35px);
}

body.pietra-product-template .pietra-product-recommendation-copy {
    margin: 0;
    color: var(--pietra-text, #26221f);
    font-size: 16px;
    line-height: 1.65;
}

/*
 * Curated recommendation lists should use the width available to the cards
 * rather than inheriting WooCommerce's normal four-column catalogue maths.
 */
body.pietra-product-template
.pietra-product-recommendation-section
.pietra-recommendation-products {
    min-width: 0;
    margin-top: 0;
}

body.pietra-product-template
.pietra-product-recommendation-section
.pietra-recommendation-products
ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    width: 100% !important;
    margin: 0 !important;
}

body.pietra-product-template
.pietra-product-recommendation-section
.pietra-recommendation-products
ul.products
li.product {
    float: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

/* One assigned product should remain a compact single card, not stretch to
 * half or all of the available recommendation area. */
body.pietra-product-template
.pietra-product-recommendation-section.pietra-recommendation-count-1
.pietra-recommendation-products
ul.products {
    grid-template-columns: minmax(0, 1fr) !important;
}

/* A system component can belong to several category branches, so its single
 * primary category label can be misleading here just as it is in the cart. */
body.pietra-product-template .pietra-system-recommendations .ast-woo-product-category {
    display: none !important;
}

body.pietra-product-template .pietra-product-recommendation-section + .pietra-upsell-section {
    margin-top: 30px !important;
}

/*
 * Desktop treatment: explanatory copy forms the left column and the curated
 * products form the right column. This removes the large unused area beneath
 * one sample card or two common system products.
 */
@media (min-width: 901px) {
    body.pietra-product-template .pietra-product-recommendation-section {
        display: grid;
        grid-template-columns: minmax(280px, .9fr) minmax(0, 1.35fr);
        gap: clamp(28px, 4vw, 52px);
        align-items: start;
    }

    body.pietra-product-template .pietra-product-recommendation-intro {
        max-width: none;
        margin: 0;
        padding-top: 3px;
    }

    body.pietra-product-template
    .pietra-product-recommendation-section.pietra-recommendation-count-1 {
        grid-template-columns: minmax(0, 1fr) minmax(240px, 280px);
    }

    body.pietra-product-template
    .pietra-sample-recommendations.pietra-recommendation-count-2 {
        grid-template-columns: minmax(280px, 1fr) minmax(480px, 560px);
    }

    body.pietra-product-template
    .pietra-system-recommendations.pietra-recommendation-count-3
    .pietra-recommendation-products
    ul.products,
    body.pietra-product-template
    .pietra-system-recommendations.pietra-recommendation-count-4
    .pietra-recommendation-products
    ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 900px) {
    body.pietra-product-template .pietra-product-recommendation-section {
        display: block;
    }

    body.pietra-product-template .pietra-product-recommendation-intro {
        margin-bottom: 22px;
    }
}

@media (max-width: 767px) {
    body.woocommerce-cart .cross-sells .pietra-cart-cross-sells-intro {
        margin-bottom: 18px;
        font-size: 14px;
    }

    body.pietra-product-template .pietra-product-recommendation-section {
        margin-top: 22px;
        padding: 20px 16px;
    }

    body.pietra-product-template .pietra-product-recommendation-intro {
        margin-bottom: 18px;
    }

    body.pietra-product-template .pietra-product-recommendation-heading,
    body.pietra-product-template .pietra-system-recommendations .pietra-product-recommendation-heading {
        font-size: 27px;
    }

    body.pietra-product-template .pietra-product-recommendation-copy {
        font-size: 15px;
        line-height: 1.55;
    }
}

@media (max-width: 480px) {
    body.pietra-product-template
    .pietra-product-recommendation-section
    .pietra-recommendation-products
    ul.products {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* --------------------------------------------------------------------------
   v0.8.12 - Compact sample recommendation inside the product hero
   -------------------------------------------------------------------------- */

/*
 * The sample recommendation is moved beneath the gallery on desktop/tablet
 * and immediately below Add to Cart on mobile. It is deliberately compact so
 * it can remain inside the desktop sticky media column without creating a
 * second large full-width catalogue section.
 */
body.pietra-product-template .pietra-sample-recommendations {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 22px 0 0 !important;
    padding: 20px !important;
    box-sizing: border-box;
    background: #f6f3f1;
    border: 1px solid #c8ad98;
    border-left: 5px solid var(--pietra-accent, #8a4f23);
    border-radius: 3px;
    box-shadow: none;
}

body.pietra-product-template .pietra-sample-recommendations .pietra-product-recommendation-intro {
    max-width: none;
    margin: 0 0 16px !important;
    padding: 0 !important;
}

body.pietra-product-template .pietra-sample-recommendations .pietra-product-recommendation-heading {
    margin: 0 0 7px !important;
    font-size: clamp(23px, 2.2vw, 29px) !important;
    line-height: 1.15 !important;
}

body.pietra-product-template .pietra-sample-recommendations .pietra-product-recommendation-copy {
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.52 !important;
}

body.pietra-product-template
.pietra-sample-recommendations
.pietra-recommendation-products
ul.products {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 0 !important;
}

body.pietra-product-template
.pietra-sample-recommendations
.pietra-recommendation-products
ul.products
li.product {
    display: grid !important;
    grid-template-columns: minmax(125px, 40%) minmax(0, 1fr) !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(38, 34, 31, .16);
    border-radius: 2px;
}

/* Astra's normal product card uses these two wrappers. Turning them into the
 * two grid cells keeps the image compact and all product information readable. */
body.pietra-product-template
.pietra-sample-recommendations
li.product
.astra-shop-thumbnail-wrap {
    grid-column: 1;
    min-width: 0;
    height: 100%;
    background: #fff;
}

body.pietra-product-template
.pietra-sample-recommendations
li.product
.astra-shop-thumbnail-wrap a,
body.pietra-product-template
.pietra-sample-recommendations
li.product
.astra-shop-thumbnail-wrap img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    min-height: 175px;
    margin: 0 !important;
    object-fit: cover !important;
}

body.pietra-product-template
.pietra-sample-recommendations
li.product
.astra-shop-summary-wrap {
    grid-column: 2;
    display: flex;
    min-width: 0;
    padding: 14px !important;
    flex-direction: column;
    align-items: stretch;
}

body.pietra-product-template .pietra-sample-recommendations li.product .ast-woo-product-category {
    margin-bottom: 4px;
    font-size: 12px;
}

body.pietra-product-template .pietra-sample-recommendations li.product .woocommerce-loop-product__title,
body.pietra-product-template .pietra-sample-recommendations li.product .ast-loop-product__link {
    font-size: 14px !important;
    line-height: 1.35 !important;
}

body.pietra-product-template .pietra-sample-recommendations li.product .price {
    margin-top: auto !important;
    padding-top: 10px;
    font-size: 15px !important;
}

body.pietra-product-template .pietra-sample-recommendations li.product .button {
    width: 100% !important;
    min-height: 40px !important;
    margin-top: 8px !important;
    padding: 10px 12px !important;
    font-size: 11px !important;
}

/* Once moved into the hero, the sample callout must not inherit the lower
 * recommendation section's desktop two-column layout. */
@media (min-width: 768px) {
    body.pietra-product-template .pietra-sample-recommendations {
        grid-template-columns: none !important;
        gap: 0 !important;
    }
}

@media (max-width: 767px) {
    body.pietra-product-template .pietra-sample-recommendations {
        margin: 20px 0 8px !important;
        padding: 18px 16px !important;
    }

    body.pietra-product-template .pietra-sample-recommendations .pietra-product-recommendation-heading {
        font-size: 24px !important;
    }

    body.pietra-product-template
    .pietra-sample-recommendations
    .pietra-recommendation-products
    ul.products
    li.product {
        grid-template-columns: 112px minmax(0, 1fr) !important;
    }

    body.pietra-product-template
    .pietra-sample-recommendations
    li.product
    .astra-shop-thumbnail-wrap img {
        min-height: 160px;
    }
}

/* --------------------------------------------------------------------------
   v0.8.16 - Matching-colour sample recommendation
   -------------------------------------------------------------------------- */

body.pietra-product-template .pietra-matching-sample-list {
    display: grid;
    gap: 12px;
    width: 100%;
    margin: 0;
}

body.pietra-product-template .pietra-matching-sample-card {
    display: grid;
    grid-template-columns: minmax(125px, 40%) minmax(0, 1fr);
    width: 100%;
    min-width: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(38, 34, 31, .16);
    border-radius: 2px;
}

body.pietra-product-template .pietra-matching-sample-image {
    display: block;
    min-width: 0;
    background: #fff;
}

body.pietra-product-template .pietra-matching-sample-image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 225px;
    margin: 0;
    object-fit: cover;
}

body.pietra-product-template .pietra-matching-sample-content {
    display: flex;
    min-width: 0;
    padding: 14px;
    flex-direction: column;
    align-items: stretch;
}

body.pietra-product-template .pietra-matching-sample-title {
    color: inherit;
    font-family: "Cormorant Garamond", serif;
    font-size: 16px;
    line-height: 1.35;
    text-decoration: none;
}

body.pietra-product-template .pietra-matching-sample-title:hover,
body.pietra-product-template .pietra-matching-sample-title:focus {
    text-decoration: underline;
}

body.pietra-product-template .pietra-matching-sample-price {
    margin-top: 8px;
    font-size: 15px;
    font-weight: 700;
}

body.pietra-product-template .pietra-matching-sample-price .amount {
    font-weight: inherit;
}

body.pietra-product-template .pietra-matching-sample-selection {
    display: block;
    min-height: 0;
    margin-top: 12px;
    padding: 10px 11px;
    overflow: hidden;
    background: #f7f4f1;
    border: 1px solid rgba(38, 34, 31, .14);
}

body.pietra-product-template .pietra-matching-sample-selection.has-swatch {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr);
    grid-template-rows: 1fr auto;
    min-height: 72px;
    padding: 0;
    align-items: stretch;
}

body.pietra-product-template .pietra-matching-sample-swatch {
    grid-column: 1;
    grid-row: 1 / -1;
    width: 100%;
    min-width: 0;
    height: 100%;
    min-height: 72px;
    overflow: hidden;
    background: #fff;
    border: 0;
    border-right: 1px solid rgba(38, 34, 31, .16);
}

body.pietra-product-template .pietra-matching-sample-swatch img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

body.pietra-product-template .pietra-matching-sample-selection-copy {
    display: block;
    min-width: 0;
    padding: 0;
}

body.pietra-product-template .pietra-matching-sample-selection.has-swatch
.pietra-matching-sample-selection-copy {
    display: block;
    grid-column: 2;
    grid-row: 1;
    padding: 10px 11px 3px;
    align-self: end;
}

body.pietra-product-template .pietra-matching-sample-selection-label {
    display: block;
    margin-bottom: 2px;
    color: rgba(38, 34, 31, .72);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .055em;
    line-height: 1.25;
    text-transform: uppercase;
}

body.pietra-product-template .pietra-matching-sample-selection-value {
    display: block;
    font-size: 14px;
    line-height: 1.3;
}

body.pietra-product-template .pietra-matching-sample-change-colour {
    grid-column: 1;
    grid-row: 2;
    width: auto;
    margin: 0 11px 9px;
    padding: 0;
    justify-self: start;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--pietra-accent-dark, #9f603b);
    box-shadow: none;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.25;
    text-decoration: underline;
    text-underline-offset: 2px;
    text-transform: none;
}

body.pietra-product-template .pietra-matching-sample-selection.has-swatch
.pietra-matching-sample-change-colour {
    grid-column: 2;
}

body.pietra-product-template .pietra-matching-sample-change-colour:hover,
body.pietra-product-template .pietra-matching-sample-change-colour:focus {
    border: 0;
    background: transparent;
    color: #6f3f25;
    box-shadow: none;
    text-decoration-thickness: 2px;
}

body.pietra-product-template .pietra-matching-sample-note {
    margin: 10px 0 0;
    font-size: 11px;
    line-height: 1.4;
    color: rgba(38, 34, 31, .75);
}

body.pietra-product-template .pietra-matching-sample-action {
    display: flex !important;
    width: 100% !important;
    min-height: 50px !important;
    margin: 11px 0 0 !important;
    padding: 0 16px !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid var(--pietra-accent, #c68d69) !important;
    border-radius: 2px !important;
    background: var(--pietra-accent, #c68d69) !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .045em !important;
    line-height: 1.15 !important;
    text-align: center !important;
    text-transform: uppercase !important;
    white-space: normal !important;
}

body.pietra-product-template .pietra-matching-sample-action:not(:disabled):hover,
body.pietra-product-template .pietra-matching-sample-action:not(:disabled):focus {
    background: color-mix(in srgb, var(--pietra-accent, #c68d69) 88%, black) !important;
    border-color: color-mix(in srgb, var(--pietra-accent, #c68d69) 88%, black) !important;
    color: #fff !important;
}

body.pietra-product-template .pietra-matching-sample-action:disabled {
    cursor: wait;
    opacity: .65;
}

body.pietra-product-template .pietra-matching-sample-view-product {
    display: inline-block;
    margin: 9px auto 0;
    color: inherit;
    font-size: 12px;
    line-height: 1.3;
    text-align: center;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.pietra-product-template .pietra-matching-sample-status {
    min-height: 0;
    margin: 10px 0 0;
    font-size: 11px;
    line-height: 1.35;
    text-align: center;
}

body.pietra-product-template .pietra-matching-sample-status:empty {
    display: none;
}

/* The sample and payment areas finish the product hero. Give them room before
   the Key Messages trust strip on products carrying a sample recommendation. */
body.pietra-product-template.pietra-has-sample-recommendation .pietra-trust-widget {
    margin-top: 30px !important;
}

@media (max-width: 767px) {
    body.pietra-product-template .pietra-matching-sample-card {
        grid-template-columns: 112px minmax(0, 1fr);
    }

    body.pietra-product-template .pietra-matching-sample-image img {
        min-height: 230px;
    }

    body.pietra-product-template .pietra-matching-sample-content {
        padding: 12px;
    }
}

body.pietra-product-template
.pietra-matching-sample-selection:not(.has-swatch)
.pietra-matching-sample-change-colour {
    display: none !important;
}

/* --------------------------------------------------------------------------
   v0.8.21 - Single availability display and low-stock state
   -------------------------------------------------------------------------- */

/* The Product Stock widget duplicates the availability already rendered by
   the Add to Cart widget. Keep only the purchase-area availability. */
body.pietra-product-template .pietra-product-stock.elementor-widget,
body.pietra-product-template .pietra-stock-widget-is-duplicate,
body.pietra-product-template .pietra-stock-widget-is-duplicate.elementor-widget {
    display: none !important;
    margin: 0 !important;
}

/* Preserve Astra/Pietra's existing In Stock and Out of Stock presentation.
   Only the new Low Stock state needs its own colour. */
body.pietra-product-template .pietra-add-to-cart .stock.low-stock,
body.pietra-product-template .pietra-add-to-cart .ast-stock-detail .stock.low-stock {
    color: #c97924 !important;
}

/* --------------------------------------------------------------------------
   v0.8.22 - Consistent variation availability markup
   -------------------------------------------------------------------------- */

body.pietra-product-template .pietra-add-to-cart .ast-stock-detail {
    font-family: inherit;
}

body.pietra-product-template .pietra-add-to-cart .ast-stock-detail .stock.in-stock {
    color: #68a15f !important;
}

body.pietra-product-template .pietra-add-to-cart .ast-stock-detail .stock.low-stock {
    color: #c97924 !important;
}

body.pietra-product-template .pietra-add-to-cart .ast-stock-detail .stock.out-of-stock {
    color: #e32620 !important;
}

