/* ==========================================================================
   DORIC · Commerce — bag, checkout, account, order confirmation
   --------------------------------------------------------------------------
   WooCommerce renders every control on these pages and keeps all of its
   logic. This file only restyles its markup — the cart and checkout blocks
   and the classic account templates — in the DORIC palette: dark ground,
   hairlines, square edges, bronze for the primary action.
   ========================================================================== */

.d-commerce { padding-bottom: var(--d-s12); color: var(--d-text); }

/* ── Blocks: shared ─────────────────────────────────────────────────────── */

.d-commerce .wc-block-components-main,
.d-commerce .wc-block-components-sidebar { color: var(--d-text); }

.d-commerce .wc-block-components-product-name,
.d-commerce .wc-block-cart-item__product .wc-block-components-product-name {
	font-family: var(--d-font-display);
	font-size: 1.0625rem;
	letter-spacing: .04em;
	color: var(--d-text);
	text-decoration: none;
}

.d-commerce .wc-block-components-product-metadata,
.d-commerce .wc-block-components-product-details,
.d-commerce .wc-block-cart-items__header,
.d-commerce .wc-block-components-totals-item__description,
.d-commerce .wc-block-components-checkout-step__description { color: var(--d-text-muted); }

.d-commerce .wc-block-cart-items__header,
.d-commerce .wc-block-components-title,
.d-commerce .wc-block-components-checkout-step__title {
	font-family: var(--d-font-ui);
	font-size: var(--d-fs-label);
	font-weight: 500;
	letter-spacing: var(--d-ls-label);
	text-transform: uppercase;
}

.d-commerce .wc-block-components-checkout-step__title { font-size: var(--d-fs-small); color: var(--d-text); }

.d-commerce table.wc-block-cart-items,
.d-commerce .wc-block-cart-items td,
.d-commerce .wc-block-cart-items th,
.d-commerce .wc-block-components-totals-wrapper,
.d-commerce .wc-block-components-panel,
.d-commerce .wc-block-components-checkout-step,
.d-commerce .wc-block-components-order-summary-item { border-color: var(--d-border) !important; }

.d-commerce .wc-block-components-totals-item,
.d-commerce .wc-block-components-totals-footer-item { color: var(--d-text-2); }

.d-commerce .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.d-commerce .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: var(--d-font-display);
	font-size: 1.25rem;
	color: var(--d-text);
}

.d-commerce .wc-block-components-formatted-money-amount,
.d-commerce .wc-block-components-product-price { font-variant-numeric: tabular-nums; color: var(--d-text); }

.d-commerce .wc-block-cart__sidebar,
.d-commerce .wc-block-checkout__sidebar {
	padding: var(--d-s6);
	background: var(--d-surface-1);
	border: var(--d-hairline) solid var(--d-border);
}

/* Buttons */
.d-commerce .wc-block-components-button:not(.is-link),
.d-commerce .wc-block-cart__submit-button,
.d-commerce .wc-block-components-checkout-place-order-button {
	min-height: var(--d-btn-h);
	border-radius: var(--d-r-pill) !important;
	background: var(--d-accent) !important;
	border: var(--d-hairline) solid var(--d-accent) !important;
	border-radius: 0 !important;
	color: var(--d-on-accent) !important;
	font-family: var(--d-font-ui);
	font-size: var(--d-fs-label);
	font-weight: 500;
	letter-spacing: var(--d-ls-btn);
	text-transform: uppercase;
	box-shadow: none !important;
	transition: background-color var(--d-dur-fast) var(--d-ease-out);
}

.d-commerce .wc-block-components-button:not(.is-link):hover,
.d-commerce .wc-block-cart__submit-button:hover { background: var(--d-accent-hover) !important; border-color: var(--d-accent-hover) !important; }

.d-commerce .wc-block-components-button.is-link,
.d-commerce .wc-block-components-panel__button,
.d-commerce .wc-block-components-totals-coupon-link,
.d-commerce .wc-block-cart-item__remove-link { color: var(--d-text-2) !important; }

.d-commerce .wc-block-cart-item__remove-link:hover,
.d-commerce .wc-block-components-button.is-link:hover { color: var(--d-accent) !important; }

/* Fields */
.d-commerce .wc-block-components-text-input input,
.d-commerce .wc-block-components-text-input textarea,
.d-commerce .wc-block-components-combobox .components-combobox-control input,
.d-commerce .wc-block-components-select-input select,
.d-commerce .wc-blocks-components-select__select,
.d-commerce .wc-block-components-textarea {
	background-color: transparent !important;
	border: var(--d-hairline) solid var(--d-border-strong) !important;
	border-radius: 0 !important;
	color: var(--d-text) !important;
	box-shadow: none !important;
}

.d-commerce .wc-block-components-text-input input:focus,
.d-commerce .wc-block-components-select-input select:focus,
.d-commerce .wc-blocks-components-select__select:focus,
.d-commerce .wc-block-components-textarea:focus { border-color: var(--d-accent) !important; }

.d-commerce .wc-block-components-text-input label,
.d-commerce .wc-blocks-components-select__label,
.d-commerce .wc-block-components-combobox label { color: var(--d-text-muted) !important; }

.d-commerce .wc-blocks-components-select__container,
.d-commerce .wc-block-components-select-input { background: transparent !important; }
.d-commerce .wc-blocks-components-select__select option { background: var(--d-surface-2); color: var(--d-text); }
.d-commerce .wc-blocks-components-select__expand { fill: var(--d-accent); }

.d-commerce .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"],
.d-commerce .wc-block-components-radio-control__input {
	background: transparent !important;
	border: var(--d-hairline) solid var(--d-border-strong) !important;
	border-radius: 0 !important;
}

.d-commerce .wc-block-components-radio-control__input { border-radius: 50% !important; }
.d-commerce .wc-block-components-radio-control__input:checked::before { background: var(--d-accent) !important; }
.d-commerce .wc-block-components-checkbox__mark { fill: var(--d-accent) !important; }

.d-commerce .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option,
.d-commerce .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option { box-shadow: inset 0 0 0 1px var(--d-border-strong) !important; }

.d-commerce .wc-block-components-quantity-selector {
	border: var(--d-hairline) solid var(--d-border-strong) !important;
	border-radius: 0 !important;
}

.d-commerce .wc-block-components-quantity-selector::after { display: none !important; }

.d-commerce .wc-block-components-quantity-selector input,
.d-commerce .wc-block-components-quantity-selector button { color: var(--d-text) !important; background: transparent !important; }

/* Notices */
.d-commerce .wc-block-components-notice-banner {
	background: var(--d-surface-1) !important;
	border: var(--d-hairline) solid var(--d-border-strong) !important;
	border-left: 2px solid var(--d-accent) !important;
	border-radius: 0 !important;
	color: var(--d-text) !important;
}

.d-commerce .wc-block-components-notice-banner.is-error { border-left-color: var(--d-error) !important; }
.d-commerce .wc-block-components-notice-banner > svg { fill: var(--d-accent) !important; background: transparent !important; }

/* Thumbnails and skeletons */
.d-commerce .wc-block-cart-item__image img,
.d-commerce .wc-block-components-order-summary-item__image img { background: var(--d-ivory-dim); }

.d-commerce .wc-block-components-order-summary-item__quantity {
	background: var(--d-bg) !important;
	border-color: var(--d-border-strong) !important;
	color: var(--d-text) !important;
	box-shadow: none !important;
}

.d-commerce .wc-block-components-skeleton__element,
.d-commerce .wc-block-components-loading-mask { background-color: var(--d-surface-2) !important; }

/* Empty bag */
.d-commerce .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title {
	font-family: var(--d-font-display);
	font-size: var(--d-fs-h2);
	font-weight: 400;
	color: var(--d-text);
}

.d-commerce .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title::before { background-color: var(--d-accent) !important; }
.d-commerce .wp-block-separator { border-color: var(--d-border) !important; background: none; opacity: 1; }

.d-commerce .wp-block-heading { font-family: var(--d-font-display); font-weight: 400; color: var(--d-text); }

.d-commerce .wc-block-grid__products { gap: var(--d-s5); }
.d-commerce .wc-block-grid__product-title { font-family: var(--d-font-display); color: var(--d-text); }
.d-commerce .wc-block-grid__product-price { color: var(--d-text-2); }

/* Checkout block specifics */
.d-commerce .wc-block-checkout__terms,
.d-commerce .wc-block-components-checkout-return-to-cart-button { color: var(--d-text-2) !important; }

.d-commerce .wc-block-components-address-card { border-color: var(--d-border) !important; }

/* ── Classic account ────────────────────────────────────────────────────── */

.d-commerce .u-columns,
.d-commerce .col2-set { display: grid; gap: var(--d-s10); }

@media (min-width: 900px) {
	.d-commerce .u-columns,
	.d-commerce .col2-set { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.d-commerce .wc-block-components-checkout-step__title {
	font-family: var(--d-font-display);
	font-size: var(--d-fs-h3);
	font-weight: 400;
	letter-spacing: .06em;
	line-height: 1.3;
}

.d-commerce .u-column1 h2,
.d-commerce .u-column2 h2,
.d-commerce .woocommerce-column__title,
.d-commerce .woocommerce-order-details__title,
.d-commerce .woocommerce-customer-details h2 {
	margin-bottom: var(--d-s6);
	font-family: var(--d-font-display);
	font-size: var(--d-fs-h2);
	font-weight: 400;
}

.d-commerce .woocommerce-form-login,
.d-commerce .woocommerce-form-register,
.d-commerce .woocommerce-ResetPassword,
.d-commerce .woocommerce-EditAccountForm,
.d-commerce .woocommerce-address-fields {
	padding: var(--d-s7);
	background: var(--d-surface-1);
	border: var(--d-hairline) solid var(--d-border);
}

.d-commerce .woocommerce-form-login__rememberme,
.d-commerce .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: var(--d-s2);
	min-height: var(--d-tap);
	text-transform: none;
	letter-spacing: 0;
	font-size: var(--d-fs-small);
}

.d-commerce input[type="checkbox"] { accent-color: var(--d-accent); width: 16px; height: 16px; }
.d-commerce .lost_password a,
.d-commerce .woocommerce-privacy-policy-text a { color: var(--d-text-2); text-decoration: underline; text-underline-offset: 3px; }
.d-commerce .password-input { position: relative; display: block; }

.d-commerce .show-password-input {
	position: absolute;
	top: 0;
	right: 0;
	width: var(--d-tap);
	height: 100%;
	color: var(--d-text-muted);
}

.d-commerce .show-password-input::after { content: "◦"; font-size: 1.25rem; }

@media (min-width: 1024px) {
	.d-commerce .woocommerce:has(.woocommerce-MyAccount-navigation) {
		display: grid;
		grid-template-columns: 240px minmax(0, 1fr);
		gap: clamp(48px, 5vw, 96px);
		align-items: start;
	}
}

.d-commerce .woocommerce-MyAccount-navigation ul { display: grid; border-top: var(--d-hairline) solid var(--d-border); }
.d-commerce .woocommerce-MyAccount-navigation li { border-bottom: var(--d-hairline) solid var(--d-border); }

.d-commerce .woocommerce-MyAccount-navigation a {
	display: flex;
	align-items: center;
	min-height: 48px;
	font-size: var(--d-fs-label);
	font-weight: 500;
	letter-spacing: var(--d-ls-label);
	text-transform: uppercase;
	color: var(--d-text-muted);
	transition: color var(--d-dur-fast) var(--d-ease-out);
}

.d-commerce .woocommerce-MyAccount-navigation a:hover,
.d-commerce .woocommerce-MyAccount-navigation .is-active a { color: var(--d-text); }
.d-commerce .woocommerce-MyAccount-navigation .is-active a { box-shadow: inset 2px 0 0 var(--d-accent); padding-left: var(--d-s4); }

@media (max-width: 1023px) {
	.d-commerce .woocommerce-MyAccount-navigation { margin-bottom: var(--d-s8); }
}

.d-commerce .woocommerce-MyAccount-content > p { color: var(--d-text-2); line-height: 1.8; }
.d-commerce .woocommerce-MyAccount-content a:not(.button) { color: var(--d-accent); }

.d-commerce table.shop_table,
.d-commerce table.woocommerce-orders-table,
.d-commerce table.woocommerce-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--d-fs-small);
}

.d-commerce table.shop_table th,
.d-commerce table.shop_table td {
	padding: var(--d-s4) var(--d-s3);
	border-bottom: var(--d-hairline) solid var(--d-border);
	text-align: left;
	color: var(--d-text-2);
}

.d-commerce table.shop_table thead th {
	font-size: var(--d-fs-micro);
	font-weight: 500;
	letter-spacing: var(--d-ls-label);
	text-transform: uppercase;
	color: var(--d-text-muted);
}

.d-commerce .woocommerce-Addresses .woocommerce-Address,
.d-commerce .woocommerce-customer-details address {
	padding: var(--d-s6);
	border: var(--d-hairline) solid var(--d-border);
	font-style: normal;
	line-height: 1.8;
	color: var(--d-text-2);
}

.d-commerce .woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: var(--d-s4); margin-bottom: var(--d-s4); }
.d-commerce .woocommerce-Address-title h2 { font-size: var(--d-fs-h3); margin: 0; }

/* ── Order received ─────────────────────────────────────────────────────── */

.d-commerce .woocommerce-thankyou-order-received,
.d-commerce .wc-block-order-confirmation-status {
	font-family: var(--d-font-display);
	font-size: var(--d-fs-h2);
	line-height: 1.3;
	color: var(--d-text);
	margin-bottom: var(--d-s8);
}

.d-commerce .woocommerce-order-overview,
.d-commerce .wc-block-order-confirmation-summary-list {
	display: grid;
	gap: var(--d-s5);
	margin-bottom: var(--d-s10);
	padding-block: var(--d-s6);
	border-block: var(--d-hairline) solid var(--d-border);
	list-style: none;
}

@media (min-width: 768px) {
	.d-commerce .woocommerce-order-overview,
	.d-commerce .wc-block-order-confirmation-summary-list { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
}

.d-commerce .woocommerce-order-overview li {
	font-size: var(--d-fs-micro);
	font-weight: 500;
	letter-spacing: var(--d-ls-label);
	text-transform: uppercase;
	color: var(--d-text-muted);
}

.d-commerce .woocommerce-order-overview li strong {
	display: block;
	margin-top: var(--d-s2);
	font-family: var(--d-font-display);
	font-size: 1.125rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--d-text);
}
