/* tMP Core: cart and checkout, second pass. Loaded after store.css on those two pages only. */

/* ---------- steps + page title (printed by tmp_skin_checkout_steps) ---------- */
.tmp-steps { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; padding: 0; list-style: none; font-family: var(--mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.tmp-steps li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; }
.tmp-steps li + li::before { content: ""; width: 28px; height: 1px; background: var(--line); }
.tmp-steps b { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--line); font-weight: 500; font-size: 11px; letter-spacing: 0; color: var(--muted); background: var(--card); }
.tmp-steps a { color: inherit !important; text-decoration: none !important; display: flex; align-items: center; gap: 8px; }
.tmp-steps a:hover { color: var(--ink) !important; }
.tmp-steps .is-on { color: var(--ink); } .tmp-steps .is-on b { background: var(--ink); border-color: var(--ink); color: #fff; }
.tmp-steps .is-done b { background: var(--green-tint, #DCE9DD); border-color: transparent; color: #173B2B; }
html body.tmp-skin .tmp-cohead h1 { font-size: clamp(34px, 4vw, 48px) !important; line-height: 1.05 !important; letter-spacing: -.02em; margin: 0 0 32px !important; color: var(--ink) !important; }
body.tmp-skin.woocommerce-cart .tmp-title, body.tmp-skin.woocommerce-checkout .tmp-title { display: none; }

/* ---------- shared: cards, summary rows, item details ---------- */
body.tmp-skin .tmp-cocard, body.tmp-skin.woocommerce-cart .cart_totals, body.tmp-skin.woocommerce-checkout #order_review, body.tmp-skin.woocommerce-checkout .woocommerce-billing-fields, body.tmp-skin.woocommerce-checkout .woocommerce-additional-fields, body.tmp-skin.woocommerce-checkout .woocommerce-shipping-fields:has(*) { background: var(--card); border: 1px solid var(--line); border-radius: 16px; }
body.tmp-skin .cart_totals > h2, body.tmp-skin #order_review_heading, body.tmp-skin .woocommerce-billing-fields > h3, body.tmp-skin .woocommerce-additional-fields > h3, body.tmp-skin .woocommerce-shipping-fields h3 { font-family: var(--sans) !important; font-size: 19px !important; font-weight: 600 !important; letter-spacing: -.01em !important; line-height: 1.3 !important; margin: 0 0 18px !important; color: var(--ink) !important; }
/* booking / add-on details under an item: one tidy line each, never a stacked definition list */
body.tmp-skin .woocommerce dl.variation { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 8px; margin: 8px 0 0 !important; padding: 0 !important; font-size: 13.5px; line-height: 1.45; }
body.tmp-skin .woocommerce dl.variation dt { float: none !important; clear: none !important; margin: 0 !important; padding: 0 !important; font-weight: 400 !important; color: var(--muted) !important; }
body.tmp-skin .woocommerce dl.variation dd { float: none !important; margin: 0 !important; padding: 0 !important; color: var(--ink2) !important; font-weight: 500; }
body.tmp-skin .woocommerce dl.variation dd p { margin: 0 !important; display: inline; font-size: inherit !important; color: inherit !important; }
body.tmp-skin .woocommerce table.shop_table tr.order-total th, body.tmp-skin .woocommerce table.shop_table tr.order-total td { border-top: 1px solid var(--ink) !important; padding-top: 18px !important; }
body.tmp-skin .woocommerce table.shop_table tr.order-total .amount { font-family: var(--sans); font-size: 26px; font-weight: 600; letter-spacing: -.01em; }
.tmp-secure { text-align: center; display: flex; align-items: flex-start; justify-content: center; gap: 8px; margin: 14px 0 0 !important; font-size: 13px !important; color: var(--muted) !important; }
.tmp-secure svg { flex-shrink: 0; margin-top: 2px; }

/* ---------- cart ---------- */
body.tmp-skin.woocommerce-cart .woocommerce table.cart { border-radius: 16px !important; overflow: hidden; border-collapse: separate !important; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart thead th { font-family: var(--mono); font-size: 11px !important; font-weight: 500 !important; letter-spacing: .1em; text-transform: uppercase; color: var(--muted) !important; padding: 14px 16px !important; background: transparent !important; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart td { padding: 20px 16px !important; vertical-align: middle; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart td.product-remove { width: 44px; padding-right: 0 !important; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart td.product-thumbnail { width: 88px; padding-right: 4px !important; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart img { width: 72px !important; height: 72px; object-fit: cover; border-radius: 12px; border: 1px solid var(--line); background: var(--tint); display: block; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart td.product-name > a { font-size: 17px; font-weight: 600; color: var(--ink) !important; text-decoration: none !important; letter-spacing: -.01em; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart td.product-name > a:hover { text-decoration: underline !important; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart td.product-name { width: 46%; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart td.product-price { color: var(--muted); }
body.tmp-skin.woocommerce-cart .woocommerce table.cart td.product-subtotal { font-weight: 600; color: var(--ink); text-align: right; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart th.product-subtotal { text-align: right; }
body.tmp-skin.woocommerce-cart .woocommerce a.remove { display: grid !important; place-items: center; width: 28px !important; height: 28px !important; border-radius: 50% !important; border: 1px solid var(--line); background: var(--card) !important; color: var(--muted) !important; font-size: 18px !important; font-weight: 400 !important; line-height: 1 !important; text-decoration: none !important; transition: background .15s, color .15s, border-color .15s; }
body.tmp-skin.woocommerce-cart .woocommerce a.remove:hover { background: #FCEDEA !important; border-color: #E9B8AE; color: #8A2A1B !important; }
body.tmp-skin.woocommerce-cart .woocommerce .quantity .qty { width: 76px !important; min-height: 44px; text-align: center; border-radius: 10px !important; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart td.actions { background: transparent !important; border-top: 1px solid var(--line) !important; padding: 16px !important; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart td.actions .coupon .input-text { border-radius: 10px !important; padding-left: 14px !important; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart td.actions > .button { float: right; }
body.tmp-skin.woocommerce-cart .woocommerce table.cart td.actions > .button:disabled { opacity: .45; }
body.tmp-skin.woocommerce-cart .cart_totals { padding: 24px 24px 22px; }
body.tmp-skin.woocommerce-cart .cart_totals table.shop_table { border: 0 !important; margin: 0 0 18px !important; background: transparent !important; }
body.tmp-skin.woocommerce-cart .cart_totals table.shop_table th, body.tmp-skin.woocommerce-cart .cart_totals table.shop_table td { padding: 12px 0 !important; background: transparent !important; text-align: left; }
body.tmp-skin.woocommerce-cart .cart_totals table.shop_table td { text-align: right !important; }
body.tmp-skin.woocommerce-cart .cart_totals table.shop_table th { font-weight: 400 !important; color: var(--ink2) !important; width: auto !important; }
body.tmp-skin.woocommerce-cart .cart_totals table.shop_table tr.order-total th { font-weight: 600 !important; color: var(--ink) !important; }
body.tmp-skin .wc-proceed-to-checkout a.checkout-button, body.tmp-skin .woocommerce-checkout #payment #place_order { border-radius: 12px !important; text-decoration: none !important; min-height: 58px; display: flex !important; align-items: center; justify-content: center; gap: 10px; transition: transform .15s, filter .15s; }
body.tmp-skin .wc-proceed-to-checkout a.checkout-button:hover, body.tmp-skin .woocommerce-checkout #payment #place_order:hover { transform: translateY(-1px); filter: brightness(1.15); }
body.tmp-skin.woocommerce-cart .cross-sells { width: auto !important; float: none !important; }
body.tmp-skin.woocommerce-cart .cross-sells > h2 { font-family: var(--sans) !important; font-size: 19px !important; font-weight: 600 !important; letter-spacing: -.01em !important; margin: 8px 0 16px !important; padding: 0 !important; border: 0 !important; }
body.tmp-skin.woocommerce-cart .cross-sells ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; margin: 0 !important; }
body.tmp-skin.woocommerce-cart .cross-sells ul.products::before, body.tmp-skin.woocommerce-cart .cross-sells ul.products::after { display: none !important; }
body.tmp-skin.woocommerce-cart .cross-sells ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; border-radius: 14px !important; }
body.tmp-skin.woocommerce-cart .cross-sells ul.products li.product .woocommerce-loop-product__title { font-size: 16px !important; }
body.tmp-skin.woocommerce-cart .cross-sells ul.products li.product .button { text-decoration: none !important; }

@media (min-width: 941px) {
	/* items on the left, a totals card that stays in view on the right, suggestions under the items */
	body.tmp-skin.woocommerce-cart .tmp-content > .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 28px 40px; align-items: start; }
	body.tmp-skin.woocommerce-cart .tmp-content > .woocommerce > * { grid-column: 1 / -1; min-width: 0; }
	body.tmp-skin.woocommerce-cart .tmp-content > .woocommerce > form.woocommerce-cart-form { grid-column: 1; }
	body.tmp-skin.woocommerce-cart .tmp-content > .woocommerce > .cart-collaterals { display: contents; }
	body.tmp-skin.woocommerce-cart .cart-collaterals .cart_totals { grid-column: 2; grid-row: 3 / span 2; width: auto !important; float: none !important; position: sticky; top: 108px; margin: 0 !important; }
	body.tmp-skin.woocommerce-cart .cart-collaterals .cross-sells { grid-column: 1; }
	body.tmp-skin.woocommerce-cart .tmp-content > .woocommerce > form.woocommerce-cart-form { grid-row: 3; }
	body.tmp-skin.woocommerce-cart .woocommerce table.cart { margin: 0 !important; }
}

/* ---------- checkout ---------- */
body.tmp-skin.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { background: transparent !important; border: 0 !important; padding: 0 !important; margin: 0 0 20px !important; font-size: 15px !important; color: var(--muted) !important; }
body.tmp-skin.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none !important; }
body.tmp-skin.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a { color: var(--ink) !important; font-weight: 500; }
body.tmp-skin.woocommerce-checkout form.checkout_coupon { border-radius: 16px !important; margin: 0 0 24px !important; }
body.tmp-skin #wc-stripe-express-checkout-element { margin: 0 0 4px !important; padding: 20px 24px; background: var(--card); border: 1px solid var(--line); border-radius: 16px; }
body.tmp-skin #wc-stripe-express-checkout-element::before { content: "Express checkout"; display: block; font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 0 0 12px; }
body.tmp-skin #wc-stripe-express-checkout-element:empty { display: none; }
body.tmp-skin #wc-stripe-express-checkout-button-separator { display: flex; align-items: center; gap: 16px; margin: 20px 0 24px !important; font-family: var(--mono); font-size: 11px !important; letter-spacing: .1em; text-transform: uppercase; color: var(--muted) !important; }
body.tmp-skin #wc-stripe-express-checkout-button-separator::before, body.tmp-skin #wc-stripe-express-checkout-button-separator::after { content: ""; flex: 1; height: 1px; background: var(--line); }
body.tmp-skin.woocommerce-checkout .woocommerce-billing-fields, body.tmp-skin.woocommerce-checkout .woocommerce-additional-fields, body.tmp-skin.woocommerce-checkout .woocommerce-shipping-fields:has(*) { padding: 26px 28px 14px; }
body.tmp-skin.woocommerce-checkout #customer_details .col-2 { margin-top: 20px !important; }
body.tmp-skin.woocommerce-checkout .woocommerce-billing-fields__field-wrapper, body.tmp-skin.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0 14px; }
body.tmp-skin.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row, body.tmp-skin.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row { grid-column: 1 / -1; width: auto !important; float: none !important; margin: 0 0 14px !important; padding: 0 !important; }
body.tmp-skin.woocommerce-checkout .form-row-first, body.tmp-skin.woocommerce-checkout #billing_email_field { grid-column: span 3 !important; }
body.tmp-skin.woocommerce-checkout .form-row-last, body.tmp-skin.woocommerce-checkout #billing_phone_field { grid-column: span 3 !important; }
body.tmp-skin.woocommerce-checkout #billing_email_field { order: -2; } body.tmp-skin.woocommerce-checkout #billing_phone_field { order: -1; }
body.tmp-skin.woocommerce-checkout #billing_city_field, body.tmp-skin.woocommerce-checkout #shipping_city_field { grid-column: span 2 !important; }
body.tmp-skin.woocommerce-checkout #billing_state_field, body.tmp-skin.woocommerce-checkout #shipping_state_field { grid-column: span 2 !important; }
body.tmp-skin.woocommerce-checkout #billing_postcode_field, body.tmp-skin.woocommerce-checkout #shipping_postcode_field { grid-column: span 2 !important; min-width: 0; }
body.tmp-skin.woocommerce-checkout .form-row label { font-size: 13.5px !important; font-weight: 500 !important; color: var(--ink2) !important; margin: 0 0 6px !important; line-height: 1.3 !important; }
body.tmp-skin.woocommerce-checkout .form-row .required { color: var(--muted) !important; text-decoration: none; }
body.tmp-skin.woocommerce-checkout .form-row .input-text, body.tmp-skin.woocommerce-checkout .form-row select, body.tmp-skin.woocommerce-checkout .select2-container .select2-selection--single { background: #fff !important; border-radius: 10px !important; min-height: 48px; transition: border-color .15s, box-shadow .15s; }
body.tmp-skin.woocommerce-checkout .select2-container .select2-selection--single { display: flex; align-items: center; border: 1px solid var(--field, rgba(15, 32, 41, .22)) !important; }
body.tmp-skin.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered { padding-left: 14px !important; color: var(--ink) !important; line-height: 1.4 !important; }
body.tmp-skin.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 46px !important; right: 8px !important; }
body.tmp-skin.woocommerce-checkout .form-row .input-text:focus, body.tmp-skin.woocommerce-checkout .form-row select:focus { border-color: var(--ink) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent) !important; outline: 0 !important; }
body.tmp-skin.woocommerce-checkout .form-row.woocommerce-invalid .input-text { border-color: #C2452F !important; }
body.tmp-skin.woocommerce-checkout textarea.input-text { min-height: 96px !important; padding: 12px 14px !important; }
body.tmp-skin.woocommerce-checkout #order_review_heading { display: none !important; }
body.tmp-skin.woocommerce-checkout #order_review { padding: 26px 28px 24px !important; }
body.tmp-skin.woocommerce-checkout #order_review::before { content: "Order summary"; display: block; font-family: var(--sans); font-size: 19px; font-weight: 600; letter-spacing: -.01em; color: var(--ink); margin: 0 0 6px; }
body.tmp-skin.woocommerce-checkout #order_review table.shop_table thead { display: none; }
body.tmp-skin.woocommerce-checkout #order_review table.shop_table td.product-name { width: 100%; }
body.tmp-skin.woocommerce-checkout #order_review table.shop_table td.product-total, body.tmp-skin.woocommerce-checkout #order_review table.shop_table tfoot td { white-space: nowrap; }
body.tmp-skin.woocommerce-checkout #order_review table.shop_table td.product-name { font-weight: 600; color: var(--ink); padding-top: 16px !important; padding-bottom: 16px !important; }
body.tmp-skin.woocommerce-checkout #order_review table.shop_table td.product-total { vertical-align: top; padding-top: 16px !important; font-weight: 500; }
body.tmp-skin.woocommerce-checkout #order_review table.shop_table tfoot th { font-weight: 400 !important; color: var(--ink2) !important; text-align: left; }
body.tmp-skin.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total th { font-weight: 600 !important; color: var(--ink) !important; }
body.tmp-skin .woocommerce-checkout #payment { border-top: 1px solid var(--line) !important; margin-top: 8px; padding-top: 8px !important; }
body.tmp-skin .woocommerce-checkout #payment ul.payment_methods { list-style: none !important; padding: 12px 0 4px !important; }
body.tmp-skin .woocommerce-checkout #payment ul.payment_methods li { list-style: none !important; }
body.tmp-skin .woocommerce-checkout #payment ul.payment_methods > li > label { font-size: 15px; font-weight: 600 !important; }
body.tmp-skin .woocommerce-checkout #payment div.payment_box { background: transparent !important; padding: 12px 0 0 !important; margin: 0 !important; }
body.tmp-skin .woocommerce-checkout #payment div.payment_box fieldset { border: 0 !important; padding: 0 !important; margin: 0 !important; background: transparent !important; min-width: 0; }
body.tmp-skin .woocommerce-checkout #payment .woocommerce-SavedPaymentMethods-saveNew { display: flex !important; align-items: flex-start; gap: 10px; margin: 14px 0 0 !important; padding: 0 !important; font-size: 14px; color: var(--ink2); }
body.tmp-skin .woocommerce-checkout #payment .woocommerce-SavedPaymentMethods-saveNew input { width: 18px !important; height: 18px; margin: 2px 0 0 !important; accent-color: var(--ink); flex-shrink: 0; }
body.tmp-skin .woocommerce-checkout #payment .woocommerce-SavedPaymentMethods-saveNew label { font-size: 14px !important; font-weight: 400 !important; color: var(--ink2) !important; margin: 0 !important; }
body.tmp-skin .woocommerce-checkout #payment ul.wc-saved-payment-methods { list-style: none !important; padding: 0 !important; margin: 0 0 8px !important; }
body.tmp-skin .woocommerce-checkout #payment ul.wc-saved-payment-methods li { display: flex; align-items: center; gap: 10px; padding: 10px 12px !important; border: 1px solid var(--line); border-radius: 10px; margin: 0 0 8px !important; background: #fff; }
body.tmp-skin .woocommerce-checkout #payment ul.wc-saved-payment-methods li label { margin: 0 !important; font-weight: 500 !important; }
body.tmp-skin .woocommerce-checkout .woocommerce-privacy-policy-text p { font-size: 12.5px !important; line-height: 1.5 !important; color: var(--muted) !important; margin: 0 0 14px !important; }
@media (min-width: 941px) { body.tmp-skin.woocommerce-checkout form.checkout > #order_review { grid-row: 20 / span 2; top: 108px; } }
@media (max-width: 940px) {
	.tmp-steps { font-size: 11px; gap: 6px; } .tmp-steps li { gap: 6px; } .tmp-steps li + li::before { width: 14px; }
	html body.tmp-skin .tmp-cohead h1 { margin-bottom: 20px !important; }
	body.tmp-skin.woocommerce-checkout .woocommerce-billing-fields, body.tmp-skin.woocommerce-checkout .woocommerce-additional-fields, body.tmp-skin.woocommerce-checkout #order_review { padding: 20px 18px 12px !important; border-radius: 14px; }
	body.tmp-skin.woocommerce-checkout #order_review { margin-top: 20px; padding-bottom: 20px !important; }
	body.tmp-skin.woocommerce-cart .cart_totals { padding: 20px 18px; border-radius: 14px; margin-top: 20px !important; }
	body.tmp-skin.woocommerce-cart .woocommerce table.cart td.actions > .button { float: none; }
	body.tmp-skin.woocommerce-cart .woocommerce table.cart td.product-name { width: auto !important; min-width: 0; }
	body.tmp-skin .woocommerce dl.variation dd, body.tmp-skin .woocommerce dl.variation dd p { word-break: normal !important; overflow-wrap: normal; }
}
@media (max-width: 560px) {
	body.tmp-skin.woocommerce-checkout #billing_email_field, body.tmp-skin.woocommerce-checkout #billing_phone_field, body.tmp-skin.woocommerce-checkout #billing_city_field, body.tmp-skin.woocommerce-checkout #shipping_city_field { grid-column: 1 / -1 !important; }
	body.tmp-skin.woocommerce-checkout #billing_state_field, body.tmp-skin.woocommerce-checkout #shipping_state_field { grid-column: span 4 !important; }
	body.tmp-skin.woocommerce-checkout #billing_postcode_field, body.tmp-skin.woocommerce-checkout #shipping_postcode_field { grid-column: span 2 !important; }
	body.tmp-skin .woocommerce dl.variation dd { white-space: normal; }
}
