/* Presentation only. Keep WooCommerce's layout, validation, mobile sticky controls and React roots.
   No selectors target Stripe/Apple Pay/Google Pay/Link iframes or express wallet buttons. */
body.zo-purchase-page { background-color: #fffbf7; }
body.zo-purchase-page .site-main { max-width: none; width: 100%; padding: 0; }
body.zo-purchase-page .site-main > .page-content { margin: 0; padding: 0; }
.zo-purchase {
    --zo-paper: #fffbf7; --zo-ink: #382f32; --zo-muted: #70656a;
    --zo-berry: #a83f52; --zo-accent: #854052; --zo-line: #e4d8d6;
    --zo-sand: #eee9df; --zo-pink: #f0e0df; --wc-separator-color: #e4d8d6;
    --button--color-background: #a83f52; --button--color-text: #fff;
    position: relative; isolation: isolate; width: 100%; padding: 14px 0 60px;
    color: var(--zo-ink); background: var(--zo-paper); font: 16px/1.65 Arial, Helvetica, sans-serif;
}
.zo-purchase::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: url("landscape.png") center top / cover no-repeat; opacity: .10; }
.zo-purchase *, .zo-purchase *::before, .zo-purchase *::after { box-sizing: border-box; }
.zo-purchase-wrap { width: min(1320px, calc(100% - 64px)); margin-inline: auto; }
.zo-purchase-hero { margin: 0 3px; padding: 42px 0 44px; border: 1px solid var(--zo-line); border-radius: 26px; background: var(--zo-sand); }
.zo-purchase .zo-purchase-eyebrow { margin: 0 0 15px; color: #875567; font-size: 11px; font-weight: 800; letter-spacing: .18em; }
.zo-purchase-hero h1 { margin: 0; color: var(--zo-ink); font: 400 clamp(40px, 4.4vw, 66px)/1.12 Georgia, 'Times New Roman', serif; letter-spacing: -.045em; }
.zo-purchase .zo-purchase-intro { max-width: 650px; margin: 18px 0 0; color: var(--zo-muted); font-size: 15px; }
.zo-purchase-steps { padding: 27px 0 32px; }
.zo-purchase-steps ol { display: flex; flex-wrap: wrap; gap: 12px 32px; margin: 0; padding: 0; list-style: none; }
.zo-purchase-steps li { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 13px; color: var(--zo-muted); }
.zo-purchase-step-number { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border: 1px solid var(--zo-line); border-radius: 50%; background: var(--zo-paper); font-size: 12px; }
.zo-purchase-steps [aria-current="step"] { color: var(--zo-accent); font-weight: 700; }
.zo-purchase-steps [aria-current="step"] .zo-purchase-step-number { background: var(--zo-accent); border-color: var(--zo-accent); color: #fff; }
.zo-purchase-steps a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.zo-purchase-native { min-width: 0; }
.zo-purchase-native :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) { width: 100%; max-width: none; margin-inline: 0; color: var(--zo-ink); font-family: Arial, Helvetica, sans-serif; }
.zo-purchase :is(.wc-block-components-main, .wc-block-components-sidebar) { padding: 26px; border: 1px solid var(--zo-line); border-radius: 24px; background: #fffbf7f5; }
.zo-purchase .wc-block-components-sidebar { align-self: flex-start; background: #fbf6f0f5; }
.zo-purchase .wc-block-components-sidebar-layout { row-gap: 24px; }
.zo-purchase :is(.wc-block-components-title, .wc-block-components-checkout-step__title, .wc-block-cart__totals-title) { color: var(--zo-ink); font-family: Georgia, 'Times New Roman', serif; font-size: 27px; font-weight: 400; line-height: 1.25; letter-spacing: -.025em; text-transform: none; }
.zo-purchase .wc-block-components-checkout-step__heading { margin-bottom: 18px; }
.zo-purchase :is(.wc-block-components-product-name, .wc-block-components-product-name:visited) { color: var(--zo-ink); font-family: Arial, Helvetica, sans-serif; font-size: 15px; font-weight: 700; line-height: 1.45; text-decoration: none; }
.zo-purchase .wc-block-components-product-name:hover { color: var(--zo-accent); text-decoration: underline; }
.zo-purchase :is(.wc-block-components-product-metadata, .wc-block-components-product-details, .wc-block-components-checkout-step__description) { color: var(--zo-muted); font-size: 13px; }
.zo-purchase .wc-block-components-formatted-money-amount { color: var(--zo-ink); }
.zo-purchase .wc-block-components-totals-footer-item { color: var(--zo-accent); font-size: 18px; }
.zo-purchase .wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount { color: var(--zo-accent); }
.zo-purchase :is(.wc-block-components-quantity-selector, .wc-block-components-chip, .wc-block-components-product-badge) { border-color: var(--zo-line); border-radius: 999px; color: var(--zo-accent); }
.zo-purchase .wc-block-components-quantity-selector { background: var(--zo-paper); width: 128px; max-width: 100%; }
.zo-purchase .wc-block-components-quantity-selector::after { border-color: var(--zo-line); border-radius: 999px; }
.zo-purchase .wc-block-components-quantity-selector__button { color: var(--zo-ink); background: transparent; }
.zo-purchase .wc-block-components-quantity-selector__input { color: var(--zo-ink); background: transparent; }
.zo-purchase .wc-block-components-order-summary-item__quantity { background: var(--zo-pink); border-color: var(--zo-line); color: var(--zo-accent); box-shadow: 0 0 0 2px var(--zo-paper); }
.zo-purchase .wc-block-cart-item__image img, .zo-purchase .wc-block-components-order-summary-item__image img { border-radius: 14px; height: auto; }
.zo-purchase :is(.wc-block-cart-item__remove-link, .wc-block-components-totals-coupon-link, .wc-block-components-checkout-return-to-cart-button) { color: var(--zo-accent); text-underline-offset: 3px; }
/* Style actual native checkout/cart actions, not generic buttons or wallet integrations. */
.zo-purchase :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .wc-block-components-totals-coupon__button) {
    border: 1px solid var(--zo-berry); border-radius: 999px; background: var(--zo-berry); color: #fff;
    font: 700 14px/1.45 Arial, Helvetica, sans-serif; min-height: 48px; padding: 13px 22px; box-shadow: none; text-decoration: none;
}
.zo-purchase :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .wc-block-components-totals-coupon__button):hover:not(:disabled):not([aria-disabled="true"]) { background: var(--zo-accent); border-color: var(--zo-accent); color: #fff; }
.zo-purchase :is(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button, .wc-block-components-totals-coupon__button):disabled { opacity: .55; cursor: not-allowed; }
.zo-purchase .wc-block-cart__submit-container { background-color: var(--zo-paper); }
.zo-purchase .wc-block-cart__submit-container::before { color: #e4d8d6; }
/* Preserve floating labels, validation colours, input types and native padding. */
.zo-purchase .wc-block-components-text-input:not(.has-error) input:not([aria-invalid="true"]),
.zo-purchase .wc-block-components-combobox:not(.has-error) .wc-block-components-combobox-control input:not([aria-invalid="true"]) { border-color: #b9a8ad; border-radius: 12px; background-color: var(--zo-paper); color: var(--zo-ink); font-family: Arial, Helvetica, sans-serif; }
.zo-purchase .wc-block-components-text-input:not(.has-error) input:focus:not([aria-invalid="true"]) { border-color: var(--zo-accent); box-shadow: 0 0 0 1px var(--zo-accent); }
.zo-purchase .wc-block-components-text-input label { color: var(--zo-muted); }
.zo-purchase .wc-block-components-checkbox__input { accent-color: var(--zo-accent); }
.zo-purchase .wc-block-components-checkbox__input:checked { background-color: var(--zo-accent); border-color: var(--zo-accent); }
.zo-purchase .wc-block-components-radio-control__input:checked { border-color: var(--zo-accent); }
.zo-purchase .wc-block-components-radio-control__input:checked::before { background-color: var(--zo-accent); }
.zo-purchase .wc-block-components-radio-control-accordion-option--checked-option-highlighted { box-shadow: inset 0 0 0 1px var(--zo-accent); }
.zo-purchase .wc-block-components-notice-banner { border-radius: 14px; font-family: Arial, Helvetica, sans-serif; }
.zo-purchase .wc-block-components-notice-banner.is-success { border-color: var(--zo-line); background: var(--zo-pink); color: var(--zo-ink); }
.zo-purchase .wc-block-components-notice-banner.is-success > svg { background-color: var(--zo-accent); }
.zo-purchase .wc-block-components-checkout-step__container, .zo-purchase .wc-block-components-order-summary { border-color: var(--zo-line); }
.zo-purchase .wc-block-components-checkout-step__container::after { border-color: var(--zo-line); }
.zo-purchase .wc-block-components-checkout-step__title::before { background: var(--zo-sand); border-color: var(--zo-line); color: var(--zo-accent); }
.zo-purchase :is(.wc-block-components-checkout-step__heading-content a, .wc-block-components-checkout-step__description a, .wc-block-checkout__terms a) { color: var(--zo-accent); text-decoration: underline; }
.zo-purchase :is(a, button, input, select, textarea):focus-visible { outline: 3px solid var(--zo-accent); outline-offset: 3px; }
/* Empty cart remains a native block, including its product suggestions. */
.zo-purchase .wp-block-woocommerce-empty-cart-block { padding: 40px 26px; border: 1px solid var(--zo-line); border-radius: 24px; background: #fffbf7f5; }
.zo-purchase .wp-block-woocommerce-empty-cart-block h2 { color: var(--zo-ink); font: 400 clamp(26px, 3vw, 36px)/1.25 Georgia, serif; letter-spacing: -.03em; }
.zo-purchase .wc-block-grid__product { border-radius: 18px; }
.zo-purchase .wc-block-grid__product-title { color: var(--zo-ink); font: 700 14px/1.5 Arial, Helvetica, sans-serif; }
.zo-purchase .wc-block-grid__product-price { color: var(--zo-accent); }
.zo-purchase .wc-block-grid__product-add-to-cart .wp-block-button__link { border-radius: 999px; background: var(--zo-berry); color: #fff; font-size: 13px; }
/* Native confirmation (classic theme) and WooCommerce confirmation blocks. No own order queries. */
.zo-purchase--received .woocommerce-order, .zo-purchase--pay .woocommerce { padding: 30px; border: 1px solid var(--zo-line); border-radius: 24px; background: #fffbf7f5; }
.zo-purchase--received :is(.woocommerce-order-details__title, .woocommerce-column__title) { font: 400 29px/1.25 Georgia, serif; color: var(--zo-ink); letter-spacing: -.025em; margin: 28px 0 18px; }
.zo-purchase--received .woocommerce-notice { padding: 18px 22px; border-radius: 16px; background: var(--zo-sand); color: var(--zo-ink); }
.zo-purchase--received .woocommerce-notice--error { background: #fbe9e8; border-left: 3px solid #b32d2e; color: #852021; }
.zo-purchase--received ul.order_details { display: flex; flex-wrap: wrap; gap: 20px 30px; padding: 24px 0; margin: 0 0 20px; border-bottom: 1px solid var(--zo-line); list-style: none; }
.zo-purchase--received ul.order_details li { float: none; padding: 0; margin: 0; border: 0; color: var(--zo-muted); font-size: 11px; line-height: 1.8; }
.zo-purchase--received ul.order_details strong { display: block; color: var(--zo-ink); font-size: 15px; font-weight: 700; }
.zo-purchase :is(.woocommerce-order-details, .woocommerce-customer-details) { margin-bottom: 28px; }
.zo-purchase :is(table.shop_table, .woocommerce-customer-details address) { border: 1px solid var(--zo-line); border-radius: 16px; background: var(--zo-paper); color: var(--zo-ink); }
.zo-purchase table.shop_table { border-spacing: 0; width: 100%; font-size: 14px; }
.zo-purchase table.shop_table :is(th, td) { padding: 14px 18px; border-color: var(--zo-line); overflow-wrap: anywhere; }
.zo-purchase table.shop_table thead { background: var(--zo-sand); }
.zo-purchase table.shop_table a, .zo-purchase .woocommerce-order a:not(.button) { color: var(--zo-accent); text-decoration: underline; }
.zo-purchase .woocommerce-customer-details address { padding: 20px; font-style: normal; font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; }
.zo-purchase .woocommerce-order .button, .zo-purchase--pay #place_order { border: 1px solid var(--zo-berry); border-radius: 999px; background: var(--zo-berry); color: #fff; padding: 13px 24px; font-size: 14px; font-weight: 700; }
.zo-purchase .woocommerce-order .button:hover, .zo-purchase--pay #place_order:hover { background: var(--zo-accent); color: #fff; }
.zo-purchase :is(.wp-block-woocommerce-order-confirmation-status, .wp-block-woocommerce-order-confirmation-summary, .wp-block-woocommerce-order-confirmation-totals-wrapper, .wp-block-woocommerce-order-confirmation-billing-wrapper, .wp-block-woocommerce-order-confirmation-shipping-wrapper) { border: 1px solid var(--zo-line); border-radius: 20px; padding: 24px; background: var(--zo-paper); margin-bottom: 24px; }
.zo-purchase-help { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 36px; padding: 26px 30px; border: 1px solid var(--zo-line); border-radius: 22px; background: var(--zo-sand); }
.zo-purchase-help h2 { margin: 0 0 6px; color: var(--zo-ink); font: 400 28px/1.25 Georgia, serif; letter-spacing: -.025em; }
.zo-purchase-help p { margin: 0; color: var(--zo-muted); font-size: 13px; }
.zo-purchase-help a { color: var(--zo-accent); font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; overflow-wrap: anywhere; }
.zo-purchase-help a span { margin-left: 14px; }
/* Keep amounts inside the padded card on narrow screens; do not hide any cart data. */
@container (max-width: 600px) {
    .zo-purchase .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row { grid-template-columns: 64px minmax(0, 1fr); }
    .zo-purchase .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__product { grid-column: 2 / 3; min-width: 0; }
    .zo-purchase .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__total { grid-column: 2 / 3; grid-row: 2; justify-content: flex-start; padding-top: 12px; }
    .zo-purchase .wc-block-cart-item__wrap { min-width: 0; }
    .zo-purchase .wc-block-components-product-name { overflow-wrap: anywhere; }
}
@media (max-width: 760px) {
    .zo-purchase { padding: 10px 0 40px; }
    .zo-purchase-wrap { width: calc(100% - 32px); }
    .zo-purchase-hero { padding: 30px 0 32px; border-radius: 22px; }
    .zo-purchase .zo-purchase-intro { font-size: 14px; }
    .zo-purchase-steps { padding: 22px 0; }
    .zo-purchase-steps ol { gap: 10px 16px; }
    .zo-purchase-steps li { gap: 7px; font-size: 12px; }
    .zo-purchase-step-number { width: 25px; height: 25px; font-size: 11px; }
    .zo-purchase :is(.wc-block-components-main, .wc-block-components-sidebar) { padding: 18px; border-radius: 20px; }
    .zo-purchase .wp-block-woocommerce-empty-cart-block { padding: 30px 16px; }
    .zo-purchase--received .woocommerce-order, .zo-purchase--pay .woocommerce { padding: 20px 16px; }
    .zo-purchase table.shop_table :is(th, td) { padding: 12px 10px; font-size: 13px; }
    .zo-purchase-help { flex-direction: column; align-items: flex-start; padding: 22px; margin-top: 26px; }
}
@media (prefers-reduced-motion: reduce) { .zo-purchase { scroll-behavior: auto; } }
