/* Suphammer commerce: scoped presentation, with WooCommerce in charge of the flow. */
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) {
    --shc-ink: #14241f;
    --shc-muted: #58635e;
    --shc-line: #dcded5;
    --shc-paper: #f6f5f0;
    --shc-card: #fffefa;
    --shc-soft: #edf1e9;
    color: var(--shc-ink);
}
body:is(.woocommerce-cart,.woocommerce-checkout) main { max-width: 1200px; margin: 0 auto !important; padding: 36px 32px 64px; box-sizing: border-box; }
body:is(.woocommerce-cart,.woocommerce-checkout) main > :is(.wp-block-post-content,.wp-block-post-title,.woocommerce) { max-width: none !important; margin-inline: 0 !important; }
body:is(.woocommerce-cart,.woocommerce-checkout) main .wp-block-post-title { font-size: clamp(32px,4vw,48px) !important; font-weight: 650; letter-spacing: -.04em; line-height: 1.12; text-align: left; margin: 0 0 28px !important; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) main .woocommerce { font-size: 16px; line-height: 1.6; }
body:is(.woocommerce-cart,.woocommerce-checkout) main .woocommerce :is(h2,h3) { font-size: 24px; line-height: 1.25; letter-spacing: -.03em; font-weight: 650; margin: 0 0 22px; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce :is(a,button,input,select,textarea):focus-visible { outline: 2px solid #375c4b; outline-offset: 3px; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce :is(a.button,button.button,input.button) { background: var(--shc-ink); color: #fffefa; border: 1px solid var(--shc-ink); border-radius: 999px; padding: 13px 22px; min-height: 48px; box-sizing: border-box; font: inherit; font-size: 15px; line-height: 1.35; font-weight: 650; text-decoration: none; box-shadow: none; text-align: center; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce :is(a.button,button.button,input.button):hover { background: #375c4b; color: #fffefa; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce :is(button.button,input.button):disabled { color: #59645e; background: #e8ebe5; border-color: var(--shc-line); opacity: 1; cursor: not-allowed; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce form .form-row { padding: 0; margin: 0 0 18px; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce form .form-row label { font-size: 14px; font-weight: 600; line-height: 1.5; margin-bottom: 7px; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce form .form-row :is(input.input-text,textarea,select), .woocommerce-cart .woocommerce input#coupon_code, .woocommerce-cart .woocommerce input.qty { box-sizing: border-box; border: 1px solid var(--shc-line); border-radius: 10px; color: var(--shc-ink); background: var(--shc-card); font: inherit; font-size: 16px; line-height: 1.5; padding: 12px 14px; min-height: 49px; box-shadow: none; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce form .form-row textarea { min-height: 100px; resize: vertical; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce form .form-row :is(input[type=checkbox],input[type=radio]) { accent-color: var(--shc-ink); width: 18px; height: 18px; vertical-align: middle; margin-right: 7px; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce .select2-container .select2-selection--single { height: 49px; border: 1px solid var(--shc-line); border-radius: 10px; background: var(--shc-card); }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce .select2-container .select2-selection__rendered { padding: 10px 36px 10px 14px; line-height: 27px; font-size: 16px; color: var(--shc-ink); }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce .select2-container .select2-selection__arrow { height: 47px; right: 10px; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .select2-dropdown { border-color: var(--shc-line); font-size: 15px; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .select2-results__option--highlighted[aria-selected] { background: #375c4b; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .woocommerce form .woocommerce-invalid :is(input.input-text,select,.select2-selection) { border-color: #a33f34; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) :is(.woocommerce-message,.woocommerce-info,.woocommerce-error,.wc-block-components-notice-banner) { border: 1px solid var(--shc-line); background: var(--shc-soft); color: var(--shc-ink); border-radius: 12px; font-size: 14px; line-height: 1.6; margin: 0 0 24px; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) :is(.woocommerce-message,.woocommerce-info)::before { color: #375c4b; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) :is(.woocommerce-error,.wc-block-components-notice-banner.is-error) { background: #fcf3f1; border-color: #dcc1bc; color: #7f2626; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .wc-block-components-notice-banner:is(.is-info,.is-success)>svg { background: #375c4b; }
/* Cart: generous rows and a clear total, keeping native mobile table labels. */
.woocommerce-cart .woocommerce-cart-form { background: var(--shc-card); border: 1px solid var(--shc-line); border-radius: 18px; padding: 8px 24px; }
.woocommerce-cart .woocommerce table.shop_table { width: 100%; border: 0; border-collapse: collapse; margin: 0; font-size: 15px; }
.woocommerce-cart .woocommerce table.shop_table th { font-size: 13px; color: var(--shc-muted); font-weight: 600; padding: 14px 10px; }
.woocommerce-cart .woocommerce table.shop_table td { border-top: 1px solid var(--shc-line); padding: 20px 10px; }
.woocommerce-cart .woocommerce table.cart .product-thumbnail { width: 84px; }
.woocommerce-cart .woocommerce table.cart img { width: 80px; height: 70px; object-fit: contain; }
.woocommerce-cart .woocommerce table.cart .product-name a { font-weight: 600; color: var(--shc-ink); text-decoration: none; }
.woocommerce-cart .woocommerce table.cart .product-name a:hover { text-decoration: underline; }
.woocommerce-cart .woocommerce a.remove { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; font-size: 22px; color: var(--shc-muted) !important; border: 1px solid var(--shc-line); border-radius: 50%; }
.woocommerce-cart .woocommerce a.remove:hover { color: #fff !important; background: #7f2626; border-color: #7f2626; }
.woocommerce-cart .woocommerce input.qty { width: 76px; text-align: center; padding-inline: 8px; }
.woocommerce-cart .woocommerce table.cart td.actions { padding: 20px 0; }
.woocommerce-cart .woocommerce .coupon { display: flex; gap: 10px; flex-wrap: wrap; }
.woocommerce-cart .woocommerce .coupon input#coupon_code { width: 190px; margin: 0; }
.woocommerce-cart .woocommerce .cart-collaterals { margin-top: 28px; }
.woocommerce-cart .woocommerce .cart_totals { background: var(--shc-card); border: 1px solid var(--shc-line); border-radius: 18px; padding: 28px; box-sizing: border-box; width: 46%; }
.woocommerce-cart .woocommerce .cart_totals table th { padding-left: 0; }
.woocommerce-cart .woocommerce .cart_totals table td { text-align: right; padding-right: 0; }
.woocommerce-cart .woocommerce .cart_totals .order-total :is(th,td) { font-size: 18px; font-weight: 650; color: var(--shc-ink); }
.woocommerce-cart .woocommerce .wc-proceed-to-checkout { padding: 22px 0 0; }
.woocommerce-cart .woocommerce .wc-proceed-to-checkout a { margin: 0; display: block; }
/* Checkout: billing/shipping on the left, order and payment on the right. */
.woocommerce-checkout .sh-checkout-header { border-bottom: 1px solid var(--shc-line); }
.woocommerce-checkout .sh-checkout-header-inner { max-width: 1200px; margin: auto; padding: 22px 32px; gap: 24px; box-sizing: border-box; }
.woocommerce-checkout .sh-checkout-brand { gap: 15px; }
.woocommerce-checkout .sh-checkout-brand .wp-block-site-title { margin: 0; font-size: 25px; font-weight: 650; line-height: 1.2; letter-spacing: -.035em; }
.woocommerce-checkout .sh-checkout-brand .wp-block-site-title a { text-decoration: none; }
.woocommerce-checkout .sh-checkout-back { font-size: 14px; margin: 0; }
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); column-gap: 36px; grid-template-rows: auto; align-items: start; }
.woocommerce-checkout form.checkout::before,.woocommerce-checkout form.checkout::after { display: none; }
.woocommerce-checkout form.checkout > * { grid-column: 1 / -1; min-width: 0; }
.woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 1; width: 100%; padding: 28px; border: 1px solid var(--shc-line); border-radius: 18px; box-sizing: border-box; background: var(--shc-card); }
.woocommerce-checkout #customer_details .col-1,.woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; }
.woocommerce-checkout #customer_details .col-2 { margin-top: 28px; }
.woocommerce-checkout #customer_details .col-2:empty { margin: 0; }
.woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; padding: 28px 28px 18px; background: var(--shc-card); border: 1px solid var(--shc-line); border-bottom: 0; border-radius: 18px 18px 0 0; }
.woocommerce-checkout form.checkout #order_review { grid-column: 2; grid-row: 2; padding: 0 28px 28px; background: var(--shc-card); border: 1px solid var(--shc-line); border-top: 0; border-radius: 0 0 18px 18px; }
.woocommerce-checkout .woocommerce table.shop_table { width: 100%; border: 0; border-collapse: collapse; font-size: 14px; margin: 0 0 24px; }
.woocommerce-checkout .woocommerce table.shop_table :is(th,td) { padding: 13px 0; text-align: left; border-top: 1px solid var(--shc-line); font-weight: 400; vertical-align: top; }
.woocommerce-checkout .woocommerce table.shop_table th { font-weight: 600; }
.woocommerce-checkout .woocommerce table.shop_table td.product-name { padding-right: 14px; }
.woocommerce-checkout .woocommerce table.shop_table :is(th,td):last-child { text-align: right; }
.woocommerce-checkout .woocommerce table.shop_table .order-total :is(th,td) { font-size: 18px; }
.woocommerce-checkout .woocommerce #payment { background: transparent; border-radius: 0; font-size: 14px; }
.woocommerce-checkout .woocommerce #payment ul.payment_methods { border: 0; padding: 0; }
.woocommerce-checkout .woocommerce #payment ul.payment_methods li { margin: 0 0 16px; line-height: 1.6; }
.woocommerce-checkout .woocommerce #payment ul.payment_methods li > label { font-weight: 650; font-size: 16px; }
.woocommerce-checkout .woocommerce #payment div.payment_box { background: var(--shc-soft); color: var(--shc-ink); padding: 18px; margin: 14px 0; border-radius: 12px; font-size: 14px; }
.woocommerce-checkout .woocommerce #payment div.payment_box::before { border-bottom-color: var(--shc-soft); }
.woocommerce-checkout .woocommerce #payment div.form-row { padding: 0; margin-bottom: 0; }
.woocommerce-checkout .woocommerce #payment :is(.woocommerce-privacy-policy-text,.woocommerce-terms-and-conditions-wrapper) { font-size: 13px; line-height: 1.6; }
.woocommerce-checkout .woocommerce #payment .woocommerce-terms-and-conditions-checkbox-text { font-size: 13px; font-weight: 400; }
.woocommerce-checkout .woocommerce #place_order { width: 100%; float: none; margin-top: 18px; }
.woocommerce-checkout .woocommerce .mollie-component { border: 1px solid var(--shc-line); border-radius: 8px; box-shadow: none; background: #fff; min-height: 44px; }
.woocommerce-checkout .woocommerce .mollie-component-label { font-size: 13px; font-weight: 600; display: block; margin-bottom: 6px; }
.woocommerce-checkout .woocommerce .mollie-components-description { font-size: 12px; }
.woocommerce-checkout .woocommerce .mollie-components [role=alert] { font-size: 12px; color: #7f2626; }
.woocommerce-checkout .woocommerce :is(form.login,form.checkout_coupon) { padding: 24px; border: 1px solid var(--shc-line); border-radius: 16px; background: var(--shc-card); margin: 0 0 24px; }
.woocommerce-checkout .sh-checkout-help { font-size: 14px; margin-top: 28px; color: var(--shc-muted); }
/* Login, password reset and the native order receipt use the same surfaces. */
.woocommerce-account .woocommerce :is(form.login,form.register,form.lost_reset_password) { padding: 28px; border: 1px solid var(--shc-line); border-radius: 18px; background: var(--shc-card); box-sizing: border-box; }
.woocommerce-account .woocommerce :is(form.login,form.register,form.lost_reset_password) > p { font-size: 15px; }
.woocommerce-account .woocommerce .woocommerce-form-login__rememberme { margin-bottom: 14px; }
.woocommerce-account .woocommerce form .show-password-input { top: 14px; right: 12px; }
.woocommerce-account .woocommerce .woocommerce-form-login__submit { margin-right: 16px; }
.woocommerce-order-received .woocommerce-order > :is(section,.woocommerce-order-overview) { padding: 28px; border: 1px solid var(--shc-line); border-radius: 18px; background: var(--shc-card); margin: 24px 0; }
.woocommerce-order-received .woocommerce-order-overview { display: flex; gap: 22px; flex-wrap: wrap; }
.woocommerce-order-received .woocommerce ul.order_details li { float: none; margin: 0; padding: 0 20px 0 0; font-size: 12px; }
.woocommerce-order-received .woocommerce .woocommerce-customer-details address { border: 0; padding: 0; font-size: 15px; box-shadow: none; }
.woocommerce-order-received :is(.wc-block-order-confirmation-totals-wrapper,.wc-block-order-confirmation-downloads-wrapper,.wc-block-order-confirmation-shipping-wrapper,.wc-block-order-confirmation-billing-wrapper) { background: var(--shc-card); padding: 24px; border: 1px solid var(--shc-line); border-radius: 18px; font-size: 15px; }
@media(max-width:900px) {
    .woocommerce-checkout form.checkout { display: block; }
    .woocommerce-checkout form.checkout #customer_details { margin-bottom: 26px; }
    .woocommerce-cart .woocommerce .cart_totals { width: 100%; }
}
@media(max-width:768px) {
    body:is(.woocommerce-cart,.woocommerce-checkout) main { padding: 28px 18px 40px; }
    body:is(.woocommerce-cart,.woocommerce-checkout) main .wp-block-post-content { padding-inline: 0 !important; }
    .woocommerce-cart .woocommerce-cart-form { padding: 8px 18px; }
    .woocommerce-cart .woocommerce table.cart tr.cart_item td { padding: 12px 0; background: transparent; }
    .woocommerce-cart .woocommerce table.cart td.product-remove { border-top: 0; }
    .woocommerce-cart .woocommerce table.cart td.product-name { padding-block: 16px; }
    .woocommerce-cart .woocommerce .coupon { float: none; width: 100%; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; margin-bottom: 12px; }
    .woocommerce-cart .woocommerce .coupon :is(input#coupon_code,button.button) { width: 100% !important; float: none; min-width: 0; font-size: 13px; }
    .woocommerce-cart .woocommerce .coupon button.button { padding-inline: 14px; }
    .woocommerce-cart .woocommerce .cart_totals { padding: 22px; }
    .woocommerce-checkout .sh-checkout-header-inner { padding: 18px; gap: 16px; }
    .woocommerce-checkout .sh-checkout-brand .wp-block-site-title { font-size: 22px; }
    .woocommerce-checkout .sh-checkout-brand .wp-block-site-logo { width: 36px; }
    .woocommerce-checkout form.checkout #customer_details { padding: 22px 18px; }
    .woocommerce-checkout form.checkout #order_review_heading { padding: 22px 18px 14px; }
    .woocommerce-checkout form.checkout #order_review { padding: 0 18px 22px; }
    .woocommerce-checkout .woocommerce #payment div.payment_box { padding: 14px; }
    .woocommerce-checkout .woocommerce form .form-row-first,.woocommerce-checkout .woocommerce form .form-row-last { float: none; width: 100%; }
    body:is(.woocommerce-cart,.woocommerce-checkout) main .woocommerce :is(h2,h3) { font-size: 22px; }
    .woocommerce-account .woocommerce :is(form.login,form.register,form.lost_reset_password) { padding: 22px; }
}

/* Keep the signed-out account forms compact without changing the license tables. */
.woocommerce-account:not(.logged-in) main { max-width: 760px; margin: 0 auto !important; padding: 36px 24px 64px; box-sizing: border-box; }
.woocommerce-account:not(.logged-in) main > .wp-block-group { padding: 0 !important; }
.woocommerce-account:not(.logged-in) main .wp-block-post-content { padding-inline: 0 !important; }
.woocommerce-account:not(.logged-in) main .wp-block-post-title { font-size: clamp(32px,4vw,48px) !important; text-align: left; margin-bottom: 28px !important; }
.woocommerce-account:not(.logged-in) .woocommerce h2 { font-size: 24px; letter-spacing: -.03em; }

.woocommerce-checkout form.checkout > .sh-checkout-review-panel { grid-column: 2; grid-row: 1; min-width: 0; }
.woocommerce-order-received .wc-block-order-confirmation-status { font-size: 16px !important; line-height: 1.6; }
.woocommerce-order-received .wc-block-order-confirmation-status h1 { font-size: clamp(32px,4vw,48px); letter-spacing: -.04em; font-weight: 650; line-height: 1.12; margin: 0 0 20px; }
.woocommerce-order-received .wc-block-order-confirmation-summary { font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; margin-bottom: 26px; }
.woocommerce-order-received main h2 { font-size: 24px; font-weight: 650; letter-spacing: -.03em; }
.woocommerce-order-received .wc-block-order-confirmation-totals table { border-collapse: collapse; border: 0; }
.woocommerce-order-received .wc-block-order-confirmation-totals :is(th,td) { padding: 14px 0; border: 0; border-top: 1px solid var(--shc-line); }
body:is(.woocommerce-cart,.woocommerce-checkout) main .wp-block-post-content > .woocommerce { max-width: none !important; margin-inline: 0 !important; }
.woocommerce-cart .woocommerce .coupon::before,.woocommerce-cart .woocommerce .coupon::after { display: none !important; }
.woocommerce-cart .woocommerce table.cart td.actions { background: transparent; }
.woocommerce-checkout .woocommerce .coupon-error-notice { display: block; font-size: 13px; color: #7f2626; margin-top: 6px; }

/* Notice actions must not inherit WooCommerce's zero-padding text-link reset. */
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .wc-block-components-notice-banner:has(.wc-block-components-notice-banner__content > .button) { align-items: center; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .wc-block-components-notice-banner__content:has(> .button) { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; min-width: 0; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .wc-block-components-notice-banner .wc-block-components-notice-banner__content > .button {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; float: none;
    min-height: 44px; max-width: 100%; box-sizing: border-box; margin: 0 0 0 auto;
    padding: 10px 18px !important; border: 1px solid var(--shc-ink); border-radius: 999px;
    background: transparent !important; color: var(--shc-ink) !important; opacity: 1;
    font-size: 14px; font-weight: 650; line-height: 1.4; text-align: center; text-decoration: none !important;
}
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .wc-block-components-notice-banner .wc-block-components-notice-banner__content > .button:hover { background: var(--shc-ink) !important; color: #fffefa !important; }
body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .wc-block-components-notice-banner .wc-block-components-notice-banner__content > .button:focus-visible { outline: 2px solid #375c4b; outline-offset: 3px; }
@media(max-width:768px) {
    body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .wc-block-components-notice-banner:has(.wc-block-components-notice-banner__content > .button) { align-items: flex-start; }
    body:is(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .wc-block-components-notice-banner .wc-block-components-notice-banner__content > .button { margin-left: 0; }
}
