/* =========================================================================
   Evermed — cart, checkout, thank-you, My Account, order tracking
   Layout and polish on top of WooCommerce's own styles; colours from tokens.
   ====================================================================== */

.woocommerce-cart .ev-entry-title, .woocommerce-checkout .ev-entry-title, .woocommerce-account .ev-entry-title { margin-bottom: .6em; }

/* ---------- Buttons ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
	min-height: 44px; padding: 10px 18px; border-radius: var(--ev-radius-sm);
	background: var(--ev-page); color: var(--ev-ink); font-weight: 600; line-height: 1.3;
}
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce #place_order,
.woocommerce .wc-proceed-to-checkout a.checkout-button {
	background: var(--ev-primary-ink) !important; color: #fff !important;
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce #place_order:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover { background: var(--ev-primary-dark) !important; }

/* ---------- Notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border-radius: var(--ev-radius); border-top-width: 3px; background: var(--ev-surface);
	box-shadow: 0 1px 0 var(--ev-line);
}
.woocommerce-message { border-top-color: var(--ev-primary); }
.woocommerce-message::before { color: var(--ev-primary-ink); }

/* ---------- Cards used on every page here ---------- */
.woocommerce-cart-form, .cart-collaterals .cart_totals, .woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review, .woocommerce-MyAccount-content, .sb-track, .woocommerce-order {
	background: var(--ev-surface); border: 1px solid var(--ev-line); border-radius: var(--ev-radius);
	padding: clamp(14px, 2.5vw, 24px);
}

/* ---------- Cart ---------- */
@media (min-width: 900px) {
	.woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; }
	.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
	.woocommerce-cart .cart-collaterals { position: sticky; top: calc(var(--evh-sticky-h, 64px) + 16px); }
	.woocommerce-cart .cart-collaterals .cart_totals { width: auto; float: none; }
}
.woocommerce table.shop_table { border: 0; border-collapse: collapse; margin: 0; }
.woocommerce table.shop_table th { font-weight: 700; background: var(--ev-page); }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-top: 1px solid var(--ev-line); padding: 12px 10px; }
.woocommerce table.cart img { width: 64px; height: 64px; object-fit: contain; background: #fff; border-radius: var(--ev-radius-sm); }
.woocommerce table.cart td.product-name a { color: var(--ev-ink); font-weight: 600; text-decoration: none; }
.woocommerce table.cart .quantity .qty { width: 70px; min-height: 42px; text-align: center; }
.woocommerce table.cart td.actions .coupon { display: flex; gap: 8px; flex-wrap: wrap; }
.woocommerce table.cart td.actions .coupon .input-text { min-width: 160px; min-height: 44px; }
.woocommerce a.remove { color: #d6282e !important; font-size: 1.4em; }
.woocommerce a.remove:hover { background: #d6282e; color: #fff !important; }
.cart_totals h2 { font-size: 1.2rem; margin-top: 0; }
.cart_totals .order-total .amount { color: var(--ev-primary-ink); font-size: 1.2rem; }
.wc-proceed-to-checkout a.checkout-button { display: block; min-height: 52px; font-size: 1.05rem !important; border-radius: var(--ev-radius-sm) !important; }

/* Cart on phones: each product as a card */
@media (max-width: 767px) {
	.woocommerce table.shop_table_responsive tr { display: block; margin-bottom: 10px; border: 1px solid var(--ev-line); border-radius: var(--ev-radius-sm); }
	.woocommerce table.shop_table_responsive tr td { border-top: 0; padding: 8px 10px; }
	.woocommerce-cart-form { padding: 10px; }
}

/* ---------- Checkout ---------- */
@media (min-width: 900px) {
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); grid-template-rows: auto 1fr; gap: 0 24px; align-items: start; }
	.woocommerce-checkout form.checkout > * { grid-column: 1; }
	.woocommerce-checkout form.checkout > #order_review_heading,
	.woocommerce-checkout form.checkout > #order_review { grid-column: 2; }
	.woocommerce-checkout form.checkout > #order_review_heading { grid-row: 1; margin-top: 0; }
	.woocommerce-checkout form.checkout > #customer_details { grid-row: 1 / span 2; }
	.woocommerce-checkout form.checkout > #order_review { grid-row: 2; position: sticky; top: calc(var(--evh-sticky-h, 64px) + 16px); }
	.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { float: none; width: auto; }
}
.woocommerce-checkout h3, #order_review_heading { font-size: 1.15rem; }
.woocommerce form .form-row { margin: 0 0 12px; padding: 0; }
.woocommerce form .form-row label { font-weight: 600; font-size: .92rem; margin-bottom: 4px; }
.woocommerce form .form-row .input-text, .woocommerce form .form-row select, .woocommerce-checkout .select2-container .select2-selection--single {
	min-height: 46px; border-radius: var(--ev-radius-sm);
}
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered { line-height: 44px; }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 44px; }
.woocommerce form .form-row.woocommerce-invalid .input-text { border-color: #d6282e; }
#shipping_method { margin: 0; padding: 0; list-style: none; }
#shipping_method li { margin: 0 0 6px; }
#shipping_method li label { font-weight: 500; }
.woocommerce-checkout #payment { background: var(--ev-page); border-radius: var(--ev-radius-sm); }
.woocommerce-checkout #payment div.payment_box { background: var(--ev-surface); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--ev-surface); }
#place_order { width: 100%; min-height: 54px; font-size: 1.1rem !important; border-radius: var(--ev-radius-sm) !important; }
.woocommerce-checkout .order-total .amount { color: var(--ev-primary-ink); font-size: 1.2rem; }

/* ---------- Thank-you page ---------- */
.woocommerce-order .woocommerce-thankyou-order-received { font-size: 1.15rem; font-weight: 700; color: var(--ev-primary-ink); }
.woocommerce ul.order_details { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 0 0 20px; padding: 0; }
.woocommerce ul.order_details::before, .woocommerce ul.order_details::after { display: none; }
.woocommerce ul.order_details li { float: none; margin: 0; padding: 10px 12px; border: 1px solid var(--ev-line); border-radius: var(--ev-radius-sm); background: var(--ev-page); }
.sb-thanks-links { margin: 0 0 20px; padding: 16px; border: 2px dashed var(--ev-primary); border-radius: var(--ev-radius); background: color-mix(in srgb, var(--ev-primary) 6%, #fff); }
.sb-thanks-links h2 { margin: 0 0 10px; font-size: 1.1rem; }
.sb-thanks-links .button { margin: 0 8px 8px 0; background: var(--ev-primary-ink) !important; color: #fff !important; }
.sb-thanks-help { margin: 4px 0 0; font-size: .9rem; color: var(--ev-muted); }

/* ---------- My Account ---------- */
@media (min-width: 900px) {
	/* Side navigation only exists for logged-in customers */
	/* Flex, not grid: anything a plugin prints before the menu (notices,
	   hidden headings…) takes its own full line, and menu + content always
	   sit side by side. */
	.logged-in.woocommerce-account .woocommerce { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: flex-start; }
	.logged-in.woocommerce-account .woocommerce > * { flex: 1 1 100%; min-width: 0; }
	.logged-in.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation { flex: 0 0 240px; }
	.logged-in.woocommerce-account .woocommerce > .woocommerce-MyAccount-content { flex: 1 1 0; }
	.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.woocommerce-MyAccount-navigation a {
	display: block; padding: 10px 14px; border-radius: var(--ev-radius-sm);
	color: var(--ev-ink); text-decoration: none; font-weight: 600; background: var(--ev-surface); border: 1px solid var(--ev-line);
}
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--ev-primary-ink); border-color: var(--ev-primary); color: #fff; }
@media (max-width: 899px) {
	.woocommerce-MyAccount-navigation { margin-bottom: 16px; }
	.woocommerce-MyAccount-navigation ul { flex-direction: row; overflow-x: auto; scrollbar-width: none; }
	.woocommerce-MyAccount-navigation a { white-space: nowrap; }
}
/* Logged out: Login | Register side by side (one centred card if registration is off) */
.woocommerce-account .u-columns { display: grid; gap: 24px; max-width: 980px; margin: 0 auto; }
@media (min-width: 768px) { .woocommerce-account .u-columns { grid-template-columns: 1fr 1fr; } }
.woocommerce-account .u-columns::before, .woocommerce-account .u-columns::after { display: none; }
.woocommerce-account .woocommerce .u-columns.col2-set .col-1,
.woocommerce-account .woocommerce .u-columns.col2-set .col-2,
.woocommerce-account .u-columns .u-column1, .woocommerce-account .u-columns .u-column2 { width: auto; max-width: none; float: none; margin: 0; }
.woocommerce-account .u-column1, .woocommerce-account .u-column2 {
	display: flex; flex-direction: column;
	padding: clamp(18px, 3vw, 28px); background: var(--ev-surface);
	border: 1px solid var(--ev-line); border-radius: var(--ev-radius);
}
.woocommerce-account .u-column1 > h2, .woocommerce-account .u-column2 > h2 { margin: 0 0 12px; font-size: 1.35rem; }
.woocommerce-account .u-columns form.login, .woocommerce-account .u-columns form.register { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; flex: 1; }
.woocommerce-account:not(.logged-in) .woocommerce > h2 { max-width: 480px; margin: 0 auto 12px; }
.woocommerce-account:not(.logged-in) .woocommerce > form.login { max-width: 480px; margin: 0 auto; padding: clamp(18px, 3vw, 28px); background: var(--ev-surface); border: 1px solid var(--ev-line); border-radius: var(--ev-radius); }
.woocommerce form.login .form-row, .woocommerce form.register .form-row { width: 100%; float: none; }
.woocommerce form.login .input-text, .woocommerce form.register .input-text { width: 100%; }
.woocommerce form .woocommerce-form-login__submit, .woocommerce form .woocommerce-form-register__submit {
	width: 100%; min-height: 48px; margin: 6px 0 0; float: none;
	background: var(--ev-primary-ink) !important; color: #fff !important; border-radius: var(--ev-radius-sm);
}
.woocommerce form .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 6px; margin: 4px 0 8px; font-weight: 500; }
.woocommerce-LostPassword { margin: 12px 0 0; }
.woocommerce-privacy-policy-text { font-size: .85rem; color: var(--ev-muted); }

/* ---------- Order tracking (ShopBooster) ---------- */
/* 2.0.5: centred like the login card on My Account (.sb-track is already a card — see "Cards" above) */
.ev-tracking-page .ev-entry-title, .woocommerce-account:not(.logged-in) .ev-entry-title { text-align: center; }
.ev-tracking-page .ev-entry-content { max-width: 720px; margin-inline: auto; }
.sb-track { max-width: 720px; margin-inline: auto; }
.woocommerce .sb-track-form.track_order { border: 0; padding: 0; margin: 0; }
.sb-track-form > p:first-child { margin-top: 0; color: var(--ev-muted); font-size: .92rem; }
.sb-track-form > .form-row:last-child { margin-bottom: 0; }
.sb-track-form .button { width: 100%; }

.sb-track .sb-track-form[hidden] { display: none; }
.woocommerce .sb-track-form .form-row-first, .woocommerce .sb-track-form .form-row-last { width: 100%; float: none; }
@media (min-width: 640px) {
	.sb-track-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
	.sb-track-form > p:first-child, .sb-track-form > .form-row:last-child, .sb-track-form .clear { grid-column: 1 / -1; }
}
.woocommerce .sb-track-form .form-row .input-text { width: 100%; max-width: none; min-height: 46px; }
.sb-track-form .button { background: var(--ev-primary-ink) !important; color: #fff !important; min-width: 180px; }
.sb-track-head { font-size: 1.05rem; }
.sb-track-steps { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); margin: 16px 0 20px; padding: 0; counter-reset: sbstep; }
.sb-track-steps li { position: relative; text-align: center; font-size: .85rem; font-weight: 600; color: var(--ev-muted); padding-top: 38px; }
.sb-track-steps li::before {
	counter-increment: sbstep; content: counter(sbstep);
	position: absolute; top: 0; left: 50%; transform: translateX(-50%); z-index: 1;
	width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%;
	background: var(--ev-page); border: 2px solid var(--ev-line); color: var(--ev-muted);
}
.sb-track-steps li + li::after { content: ""; position: absolute; top: 14px; right: 50%; width: 100%; height: 3px; background: var(--ev-line); }
.sb-track-steps li.is-done { color: var(--ev-ink); }
.sb-track-steps li.is-done::before { content: "✓"; background: var(--ev-primary-ink); border-color: var(--ev-primary); color: #fff; }
.sb-track-steps li.is-done + li.is-done::after { background: var(--ev-primary); }
.sb-track-courier { padding: 8px 12px; background: var(--ev-page); border-radius: var(--ev-radius-sm); }

/* Block cart / checkout (if a page uses the WooCommerce blocks) — use the full container width */
.woocommerce-cart .wp-block-woocommerce-cart, .woocommerce-checkout .wp-block-woocommerce-checkout { max-width: none !important; margin-inline: 0 !important; }
/* Shop pages are not reading pages: no reading-width limit */
.woocommerce-cart .ev-entry-content, .woocommerce-checkout .ev-entry-content, .woocommerce-account .ev-entry-content { max-width: none; font-size: 1rem; }

