/* WooCommerce pages on the dark theme: shop, product, cart, checkout, account, notices. */

.woo-main { padding-top: clamp(40px, 6vw, 72px); padding-bottom: var(--section-space); }
.woocommerce-breadcrumb, .woocommerce .woocommerce-breadcrumb { display: block; margin: 0 0 clamp(32px, 3.5vw, 48px); font-family: var(--font-mono); font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-dim); }
.woocommerce .woocommerce-breadcrumb a, .woocommerce-breadcrumb a { color: var(--text-muted); }
.woocommerce-products-header { margin-bottom: 32px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.woocommerce-products-header__title { font-size: clamp(44px, 6vw, 80px); }
.term-description, .page-description { color: var(--text-muted); max-width: 720px; }
.woocommerce-ordering { margin: 0 0 24px; }
.woocommerce-ordering select, .woocommerce select, .woocommerce-page select { min-height: 44px; padding: 0 12px; background: var(--surface); color: var(--text); border: 1px solid var(--line-strong); border-radius: 0; }
.woocommerce .woocommerce-pagination ul.page-numbers, .woocommerce .woocommerce-pagination ul.page-numbers li { border-color: var(--line); }
.woocommerce .woocommerce-pagination ul.page-numbers li a, .woocommerce .woocommerce-pagination ul.page-numbers li span { color: var(--text); padding: 12px 16px; }
.woocommerce .woocommerce-pagination ul.page-numbers li span.current { background: var(--text); color: var(--bg); }

/* Buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled] {
	display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; border: 0; border-radius: 0;
	background: var(--accent); color: #FFFFFF; font-family: var(--font-body); font-size: 16px; font-weight: 600; line-height: 1.2;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--accent-hover); color: #FFFFFF; }

/* Forms (classic templates) */
.woocommerce form .form-row label, .woocommerce-page form .form-row label { color: var(--text-muted); font-size: 15px; }
.woocommerce form .form-row .input-text, .woocommerce-page form .form-row .input-text, .woocommerce .quantity .qty,
.woocommerce form .form-row select, .woocommerce-page .input-text {
	min-height: 48px; padding: 10px 14px; background: var(--surface); color: var(--text); border: 1px solid var(--line-strong); border-radius: 0;
}
.woocommerce form .form-row .input-text:focus, .woocommerce .quantity .qty:focus { outline: 2px solid var(--text); outline-offset: 1px; }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.checkout_coupon, .woocommerce form.lost_reset_password {
	margin: 0 0 32px; padding: clamp(20px, 4vw, 32px); border: 1px solid var(--line-strong); border-radius: 0;
}

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notices-wrapper .woocommerce-message {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;
	margin: 0 0 32px; padding: 18px 24px; list-style: none; background: var(--surface); color: var(--text);
	border: 1px solid var(--line-strong); border-left: 3px solid var(--text); border-radius: 0;
}
.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus, .woocommerce-notices-wrapper:focus { outline: none; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-message::after, .woocommerce-info::after, .woocommerce-error::after { display: none; }
.woocommerce-error { border-left-color: var(--accent-text); }
.woocommerce-message a, .woocommerce-info a, .woocommerce-error a { color: var(--text); }
.woocommerce-message .button, .woocommerce-info .button { order: 2; min-height: 44px !important; }

/* Shop grid uses the theme card (components.css). */
.woocommerce ul.products, .woocommerce-page ul.products { display: grid; margin: 0 0 40px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { width: auto; margin: 0; padding: 0; float: none; }
.woocommerce ul.products li.product .price { color: var(--text); }
/* WooCommerce core shrinks loop prices to .857em; keep the card's own price size. */
.woocommerce ul.products li.product.product-card .price { display: flex; margin: 0; font-size: 30px; font-weight: 300; }
.woocommerce ul.products li.product .product-card__title { padding: 0; margin: 0; font-size: clamp(26px, 2.4vw, 34px); }
.woocommerce ul.products li.product .product-card__media img { margin: 0; }
.woocommerce span.onsale { display: none; }

/* Product page */
.woocommerce div.product { display: flex; flex-wrap: wrap; gap: 48px; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; margin: 0; }
.woocommerce div.product div.images { flex: 1 1 420px; min-width: 0; }
.woocommerce div.product div.images img { width: 100%; }
.woocommerce div.product div.summary { flex: 1 1 380px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.woocommerce div.product .product_title { font-size: clamp(40px, 5vw, 64px); }
.woocommerce div.product p.price, .woocommerce div.product span.price { margin: 0; color: var(--text); font-size: 32px; font-weight: 600; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
.woocommerce div.product p.price del { order: 2; color: var(--text-dim); font-size: 20px; font-weight: 400; opacity: 1; }
.woocommerce div.product p.price ins { text-decoration: none; }
.woocommerce-product-details__short-description { color: var(--text-muted); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.woocommerce div.product form.cart div.quantity { margin: 0; }
/* Core's clearfix pseudo-elements would become flex items and add a gap before the quantity. */
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce .quantity .qty { width: 80px; text-align: center; }
.woocommerce div.product .product_meta { font-size: 14px; color: var(--text-dim); }
.woocommerce div.product .product_meta a { color: var(--text-muted); }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .upsells { flex-basis: 100%; }
.woocommerce div.product .woocommerce-tabs ul.tabs { margin: 0 0 24px; padding: 0; border-bottom: 1px solid var(--line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li, .woocommerce div.product .woocommerce-tabs ul.tabs li.active { margin: 0; padding: 0; background: transparent; border: 0; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: inline-block; padding: 12px 0; margin-right: 24px; color: var(--text-dim); font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--text); box-shadow: inset 0 -2px 0 var(--text); }
/* The panel also carries .entry-content, whose 760px reading width would leave the right side empty. */
.woocommerce div.product .woocommerce-tabs .panel { max-width: none; color: var(--text-muted); }
/* Video embeds keep the panel width at 16:9 instead of their fixed width/height attributes. */
.woocommerce div.product .woocommerce-tabs .panel iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; }
.woocommerce div.product .woocommerce-tabs .panel h2:first-of-type { display: none; }
.woocommerce table.shop_attributes, .woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { border-color: var(--line); color: var(--text-muted); background: transparent; font-style: normal; }
.related > h2, .upsells > h2 { margin-bottom: 32px; }
.skylab-notice { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; border: 1px solid var(--line-strong); border-left: 3px solid var(--accent); background: var(--bg-raised); }
.skylab-notice p { margin: 0; font-weight: 500; }
.single-kicker { margin-bottom: -8px; }

/* Cart, checkout, account pages (page.php) */
.woocommerce-cart .entry-content, .woocommerce-checkout .entry-content, .woocommerce-account .entry-content { max-width: none; color: var(--text); }
.woocommerce table.shop_table { border: 1px solid var(--line-strong); border-radius: 0; border-collapse: collapse; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--line); padding: 14px 16px; }
.woocommerce-account .woocommerce { display: flex; flex-wrap: wrap; gap: 40px; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-account .woocommerce-MyAccount-navigation { flex: 1 1 220px; }
.woocommerce-account .woocommerce-MyAccount-content { flex: 4 1 480px; min-width: 0; }
.woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.woocommerce-MyAccount-navigation li a { display: block; padding: 12px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--text-muted); }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--text); font-weight: 600; }
.woocommerce-account .woocommerce > h2, .woocommerce-account .u-columns { flex-basis: 100%; }
.woocommerce-account .u-columns { display: flex; flex-wrap: wrap; gap: 32px; }
.woocommerce-account .u-columns .u-column1, .woocommerce-account .u-columns .u-column2 { float: none; width: auto; flex: 1 1 320px; }
@media (max-width: 899px) {
	.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 0 20px; border-top: 0; }
	.woocommerce-MyAccount-navigation li a { border-bottom: 0; }
}

/* WooCommerce blocks: cart and checkout */
.wc-block-cart, .wc-block-checkout { color: var(--text); }
.wc-block-components-text-input input, .wc-block-components-text-input textarea,
.wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-block-components-textarea, .wc-block-components-quantity-selector {
	background: var(--surface) !important; color: var(--text) !important; border: 1px solid var(--line-strong) !important; border-radius: 0 !important;
}
.wc-block-components-text-input label, .wc-blocks-components-select .wc-blocks-components-select__label,
.wc-block-components-combobox .wc-block-components-combobox-control label.components-base-control__label { color: var(--text-muted) !important; }
.wc-block-components-text-input input:focus, .wc-blocks-components-select__select:focus { outline: 2px solid var(--text) !important; outline-offset: 1px; box-shadow: none !important; }
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input, .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { background: transparent; color: var(--text); }
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	min-height: 52px; background: var(--accent) !important; color: #FFFFFF !important; border: 0 !important; border-radius: 0 !important; font-weight: 600;
}
.wc-block-components-button:not(.is-link):hover { background: var(--accent-hover) !important; }
.wc-block-components-sidebar-layout .wc-block-components-main, .wc-block-components-sidebar { min-width: 0; }
.wc-block-components-totals-wrapper, .wc-block-components-panel, .wc-block-cart-items, .wc-block-cart-items td, .wc-block-cart-items th,
.wc-block-components-order-summary, .wc-block-checkout__sidebar, .wc-block-components-checkout-step { border-color: var(--line) !important; }
.wc-block-components-product-metadata, .wc-block-components-checkout-step__description, .wc-block-components-formatted-money-amount { color: inherit; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-color: var(--line-strong) !important; border-radius: 0 !important; }
.wc-block-components-notice-banner { background: var(--surface) !important; color: var(--text) !important; border: 1px solid var(--line-strong) !important; border-radius: 0 !important; }
.wc-block-components-notice-banner > svg { fill: var(--text) !important; background: transparent !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] { background: var(--surface); border-color: var(--line-strong); }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--text); }

/* Password show/hide toggle (from woocommerce-layout.css, which the theme does not load). */
.woocommerce form .password-input { display: flex; flex-direction: column; justify-content: center; position: relative; }
.woocommerce form .password-input input[type="password"], .woocommerce form .password-input input[type="text"] { padding-right: 2.75rem; }
.woocommerce form .password-input input::-ms-reveal { display: none; }
.woocommerce form .show-password-input { position: absolute; top: 50%; right: 0.7em; margin: 0; padding: 4px; border: 0; background: transparent; cursor: pointer; transform: translateY(-50%); -webkit-appearance: none; }
.woocommerce form .show-password-input::before { content: ""; display: block; width: 22px; height: 22px; background: no-repeat center / cover url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.3 3.3C16.9 2.9 16.2 2.9 15.7 3.3L13.3 5.7C12.2437 5.3079 11.1267 5.1048 10 5.1C6.2 5.2 2.8 7.2 1 10.5C1.2 10.9 1.5 11.3 1.8 11.7C2.6 12.8 3.6 13.7 4.7 14.4L3 16.1C2.6 16.5 2.5 17.2 3 17.7C3.4 18.1 4.1 18.2 4.6 17.7L17.3 4.9C17.7 4.4 17.7 3.7 17.3 3.3ZM6.7 12.3L5.4 13.6C4.2 12.9 3.1 11.9 2.3 10.7C3.5 9 5.1 7.8 7 7.2C5.7 8.6 5.6 10.8 6.7 12.3ZM10.1 9C9.6 8.5 9.7 7.7 10.2 7.2C10.7 6.8 11.4 6.8 11.9 7.2L10.1 9ZM18.3 9.5C17.8 8.8 17.2 8.1 16.5 7.6L15.5 8.6C16.3 9.2 17 9.9 17.6 10.8C15.9 13.4 13 15 9.9 15H9.1L8.1 16C8.8 15.9 9.4 16 10 16C13.3 16 16.4 14.4 18.3 11.7C18.6 11.3 18.8 10.9 19.1 10.5C18.8 10.2 18.6 9.8 18.3 9.5ZM14 10L10 14C12.2 14 14 12.2 14 10Z" fill="%230F2A44"/></svg>'); }
.woocommerce form .show-password-input.display-password::before { background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.3 9.49999C15 4.89999 8.50002 3.79999 3.90002 7.19999C2.70002 8.09999 1.70002 9.29999 0.900024 10.6C1.10002 11 1.40002 11.4 1.70002 11.8C5.00002 16.4 11.3 17.4 15.9 14.2C16.8 13.5 17.6 12.8 18.3 11.8C18.6 11.4 18.8 11 19.1 10.6C18.8 10.2 18.6 9.79999 18.3 9.49999ZM10.1 7.19999C10.6 6.69999 11.4 6.69999 11.9 7.19999C12.4 7.69999 12.4 8.49999 11.9 8.99999C11.4 9.49999 10.6 9.49999 10.1 8.99999C9.60003 8.49999 9.60003 7.69999 10.1 7.19999ZM10 14.9C6.90002 14.9 4.00002 13.3 2.30002 10.7C3.50002 8.99999 5.10002 7.79999 7.00002 7.19999C6.30002 7.99999 6.00002 8.89999 6.00002 9.89999C6.00002 12.1 7.70002 14 10 14C12.2 14 14.1 12.3 14.1 9.99999V9.89999C14.1 8.89999 13.7 7.89999 13 7.19999C14.9 7.79999 16.5 8.99999 17.7 10.7C16 13.3 13.1 14.9 10 14.9Z" fill="%230F2A44"/></svg>'); }
.woocommerce form .show-password-input:focus-visible { outline: 2px solid var(--text); outline-offset: 1px; }

/* Login: "remember me" above the button and the lost-password link on its own line (core floats them side by side). */
.woocommerce form.login .form-row:has(.woocommerce-form-login__submit) { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.woocommerce form.login .woocommerce-form-login__submit { float: none; margin: 0; }
.woocommerce form.login .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; }
.woocommerce form.login .lost_password { clear: both; margin: 16px 0 0; padding: 0 3px; }
