/* ==========================================================================
   Pashiz Shop Style — Cart + Login
   Loaded only on the Cart page and the logged-out My Account page
   (login / register / lost password). Same tokens as the homepage plugin.
   Built for Blocksy's cart layout (.ct-woocommerce-cart-form grid).
   ========================================================================== */

body.pz-cart-page,
body.pz-login-page {
	--pz-gold: #c5a059;
	--pz-gold-dark: #b08d46;
	--pz-gold-ink: #8a6a2e;
	--pz-dark-1: #0d0d0d;
	--pz-dark-2: #171717;
	--pz-heading: #111111;
	--pz-body: #444444;
	--pz-soft: #666666;
	--pz-meta: #767676;
	--pz-card: #fafafa;
	--pz-border: #eaeaea;
	--pz-border-strong: #d6d6d6;
	--pz-radius: 8px;
	--pz-btn-radius: 4px;
	--pz-shadow-sm: 0 2px 8px rgba(17, 17, 17, 0.06);
	--pz-shadow-md: 0 10px 30px rgba(17, 17, 17, 0.08);
	--pz-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* ---- Shared: buttons + inputs ------------------------------------------- */

:is(body.pz-cart-page, body.pz-login-page) :is(#main, .site-main) :is(.button, button.button, a.button, input[type="submit"]) {
	font-family: var(--pz-font);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-size: 0.78rem;
	font-weight: 700;
	min-height: 46px;
	padding: 0 22px;
	border-radius: var(--pz-btn-radius);
	border: 2px solid transparent;
	background: var(--pz-heading);
	color: #fff;
	box-shadow: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

:is(body.pz-cart-page, body.pz-login-page) :is(#main, .site-main) :is(.button, button.button, a.button, input[type="submit"]):hover {
	background: var(--pz-gold-dark);
	color: #fff;
}

/* Gold for the main action on each page */
body.pz-cart-page.pz-cart-page :is(#main, .site-main) .checkout-button,
body.pz-login-page.pz-login-page :is(#main, .site-main) :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit, .woocommerce-ResetPassword .button) {
	background: var(--pz-gold);
	color: #171717;
	min-height: 54px;
	font-size: 0.85rem;
	width: 100%;
}

body.pz-cart-page.pz-cart-page :is(#main, .site-main) .checkout-button:hover,
body.pz-login-page.pz-login-page :is(#main, .site-main) :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit, .woocommerce-ResetPassword .button):hover {
	background: var(--pz-gold-dark);
	color: #fff;
}

:is(body.pz-cart-page, body.pz-login-page) :is(#main, .site-main) :is(input.input-text, input[type="text"], input[type="email"], input[type="password"], select) {
	font-family: var(--pz-font);
	font-size: 15px;
	min-height: 48px;
	padding: 0 14px;
	color: var(--pz-heading);
	background: #fff;
	border: 1px solid var(--pz-border-strong);
	border-radius: var(--pz-btn-radius);
	box-shadow: none;
}

:is(body.pz-cart-page, body.pz-login-page) :is(#main, .site-main) :is(input.input-text, input[type="text"], input[type="email"], input[type="password"], select):focus {
	border-color: var(--pz-gold-dark);
	box-shadow: 0 0 0 3px rgba(197, 160, 89, 0.22);
	outline: none;
}

.pz-eyebrow {
	display: inline-block;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--pz-gold-ink);
}

/* ==========================================================================
   CART
   ========================================================================== */

body.pz-cart-page :is(#main, .site-main) .ct-woocommerce-cart-form {
	gap: 20px 32px;
	align-items: start;
}

/* Page intro (added by the plugin above the cart) */
.pz-cart-intro,
.pz-cart-note {
	grid-column: 1 / -1; /* full width if Blocksy's cart grid wraps it */
}

.pz-cart-intro {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px;
	flex-wrap: wrap;
	margin: 0 0 22px;
}

.pz-cart-intro h1 {
	margin: 4px 0 0;
	font-size: clamp(1.8rem, 3.5vw, 2.5rem);
	line-height: 1.15;
	color: var(--pz-heading);
}

.pz-cart-intro a {
	font-weight: 700;
	font-size: 14px;
	color: var(--pz-heading);
	text-decoration: none;
}

.pz-cart-intro a:hover {
	color: var(--pz-gold-ink);
}

.pz-cart-note {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 18px;
	padding: 14px 18px;
	background: var(--pz-card);
	border: 1px solid var(--pz-border);
	border-radius: var(--pz-radius);
	font-size: 14px;
	color: var(--pz-body);
}

.pz-cart-note svg {
	color: var(--pz-gold-dark);
	flex: none;
}

/* Items table → one clean card */
body.pz-cart-page :is(#main, .site-main) table.shop_table.cart {
	width: 100%;
	background: #fff;
	border: 1px solid var(--pz-border);
	border-radius: var(--pz-radius);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	margin: 0;
}

body.pz-cart-page :is(#main, .site-main) table.shop_table.cart thead th {
	background: var(--pz-card);
	border-bottom: 1px solid var(--pz-border);
	padding: 14px 18px;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 1.3px;
	text-transform: uppercase;
	color: var(--pz-soft);
	text-align: left;
}

body.pz-cart-page :is(#main, .site-main) table.shop_table.cart td {
	padding: 20px 18px;
	border-top: 1px solid var(--pz-border);
	vertical-align: middle;
	background: transparent;
}

body.pz-cart-page :is(#main, .site-main) table.shop_table.cart tbody tr:first-child td {
	border-top: 0;
}

body.pz-cart-page :is(#main, .site-main) table.shop_table.cart td.product-thumbnail {
	width: 120px;
}

body.pz-cart-page :is(#main, .site-main) td.product-thumbnail .ct-media-container,
body.pz-cart-page :is(#main, .site-main) td.product-thumbnail a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 110px;
	height: 80px;
	background: #fff;
	border-radius: 6px;
}

body.pz-cart-page :is(#main, .site-main) td.product-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	aspect-ratio: auto;
	border-radius: 0;
}

body.pz-cart-page :is(#main, .site-main) td.product-name > a {
	display: block;
	color: var(--pz-heading);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.4;
	text-decoration: none;
}

body.pz-cart-page :is(#main, .site-main) td.product-name > a:hover {
	color: var(--pz-gold-ink);
}

body.pz-cart-page :is(#main, .site-main) td.product-name .price {
	margin-top: 6px;
	color: var(--pz-gold-ink);
	font-weight: 700;
	font-size: 14px;
}

body.pz-cart-page :is(#main, .site-main) td.product-subtotal {
	font-weight: 700;
	color: var(--pz-heading);
	font-size: 16px;
	white-space: nowrap;
}

/* Coins are one-of-a-kind: hide the quantity column when every item is a single */
body.pz-cart-page :is(#main, .site-main) table.cart:not(:has(.quantity input:not([max="1"]))) :is(th.product-quantity, td.product-quantity) {
	display: none;
}

body.pz-cart-page :is(#main, .site-main) .quantity[data-type] {
	border-radius: var(--pz-btn-radius);
	border-color: var(--pz-border-strong);
}

/* Remove (×) */
body.pz-cart-page :is(#main, .site-main) a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid var(--pz-border-strong);
	color: var(--pz-meta) !important;
	background: #fff !important;
	transition: all 0.2s ease;
}

body.pz-cart-page :is(#main, .site-main) a.remove:hover {
	background: var(--pz-heading) !important;
	border-color: var(--pz-heading);
	color: #fff !important;
}

body.pz-cart-page :is(#main, .site-main) a.remove svg {
	width: 12px;
	height: 12px;
	fill: currentColor;
}

/* Coupon + update row */
body.pz-cart-page :is(#main, .site-main) td.actions {
	background: var(--pz-card) !important;
	padding: 16px 18px !important;
}

body.pz-cart-page :is(#main, .site-main) td.actions .coupon {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
}

body.pz-cart-page :is(#main, .site-main) td.actions .coupon .input-text {
	width: 200px;
	min-height: 44px;
}

body.pz-cart-page.pz-cart-page :is(#main, .site-main) td.actions :is(button[name="apply_coupon"], button[name="update_cart"]) {
	background: transparent;
	color: var(--pz-heading);
	border-color: var(--pz-heading);
	min-height: 44px;
}

body.pz-cart-page.pz-cart-page :is(#main, .site-main) td.actions :is(button[name="apply_coupon"], button[name="update_cart"]):hover {
	background: var(--pz-heading);
	color: #fff;
}

body.pz-cart-page.pz-cart-page :is(#main, .site-main) td.actions button[name="update_cart"]:disabled {
	opacity: 0.35;
	background: transparent;
	color: var(--pz-heading);
}

/* Totals → summary card */
body.pz-cart-page :is(#main, .site-main) .cart_totals {
	background: #fff;
	border: 1px solid var(--pz-border);
	border-radius: var(--pz-radius);
	box-shadow: var(--pz-shadow-md);
	padding: 26px 26px 22px;
	position: sticky;
	top: 110px;
}

body.pz-cart-page :is(#main, .site-main) .cart_totals > h2 {
	margin: 0 0 14px;
	font-size: 0.78rem;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--pz-heading);
}

body.pz-cart-page :is(#main, .site-main) .cart_totals table.shop_table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
	margin: 0;
}

body.pz-cart-page :is(#main, .site-main) .cart_totals :is(th, td) {
	border: 0;
	border-top: 1px solid var(--pz-border);
	padding: 14px 0;
	background: transparent;
	font-size: 15px;
	vertical-align: top;
}

body.pz-cart-page :is(#main, .site-main) .cart_totals tr:first-child :is(th, td) {
	border-top: 0;
}

body.pz-cart-page :is(#main, .site-main) .cart_totals th {
	font-weight: 600;
	color: var(--pz-body);
	text-align: left;
}

body.pz-cart-page :is(#main, .site-main) .cart_totals td {
	text-align: right;
	color: var(--pz-heading);
}

/* Shipping options as tidy selectable rows */
body.pz-cart-page :is(#main, .site-main) .ct-shipping-heading {
	font-weight: 600;
	color: var(--pz-body);
	margin-bottom: 10px;
	text-align: left;
}

body.pz-cart-page :is(#main, .site-main) #shipping_method {
	list-style: none;
	margin: 0 0 10px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-align: left;
}

body.pz-cart-page :is(#main, .site-main) #shipping_method li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	padding: 12px 14px;
	border: 1.5px solid var(--pz-border-strong);
	border-radius: var(--pz-btn-radius);
	background: #fff;
	font-size: 14px;
	line-height: 1.45;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

body.pz-cart-page :is(#main, .site-main) #shipping_method li:has(input:checked) {
	border-color: var(--pz-heading);
	background: var(--pz-card);
}

body.pz-cart-page :is(#main, .site-main) #shipping_method li input {
	margin-top: 3px;
	accent-color: var(--pz-heading);
	flex: none;
}

body.pz-cart-page :is(#main, .site-main) #shipping_method li label {
	color: var(--pz-heading);
	cursor: pointer;
	margin: 0;
}

body.pz-cart-page :is(#main, .site-main) .woocommerce-shipping-destination,
body.pz-cart-page :is(#main, .site-main) .shipping-calculator-button {
	font-size: 13px;
	color: var(--pz-soft);
	text-align: left;
}

body.pz-cart-page :is(#main, .site-main) .shipping-calculator-button {
	display: inline-block;
	margin-top: 4px;
	font-weight: 700;
	color: var(--pz-gold-ink);
}

body.pz-cart-page :is(#main, .site-main) .cart_totals .order-total :is(th, td) {
	border-top: 1px solid var(--pz-heading);
	padding-top: 18px;
	vertical-align: baseline;
}

body.pz-cart-page :is(#main, .site-main) .cart_totals .order-total th {
	color: var(--pz-heading);
	font-weight: 700;
}

body.pz-cart-page :is(#main, .site-main) .cart_totals .order-total .amount {
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--pz-heading);
}

body.pz-cart-page :is(#main, .site-main) .wc-proceed-to-checkout {
	padding: 8px 0 0;
}

body.pz-cart-page :is(#main, .site-main) .wc-proceed-to-checkout .checkout-button {
	margin: 0;
}

/* Trust list under the checkout button (added by the plugin) */
.pz-cart-trust {
	list-style: none;
	margin: 16px 0 0;
	padding: 14px 0 0;
	border-top: 1px solid var(--pz-border);
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 13px;
	color: var(--pz-body);
}

.pz-cart-trust li {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
}

.pz-cart-trust svg {
	color: var(--pz-gold-dark);
	flex: none;
}

.pz-cart-pay {
	margin: 12px 0 0;
	font-size: 12px;
	color: var(--pz-meta);
	text-align: center;
}

/* Empty cart */
body.pz-cart-page :is(#main, .site-main) .wc-empty-cart-message,
body.pz-cart-page :is(#main, .site-main) .cart-empty {
	text-align: center;
}

body.pz-cart-page :is(#main, .site-main) .cart-empty.woocommerce-info {
	background: var(--pz-card);
	border: 1px solid var(--pz-border);
	border-radius: var(--pz-radius);
	padding: 48px 20px 20px;
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--pz-heading);
	box-shadow: none;
}

body.pz-cart-page :is(#main, .site-main) .cart-empty.woocommerce-info::before {
	display: none;
}

body.pz-cart-page :is(#main, .site-main) .return-to-shop {
	text-align: center;
	margin-top: -6px;
	padding-bottom: 40px;
	background: var(--pz-card);
	border: 1px solid var(--pz-border);
	border-top: 0;
	border-radius: 0 0 var(--pz-radius) var(--pz-radius);
}

/* ==========================================================================
   LOGIN / REGISTER / LOST PASSWORD (logged-out My Account)
   ========================================================================== */

.pz-login-head {
	text-align: center;
	max-width: 560px;
	margin: 0 auto 28px;
}

.pz-login-head h1 {
	margin: 6px 0 8px;
	font-size: clamp(1.8rem, 3.5vw, 2.4rem);
	line-height: 1.15;
	color: var(--pz-heading);
}

.pz-login-head p {
	margin: 0;
	color: var(--pz-soft);
	font-size: 15px;
}

body.pz-login-page :is(#main, .site-main) .woocommerce {
	max-width: 980px;
	margin-left: auto;
	margin-right: auto;
}

/* Two columns (login + register) */
body.pz-login-page :is(#main, .site-main) #customer_login {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 24px;
	margin: 0;
}

body.pz-login-page :is(#main, .site-main) #customer_login::before,
body.pz-login-page :is(#main, .site-main) #customer_login::after {
	display: none;
}

body.pz-login-page :is(#main, .site-main) #customer_login > div {
	float: none;
	width: auto;
	max-width: none;
	margin: 0;
	padding: 32px;
	background: #fff;
	border: 1px solid var(--pz-border);
	border-radius: var(--pz-radius);
	box-shadow: var(--pz-shadow-sm);
}

body.pz-login-page :is(#main, .site-main) #customer_login > .u-column2 {
	background: var(--pz-card);
	box-shadow: none;
}

/* Single login form (registration off) and lost-password form */
body.pz-login-page :is(#main, .site-main) .woocommerce > form.woocommerce-form-login,
body.pz-login-page :is(#main, .site-main) .woocommerce > form.woocommerce-ResetPassword {
	max-width: 440px;
	margin: 0 auto;
	padding: 32px;
	background: #fff;
	border: 1px solid var(--pz-border);
	border-radius: var(--pz-radius);
	box-shadow: var(--pz-shadow-sm);
}

body.pz-login-page :is(#main, .site-main) #customer_login h2,
body.pz-login-page :is(#main, .site-main) .woocommerce > h2 {
	margin: 0 0 18px;
	font-size: 1.35rem;
	color: var(--pz-heading);
}

body.pz-login-page :is(#main, .site-main) form.woocommerce-form-login,
body.pz-login-page :is(#main, .site-main) form.woocommerce-form-register {
	border: 0;
	padding: 0;
	margin: 0;
}

body.pz-login-page :is(#main, .site-main) .woocommerce > form.woocommerce-form-login {
	padding: 32px;
	border: 1px solid var(--pz-border);
}

body.pz-login-page :is(#main, .site-main) .form-row {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 0 16px;
	padding: 0;
	float: none;
	width: 100%;
}

body.pz-login-page :is(#main, .site-main) .form-row label {
	font-size: 0.82rem;
	font-weight: 700;
	color: var(--pz-heading);
	line-height: 1.3;
}

body.pz-login-page :is(#main, .site-main) .form-row .required {
	color: var(--pz-gold-ink);
	text-decoration: none;
}

body.pz-login-page :is(#main, .site-main) .form-row input.input-text {
	width: 100%;
	box-sizing: border-box;
}

body.pz-login-page :is(#main, .site-main) .password-input {
	display: block;
	position: relative;
	width: 100%;
}

body.pz-login-page :is(#main, .site-main) .show-password-input {
	top: 50%;
	transform: translateY(-50%);
	right: 12px;
}

/* "Remember me" + submit */
body.pz-login-page :is(#main, .site-main) .woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) {
	gap: 14px;
}

body.pz-login-page :is(#main, .site-main) .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 600 !important;
	font-size: 14px !important;
	color: var(--pz-body) !important;
	order: 2;
}

body.pz-login-page :is(#main, .site-main) .woocommerce-form-login__rememberme input {
	width: 18px;
	height: 18px;
	accent-color: var(--pz-heading);
	margin: 0;
}

body.pz-login-page :is(#main, .site-main) .woocommerce-form-login__submit {
	order: 1;
	margin: 4px 0 0;
}

body.pz-login-page :is(#main, .site-main) .lost_password {
	margin: 4px 0 0;
	font-size: 14px;
	text-align: center;
}

body.pz-login-page :is(#main, .site-main) .lost_password a,
body.pz-login-page :is(#main, .site-main) .woocommerce-privacy-policy-text a {
	color: var(--pz-gold-ink);
	font-weight: 700;
	text-decoration: none;
}

body.pz-login-page :is(#main, .site-main) .woocommerce-privacy-policy-text {
	font-size: 13px;
	color: var(--pz-soft);
	line-height: 1.55;
}

body.pz-login-page :is(#main, .site-main) .woocommerce-form-register > p:not(.form-row) {
	font-size: 14px;
	color: var(--pz-soft);
}

/* Why create an account (added by the plugin) */
.pz-login-perks {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 14px;
	max-width: 980px;
	margin: 28px auto 0;
	padding: 0;
	list-style: none;
}

.pz-login-perks li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 0;
	padding: 16px 18px;
	background: var(--pz-card);
	border: 1px solid var(--pz-border);
	border-radius: var(--pz-radius);
	font-size: 13px;
	line-height: 1.45;
	color: var(--pz-soft);
}

.pz-login-perks svg {
	color: var(--pz-gold-dark);
	flex: none;
	margin-top: 1px;
}

.pz-login-perks strong {
	display: block;
	color: var(--pz-heading);
	font-size: 14px;
	margin-bottom: 2px;
}

/* Notices on these pages */
:is(body.pz-cart-page, body.pz-login-page) :is(#main, .site-main) :is(.woocommerce-error, .woocommerce-message, .woocommerce-info):not(.cart-empty) {
	border: 1px solid var(--pz-border);
	border-radius: var(--pz-radius);
	background: var(--pz-card);
	color: var(--pz-heading);
	box-shadow: none;
}

:is(body.pz-cart-page, body.pz-login-page) :is(#main, .site-main) .woocommerce-error {
	background: #f8e9e7;
	border-color: #ecccc8;
}

:is(body.pz-cart-page, body.pz-login-page) :is(#main, .site-main) .woocommerce-message {
	background: #e6f0ea;
	border-color: #cfe1d6;
}

/* ---- Small screens -------------------------------------------------------- */

@media (max-width: 999px) {
	body.pz-cart-page :is(#main, .site-main) .cart_totals {
		position: static;
	}
}

@media (max-width: 689px) {
	body.pz-cart-page :is(#main, .site-main) table.shop_table.cart td {
		padding: 14px 12px;
	}

	body.pz-cart-page :is(#main, .site-main) table.shop_table.cart td.product-thumbnail {
		width: 86px;
	}

	body.pz-cart-page :is(#main, .site-main) td.product-thumbnail .ct-media-container,
	body.pz-cart-page :is(#main, .site-main) td.product-thumbnail a {
		width: 76px;
		height: 60px;
	}

	body.pz-cart-page :is(#main, .site-main) td.actions .coupon .input-text {
		width: 100%;
		flex: 1 1 160px;
	}

	body.pz-login-page :is(#main, .site-main) #customer_login > div,
	body.pz-login-page :is(#main, .site-main) .woocommerce > form.woocommerce-form-login,
	body.pz-login-page :is(#main, .site-main) .woocommerce > form.woocommerce-ResetPassword {
		padding: 22px;
	}
}

/* Optional page headings (Settings > Pashiz Shop Style) */
body.pz-hide-heads .pz-cart-intro,
body.pz-hide-heads .pz-login-head {
	display: none;
}
