@font-face { font-family: "PWS Inter"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("fonts/inter-latin.woff2") format("woff2"); }
@font-face { font-family: "PWS Anton"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/anton-latin.woff2") format("woff2"); }
@font-face { font-family: "PWS IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/ibm-plex-mono-latin.woff2") format("woff2"); }

/* All presentation is scoped to this shell; WooCommerce keeps its behavior. */
body.pws-checkout-page {
	--pws-bg: #fff;
	--pws-surface: #f4f4f4;
	--pws-ink: #101010;
	--pws-muted: #505050;
	--pws-dim: #626262;
	--pws-border: #c7c7c7;
	--pws-border-strong: #a6a6a6;
	--pws-sans: "PWS Inter", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--pws-mono: "PWS IBM Plex Mono", "IBM Plex Mono", ui-monospace, monospace;
	--pws-display: "PWS Anton", Anton, Impact, "Arial Narrow", sans-serif;
	--wp--style--global--content-size: 1200px;
	--wp--style--global--wide-size: 1200px;
	margin: 0;
	min-height: 100vh;
	background: var(--pws-bg);
	color: var(--pws-ink);
	color-scheme: light;
	font: 400 15px/1.6 var(--pws-sans);
	-webkit-font-smoothing: antialiased;
}

.pws-checkout-page *, .pws-checkout-page *::before, .pws-checkout-page *::after { box-sizing: border-box; }
.pws-checkout-page a { color: inherit; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.pws-checkout-page :where(a, button, input, textarea, select, summary):focus-visible { outline: 2px solid #111; outline-offset: 3px; }
.pws-checkout-page button, .pws-checkout-page input, .pws-checkout-page textarea, .pws-checkout-page select { font-family: var(--pws-sans); }
.pws-checkout-page .pws-container { width: min(1200px, calc(100% - 64px)); margin-inline: auto; }
.pws-checkout-page .pws-skip-link { position: fixed; z-index: 100000; top: 12px; left: 12px; padding: 12px 16px; transform: translateY(-180%); color: #fff; background: #111; font: 500 12px/1.5 var(--pws-mono); }
.pws-checkout-page .pws-skip-link:focus { transform: translateY(0); }
.pws-research-notice { padding: 9px 24px; border-bottom: 1px solid var(--pws-border); color: var(--pws-muted); background: var(--pws-surface); text-align: center; font-size: 11px; line-height: 1.6; }
.pws-checkout-header { border-bottom: 1px solid #111; background: #fff; }
.pws-checkout-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; min-height: 104px; padding-block: 18px; }
.pws-brand { display: inline-flex; align-items: center; gap: 14px; min-width: 0; min-height: 44px; text-decoration: none; }
.pws-brand__mark { display: block; flex: 0 0 48px; width: 48px; height: auto; }
.pws-brand__text { display: flex; flex-direction: column; min-width: 0; gap: 5px; }
.pws-brand__name { color: #080808; font: 750 clamp(18px, 2.2vw, 25px)/1.1 var(--pws-sans); letter-spacing: -.035em; }
.pws-brand__tagline { color: var(--pws-muted); font: 500 11px/1.4 var(--pws-mono); letter-spacing: .12em; text-transform: uppercase; }
.pws-checkout-nav { display: flex; flex-shrink: 0; align-items: center; gap: 28px; }
.pws-checkout-nav a, .pws-policy-links a { display: inline-flex; align-items: center; min-height: 44px; font: 500 11px/1.5 var(--pws-mono); text-transform: uppercase; }
.pws-checkout-nav a { text-decoration: none; }
.pws-checkout-nav a:hover { text-decoration: underline; }
.pws-checkout-intro { padding: 48px 0 40px; border-bottom: 1px solid var(--pws-border-strong); background: var(--pws-surface); }
.pws-checkout-intro h1 { max-width: 1000px; margin: 0 0 20px; color: var(--pws-ink); font: 400 clamp(46px, 6vw, 76px)/1.05 var(--pws-display); text-transform: uppercase; letter-spacing: -.01em; overflow-wrap: break-word; }
.pws-checkout-intro p { max-width: 760px; margin: 0; color: var(--pws-muted); font-size: 15px; line-height: 1.75; }
.pws-checkout-intro .pws-checkout-intro__cart-note { margin-top: 12px; color: var(--pws-dim); font-size: 12px; }
.pws-checkout-content { padding-block: 48px 72px; }
.pws-checkout-content > * { max-width: 100%; }
.pws-checkout-content :where(h2, h3) { color: var(--pws-ink); font-family: var(--pws-display); font-weight: 400; letter-spacing: 0; text-transform: uppercase; }
.pws-checkout-content h2 { font-size: 32px; line-height: 1.15; }
.pws-checkout-content h3 { font-size: 27px; line-height: 1.2; }
.pws-checkout-content :where(p, td, th, address) { overflow-wrap: anywhere; }
.pws-checkout-content :where(input[type="checkbox"], input[type="radio"]) { accent-color: #111; }
.pws-checkout-content :where(input, select, textarea) { font-size: 16px; }

/* Native cart content stays inside the shared shell gutters. Keep WooCommerce's
 * internal cart layout and quantity/update controls unchanged. */
.pws-cart-page .pws-checkout-content > :where(.woocommerce, .wp-block-woocommerce-cart, .alignwide, .alignfull) { min-width: 0; width: 100%; max-width: 100%; margin-inline: 0; }
.pws-cart-page .wc-block-components-quantity-selector { width: 156px; max-width: 100%; }
.pws-cart-page .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { width: 44px; min-width: 44px; padding-inline: 0; }
/* Match more specifically than Assembler's input:not(...) padding rule. */
.pws-checkout-page.pws-cart-page .pws-checkout-content .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input { flex: 1 1 0%; min-width: 0; padding-inline: 0; font-variant-numeric: tabular-nums; }

/* Classic checkout: only stable Woo form anchors, no gateway field internals. */
.pws-checkout-page .woocommerce form.checkout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); grid-template-areas: "details heading" "details review"; align-items: start; gap: 0 40px; }
.pws-checkout-page .woocommerce form.checkout > * { grid-column: 1 / -1; min-width: 0; }
.pws-checkout-page .woocommerce form.checkout #customer_details { grid-area: details; width: auto; }
.pws-checkout-page .woocommerce form.checkout #order_review_heading { grid-area: heading; margin: 0; padding: 21px 24px; border: 1px solid var(--pws-border-strong); background: var(--pws-surface); }
.pws-checkout-page .woocommerce form.checkout #order_review { grid-area: review; padding: 0 24px 24px; border: 1px solid var(--pws-border-strong); border-top: 0; }
.pws-checkout-page .woocommerce #customer_details > .col-1, .pws-checkout-page .woocommerce #customer_details > .col-2 { float: none; width: 100%; }
.pws-checkout-page .woocommerce #customer_details h3 { margin: 0 0 24px; padding-bottom: 18px; border-bottom: 1px solid var(--pws-border-strong); }
.pws-checkout-page .woocommerce #customer_details .col-2 { margin-top: 32px; }
.pws-checkout-page .woocommerce form .form-row { margin-bottom: 17px; padding: 0; }
.pws-checkout-page .woocommerce form .form-row label { color: var(--pws-muted); font-size: 13px; line-height: 1.6; }
.pws-checkout-page .woocommerce form .form-row input.input-text, .pws-checkout-page .woocommerce form .form-row textarea, .pws-checkout-page .woocommerce form .form-row select { min-height: 48px; padding: 11px 12px; border-width: 1px; border-style: solid; border-radius: 0; background: #fff; color: var(--pws-ink); font: 400 16px/1.5 var(--pws-sans); }
.pws-checkout-page .woocommerce form .form-row:not(.woocommerce-invalid):not(.woocommerce-validated) :is(input.input-text, textarea, select) { border-color: var(--pws-border-strong); }
.pws-checkout-page .woocommerce form .form-row textarea { min-height: 110px; }
.pws-checkout-page .select2-container .select2-selection--single { min-height: 48px; height: auto; border-color: var(--pws-border-strong); border-radius: 0; }
.pws-checkout-page .select2-container .select2-selection--single .select2-selection__rendered { padding-block: 9px; color: var(--pws-ink); font-size: 16px; }
.pws-checkout-page .select2-container .select2-selection--single .select2-selection__arrow { top: 11px; }
.pws-checkout-page .select2-dropdown { border-color: var(--pws-border-strong); border-radius: 0; }
.pws-checkout-page .woocommerce table.shop_table { width: 100%; border-color: var(--pws-border); border-radius: 0; font-size: 14px; }
.pws-checkout-page .woocommerce table.shop_table th, .pws-checkout-page .woocommerce table.shop_table td { padding: 15px 12px; border-color: var(--pws-border); }
.pws-checkout-page .woocommerce #order_review table.shop_table { margin: 0 0 24px; border-inline: 0; border-top: 0; }
.pws-checkout-page .woocommerce #order_review table.shop_table th, .pws-checkout-page .woocommerce #order_review table.shop_table td { padding-inline: 0; }
.pws-checkout-page .woocommerce table.shop_table .product-total { padding-left: 16px; text-align: right; font-variant-numeric: tabular-nums; }
.pws-checkout-page .woocommerce #payment { background: var(--pws-surface); border: 1px solid var(--pws-border); border-radius: 0; }
.pws-checkout-page .woocommerce #payment ul.payment_methods { border-bottom-color: var(--pws-border); }
.pws-checkout-page .woocommerce #payment div.payment_box { border-radius: 0; font-size: 14px; }
.pws-checkout-page .woocommerce .woocommerce-terms-and-conditions-wrapper { font-size: 13px; }
.pws-checkout-page .woocommerce .woocommerce-customer-details address { border-color: var(--pws-border); border-radius: 0; font-style: normal; }

/* Use the documented Blocks button surface; leave block layout, floating
 * labels, notices, express wallets, and gateway iframes to WooCommerce. */
.pws-checkout-page .wc-block-components-button:not(.is-link),
.pws-checkout-page .woocommerce :is(a.button, button.button, input.button),
.pws-checkout-page .pws-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 14px 20px;
	border: 1px solid #111;
	border-radius: 0;
	background: #111;
	color: #fff;
	box-shadow: none;
	font: 500 12px/1.5 var(--pws-mono);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: .025em;
}
.pws-checkout-page .wc-block-components-button:not(.is-link):not(:disabled):hover,
.pws-checkout-page .woocommerce :is(a.button, button.button, input.button):not(:disabled):hover,
.pws-checkout-page .pws-button:hover { color: #fff; background: #393939; border-color: #393939; }
.pws-checkout-page .woocommerce button.button:disabled,
.pws-checkout-page .wc-block-components-button:disabled { opacity: .55; cursor: not-allowed; }
.pws-checkout-page .pws-button--secondary { background: #fff; color: var(--pws-ink); border-color: var(--pws-border-strong); }
.pws-checkout-page .pws-empty-checkout { padding: 40px; border: 1px solid var(--pws-border-strong); }
.pws-empty-checkout h2 { margin: 0 0 16px; font-size: clamp(32px, 4vw, 44px); }
.pws-empty-checkout p { max-width: 650px; margin: 0 0 26px; color: var(--pws-muted); }
.pws-empty-checkout__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.pws-checkout-footer { border-top: 1px solid #111; background: var(--pws-surface); }
.pws-checkout-footer__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 32px; padding-block: 38px 26px; }
.pws-checkout-help h2 { margin: 0 0 8px; font: 400 28px/1.25 var(--pws-display); text-transform: uppercase; }
.pws-checkout-help a { color: var(--pws-muted); font-size: 13px; overflow-wrap: anywhere; }
.pws-policy-links { display: flex; flex-wrap: wrap; gap: 20px; }
.pws-checkout-footer__legal { grid-column: 1 / -1; margin: 0; padding-top: 22px; border-top: 1px solid var(--pws-border); color: var(--pws-dim); font-size: 11px; line-height: 1.7; }

@media (max-width: 900px) {
	.pws-checkout-page .woocommerce form.checkout { display: block; }
	.pws-checkout-page .woocommerce form.checkout #order_review_heading { margin-top: 32px; }
	.pws-checkout-footer__inner { grid-template-columns: minmax(0, 1fr); gap: 18px; }
}
@media (max-width: 640px) {
	.pws-checkout-page .pws-container { width: calc(100% - 32px); }
	.pws-cart-page .wc-block-cart-item__product { min-width: 0; }
	.pws-cart-page .wc-block-cart-item__quantity { flex-wrap: wrap; padding-inline-end: 0; }
	.pws-research-notice { padding: 8px 16px; font-size: 10px; }
	.pws-checkout-header__inner { min-height: 0; flex-wrap: wrap; gap: 12px; padding-block: 20px 10px; }
	.pws-brand { gap: 11px; }
	.pws-brand__mark { width: 40px; flex-basis: 40px; }
	.pws-brand__name { font-size: clamp(16px, 4.2vw, 23px); }
	.pws-brand__tagline { font-size: 9px; }
	.pws-checkout-nav { width: 100%; justify-content: space-between; gap: 20px; border-top: 1px solid var(--pws-border); }
	.pws-checkout-intro { padding-block: 34px 30px; }
	.pws-checkout-intro h1 { font-size: clamp(42px, 10vw, 60px); }
	.pws-checkout-intro p { font-size: 14px; }
	.pws-checkout-content { padding-block: 32px 48px; }
	.pws-checkout-page .woocommerce form.checkout #order_review_heading { padding: 18px 16px; }
	.pws-checkout-page .woocommerce form.checkout #order_review { padding: 0 16px 16px; }
	.pws-checkout-page .woocommerce form .form-row-first, .pws-checkout-page .woocommerce form .form-row-last { float: none; width: 100%; }
	.pws-checkout-page .pws-empty-checkout { padding: 26px 20px; }
	.pws-empty-checkout__actions { flex-direction: column; }
	.pws-empty-checkout__actions .pws-button { width: 100%; }
	.pws-checkout-help h2 { font-size: 25px; }
	.pws-policy-links { gap: 12px 24px; }
}
@media (prefers-reduced-motion: reduce) {
	.pws-checkout-page { scroll-behavior: auto; }
}
