/*
 * WooCommerce: block checkout and cart, order received, My account (classic shortcode), notices.
 */

/* ---------- block checkout / cart: fields ---------- */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-textarea {
	border-radius: var(--sgc-radius-field) !important;
	border: 1.5px solid var(--sgc-line) !important;
	background-color: var(--sgc-surface) !important;
	color: var(--sgc-ink) !important;
	box-shadow: none !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus,
.wc-block-components-textarea:focus {
	border-color: var(--sgc-brand) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--sgc-brand) 45%, transparent) !important;
}
/* Woo's floating labels sit inside the field: keep them in sentence case. */
.wc-block-components-text-input label,
.wc-block-components-combobox .wc-block-components-combobox-control label,
.wc-blocks-components-select__label {
	font-size: .875rem !important;
	font-weight: 500 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	color: var(--sgc-muted) !important;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-combobox.is-active label { font-size: .72rem !important; }

/* Step headings ("Contact information", "Payment options"). */
.wc-block-components-checkout-step__title,
.wc-block-components-title.wc-block-components-title {
	font-family: var(--sgc-font-display) !important;
	font-weight: 700 !important;
	font-size: 1.2rem !important;
	color: var(--sgc-heading) !important;
}
.wc-block-components-checkout-step__description,
.wc-block-checkout__guest-checkout-notice { color: var(--sgc-muted); font-size: .875rem; }

/* Payment methods as option cards (prototype .opt). */
.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option {
	border: 1.5px solid var(--sgc-line) !important;
	border-radius: 14px !important;
	background: var(--sgc-surface);
	box-shadow: none !important;
}
.wc-block-components-radio-control-accordion-option + .wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option + .wc-block-components-radio-control__option { margin-top: 10px; }
.wc-block-components-radio-control__option-checked,
.wc-block-components-radio-control-accordion-option:has(input:checked) {
	border-color: var(--sgc-brand) !important;
	background: var(--sgc-accent-soft);
}
.wc-block-components-radio-control__input { accent-color: var(--sgc-brand); }
.wc-block-components-radio-control__input:checked { border-color: var(--sgc-brand) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--sgc-brand) !important; }

/* Checkboxes (terms, create account). */
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	border-radius: 4px;
	border-color: var(--sgc-brand);
	background: var(--sgc-surface);
}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--sgc-brand); border-color: var(--sgc-brand); }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--sgc-on-brand); }
.wc-block-components-checkbox label { font-size: .9rem; text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--sgc-ink); }

/* Place order: full-width primary button. */
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wc-block-components-button:not(.is-link) {
	border-radius: var(--sgc-radius-btn) !important;
	background: var(--sgc-brand) !important;
	color: var(--sgc-on-brand) !important;
	font-weight: 700 !important;
	font-size: .78rem !important;
	text-transform: uppercase;
	letter-spacing: .05em;
	min-height: 48px;
	box-shadow: var(--sgc-btn-shadow);
}
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-button:not(.is-link):hover { background: var(--sgc-brand-hover) !important; }
.wc-block-components-checkout-return-to-cart-button { color: var(--sgc-heading); }

/* Order summary: a cream-light card. */
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block,
.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block {
	background: var(--sgc-surface);
	border: 1px solid var(--sgc-line) !important;
	border-radius: var(--sgc-radius-card);
	box-shadow: var(--sgc-card-shadow);
	overflow: hidden;
}
.wc-block-components-totals-wrapper { border-color: var(--sgc-line) !important; }
.wc-block-components-order-summary-item__description,
.wc-block-components-product-metadata { color: var(--sgc-muted); font-size: .82rem; }
.wc-block-components-order-summary-item__individual-prices { display: none; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-order-summary-item__total-price {
	font-family: var(--sgc-font-display);
	font-weight: 800;
	color: var(--sgc-heading);
}
/* Courses and passes have no product photos; drop Woo's grey placeholder. */
.wc-block-components-order-summary-item__image:has(img[src*="woocommerce-placeholder"]),
.wc-block-cart-item__image:has(img[src*="woocommerce-placeholder"]) { display: none; }
.wc-block-components-order-summary-item:has(.wc-block-components-order-summary-item__image img[src*="woocommerce-placeholder"]) .wc-block-components-order-summary-item__description { padding-left: 0; }

/* Notices. */
.wc-block-components-notice-banner,
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border-radius: 14px !important;
	border: 0 !important;
	background: var(--sgc-surface-2) !important;
	color: var(--sgc-ink) !important;
}
.wc-block-components-notice-banner.is-error, .woocommerce-error { background: var(--sgc-warn-soft) !important; color: var(--sgc-warn) !important; }
.wc-block-components-notice-banner.is-success { background: var(--sgc-ok-soft) !important; color: var(--sgc-ok-ink) !important; }
.wc-block-components-notice-banner > svg { fill: currentColor; background: transparent !important; }

/* ---------- order received ---------- */
.woocommerce-order-overview, .wc-block-order-confirmation-summary-list {
	background: var(--sgc-surface);
	border: 1px solid var(--sgc-line);
	border-radius: var(--sgc-radius-card);
	padding: 18px 22px;
}

/* ---------- My account (classic shortcode) ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 6px;
	border: 1px solid var(--sgc-line);
	border-radius: 18px;
	background: var(--sgc-surface);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 10px 14px;
	border-radius: 12px;
	color: var(--sgc-muted);
	font-weight: 600;
	font-size: .92rem;
	text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--sgc-surface-2);
	color: var(--sgc-heading);
}
.woocommerce-account .woocommerce-MyAccount-content { color: var(--sgc-ink); }
.woocommerce table.shop_table,
.woocommerce-account table.woocommerce-orders-table {
	border: 1px solid var(--sgc-line);
	border-radius: 18px;
	border-collapse: separate;
	overflow: hidden;
	background: var(--sgc-surface);
}
.woocommerce table.shop_table th { color: var(--sgc-heading); font-weight: 700; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-color: var(--sgc-line); }

/* Classic login/register forms (fallback if /my-account is reached logged out). */
.woocommerce form.login, .woocommerce form.register, .woocommerce-ResetPassword {
	background: var(--sgc-surface);
	border: 1px solid var(--sgc-line) !important;
	border-radius: var(--sgc-radius-card) !important;
	padding: 26px !important;
	box-shadow: var(--sgc-card-shadow);
}
.woocommerce form .form-row label { font-weight: 700; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--sgc-heading); }
.woocommerce form .form-row .input-text { border-radius: var(--sgc-radius-field); }
.woocommerce .woocommerce-form-login__rememberme { text-transform: none; letter-spacing: 0; font-size: .9rem; font-weight: 400; color: var(--sgc-ink); }

/* Prices. */
.woocommerce .price, .woocommerce-Price-amount { color: var(--sgc-heading); }

.wc-block-checkout :focus-visible, .woocommerce :focus-visible { outline: 3px solid var(--sgc-brand); outline-offset: 2px; }

/* My account tabs above the content: a row of pills, scrollable on phones. */
.kadence-account-nav-above .woocommerce-MyAccount-navigation ul {
	display: flex;
	gap: 4px;
	overflow-x: auto;
	scrollbar-width: none;
	margin-bottom: 28px;
}
.kadence-account-nav-above .woocommerce-MyAccount-navigation li { flex-shrink: 0; border: 0 !important; }
.kadence-account-nav-above .woocommerce-MyAccount-navigation li a { white-space: nowrap; border-left: 0 !important; }
.kadence-account-nav-above .account-navigation-wrap .kadence-customer-image,
.kadence-account-nav-above .account-navigation-wrap .kadence-customer-name { display: none; }

/* ---------- classic checkout (virtual carts: name and email only) ---------- */
.woocommerce-checkout .woocommerce { max-width: 920px; }
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: 1fr 320px; gap: 40px; align-items: start; }
.woocommerce-checkout form.checkout > .col2-set { grid-column: 1; width: 100% !important; float: none !important; margin: 0; }
.woocommerce-checkout form.checkout > #order_review { width: 100% !important; float: none !important; margin: 0; }
.woocommerce-checkout form.checkout .col2-set .col-1,
.woocommerce-checkout form.checkout .col2-set .col-2 { float: none; width: 100%; }
.woocommerce-checkout #order_review_heading { display: none; }
.woocommerce-checkout #order_review {
	grid-column: 2; grid-row: 1 / span 2;
	background: var(--sgc-surface); border: 1px solid var(--sgc-line);
	border-radius: var(--sgc-radius-card); padding: 22px; box-shadow: var(--sgc-card-shadow);
}
@media (max-width: 860px) {
	.woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
	.woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; }
}
.woocommerce-checkout h3 { font-size: 1.2rem; }
.woocommerce form .form-row .description { font-size: .82rem; color: var(--sgc-muted); padding: 4px 0 0; background: none; }
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { border: 0; padding: 0; }
.woocommerce-checkout #payment ul.payment_methods li {
	border: 1.5px solid var(--sgc-brand); border-radius: 14px; background: var(--sgc-accent-soft); padding: 14px 16px; list-style: none;
}
.woocommerce-checkout #payment div.payment_box { background: transparent; color: var(--sgc-muted); padding: 6px 0 0; margin: 0; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .place-order { padding: 16px 0 0; }
.woocommerce-checkout #place_order { width: 100%; float: none; }
.woocommerce-checkout .shop_table { border: 0 !important; background: transparent !important; }

/* ---------- order received: "You're in" ---------- */
.sgc-thanks { max-width: 640px; margin: 0 0 32px; }
.sgc-thanks__title { font-size: 3rem; margin: 0 0 10px; }
.sgc-thanks__actions { display: flex; gap: 10px; flex-wrap: wrap; margin: 18px 0 0; }
.sgc-gate__icon.is-ok { background: var(--sgc-ok-soft); color: var(--sgc-ok-ink); }

/* Sign-in prompt above the checkout form (sgc-core). */
.sgc-checkout-signin { margin-bottom: 20px; }
/* Woo's clearfix pseudo-elements would become grid cells. */
.woocommerce-checkout form.checkout::before,
.woocommerce-checkout form.checkout::after { display: none !important; }
.sgc-thanks > * { margin-top: 0; }
.sgc-thanks .sgc-gate__icon { margin-bottom: 14px; }

/* ---------- My account dashboard (sgc-core/includes/account.php) ---------- */
.woocommerce-account .woocommerce-MyAccount-content:has(.sgc-account) { width: 100%; float: none; }
.woocommerce-account.logged-in .entry-header { margin-bottom: 6px; }
.woocommerce-account .entry-content:has(.sgc-account__email) { margin-top: 0; }
.sgc-account__email { margin: 0 0 24px; }
.kadence-account-nav-above .account-navigation-wrap { margin: 0; padding: 0; }
.sgc-account .sgc-rows { padding-left: 0; margin-left: 0; }
.sgc-dash { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 860px) { .sgc-dash { grid-template-columns: 1fr; } }
.sgc-panel { padding: 22px; display: flex; flex-direction: column; }
.sgc-panel--wide { grid-column: 1 / -1; }
.sgc-panel h2 { font-size: 1.25rem; margin: 0; }
.sgc-panel__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.sgc-panel__count { font-size: 2.2rem; }
.sgc-panel > p { margin: 8px 0 14px; }
.sgc-panel__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.sgc-panel__foot { margin: 14px 0 0 !important; }
.sgc-rows { list-style: none; margin: 8px 0 0; padding: 0; }
.sgc-row { display: flex; justify-content: space-between; gap: 14px; align-items: center; padding: 12px 0; border-top: 1px solid var(--sgc-line); }
.sgc-rows .sgc-row:first-child, .sgc-panel > .sgc-row { border-top: 0; }
.sgc-row__main { flex: 1; min-width: 0; display: grid; gap: 6px; }
.sgc-row .sgc-btn { flex-shrink: 0; }

/* Sign out sits at the end of the tab row. */
.kadence-account-nav-above .woocommerce-MyAccount-navigation-link--customer-logout { margin-left: auto; }

/* WooCommerce's red required asterisk and grey fieldset: palette colours (merlot is 9.5:1 on bone). */
.woocommerce .required, .woocommerce-page .required, .woocommerce form .form-row .required { color: var(--sgc-brand) !important; text-decoration: none; border: 0; }
.woocommerce fieldset, .woocommerce-page fieldset { border-color: var(--sgc-line) !important; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td, .woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { border-color: var(--sgc-line) !important; }
/* Checkout field errors: merlot border and text (form errors are merlot). */
.woocommerce form .form-row.woocommerce-invalid .input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--sgc-warn) !important; }
.woocommerce form .form-row.woocommerce-invalid label { color: var(--sgc-warn); }
.woocommerce .checkout-inline-error-message { color: var(--sgc-warn); font-size: .82rem; font-weight: 550; }
.woocommerce address, .woocommerce-customer-details address { border-color: var(--sgc-line) !important; }

/* Account consent (PDPA) under "Your details". */
.woocommerce-checkout .sgc-consent { margin-top: 14px; }
.woocommerce-checkout form .form-row.sgc-consent label { display: flex !important; gap: 10px; align-items: flex-start; font-size: .9rem !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--sgc-ink) !important; }
.woocommerce-checkout .sgc-consent input { margin-top: 3px; flex-shrink: 0; accent-color: var(--sgc-brand); }
.woocommerce-checkout .sgc-consent a { color: var(--sgc-brand); }
