/* TeddyPeps Core – product page components. Colours follow the Elementor globals. */
.tpc-box, .tpc-coa {
	--tpc-navy: var(--e-global-color-primary, #02397C);
	--tpc-sky: var(--e-global-color-secondary, #65BBEE);
	--tpc-blue: var(--e-global-color-accent, #0B6BD6);
	--tpc-text: var(--e-global-color-text, #1B2433);
	--tpc-muted: #5B6B82;
	--tpc-surface: #F2F7FC;
	--tpc-border: #E2EAF4;
	--tpc-green: #16A34A;
	font-family: var(--e-global-typography-text-font-family, Inter), sans-serif;
	color: var(--tpc-text);
}
.tpc-box { display: flex; flex-direction: column; gap: 18px; margin: 0 0 6px; width: 100% !important; flex: 0 0 100% !important; max-width: 100%; }
form.cart .tpc-box ~ .quantity, form.cart .tpc-box ~ .single_add_to_cart_button { align-self: stretch; }

/* Bundle selector */
.tpc-bundle__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.tpc-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--tpc-muted); }
.tpc-bundle__title { font-weight: 700; color: var(--tpc-navy); }
.tpc-bundle__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding-top: 12px; }
.tpc-card {
	position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
	min-height: 112px; padding: 18px 6px 12px; border: 1.5px solid var(--tpc-border) !important; border-radius: 14px !important;
	background: #fff !important; color: var(--tpc-text) !important; cursor: pointer; text-align: center; line-height: 1.25;
	font: inherit; box-shadow: none !important; transition: border-color .15s, box-shadow .15s, transform .15s;
}
.tpc-card:hover { border-color: var(--tpc-sky) !important; transform: translateY(-1px); }
.tpc-card.is-active { border-color: var(--tpc-blue) !important; background: var(--tpc-surface) !important; box-shadow: 0 0 0 3px rgba(11,107,214,.12) !important; }
.tpc-card:focus-visible { outline: 2px solid var(--tpc-blue); outline-offset: 2px; }
.tpc-card__qty { font-weight: 700; font-size: 14px; color: var(--tpc-navy); }
.tpc-card__was { font-size: 12px; color: var(--tpc-muted); }
.tpc-card__price { font-weight: 700; font-size: 15px; color: var(--tpc-text); }
.tpc-card__save { font-size: 11px; font-weight: 600; color: var(--tpc-green); }
.tpc-card__badge { position: static; margin-bottom: 4px; padding: 2px 8px; border-radius: 999px; background: var(--tpc-blue); color: #fff; font-size: 11px; font-weight: 700; }
.tpc-card__flag { position: absolute; top: -10px; left: 50%; transform: translateX(-50%); white-space: nowrap; padding: 3px 8px; border-radius: 999px; background: var(--tpc-navy); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.tpc-bundle__saving { margin: 10px 0 0; padding: 10px 14px; border-radius: 10px; background: #ECFDF3; color: #166534; font-size: 14px; }

/* Accessories panel */
.tpc-acc { padding: 18px 20px; border: 1px solid var(--tpc-border); border-radius: 16px; background: var(--tpc-surface); }
.tpc-acc__head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.tpc-acc__title { font-family: var(--e-global-typography-primary-font-family, Sora), sans-serif; font-weight: 700; font-size: 17px; color: var(--tpc-navy); }
.tpc-acc__per { font-size: 13px; color: var(--tpc-muted); }
.tpc-acc__label { margin: 14px 0 4px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--tpc-blue); }
.tpc-acc__label--free { color: var(--tpc-green); }
.tpc-acc__list { list-style: none; margin: 0; padding: 0; }
.tpc-acc__row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--tpc-border); }
.tpc-acc__row:last-child { border-bottom: 0; }
.tpc-acc__row strong { display: block; font-size: 14px; color: var(--tpc-text); }
.tpc-acc__row small { display: block; font-size: 13px; color: var(--tpc-muted); }
.tpc-pill { flex: none; padding: 6px 12px; border-radius: 999px; background: #DCFCE7; color: #166534; font-size: 13px; font-weight: 700; }
.tpc-acc__note { margin: 10px 0 0; padding: 10px 14px; border-radius: 10px; background: #fff; font-size: 14px; }
.tpc-select { flex: none; width: 76px !important; min-height: 40px; padding: 6px 10px !important; border: 1px solid var(--tpc-border) !important; border-radius: 10px !important; background-color: #fff !important; font: inherit; }

/* Certificate of analysis */
.tpc-coa { display: grid; grid-template-columns: 1fr 115px; gap: 18px; align-items: center; margin: 18px 0; padding: 20px; border: 1px solid var(--tpc-border); border-radius: 16px; background: var(--tpc-surface); }
.tpc-coa__title { margin: 4px 0 6px !important; font-size: 18px !important; color: var(--tpc-navy) !important; }
.tpc-coa p { margin: 0 0 8px; font-size: 14px; }
.tpc-coa__facts { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.tpc-coa__btn { display: inline-block; margin-top: 4px; padding: 10px 16px; border-radius: 10px; background: var(--tpc-navy); color: #fff !important; font-size: 14px; font-weight: 600; text-decoration: none; }
.tpc-coa__btn:hover { background: #000F31; }
.tpc-coa__thumb img { display: block; width: 115px; height: auto; border-radius: 8px; box-shadow: 0 8px 20px -10px rgba(2,57,124,.4); }

/* Fixed vial configuration: hide the legacy option selectors */
.tpc-fixed-vial table.variations, .tpc-fixed-vial .reset_variations { display: none !important; }

/* Cart: free accessory lines */
.tpc-free { color: var(--tpc-green, #16A34A); }
.tpc-fixed-qty { display: inline-block; min-width: 2em; text-align: center; color: #5B6B82; }

/* Product cards (Elementor Products / Archive / Related): equal height, full-width button */
.elementor-widget-woocommerce-products ul.products li.product,
.elementor-widget-wc-archive-products ul.products li.product,
.elementor-widget-woocommerce-product-related ul.products li.product,
.elementor-widget-woocommerce-product-upsell ul.products li.product { display: flex; flex-direction: column; transition: border-color .15s, box-shadow .15s, transform .15s; }
.elementor-widget-woocommerce-products ul.products li.product:hover,
.elementor-widget-wc-archive-products ul.products li.product:hover,
.elementor-widget-woocommerce-product-related ul.products li.product:hover { transform: translateY(-2px); }
.elementor-widget-woocommerce-products ul.products li.product .button,
.elementor-widget-wc-archive-products ul.products li.product .button,
.elementor-widget-woocommerce-product-related ul.products li.product .button,
.elementor-widget-woocommerce-product-upsell ul.products li.product .button { margin-top: auto !important; width: 100%; display: inline-flex; justify-content: center; text-align: center; white-space: normal; line-height: 1.3; }
ul.products li.product .added_to_cart { display: block; margin-top: 8px; text-align: center; font-size: 13px; font-weight: 600; }

/* Header cart button: let the widget colours win over the global button style */
.elementor-menu-cart__toggle .elementor-button { background-color: var(--toggle-button-background-color, transparent) !important; color: var(--toggle-button-text-color, inherit) !important; border-radius: var(--toggle-button-border-radius, 0) !important; }
.elementor-menu-cart__toggle .elementor-button:hover { background-color: var(--toggle-button-hover-background-color, transparent) !important; }

/* Single product: add to cart row */
.elementor-widget-woocommerce-product-add-to-cart form.cart:not(.variations_form),
.elementor-widget-woocommerce-product-add-to-cart .woocommerce-variation-add-to-cart { display: flex !important; flex-wrap: wrap !important; align-items: stretch; gap: 12px; }
.elementor-widget-woocommerce-product-add-to-cart .single_add_to_cart_button { flex: 1 1 220px; }
.elementor-widget-woocommerce-product-add-to-cart .quantity .qty { height: 100%; min-height: 54px; width: 76px; border: 1px solid #E2EAF4; border-radius: 12px; font-weight: 600; }

@media (max-width: 767px) {
	.tpc-bundle__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 14px; }
	.tpc-bundle__grid .tpc-card:last-child { grid-column: 1 / -1; }
	.tpc-coa { grid-template-columns: 1fr 90px; }
	.tpc-coa__thumb img { width: 90px; }
}

/* ===== Cart, checkout, mini cart, account ===== */
.woocommerce-cart, .woocommerce-checkout, .woocommerce-account, .elementor-menu-cart__main {
	--tpc-navy: var(--e-global-color-primary, #02397C);
	--tpc-blue: var(--e-global-color-accent, #0B6BD6);
	--tpc-muted: #5B6B82;
	--tpc-surface: #F2F7FC;
	--tpc-border: #E2EAF4;
	--tpc-green: #16A34A;
}

/* Free shipping progress */
.tpc-ship { margin: 0 0 18px; padding: 14px 18px; border: 1px solid var(--tpc-border, #E2EAF4); border-radius: 14px; background: #fff; }
.tpc-ship[hidden] { display: none; }
.tpc-ship__text { margin: 0 0 8px; font-size: 14px; color: #1B2433; }
.tpc-ship__text strong { color: var(--tpc-navy, #02397C); }
.tpc-ship__bar { height: 8px; border-radius: 999px; background: #E6EEF7; overflow: hidden; }
.tpc-ship__bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--tpc-blue, #0B6BD6), #65BBEE); transition: width .3s; }
.tpc-ship.is-done .tpc-ship__text strong { color: var(--tpc-green, #16A34A); }
.tpc-ship.is-done .tpc-ship__bar span { background: var(--tpc-green, #16A34A); }
.elementor-menu-cart__main .tpc-ship { margin: 14px 0; padding: 12px 14px; }

/* Tables and boxes */
.woocommerce-cart .elementor-widget-wc-elements table.shop_table,
.woocommerce-checkout .elementor-widget-wc-elements table.shop_table,
.woocommerce-account .elementor-widget-wc-elements table.shop_table {
	border: 1px solid var(--tpc-border) !important; border-radius: 16px !important; border-collapse: separate !important; border-spacing: 0; overflow: hidden; background: #fff;
}
.woocommerce-cart table.shop_table th, .woocommerce-checkout table.shop_table th, .woocommerce-account table.shop_table th {
	background: #F7FAFD; color: var(--tpc-muted); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; border-color: var(--tpc-border) !important;
}
.woocommerce-cart table.shop_table td, .woocommerce-checkout table.shop_table td, .woocommerce-account table.shop_table td { border-color: var(--tpc-border) !important; background: transparent; }
.woocommerce-cart table.shop_table td.product-name a { color: var(--tpc-navy); font-weight: 700; text-decoration: none; }
.woocommerce-cart table.shop_table td.product-name, .woocommerce-checkout table.shop_table td.product-name { font-weight: 600; color: #1B2433; }
.woocommerce-cart table.shop_table td.product-name dl.variation,
.woocommerce-checkout table.shop_table td.product-name dl.variation { margin: 6px 0 0; font-size: 13px; font-weight: 400; color: var(--tpc-muted); }
.woocommerce-cart table.shop_table dl.variation dt, .woocommerce-checkout table.shop_table dl.variation dt { font-weight: 600; color: #1B2433; }
.woocommerce-cart table.shop_table td.product-price del { color: var(--tpc-muted); font-weight: 400; }
.woocommerce-cart table.shop_table td.product-price ins, .woocommerce-cart table.shop_table td.product-subtotal { font-weight: 700; color: #1B2433; text-decoration: none; }
.woocommerce-cart table.shop_table td.product-thumbnail img { width: 72px; border-radius: 12px; background: var(--tpc-surface); }
.woocommerce-cart table.shop_table td.product-remove a.remove { color: #9AA8BA !important; }
.woocommerce-cart table.shop_table td.product-remove a.remove:hover { color: #DC2626 !important; background: #FEE2E2; }

/* Included (free) accessory rows: lighter and indented under their product */
tr.tpc-child--free td { background: #F6FBF8 !important; padding-top: 8px !important; padding-bottom: 8px !important; }
.woocommerce-cart tr.tpc-child--free td.product-thumbnail img { width: 44px; margin-left: 28px; }
.woocommerce-cart tr.tpc-child--free td.product-name a { font-size: 14px; font-weight: 600; color: #1B2433; }
.woocommerce-cart tr.tpc-child--free td.product-name dl.variation,
.woocommerce-checkout tr.tpc-child--free td.product-name dl.variation { display: none; }
.woocommerce-checkout tr.tpc-child--free td.product-name { font-size: 13px; font-weight: 500; color: var(--tpc-muted); }
.woocommerce-cart tr.tpc-child--free td.product-name::after { content: "Inbegrepen"; display: inline-block; margin-top: 4px; padding: 2px 8px; border-radius: 999px; background: #DCFCE7; color: #166534; font-size: 11px; font-weight: 700; }

/* Coupon row */
.woocommerce-cart table.shop_table td.actions { background: #F7FAFD !important; }
.woocommerce-cart table.shop_table td.actions .input-text { min-width: 190px; border-radius: 10px; }

/* Totals and order review cards */
.woocommerce-cart .cart_totals {
	padding: 24px !important; border: 1px solid var(--tpc-border) !important; border-radius: 18px !important; background: #fff !important; box-shadow: 0 18px 40px -28px rgba(2,57,124,.35);
}
.woocommerce-cart .cart_totals > h2 { margin: 0 0 12px !important; font-size: 22px !important; color: var(--tpc-navy) !important; background: none !important; border: 0 !important; padding: 0 !important; }
.woocommerce-cart .cart_totals table.shop_table { border: 0 !important; border-radius: 0 !important; }
.woocommerce-cart .cart_totals table.shop_table th { background: none; text-transform: none; letter-spacing: 0; font-size: 14px; color: #1B2433; }
.woocommerce-cart .cart_totals .order-total th, .woocommerce-cart .cart_totals .order-total td,
.woocommerce-checkout #order_review .order-total th, .woocommerce-checkout #order_review .order-total td { font-size: 18px; font-weight: 800; color: var(--tpc-navy); }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-checkout #place_order { width: 100%; min-height: 56px; border-radius: 14px !important; font-size: 17px !important; font-weight: 700 !important; background: var(--tpc-green) !important; border-color: var(--tpc-green) !important; color: #fff !important; }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover, .woocommerce-checkout #place_order:hover { background: #15803D !important; }
.woocommerce-shipping-methods li label { font-weight: 500; }

/* Astra border colour follows the light brand border */
:root { --ast-border-color: #E2EAF4; }
/* Checkout "Je bestelling" box (Astra heading + review joined into one card) */
.woocommerce-checkout form #order_review_heading { border: 1px solid var(--tpc-border) !important; border-bottom: 0 !important; border-radius: 18px 18px 0 0; background: #fff; padding: 24px 24px 8px !important; }
.woocommerce-checkout form #order_review { border: 1px solid var(--tpc-border) !important; border-top: 0 !important; border-radius: 0 0 18px 18px; background: #fff; padding: 0 24px 24px !important; box-shadow: 0 18px 40px -28px rgba(2,57,124,.35); }
.woocommerce-checkout form #order_review table.shop_table { border: 0 !important; border-radius: 0 !important; }
.woocommerce-checkout .tpc-ship { margin-bottom: 24px; }

/* Checkout fields */
.woocommerce-checkout #customer_details h3, .woocommerce-checkout #order_review_heading { color: var(--tpc-navy); }
.woocommerce-checkout .form-row .input-text, .woocommerce-checkout .form-row select, .woocommerce-checkout .select2-container .select2-selection {
	min-height: 48px; border: 1px solid #D5DFEB !important; border-radius: 12px !important; background: #fff !important;
}
.woocommerce-checkout .form-row .input-text:focus { border-color: var(--tpc-blue) !important; box-shadow: 0 0 0 3px rgba(11,107,214,.12); }
.woocommerce-checkout #payment { border-radius: 14px; background: var(--tpc-surface) !important; }
.woocommerce-checkout #payment div.payment_box { border-radius: 10px; background: #fff !important; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff !important; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-cart .woocommerce-info, .woocommerce-cart .woocommerce-message { border-radius: 12px; background: #fff; }

/* My account */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 8px; border: 1px solid var(--tpc-border); border-radius: 16px; background: #fff; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 10px 14px; border-radius: 10px; color: #1B2433; font-weight: 600; text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, .woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--tpc-surface); color: var(--tpc-navy); }
.woocommerce-account form.woocommerce-form-login, .woocommerce-account form.woocommerce-form-register { padding: 24px; border: 1px solid var(--tpc-border) !important; border-radius: 18px; background: #fff; }
.woocommerce-account .form-row .input-text { min-height: 48px; border: 1px solid #D5DFEB; border-radius: 12px; }

@media (max-width: 767px) {
	.woocommerce-cart table.shop_table_responsive tr, .woocommerce-checkout table.shop_table_responsive tr { border-bottom: 1px solid var(--tpc-border); }
	.woocommerce-cart tr.tpc-child--free td.product-thumbnail img { margin-left: 0; }
	.woocommerce-cart table.shop_table td.actions .input-text { min-width: 0; width: 100%; }
	.woocommerce-cart .cart_totals, .woocommerce-checkout #order_review { padding: 16px; }
	/* Compact cart rows on phones */
	.woocommerce-cart table.shop_table_responsive tr.cart_item { position: relative; }
	.woocommerce-cart table.shop_table_responsive td.product-thumbnail { display: none !important; }
	.woocommerce-cart table.shop_table_responsive td.product-remove { position: absolute; top: 8px; right: 8px; padding: 0 !important; border: 0 !important; background: none !important; z-index: 2; }
	.woocommerce-cart table.shop_table_responsive td.product-name { padding-right: 44px !important; }
	.woocommerce-cart table.shop_table_responsive tr.tpc-child--free td.product-price,
	.woocommerce-cart table.shop_table_responsive tr.tpc-child--free td.product-quantity,
	.woocommerce-cart table.shop_table_responsive tr.tpc-child--free td.product-remove { display: none !important; }
	.woocommerce-cart table.shop_table_responsive tr.tpc-child--free td.product-name { padding-right: 12px !important; }
}

/* Product page: stock shown once (Elementor stock widget), not again above the button */
.elementor-widget-woocommerce-product-add-to-cart p.stock.in-stock { display: none; }

/* Mini cart: compact rows so the whole order fits */
.elementor-menu-cart__main .elementor-menu-cart__product { padding-top: 10px !important; padding-bottom: 10px !important; grid-template-columns: 52px auto !important; column-gap: 12px; }
.elementor-menu-cart__main .elementor-menu-cart__product-image img { width: 52px !important; height: auto; }
.elementor-menu-cart__main .elementor-menu-cart__product-name { font-size: 14px; line-height: 1.3; }
.elementor-menu-cart__main .elementor-menu-cart__product-name dl.variation { margin: 4px 0 0 !important; font-size: 12px; line-height: 1.35; color: #5B6B82; }
.elementor-menu-cart__main .elementor-menu-cart__product-name dl.variation dt { float: none; display: inline; font-weight: 600; }
.elementor-menu-cart__main .elementor-menu-cart__product-name dl.variation dd { display: inline; margin: 0 !important; }
.elementor-menu-cart__main .elementor-menu-cart__product-name dl.variation dd::after { content: ""; display: block; }
.elementor-menu-cart__main .elementor-menu-cart__product-name dl.variation p { display: inline; margin: 0; }
.elementor-menu-cart__main .elementor-menu-cart__product-price { font-size: 13px; margin-top: 2px; }
.elementor-menu-cart__main .tpc-child--free { padding-top: 6px !important; padding-bottom: 6px !important; background: #F6FBF8; }
.elementor-menu-cart__main .tpc-child--free .elementor-menu-cart__product-image img { width: 36px !important; }
.elementor-menu-cart__main .tpc-child--free .elementor-menu-cart__product-name { font-size: 13px; }
.elementor-menu-cart__main .tpc-child--free dl.variation,
.elementor-menu-cart__main .tpc-child--free .elementor-menu-cart__product-remove { display: none !important; }

/* Product cards: button always at the bottom (Astra summary wrapper) + hide Astra on-image cart icon */
.elementor-widget-woocommerce-products ul.products li.product,
.elementor-widget-wc-archive-products ul.products li.product,
.elementor-widget-woocommerce-product-related ul.products li.product,
.elementor-widget-woocommerce-product-upsell ul.products li.product { display: flex !important; flex-direction: column !important; height: 100%; }
ul.products li.product .astra-shop-summary-wrap { display: flex; flex-direction: column; flex: 1 1 auto; }
ul.products li.product .astra-shop-summary-wrap > .button,
ul.products li.product .astra-shop-summary-wrap > .added_to_cart { margin-top: auto !important; }
ul.products li.product .astra-shop-summary-wrap > .price { margin-bottom: 14px; }
ul.products li.product .ast-on-card-button { display: none !important; }

/* Product grids may shrink on phones (no sideways scrolling) */
ul.products.elementor-grid > li.product { min-width:0; }

/* WhatsApp label: readable on dark and light backgrounds */
.qlwapp__button--bubble .qlwapp__text { background:#fff !important; color:#0b2a5b !important; font-size:14px !important; font-weight:600 !important; line-height:1.2 !important; padding:8px 14px !important; border-radius:999px !important; box-shadow:0 4px 14px rgba(0,0,0,.18) !important; white-space:nowrap; }
@media (max-width:767px){ .qlwapp__button--bubble .qlwapp__text { font-size:13px !important; padding:7px 12px !important; } }

/* ===== Cart extras (v1.0.14) ===== */
.tpc-ship__text a { color:inherit; font-weight:700; text-decoration:underline; }

/* Recommended products in the cart */
.tpc-upsell { margin:28px 0 8px; padding:22px; background:#f4f8fd; border:1px solid #dfe8f3; border-radius:16px; }
.tpc-upsell__head { margin-bottom:16px; }
.tpc-upsell__title { margin:0 0 4px; font-size:20px; line-height:1.3; color:#0b2a5b; }
.tpc-upsell__sub { margin:0; font-size:14px; color:#4a5a72; }
.tpc-upsell__grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.tpc-upsell__item { position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid #e3e9f2; border-radius:12px; padding:12px; min-width:0; }
.tpc-upsell__flag { position:absolute; top:10px; left:10px; z-index:1; background:#1e9e4a; color:#fff; font-size:11px; font-weight:700; line-height:1; padding:5px 8px; border-radius:20px; }
.tpc-upsell__img { display:block; aspect-ratio:1/1; margin-bottom:10px; }
.tpc-upsell__img img { width:100%; height:100%; object-fit:contain; margin:0 !important; }
.tpc-upsell__name { display:block; font-size:14px; font-weight:700; line-height:1.35; color:#0b2a5b; text-decoration:none; margin-bottom:6px; }
.tpc-upsell__price { display:block; font-size:15px; font-weight:700; color:#0b2a5b; margin-bottom:12px; }
.tpc-upsell__price del { color:#8a97a8; font-weight:500; margin-right:4px; }
.tpc-upsell__price ins { text-decoration:none; }
.tpc-upsell .tpc-upsell__btn { margin-top:auto !important; width:100%; text-align:center; font-size:14px !important; font-weight:700 !important; padding:11px 10px !important; border-radius:10px !important; background:#0b3a7e !important; color:#fff !important; line-height:1.2 !important; }
.tpc-upsell .tpc-upsell__btn.loading { opacity:.6; }
.tpc-upsell .tpc-upsell__btn.added::after { content:" \2713"; }
.tpc-upsell .added_to_cart { display:none !important; }
@media (max-width:921px){ .tpc-upsell__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:544px){ .tpc-upsell { padding:16px; margin-top:20px; } .tpc-upsell__title { font-size:18px; } .tpc-upsell__grid { gap:10px; } .tpc-upsell__item { padding:10px; } }

/* Coupon field in the cart (top of the totals box); the field inside the table is replaced */
.woocommerce-cart-form .actions .coupon { display:none !important; }
.tpc-coupon { margin:0 0 18px; padding:16px; background:#f4f8fd; border:1px dashed #9db6d8; border-radius:12px; }
.tpc-coupon__label { display:block; margin:0 0 8px; font-size:15px; font-weight:700; color:#0b2a5b; }
.tpc-coupon__row { display:flex; gap:8px; }
.tpc-coupon__row .input-text { flex:1 1 auto; min-width:0; height:46px; padding:0 14px !important; border:1px solid #c9d6e6 !important; border-radius:10px !important; background:#fff; font-size:15px; }
.tpc-coupon__row .button { flex:0 0 auto; height:46px; padding:0 18px !important; border-radius:10px !important; background:#0b3a7e !important; color:#fff !important; font-weight:700 !important; font-size:14px !important; }

/* Checkout: coupon field always open and easy to find */
.tp-checkout-coupon { padding:14px; background:#f4f8fd; border:1px dashed #9db6d8; border-radius:12px; }
.tp-checkout-coupon .tp-coupon-toggle { display:block; pointer-events:none; cursor:default; margin:0 0 8px; font-size:15px; font-weight:700; color:#0b2a5b !important; text-decoration:none !important; }
.tp-checkout-coupon .tp-coupon-fields { display:flex !important; flex-wrap:wrap; gap:8px; height:auto !important; overflow:visible !important; }
.tp-checkout-coupon #tp_coupon_code { flex:1 1 140px; min-width:0; height:46px; padding:0 14px; border:1px solid #c9d6e6; border-radius:10px; background:#fff; font-size:15px; }
.tp-checkout-coupon #tp_apply_coupon { flex:0 0 auto; height:46px; padding:0 18px; border-radius:10px; background:#0b3a7e; color:#fff; font-weight:700; }
.tp-checkout-coupon .tp-coupon-message { flex:1 0 100%; font-size:13px; }
.woocommerce-checkout-review-order-table .cart-discount th, .woocommerce-checkout-review-order-table .cart-discount td,
.cart_totals .cart-discount th, .cart_totals .cart-discount td { color:#1e9e4a; font-weight:700; }

/* Express checkout (Apple Pay / Google Pay) in the cart: below the checkout button, separated */
.wc-proceed-to-checkout .wcpay-express-checkout-wrapper:has(iframe) { margin-top:22px !important; padding-top:16px; border-top:1px solid #e3e8f0; }
.wc-proceed-to-checkout .wcpay-express-checkout-wrapper:has(iframe)::before { content:"Of betaal direct met"; display:block; text-align:center; font-size:13px; color:#5b6b82; margin-bottom:10px; }

/* Mini cart (header side panel) */
.elementor-menu-cart__main .elementor-menu-cart__product { grid-template-columns:64px minmax(0,1fr) !important; column-gap:14px; padding:16px 34px 16px 0 !important; position:relative; }
.elementor-menu-cart__main .elementor-menu-cart__product-image { grid-row:1 / span 2; }
.elementor-menu-cart__main .elementor-menu-cart__product-image img { width:64px; height:64px; object-fit:contain; }
.elementor-menu-cart__main .elementor-menu-cart__product-name { grid-column:2; min-width:0; }
.elementor-menu-cart__main .elementor-menu-cart__product-name > a { display:block; font-size:15px !important; font-weight:700; line-height:1.35; color:#0b2a5b !important; }
.elementor-menu-cart__main dl.variation { display:block !important; margin:6px 0 0 !important; padding:0 !important; font-size:12.5px; line-height:1.45; color:#4a5a72; }
.elementor-menu-cart__main dl.variation dt, .elementor-menu-cart__main dl.variation dd { display:inline !important; float:none !important; margin:0 !important; padding:0 !important; font-weight:400; }
.elementor-menu-cart__main dl.variation dt { font-weight:600; }
.elementor-menu-cart__main dl.variation dd::after { content:""; display:block; }
.elementor-menu-cart__main dl.variation dd p { display:inline; margin:0 !important; }
.elementor-menu-cart__main .elementor-menu-cart__product-price { grid-column:2; margin-top:8px; font-size:14px !important; color:#0b2a5b !important; opacity:1 !important; font-weight:600; }
.elementor-menu-cart__main .elementor-menu-cart__product-price .quantity, .elementor-menu-cart__main .elementor-menu-cart__product-price .amount { color:#0b2a5b !important; }
.elementor-menu-cart__main .elementor-menu-cart__product-remove { position:absolute !important; top:16px; right:0; margin:0 !important; }
.elementor-menu-cart__main .elementor-menu-cart__subtotal { font-size:18px !important; color:#0b2a5b !important; }
.elementor-menu-cart__main .tpc-ship { margin:6px 0 14px; }
.elementor-menu-cart__main .elementor-menu-cart__footer-buttons { display:grid !important; grid-template-columns:1fr 1fr; gap:10px; }
.elementor-menu-cart__main .elementor-menu-cart__footer-buttons .elementor-button { display:flex; align-items:center; justify-content:center; min-height:50px; margin:0 !important; padding:8px 10px !important; border-radius:10px !important; font-size:15px !important; font-weight:700 !important; line-height:1.2; text-align:center; }
.elementor-menu-cart__main .elementor-button--view-cart { background:#fff !important; color:#0b3a7e !important; border:2px solid #0b3a7e !important; }
.elementor-menu-cart__main .elementor-button--checkout { background:#1e9e4a !important; color:#fff !important; border:2px solid #1e9e4a !important; }

/* Klarna message above the checkout button: let it take its real height */
.wc-proceed-to-checkout #payment-method-message { height:auto !important; min-height:0 !important; overflow:visible !important; margin:0 0 14px !important; }

/* Mini cart open: hide WhatsApp so it never covers the cart buttons */
body:has(.elementor-menu-cart--shown) .qlwapp { display:none !important; }
.elementor-menu-cart__main .tpc-ship { padding:10px 12px !important; }
.elementor-menu-cart__main .tpc-ship__text { font-size:13px !important; margin-bottom:6px !important; }
.tp-checkout-coupon, .tp-checkout-coupon .tp-coupon-toggle { text-align:left !important; }
