/**
 * Cart page, checkout (visual step wrapper over the real WooCommerce
 * checkout form), and order-received (thank-you) page.
 */

/* ---------- Cart ---------- */
.apc-cart-page { max-width: 1100px; margin: 0 auto; padding: 30px 20px 80px; }
.apc-cart-page__title { font-size: 26px; font-weight: 800; margin: 0 0 24px; }
.apc-cart-layout { display: grid; grid-template-columns: 1fr 340px; gap: 32px; align-items: start; }

.apc-free-delivery {
	background: var(--apc-color-tint); border-radius: 10px; padding: 12px 16px; font-size: 12.5px;
	color: var(--apc-color-primary-dark); font-weight: 600; margin-bottom: 18px;
}
.apc-free-delivery__track { height: 5px; background: var(--apc-color-border-tint); border-radius: 999px; margin-top: 8px; overflow: hidden; }
.apc-free-delivery__fill { height: 100%; background: var(--apc-color-primary); border-radius: 999px; transition: width 0.4s; }

table.apc-cart-table { width: 100%; border-collapse: collapse; }
table.apc-cart-table thead th { display: none; }
table.apc-cart-table td { border: none; padding: 0; vertical-align: middle; }
.apc-cart-row { display: flex; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--apc-color-border); align-items: center; flex-wrap: wrap; }
.apc-cart-row__thumb { width: 80px; height: 80px; border-radius: 10px; background: var(--apc-color-tint); flex-shrink: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.apc-cart-row__thumb img { width: 100%; height: 100%; object-fit: cover; }
.apc-cart-row__info { flex: 1; min-width: 160px; }
.apc-cart-row__name { font-weight: 700; font-size: 14.5px; }
.apc-cart-row__meta { font-size: 12px; color: var(--apc-color-text-faint); margin-bottom: 6px; }
.apc-cart-row__total { width: 100px; text-align: right; font-weight: 800; font-size: 14.5px; color: var(--apc-color-primary); }
.apc-cart-row__remove { cursor: pointer; background: none; border: none; stroke: var(--apc-color-disabled); padding: 4px; }

.apc-order-summary { border: 1px solid var(--apc-color-border); border-radius: 16px; padding: 24px; }
.apc-order-summary__title { font-weight: 800; font-size: 15px; margin-bottom: 16px; }
.apc-order-summary__coupon { display: flex; gap: 8px; margin-bottom: 14px; }
.apc-order-summary__coupon input { flex: 1; border: 1px solid var(--apc-color-border-strong); border-radius: 8px; padding: 10px 12px; font-size: 12.5px; outline: none; }
.apc-order-summary__coupon button { background: var(--apc-color-text); color: #fff; border: none; border-radius: 8px; padding: 10px 16px; font-size: 12.5px; font-weight: 700; }
.apc-order-summary__line { display: flex; justify-content: space-between; font-size: 13.5px; color: var(--apc-color-text-soft); margin-bottom: 10px; }
.apc-order-summary__line--discount { color: var(--apc-color-success); }
.apc-order-summary__total { display: flex; justify-content: space-between; font-weight: 800; font-size: 16px; padding-top: 12px; border-top: 1px solid var(--apc-color-border); margin-bottom: 18px; }
.apc-order-summary__total span:last-child { color: var(--apc-color-primary); }
.apc-cart-cross-sells { margin-top: 40px; }
.apc-cart-cross-sells h2 { font-size: 18px; margin-bottom: 16px; }

/* ---------- Checkout ---------- */
.apc-checkout { max-width: 960px; margin: 0 auto; padding: 30px 20px 80px; }
.apc-checkout-steps { display: flex; justify-content: center; gap: 0; margin-bottom: 36px; flex-wrap: wrap; }
.apc-checkout-step { display: flex; align-items: center; }
.apc-checkout-step__dot-wrap { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.apc-checkout-step__dot { width: 34px; height: 34px; border-radius: 999px; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 13px; background: var(--apc-color-tint); color: var(--apc-color-text-faint); }
.apc-checkout-step.is-active .apc-checkout-step__dot,
.apc-checkout-step.is-done .apc-checkout-step__dot { background: var(--apc-color-primary); color: #fff; }
.apc-checkout-step__label { font-size: 11.5px; font-weight: 700; color: var(--apc-color-text-faint); }
.apc-checkout-step.is-active .apc-checkout-step__label,
.apc-checkout-step.is-done .apc-checkout-step__label { color: var(--apc-color-primary); }
.apc-checkout-step__line { width: 70px; height: 2px; background: var(--apc-color-border-strong); margin: 0 10px; }
.apc-checkout-step__line.is-done { background: var(--apc-color-primary); }

/* Real WooCommerce checkout form fields, restyled to match design language
   while remaining fully functional (validation, AJAX update_order_review,
   payment gateway iframes, the ship-to-different-address toggle, etc. are
   all untouched — see apc_checkout_wrapper_open() for why this is a
   scroll-spy over native sections rather than JS-paginated panels). */
.apc-checkout #customer_details,
.apc-checkout #order_review {
	max-width: 560px; margin: 0 auto 32px; border: 1px solid var(--apc-color-border);
	border-radius: 16px; padding: 26px; background: #fff;
}
.apc-checkout #customer_details { display: block; } /* override WC's col2-set float layout */
.apc-checkout #customer_details .col2-set,
.apc-checkout #customer_details .col-1,
.apc-checkout #customer_details .col-2 { width: 100%; float: none; }
.apc-checkout h3 { font-size: 17px; font-weight: 800; margin: 0 0 16px; }

.woocommerce-checkout .form-row label { font-size: 12.5px; font-weight: 700; color: var(--apc-color-text-muted); display: block; margin-bottom: 6px; }
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
	width: 100%; border: 1px solid var(--apc-color-border-strong); border-radius: 9px; padding: 13px 14px;
	font-size: 13.5px; outline: none; background: #fff;
}
.woocommerce-checkout .form-row textarea { min-height: 64px; }
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0; padding: 0; }
.woocommerce-checkout #payment ul.payment_methods li {
	border: 1.5px solid var(--apc-color-border-strong); border-radius: 10px; padding: 14px; margin-bottom: 10px;
}
.woocommerce-checkout #payment ul.payment_methods li.woocommerce-notice--info,
.woocommerce-checkout #payment ul.payment_methods > li:has(> input:checked) { border-color: var(--apc-color-primary); }
.woocommerce-checkout #payment div.payment_box { background: var(--apc-color-tint); border-radius: 8px; margin-top: 10px; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout .place-order .button,
.woocommerce-checkout #place_order {
	width: 100%; background: var(--apc-color-primary); color: #fff; border: none; border-radius: 10px;
	padding: 16px; font-weight: 800; font-size: 14.5px;
}
.woocommerce-checkout .woocommerce-error, .woocommerce-checkout .woocommerce-NoticeGroup-checkout .woocommerce-error {
	list-style: none; background: var(--apc-color-danger-bg); color: var(--apc-color-danger-strong);
	border-radius: 10px; padding: 14px 16px; margin: 0 0 16px;
}
.woocommerce-checkout .woocommerce-invalid input.input-text { border-color: var(--apc-color-danger); }
.apc-hasrx-notice { background: var(--apc-color-warning-bg); border-radius: 9px; padding: 10px 14px; font-size: 12.5px; color: var(--apc-color-warning-strong); margin: 12px 0; }

/* ---------- Order received / thank you ---------- */
.apc-confirmation { max-width: 560px; margin: 0 auto; padding: 60px 20px 80px; text-align: center; }
.apc-confirmation__icon {
	width: 76px; height: 76px; border-radius: 999px; background: var(--apc-color-success-bg); display: flex;
	align-items: center; justify-content: center; margin: 0 auto 22px;
}
.apc-confirmation__icon svg { stroke: var(--apc-color-success); }
.apc-confirmation__title { font-size: 24px; font-weight: 800; margin: 0 0 8px; }
.apc-confirmation__desc { font-size: 13.5px; color: var(--apc-color-text-muted); margin: 0 0 28px; }
.apc-confirmation__card { border: 1px solid var(--apc-color-border); border-radius: 14px; padding: 22px; text-align: left; margin-bottom: 26px; }
.apc-confirmation__row { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 10px; gap: 12px; }
.apc-confirmation__row span:first-child { color: var(--apc-color-text-muted); }
.apc-confirmation__row strong { text-align: right; }
.apc-confirmation__total { display: flex; justify-content: space-between; font-size: 15px; padding-top: 12px; border-top: 1px solid var(--apc-color-border); }
.apc-confirmation__total strong { color: var(--apc-color-primary); }
.apc-confirmation__ctas { display: flex; gap: 10px; }
.apc-confirmation__ctas > * { flex: 1; }
