/* All rules are scoped. Home, header, slider, cart and thank-you are excluded. */
body.kym-visual-checkout .kym-checkout-ancestor {
    width: 100% !important;
    max-width: 1180px !important;
    min-width: 0 !important;
    flex-basis: auto !important;
    grid-column: 1 / -1;
    margin-inline: auto !important;
    box-sizing: border-box;
}
body.kym-visual-checkout form.checkout,
body.kym-visual-checkout .wp-block-woocommerce-checkout {
    width: 100% !important;
    max-width: 1140px !important;
    margin: 24px auto !important;
    box-sizing: border-box;
}
body.kym-visual-checkout form.checkout {
    display: block !important;
    padding: 0 16px;
}
body.kym-visual-checkout form.checkout::after { content: ''; display: table; clear: both; }
body.kym-visual-checkout form.checkout #customer_details,
body.kym-visual-checkout form.checkout #order_review {
    min-width: 0;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #eadfe3;
    border-radius: 16px;
    padding: 24px !important;
    box-shadow: 0 8px 28px rgb(42 28 35 / 4%);
}
body.kym-visual-checkout form.kym-checkout-classic #customer_details {
    width: 56% !important; float: left !important; clear: left !important;
}
body.kym-visual-checkout form.kym-checkout-classic #order_review_heading,
body.kym-visual-checkout form.kym-checkout-classic #order_review {
    width: 40% !important; float: right !important; clear: right !important;
}
body.kym-visual-checkout form.checkout #order_review_heading { margin: 0 0 16px; font-size: 22px; }
body.kym-visual-checkout form.checkout #customer_details > .col-1,
body.kym-visual-checkout form.checkout #customer_details > .col-2 {
    float: none !important; width: 100% !important; max-width: none !important; padding: 0 !important;
}
body.kym-visual-checkout form.checkout .woocommerce-billing-fields,
body.kym-visual-checkout form.checkout .woocommerce-shipping-fields,
body.kym-visual-checkout form.checkout .woocommerce-additional-fields {
    border: 0 !important; box-shadow: none !important; padding: 0 !important; background: transparent;
}
body.kym-visual-checkout form.checkout .woocommerce-billing-fields h3,
body.kym-visual-checkout form.checkout .woocommerce-additional-fields h3 { font-size: 21px; margin: 0 0 20px; }
body.kym-visual-checkout form.checkout .form-row { padding: 0 !important; margin: 0 0 16px !important; box-sizing: border-box; }
body.kym-visual-checkout form.checkout .form-row-first { width: 48% !important; float: left !important; }
body.kym-visual-checkout form.checkout .form-row-last { width: 48% !important; float: right !important; }
body.kym-visual-checkout form.checkout .form-row-wide { width: 100% !important; clear: both !important; }
body.kym-visual-checkout form.checkout .form-row label { font-size: 14px; line-height: 1.6; margin-bottom: 6px; }
body.kym-visual-checkout form.checkout .woocommerce-input-wrapper { display: block; width: 100%; }
body.kym-visual-checkout form.checkout .form-row input.input-text,
body.kym-visual-checkout form.checkout .form-row textarea,
body.kym-visual-checkout form.checkout .form-row select {
    box-sizing: border-box !important; width: 100% !important; max-width: 100% !important;
    min-height: 46px; padding: 11px 13px !important; border: 1px solid #d8d5d7;
    border-radius: 9px; background: #fff; color: #28232a; font-size: 16px; line-height: 1.5;
}
body.kym-visual-checkout form.checkout .form-row textarea { min-height: 100px; resize: vertical; }
body.kym-visual-checkout form.checkout .select2-container { width: 100% !important; max-width: 100%; }
body.kym-visual-checkout form.checkout .select2-selection--single { min-height: 46px; border-radius: 9px; border-color: #d8d5d7; }
body.kym-visual-checkout form.checkout .select2-selection__rendered { line-height: 44px; padding-inline: 13px; }
body.kym-visual-checkout form.checkout .select2-selection__arrow { height: 44px; }
body.kym-visual-checkout form.checkout .input-text:focus { outline: 2px solid #b52d58; outline-offset: 2px; }
body.kym-visual-checkout form.checkout table.woocommerce-checkout-review-order-table {
    width: 100% !important; table-layout: auto !important; border-collapse: collapse;
    border: 0 !important; border-radius: 0; box-shadow: none; margin: 0 0 20px;
}
body.kym-visual-checkout form.checkout table.woocommerce-checkout-review-order-table th,
body.kym-visual-checkout form.checkout table.woocommerce-checkout-review-order-table td {
    padding: 14px 8px !important; border: 0; border-bottom: 1px solid #eee7ea;
    font-size: 14px; line-height: 1.55; vertical-align: top;
    word-break: normal !important; overflow-wrap: anywhere;
}
body.kym-visual-checkout form.checkout table.woocommerce-checkout-review-order-table .product-name { width: 65% !important; }
body.kym-visual-checkout form.checkout table.woocommerce-checkout-review-order-table .product-total { text-align: right; white-space: nowrap; }
body.kym-visual-checkout form.checkout .woocommerce-checkout-review-order-table .order-total { font-size: 18px; }
body.kym-visual-checkout form.checkout #payment {
    background: #faf7f8 !important; border: 1px solid #eee5e9; border-radius: 12px;
    width: 100% !important; box-sizing: border-box; margin-top: 16px;
}
/* Gateway forms/iframes remain owned by each payment plugin. */
body.kym-visual-checkout form.checkout #payment ul.payment_methods { padding: 16px !important; margin: 0; }
body.kym-visual-checkout form.checkout #payment ul.payment_methods > li { margin-bottom: 12px; font-size: 14px; line-height: 1.6; }
body.kym-visual-checkout form.checkout #payment .place-order { float: none !important; width: auto !important; padding: 16px !important; }
body.kym-visual-checkout form.checkout #place_order { width: 100%; min-height: 48px; border-radius: 9px; font-size: 15px; }
body.kym-visual-checkout form.checkout .e-checkout__container {
    display: grid !important; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) !important;
    gap: 32px !important; width: 100% !important;
}
body.kym-visual-checkout form.kym-checkout-elementor #customer_details,
body.kym-visual-checkout form.kym-checkout-elementor #order_review,
body.kym-visual-checkout form.kym-checkout-elementor #order_review_heading {
    float: none !important; width: 100% !important; max-width: none !important;
}
body.kym-visual-checkout form.checkout .e-checkout__column { min-width: 0; width: 100% !important; }

/* Standard WooCommerce product gallery and summary; gallery slider transforms stay intact. */
body.kym-visual-product div.product.kym-product-layout {
    display: grid !important; grid-template-columns: minmax(0, var(--kym-image-width, 420px)) minmax(0, 1fr);
    gap: 24px 44px; width: 100% !important; max-width: 1180px !important;
    margin: 24px auto !important; padding: 24px; box-sizing: border-box; position: relative;
}
body.kym-visual-product .kym-product-layout::before,
body.kym-visual-product .kym-product-layout::after { display: none !important; }
body.kym-visual-product .kym-product-layout > .woocommerce-product-gallery,
body.kym-visual-product .kym-product-layout > .summary.entry-summary {
    width: 100% !important; max-width: 100% !important; min-width: 0 !important; float: none !important; margin: 0 !important;
}
body.kym-visual-product .kym-product-layout > .summary.entry-summary { align-self: start; }
body.kym-visual-product .kym-product-layout > .woocommerce-tabs,
body.kym-visual-product .kym-product-layout > .related,
body.kym-visual-product .kym-product-layout > .upsells { grid-column: 1 / -1; min-width: 0; }
body.kym-visual-product .kym-product-layout > .onsale { position: absolute; top: 30px; left: 30px; z-index: 2; }
body.kym-visual-product .kym-product-layout .woocommerce-product-gallery__image img:not(.zoomImg) {
    width: 100% !important; height: auto !important; max-height: 560px !important; object-fit: contain !important;
    border-radius: 12px;
}
body.kym-visual-product .kym-product-layout .flex-control-thumbs {
    display: flex !important; flex-wrap: wrap; gap: 10px; margin: 12px 0 0 !important; padding: 0 !important;
}
body.kym-visual-product .kym-product-layout .flex-control-thumbs li { width: 64px !important; float: none !important; margin: 0 !important; list-style: none; }
body.kym-visual-product .kym-product-layout .flex-control-thumbs img { width: 64px !important; height: 80px !important; object-fit: contain; border-radius: 8px; }
body.kym-visual-product .kym-product-layout .summary .product_title { font-size: clamp(25px, 2.5vw, 35px) !important; line-height: 1.2 !important; margin: 0 0 16px !important; }
body.kym-visual-product .kym-product-layout .summary p.price { font-size: 25px !important; margin: 0 0 22px !important; line-height: 1.4; }
body.kym-visual-product .kym-product-layout .summary .price del { font-size: .75em; }
body.kym-visual-product .kym-product-layout .summary form.cart { margin: 20px 0 !important; }
body.kym-visual-product .kym-product-layout .summary .product_meta { font-size: 13px; padding-top: 16px; line-height: 1.7; }

/* Only classic shop/category grids. No home shortcode or carousel targeting. */
body.kym-visual-catalog ul.products:not(.owl-carousel):not(.slick-slider):not(.swiper-wrapper) {
    display: grid !important; grid-template-columns: repeat(var(--kym-columns, 4), minmax(0, 1fr));
    gap: 24px !important; max-width: 1180px; width: 100%; margin: 24px auto !important;
    padding: 0 !important; box-sizing: border-box;
}
body.kym-visual-catalog ul.products::before,
body.kym-visual-catalog ul.products::after { display: none !important; }
body.kym-visual-catalog ul.products > li.product:not(.swiper-slide):not(.slick-slide) {
    width: 100% !important; min-width: 0; float: none !important; margin: 0 !important;
    padding: 12px !important; box-sizing: border-box; border: 1px solid #eee5e9;
    border-radius: 12px; background: #fff; display: flex; flex-direction: column;
}
body.kym-visual-catalog ul.products > li.product a img {
    width: 100%; height: 240px !important; object-fit: contain !important; border-radius: 8px; margin-bottom: 12px;
}
body.kym-visual-catalog ul.products > li.product .woocommerce-loop-product__title { font-size: 15px !important; line-height: 1.45; min-height: 44px; }
body.kym-visual-catalog ul.products > li.product .price { font-size: 17px; line-height: 1.5; }
body.kym-visual-catalog ul.products > li.product > .button { margin-top: auto; text-align: center; }

@media (max-width: 1024px) {
    body.kym-visual-catalog ul.products:not(.owl-carousel):not(.slick-slider):not(.swiper-wrapper) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px !important; }
    body.kym-visual-product div.product.kym-product-layout { grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); gap: 24px; padding: 20px; }
}
@media (max-width: 767px) {
    body.kym-visual-checkout form.checkout { padding: 0 12px; }
    body.kym-visual-checkout form.kym-checkout-classic #customer_details,
    body.kym-visual-checkout form.kym-checkout-classic #order_review_heading,
    body.kym-visual-checkout form.kym-checkout-classic #order_review { width: 100% !important; float: none !important; clear: both !important; }
    body.kym-visual-checkout form.checkout #order_review_heading { margin-top: 24px; }
    body.kym-visual-checkout form.checkout #customer_details,
    body.kym-visual-checkout form.checkout #order_review { padding: 18px !important; }
    body.kym-visual-checkout form.checkout .e-checkout__container { grid-template-columns: minmax(0, 1fr) !important; gap: 24px !important; }
    body.kym-visual-product div.product.kym-product-layout { grid-template-columns: minmax(0, 1fr); padding: 16px; gap: 24px; margin: 12px auto !important; }
    body.kym-visual-product .kym-product-layout > .woocommerce-product-gallery { max-width: var(--kym-image-width, 420px) !important; margin-inline: auto !important; }
    body.kym-visual-product .kym-product-layout .woocommerce-product-gallery__image img:not(.zoomImg) { max-height: 460px !important; }
    body.kym-visual-catalog ul.products:not(.owl-carousel):not(.slick-slider):not(.swiper-wrapper) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px !important; }
    body.kym-visual-catalog ul.products > li.product:not(.swiper-slide):not(.slick-slide) { padding: 9px !important; }
    body.kym-visual-catalog ul.products > li.product a img { height: 190px !important; }
}
@media (max-width: 380px) {
    body.kym-visual-checkout form.checkout .form-row-first,
    body.kym-visual-checkout form.checkout .form-row-last { width: 100% !important; float: none !important; }
    body.kym-visual-catalog ul.products > li.product a img { height: 160px !important; }
}
