/* ==========================================================================
   PrimatePet — My Account · Auth · Wishlist · Login-modal forms
   Owner: P7 (tuju-account).  Depends on pp-tokens.css (P1) for every colour and
   type token — nothing is re-declared here.  pp-base.css (P1) supplies `.pp-btn`
   and `.pp-btn--ghost`; this file only adds the `--primary` / `--block` modifiers.

   Loaded SITE-WIDE (the wishlist hearts are on cards/PDP/header and the
   login-register modal is printed in the footer of every page).
   ⛔ Deliberately NOT inlined into wp_head — a sitewide inlined stylesheet has
      produced a FALSE PASS on the `/my-account/` grep assertions before.
   ========================================================================== */

/* ==========================================================================
   0. Button modifiers used by the account templates
   ========================================================================== */
.pp-btn--primary {
	background-color: var(--pp-brand);
	color: #fff;
}
.pp-btn--primary:hover,
.pp-btn--primary:focus {
	background-color: var(--pp-primary);
	color: #fff;
}
.pp-btn--block {
	display: flex;
	width: 100%;
	padding: 0 24px;
}

/* ==========================================================================
   1. ⛔⛔ THE RAIL NEUTRALISER — the pipeline's most-repeated defect ⛔⛔

   WooCommerce ships, in its own woocommerce-layout.css:

       .woocommerce-account .woocommerce-MyAccount-navigation { float:left; width:30% }
       .woocommerce-account .woocommerce-MyAccount-content    { float:right; width:68% }

   That is **0,2,0** specificity. It beats any single-class `.…-sidebar` rule and —
   critically — `float` takes the rail OUT OF GRID FLOW, so the grid track it was
   assigned collapses and the rail shrink-to-fits to ~84px: icons only, labels gone
   or wrapped one-word-per-line.

   Neutralised below at **0,3,0** (`.woocommerce-account` + `.pp-account` +
   `.woocommerce-MyAccount-navigation`), which is >= Woo's, and with `float:none`
   so the element returns to grid flow. `min-width: 0` on the content column stops
   a wide table/`<pre>` from pushing the rail out again.

   Woo's own smallscreen reset only starts at <=768px, which is why the 769–991px
   band is the one that keeps shipping broken — the neutraliser here is
   UNCONDITIONAL, so every width is covered, not just the ones below Woo's reset.
   ========================================================================== */
.woocommerce-account .pp-account .woocommerce-MyAccount-navigation,
.woocommerce-account .pp-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation.pp-account__nav,
.woocommerce-account .woocommerce-MyAccount-content.pp-account__content {
	float: none;
	width: auto;
	max-width: none;
	margin: 0;
	padding: 0;
	min-width: 0;        /* the content column must be allowed to shrink */
}

/* Clear Woo's `.col2-set`/`.u-columns` float scaffolding inside the account. */
.woocommerce-account .pp-account::after {
	content: "";
	display: block;
	clear: both;
}

/* ---- The grid itself. Rail is PINNED in px; content is minmax(0, 1fr). ---- */
.pp-account {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 30px;
	align-items: start;
	margin: 0 0 70px;
	font-family: var(--pp-font);
	color: var(--pp-body);
	font-size: var(--pp-fs-body);
	line-height: 1.7;
}

/* 769–991px — Woo's smallscreen reset has NOT kicked in here. The rail is still
   full-width (stacked) but it is a real, measurable full-width block, not an 84px
   shrink-wrapped stub. This is the band that is always missed. */
@media (min-width: 769px) and (max-width: 991px) {
	.pp-account {
		grid-template-columns: minmax(0, 1fr);
		gap: 34px;
	}
	/* 2-up, not 3-up: at 3-up the 690px rail gives ~220px cells and the longest
	   label ("Account details") ellipsises. Measured, not guessed. */
	.pp-account__menu {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}
	.pp-account__menu > li { margin: 0; }
}

@media (min-width: 992px) {
	.pp-account {
		grid-template-columns: 270px minmax(0, 1fr);
		gap: 30px;
	}
}
@media (min-width: 1200px) {
	.pp-account {
		grid-template-columns: 300px minmax(0, 1fr);
		gap: 40px;
	}
}

.pp-account__nav { align-self: start; }

@media (min-width: 992px) {
	.pp-account__nav { position: sticky; top: 24px; }
}

/* ==========================================================================
   2. The nav rail
   ========================================================================== */
.pp-account__card {
	background-color: #fff;
	border: 2px solid rgba(var(--pp-primary-rgb), 0.08);
	border-radius: var(--pp-radius-0);
	padding: 18px 20px;
}

.pp-account__who {
	display: flex;
	align-items: center;
	gap: 12px;
	background-color: var(--pp-cream);
	border-color: transparent;
	margin-bottom: 14px;
}
.pp-account__who-avatar {
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	overflow: hidden;
	line-height: 0;
}
.pp-account__who-avatar img { width: 48px; height: 48px; border-radius: 50%; }
.pp-account__who-text { display: block; min-width: 0; }
.pp-account__who-hi {
	display: block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--pp-muted);
	line-height: 1.4;
}
.pp-account__who-name {
	display: block;
	font-family: var(--pp-font);
	font-size: 17px;
	font-weight: 700;
	color: var(--pp-primary);
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.pp-account__who-mail {
	display: block;
	font-size: 13px;
	color: var(--pp-body);
	line-height: 1.4;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.pp-account__menu {
	list-style: none;
	margin: 0;
	padding: 0;
}
.pp-account__menu > li { margin: 0 0 8px; padding: 0; }
.pp-account__menu > li:last-child { margin-bottom: 0; }

.pp-account__menu > li > a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	border: 2px solid rgba(var(--pp-primary-rgb), 0.08);
	border-radius: var(--pp-radius-0);
	background-color: #fff;
	font-family: var(--pp-font);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--pp-primary);
	text-decoration: none;
	transition: var(--pp-ease-fast);
}

/* ⛔ LABELS STAY ON ONE LINE. A wrapping label is the second symptom of the
   rail defect — it is how a squeezed rail presents before it fully collapses. */
.pp-account__menu-label {
	flex: 1 1 auto;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.pp-account__menu-ico {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	line-height: 0;
	color: currentColor;
}
.pp-account__menu-ico svg { width: 20px; height: 20px; display: block; }

.pp-account__menu-chev {
	flex: 0 0 14px;
	width: 14px;
	height: 14px;
	line-height: 0;
	opacity: 0;
	transform: translateX(-4px);
	transition: var(--pp-ease-fast);
}
.pp-account__menu-chev svg { width: 14px; height: 14px; display: block; }

.pp-account__menu-badge {
	flex: 0 0 auto;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 20px;
	background-color: var(--pp-wish-badge);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 20px;
	text-align: center;
}
.pp-account__menu-badge[data-tip="0"] { display: none; }

.pp-account__menu > li > a:hover,
.pp-account__menu > li > a:focus-visible {
	border-color: var(--pp-brand);
	color: var(--pp-brand);
}
.pp-account__menu > li > a:hover .pp-account__menu-chev,
.pp-account__menu > li > a:focus-visible .pp-account__menu-chev {
	opacity: 1;
	transform: translateX(0);
}

.pp-account__menu > li.is-active > a {
	background-color: var(--pp-brand);
	border-color: var(--pp-brand);
	color: #fff;
}
.pp-account__menu > li.is-active > a .pp-account__menu-chev {
	opacity: 1;
	transform: translateX(0);
}
.pp-account__menu > li.is-active > a .pp-account__menu-badge {
	background-color: #fff;
	color: var(--pp-brand);
}

/* Logout reads as the terminal action. */
.pp-account__menu > li.woocommerce-MyAccount-navigation-link--customer-logout > a { color: var(--pp-body); }
.pp-account__menu > li.woocommerce-MyAccount-navigation-link--customer-logout > a:hover {
	border-color: var(--pp-brand);
	color: var(--pp-brand);
}

.pp-account__help { margin-top: 14px; }
.pp-account__help-title {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--pp-muted);
	margin-bottom: 8px;
}
.pp-account__help-row {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: var(--pp-primary);
	line-height: 1.9;
	text-decoration: none;
	word-break: break-word;
}
.pp-account__help-row:hover { color: var(--pp-brand); }

/* ==========================================================================
   3. Content column
   ========================================================================== */
.pp-account__content > :last-child { margin-bottom: 0; }

.pp-account__head {
	font-family: var(--pp-font-display);
	font-size: 34px;
	line-height: 1.25;
	font-weight: 600;
	color: var(--pp-primary);
	margin: 0 0 18px;
}
.pp-account__lede {
	font-size: 16px;
	line-height: 1.75;
	color: var(--pp-body);
	margin: 0 0 24px;
}

.pp-account__hello {
	background-color: var(--pp-cream);
	padding: 30px 32px;
	margin-bottom: 24px;
}
.pp-account__hello-title {
	font-family: var(--pp-font-display);
	font-size: 36px;
	line-height: 1.2;
	font-weight: 600;
	color: var(--pp-primary);
	margin: 0 0 10px;
}
.pp-account__hello-sub {
	font-size: 16px;
	line-height: 1.75;
	color: var(--pp-body);
	margin: 0 0 8px;
}
.pp-account__hello-meta { font-size: 14px; color: var(--pp-muted); margin: 0; }
.pp-account__hello-meta a { color: var(--pp-brand); font-weight: 600; }

/* ---- Stat tiles ---- */
.pp-account__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
}
.pp-account__stat { margin: 0; }
.pp-account__stat > a {
	display: block;
	padding: 20px 18px;
	border: 2px solid rgba(var(--pp-primary-rgb), 0.08);
	text-decoration: none;
	transition: var(--pp-ease-fast);
	height: 100%;
}
.pp-account__stat > a:hover { border-color: var(--pp-brand); }
.pp-account__stat-n {
	display: block;
	font-family: var(--pp-font-display);
	font-size: 34px;
	line-height: 1.1;
	font-weight: 600;
	color: var(--pp-brand);
}
.pp-account__stat-l {
	display: block;
	margin-top: 4px;
	font-size: 14px;
	font-weight: 600;
	color: var(--pp-primary);
	line-height: 1.35;
}
@media (max-width: 575px) {
	.pp-account__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
	.pp-account__stat > a { padding: 14px 10px; }
	.pp-account__stat-n { font-size: 26px; }
	.pp-account__stat-l { font-size: 12px; }
}

/* ---- Panels ---- */
.pp-account__panel {
	border: 2px solid rgba(var(--pp-primary-rgb), 0.08);
	padding: 24px 26px;
	margin-bottom: 24px;
}
.pp-account__panel-title {
	font-family: var(--pp-font);
	font-size: 18px;
	font-weight: 700;
	color: var(--pp-primary);
	margin: 0 0 16px;
	letter-spacing: 0.01em;
}
.pp-account__panel-more { margin: 16px 0 0; font-size: 15px; }
.pp-account__panel-more a { color: var(--pp-brand); font-weight: 600; }

.pp-account__orders-mini { list-style: none; margin: 0; padding: 0; }
.pp-account__order-mini {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1.3fr) auto;
	gap: 12px;
	align-items: center;
	padding: 14px 0;
	border-top: 1px solid rgba(var(--pp-primary-rgb), 0.08);
	font-size: 15px;
}
.pp-account__order-mini:first-child { border-top: 0; padding-top: 0; }
.pp-account__order-id a { font-weight: 700; color: var(--pp-primary); text-decoration: none; }
.pp-account__order-id a:hover { color: var(--pp-brand); }
.pp-account__order-date { color: var(--pp-muted); }
.pp-account__order-total { color: var(--pp-primary); font-weight: 600; }
.pp-account__order-go .pp-btn { padding: 0 22px; line-height: 38px; font-size: 14px; }
.pp-account__order-go .pp-btn--ghost { line-height: 34px; }

@media (max-width: 767px) {
	.pp-account__order-mini {
		grid-template-columns: minmax(0, 1fr) auto;
		row-gap: 4px;
	}
	.pp-account__order-id { grid-column: 1; }
	.pp-account__order-go { grid-column: 2; grid-row: 1 / span 4; align-self: center; }
	.pp-account__order-date,
	.pp-account__order-status,
	.pp-account__order-total { grid-column: 1; }
}

.pp-account__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pp-account__links a {
	display: block;
	padding: 14px 18px;
	border: 2px solid rgba(var(--pp-primary-rgb), 0.08);
	font-weight: 700;
	font-size: 16px;
	color: var(--pp-primary);
	text-decoration: none;
	transition: var(--pp-ease-fast);
}
.pp-account__links a small {
	display: block;
	margin-top: 3px;
	font-weight: 400;
	font-size: 14px;
	color: var(--pp-body);
}
.pp-account__links a:hover { border-color: var(--pp-brand); color: var(--pp-brand); }
.pp-account__links a:hover small { color: var(--pp-body); }
@media (min-width: 768px) {
	.pp-account__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---- Empty states ---- */
.pp-account__empty {
	text-align: center;
	padding: 34px 20px;
	background-color: var(--pp-cream);
}
.pp-account__empty-title {
	font-family: var(--pp-font);
	font-size: 18px;
	font-weight: 700;
	color: var(--pp-primary);
	margin: 0 0 6px;
}
.pp-account__empty-sub {
	font-size: 15px;
	color: var(--pp-body);
	margin: 0 0 18px;
	line-height: 1.7;
}

.pp-account__back { margin-top: 26px; font-size: 15px; }
.pp-account__back a { color: var(--pp-brand); font-weight: 600; }

/* ==========================================================================
   4. Order status chips + tables
   ========================================================================== */
.pp-status {
	display: inline-block;
	padding: 3px 12px;
	border-radius: 100px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 0.02em;
	background-color: rgba(var(--pp-primary-rgb), 0.06);
	color: var(--pp-primary);
	white-space: nowrap;
}
.pp-status--on-hold    { background-color: rgba(254, 218, 70, 0.45); color: #6a5300; }
.pp-status--processing { background-color: rgba(45, 227, 50, 0.18);  color: #136b16; }
.pp-status--completed  { background-color: rgba(45, 227, 50, 0.22);  color: #0f5a12; }
.pp-status--cancelled,
.pp-status--failed,
.pp-status--refunded   { background-color: rgba(var(--pp-brand-rgb), 0.12); color: var(--pp-brand); }
.pp-status--pending    { background-color: rgba(var(--pp-primary-rgb), 0.07); color: var(--pp-body); }

.pp-account__tablewrap { width: 100%; overflow-x: auto; }

.woocommerce-account .pp-account table.pp-table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
	border-radius: 0;
	margin: 0;
	font-size: 15px;
}
.woocommerce-account .pp-account table.pp-table th,
.woocommerce-account .pp-account table.pp-table td {
	padding: 14px 14px;
	border: 0;
	border-bottom: 1px solid rgba(var(--pp-primary-rgb), 0.08);
	text-align: left;
	vertical-align: middle;
	line-height: 1.5;
}
.woocommerce-account .pp-account table.pp-table thead th {
	font-family: var(--pp-font);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--pp-muted);
	border-bottom-width: 2px;
	white-space: nowrap;
}
.woocommerce-account .pp-account table.pp-table tbody tr:last-child td,
.woocommerce-account .pp-account table.pp-table tbody tr:last-child th { border-bottom: 0; }
.pp-order-no { font-weight: 700; color: var(--pp-primary); text-decoration: none; }
.pp-order-no:hover { color: var(--pp-brand); }

.woocommerce-account .pp-account table.pp-table .woocommerce-orders-table__cell-order-actions {
	text-align: right;
	white-space: nowrap;
}
.woocommerce-account .pp-account table.pp-table .woocommerce-orders-table__cell-order-actions .pp-btn {
	padding: 0 20px;
	line-height: 34px;
	font-size: 14px;
	margin-left: 6px;
}

/* Stacked cards below 768 — Woo's own shop_table_responsive uses data-title. */
@media (max-width: 767px) {
	.woocommerce-account .pp-account table.pp-table thead { display: none; }
	.woocommerce-account .pp-account table.pp-table,
	.woocommerce-account .pp-account table.pp-table tbody,
	.woocommerce-account .pp-account table.pp-table tr,
	.woocommerce-account .pp-account table.pp-table th,
	.woocommerce-account .pp-account table.pp-table td { display: block; width: 100%; }
	.woocommerce-account .pp-account table.pp-table tr {
		border: 2px solid rgba(var(--pp-primary-rgb), 0.08);
		margin-bottom: 12px;
		padding: 6px 2px;
	}
	.woocommerce-account .pp-account table.pp-table th,
	.woocommerce-account .pp-account table.pp-table td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 14px;
		border-bottom: 0;
		padding: 8px 14px;
		text-align: right;
	}
	.woocommerce-account .pp-account table.pp-table th::before,
	.woocommerce-account .pp-account table.pp-table td::before {
		content: attr(data-title);
		flex: 0 0 auto;
		font-size: 12px;
		font-weight: 700;
		letter-spacing: 0.05em;
		text-transform: uppercase;
		color: var(--pp-muted);
		text-align: left;
	}
	.woocommerce-account .pp-account table.pp-table td.woocommerce-orders-table__cell-order-actions::before { display: none; }
	.woocommerce-account .pp-account table.pp-table td.woocommerce-orders-table__cell-order-actions { justify-content: flex-end; }
	.woocommerce-account .pp-account table.pp-table td.woocommerce-orders-table__cell-order-actions .pp-btn { margin: 4px 0 4px 6px; }
}

.pp-account__pager { display: flex; gap: 10px; margin-top: 22px; }

.pp-order-intro { font-size: 16px; line-height: 1.8; margin: 0 0 24px; }
.pp-order-intro mark { background: transparent; color: var(--pp-primary); font-weight: 700; }
.pp-order-notes { list-style: none; margin: 0; padding: 0; }
.pp-order-note { padding: 14px 0; border-top: 1px solid rgba(var(--pp-primary-rgb), 0.08); }
.pp-order-note:first-child { border-top: 0; padding-top: 0; }
.pp-order-note .meta { font-size: 13px; color: var(--pp-muted); margin: 0 0 6px; }
.pp-order-note .description p:last-child { margin-bottom: 0; }

/* ==========================================================================
   5. Addresses
   ========================================================================== */
.woocommerce-account .pp-account .pp-account__addresses {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	width: 100%;
}
@media (min-width: 768px) {
	.woocommerce-account .pp-account .pp-account__addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* The source theme intended a border here but shipped an invalid
   `rgba(, , , 0.3)` (a failed Redux interpolation), so nothing rendered.
   Overridden at 0,3,0 so Woo's own `max-width: 48%` + float cannot win. */
.woocommerce-account .pp-account .woocommerce-Address {
	float: none;
	width: auto;
	max-width: none;
	margin: 0;
	padding: 22px 24px;
	border: 2px solid rgba(var(--pp-primary-rgb), 0.08);
}
.pp-address__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}
.pp-address__head h3 {
	font-family: var(--pp-font);
	font-size: 17px;
	font-weight: 700;
	color: var(--pp-primary);
	margin: 0;
}
.pp-address__edit {
	font-size: 14px;
	font-weight: 600;
	color: var(--pp-brand);
	text-decoration: none;
	white-space: nowrap;
}
.pp-address__edit:hover { text-decoration: underline; }
.pp-address__body {
	font-style: normal;
	font-size: 15px;
	line-height: 1.85;
	color: var(--pp-body);
	margin: 0;
}
.pp-address__empty { color: var(--pp-muted); }

/* ==========================================================================
   6. Forms (account details, addresses, auth cards)
   ========================================================================== */
.pp-form { margin: 0; }
.pp-form__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0 18px;
}
@media (min-width: 768px) {
	.pp-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pp-form__grid > .form-row-wide,
	.pp-form__grid > .woocommerce-form-row--wide { grid-column: 1 / -1; }
}

.woocommerce-account .pp-account .form-row,
.pp-auth .pp-form .form-row {
	display: block;
	float: none;
	width: auto;
	margin: 0 0 18px;
	padding: 0;
}
.woocommerce-account .pp-account .form-row label,
.pp-auth .pp-form .form-row label {
	display: block;
	margin-bottom: 7px;
	font-family: var(--pp-font);
	font-size: 14px;
	font-weight: 600;
	color: var(--pp-primary);
	line-height: 1.4;
}
.woocommerce-account .pp-account .form-row .required { color: var(--pp-brand); text-decoration: none; border: 0; }

/* Input shape is MEASURED from the source cascade:
   1px solid #B1B1B1 · radius 0 · padding 17px 29px · 16px Anybody · color #798076. */
.woocommerce-account .pp-account input[type="text"],
.woocommerce-account .pp-account input[type="email"],
.woocommerce-account .pp-account input[type="tel"],
.woocommerce-account .pp-account input[type="password"],
.woocommerce-account .pp-account input[type="url"],
.woocommerce-account .pp-account input[type="number"],
.woocommerce-account .pp-account textarea,
.woocommerce-account .pp-account select,
.pp-auth input[type="text"],
.pp-auth input[type="email"],
.pp-auth input[type="password"] {
	width: 100%;
	height: 54px;
	padding: 14px 20px;
	border: 1px solid var(--pp-border);
	border-radius: var(--pp-radius-0);
	background-color: #fff;
	font-family: var(--pp-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--pp-input-text);
	box-shadow: none;
	outline: none;
	transition: border-color var(--pp-ease-fast);
}
.woocommerce-account .pp-account textarea { height: auto; min-height: 120px; }
.woocommerce-account .pp-account input:focus,
.woocommerce-account .pp-account textarea:focus,
.woocommerce-account .pp-account select:focus,
.pp-auth input:focus { border-color: var(--pp-brand); }

.pp-form__hint {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	line-height: 1.6;
	color: var(--pp-muted);
}
.pp-form__hint em { font-style: normal; }

.pp-form__fieldset {
	border: 0;
	border-top: 2px solid rgba(var(--pp-primary-rgb), 0.08);
	margin: 10px 0 0;
	padding: 22px 0 0;
}
.pp-form__legend {
	font-family: var(--pp-font);
	font-size: 17px;
	font-weight: 700;
	color: var(--pp-primary);
	padding: 0;
	margin-bottom: 14px;
}

.pp-form__actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	margin: 12px 0 0;
}
.pp-form__cancel { font-size: 15px; font-weight: 600; color: var(--pp-body); text-decoration: none; }
.pp-form__cancel:hover { color: var(--pp-brand); }
.pp-form__row-inline {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
}
.pp-check { display: inline-flex; align-items: center; gap: 8px; margin: 0 !important; font-weight: 400 !important; }
.pp-check input { width: 17px; height: 17px; margin: 0; accent-color: var(--pp-brand); }
.pp-check span { font-size: 15px; color: var(--pp-body); }

/* ==========================================================================
   7. Logged-out /my-account/ — Login + Create account
      (replaces the source's bare `<h2>Login</h2>` + stock Woo form)
   ========================================================================== */
.pp-auth {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	align-items: start;
	margin: 0 0 70px;
	font-family: var(--pp-font);
	color: var(--pp-body);
}
@media (min-width: 992px) {
	.pp-auth--split { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
}
.pp-auth--single { max-width: 520px; margin-left: auto; margin-right: auto; }

.pp-auth__card {
	background-color: #fff;
	border: 2px solid rgba(var(--pp-primary-rgb), 0.08);
	padding: 36px 34px;
	min-width: 0;
}
.pp-auth__card--register { background-color: var(--pp-cream); border-color: transparent; }
.pp-auth__card--confirm { text-align: center; }

.pp-auth__title {
	font-family: var(--pp-font-display);
	font-size: 28px;
	line-height: 1.2;
	font-weight: 600;
	color: var(--pp-primary);
	margin: 0 0 8px;
}
.pp-auth__sub {
	font-size: 15px;
	line-height: 1.7;
	color: var(--pp-body);
	margin: 0 0 22px;
}
.pp-auth__forgot { font-size: 14px; font-weight: 600; color: var(--pp-brand); text-decoration: none; }
.pp-auth__forgot:hover { text-decoration: underline; }
.pp-auth__swap {
	margin: 20px 0 0;
	font-size: 15px;
	color: var(--pp-muted);
	text-align: center;
}
.pp-auth__swap a { color: var(--pp-brand); font-weight: 600; text-decoration: none; margin-left: 6px; }
.pp-auth__swap a:hover { text-decoration: underline; }
.pp-auth__tick {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background-color: var(--pp-accent);
	color: var(--pp-primary);
	margin-bottom: 16px;
}
.pp-auth__tick svg { width: 30px; height: 30px; }

/* Arriving via ?action=register — highlight the register card briefly. */
.pp-focus-register .pp-auth__card--register {
	outline: 2px solid var(--pp-brand);
	outline-offset: 4px;
}

/* Woo's notice stack inside the auth/account screens. */
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info {
	border-top-color: var(--pp-brand);
	font-size: 15px;
}

/* ==========================================================================
   8. Login / Register MODAL form bodies
      P1 owns the shell (.pp-modal / overlay / open-close). This block styles
      ONLY the panels and fields that parts/login-modal-forms.php prints.
      Source-measured: content max-width 400px, #fff, radius 5px,
      shadow 0 0 10px rgba(0,0,0,.12), padding 50px; heading 28px/500 centered;
      field-group margin-bottom 15px; icon 20px absolute left 17px.
   ========================================================================== */
.pp-user-forms { width: 100%; }
.pp-user.is-hidden { display: none; }

.pp-user__content {
	max-width: 400px;
	margin: 0 auto;
	background-color: #fff;
	border-radius: 5px;
	box-shadow: var(--pp-shadow-modal);
	padding: 50px;
}
@media (max-width: 575px) {
	.pp-user__content { padding: 34px 20px 24px; }
}

.pp-user__heading {
	font-family: var(--pp-font-display);
	font-weight: 500;
	line-height: 1.1;
	font-size: 28px;
	text-align: center;
	color: var(--pp-primary);
	margin: 0 0 30px;
}

.pp-user__fields { display: block; }
.pp-user .field-group { position: relative; margin-bottom: 15px; }
.pp-user .field-group:last-child { margin-bottom: 0; }

.pp-user .field-group > .input {
	width: 100%;
	height: 54px;
	border: 1px solid #e9e9e9;
	border-radius: var(--pp-radius-0);
	background-color: #fff;
	padding: 14px 18px 14px 52px;
	font-family: var(--pp-font);
	font-size: 16px;
	line-height: 1.5;
	color: var(--pp-input-text);
	outline: none;
	transition: border-color var(--pp-ease-fast);
}
.pp-user .field-group > .input:hover,
.pp-user .field-group > .input:focus { border-color: var(--pp-primary); }
.pp-user .field-group > .input::placeholder { color: var(--pp-input-text); opacity: 1; }
.pp-user .field-group > .input.pp-invalid { border-color: var(--pp-brand); }

.pp-user .field-icon {
	position: absolute;
	width: 20px;
	height: 20px;
	z-index: 2;
	top: 17px;
	left: 17px;
	line-height: 0;
	color: var(--pp-muted);
	pointer-events: none;
}
.pp-user .field-icon svg { width: 20px; height: 20px; display: block; }

.pp-user .field-error {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--pp-brand);
}

.pp-user .field-dflex {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}
.pp-user .field-rememberme {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--pp-body);
	cursor: pointer;
	margin: 0;
}
.pp-user .field-rememberme input { width: 16px; height: 16px; margin: 0; accent-color: var(--pp-brand); }
.pp-user .field-forgot-password a { font-size: 14px; font-weight: 500; color: var(--pp-brand); text-decoration: none; }
.pp-user .field-forgot-password a:hover { text-decoration: underline; }

.pp-user .field-footer-group {
	position: relative;
	display: flex;
	justify-content: center;
	margin-top: 20px;
}
.pp-user .field-footer-group .pp-btn { text-transform: uppercase; }
.pp-user .field-footer-group .pp-btn[disabled] { opacity: 0.6; cursor: progress; }

.pp-user__notice {
	display: none;
	margin: 4px 0 0;
	padding: 10px 14px;
	font-size: 14px;
	line-height: 1.55;
	border-left: 3px solid var(--pp-brand);
	background-color: rgba(var(--pp-brand-rgb), 0.07);
	color: var(--pp-primary);
}
.pp-user__notice.is-on { display: block; }
.pp-user__notice.is-ok {
	border-left-color: var(--pp-sale);
	background-color: rgba(45, 227, 50, 0.1);
}

.pp-user__footer { padding-top: 15px; text-align: center; font-size: 15px; }
.pp-user__footer span { color: var(--pp-muted); }
.pp-user__footer a { font-weight: 500; color: var(--pp-brand); text-decoration: none; margin-left: 8px; }
.pp-user__footer a:hover { color: var(--pp-primary); text-decoration: underline; }

.pp-user__forgot { text-align: center; margin-top: 8px; }
.pp-user__forgot a { font-size: 14px; font-weight: 500; color: var(--pp-brand); text-decoration: none; }
.pp-user__forgot a:hover { color: var(--pp-primary); text-decoration: underline; }

/* ==========================================================================
   9. Wishlist — buttons, header badge, list, toast
   ========================================================================== */

/* ---- The heart button (cards + PDP).  Measured: 56x56, #FEDA46, #000, radius 0.
   P1's pp-base.css already styles `.pp-card__wish`; these rules are scoped to our
   own class so they stack rather than fight. ---- */
.pp-wl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 0;
	padding: 0;
	cursor: pointer;
	font-family: var(--pp-font);
	background-color: var(--pp-accent);
	color: var(--pp-primary);
	border-radius: var(--pp-radius-0);
	transition: var(--pp-ease-fast);
}
.pp-wl-btn--card,
.pp-wl-btn--pdp {
	width: var(--pp-wish-size);
	height: var(--pp-wish-size);
	flex: 0 0 var(--pp-wish-size);
}
.pp-wl-btn--card .pp-wl-btn__text,
.pp-wl-btn--pdp .pp-wl-btn__text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.pp-wl-btn__icon { display: inline-flex; line-height: 0; }
.pp-wl-btn__icon svg { width: 22px; height: 22px; display: block; }
.pp-wl-btn:hover { background-color: var(--pp-brand); color: #fff; }
.pp-wl-btn.is-added { background-color: var(--pp-brand); color: #fff; }
.pp-wl-btn.is-busy { opacity: 0.6; cursor: progress; }

.pp-wl-btn--inline {
	height: 44px;
	padding: 0 20px;
	font-size: 15px;
	font-weight: 700;
}

/* ---- Header icon + count badge. Measured badge: 15x15, #fff on #F10505,
   radius 15, 10px/600, absolute top 0 right -2, display:none at 0. ---- */
.pp-wl-link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	color: var(--pp-primary);
	transition: var(--pp-ease-fast);
}
.pp-wl-link:hover { color: var(--pp-brand); }
.pp-wl-link__icon { line-height: 0; }
.pp-wl-link__icon svg { width: 22px; height: 22px; display: block; }
.pp-wl-link__count,
.pp-wish-count {
	position: absolute;
	top: 0;
	right: -2px;
	width: 15px;
	height: 15px;
	line-height: 15px;
	border-radius: 15px;
	background-color: var(--pp-wish-badge);
	color: #fff;
	font-family: var(--pp-font);
	font-size: 10px;
	font-weight: 600;
	text-align: center;
}
.pp-wl-link__count[data-tip="0"],
.pp-wish-count[data-tip="0"] { display: none; }

/* ---- The list (page + account tab) ---- */
.pp-wishlist { font-family: var(--pp-font); color: var(--pp-body); }
.pp-wishlist__title {
	font-family: var(--pp-font-display);
	font-size: 34px;
	line-height: 1.25;
	font-weight: 600;
	color: var(--pp-primary);
	margin: 0 0 18px;
}
.pp-wishlist__scroll { width: 100%; overflow-x: auto; }

.pp-wishlist__table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
	font-size: 15px;
}
.pp-wishlist__table thead th {
	padding: 12px 14px;
	border-bottom: 2px solid rgba(var(--pp-primary-rgb), 0.08);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--pp-muted);
	text-align: left;
	white-space: nowrap;
}
.pp-wishlist__table thead th.pp-wishlist__col-remove,
.pp-wishlist__cell-remove { width: 48px; text-align: center; }
.pp-wishlist__table thead th.pp-wishlist__col-image { width: 110px; }

.pp-wishlist__cell {
	padding: 16px 14px;
	border-bottom: 1px solid rgba(var(--pp-primary-rgb), 0.08);
	vertical-align: middle;
}
.pp-wishlist__row:last-child .pp-wishlist__cell { border-bottom: 0; }
.pp-wishlist__row.is-going { opacity: 0.35; transition: opacity 0.25s ease; }

.pp-wishlist__cell-image img {
	display: block;
	width: 86px;
	height: auto;
	border-radius: 2px;
}
.pp-wishlist__name {
	font-family: var(--pp-font);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
	margin-bottom: 4px;
}
.pp-wishlist__name a { color: var(--pp-primary); text-decoration: none; }
.pp-wishlist__name a:hover { color: var(--pp-brand); }
.pp-wishlist__price { font-size: 18px; font-weight: 700; color: var(--pp-brand); line-height: 1.4; }
.pp-wishlist__price del { color: var(--pp-strike); font-weight: 400; font-size: 15px; margin-right: 6px; }
.pp-wishlist__price del bdi { text-decoration: line-through; }
.pp-wishlist__price ins { text-decoration: none; background: transparent; }
.pp-wishlist__time { font-size: 13px; color: var(--pp-muted); margin-top: 4px; }

.pp-wishlist__cell-actions { text-align: right; white-space: nowrap; }
.pp-wishlist__stock { font-size: 13px; font-weight: 600; margin-bottom: 8px; }
.pp-wishlist__stock.in-stock { color: #157a18; }
.pp-wishlist__stock.out-of-stock { color: var(--pp-muted); }
.pp-wishlist__atc .pp-btn { padding: 0 26px; line-height: 46px; font-size: 15px; }

.pp-wishlist__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 2px solid transparent;
	background: transparent;
	color: var(--pp-muted);
	cursor: pointer;
	transition: var(--pp-ease-fast);
}
.pp-wishlist__remove svg { width: 16px; height: 16px; }
.pp-wishlist__remove:hover { color: var(--pp-brand); border-color: var(--pp-brand); }

.pp-wishlist__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 24px;
}
.pp-wishlist__continue { font-size: 15px; font-weight: 600; color: var(--pp-brand); text-decoration: none; }
.pp-wishlist__continue:hover { text-decoration: underline; }
.pp-wishlist__clear {
	border: 0;
	background: none;
	padding: 0;
	font-family: var(--pp-font);
	font-size: 14px;
	color: var(--pp-muted);
	cursor: pointer;
	text-decoration: underline;
}
.pp-wishlist__clear:hover { color: var(--pp-brand); }

.pp-wishlist__copy {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 18px;
	font-size: 14px;
}
.pp-wishlist__copy-url { flex: 1 1 240px; min-width: 0; height: 44px !important; }

.pp-wishlist__empty {
	text-align: center;
	padding: 44px 20px;
	background-color: var(--pp-cream);
}
.pp-wishlist__empty-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background-color: var(--pp-accent);
	color: var(--pp-primary);
	margin-bottom: 16px;
}
.pp-wishlist__empty-icon svg { width: 32px; height: 32px; }
.pp-wishlist__empty-title {
	font-family: var(--pp-font);
	font-size: 19px;
	font-weight: 700;
	color: var(--pp-primary);
	margin: 0 0 6px;
}
.pp-wishlist__empty-sub { font-size: 15px; color: var(--pp-body); margin: 0 0 20px; line-height: 1.7; }

/* Stacked list below 768. */
@media (max-width: 767px) {
	.pp-wishlist__table thead { display: none; }
	.pp-wishlist__table,
	.pp-wishlist__table tbody,
	.pp-wishlist__row,
	.pp-wishlist__cell { display: block; width: 100%; }
	.pp-wishlist__row {
		position: relative;
		border: 2px solid rgba(var(--pp-primary-rgb), 0.08);
		margin-bottom: 12px;
		padding: 14px 14px 14px 112px;
		min-height: 120px;
	}
	.pp-wishlist__cell { border-bottom: 0; padding: 0; }
	.pp-wishlist__cell-image {
		position: absolute;
		left: 14px;
		top: 14px;
		width: 86px;
	}
	.pp-wishlist__cell-info { margin-bottom: 10px; }
	.pp-wishlist__cell-actions { text-align: left; white-space: normal; }
	.pp-wishlist__atc .pp-btn { width: 100%; }
	.pp-wishlist__cell-remove {
		position: absolute;
		top: 8px;
		right: 8px;
		width: auto;
	}
	.pp-wishlist__foot { flex-direction: column; align-items: flex-start; }
}

/* ---- Toast (source `message_position: "right-top"`) ---- */
.pp-wl-toast {
	position: fixed;
	top: 20px;
	right: 20px;
	z-index: 100000;
	max-width: 330px;
	padding: 14px 18px;
	background-color: var(--pp-primary);
	color: #fff;
	font-family: var(--pp-font);
	font-size: 14px;
	line-height: 1.5;
	border-left: 4px solid var(--pp-brand);
	box-shadow: var(--pp-shadow-menu);
	opacity: 0;
	transform: translateX(14px);
	transition: opacity 0.25s ease, transform 0.25s ease;
	pointer-events: none;
}
.pp-wl-toast.is-on { opacity: 1; transform: translateX(0); pointer-events: auto; }
.pp-wl-toast a { color: var(--pp-accent); font-weight: 700; text-decoration: none; }
.pp-wl-toast a:hover { text-decoration: underline; }
@media (max-width: 575px) {
	.pp-wl-toast { top: 12px; right: 12px; left: 12px; max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
	.pp-wl-toast,
	.pp-account__menu-chev,
	.pp-wishlist__row { transition: none; }
}

/* ==========================================================================
   10. ⛔ WOOCOMMERCE OUTRANKS US ON THE ACCOUNT FORMS — measured, not guessed.

   `:where()` contributes ZERO specificity, so WooCommerce selectors READ far
   weaker than they RESOLVE. Four agents hit this class of bug independently
   before the cause was spotted. Measured live on /my-account/ BEFORE this block:

       form.pp-form.login / .register   padding 20px · margin 32px 0px
                                        · border 0.666667px solid · radius 5px
       .woocommerce-form-login__submit  float: left · margin-right: 16px
       .pp-check (remember me)          display: block   (wanted inline-flex)

   The offenders, at their REAL specificity:
       .woocommerce form.login, .woocommerce form.register                      (0,2,1)
       .woocommerce .woocommerce-form-login .woocommerce-form-login__submit     (0,3,0)
       .woocommerce .woocommerce-form-login .woocommerce-form-login__rememberme (0,3,0)
       .woocommerce form .form-row label                                        (0,2,2)
       .woocommerce form .form-row .input-text                                  (0,3,1)
       .woocommerce form .form-row .required                                    (0,3,1)

   ⛔ TRAP 1: `body .woocommerce form.login` MATCHES NOTHING. WooCommerce puts
      `woocommerce` ON <body>, so `body .woocommerce` is a descendant combinator
      asking for a `.woocommerce` INSIDE body. It lints clean, reviews fine and
      does nothing. The working shape is `.woocommerce .pp-auth …`.
   ⛔ TRAP 2: our sheets load AFTER woocommerce.css, so a TIE resolves to us and
      matching (0,2,1) would be enough. We deliberately go ONE STEP ABOVE each
      offender anyway, so a future reorder of the enqueues cannot resurrect this.
   ========================================================================== */

/* Woo's bordered/padded form box -> our cards already supply the chrome. (0,3,1) */
.woocommerce .pp-auth form.pp-form,
.woocommerce .pp-account form.pp-form {
	border: 0;
	padding: 0;
	margin: 0;
	border-radius: 0;
	background: none;
}

/* The submit button must stay full-width and in flow, not floated left. (0,4,1) */
.woocommerce .pp-auth form.pp-form .pp-btn--block,
.woocommerce .pp-account form.pp-form .pp-btn--block,
.woocommerce .pp-auth form.pp-form .woocommerce-form-login__submit,
.woocommerce .pp-auth form.pp-form .woocommerce-form-register__submit {
	float: none;
	margin-right: 0;
	display: flex;
	width: 100%;
}

/* Remember-me stays on one line beside its checkbox. (0,4,1) */
.woocommerce .pp-auth form.pp-form .pp-check,
.woocommerce .pp-account form.pp-form .pp-check,
.woocommerce .pp-auth form.pp-form .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	width: auto;
	line-height: 1.4;
	margin: 0;
}

/* Woo sets line-height:2 on every form-row label; our scale is 1.4. (0,4,1) */
.woocommerce .pp-auth form.pp-form .form-row label,
.woocommerce .pp-account form.pp-form .form-row label {
	line-height: 1.4;
}

/* Inputs keep the MEASURED source shape, not Woo's .5em padding. (0,5,1) */
.woocommerce .pp-auth form.pp-form .form-row .input-text,
.woocommerce .pp-account form.pp-form .form-row .input-text {
	box-sizing: border-box;
	width: 100%;
	height: 54px;
	padding: 14px 20px;
	border: 1px solid var(--pp-border);
	border-radius: 0;
	background-color: #fff;
	font-family: var(--pp-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--pp-input-text);
}
.woocommerce .pp-auth form.pp-form .form-row .input-text:focus,
.woocommerce .pp-account form.pp-form .form-row .input-text:focus {
	border-color: var(--pp-brand);
}

/* Woo paints the required asterisk --wc-red (#e2401c); ours is brand. (0,5,1) */
.woocommerce .pp-auth form.pp-form .form-row .required,
.woocommerce .pp-account form.pp-form .form-row .required {
	color: var(--pp-brand);
	text-decoration: none;
}
