/* =========================================================================
   PeptiNova — WooCommerce skin.

   Cart / Checkout / My Account intentionally run on WooCommerce's own
   widgets so TeraWallet, affiliate and gateway plugins keep working; this
   stylesheet restyles that native markup to match the PeptiNova design
   (rounded cards, pill buttons, navy headings, Jost typography).
   ========================================================================= */

/* ---- Global Woo elements ---------------------------------------------- */
body.pn .woocommerce a.button,
body.pn .woocommerce button.button,
body.pn .woocommerce input.button,
body.pn .woocommerce #respond input#submit,
body.pn .woocommerce-page a.button,
body.pn button.wp-element-button,
body.pn .wc-block-components-button {
	border-radius: 9999px;
	background: var(--color-primary);
	color: #fff;
	font-family: var(--font-display);
	font-size: 0.875rem;
	font-weight: 600;
	padding: 0.75rem 1.5rem;
	border: 0;
	line-height: 1.2;
	transition: background-color 0.15s ease;
	text-shadow: none;
	box-shadow: none;
}

body.pn .woocommerce a.button:hover,
body.pn .woocommerce button.button:hover,
body.pn .woocommerce input.button:hover,
body.pn button.wp-element-button:hover,
body.pn .wc-block-components-button:hover {
	background: var(--color-primary-dark);
	color: #fff;
}

body.pn .woocommerce a.button.alt,
body.pn .woocommerce button.button.alt,
body.pn .woocommerce input.button.alt,
body.pn .woocommerce #place_order {
	background: var(--color-primary);
	color: #fff;
}

body.pn .woocommerce a.button.alt:hover,
body.pn .woocommerce button.button.alt:hover,
body.pn .woocommerce input.button.alt:hover,
body.pn .woocommerce #place_order:hover {
	background: var(--color-primary-dark);
}

body.pn .woocommerce button.button:disabled,
body.pn .woocommerce button.button:disabled[disabled] {
	background: var(--color-border);
	color: var(--color-text-muted);
	padding: 0.75rem 1.5rem;
}

/* Inputs */
body.pn .woocommerce .input-text,
body.pn .woocommerce input[type='text'],
body.pn .woocommerce input[type='email'],
body.pn .woocommerce input[type='tel'],
body.pn .woocommerce input[type='password'],
body.pn .woocommerce textarea,
body.pn .woocommerce select,
body.pn .woocommerce .select2-container--default .select2-selection--single {
	border-radius: 0.5rem;
	border: 1px solid var(--color-border);
	background: var(--color-bg);
	padding: 0.625rem 0.75rem;
	font-size: 0.875rem;
	font-family: inherit;
	color: var(--color-text);
	box-shadow: none;
	width: 100%;
}

body.pn .woocommerce .input-text:focus,
body.pn .woocommerce input:focus,
body.pn .woocommerce textarea:focus,
body.pn .woocommerce select:focus {
	border-color: var(--color-primary);
	outline: none;
}

body.pn .woocommerce .select2-container--default .select2-selection--single {
	height: auto;
	padding: 0.45rem 0.75rem;
}

body.pn .woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.5;
	padding-left: 0;
	color: var(--color-text);
}

body.pn .woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
}

body.pn .woocommerce form .form-row label {
	font-family: var(--font-display);
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--color-navy);
	margin-bottom: 0.125rem;
}

body.pn .woocommerce form .form-row {
	margin-bottom: 1rem;
	padding: 0;
}

body.pn .woocommerce form .form-row .required {
	color: var(--pn-red);
	text-decoration: none;
}

/* Notices */
body.pn .woocommerce-message,
body.pn .woocommerce-info,
body.pn .woocommerce-error,
body.pn .woocommerce-noreviews,
body.pn .wc-block-components-notice-banner {
	border-radius: 0.75rem;
	border: 1px solid var(--color-border);
	border-top: 1px solid var(--color-border);
	background: var(--color-surface);
	color: var(--color-text);
	font-size: 0.875rem;
	padding: 1rem 1.25rem 1rem 3rem;
	margin-bottom: 1.5rem;
}

body.pn .woocommerce-message::before {
	color: var(--pn-green);
}

body.pn .woocommerce-info::before {
	color: var(--color-primary);
}

body.pn .woocommerce-error {
	border-color: color-mix(in srgb, var(--pn-red) 30%, transparent);
}

body.pn .woocommerce-error::before {
	color: var(--pn-red);
}

body.pn .woocommerce-message .button,
body.pn .woocommerce-info .button,
body.pn .woocommerce-error .button {
	padding: 0.4rem 1rem;
	font-size: 0.75rem;
}

/* Price amounts inherit the heading colors around them */
body.pn .woocommerce .amount {
	color: inherit;
}

/* Breadcrumbs / result count / default ordering (hidden — custom toolbar) */
body.pn .woocommerce-breadcrumb,
body.pn .woocommerce-result-count,
body.pn .woocommerce-ordering {
	display: none;
}



input[type='checkbox'],
input[type='radio'] {
	accent-color: var(--color-primary);
}

/* Order received / thank you */
body.pn .woocommerce-order .woocommerce-thankyou-order-received {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-navy);
}

body.pn .woocommerce ul.order_details {
	border-radius: 1rem;
	border: 1px solid var(--color-border);
	padding: 1.25rem;
	margin: 1.5rem 0;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2rem;
}

body.pn .woocommerce ul.order_details li {
	border: 0;
	font-size: 0.6875rem;
	color: var(--color-text-muted);
	margin: 0;
	padding: 0;
}

body.pn .woocommerce ul.order_details li strong {
	font-size: 0.9375rem;
	color: var(--color-navy);
}

/* =========================================================================
   MY ACCOUNT
   ========================================================================= */
/* Sidebar + content grid only applies to the logged-in dashboard; the
   logged-out login/register view uses the .pn-auth layout instead. */
body.pn.woocommerce-account.logged-in .pn-account .woocommerce {
	display: grid;
	gap: 2rem;
	align-items: start;
}

@media (min-width: 768px) {
	body.pn.woocommerce-account.logged-in .pn-account .woocommerce {
		grid-template-columns: 220px minmax(0, 1fr);
	}
}

body.pn.woocommerce-account.logged-in .pn-account .woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

body.pn.woocommerce-account.logged-in .pn-account .woocommerce-notices-wrapper:empty {
	display: none;
}

body.pn .woocommerce-MyAccount-navigation {
	float: none;
	width: 100%;
}

body.pn .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
}

body.pn .woocommerce-MyAccount-navigation li {
	list-style: none;
}

body.pn .woocommerce-MyAccount-navigation li a {
	display: block;
	border-radius: 0.5rem;
	padding: 0.625rem 1rem;
	font-family: var(--font-display);
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--color-navy);
	transition: background-color 0.15s ease, color 0.15s ease;
}

body.pn .woocommerce-MyAccount-navigation li a:hover {
	background: color-mix(in srgb, var(--color-primary) 8%, transparent);
}

body.pn .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--color-primary);
	color: #fff;
}

body.pn .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--color-text-muted);
}

body.pn .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
	color: var(--pn-red);
	background: transparent;
}

body.pn .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
	border-radius: 1rem;
	border: 1px solid var(--color-border);
	background: var(--color-surface);
	padding: 1.5rem;
	font-size: 0.9375rem;
}

@media (min-width: 640px) {
	body.pn .woocommerce-MyAccount-content {
		padding: 2rem;
	}
}

body.pn .woocommerce-MyAccount-content h2,
body.pn .woocommerce-MyAccount-content h3 {
	font-family: var(--font-display);
	color: var(--color-navy);
	font-weight: 700;
}

body.pn .woocommerce-MyAccount-content a {
	color: var(--color-primary);
}

body.pn .woocommerce-MyAccount-content table.shop_table {
	border: 1px solid var(--color-border);
	border-radius: 0.75rem;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

body.pn .woocommerce-MyAccount-content table.shop_table th {
	background: var(--color-bg);
	font-family: var(--font-display);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.025em;
	color: var(--color-text-muted);
	padding: 0.75rem 1rem;
	border-bottom: 1px solid var(--color-border);
}

body.pn .woocommerce-MyAccount-content table.shop_table td {
	padding: 0.75rem 1rem;
	font-size: 0.875rem;
	border: 0;
	border-bottom: 1px solid var(--color-border);
}

body.pn .woocommerce-MyAccount-content table.shop_table tbody tr:last-child td {
	border-bottom: 0;
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address {
	border-radius: 0.75rem;
	border: 1px solid var(--color-border);
	padding: 1.25rem;
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
	font-size: 1rem;
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address-title .edit {
	font-size: 0.75rem;
	font-weight: 600;
}

body.pn .woocommerce-MyAccount-content fieldset {
	border: 0;
	padding: 0;
	margin: 1.5rem 0 0;
}

body.pn .woocommerce-MyAccount-content legend {
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--color-navy);
	padding: 0;
	margin-bottom: 0.75rem;
}

/* Login / Register two-column layout (form-login.php override) */
.pn-auth {
	display: grid;
	gap: 2rem;
	align-items: start;
}

@media (min-width: 1024px) {
	.pn-auth--two-col {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.pn-auth__card {
	border-radius: 1rem;
	border: 1px solid var(--color-border);
	background: var(--color-surface);
	padding: 1.5rem;
}

@media (min-width: 640px) {
	.pn-auth__card {
		padding: 2rem;
	}
}

.pn-auth__title {
	font-family: var(--font-display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--color-navy);
	margin-bottom: 1.25rem;
}

.pn-auth__card form.login,
.pn-auth__card form.register {
	border: 0;
	padding: 0;
	margin: 0;
	border-radius: 0;
}

.pn-auth__name-row {
	display: grid;
	gap: 1rem;
}

@media (min-width: 640px) {
	.pn-auth__name-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.pn-auth__privacy {
	font-size: 0.75rem;
	color: var(--color-text-muted);
	line-height: 1.6;
}

.pn-auth .woocommerce-form-login__rememberme {
	display: block;
	margin-bottom: 1rem;
	font-size: 0.875rem;
	color: var(--color-navy);
}

.pn-auth .lost_password {
	margin-top: 0.75rem;
	font-size: 0.875rem;
}

.pn-auth .lost_password a {
	color: var(--color-primary);
}

.pn-auth .lost_password a:hover {
	color: var(--color-primary-dark);
}

/* TeraWallet tweaks (wallet endpoint inherits card styles above) */
body.pn .woo-wallet-sidebar ul li {
	border-radius: 0.5rem;
}

body.pn .woo-wallet-content .woo-wallet-content-heading h3 {
	font-family: var(--font-display);
	color: var(--color-navy);
}

/* Cart/checkout pages: leave room for the sticky mobile bar */
@media (max-width: 1023px) {
	body.pn.woocommerce-cart .pn-main {
		padding-bottom: 4.5rem;
	}
}

/* ---- WooCommerce blocks safety net --------------------------------------
   If the Cart/Checkout pages ever run on Woo blocks instead of the classic
   shortcodes, keep the buttons on-brand. (The intended setup is the classic
   [woocommerce_cart] / [woocommerce_checkout] shortcodes.) */
body.pn .wc-block-cart__submit-button,
body.pn .wc-block-components-checkout-place-order-button {
	width: 100%;
	border-radius: 9999px;
	background: var(--color-primary);
	color: #fff;
	font-family: var(--font-display);
	font-weight: 600;
}

body.pn .wc-block-cart__submit-button:hover,
body.pn .wc-block-components-checkout-place-order-button:hover {
	background: var(--color-primary-dark);
}

/* =========================================================================
   LAYOUT PLACEMENT FIXES (v1.0.7)
   Plugins inject extra siblings into the .woocommerce wrappers, which broke
   grid auto-placement — children are now placed EXPLICITLY.
   ========================================================================= */


/* My Account: robust sidebar grid that doesn't depend on body classes —
   applies to any .pn-account wrapper that actually contains the account
   navigation (so the logged-out login screen is untouched). */
@media (min-width: 768px) {
	body.pn .pn-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
		display: grid !important;
		grid-template-columns: 220px minmax(0, 1fr) !important;
		gap: 2rem;
		align-items: start;
	}

	body.pn .pn-account .woocommerce > .woocommerce-MyAccount-navigation {
		grid-column: 1 !important;
		grid-row: 1;
	}

	body.pn .pn-account .woocommerce > .woocommerce-MyAccount-content {
		grid-column: 2 !important;
		grid-row: 1;
	}

	body.pn .pn-account .woocommerce > .woocommerce-notices-wrapper,
	body.pn .pn-account .woocommerce > .woocommerce-message,
	body.pn .pn-account .woocommerce > .woocommerce-info {
		grid-column: 1 / -1;
	}
}

/* Account nav pills sized to the sidebar, active state on-brand */
body.pn .pn-account .woocommerce-MyAccount-navigation li a {
	border-radius: 0.5rem !important;
	padding: 0.625rem 1rem !important;
}

body.pn .pn-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--color-primary) !important;
	color: #fff !important;
}


/* =========================================================================
   FINAL LAYOUT ENGINE (v1.0.9) — flex-based, immune to plugin-injected
   siblings and markup order. Overrides the earlier grid attempts.
   ========================================================================= */


/* ---- MY ACCOUNT: 220px sidebar LEFT, content card RIGHT -------------- */
@media (min-width: 768px) {
	body.pn .pn-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
		display: flex !important;
		flex-wrap: wrap;
		gap: 2rem;
		align-items: flex-start;
		grid-template-columns: none;
	}

	body.pn .pn-account .woocommerce:has(.woocommerce-MyAccount-navigation) > * {
		order: 1;
		flex: 0 0 100%;
		min-width: 0;
	}

	body.pn .pn-account .woocommerce .woocommerce-MyAccount-navigation {
		order: 2;
		flex: 0 0 220px !important;
		width: 220px !important;
	}

	body.pn .pn-account .woocommerce .woocommerce-MyAccount-content {
		order: 3;
		flex: 1 1 0% !important;
	}
}



/* =========================================================================
   v1.1.0 — client revision: checkout login gate, consent order, account
   navigation (pills <1024 / 220px sidebar ≥1024), dashboard + orders cards,
   cart "Pack savings" row, checkout column width.
   ========================================================================= */


/* ---- Checkout login gate (checkout-view.tsx, logged out) ---------------- */
.pn-checkout-gate {
	padding: 0.5rem 0 0;
}

.pn-checkout-gate__text {
	margin: 0.5rem 0 0;
	font-size: 0.875rem;
	color: var(--color-text-muted);
}

.pn-checkout-gate__forms {
	margin-top: 1.5rem;
}

/* Login / Register: side by side from md (768) like the storefront */
@media (min-width: 768px) {
	.pn-auth--two-col {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Code-snippet name fields (form-row-first / form-row-last) side by side */
.pn-auth form.register {
	display: flex;
	flex-wrap: wrap;
	gap: 0 1.25rem;
}

.pn-auth form.register > * {
	flex: 0 0 100%;
	min-width: 0;
}

.pn-auth form.register > .form-row-first,
.pn-auth form.register > .form-row-last {
	flex: 0 0 100%;
	float: none;
	width: 100%;
}

@media (min-width: 640px) {
	.pn-auth form.register > .form-row-first,
	.pn-auth form.register > .form-row-last {
		flex: 1 1 calc(50% - 0.625rem);
		width: auto;
	}
}

.pn-auth form.register > .clear {
	display: none;
}

.pn-auth form.register > .form-row-first input,
.pn-auth form.register > .form-row-last input {
	width: 100%;
}

body.pn .pn-auth form .form-row {
	margin-bottom: 1.25rem;
}

body.pn .pn-auth form .form-row label {
	display: block;
	margin-bottom: 0.375rem;
}

body.pn .pn-auth form .form-row .required {
	display: none;
}

body.pn .pn-auth form .form-row label::after {
	content: ' *';
}

body.pn .pn-auth form .form-row label.woocommerce-form__label-for-checkbox::after,
body.pn .pn-auth form .form-row-first label::after,
body.pn .pn-auth form .form-row-last label::after {
	content: none;
}

body.pn .pn-auth .woocommerce-privacy-policy-text {
	margin: 0 0 1.25rem;
}

body.pn .pn-auth .woocommerce-privacy-policy-text p {
	margin: 0;
	font-size: 0.75rem;
	line-height: 1.625;
	color: var(--color-text-muted);
}

body.pn .pn-auth .woocommerce-privacy-policy-text a {
	color: var(--color-primary);
	font-weight: 400;
}

body.pn .pn-auth .pn-auth__actions {
	margin-bottom: 0.75rem;
}

body.pn .pn-auth .pn-btn--primary {
	width: 100%;
}

@media (min-width: 640px) {
	body.pn .pn-auth .pn-btn--primary {
		width: auto;
	}
}

/* ---- Checkout consents: RUO → terms → notice → policy ------------------- */
body.pn .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper,
body.pn .pn-checkout-confirm {
	margin: 0;
}

body.pn .pn-checkout-confirm,
body.pn .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .form-row {
	margin: 0 0 0.75rem;
	padding: 0;
}

body.pn .pn-checkout-confirm label,
body.pn .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper label.checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 400;
	color: var(--color-navy);
}

body.pn .pn-checkout-confirm input[type='checkbox'],
body.pn .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper input[type='checkbox'] {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	margin: 0.125rem 0 0;
	accent-color: var(--color-primary);
}

body.pn .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .woocommerce-terms-and-conditions-checkbox-text a {
	color: var(--color-primary);
}

body.pn .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .woocommerce-terms-and-conditions-checkbox-text a:hover {
	color: var(--color-primary-dark);
}

body.pn .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .required {
	color: var(--color-navy);
	text-decoration: none;
	border: 0;
}

body.pn .pn-checkout-notice {
	margin: 1rem 0;
	border-radius: 0.5rem;
	background: var(--color-bg);
	padding: 1rem;
	font-size: 0.75rem;
	line-height: 1.625;
	color: var(--color-text-muted);
}

/* ---- Account navigation: scrolling pills <1024, 220px sidebar ≥1024 ------ */
body.pn .woocommerce-MyAccount-navigation ul {
	flex-direction: row;
	gap: 0.5rem;
	overflow-x: auto;
	padding-bottom: 0.25rem;
	scrollbar-width: none;
}

body.pn .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
	display: none;
}

body.pn .woocommerce-MyAccount-navigation li {
	flex-shrink: 0;
}

body.pn .pn-account .woocommerce-MyAccount-navigation li a,
body.pn .woocommerce-MyAccount-navigation li a {
	display: block;
	border-radius: 9999px !important;
	background: var(--color-surface);
	padding: 0.5rem 1rem !important;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	color: var(--color-navy);
	white-space: nowrap;
	text-align: left;
}

body.pn .woocommerce-MyAccount-navigation li a:hover {
	background: var(--color-bg);
}

body.pn .pn-account .woocommerce-MyAccount-navigation li.is-active a,
body.pn .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--color-primary) !important;
	color: #fff !important;
}

body.pn .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--color-text-muted);
}

body.pn .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
	color: var(--color-navy);
	background: transparent;
}

/* v1.1.3: below 768px the single-column grid sized its track to the pill
   row's min-content width (722px) and the whole account page overflowed
   sideways; stack as blocks so the pill row scrolls inside the viewport. */
@media (max-width: 767px) {
	body.pn .pn-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
		display: block !important;
	}

	body.pn .pn-account .woocommerce .woocommerce-MyAccount-navigation {
		width: 100% !important;
		min-width: 0;
		margin-bottom: 2rem;
	}

	body.pn .pn-account .woocommerce .woocommerce-MyAccount-content {
		min-width: 0;
		max-width: 100%;
	}
}

@media (min-width: 768px) and (max-width: 1023px) {
	body.pn .pn-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
		display: block !important;
	}

	body.pn .pn-account .woocommerce .woocommerce-MyAccount-navigation {
		width: 100% !important;
		flex: 0 0 100% !important;
		margin-bottom: 2rem;
	}
}

@media (min-width: 1024px) {
	body.pn .pn-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
		display: flex !important;
		flex-wrap: wrap;
		gap: 2rem;
		align-items: flex-start;
	}

	body.pn .pn-account .woocommerce .woocommerce-MyAccount-navigation {
		flex: 0 0 220px !important;
		width: 220px !important;
	}

	body.pn .woocommerce-MyAccount-navigation ul {
		flex-direction: column;
		overflow: visible;
		padding-bottom: 0;
	}

	body.pn .pn-account .woocommerce-MyAccount-navigation li a,
	body.pn .woocommerce-MyAccount-navigation li a {
		border-radius: 0.5rem !important;
		white-space: normal;
	}
}

/* ---- Account content headings ------------------------------------------- */
body.pn .woocommerce-MyAccount-content .pn-account__title,
body.pn .woocommerce-MyAccount-content h2 {
	font-family: var(--font-display);
	font-size: 1.125rem;
	line-height: 1.75rem;
	font-weight: 600;
	color: var(--color-navy);
	margin: 0 0 1rem;
}

body.pn .pn-account__empty {
	margin: 1rem 0;
	font-size: 0.875rem;
	color: var(--color-text-muted);
}

body.pn .pn-btn--sm {
	display: inline-block;
	padding: 0.625rem 1.25rem;
}

/* ---- Dashboard (dashboard-tab.tsx) -------------------------------------- */
body.pn .pn-dash__title {
	margin: 0;
	font-family: var(--font-display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .pn-dash__sub {
	margin: 0.25rem 0 0;
	font-size: 0.875rem;
	color: var(--color-text-muted);
}

body.pn .pn-dash__stats {
	margin-top: 1.25rem;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}

@media (min-width: 640px) {
	body.pn .pn-dash__stats {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

body.pn .pn-dash__stat,
body.pn .pn-dash__link {
	display: block;
	border-radius: 0.75rem;
	border: 1px solid var(--color-border);
	padding: 1rem;
	text-align: left;
	color: inherit;
	text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

body.pn .pn-dash__stat:hover,
body.pn .pn-dash__link:hover {
	border-color: color-mix(in srgb, var(--color-primary) 40%, transparent);
	background: color-mix(in srgb, var(--color-primary) 5%, transparent);
}

body.pn .pn-dash__stat-label,
body.pn .pn-dash__link-desc {
	display: block;
	font-size: 0.75rem;
	color: var(--color-text-muted);
}

body.pn .pn-dash__stat-value {
	display: block;
	margin-top: 0.25rem;
	font-family: var(--font-display);
	font-size: 1.25rem;
	line-height: 1.75rem;
	font-weight: 700;
	color: var(--color-navy);
}

body.pn .pn-dash__stat-value .amount {
	font: inherit;
	color: inherit;
}

body.pn .pn-dash__head {
	margin-top: 2rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

body.pn .pn-dash__h3 {
	margin: 0;
	font-family: var(--font-display);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .pn-dash__all {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--color-primary);
}

body.pn .pn-dash__all:hover {
	text-decoration: underline;
}

body.pn .pn-dash__empty {
	margin-top: 0.75rem;
	border-radius: 0.75rem;
	border: 1px solid var(--color-border);
	padding: 1rem;
	font-size: 0.875rem;
	color: var(--color-text-muted);
}

body.pn .pn-dash__empty p {
	margin: 0 0 0.75rem;
}

body.pn .pn-dash__links {
	margin-top: 2rem;
	display: grid;
	gap: 0.75rem;
}

@media (min-width: 640px) {
	body.pn .pn-dash__links {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

body.pn .pn-dash__link-title {
	display: block;
	font-family: var(--font-display);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .pn-dash__link-desc {
	margin-top: 0.25rem;
}

/* Order rows (dashboard + orders cards) */
body.pn .pn-order-list {
	margin-top: 0.75rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

body.pn .pn-order-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	border-radius: 0.75rem;
	border: 1px solid var(--color-border);
	padding: 0.75rem 1rem;
	color: inherit;
	text-decoration: none;
}

body.pn .pn-order-row--static {
	border: 0;
	padding: 0;
	border-radius: 0;
}

body.pn .pn-order-row__id {
	font-family: var(--font-display);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .pn-order-row__date {
	font-size: 0.75rem;
	color: var(--color-text-muted);
}

body.pn .pn-order-row__total {
	font-family: var(--font-display);
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--color-navy);
}

body.pn .pn-order-row__total .amount {
	font: inherit;
	color: inherit;
}

body.pn .pn-status {
	display: inline-block;
	border-radius: 9999px;
	padding: 0.25rem 0.625rem;
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 500;
	background: var(--color-bg);
	color: var(--color-text-muted);
}

body.pn .pn-status--completed {
	background: var(--pn-green-bg);
	color: var(--pn-green-dark);
}

body.pn .pn-status--processing {
	background: var(--pn-blue-bg);
	color: var(--pn-blue-dark);
}

body.pn .pn-status--pending {
	background: var(--pn-amber-bg);
	color: var(--pn-amber-dark);
}

body.pn .pn-status--failed {
	background: var(--pn-red-bg);
	color: var(--pn-red-dark);
}

body.pn .pn-status--refunded {
	background: color-mix(in srgb, var(--color-text-muted) 10%, transparent);
	color: var(--color-text-muted);
}

/* Orders (orders-tab.tsx cards) */
body.pn .pn-order-cards {
	margin-top: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

body.pn .pn-order-card {
	border-radius: 0.75rem;
	border: 1px solid var(--color-border);
	padding: 1rem;
}

body.pn .pn-order-card__items {
	margin: 0.75rem 0 0;
	padding: 0.75rem 0 0;
	border-top: 1px solid var(--color-border);
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	font-size: 0.875rem;
	color: var(--color-text-muted);
}

body.pn .pn-order-card__items li {
	display: flex;
	justify-content: space-between;
	gap: 0.75rem;
}

body.pn .pn-order-card__items .amount {
	color: var(--color-text-muted);
}

body.pn .pn-order-card__actions {
	margin-top: 0.75rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

body.pn .pn-btn--outline-xs {
	display: inline-block;
	border-radius: 9999px;
	border: 1px solid var(--color-border);
	padding: 0.5rem 1rem;
	font-family: var(--font-display);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--color-navy) !important;
	transition: border-color 0.15s ease;
}

body.pn .pn-btn--outline-xs:hover {
	border-color: var(--color-text-muted);
}

body.pn .pn-order-pagination {
	margin-top: 1rem;
	display: flex;
	justify-content: space-between;
}

/* ---- Addresses (addresses-tab.tsx): two cards from 640 ----------------- */
body.pn .woocommerce-MyAccount-content .woocommerce-Addresses {
	display: grid;
	gap: 1rem;
}

@media (min-width: 640px) {
	body.pn .woocommerce-MyAccount-content .woocommerce-Addresses {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

body.pn .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address {
	width: 100%;
	float: none;
	max-width: none;
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address-title h2,
body.pn .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 600;
	float: none;
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address-title .edit {
	float: none;
	display: inline-block;
	border-radius: 9999px;
	border: 1px solid var(--color-border);
	padding: 0.5rem 1rem;
	font-family: var(--font-display);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address-title .edit:hover {
	border-color: var(--color-text-muted);
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address address {
	margin-top: 0.5rem;
	font-style: normal;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--color-text-muted);
}


/* ---- Account page: 1024px column (account-view.tsx), equal-height auth cards, no Woo password eye ---- */
body.pn .pn-account {
	max-width: 64rem;
}

.pn-auth {
	align-items: stretch;
}

body.pn .pn-auth .show-password-input,
body.pn .woocommerce-checkout .show-password-input {
	display: none;
}

body.pn .pn-auth .password-input {
	display: block;
}
/* Cart / checkout column: max-w-6xl (1152px) as in cart-view.tsx / checkout-view.tsx */
body.pn .pn-wc-funnel {
	max-width: 72rem;
}
/* WooCommerce password strength meter + hint (native; the storefront has no meter, so keep it quiet) */
body.pn .woocommerce-password-strength {
	margin: 0.375rem 0 0;
	padding: 0.25rem 0.625rem;
	border: 0;
	border-radius: 9999px;
	display: inline-block;
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 500;
	text-align: left;
	background: var(--color-bg);
	color: var(--color-text-muted);
}

body.pn .woocommerce-password-strength.short,
body.pn .woocommerce-password-strength.bad {
	background: var(--pn-red-bg);
	color: var(--pn-red-dark);
}

body.pn .woocommerce-password-strength.good {
	background: var(--pn-amber-bg);
	color: var(--pn-amber-dark);
}

body.pn .woocommerce-password-strength.strong {
	background: var(--pn-green-bg);
	color: var(--pn-green-dark);
}

body.pn .woocommerce-password-hint {
	display: block;
	margin: 0.375rem 0 0;
	font-size: 0.75rem;
	line-height: 1.25rem;
	color: var(--color-text-muted);
}
/* Checkout: the storefront address form is US-only with no country row
   (the Woo country select keeps its default value and still submits) */
body.pn.woocommerce-checkout #billing_country_field,
body.pn.woocommerce-checkout #shipping_country_field {
	display: none !important; /* Woo's address-i18n JS re-shows fields with inline styles */
}

/* =========================================================================
   v1.1.1 — CART (cart-view.tsx / cart-line-item.tsx / cart-summary.tsx /
   coupon-field.tsx). Markup: woocommerce/cart/cart.php + cart-totals.php +
   cart-shipping.php; behaviour = WooCommerce's native cart.js.
   ========================================================================= */

/* Generic Woo table reset (the old cart block carried it for every shop_table) */
body.pn .woocommerce table.shop_table {
	border: 0;
	border-radius: 0;
	margin: 0;
	border-collapse: collapse;
	width: 100%;
}

/* Page: max-w-6xl column, h1 then the grid 24px below */
body.pn.woocommerce-cart .pn-wc-content {
	margin-top: 1.5rem;
}

body.pn.woocommerce-cart .pn-wc-content .woocommerce {
	display: block;
}

body.pn.woocommerce-cart .pn-wc-content .woocommerce-notices-wrapper:empty,
body.pn.woocommerce-cart .cuw-offers:empty {
	display: none;
}

/* Woo's success banners (coupon applied / item removed) aren't part of the
   design — the summary chip + live totals are. Errors stay visible. */
body.pn.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-message,
body.pn.woocommerce-cart .woocommerce-notices-wrapper .woocommerce-info {
	display: none;
}

/* The grid: items card | 380px sticky summary (gap-8) */
body.pn.woocommerce-cart form.woocommerce-cart-form {
	display: grid;
	gap: 2rem;
	align-items: start;
	padding-bottom: 6rem; /* room for the sticky mobile bar */
}

@media (min-width: 1024px) {
	body.pn.woocommerce-cart form.woocommerce-cart-form {
		grid-template-columns: minmax(0, 1fr) 380px;
		padding-bottom: 0;
	}
}

/* ---- Items card -------------------------------------------------------- */
body.pn.woocommerce-cart .pn-cart__items {
	min-width: 0;
	border-radius: 1rem;
	border: 1px solid var(--color-border);
	background: var(--color-surface);
	padding: 0 1.25rem;
}

@media (min-width: 640px) {
	body.pn.woocommerce-cart .pn-cart__items {
		padding: 0 1.5rem;
	}
}

body.pn .woocommerce table.pn-cart__table thead {
	display: none;
}

body.pn .woocommerce table.pn-cart__table,
body.pn .woocommerce table.pn-cart__table tbody {
	display: block;
	width: 100%;
}

body.pn .woocommerce table.pn-cart__table td,
body.pn .woocommerce table.pn-cart__table th {
	border: 0;
	padding: 0;
	background: transparent;
	display: block;
	width: auto;
	text-align: left;
}

body.pn .woocommerce table.pn-cart__table td::before {
	display: none !important;
	content: none !important;
}

/* Line item: thumb | name/meta + bottom row (stepper / prices) | × */
body.pn .woocommerce table.pn-cart__table tr.woocommerce-cart-form__cart-item {
	display: grid;
	grid-template-columns: 5rem minmax(0, 1fr) auto;
	grid-template-areas:
		'thumb name remove'
		'thumb qty total';
	column-gap: 1rem;
	row-gap: 0.5rem;
	align-items: start;
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--color-border);
}

@media (min-width: 640px) {
	body.pn .woocommerce table.pn-cart__table tr.woocommerce-cart-form__cart-item {
		grid-template-columns: 6rem minmax(0, 1fr) auto;
	}
}

body.pn .woocommerce table.pn-cart__table tr.woocommerce-cart-form__cart-item:last-of-type {
	border-bottom: 0;
}

body.pn .woocommerce table.pn-cart__table td.product-thumbnail {
	grid-area: thumb;
}

body.pn .woocommerce table.pn-cart__table td.product-thumbnail a,
body.pn .woocommerce table.pn-cart__table td.product-thumbnail > img {
	display: block;
	position: relative;
	height: 5rem;
	width: 5rem;
	overflow: hidden;
	border-radius: 0.5rem;
	border: 1px solid var(--color-border);
	background: var(--color-bg);
}

@media (min-width: 640px) {
	body.pn .woocommerce table.pn-cart__table td.product-thumbnail a,
	body.pn .woocommerce table.pn-cart__table td.product-thumbnail > img {
		height: 6rem;
		width: 6rem;
	}
}

body.pn .woocommerce table.pn-cart__table td.product-thumbnail a img {
	position: absolute;
	inset: 0;
	height: 100%;
	width: 100%;
	object-fit: contain;
	padding: 0.25rem;
	transform: scale(1.25);
}

body.pn .woocommerce table.pn-cart__table td.product-name {
	grid-area: name;
	min-width: 0;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	color: var(--color-navy);
}

@media (min-width: 640px) {
	body.pn .woocommerce table.pn-cart__table td.product-name {
		font-size: 1rem;
		line-height: 1.5rem;
	}
}

body.pn .woocommerce table.pn-cart__table td.product-name a {
	color: var(--color-navy);
	text-decoration: none;
}

body.pn .woocommerce table.pn-cart__table td.product-name a:hover {
	color: var(--color-primary);
}

body.pn .woocommerce table.pn-cart__table .pn-cart__meta {
	margin: 0.125rem 0 0;
	font-family: var(--font-display);
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 400;
	color: var(--color-text-muted);
}

@media (min-width: 640px) {
	body.pn .woocommerce table.pn-cart__table .pn-cart__meta {
		font-size: 0.875rem;
		line-height: 1.25rem;
	}
}

body.pn .woocommerce table.pn-cart__table td.product-name dl.variation {
	margin: 0.125rem 0 0;
	font-size: 0.75rem;
	font-weight: 400;
	color: var(--color-text-muted);
}

body.pn .woocommerce table.pn-cart__table td.product-name dl.variation dt,
body.pn .woocommerce table.pn-cart__table td.product-name dl.variation dd {
	margin: 0;
	padding: 0;
	float: none;
	display: inline;
}

body.pn .woocommerce table.pn-cart__table td.product-remove {
	grid-area: remove;
	justify-self: end;
}

body.pn .woocommerce table.pn-cart__table td.product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 1.25rem;
	width: 1.25rem;
	margin: 0;
	border-radius: 0;
	font-size: 1.25rem;
	font-weight: 300;
	line-height: 1;
	color: var(--color-text-muted) !important;
	transition: color 0.15s ease;
}

body.pn .woocommerce table.pn-cart__table td.product-remove a.remove:hover {
	background: transparent;
	color: var(--pn-red) !important;
}

body.pn .woocommerce table.pn-cart__table td.product-quantity {
	grid-area: qty;
	align-self: end;
	margin-top: 0.25rem;
}

body.pn .woocommerce table.pn-cart__table td.product-subtotal {
	grid-area: total;
	align-self: end;
	text-align: right;
	margin-top: 0.25rem;
}

/* Pill stepper around WooCommerce's qty input (main.js adds the buttons) */
body.pn .woocommerce .pn-qty--cart {
	display: inline-flex;
	align-items: center;
	border-radius: 9999px;
	border: 1px solid var(--color-border);
	margin: 0;
}

body.pn .woocommerce .pn-qty--cart .pn-qty__btn {
	height: 2rem;
	width: 2rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: transparent;
	padding: 0;
	font-family: var(--font-display);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1;
	color: var(--color-navy);
	cursor: pointer;
}

body.pn .woocommerce .pn-qty--cart .pn-qty__btn:disabled {
	opacity: 0.3;
	cursor: default;
}

body.pn .woocommerce .pn-qty--cart input.qty {
	width: 2rem;
	min-height: 0;
	height: 2rem;
	border: 0;
	border-radius: 0;
	background: transparent;
	padding: 0;
	margin: 0;
	text-align: center;
	font-family: var(--font-display);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--color-navy);
	box-shadow: none;
	appearance: textfield;
	-moz-appearance: textfield;
}

body.pn .woocommerce .pn-qty--cart input.qty::-webkit-outer-spin-button,
body.pn .woocommerce .pn-qty--cart input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.pn .woocommerce .pn-qty--cart input.qty:focus {
	outline: none;
	border: 0;
}

/* Prices block (right): unit, [regular struck] line total, You save */
body.pn .woocommerce table.pn-cart__table .pn-cart__unit {
	margin: 0;
	font-size: 0.75rem;
	line-height: 1rem;
	color: var(--color-text-muted);
}

body.pn .woocommerce table.pn-cart__table .pn-cart__unit .amount {
	color: inherit;
	font-weight: 400;
}

body.pn .woocommerce table.pn-cart__table .pn-cart__line {
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.5rem;
}

body.pn .woocommerce table.pn-cart__table .pn-cart__line-regular {
	font-size: 0.75rem;
	color: var(--color-text-muted);
	text-decoration: line-through;
	text-decoration-color: var(--pn-red-500, #fb2c36);
}

body.pn .woocommerce table.pn-cart__table .pn-cart__line-regular .amount {
	color: inherit;
}

body.pn .woocommerce table.pn-cart__table .pn-cart__line-total {
	font-family: var(--font-display);
	font-size: 1rem;
	line-height: 1.5rem;
	font-weight: 700;
	color: var(--color-navy);
}

body.pn .woocommerce table.pn-cart__table .pn-cart__line-total .amount {
	color: inherit;
	font-weight: inherit;
}

body.pn .woocommerce table.pn-cart__table .pn-cart__saved {
	margin: 0;
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
	color: var(--pn-green);
}

body.pn .woocommerce table.pn-cart__table .pn-cart__saved .amount {
	color: inherit;
	font-weight: inherit;
}

/* The native actions row only carries the hidden Update button + nonce */
body.pn .woocommerce table.pn-cart__table tr.pn-cart__actions-row {
	display: none;
}

/* ---- Order Summary ----------------------------------------------------- */
body.pn.woocommerce-cart .cart-collaterals {
	width: 100%;
	min-width: 0;
}

@media (min-width: 1024px) {
	body.pn.woocommerce-cart .cart-collaterals {
		position: sticky;
		top: 6rem;
	}
}

body.pn .woocommerce .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
	border-radius: 1rem;
	border: 1px solid var(--color-border);
	background: var(--color-surface);
	padding: 1.25rem;
}

@media (min-width: 640px) {
	body.pn .woocommerce .cart-collaterals .cart_totals {
		padding: 1.5rem;
	}
}

body.pn .woocommerce .cart_totals h2 {
	font-family: var(--font-display);
	font-size: 1.125rem;
	line-height: 1.75rem;
	font-weight: 700;
	color: var(--color-navy);
	margin: 0;
}

body.pn .woocommerce .cart_totals table.pn-summary {
	margin-top: 1rem;
	border: 0;
}

body.pn .woocommerce .cart_totals table.pn-summary th,
body.pn .woocommerce .cart_totals table.pn-summary td {
	border: 0;
	padding: 0.25rem 0;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	background: transparent;
	vertical-align: top;
}

body.pn .woocommerce .cart_totals table.pn-summary th {
	font-weight: 400;
	color: var(--color-text-muted);
	width: auto;
	text-align: left;
}

body.pn .woocommerce .cart_totals table.pn-summary td {
	text-align: right;
	color: var(--color-navy);
}

body.pn .woocommerce .cart_totals table.pn-summary td .amount {
	color: inherit;
}

body.pn .woocommerce .cart_totals table.pn-summary .cart-discount td,
body.pn .woocommerce .cart_totals table.pn-summary .pn-shipping__price--free {
	color: var(--pn-green);
	font-weight: 600;
}

body.pn .woocommerce .cart_totals table.pn-summary .cart-discount td .woocommerce-remove-coupon {
	display: none;
}

body.pn .woocommerce .cart_totals .pn-shipping__list--single {
	display: none;
}

body.pn .woocommerce .cart_totals .pn-shipping__list {
	margin: 0.25rem 0 0;
	padding: 0;
	list-style: none;
	text-align: right;
}

body.pn .woocommerce .cart_totals .pn-shipping__list li {
	margin: 0;
	font-size: 0.75rem;
	color: var(--color-text-muted);
}

body.pn .woocommerce .cart_totals .pn-shipping__list input {
	margin: 0 0.25rem 0 0;
	vertical-align: middle;
}

body.pn .woocommerce .cart_totals table.pn-summary tr.order-total th,
body.pn .woocommerce .cart_totals table.pn-summary tr.order-total td {
	border-top: 1px solid var(--color-border);
	padding-top: 0.75rem;
	vertical-align: baseline;
}

body.pn .woocommerce .cart_totals table.pn-summary tr.order-total th {
	font-size: 1rem;
	line-height: 1.5rem;
	font-weight: 700;
	color: var(--color-navy);
}

body.pn .woocommerce .cart_totals table.pn-summary tr.order-total td {
	font-size: 1.5rem;
	line-height: 2rem;
	font-weight: 700;
}

/* Spacing: dl rows start 16px under the heading, total row 12px above its border */
body.pn .woocommerce .cart_totals table.pn-summary tr:first-child th,
body.pn .woocommerce .cart_totals table.pn-summary tr:first-child td {
	padding-top: 0;
}

body.pn .woocommerce .cart_totals table.pn-summary tr.order-total th,
body.pn .woocommerce .cart_totals table.pn-summary tr.order-total td {
	padding-bottom: 0;
}

/* Coupon Code (native field) */
body.pn .woocommerce .cart_totals .pn-summary__coupon {
	margin-top: 1rem;
}

body.pn .woocommerce .cart_totals .pn-summary__label {
	margin: 0;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .woocommerce .cart_totals .pn-summary__coupon-applied {
	margin-top: 0.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	border-radius: 0.5rem;
	background: var(--pn-green-bg);
	padding: 0.5rem 0.75rem;
	font-size: 0.875rem;
}

body.pn .woocommerce .cart_totals .pn-summary__coupon-ok {
	font-family: var(--font-display);
	font-weight: 600;
	color: var(--pn-green-dark);
}

body.pn .woocommerce .cart_totals .pn-summary__coupon-applied .woocommerce-remove-coupon {
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--color-text-muted);
}

body.pn .woocommerce .cart_totals .pn-summary__coupon-applied .woocommerce-remove-coupon:hover {
	color: var(--pn-red);
}

body.pn .woocommerce .cart_totals .coupon {
	margin-top: 0.5rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	float: none;
}

body.pn .woocommerce .cart_totals .coupon .input-text {
	flex: 1 1 0%;
	min-width: 0;
	width: auto;
	border-radius: 9999px;
	border: 1px solid var(--color-border);
	background: var(--color-bg);
	padding: 0.5rem 0.875rem;
	font-size: 0.875rem;
	line-height: 1.25rem;
	float: none;
	margin: 0;
}

body.pn .woocommerce .cart_totals .coupon .input-text:focus {
	border-color: var(--color-primary);
	outline: none;
}

body.pn .woocommerce .cart_totals .coupon .button {
	flex-shrink: 0;
	border-radius: 9999px;
	background: var(--color-navy);
	color: #fff;
	padding: 0.5rem 1rem;
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	margin: 0;
}

body.pn .woocommerce .cart_totals .coupon .button:hover {
	background: color-mix(in srgb, var(--color-navy) 90%, #fff);
	color: #fff;
}

body.pn .woocommerce .cart_totals .coupon .button:disabled,
body.pn .woocommerce .cart_totals .coupon .button:disabled[disabled] {
	background: var(--color-navy);
	color: #fff;
	opacity: 0.5;
	cursor: default;
	padding: 0.5rem 1rem;
}

/* Woo's inline coupon error (cart.js prints it inside .coupon) */
body.pn .woocommerce .cart_totals .coupon .coupon-error-notice {
	flex: 0 0 100%;
	margin: 0.125rem 0 0;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--pn-red-dark, #c10007);
}

body.pn .woocommerce .cart_totals .coupon .input-text.has-error {
	border-color: var(--pn-red);
}

/* Earn box (TeraWallet notice re-hooked here) → 16px under the coupon */
body.pn .woocommerce .cart_totals .woocommerce-info:has(.pn-cashback) {
	margin: 1rem 0 0;
}

body.pn .woocommerce .cart_totals .woocommerce-info:not(:has(.pn-cashback)) {
	margin: 1rem 0 0;
	padding: 0.75rem 1rem;
	font-size: 0.8125rem;
}

body.pn .woocommerce .cart_totals .woocommerce-info:not(:has(.pn-cashback))::before {
	display: none;
}

/* Proceed to Checkout + trust line */
body.pn .woocommerce .cart_totals .wc-proceed-to-checkout {
	padding: 1.25rem 0 0;
}

body.pn .woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0.875rem 1.5rem;
	font-size: 0.875rem;
	line-height: 1.25rem;
	text-align: center;
}

body.pn .woocommerce .cart_totals .pn-trust-line {
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	column-gap: 0.75rem;
	row-gap: 0.25rem;
	text-align: center;
	font-size: 0.75rem;
	line-height: 1rem;
	color: var(--color-text-muted);
}

body.pn .woocommerce .cart_totals .pn-trust-line li {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	margin: 0;
}

body.pn .woocommerce .cart_totals .pn-trust-line .pn-trust-line__sep {
	color: var(--color-border);
}

/* Cross-sells / shipping calculator / Woo "return to shop": not in the design */
body.pn.woocommerce-cart .cross-sells,
body.pn.woocommerce-cart .return-to-shop,
body.pn .woocommerce-shipping-calculator {
	display: none;
}

/* Mobile: the sticky bar needs room */
@media (max-width: 1023px) {
	body.pn.woocommerce-cart .pn-main {
		padding-bottom: 4.5rem;
	}
}

/* =========================================================================
   v1.1.1 — CHECKOUT (checkout-view.tsx / address-form.tsx /
   shipping-method.tsx / payment-method.tsx / checkout-summary.tsx).
   Markup: woocommerce/checkout/form-checkout.php, form-shipping.php,
   form-billing.php, review-order.php; behaviour = WooCommerce's checkout.js.
   ========================================================================= */
body.pn.woocommerce-checkout .pn-wc-content {
	margin-top: 1.5rem;
}

body.pn.woocommerce-checkout .pn-wc-content form.checkout {
	display: grid;
	gap: 1.5rem;
	margin: 0;
	align-items: start;
}

@media (min-width: 1024px) {
	body.pn.woocommerce-checkout .pn-wc-content form.checkout {
		grid-template-columns: minmax(0, 1fr) 380px;
	}
}

body.pn.woocommerce-checkout .pn-wc-content form.checkout > .woocommerce-NoticeGroup,
body.pn.woocommerce-checkout .pn-wc-content form.checkout > .blockUI {
	grid-column: 1 / -1;
	order: 0;
}

body.pn.woocommerce-checkout .pn-checkout__main {
	order: 2;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

body.pn.woocommerce-checkout .pn-checkout__aside {
	order: 1;
	min-width: 0;
}

@media (min-width: 1024px) {
	body.pn.woocommerce-checkout .pn-checkout__main {
		order: 1;
	}

	body.pn.woocommerce-checkout .pn-checkout__aside {
		order: 2;
		position: sticky;
		top: 6rem;
	}
}

/* ---- Cards ----------------------------------------------------------- */
body.pn.woocommerce-checkout .pn-checkout__section,
body.pn.woocommerce-checkout #customer_details .col-1,
body.pn.woocommerce-checkout #customer_details .col-2,
body.pn.woocommerce-checkout #order_review {
	float: none;
	width: 100%;
	border-radius: 1rem;
	border: 1px solid var(--color-border);
	background: var(--color-surface);
	padding: 1.25rem;
}

@media (min-width: 640px) {
	body.pn.woocommerce-checkout .pn-checkout__section,
	body.pn.woocommerce-checkout #customer_details .col-1,
	body.pn.woocommerce-checkout #customer_details .col-2,
	body.pn.woocommerce-checkout #order_review {
		padding: 1.5rem;
	}
}

body.pn.woocommerce-checkout #customer_details {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	width: 100%;
}

body.pn.woocommerce-checkout #customer_details .col-2:empty,
body.pn.woocommerce-checkout .woocommerce-additional-fields:empty {
	display: none;
}

body.pn.woocommerce-checkout .pn-checkout__title,
body.pn.woocommerce-checkout .woocommerce-billing-fields h3,
body.pn.woocommerce-checkout .woocommerce-shipping-fields h3,
body.pn.woocommerce-checkout .woocommerce-additional-fields h3 {
	margin: 0;
	font-family: var(--font-display);
	font-size: 1rem;
	line-height: 1.5rem;
	font-weight: 700;
	color: var(--color-navy);
}

body.pn.woocommerce-checkout .pn-checkout__contact-text {
	margin: 0.75rem 0 0;
	font-size: 0.875rem;
	line-height: 1.25rem;
	color: var(--color-navy);
}

body.pn.woocommerce-checkout .pn-checkout__contact-text strong {
	font-weight: 600;
}

/* ---- Address forms: 2-col field grid (address-form.tsx) --------------- */
body.pn.woocommerce-checkout .woocommerce-shipping-fields {
	display: flex;
	flex-direction: column;
}

body.pn.woocommerce-checkout .woocommerce-shipping-fields .shipping_address {
	order: 2;
}

/* Woo's own toggle, read under the form like "Billing same as shipping" */
body.pn.woocommerce-checkout #ship-to-different-address {
	order: 3;
	margin: 1rem 0 0;
	padding: 0;
}

body.pn.woocommerce-checkout #ship-to-different-address label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 400;
	color: var(--color-text-muted);
	margin: 0;
}

body.pn.woocommerce-checkout #ship-to-different-address input {
	width: 1rem;
	height: 1rem;
	margin: 0;
	accent-color: var(--color-primary);
}

body.pn.woocommerce-checkout .pn-checkout__fields {
	display: grid;
	gap: 1rem;
	margin-top: 0.75rem;
}

@media (min-width: 640px) {
	body.pn.woocommerce-checkout .pn-checkout__fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

body.pn .woocommerce-checkout .pn-checkout__fields .form-row {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	min-width: 0;
}

body.pn .woocommerce-checkout .pn-checkout__fields .form-row-wide,
body.pn .woocommerce-checkout .pn-checkout__fields .omnisend_newsletter_checkbox_field {
	grid-column: 1 / -1;
}

body.pn .woocommerce-checkout .pn-checkout__fields .form-row label {
	display: block;
	margin: 0 0 0.25rem;
	font-family: var(--font-display);
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .woocommerce-checkout .pn-checkout__fields .form-row label .required {
	color: var(--color-navy);
	text-decoration: none;
	border: 0;
}

body.pn .woocommerce-checkout .pn-checkout__fields .form-row label .optional {
	display: none;
}

body.pn .woocommerce-checkout .pn-checkout__fields .form-row label.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

body.pn .woocommerce-checkout .pn-checkout__fields .input-text,
body.pn .woocommerce-checkout .pn-checkout__fields select,
body.pn .woocommerce-checkout .pn-checkout__fields .select2-container--default .select2-selection--single {
	width: 100%;
	border-radius: 0.5rem;
	border: 1px solid var(--color-border);
	background: var(--color-bg);
	padding: 0.625rem 0.75rem;
	font-family: inherit;
	font-size: 0.875rem;
	line-height: 1.25rem;
	color: var(--color-text);
	box-shadow: none;
	margin: 0;
}

body.pn .woocommerce-checkout .pn-checkout__fields .select2-container--default .select2-selection--single {
	height: auto;
	padding: 0.5rem 0.75rem;
}

body.pn .woocommerce-checkout .pn-checkout__fields .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.25rem;
	padding: 0;
	color: var(--color-text);
}

body.pn .woocommerce-checkout .pn-checkout__fields .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	top: 0;
}

body.pn .woocommerce-checkout .pn-checkout__fields .input-text:focus,
body.pn .woocommerce-checkout .pn-checkout__fields select:focus {
	border-color: var(--color-primary);
	outline: none;
}

body.pn .woocommerce-checkout .pn-checkout__fields .woocommerce-invalid .input-text,
body.pn .woocommerce-checkout .pn-checkout__fields .woocommerce-invalid .select2-selection--single {
	border-color: var(--pn-red);
}

/* Omnisend opt-in (plugin field) */
body.pn .woocommerce-checkout .pn-checkout__fields .omnisend_newsletter_checkbox_field label.checkbox {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-size: 0.875rem;
	font-weight: 400;
	color: var(--color-text-muted);
}

body.pn .woocommerce-checkout .pn-checkout__fields .omnisend_newsletter_checkbox_field input {
	width: 1rem;
	height: 1rem;
	margin: 0;
}

/* Logged-in shoppers see their e-mail in the Contact card (checkout-view.tsx);
   Woo's prefilled e-mail field still submits. */
body.pn.logged-in.woocommerce-checkout #billing_email_field {
	display: none;
}

/* ---- Shipping Method (shipping-method.tsx) ------------------------------ */
body.pn.woocommerce-checkout .pn-checkout__rates {
	margin-top: 0.75rem;
}

body.pn.woocommerce-checkout .pn-checkout__hint {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.25rem;
	color: var(--color-text-muted);
}

body.pn.woocommerce-checkout .pn-checkout__rate-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

body.pn.woocommerce-checkout .pn-rate {
	margin: 0;
}

body.pn.woocommerce-checkout .pn-rate__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin: 0;
	border-radius: 0.75rem;
	border: 1px solid var(--color-border);
	padding: 0.875rem;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

body.pn.woocommerce-checkout .pn-rate.is-selected .pn-rate__row {
	border-color: var(--color-primary);
	background: color-mix(in srgb, var(--color-primary) 5%, transparent);
}

body.pn.woocommerce-checkout .pn-rate__left {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
}

body.pn.woocommerce-checkout .pn-rate__left input[type='radio'] {
	width: 1rem;
	height: 1rem;
	margin: 0;
	accent-color: var(--color-primary);
}

body.pn.woocommerce-checkout .pn-rate__radio {
	display: inline-block;
	width: 1rem;
	height: 1rem;
	border-radius: 9999px;
	border: 5px solid var(--color-primary);
	background: #fff;
	box-sizing: border-box;
	flex-shrink: 0;
}

body.pn.woocommerce-checkout .pn-rate__name {
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 500;
	color: var(--color-navy);
}

body.pn.woocommerce-checkout .pn-rate__price {
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	color: var(--color-navy);
	white-space: nowrap;
}

body.pn.woocommerce-checkout .pn-rate__price .amount {
	color: inherit;
}

/* ---- Payment (payment-method.tsx) --------------------------------------- */
body.pn.woocommerce-checkout .pn-checkout__wallet-slot {
	margin-top: 0.75rem;
}

body.pn.woocommerce-checkout .pn-checkout__wallet-slot:empty {
	display: none;
}

body.pn .woocommerce-checkout #payment {
	background: transparent;
	border-radius: 0;
	margin-top: 0.75rem;
}

body.pn .woocommerce-checkout #payment ul.payment_methods {
	border: 0;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	list-style: none;
}

body.pn .woocommerce-checkout #payment ul.payment_methods::before {
	content: 'Pay with';
	display: block;
	margin: 0 0 0.25rem;
	font-family: var(--font-display);
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .woocommerce-checkout #payment ul.payment_methods li {
	position: relative;
	margin: 0;
	padding: 0.875rem;
	border-radius: 0.75rem;
	border: 1px solid var(--color-border);
	list-style: none;
	font-size: 0.875rem;
	line-height: 1.25rem;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0.75rem;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

body.pn .woocommerce-checkout #payment ul.payment_methods li:has(input:checked) {
	border-color: var(--color-primary);
	background: color-mix(in srgb, var(--color-primary) 5%, transparent);
}

body.pn .woocommerce-checkout #payment ul.payment_methods li input[type='radio'],
body.pn .woocommerce-checkout #payment ul.payment_methods li input[type='checkbox'] {
	width: 1rem;
	height: 1rem;
	margin: 0.125rem 0 0;
	flex-shrink: 0;
	accent-color: var(--color-primary);
}

body.pn .woocommerce-checkout #payment ul.payment_methods li label {
	flex: 1 1 0%;
	min-width: 0;
	margin: 0;
	padding: 0;
	display: block;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .woocommerce-checkout #payment ul.payment_methods li label img {
	max-height: 1.25rem;
	vertical-align: middle;
}

body.pn .woocommerce-checkout #payment div.payment_box {
	flex: 0 0 100%;
	margin: 0;
	padding: 0 0 0 1.75rem;
	background: transparent;
	border-radius: 0;
	font-size: 0.75rem;
	line-height: 1rem;
	color: var(--color-text-muted);
}

body.pn .woocommerce-checkout #payment div.payment_box::before {
	display: none;
}

body.pn .woocommerce-checkout #payment div.payment_box p {
	margin: 0;
}

/* Consents + Place Order (bottom of the Payment card, divider above) */
body.pn .woocommerce-checkout #payment div.form-row.place-order {
	margin: 1.25rem 0 0;
	padding: 1.25rem 0 0;
	border-top: 1px solid var(--color-border);
}

body.pn .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p {
	font-size: 0.75rem;
	color: var(--color-text-muted);
	line-height: 1.6;
}

body.pn .woocommerce-checkout #place_order {
	width: 100%;
	margin: 1rem 0 0;
	padding: 0.875rem 1.5rem;
	float: none;
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
}

/* ---- Order Summary (checkout-summary.tsx) ------------------------------- */
body.pn.woocommerce-checkout #order_review_heading {
	display: none;
}

body.pn .woocommerce table.shop_table.pn-summary--checkout {
	border: 0;
	margin: 0;
	border-collapse: collapse;
}

body.pn .woocommerce table.pn-summary--checkout caption.pn-summary__title {
	caption-side: top;
	text-align: left;
	margin: 0 0 1rem;
	padding: 0;
	font-family: var(--font-display);
	font-size: 1.125rem;
	line-height: 1.75rem;
	font-weight: 700;
	color: var(--color-navy);
}

body.pn .woocommerce table.pn-summary--checkout caption.pn-summary__title .amount {
	color: inherit;
}

body.pn .woocommerce table.pn-summary--checkout th,
body.pn .woocommerce table.pn-summary--checkout td {
	border: 0;
	padding: 0.25rem 0;
	background: transparent;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	vertical-align: top;
}

body.pn .woocommerce table.pn-summary--checkout tbody td.product-name {
	color: var(--color-text-muted);
	font-weight: 400;
	padding: 0 0.75rem 0.75rem 0;
	text-align: left;
}

body.pn .woocommerce table.pn-summary--checkout tbody td.product-name .product-quantity {
	font-weight: 400;
}

body.pn .woocommerce table.pn-summary--checkout tbody td.product-name dl.variation {
	display: none;
}

body.pn .woocommerce table.pn-summary--checkout tbody td.product-total {
	text-align: right;
	white-space: nowrap;
	color: var(--color-navy);
	font-weight: 500;
	padding: 0 0 0.75rem;
}

body.pn .woocommerce table.pn-summary--checkout tbody tr:last-child td {
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--color-border);
}

body.pn .woocommerce table.pn-summary--checkout tfoot tr:first-child th,
body.pn .woocommerce table.pn-summary--checkout tfoot tr:first-child td {
	padding-top: 1rem;
}

body.pn .woocommerce table.pn-summary--checkout tfoot th {
	font-weight: 400;
	color: var(--color-text-muted);
	text-align: left;
	width: auto;
}

body.pn .woocommerce table.pn-summary--checkout tfoot td {
	text-align: right;
	color: var(--color-navy);
}

body.pn .woocommerce table.pn-summary--checkout td .amount {
	color: inherit;
}

body.pn .woocommerce table.pn-summary--checkout tr.cart-discount td,
body.pn .woocommerce table.pn-summary--checkout tr.pn-fee--wallet td,
body.pn .woocommerce table.pn-summary--checkout .pn-shipping__price--free {
	color: var(--pn-green);
	font-weight: 600;
}

body.pn .woocommerce table.pn-summary--checkout tr.order-total th,
body.pn .woocommerce table.pn-summary--checkout tr.order-total td {
	border-top: 1px solid var(--color-border);
	padding-top: 0.75rem;
	padding-bottom: 0;
	vertical-align: baseline;
}

body.pn .woocommerce table.pn-summary--checkout tr.order-total th {
	font-size: 1rem;
	line-height: 1.5rem;
	font-weight: 700;
	color: var(--color-navy);
}

body.pn .woocommerce table.pn-summary--checkout tr.order-total td {
	font-size: 1.5rem;
	line-height: 2rem;
	font-weight: 700;
}

body.pn .woocommerce table.pn-summary--checkout tr.pn-summary__note td {
	padding: 0.25rem 0 0;
	text-align: right;
	font-size: 0.75rem;
	line-height: 1rem;
	color: var(--color-text-muted);
}

body.pn .woocommerce table.pn-summary--checkout tr.pn-summary__earn td {
	padding: 1rem 0 0;
	text-align: left;
}

body.pn .woocommerce table.pn-summary--checkout tr.pn-summary__earn .woocommerce-info {
	margin: 0;
}

body.pn .woocommerce table.pn-summary--checkout tr.pn-summary__earn td:empty {
	display: none;
}

/* The wallet row renders in the Payment card (main.js); nothing left here */
body.pn .woocommerce table.pn-summary--checkout tr.wallet-pay-partial {
	display: none;
}

/* ---- v1.1.1 computed-style parity (cart / checkout vs the Next build) ---- */
body.pn .pn-page-heading {
	line-height: 2rem;
}

@media (min-width: 640px) {
	body.pn .pn-page-heading {
		line-height: 2.25rem;
	}
}

/* × = 18px glyph box, regular weight */
body.pn .woocommerce table.pn-cart__table td.product-remove a.remove {
	height: 18px;
	width: 18px;
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 18px;
}

/* stepper buttons/qty share the 32px pill; text metrics as Tailwind's */
body.pn .woocommerce .pn-qty--cart .pn-qty__btn {
	line-height: 1.5rem;
}

body.pn .woocommerce .pn-qty--cart input.qty {
	height: 1.25rem;
	line-height: 1.25rem;
}

/* summary rows: 8px between rows (space-y-2), 12px + border before Total (mt-3 pt-3) */
body.pn .woocommerce .cart_totals table.pn-summary th,
body.pn .woocommerce .cart_totals table.pn-summary td,
body.pn .woocommerce table.pn-summary--checkout tfoot th,
body.pn .woocommerce table.pn-summary--checkout tfoot td {
	padding: 0.5rem 0 0;
}

body.pn .woocommerce .cart_totals table.pn-summary tr:first-child th,
body.pn .woocommerce .cart_totals table.pn-summary tr:first-child td {
	padding-top: 0;
}

body.pn .woocommerce table.pn-summary--checkout tfoot tr:first-child th,
body.pn .woocommerce table.pn-summary--checkout tfoot tr:first-child td {
	padding-top: 1rem;
}

body.pn .woocommerce .cart_totals table.pn-summary tr.order-total th,
body.pn .woocommerce .cart_totals table.pn-summary tr.order-total td,
body.pn .woocommerce table.pn-summary--checkout tr.order-total th,
body.pn .woocommerce table.pn-summary--checkout tr.order-total td {
	padding: 0.75rem 0 0;
	border-top: 1px solid var(--color-border);
}

/* Proceed to Checkout: block button, no side padding (w-full py-3.5) */
body.pn .woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button {
	padding: 0.875rem 0;
}

/* =========================================================================
   v1.1.3 - checkout Shipping Method rows (WooCommerce's own
   `ul#shipping_method li label { display:inline }` outranked the theme rule
   and collapsed the row), My Account > Addresses + edit-address forms.
   ========================================================================= */
body.pn.woocommerce-checkout .pn-checkout__rates ul#shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

body.pn.woocommerce-checkout .pn-checkout__rates ul#shipping_method li {
	margin: 0;
	padding: 0;
	line-height: 1.25rem;
}

body.pn.woocommerce-checkout .pn-checkout__rates ul#shipping_method li label.pn-rate__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin: 0;
	padding: 0.875rem;
	border-radius: 0.75rem;
	border: 1px solid var(--color-border);
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 500;
	color: var(--color-navy);
	cursor: pointer;
}

body.pn.woocommerce-checkout .pn-checkout__rates ul#shipping_method li.is-selected label.pn-rate__row {
	border-color: var(--color-primary);
	background: color-mix(in srgb, var(--color-primary) 5%, transparent);
}

body.pn.woocommerce-checkout .pn-checkout__rates ul#shipping_method li input {
	margin: 0;
	width: 1rem;
	height: 1rem;
	vertical-align: middle;
}

body.pn.woocommerce-checkout .pn-checkout__rates ul#shipping_method li .pn-rate__price {
	font-weight: 600;
}

/* ---- My Account > Addresses (addresses-tab.tsx): two equal cards --------- */
body.pn .woocommerce-MyAccount-content .woocommerce-Addresses {
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(0, 1fr);
	margin: 1rem 0 0;
}

@media (min-width: 640px) {
	body.pn .woocommerce-MyAccount-content .woocommerce-Addresses {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Woo's .col2-set clearfix pseudo-elements would become grid items (and push
   the Billing card into the second cell) - drop them. */
body.pn .woocommerce-MyAccount-content .woocommerce-Addresses::before,
body.pn .woocommerce-MyAccount-content .woocommerce-Addresses::after {
	content: none;
	display: none;
}

body.pn .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address,
body.pn .woocommerce-MyAccount-content .woocommerce-Addresses .col-1,
body.pn .woocommerce-MyAccount-content .woocommerce-Addresses .col-2 {
	float: none;
	width: 100%;
	max-width: none;
	margin: 0;
	border-radius: 0.75rem;
	border: 1px solid var(--color-border);
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address-title {
	display: block;
	margin: 0;
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address-title h2,
body.pn .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
	margin: 0;
	float: none;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address address,
body.pn .woocommerce-MyAccount-content .pn-address__summary {
	margin: 0.5rem 0 0;
	font-style: normal;
	font-size: 0.875rem;
	line-height: 1.25rem;
	color: var(--color-text-muted);
}

body.pn .woocommerce-MyAccount-content .pn-address__summary p {
	margin: 0;
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address .edit,
body.pn .woocommerce-MyAccount-content .pn-address__edit {
	float: none;
	display: inline-block;
	margin: 1rem 0 0;
	border-radius: 9999px;
	border: 1px solid var(--color-border);
	padding: 0.5rem 1rem;
	font-family: var(--font-display);
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
	color: var(--color-navy) !important;
	text-decoration: none;
	transition: border-color 0.15s ease;
}

body.pn .woocommerce-MyAccount-content .woocommerce-Address .edit:hover,
body.pn .woocommerce-MyAccount-content .pn-address__edit:hover {
	border-color: var(--color-text-muted);
}

/* ---- Edit address form (addresses-tab.tsx edit state) ------------------- */
body.pn .woocommerce-MyAccount-content .woocommerce-address-fields {
	margin-top: 0.75rem;
}

body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper {
	display: grid;
	gap: 1rem;
}

@media (min-width: 640px) {
	body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper .form-row {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	min-width: 0;
}

body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper .form-row-wide {
	grid-column: 1 / -1;
}

body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper .form-row label {
	display: block;
	margin: 0 0 0.25rem;
	font-family: var(--font-display);
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper .form-row label .required,
body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper .form-row label .optional {
	display: none;
}

body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper .input-text,
body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper select,
body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper .select2-container--default .select2-selection--single {
	width: 100%;
	border-radius: 0.5rem;
	border: 1px solid var(--color-border);
	background: var(--color-bg);
	padding: 0.5rem 0.75rem;
	font-size: 0.875rem;
	line-height: 1.25rem;
	color: var(--color-text);
	box-shadow: none;
	margin: 0;
}

body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper .select2-container--default .select2-selection--single {
	height: auto;
}

body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.25rem;
	padding: 0;
}

body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	top: 0;
}

body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper #billing_country_field,
body.pn .woocommerce-MyAccount-content .woocommerce-address-fields__field-wrapper #shipping_country_field {
	display: none !important;
}

body.pn .woocommerce-MyAccount-content .woocommerce-address-fields > p:last-child {
	margin: 1rem 0 0;
}

body.pn .woocommerce-MyAccount-content .woocommerce-address-fields button[name='save_address'] {
	border-radius: 9999px;
	padding: 0.5rem 1rem;
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
}

/* v1.1.3: login/register required markers are real text ("Password *") like the storefront, not a CSS pseudo-element */
body.pn .pn-auth form .form-row .required {
	display: inline;
	color: var(--color-navy);
	text-decoration: none;
	border: 0;
}

body.pn .pn-auth form .form-row label::after {
	content: none;
}

/* checkout: the empty-cart state on /checkout (checkout-view.tsx) */
body.pn.woocommerce-checkout .pn-empty-cart--checkout {
	padding: 4rem 0;
}

/* =========================================================================
   v1.1.4 — checkout "Pay with" label, disabled Place Order, register names
   ========================================================================= */
body.pn.woocommerce-checkout .pn-checkout__paywith {
	margin: 0.75rem 0 0.5rem;
	font-family: var(--font-display);
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
	color: var(--color-navy);
}



body.pn .woocommerce-checkout #place_order:disabled,
body.pn .woocommerce-checkout #place_order.is-disabled {
	background: var(--color-border);
	color: var(--color-text-muted);
	cursor: not-allowed;
}

/* register-form.tsx: First / Last name carry no asterisk */
body.pn .pn-auth form.register label[for='reg_first_name'] .required,
body.pn .pn-auth form.register label[for='reg_last_name'] .required,
body.pn .pn-checkout-gate form.register label[for='reg_first_name'] .required,
body.pn .pn-checkout-gate form.register label[for='reg_last_name'] .required {
	display: none;
}

/* =========================================================================
   v1.1.6 — CHECKOUT matched to checkout-view.tsx (logged in):
   left column cards + sticky summary, then a full-width consents card.
   ========================================================================= */
body.pn.woocommerce-checkout .pn-wc-content form.checkout > .pn-checkout__confirm {
	order: 3;
	grid-column: 1 / -1;
	min-width: 0;
}

/* ---- Shipping card: title, fields, "Billing same as shipping" ----------- */
body.pn.woocommerce-checkout #customer_details .col-1 {
	border: 0;
	border-radius: 0;
	background: transparent;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

body.pn.woocommerce-checkout #customer_details .col-1:not(:has(> :not(.woocommerce-account-fields:empty, .pn-checkout__billing.is-hidden, .pn-checkout__billing-extra:not(:has(*))))) {
	display: none;
}

body.pn.woocommerce-checkout .pn-ship-to-different,
body.pn.woocommerce-checkout #ship-to-different-address.pn-ship-to-different {
	display: none !important;
}

body.pn.woocommerce-checkout .pn-checkout__billing-same {
	order: 4;
	margin: 1rem 0 0 !important;
	padding: 0;
}

body.pn.woocommerce-checkout .pn-checkout__billing-same label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 400;
	color: var(--color-text-muted);
	cursor: pointer;
}

body.pn.woocommerce-checkout .pn-checkout__billing-same input {
	width: 1rem;
	height: 1rem;
	margin: 0;
	flex-shrink: 0;
	accent-color: var(--color-primary);
}

/* ZIP | Phone side by side (a plugin forces the phone row to full width) */
@media (min-width: 640px) {
	body.pn .woocommerce-checkout .pn-checkout__fields #shipping_phone_field,
	body.pn .woocommerce-checkout .pn-checkout__fields #billing_phone_field {
		grid-column: auto;
	}
}

/* ---- Billing card (only while "Billing same as shipping" is unticked) --- */
body.pn.woocommerce-checkout .pn-checkout__billing {
	border-radius: 1rem;
	border: 1px solid var(--color-border);
	background: var(--color-surface);
	padding: 1.25rem;
}

@media (min-width: 640px) {
	body.pn.woocommerce-checkout .pn-checkout__billing {
		padding: 1.5rem;
	}
}

body.pn.woocommerce-checkout .pn-checkout__billing.is-hidden {
	display: none;
}

/* Fields that are not part of the address (newsletter opt-in) stay visible */
body.pn.woocommerce-checkout .pn-checkout__billing-extra:not(:has(*)) {
	display: none;
}

body.pn.woocommerce-checkout .pn-checkout__billing-extra .form-row {
	margin: 0;
	padding: 0 0.25rem;
}

body.pn.woocommerce-checkout .pn-checkout__billing-extra label.checkbox {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 400;
	color: var(--color-text-muted);
}

body.pn.woocommerce-checkout .pn-checkout__billing-extra label.checkbox input {
	width: 1rem;
	height: 1rem;
	margin: 0;
	accent-color: var(--color-primary);
}

/* ---- Payment: store credit card, "Pay with", gateway cards -------------- */
body.pn.woocommerce-checkout .pn-checkout__wallet-slot:not(:has(*)) {
	display: none;
}

body.pn.woocommerce-checkout .pn-wallet-card {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	border: 1px solid var(--color-border);
	border-radius: 0.75rem;
	padding: 0.875rem;
	background: var(--color-surface);
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

body.pn.woocommerce-checkout .pn-wallet-card input {
	width: 1rem;
	height: 1rem;
	margin: 0.125rem 0 0;
	flex-shrink: 0;
	accent-color: var(--color-primary);
}

body.pn.woocommerce-checkout .pn-wallet-card__icon {
	display: inline-flex;
	flex-shrink: 0;
	color: var(--color-navy);
}

body.pn.woocommerce-checkout .pn-wallet-card__body {
	display: block;
	min-width: 0;
}

body.pn.woocommerce-checkout .pn-wallet-card__title {
	display: block;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn.woocommerce-checkout .pn-wallet-card__amount {
	font-weight: 700;
	color: var(--color-primary);
}

body.pn.woocommerce-checkout .pn-wallet-card__text {
	display: block;
	font-size: 0.75rem;
	line-height: 1rem;
	color: var(--color-text-muted);
}

/* TeraWallet's own row (balance > 0): same card — checkbox, wallet icon, text */
body.pn .pn-checkout__wallet-slot tr.wallet-pay-partial th {
	display: grid !important;
	grid-template-columns: 1.25rem minmax(0, 1fr);
	column-gap: 0.75rem;
	align-items: start;
}

body.pn .pn-checkout__wallet-slot tr.wallet-pay-partial th::before {
	content: '';
	grid-row: 1 / span 2;
	width: 1.25rem;
	height: 1.25rem;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23120d3b' stroke-width='1.6'%3E%3Crect x='3' y='6' width='18' height='13' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3Ccircle cx='16' cy='14' r='1.2' fill='%23120d3b' stroke='none'/%3E%3C/svg%3E") no-repeat center / contain;
}

body.pn .pn-checkout__wallet-slot tr.wallet-pay-partial th::after {
	grid-column: 2;
}

body.pn .pn-checkout__wallet-slot tr.wallet-pay-partial .woo-wallet-tooltip-wrapper {
	display: none !important;
}

body.pn .pn-checkout__wallet-slot tr.wallet-pay-partial .pn-wallet-card__amount {
	font-weight: 700;
	color: var(--color-primary);
}

body.pn.woocommerce-checkout .pn-checkout__paywith {
	display: block;
	margin: 1rem 0 0.5rem;
	font-family: var(--font-display);
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn.woocommerce-checkout .pn-checkout__wallet-slot:not(:has(*)) + .pn-checkout__paywith {
	margin-top: 0.75rem;
}

body.pn .woocommerce-checkout #payment {
	margin-top: 0;
}

body.pn .woocommerce-checkout #payment ul.payment_methods::before {
	content: none;
	display: none;
}

/* the radio stays visible even with a single gateway (checkout.js hides it) */
body.pn .woocommerce-checkout #payment ul.payment_methods li > input.input-radio {
	display: inline-block !important;
	width: 1rem;
	height: 1rem;
	margin: 0.125rem 0 0;
	flex-shrink: 0;
	accent-color: var(--color-primary);
}

body.pn .woocommerce-checkout #payment ul.payment_methods li label {
	cursor: pointer;
}

/* ---- Consents + Place Order card (full width) --------------------------- */
body.pn.woocommerce-checkout .pn-checkout__confirm .form-row.place-order {
	margin: 0;
	padding: 0;
	border: 0;
}

body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-wrapper {
	margin: 0;
}

body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-wrapper .form-row {
	margin: 0 0 0.75rem;
	padding: 0;
}

body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-wrapper label.checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin: 0;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 400;
	color: var(--color-navy);
}

body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-wrapper input[type='checkbox'] {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	margin: 0.125rem 0 0;
	accent-color: var(--color-primary);
}

body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-checkbox-text a {
	color: var(--color-primary);
}

body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-checkbox-text a:hover {
	color: var(--color-primary-dark);
}

body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-wrapper .required {
	color: var(--color-navy);
	text-decoration: none;
	border: 0;
}

body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p {
	font-size: 0.75rem;
	color: var(--color-text-muted);
	line-height: 1.6;
}

body.pn.woocommerce-checkout .pn-checkout__confirm #place_order {
	width: 100%;
	margin: 1rem 0 0;
}

/* ---- Order Summary folds on mobile (checkout-summary.tsx chevron) -------- */
@media (max-width: 1023px) {
	body.pn.woocommerce-checkout .pn-checkout__aside {
		position: relative;
		top: auto;
	}
}

body.pn.woocommerce-checkout .pn-checkout__summary-toggle {
	position: absolute;
	z-index: 2;
	top: 1.25rem;
	left: 1.25rem;
	right: 1.25rem;
	height: 1.75rem;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--color-text-muted);
	cursor: pointer;
}

body.pn.woocommerce-checkout .pn-checkout__summary-toggle svg {
	transition: transform 0.15s ease;
	transform: rotate(180deg);
}

body.pn.woocommerce-checkout .pn-checkout__aside.is-collapsed .pn-checkout__summary-toggle svg {
	transform: none;
}

body.pn.woocommerce-checkout .pn-checkout__aside.is-collapsed table.pn-summary--checkout > :not(caption) {
	display: none;
}

body.pn.woocommerce-checkout .pn-checkout__aside.is-collapsed table.pn-summary--checkout caption.pn-summary__title {
	margin-bottom: 0;
}

@media (min-width: 640px) {
	body.pn.woocommerce-checkout .pn-checkout__summary-toggle {
		top: 1.5rem;
		left: 1.5rem;
		right: 1.5rem;
	}
}

@media (min-width: 1024px) {
	body.pn.woocommerce-checkout .pn-checkout__summary-toggle {
		display: none;
	}

	body.pn.woocommerce-checkout .pn-checkout__aside.is-collapsed table.pn-summary--checkout > :not(caption) {
		display: revert;
	}
}

/* v1.1.6: checkout summary line meta "50mg · 3 Vials · $31.49/vial" */
body.pn .woocommerce table.pn-summary--checkout tbody td.product-name .pn-summary__meta {
	display: block;
	margin-top: 0.125rem;
	font-size: 0.75rem;
	line-height: 1rem;
	color: var(--color-text-muted);
}

body.pn .woocommerce table.pn-summary--checkout tbody td.product-name .pn-summary__meta .amount {
	color: inherit;
	font-weight: 400;
}

/* v1.1.6 parity fixes (measured against checkout-view.tsx at 1440):
   WooCommerce's clearfix pseudo-elements become flex/grid items and add gaps */
body.pn.woocommerce-checkout #customer_details::before,
body.pn.woocommerce-checkout #customer_details::after,
body.pn .woocommerce-checkout #payment ul.payment_methods li::before,
body.pn .woocommerce-checkout #payment ul.payment_methods li::after {
	content: none;
	display: none;
}

/* address-form.tsx rhythm: label, 6px, input; 20px between rows */
body.pn.woocommerce-checkout .pn-checkout__fields {
	row-gap: 1.25rem;
}

body.pn .woocommerce-checkout .pn-checkout__fields .form-row label:not(.screen-reader-text) {
	margin-bottom: 0.5rem;
}

/* gateway card: radio | title + description (payment-method.tsx) */
body.pn .woocommerce-checkout #payment ul.payment_methods li {
	display: grid;
	grid-template-columns: 1rem minmax(0, 1fr);
	column-gap: 1.375rem;
	row-gap: 0;
	align-items: start;
}

body.pn .woocommerce-checkout #payment ul.payment_methods li > input.input-radio {
	grid-column: 1;
	grid-row: 1;
}

body.pn .woocommerce-checkout #payment ul.payment_methods li > label {
	grid-column: 2;
	grid-row: 1;
}

body.pn .woocommerce-checkout #payment ul.payment_methods li div.payment_box {
	grid-column: 2;
	margin: 0;
	padding: 0;
}

/* consents: 14px/400 rows, 12px apart; policy row flush with the others */
body.pn.woocommerce-checkout .pn-checkout__confirm p.pn-checkout-confirm {
	margin: 0 0 0.75rem;
	padding: 0;
	line-height: 1.25rem;
}

body.pn.woocommerce-checkout .pn-checkout__confirm p.pn-checkout-confirm label,
body.pn.woocommerce-checkout .pn-checkout__billing-same label,
body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-wrapper label.checkbox {
	font-weight: 400;
	line-height: 1.25rem;
}

body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-wrapper label.checkbox {
	display: block;
	position: relative;
	padding-left: 1.75rem;
}

body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-wrapper label.checkbox input[type='checkbox'] {
	position: absolute;
	left: 0;
	top: 0.125rem;
	margin: 0;
}

body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-wrapper abbr.required {
	margin-left: 0.25rem;
}

body.pn.woocommerce-checkout .pn-checkout__confirm .wcb-cb-agree label {
	padding-left: 0 !important;
	font-weight: 400 !important;
}

/* =========================================================================
   v1.1.6 — My Account matched to account-dashboard.tsx / account-view.tsx
   ========================================================================= */
/* Woo's clearfix pseudo-elements were flex items (+2 x 32px gap): the
   sidebar now lines up with the banner title, as in the storefront */
body.pn .pn-account .woocommerce::before,
body.pn .pn-account .woocommerce::after {
	content: none;
	display: none;
}

/* ---- Account Details (single "New Password", Save Changes) ------------- */
body.pn .woocommerce-MyAccount-content .pn-account-form__grid {
	display: grid;
	gap: 1.25rem;
	margin-top: 1rem;
}

@media (min-width: 640px) {
	body.pn .woocommerce-MyAccount-content .pn-account-form__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

body.pn .woocommerce-MyAccount-content .pn-account-form__grid .form-row {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	min-width: 0;
}

body.pn .woocommerce-MyAccount-content .pn-account-form__grid .form-row-wide {
	grid-column: 1 / -1;
}

body.pn .woocommerce-MyAccount-content .pn-account-form__grid .form-row[hidden] {
	display: none;
}

body.pn .woocommerce-MyAccount-content .pn-account-form__grid label {
	display: block;
	margin: 0;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 500;
	color: var(--color-navy);
}

body.pn .woocommerce-MyAccount-content .pn-account-form__grid .input-text {
	width: 100%;
	margin: 0.375rem 0 0;
	border-radius: 0.5rem;
	border: 1px solid var(--color-border);
	background: var(--color-bg);
	padding: 0.625rem 0.75rem;
	font-size: 0.875rem;
	line-height: 1.25rem;
	color: var(--color-text);
	box-shadow: none;
}

body.pn .woocommerce-MyAccount-content .pn-account-form__grid .input-text:focus {
	border-color: var(--color-primary);
	outline: none;
}

body.pn .woocommerce-MyAccount-content .pn-account-form__grid .password-input {
	display: block;
	width: 100%;
}

body.pn .woocommerce-MyAccount-content .pn-account-form .show-password-input {
	display: none !important;
}

body.pn .woocommerce-MyAccount-content .pn-account-form__actions {
	margin: 1.5rem 0 0;
}

body.pn .woocommerce-MyAccount-content .pn-account-form__actions .pn-btn {
	border: 0;
	padding: 0.75rem 1.5rem;
	font-size: 0.875rem;
	line-height: 1.25rem;
}

/* ---- Addresses, edit state: the form inside its card -------------------- */
body.pn .woocommerce-MyAccount-content .pn-addresses--editing {
	align-items: stretch;
}

body.pn .woocommerce-MyAccount-content .pn-address-card--form form {
	width: 100%;
	margin: 0;
}

body.pn .woocommerce-MyAccount-content .pn-address-card__title {
	margin: 0;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .woocommerce-MyAccount-content .pn-address-card--form .woocommerce-address-fields {
	margin-top: 1rem;
}

body.pn .woocommerce-MyAccount-content .pn-address-card__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 1.25rem 0 0 !important;
}

body.pn .woocommerce-MyAccount-content .pn-address-card__actions .pn-address-card__save {
	margin: 0;
	border: 0;
	border-radius: 9999px;
	background: var(--color-primary);
	color: #fff;
	padding: 0.5rem 1rem;
	font-family: var(--font-display);
	font-size: 0.75rem;
	line-height: 1rem;
	font-weight: 600;
}

body.pn .woocommerce-MyAccount-content .pn-address-card__actions .pn-address-card__save:hover {
	background: var(--color-primary-dark);
}

body.pn .woocommerce-MyAccount-content .pn-address-card__actions .pn-address-card__cancel {
	margin: 0;
}

/* ---- Wallet (TeraWallet) → the storefront's Wallet tab ------------------ */
body.pn .woocommerce-MyAccount-content .woo-wallet-my-wallet-container {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

body.pn .woocommerce-MyAccount-content .woo-wallet-my-wallet-container .woo-wallet-header,
body.pn .woocommerce-MyAccount-content .woo-wallet-my-wallet-container .woo-wallet-top-section,
body.pn .woocommerce-MyAccount-content .woo-wallet-my-wallet-container .woo-wallet-content-area {
	display: contents;
}

body.pn .woocommerce-MyAccount-content .woo-wallet-header h2 {
	order: 1;
	margin: 0;
	padding: 0;
	font-family: var(--font-display);
	font-size: 1.125rem;
	line-height: 1.75rem;
	font-weight: 600;
	color: var(--color-navy);
	text-align: left;
}

body.pn .woocommerce-MyAccount-content .woo-wallet-balance-card {
	order: 2;
	margin: 1rem 0 0;
	border: 0;
	border-radius: 0.75rem;
	background: var(--color-navy);
	background-image: var(--pn-gradient);
	padding: 1.5rem;
	text-align: left;
	box-shadow: none;
}

body.pn .woocommerce-MyAccount-content .woo-wallet-balance-card h3 {
	margin: 0;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.7);
	text-transform: none;
	letter-spacing: 0;
}

body.pn .woocommerce-MyAccount-content .woo-wallet-balance-card .woo-wallet-price,
body.pn .woocommerce-MyAccount-content .woo-wallet-balance-card .woo-wallet-price .amount {
	margin: 0.25rem 0 0;
	font-family: var(--font-display);
	font-size: 1.875rem;
	line-height: 2.25rem;
	font-weight: 700;
	color: #fff;
}

body.pn .woocommerce-MyAccount-content .woo-wallet-header p {
	order: 3;
	margin: 1rem 0 0;
	font-size: 0.875rem;
	line-height: 1.25rem;
	color: var(--color-text-muted);
	text-align: left;
}

body.pn .woocommerce-MyAccount-content .woo-wallet-nav-tabs,
body.pn .woocommerce-MyAccount-content .woo-wallet-stats-grid,
body.pn .woocommerce-MyAccount-content .ww-txn-meta,
body.pn .woocommerce-MyAccount-content .ww-txn-row--head,
body.pn .woocommerce-MyAccount-content .ww-txn-cell--type {
	display: none !important;
}

body.pn .woocommerce-MyAccount-content .woo-wallet-transactions-list {
	order: 4;
	margin: 1.5rem 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

body.pn .woocommerce-MyAccount-content .ww-txn-head {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

body.pn .woocommerce-MyAccount-content .ww-txn-title {
	margin: 0;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 600;
	color: var(--color-navy);
}

body.pn .woocommerce-MyAccount-content .ww-txn-table {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0.5rem 0 0;
	border: 0;
	background: transparent;
}

body.pn .woocommerce-MyAccount-content .ww-txn-row {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: 'desc amount' 'date amount';
	align-items: center;
	column-gap: 0.75rem;
	margin: 0;
	border: 1px solid var(--color-border) !important;
	border-radius: 0.5rem;
	background: var(--color-surface);
	padding: 0.625rem 0.75rem;
	box-shadow: none;
}

body.pn .woocommerce-MyAccount-content .ww-txn-cell {
	display: block;
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
	text-align: left;
}

body.pn .woocommerce-MyAccount-content .ww-txn-cell::before {
	content: none !important;
	display: none !important;
}

body.pn .woocommerce-MyAccount-content .ww-txn-cell--desc {
	grid-area: desc;
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 400;
	color: var(--color-navy);
}

body.pn .woocommerce-MyAccount-content .ww-txn-cell--date {
	grid-area: date;
	font-size: 0.75rem;
	line-height: 1rem;
	color: var(--color-text-muted);
}

body.pn .woocommerce-MyAccount-content .ww-txn-cell--amount {
	grid-area: amount;
	font-family: var(--font-display);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 700;
	color: var(--color-navy);
	text-align: right;
	white-space: nowrap;
}

body.pn .woocommerce-MyAccount-content .ww-txn-cell--amount.credit,
body.pn .woocommerce-MyAccount-content .ww-txn-cell--amount.credit .amount {
	color: #16a34a;
}

body.pn .woocommerce-MyAccount-content .ww-txn-cell--amount .amount {
	color: inherit;
	font-weight: inherit;
}


body.pn.woocommerce-checkout .pn-wallet-card:has(input:checked) {
	border-color: var(--color-primary);
	background: color-mix(in srgb, var(--color-primary) 5%, transparent);
}

body.pn.woocommerce-checkout label.pn-wallet-card {
	cursor: pointer;
	margin: 0;
}

/* v1.1.6: Woo's `.form-row label.checkbox { display:inline }` beat the consent rows */
body.pn.woocommerce-checkout .pn-checkout__confirm p.pn-checkout-confirm label.checkbox,
body.pn.woocommerce-checkout .pn-checkout__confirm p.pn-checkout-confirm label {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin: 0;
	color: var(--color-navy);
}

body.pn.woocommerce-checkout .pn-checkout__confirm p.pn-checkout-confirm input[type='checkbox'] {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	margin: 0.125rem 0 0;
	accent-color: var(--color-primary);
}

body.pn.woocommerce-checkout .pn-checkout__confirm .woocommerce-terms-and-conditions-wrapper abbr.required {
	margin-left: 0;
}

body.pn.woocommerce-checkout .pn-checkout__billing-same label.checkbox,
body.pn.woocommerce-checkout .pn-checkout__billing-same label {
	color: var(--color-text-muted);
	font-weight: 400;
}

body.pn .woocommerce-MyAccount-content .ww-txn-table .ww-txn-row.ww-txn-row--head {
	display: none !important;
}


/* v1.1.6: no green "validated" borders (checkout-view.tsx has none); invalid stays red */
body.pn .woocommerce-checkout .pn-checkout__fields .woocommerce-validated .input-text,
body.pn .woocommerce-checkout .pn-checkout__fields .woocommerce-validated select,
body.pn .woocommerce-checkout .pn-checkout__fields .woocommerce-validated .select2-selection--single {
	border-color: var(--color-border);
}

/* v1.1.6: TeraWallet's mobile rule pads the transaction table by 8px — rows line up with "Transaction History" as in the storefront */
body.pn .woocommerce-MyAccount-content .woo-wallet-transactions-list .ww-txn-table {
	padding: 0 !important;
}

/* =========================================================================
   v1.1.7 — re-measured against the storefront with the SAME data on both
   sides (same customer, same cart). Each rule names what it matches.
   ========================================================================= */

/* ---- Cart line (cart-line-item.tsx): name + meta, 8px, stepper | prices.
   A thumbnail taller than that column adds space below it (third track),
   never between the name and the stepper row. ------------------------- */
body.pn .woocommerce table.pn-cart__table tr.woocommerce-cart-form__cart-item {
	grid-template-rows: auto auto 1fr;
	grid-template-areas:
		'thumb name remove'
		'thumb qty total'
		'thumb . .';
	row-gap: 0;
}

body.pn .woocommerce table.pn-cart__table td.product-quantity,
body.pn .woocommerce table.pn-cart__table td.product-subtotal {
	margin-top: 0.5rem;
}

/* × icon sits on the row's top edge like the storefront's button */
body.pn .woocommerce table.pn-cart__table td.product-remove {
	line-height: 0;
}

body.pn .woocommerce table.pn-cart__table td.product-remove a.remove {
	display: flex;
}

body.pn .woocommerce table.pn-cart__table td.product-remove a.remove svg {
	display: block;
}

/* "−" is disabled at quantity 1 (main.js); removal is the × */
body.pn .woocommerce .pn-qty--cart .pn-qty__btn:disabled {
	opacity: 0.3;
	cursor: default;
}

/* ---- Cart Order Summary: dl rows 8px apart, 12px + rule + 12px before the
   Total, Total in 700 like the storefront ----------------------------- */
body.pn .woocommerce .cart_totals table.pn-summary tr:not(.order-total) > th,
body.pn .woocommerce .cart_totals table.pn-summary tr:not(.order-total) > td {
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
}

body.pn .woocommerce .cart_totals table.pn-summary tr:first-child > th,
body.pn .woocommerce .cart_totals table.pn-summary tr:first-child > td {
	padding-top: 0;
}

body.pn .woocommerce .cart_totals table.pn-summary tr:has(+ tr.order-total) > th,
body.pn .woocommerce .cart_totals table.pn-summary tr:has(+ tr.order-total) > td {
	padding-bottom: 0.75rem;
}

body.pn .woocommerce .cart_totals table.pn-summary tr.order-total td strong,
body.pn .woocommerce table.pn-summary--checkout tr.order-total td strong {
	font-weight: inherit;
}

/* ---- Checkout fields (address-form.tsx): the label is inline text on a
   24px line, the input 4px under it, rows 16px apart ------------------- */
body.pn.woocommerce-checkout .pn-checkout__fields {
	row-gap: 1rem;
}

body.pn .woocommerce-checkout .pn-checkout__fields .form-row {
	line-height: 1.5rem;
}

body.pn .woocommerce-checkout .pn-checkout__fields .form-row label:not(.screen-reader-text):not(.checkbox) {
	display: inline;
	margin: 0;
	line-height: 1rem;
}

body.pn .woocommerce-checkout .pn-checkout__fields .form-row .woocommerce-input-wrapper {
	display: block;
	margin-top: 0.25rem;
	line-height: 1.25rem;
}

body.pn .woocommerce-checkout .pn-checkout__fields .form-row .woocommerce-input-wrapper > .input-text,
body.pn .woocommerce-checkout .pn-checkout__fields .form-row .woocommerce-input-wrapper > select {
	display: block;
	margin: 0;
}

/* native State select, as the storefront's <select> */
body.pn .woocommerce-checkout .pn-checkout__fields select {
	height: 2.75rem;
	line-height: normal;
}

/* cards inside the white Payment section are outlined, not filled */
body.pn.woocommerce-checkout .pn-wallet-card {
	background-color: transparent;
}

/* Order Summary amounts: regular weight; only the Total is bold */
body.pn .woocommerce table.pn-summary--checkout tfoot tr:not(.order-total) td,
body.pn .woocommerce table.pn-summary--checkout tfoot tr:not(.order-total) td strong {
	font-weight: 400;
}

/* chargeback notice: the plugin's inline #444 / margin on the paragraph */
body.pn .woocommerce-checkout .wcb-cb-agree > p {
	margin: 0 !important;
	color: inherit !important;
}

body.pn.woocommerce-checkout #place_order {
	padding-left: 0;
	padding-right: 0;
}

/* ---- My Account: the content card is at least as tall as the sidebar
   (account-dashboard.tsx grid stretches both columns) ---------------- */
@media (min-width: 1024px) {
	body.pn .pn-account .woocommerce > .woocommerce-MyAccount-content {
		align-self: stretch;
	}
}

/* Account Details (account-details form): inline label on a 24px line,
   input 6px under it, rows 20px apart */
body.pn .woocommerce-MyAccount-content .pn-account-form__grid .form-row {
	line-height: 1.5rem;
}

body.pn .woocommerce-MyAccount-content .pn-account-form__grid label {
	display: inline;
	line-height: 1.25rem;
}

body.pn .woocommerce-MyAccount-content .pn-account-form__grid .input-text,
body.pn .woocommerce-MyAccount-content .pn-account-form__grid .password-input {
	display: block;
}

/* Wallet transactions (wallet-tab.tsx): 10px/12px padding, amount centred */
body.pn .woocommerce-MyAccount-content .ww-txn-table .ww-txn-row {
	background: transparent;
	grid-template-rows: auto auto !important;
	grid-template-areas: 'desc amount' 'date amount' !important;
	row-gap: 0 !important;
}

body.pn .woocommerce-MyAccount-content .ww-txn-table .ww-txn-row .ww-txn-cell--amount {
	grid-area: amount !important;
	align-self: center;
}

body.pn .woocommerce-MyAccount-content .woo-wallet-transactions-list {
	overflow: visible;
}

/* Dashboard (dashboard-tab.tsx): Tailwind line-heights; generic content
   margins on h2/p no longer push the subtitle 12px down */
body.pn .woocommerce-MyAccount-content .pn-dash__title {
	margin: 0;
	line-height: 1.75rem;
}

body.pn .woocommerce-MyAccount-content .pn-dash__sub {
	margin: 0.25rem 0 0;
	line-height: 1.25rem;
}

body.pn .woocommerce-MyAccount-content .pn-dash__stat-label,
body.pn .woocommerce-MyAccount-content .pn-dash__link-desc {
	line-height: 1rem;
}

body.pn .woocommerce-MyAccount-content .pn-dash__h3,
body.pn .woocommerce-MyAccount-content .pn-dash__link-title,
body.pn .woocommerce-MyAccount-content .pn-dash__empty p {
	line-height: 1.25rem;
}

body.pn .woocommerce-MyAccount-content .pn-dash__empty p {
	margin: 0 0 0.75rem;
}

/* Wallet rows: 20px description + 16px date lines (TeraWallet's own rule was winning) */
body.pn .woocommerce-MyAccount-content .ww-txn-table .ww-txn-row .ww-txn-cell--desc {
	line-height: 1.25rem;
}

body.pn .woocommerce-MyAccount-content .ww-txn-table .ww-txn-row .ww-txn-cell--date {
	line-height: 1rem;
}
