/* ================================================================
   OZ CART + CHECKOUT — /winkelwagen/ + /afrekenen/
   Reuses tokens, buttons, inputs from oz-design-system.css.
   Only new rules here: cart/checkout layout, qty picker,
   totals table, radio/checkbox skins, WC override resets.
   ================================================================ */

/* ── Page shell ──
   Renders inside .oz-page.oz-container from page.php so horizontal padding
   is already handled by the container; we only add vertical rhythm. */
.oz-cp {
    padding: 40px 0 72px;
}
.oz-cp__header {
    margin-bottom: 28px;
}
.oz-cp__title {
    font-family: var(--oz-ff-heading);
    font-size: var(--oz-text-2xl);
    color: var(--oz-text-primary);
    margin: 0;
}
.oz-cp__subtitle {
    font-size: 14px;
    color: var(--oz-text-muted);
    margin-top: 6px;
}

/* ── Two-column grid (items + summary) ── */
.oz-cp__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 32px;
    align-items: start;
}
@media (max-width: 900px) {
    .oz-cp__grid { grid-template-columns: 1fr; }
}

/* ── Items list card ── */
.oz-cp-items {
    background: var(--oz-bg-page);
    border: 1px solid var(--oz-border-light);
    border-radius: var(--oz-radius-lg);
    overflow: hidden;
}
.oz-cp-item {
    display: grid;
    grid-template-columns: 88px 1fr auto;
    gap: 20px;
    padding: 20px;
    border-bottom: 1px solid var(--oz-border-light);
    align-items: start;
}
.oz-cp-item:last-child { border-bottom: 0; }
.oz-cp-item__image {
    width: 88px;
    height: 88px;
    border-radius: var(--oz-radius);
    overflow: hidden;
    background: var(--oz-bg-warm);
    flex-shrink: 0;
}
.oz-cp-item__image a,
.oz-cp-item__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.oz-cp-item__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.oz-cp-item__name,
.oz-cp-item__name a {
    font-family: var(--oz-ff-body);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--oz-text-primary);
    text-decoration: none;
}
.oz-cp-item__name a:hover { color: var(--oz-accent); }
.oz-cp-item__meta,
.oz-cp-item__meta dl,
.oz-cp-item__meta p {
    font-size: 12px;
    color: var(--oz-text-muted);
    margin: 0;
}
.oz-cp-item__meta dl { display: flex; flex-wrap: wrap; gap: 2px 10px; }
.oz-cp-item__meta dt { font-weight: 600; margin-right: 4px; }
.oz-cp-item__meta dd { margin: 0; }
.oz-cp-item__price {
    font-size: 13px;
    color: var(--oz-text-muted);
    margin-top: 2px;
}
.oz-cp-item__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
    justify-content: space-between;
    min-height: 88px;
}
.oz-cp-item__subtotal {
    font-size: 15px;
    font-weight: 700;
    color: var(--oz-accent);
    white-space: nowrap;
}

/* ── Quantity picker (matches drawer aesthetic) ── */
.oz-cp-qty {
    display: inline-flex;
    border: 1px solid var(--oz-border);
    border-radius: 6px;
    overflow: hidden;
}
.oz-cp-qty .quantity { display: inline-flex; align-items: center; }
.oz-cp-qty input.qty,
.oz-cp-qty input[type="number"] {
    width: 40px;
    height: 32px;
    text-align: center;
    border: none;
    border-left: 1px solid var(--oz-border);
    border-right: 1px solid var(--oz-border);
    border-radius: 0;
    font-family: var(--oz-ff-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--oz-text-primary);
    background: var(--oz-bg-page);
    -moz-appearance: textfield;
    -webkit-appearance: none;
    appearance: none;
    padding: 0;
    margin: 0;
}
.oz-cp-qty input.qty:focus { outline: 2px solid var(--oz-accent); outline-offset: -2px; }
.oz-cp-qty input.qty::-webkit-inner-spin-button,
.oz-cp-qty input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.oz-cp-qty__btn {
    width: 32px;
    height: 32px;
    background: var(--oz-bg-subtle);
    border: none;
    cursor: pointer;
    font-size: 15px;
    line-height: 1;
    color: var(--oz-text-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s var(--oz-ease);
    padding: 0;
    margin: 0;
}
.oz-cp-qty__btn:hover { background: var(--oz-border-light); }

/* ── Remove (X) ── */
.oz-cp-item__remove {
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--oz-text-muted);
    font-size: 20px;
    line-height: 1;
    text-decoration: none !important;
    transition: background 0.15s var(--oz-ease), color 0.15s var(--oz-ease);
}
.oz-cp-item__remove:hover {
    background: #FEF2F2;
    color: var(--oz-error);
}

/* ── Actions row under item list ── */
.oz-cp-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-top: 20px;
    flex-wrap: wrap;
}
.oz-cp-coupon {
    display: inline-flex;
    gap: 8px;
    align-items: center;
}
.oz-cp-coupon .oz-input {
    max-width: 200px;
    height: 40px;
    padding: 8px 14px;
    font-size: 14px;
}

/* ── Summary / totals card ── */
.oz-cp-summary {
    background: var(--oz-bg-warm);
    border-radius: var(--oz-radius-lg);
    padding: 24px;
    position: sticky;
    top: calc(var(--oz-header-height) + 20px);
}
.oz-cp-summary__title {
    font-family: var(--oz-ff-heading);
    font-size: var(--oz-text-lg);
    font-weight: 400;
    color: var(--oz-text-primary);
    margin: 0 0 16px;
}
.oz-cp-summary table,
.oz-cp-summary .shop_table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
}
.oz-cp-summary th,
.oz-cp-summary td {
    padding: 8px 0;
    border: none;
    font-size: 14px;
    color: var(--oz-text-body);
    font-weight: 400;
    text-align: left;
    background: transparent;
}
.oz-cp-summary td { text-align: right; }
.oz-cp-summary .order-total th,
.oz-cp-summary .order-total td {
    padding-top: 16px;
    padding-bottom: 4px;
    border-top: 1px solid var(--oz-border);
    font-size: 15px;
    font-weight: 600;
    color: var(--oz-text-primary);
}
.oz-cp-summary .order-total .amount {
    color: var(--oz-accent);
    font-size: 18px;
    font-weight: 700;
}
/* Shipping-methods row: left-align the list, stack radios cleanly */
.oz-cp-summary tr.shipping th,
.oz-cp-summary tr.woocommerce-shipping-totals th { vertical-align: top; padding-top: 12px; }
.oz-cp-summary tr.shipping td,
.oz-cp-summary tr.woocommerce-shipping-totals td {
    text-align: left;
    padding: 10px 0;
}
.oz-cp-summary ul#shipping_method,
.oz-cp-summary .woocommerce-shipping-methods {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.oz-cp-summary .woocommerce-shipping-methods li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    padding: 0;
    line-height: 1.4;
}
.oz-cp-summary .woocommerce-shipping-methods li > label,
.oz-cp-summary .woocommerce-shipping-methods li label.shipping-method-label {
    font-size: 13px;
    color: var(--oz-text-body);
    line-height: 1.4;
    cursor: pointer;
    margin: 0;
    flex: 1;
}
.oz-cp-summary .woocommerce-shipping-methods input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border: 1.5px solid var(--oz-border);
    border-radius: 50%;
    background: var(--oz-bg-page);
    margin: 1px 0 0 0;
    cursor: pointer;
    flex-shrink: 0;
    transition: border-color var(--oz-transition);
    position: relative;
}
.oz-cp-summary .woocommerce-shipping-methods input[type="radio"]:hover { border-color: var(--oz-accent); }
.oz-cp-summary .woocommerce-shipping-methods input[type="radio"]:checked {
    border-color: var(--oz-accent);
    border-width: 5px;
}
.oz-cp-summary .woocommerce-shipping-methods input[type="radio"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--oz-accent-light);
}
.oz-cp-summary .woocommerce-shipping-destination {
    font-size: 12px;
    color: var(--oz-text-muted);
    margin: 10px 0 0;
    line-height: 1.5;
}
.oz-cp-summary .shipping-calculator-button {
    display: inline-block;
    margin-top: 8px;
    color: var(--oz-accent);
    font-size: 12px;
    font-weight: 600;
    text-decoration: underline;
}
.oz-cp-summary .shipping-calculator-form {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.oz-cp-summary .shipping-calculator-form .form-row,
.oz-cp-summary .shipping-calculator-form p { margin: 0; padding: 0; }
.oz-cp-summary .shipping-calculator-form input,
.oz-cp-summary .shipping-calculator-form select,
.oz-cp-summary .shipping-calculator-form .select2-selection--single {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--oz-border);
    border-radius: var(--oz-radius);
    font-family: var(--oz-ff-body);
    font-size: 13px;
    background: var(--oz-bg-page);
    -webkit-appearance: none;
    appearance: none;
}
.oz-cp-summary .shipping-calculator-form button.button {
    align-self: flex-start;
    background: var(--oz-accent) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--oz-radius) !important;
    padding: 8px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    cursor: pointer;
    width: auto !important;
}

/* Checkout button (orange CTA) */
.oz-cp-summary .wc-proceed-to-checkout { margin-top: 18px; padding: 0; }
.oz-cp-summary .checkout-button,
.oz-cp-summary a.button,
.oz-cp-summary button.button {
    display: block !important;
    width: 100% !important;
    background: var(--oz-cta) !important;
    color: var(--oz-cta-text) !important;
    border: none !important;
    border-radius: var(--oz-radius) !important;
    padding: 14px 20px !important;
    font-family: var(--oz-ff-body) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer;
    transition: background 0.2s var(--oz-ease);
    box-shadow: none !important;
    text-shadow: none !important;
    line-height: 1.2 !important;
}
.oz-cp-summary .checkout-button:hover,
.oz-cp-summary a.button:hover {
    background: var(--oz-cta-hover) !important;
}

/* ── Empty cart ── */
.oz-cp-empty {
    max-width: 560px;
    margin: 24px auto 0;
    text-align: center;
    background: var(--oz-bg-subtle);
    border: 1px solid var(--oz-border-light);
    border-radius: var(--oz-radius-lg);
    padding: 56px 32px;
}
.oz-cp-empty__icon {
    display: inline-flex;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--oz-bg-page);
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    color: var(--oz-text-muted);
}
.oz-cp-empty__icon svg { width: 32px; height: 32px; }
.oz-cp-empty__title {
    font-family: var(--oz-ff-heading);
    font-size: var(--oz-text-xl);
    font-weight: 400;
    color: var(--oz-text-primary);
    margin: 0 0 8px;
}
.oz-cp-empty__text {
    font-size: 14px;
    color: var(--oz-text-body);
    margin: 0 auto 24px;
    max-width: 400px;
    line-height: 1.6;
}

/* ── WooCommerce notice override (cart + checkout) ── */
.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-checkout .woocommerce-notices-wrapper { margin-bottom: 16px; }
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-error {
    background: var(--oz-accent-light);
    border: 1px solid var(--oz-accent);
    border-left: 3px solid var(--oz-accent);
    color: var(--oz-text-primary);
    font-size: 14px;
    padding: 12px 16px;
    border-radius: var(--oz-radius);
    list-style: none;
}
.woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-error {
    background: #FEF2F2;
    border-color: var(--oz-error);
    border-left-color: var(--oz-error);
}
.woocommerce-cart .woocommerce-message::before,
.woocommerce-cart .woocommerce-info::before,
.woocommerce-cart .woocommerce-error::before { display: none; }

/* ================================================================
   CHECKOUT PAGE — /afrekenen/
   ================================================================ */

.oz-checkout-page {
    padding: 40px 0 72px;
}
.oz-checkout-page__header { margin-bottom: 28px; }
.oz-checkout-page__title {
    font-family: var(--oz-ff-heading);
    font-size: var(--oz-text-2xl);
    margin: 0;
    color: var(--oz-text-primary);
}

.oz-checkout-page .oz-checkout__columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 32px;
    align-items: start;
    padding: 0;
}
@media (max-width: 900px) {
    .oz-checkout-page .oz-checkout__columns { grid-template-columns: 1fr; }
}

/* Reset WC's .col2-set grid into our single flow column */
.woocommerce-checkout .col2-set,
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
    width: 100%;
    float: none;
    max-width: 100%;
    padding: 0;
    margin: 0;
}

/* Form section cards */
.oz-checkout form.checkout h3,
.oz-checkout form.checkout #order_review_heading {
    font-family: var(--oz-ff-heading);
    font-size: var(--oz-text-lg);
    font-weight: 400;
    color: var(--oz-text-primary);
    margin: 28px 0 16px;
}
.oz-checkout form.checkout h3:first-of-type { margin-top: 0; }

.oz-checkout form.checkout .form-row {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0 0 14px;
    padding: 0;
}
.oz-checkout form.checkout .form-row-first { width: calc(50% - 8px); float: left; clear: left; }
.oz-checkout form.checkout .form-row-last { width: calc(50% - 8px); float: right; clear: right; }
.oz-checkout form.checkout .form-row-wide { clear: both; width: 100%; }
@media (max-width: 600px) {
    .oz-checkout form.checkout .form-row-first,
    .oz-checkout form.checkout .form-row-last { width: 100%; float: none; }
}

/* Labels — existing .oz-label look */
.oz-checkout form.checkout .form-row label {
    display: block;
    font-size: var(--oz-text-sm);
    font-weight: 600;
    color: var(--oz-text-primary);
    margin-bottom: 2px;
}
.oz-checkout form.checkout .required { color: var(--oz-error); text-decoration: none; }

/* Inputs — mirror .oz-input */
.oz-checkout form.checkout .input-text,
.oz-checkout form.checkout input[type="text"],
.oz-checkout form.checkout input[type="email"],
.oz-checkout form.checkout input[type="tel"],
.oz-checkout form.checkout input[type="password"],
.oz-checkout form.checkout input[type="number"],
.oz-checkout form.checkout textarea,
.oz-checkout form.checkout select,
.oz-checkout form.checkout .select2-selection--single {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--oz-border);
    border-radius: var(--oz-radius);
    font-family: var(--oz-ff-body);
    font-size: 14px;
    color: var(--oz-text-primary);
    background: var(--oz-bg-page);
    transition: border-color var(--oz-transition);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    box-shadow: none;
    height: auto;
    line-height: 1.3;
}
.oz-checkout form.checkout textarea { min-height: 96px; resize: vertical; }
.oz-checkout form.checkout .input-text:focus,
.oz-checkout form.checkout select:focus,
.oz-checkout form.checkout textarea:focus,
.oz-checkout form.checkout .select2-container--focus .select2-selection--single {
    outline: none;
    border-color: var(--oz-accent);
    box-shadow: 0 0 0 3px var(--oz-accent-light);
}
.oz-checkout form.checkout ::placeholder { color: var(--oz-text-muted); }

/* select2 (WC country/state selects) — match our input height */
.oz-checkout .select2-container--default .select2-selection--single {
    height: auto !important;
    min-height: 46px;
    padding: 11px 16px;
}
.oz-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding: 0;
    line-height: 1.3;
    color: var(--oz-text-primary);
}
.oz-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100%;
    right: 10px;
}

/* Checkbox + radio skins (design system addition) */
.oz-checkout input[type="checkbox"],
.oz-checkout input[type="radio"],
.wc_payment_methods input[type="radio"],
.woocommerce-shipping-methods input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border: 1.5px solid var(--oz-border);
    background: var(--oz-bg-page);
    margin: 0 8px 0 0;
    vertical-align: middle;
    cursor: pointer;
    transition: border-color var(--oz-transition), background var(--oz-transition);
    position: relative;
    flex-shrink: 0;
}
.oz-checkout input[type="checkbox"],
.wc_payment_methods input[type="checkbox"] { border-radius: 4px; }
.oz-checkout input[type="radio"],
.wc_payment_methods input[type="radio"],
.woocommerce-shipping-methods input[type="radio"] { border-radius: 50%; }

.oz-checkout input[type="checkbox"]:hover,
.oz-checkout input[type="radio"]:hover,
.wc_payment_methods input[type="radio"]:hover { border-color: var(--oz-accent); }

.oz-checkout input[type="checkbox"]:checked,
.wc_payment_methods input[type="checkbox"]:checked {
    border-color: var(--oz-accent);
    background: var(--oz-accent);
}
.oz-checkout input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 1px;
    width: 5px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.oz-checkout input[type="radio"]:checked,
.wc_payment_methods input[type="radio"]:checked,
.woocommerce-shipping-methods input[type="radio"]:checked {
    border-color: var(--oz-accent);
    border-width: 5px;
    background: var(--oz-bg-page);
}
.oz-checkout input[type="checkbox"]:focus-visible,
.oz-checkout input[type="radio"]:focus-visible,
.wc_payment_methods input[type="radio"]:focus-visible {
    box-shadow: 0 0 0 3px var(--oz-accent-light);
    outline: none;
}

/* Inline checkbox labels (ship to different address, terms, create account, etc) */
.oz-checkout form.checkout .form-row.checkbox-row,
.oz-checkout .woocommerce-form__label-for-checkbox,
.oz-checkout #ship-to-different-address label,
.oz-checkout .woocommerce-terms-and-conditions-wrapper label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 400;
    font-size: 14px;
    color: var(--oz-text-body);
    cursor: pointer;
}

/* Login + Coupon notices at top of checkout — accordion-style toggles */
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle {
    margin-bottom: 12px;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    background: var(--oz-bg-subtle);
    border: 1px solid var(--oz-border-light);
    border-left: 3px solid var(--oz-accent);
    color: var(--oz-text-body);
    border-radius: var(--oz-radius);
    padding: 12px 16px;
    font-size: 13px;
    margin: 0;
    list-style: none;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a,
.woocommerce-checkout .woocommerce-form-login-toggle .showlogin,
.woocommerce-checkout .woocommerce-form-coupon-toggle .showcoupon {
    color: var(--oz-accent);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }

/* Expanded login/coupon forms */
.oz-checkout form.login,
.oz-checkout form.checkout_coupon {
    background: var(--oz-bg-subtle);
    border: 1px solid var(--oz-border-light);
    border-radius: var(--oz-radius);
    padding: 20px;
    margin: 12px 0 20px;
}
.oz-checkout form.login p.form-row,
.oz-checkout form.checkout_coupon p.form-row { margin-bottom: 10px; }
.oz-checkout form.login .button,
.oz-checkout form.checkout_coupon .button {
    background: var(--oz-accent);
    color: #fff;
    border: none;
    border-radius: var(--oz-radius);
    padding: 10px 18px;
    font-family: var(--oz-ff-body);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    text-transform: none;
    letter-spacing: 0;
}
.oz-checkout form.login .button:hover,
.oz-checkout form.checkout_coupon .button:hover { background: var(--oz-accent-hover); }

/* Billing / shipping / notes section containers — premium card feel */
.oz-checkout form.checkout #customer_details {
    background: var(--oz-bg-page);
    border: 1px solid var(--oz-border-light);
    border-radius: var(--oz-radius-lg);
    padding: 28px;
}
.oz-checkout form.checkout .woocommerce-additional-fields {
    background: var(--oz-bg-page);
    border: 1px solid var(--oz-border-light);
    border-radius: var(--oz-radius-lg);
    padding: 28px;
    margin-top: 20px;
}
.oz-checkout form.checkout .woocommerce-additional-fields h3 { margin-top: 0; }

/* Section heading accents */
.oz-checkout form.checkout h3 {
    padding-bottom: 12px;
    border-bottom: 1px solid var(--oz-border-light);
}

/* Ship-to-different-address toggle header */
.oz-checkout #ship-to-different-address {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--oz-border-light);
}
.oz-checkout #ship-to-different-address label {
    font-family: var(--oz-ff-heading);
    font-size: var(--oz-text-lg);
    font-weight: 400;
    color: var(--oz-text-primary);
    cursor: pointer;
}
.oz-checkout #ship-to-different-address-checkbox {
    /* keeps radio/checkbox skin from oz-checkout rules */
    width: 20px;
    height: 20px;
    border-radius: 4px;
}
.oz-checkout .shipping_address { margin-top: 16px; }

/* Create-account + VAT checkbox rows — clean horizontal layout */
.oz-checkout .woocommerce-account-fields .create-account,
.oz-checkout .form-row.woocommerce-validated,
.oz-checkout .form-row-wide.validate-required input[type="checkbox"] + label,
.oz-checkout p.form-row.form-row-wide > label.checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 400;
    font-size: 14px;
    color: var(--oz-text-body);
    cursor: pointer;
}

/* Account password field appears when "create account" toggled */
.oz-checkout .create-account p.form-row { margin-top: 10px; }

/* ── Right side: order review card ── */
.oz-checkout__order-review {
    background: var(--oz-bg-warm);
    border-radius: var(--oz-radius-lg);
    padding: 24px;
    position: sticky;
    top: calc(var(--oz-header-height) + 20px);
}
.oz-checkout__order-review #order_review_heading {
    margin-top: 0 !important;
}
.oz-checkout__order-review .shop_table {
    width: 100%;
    border-collapse: collapse;
    background: transparent;
}
.oz-checkout__order-review .shop_table th,
.oz-checkout__order-review .shop_table td {
    padding: 10px 0;
    border: none;
    border-bottom: 1px solid var(--oz-border-light);
    font-size: 13px;
    color: var(--oz-text-body);
    font-weight: 400;
    text-align: left;
    background: transparent;
}
.oz-checkout__order-review .shop_table td { text-align: right; }

/* Shipping row in order review — left-align the radio list */
.oz-checkout__order-review .shop_table tr.shipping th,
.oz-checkout__order-review .shop_table tr.woocommerce-shipping-totals th { vertical-align: top; padding-top: 12px; }
.oz-checkout__order-review .shop_table tr.shipping td,
.oz-checkout__order-review .shop_table tr.woocommerce-shipping-totals td {
    text-align: left;
    padding: 10px 0;
}
.oz-checkout__order-review ul#shipping_method,
.oz-checkout__order-review .woocommerce-shipping-methods {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.oz-checkout__order-review .woocommerce-shipping-methods li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    padding: 0;
    line-height: 1.4;
}
.oz-checkout__order-review .woocommerce-shipping-methods li label,
.oz-checkout__order-review .woocommerce-shipping-methods li > label {
    font-size: 13px;
    color: var(--oz-text-body);
    line-height: 1.4;
    cursor: pointer;
    margin: 0;
    flex: 1;
}
.oz-checkout__order-review .woocommerce-shipping-methods input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border: 1.5px solid var(--oz-border);
    border-radius: 50%;
    background: var(--oz-bg-page);
    margin: 1px 0 0 0;
    cursor: pointer;
    flex-shrink: 0;
    transition: border-color var(--oz-transition);
}
.oz-checkout__order-review .woocommerce-shipping-methods input[type="radio"]:hover { border-color: var(--oz-accent); }
.oz-checkout__order-review .woocommerce-shipping-methods input[type="radio"]:checked {
    border-color: var(--oz-accent);
    border-width: 5px;
}
.oz-checkout__order-review .woocommerce-shipping-methods input[type="radio"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--oz-accent-light);
}
.oz-checkout__order-review .woocommerce-shipping-destination {
    font-size: 11px;
    color: var(--oz-text-muted);
    margin: 8px 0 0;
    line-height: 1.5;
    font-style: italic;
}

/* Product row in order summary — stacked meta (variations + qty) */
.oz-checkout__order-review .cart_item td.product-name { text-align: left; line-height: 1.4; }
.oz-checkout__order-review .cart_item td.product-name dl.variation {
    margin: 4px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.oz-checkout__order-review .cart_item td.product-name dl.variation dt,
.oz-checkout__order-review .cart_item td.product-name dl.variation dd,
.oz-checkout__order-review .cart_item td.product-name dl.variation dd p {
    font-size: 11px;
    color: var(--oz-text-muted);
    font-weight: 500;
    margin: 0;
    display: inline;
    line-height: 1.5;
}
.oz-checkout__order-review .cart_item td.product-name dl.variation dt { margin-right: 4px; }
.oz-checkout__order-review .shop_table tfoot th,
.oz-checkout__order-review .shop_table tfoot td {
    padding-top: 14px;
    font-weight: 600;
    color: var(--oz-text-primary);
}
.oz-checkout__order-review .shop_table .order-total th,
.oz-checkout__order-review .shop_table .order-total td {
    border-bottom: 0;
    padding-top: 14px;
    font-size: 15px;
    font-weight: 700;
}
.oz-checkout__order-review .shop_table .order-total .amount {
    font-size: 20px;
    color: var(--oz-accent);
}
.oz-checkout__order-review .cart_item td.product-name {
    font-size: 13px;
    color: var(--oz-text-primary);
    font-weight: 600;
    line-height: 1.35;
}
.oz-checkout__order-review .cart_item td.product-total {
    font-size: 13px;
    font-weight: 600;
    color: var(--oz-text-primary);
    white-space: nowrap;
    vertical-align: top;
}
.oz-checkout__order-review .cart_item .product-quantity {
    font-size: 11px;
    color: var(--oz-text-muted);
    font-weight: 500;
    margin-left: 4px;
    display: inline-block;
}
.oz-checkout__order-review .shop_table thead th {
    font-family: var(--oz-ff-body);
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--oz-text-muted);
    padding-bottom: 10px;
    border-bottom: 1px solid var(--oz-border-light);
}
.oz-checkout__order-review .shop_table thead th:last-child { text-align: right; }

/* Payment methods list */
.oz-checkout__order-review #payment {
    background: transparent;
    margin-top: 20px;
    border-radius: 0;
}
.oz-checkout__order-review #payment ul.payment_methods {
    list-style: none;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
}
.oz-checkout__order-review #payment ul.payment_methods li.wc_payment_method {
    background: var(--oz-bg-page);
    border: 1px solid var(--oz-border);
    border-radius: var(--oz-radius);
    margin-bottom: 8px;
    padding: 12px 14px;
    transition: border-color var(--oz-transition);
}
.oz-checkout__order-review #payment ul.payment_methods li.wc_payment_method:hover {
    border-color: var(--oz-accent);
}
.oz-checkout__order-review #payment ul.payment_methods li.wc_payment_method > label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
    color: var(--oz-text-primary);
    cursor: pointer;
    margin: 0;
}
.oz-checkout__order-review #payment ul.payment_methods li.wc_payment_method img {
    max-height: 22px;
    width: auto;
    margin-left: 8px;
    vertical-align: middle;
}
.oz-checkout__order-review #payment ul.payment_methods li.wc_payment_method .payment_box {
    background: var(--oz-bg-subtle);
    border: 1px solid var(--oz-border-light);
    border-radius: var(--oz-radius);
    padding: 12px 14px;
    margin-top: 10px;
    font-size: 13px;
    color: var(--oz-text-body);
}
.oz-checkout__order-review #payment ul.payment_methods li.wc_payment_method .payment_box::before { display: none; }

/* "No payment methods available" warning block */
.oz-checkout__order-review #payment .woocommerce-notice,
.oz-checkout__order-review #payment .woocommerce-info,
.oz-checkout__order-review #payment > .woocommerce-error,
.oz-checkout__order-review #payment > .notice {
    background: #FFF8EC;
    border: 1px solid #F5D79A;
    border-left: 3px solid #E67C00;
    color: var(--oz-text-primary);
    font-size: 12px;
    line-height: 1.5;
    padding: 12px 14px;
    border-radius: var(--oz-radius);
    margin: 0;
    list-style: none;
}
.oz-checkout__order-review #payment .woocommerce-notice::before,
.oz-checkout__order-review #payment .woocommerce-info::before { display: none; }

/* Privacy policy + terms — fine print above place-order button */
.oz-checkout__order-review .woocommerce-privacy-policy-text,
.oz-checkout__order-review .woocommerce-privacy-policy-text p {
    font-size: 11px;
    color: var(--oz-text-muted);
    line-height: 1.5;
    margin: 14px 0 0;
}
.oz-checkout__order-review .woocommerce-privacy-policy-text a { color: var(--oz-accent); text-decoration: underline; }

/* Terms & place order */
.oz-checkout__order-review .woocommerce-terms-and-conditions-wrapper {
    margin-top: 16px;
    font-size: 13px;
    color: var(--oz-text-body);
}
.oz-checkout__order-review .woocommerce-terms-and-conditions-wrapper p.form-row {
    margin: 0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.oz-checkout__order-review .woocommerce-terms-and-conditions-wrapper label.checkbox,
.oz-checkout__order-review .woocommerce-terms-and-conditions-wrapper label {
    display: inline-flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--oz-text-body);
    cursor: pointer;
    font-weight: 400;
    margin: 0;
}
.oz-checkout__order-review .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
    margin-top: 2px;
    flex-shrink: 0;
}
.oz-checkout__order-review .woocommerce-terms-and-conditions-wrapper a { color: var(--oz-accent); text-decoration: underline; }
.oz-checkout__order-review #place_order,
.oz-checkout__order-review button#place_order {
    display: block;
    width: 100%;
    background: var(--oz-cta);
    color: var(--oz-cta-text);
    border: none;
    border-radius: var(--oz-radius);
    padding: 16px 20px;
    font-family: var(--oz-ff-body);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    margin-top: 18px;
    transition: background 0.2s var(--oz-ease);
    box-shadow: none;
    text-shadow: none;
    line-height: 1.2;
    float: none;
}
.oz-checkout__order-review #place_order:hover { background: var(--oz-cta-hover); }

/* Secure checkout footnote */
.oz-checkout__secure {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 12px;
    color: var(--oz-text-muted);
    margin-top: 12px;
}
.oz-checkout__secure svg { width: 14px; height: 14px; }

/* ── Responsive tweaks ── */
@media (max-width: 640px) {
    .oz-cp, .oz-checkout-page { padding: 24px 0 56px; }
    .oz-cp-item {
        grid-template-columns: 72px 1fr;
        gap: 14px;
        padding: 16px;
    }
    .oz-cp-item__image { width: 72px; height: 72px; }
    .oz-cp-item__actions {
        grid-column: 1 / -1;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        border-top: 1px solid var(--oz-border-light);
        padding-top: 12px;
        margin-top: 4px;
        min-height: 0;
    }
    .oz-cp-summary, .oz-checkout__order-review {
        position: static;
        padding: 20px;
    }
    .oz-cp-coupon { flex: 1 1 100%; }
    .oz-cp-coupon .oz-input { max-width: none; flex: 1; }
}
