/* ============================================================
   Noir Essence — WooCommerce styling
   Restyles shop, product, cart, checkout and account pages to
   match the luxury cream-and-gold brand look.
   ============================================================ */

.ne-woo .ne-card { margin: 0 auto; max-width: var(--ne-maxw); }
.woocommerce-notices-wrapper:empty { display: none; }

/* Page titles inside shop / archive */
.woocommerce-products-header { text-align: center; margin-bottom: 40px; }
.woocommerce-products-header__title,
.ne-woo h1.entry-title,
.ne-woo .woocommerce-products-header__title {
	font-family: var(--ne-font-serif);
	font-size: clamp(2rem, 4vw, 3rem);
	margin: 0 0 8px;
}
.woocommerce-products-header::before {
	content: "";
	display: block;
	width: 32px; height: 1px;
	background: var(--ne-accent);
	margin: 0 auto 24px;
}
.term-description, .woocommerce-products-header .term-description { color: var(--ne-muted); max-width: 34rem; margin: 0 auto; }

/* Result count + ordering bar */
.woocommerce-result-count { color: var(--ne-muted); font-size: 14px; }
.woocommerce-ordering select,
.ne-woo select.orderby {
	border: 1px solid var(--ne-border);
	border-radius: 999px;
	padding: 8px 16px;
	background: #fff;
	font-family: inherit;
	color: var(--ne-foreground);
}

/* Breadcrumb */
.ne-breadcrumb { color: var(--ne-muted); font-size: 13px; margin-bottom: 24px; }
.ne-breadcrumb a { color: var(--ne-accent); }
.ne-bc-sep { color: var(--ne-border); margin: 0 4px; }

/* ---------- Product loop / grid ---------- */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 640px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); } }
/* WooCommerce adds clearfix ::before/::after to ul.products; under display:grid
   those become phantom grid items (the ::before steals the first cell and pushes
   the first product into column 2). Remove them. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after { content: none !important; display: none !important; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	text-align: left;
	position: relative;
}
.woocommerce ul.products li.product a img {
	margin: 0;
	border-radius: var(--ne-radius-md);
	background: var(--ne-soft);
	aspect-ratio: 1 / 1;
	object-fit: cover;
	width: 100%;
	transition: transform .5s ease;
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.04); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--ne-font-serif);
	font-size: 18px;
	font-weight: 500;
	color: var(--ne-foreground);
	padding: 16px 2px 0;
	margin: 0;
}
.woocommerce ul.products li.product .price {
	color: var(--ne-foreground);
	font-weight: 500;
	font-size: 15px;
	display: block;
	padding: 6px 2px 0;
}
.woocommerce ul.products li.product .price del { color: var(--ne-muted); font-weight: 400; margin-right: 8px; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .star-rating { margin: 8px 2px 0; color: var(--ne-accent); font-size: 14px; }

/* "Add to cart" button under loop items */
.woocommerce ul.products li.product .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--ne-foreground);
	color: #fff;
	border: 1px solid var(--ne-foreground);
	border-radius: 999px;
	padding: 12px 24px;
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	font-weight: 500;
	margin-top: 14px;
	transition: background .2s ease, color .2s ease;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover { background: #000; color: #fff; }

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background: var(--ne-accent);
	border-color: var(--ne-accent);
	color: #fff;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover { background: var(--ne-accent-dark); border-color: var(--ne-accent-dark); }

.woocommerce span.onsale {
	background: var(--ne-accent);
	color: #fff;
	border-radius: 999px;
	padding: 6px 14px;
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	min-height: 0;
	min-width: 0;
	line-height: 1.4;
	top: 12px;
	left: 12px;
}

/* ---------- Single product ---------- */
.woocommerce div.product { display: grid; grid-template-columns: 1fr; gap: 48px; }
@media (min-width: 1024px) { .woocommerce div.product { grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; } }
.woocommerce div.product .woocommerce-product-gallery {
	width: 100% !important;
	float: none;
	background: var(--ne-soft);
	border-radius: var(--ne-radius-md);
	padding: 24px;
}
@media (min-width: 1024px) { .woocommerce div.product .woocommerce-product-gallery { padding: 40px; } }
.woocommerce div.product .woocommerce-product-gallery img { border-radius: var(--ne-radius-sm); }
.woocommerce div.product div.summary { width: 100% !important; float: none; margin: 0; }
.woocommerce div.product .product_title {
	font-family: var(--ne-font-serif);
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	margin: 0 0 16px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--ne-foreground);
	font-size: 1.5rem;
	font-weight: 500;
	margin-bottom: 24px;
}
.woocommerce div.product p.price del { color: var(--ne-muted); font-weight: 400; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ne-muted); margin-bottom: 24px; }
.woocommerce div.product .woocommerce-product-rating { margin-bottom: 16px; }
.woocommerce .star-rating span::before, .woocommerce p.stars a { color: var(--ne-accent); }

.woocommerce div.product form.cart { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.woocommerce div.product form.cart .quantity input.qty {
	width: 72px;
	border: 1px solid var(--ne-border);
	border-radius: 999px;
	padding: 14px 12px;
	text-align: center;
	background: #fff;
}
.woocommerce div.product form.cart .button.single_add_to_cart_button {
	padding: 16px 36px;
	font-size: 13px;
	letter-spacing: .1em;
	border-radius: 999px;
}
.woocommerce div.product .product_meta { margin-top: 24px; color: var(--ne-muted); font-size: 13px; }
.woocommerce div.product .product_meta a { color: var(--ne-accent); }

/* Variations table */
.woocommerce div.product form.cart .variations { width: 100%; border: 0; margin-bottom: 8px; }
.woocommerce div.product form.cart .variations td, .woocommerce div.product form.cart .variations th { padding: 6px 0; }
.woocommerce div.product form.cart .variations select {
	border: 1px solid var(--ne-border);
	border-radius: 999px;
	padding: 10px 16px;
	background: #fff;
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs { grid-column: 1 / -1; margin-top: 24px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; border-bottom: 1px solid var(--ne-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--ne-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0 24px 0 0;
	padding: 0 0 12px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active,
.woocommerce div.product .woocommerce-tabs ul.tabs li:hover { border-bottom: 2px solid var(--ne-accent); }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--ne-foreground); font-weight: 500; text-transform: uppercase; font-size: 13px; letter-spacing: .08em; }
.woocommerce-Tabs-panel h2 { font-family: var(--ne-font-serif); }
.woocommerce-Tabs-panel p { color: var(--ne-muted); }

/* Related / upsells */
.woocommerce .related h2, .woocommerce .upsells h2, .woocommerce .cross-sells h2 {
	font-family: var(--ne-font-serif);
	font-size: 1.75rem;
	text-align: center;
	margin: 16px 0 32px;
}
.woocommerce .related, .woocommerce .upsells { grid-column: 1 / -1; }

/* ---------- Notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border-top: 0;
	border-radius: var(--ne-radius-sm);
	background: #fff;
	border: 1px solid var(--ne-border);
	color: var(--ne-foreground);
	padding: 16px 20px 16px 48px;
}
.woocommerce-message::before { color: var(--ne-accent); }
.woocommerce-info::before { color: var(--ne-accent); }
.woocommerce-message .button, .woocommerce-info .button { padding: 8px 18px; margin-top: 0; }

/* ---------- Forms (inputs) ---------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.select2-container--default .select2-selection--single {
	border: 1px solid var(--ne-border) !important;
	border-radius: 999px;
	padding: 12px 16px;
	background: #fff;
	font-family: inherit;
	color: var(--ne-foreground);
	min-height: 48px;
	line-height: 1.4;
}
.woocommerce form .form-row textarea { border-radius: var(--ne-radius-sm); min-height: 120px; }
.woocommerce form .form-row label { font-size: 14px; font-weight: 500; margin-bottom: 6px; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 24px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 12px; }

/* ---------- Cart ---------- */
.woocommerce table.shop_table {
	border: 1px solid var(--ne-border);
	border-radius: var(--ne-radius-md);
	border-collapse: separate;
	overflow: hidden;
}
.woocommerce table.shop_table th { font-family: var(--ne-font-sans); text-transform: uppercase; letter-spacing: .06em; font-size: 12px; color: var(--ne-muted); }
.woocommerce table.shop_table td { border-top: 1px solid var(--ne-border); }
.woocommerce a.remove { color: var(--ne-foreground) !important; border-radius: 999px; }
.woocommerce a.remove:hover { background: var(--ne-accent); color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; }
.woocommerce .cart_totals h2, .woocommerce-checkout h3, .woocommerce-cart h2 { font-family: var(--ne-font-serif); }
.woocommerce .cart-collaterals .cart_totals .order-total .amount { color: var(--ne-foreground); }
.woocommerce #coupon_code { border-radius: 999px; }

/* ---------- Checkout ---------- */
.woocommerce-checkout #payment { background: var(--ne-soft); border-radius: var(--ne-radius-md); }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--ne-border); }
.woocommerce-checkout #payment div.payment_box { background: #fff; border-radius: var(--ne-radius-sm); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }
#order_review_heading, .woocommerce-billing-fields h3, .woocommerce-shipping-fields h3 { font-family: var(--ne-font-serif); }
.woocommerce #payment #place_order, .woocommerce-checkout button#place_order {
	width: 100%;
	padding: 18px 32px;
	font-size: 13px;
	letter-spacing: .1em;
	border-radius: 999px;
}

/* ---------- My Account ---------- */
.woocommerce-account .woocommerce { display: flex; flex-direction: column; gap: 32px; }
@media (min-width: 768px) { .woocommerce-account .woocommerce { flex-direction: row; align-items: flex-start; gap: 40px; } }
.woocommerce-account .woocommerce-MyAccount-navigation { flex: 0 0 230px; }
.woocommerce-account .woocommerce-MyAccount-content { flex: 1 1 auto; min-width: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 18px;
	border-radius: 999px;
	color: var(--ne-foreground);
	font-size: 14px;
	transition: background .2s ease, color .2s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--ne-soft); color: var(--ne-accent); }
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 { font-family: var(--ne-font-serif); }

/* Login / register forms on account page */
.woocommerce .col2-set, .woocommerce-page .col2-set { display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 768px) { .woocommerce .col2-set { grid-template-columns: 1fr 1fr; } }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { width: 100% !important; float: none; }
.woocommerce form.login, .woocommerce form.register, .woocommerce-ResetPassword {
	border: 1px solid var(--ne-border);
	border-radius: var(--ne-radius-md);
	padding: 32px;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	border-radius: 999px;
	padding: 8px 14px;
	color: var(--ne-foreground);
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ne-foreground); color: #fff; }

/* ---------- WooCommerce blocks (cart/checkout block) basic theming ---------- */
.wc-block-components-button,
.wp-block-button__link {
	border-radius: 999px !important;
	background: var(--ne-foreground) !important;
	color: #fff !important;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: 13px;
}
.wc-block-components-text-input input,
.wc-block-components-select .wc-block-components-select__container {
	border-radius: 999px !important;
}
.wc-block-grid__product-title, .wp-block-post-title { font-family: var(--ne-font-serif); }
.wc-block-components-totals-item__value, .wc-block-components-order-summary { color: var(--ne-foreground); }

/* ============================================================
   Account — "Hello Guest" login / register design
   ============================================================ */

/* Strip the generic page title + card padding only when logged out. */
.ne-account-auth .ne-section-head { display: none; }
.ne-account-auth .ne-card { padding: 0; overflow: hidden; }
/* page.php sets an inline max-width:46rem;margin:0 auto on .ne-prose — override it
   so the auth card can fill the full width. Inline styles need !important. */
.ne-account-auth .ne-prose { color: var(--ne-foreground); max-width: none !important; margin: 0 !important; width: 100%; }
/* The logged-in account layout turns .woocommerce into a 240px sidebar grid.
   Logged out there's no sidebar, so disable the grid or the empty column
   shoves the auth card to the right. */
.ne-account-auth .woocommerce { display: block !important; grid-template-columns: none !important; width: 100%; }
.ne-account-auth .woocommerce > .woocommerce-notices-wrapper:not(:empty) { padding: 24px 28px 0; }
@media (min-width: 768px) { .ne-account-auth .woocommerce > .woocommerce-notices-wrapper:not(:empty) { padding: 32px 56px 0; } }

.ne-auth__split { display: grid; grid-template-columns: 1fr; }
@media (min-width: 768px) { .ne-auth__split { grid-template-columns: 1fr 1fr; } }

.ne-auth__panel { padding: 40px 28px; display: flex; flex-direction: column; justify-content: center; }
@media (min-width: 768px) { .ne-auth__panel { padding: 56px; } }

/* No-JS: every view shows and works. With JS: only the active view shows. */
.ne-auth__view + .ne-auth__view { margin-top: 48px; padding-top: 48px; border-top: 1px solid var(--ne-border); }
.ne-auth--ready .ne-auth__view { display: none; }
.ne-auth--ready .ne-auth__view.is-active { display: block; }
.ne-auth--ready .ne-auth__view + .ne-auth__view { margin-top: 0; padding-top: 0; border-top: 0; }

.ne-auth__title { font-size: clamp(2.25rem, 4vw, 3rem); margin: 0 0 16px; }
.ne-auth__heading { font-family: var(--ne-font-serif); font-weight: 500; font-size: clamp(1.6rem, 3vw, 2.1rem); margin: 0 0 24px; }
.ne-auth__lead { color: var(--ne-muted); max-width: 22rem; margin: 0 0 32px; }
.ne-auth__actions { display: flex; flex-direction: column; gap: 16px; max-width: 300px; }
.ne-auth__actions .ne-btn { width: 100%; white-space: nowrap; }

.ne-auth__back { background: none; border: 0; color: var(--ne-muted); cursor: pointer; font-family: var(--ne-font-sans); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; padding: 0; margin-bottom: 24px; }
.ne-auth__back:hover { color: var(--ne-foreground); }
.ne-auth__switch { color: var(--ne-muted); font-size: 14px; margin-top: 20px; }
.ne-auth__switch a { color: var(--ne-accent); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* Inputs / labels inside the auth card */
.ne-auth .woocommerce-form-row { margin: 0 0 18px; }
.ne-auth label[for] { display: block; font-size: 14px; font-weight: 500; margin-bottom: 6px; color: var(--ne-foreground); }
.ne-auth .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ne-muted); margin: 4px 0 16px; font-weight: 400; }
.ne-auth__rememberrow { margin: 0; }
.ne-auth .ne-btn { width: 100%; margin-top: 4px; }
.ne-auth .lost_password { margin: 16px 0 0; font-size: 14px; }
.ne-auth .lost_password a { color: var(--ne-accent); }

/* Media side (perfume image) */
.ne-auth__media { position: relative; min-height: 300px; background: var(--ne-soft); }
@media (min-width: 768px) { .ne-auth__media { min-height: 100%; } }
.ne-auth__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ne-auth__close { position: absolute; top: 16px; right: 16px; z-index: 2; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: rgba(255,255,255,.85); color: var(--ne-foreground); transition: background .2s ease; }
.ne-auth__close:hover { background: #fff; }

/* Benefits row */
.ne-auth__benefits { padding: 32px 28px 40px; border-top: 1px solid var(--ne-border); }
@media (min-width: 768px) { .ne-auth__benefits { padding: 40px 56px 48px; } }
.ne-auth__benefits-title { font-size: 14px; color: var(--ne-muted); margin: 0 0 24px; }
.ne-auth__benefits-title a { color: var(--ne-foreground); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ne-auth__benefits-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 640px) { .ne-auth__benefits-grid { grid-template-columns: 1fr 1fr; } }
.ne-auth__benefit { display: flex; gap: 16px; align-items: flex-start; }
.ne-auth__benefit-icon { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 999px; background: var(--ne-soft); display: inline-flex; align-items: center; justify-content: center; color: var(--ne-accent); }
.ne-auth__benefit h3 { font-family: var(--ne-font-sans); font-weight: 600; font-size: 15px; margin: 0 0 4px; }
.ne-auth__benefit p { color: var(--ne-muted); font-size: 14px; margin: 0; }

/* ============================================================
   Account — signed-in dashboard ("Welcome back" design)
   ============================================================ */

/* On the dashboard (no endpoint) hide the sidebar nav and go full width.
   Sub-pages (orders, addresses, account details) keep the sidebar grid. */
.ne-account-dashboard .woocommerce-MyAccount-navigation { display: none; }
.ne-account-dashboard .woocommerce-account .woocommerce { display: block; }
.ne-account-dashboard .woocommerce-MyAccount-content { width: 100%; float: none; }
.ne-account-dashboard .ne-section-head { display: none; }
.ne-account-dashboard .ne-card { padding: 0; background: transparent; }
.ne-account-dashboard .ne-prose { max-width: none !important; margin: 0 !important; width: 100%; color: var(--ne-foreground); }

.ne-dash__welcome { background: #fff; border-radius: var(--ne-radius-lg); overflow: hidden; display: grid; grid-template-columns: 1fr; margin-bottom: 24px; }
@media (min-width: 768px) { .ne-dash__welcome { grid-template-columns: 1fr 45%; } }
.ne-dash__welcome-content { padding: 40px 28px; }
@media (min-width: 768px) { .ne-dash__welcome-content { padding: 48px; } }
.ne-dash__title { font-size: clamp(2rem, 4vw, 2.6rem); line-height: 1.12; margin: 0 0 16px; }
.ne-dash__meta { color: var(--ne-muted); font-size: 15px; margin: 0 0 4px; }
.ne-dash__stats { display: flex; align-items: center; gap: 28px; margin-top: 24px; }
.ne-dash__stat { text-align: center; }
.ne-dash__stat-num { display: block; font-family: var(--ne-font-serif); font-size: 1.6rem; color: var(--ne-foreground); }
.ne-dash__stat-label { display: block; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ne-muted); margin-top: 2px; }
.ne-dash__stat-sep { width: 1px; height: 40px; background: var(--ne-border); }
.ne-dash__welcome-media { position: relative; min-height: 240px; background: var(--ne-soft); }
@media (min-width: 768px) { .ne-dash__welcome-media { min-height: 100%; } }
.ne-dash__welcome-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Rewards progress bar */
.ne-dash__rewards { display: block; background: #fff; border-radius: var(--ne-radius-lg); padding: 28px 24px; margin-bottom: 24px; color: var(--ne-foreground); transition: box-shadow .2s ease; }
@media (min-width: 768px) { .ne-dash__rewards { padding: 32px 48px; } }
.ne-dash__rewards:hover { box-shadow: 0 6px 24px rgba(43,43,43,.06); }
.ne-dash__rewards-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.ne-dash__rewards-title { font-family: var(--ne-font-serif); font-weight: 500; font-size: clamp(1.25rem, 2.5vw, 1.6rem); margin: 6px 0 0; }
.ne-dash__rewards-balance { text-align: right; line-height: 1; }
.ne-dash__rewards-points { font-family: var(--ne-font-serif); font-size: 2rem; color: var(--ne-accent); }
.ne-dash__rewards-points-label { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ne-muted); margin-top: 4px; }
.ne-dash__progress { height: 10px; background: var(--ne-soft); border: 1px solid var(--ne-border); border-radius: 999px; overflow: hidden; }
.ne-dash__progress-bar { height: 100%; background: linear-gradient(90deg, var(--ne-accent), var(--ne-accent-dark)); border-radius: 999px; transition: width .7s cubic-bezier(.4,0,.2,1); }
.ne-dash__progress-scale { display: flex; justify-content: space-between; margin-top: 10px; font-size: 12px; letter-spacing: .04em; color: var(--ne-muted); }
.ne-dash__rewards-msg { margin: 16px 0 0; color: var(--ne-muted); font-size: 14px; line-height: 1.6; }
.ne-dash__rewards-msg strong { color: var(--ne-foreground); font-weight: 500; }

.ne-dash__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 1024px) { .ne-dash__grid { grid-template-columns: 2fr 1fr; } }
.ne-dash__panel { background: #fff; border-radius: var(--ne-radius-lg); padding: 32px 24px; }
@media (min-width: 768px) { .ne-dash__panel { padding: 40px; } }
.ne-dash__h3 { font-family: var(--ne-font-serif); font-weight: 500; font-size: 1.3rem; margin: 0 0 24px; }

.ne-dash__link { display: flex; align-items: center; gap: 16px; padding: 16px; border-radius: var(--ne-radius-md); transition: background .2s ease; }
.ne-dash__link:hover { background: var(--ne-soft); }
.ne-dash__link-icon { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 999px; background: var(--ne-soft); display: inline-flex; align-items: center; justify-content: center; color: var(--ne-foreground); transition: background .2s ease; }
.ne-dash__link:hover .ne-dash__link-icon { background: #fff; }
.ne-dash__link-text { flex: 1; min-width: 0; }
.ne-dash__link-label { display: block; font-size: 15px; font-weight: 500; color: var(--ne-foreground); }
.ne-dash__link-desc { display: block; font-size: 14px; color: var(--ne-muted); }
.ne-dash__chev { color: var(--ne-muted); display: inline-flex; transition: color .2s ease; }
.ne-dash__link:hover .ne-dash__chev { color: var(--ne-foreground); }
.ne-dash__link--logout:hover { background: #fdecec; }
.ne-dash__link--logout:hover .ne-dash__link-icon { background: #fbdcdc; color: var(--ne-error); }
.ne-dash__link--logout:hover .ne-dash__link-label,
.ne-dash__link--logout:hover .ne-dash__chev { color: var(--ne-error); }

.ne-dash__panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.ne-dash__panel-head .ne-dash__h3 { margin: 0; }
.ne-dash__viewall { font-size: 14px; color: var(--ne-accent); }
.ne-dash__viewall:hover { text-decoration: underline; }
.ne-dash__orderlist { display: flex; flex-direction: column; gap: 16px; }
.ne-dash__order { display: block; padding: 16px; border-radius: var(--ne-radius-md); background: var(--ne-soft); transition: background .2s ease; }
.ne-dash__order:hover { background: #ede8e3; }
.ne-dash__order-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.ne-dash__order-id { font-size: 14px; font-weight: 500; color: var(--ne-foreground); }
.ne-dash__order-status { font-size: 11px; padding: 3px 10px; border-radius: 999px; text-transform: capitalize; background: var(--ne-border); color: var(--ne-foreground); }
.ne-dash__order-status.status-completed { background: #e3f1e6; color: #2e7d4f; }
.ne-dash__order-status.status-processing { background: #fdf3da; color: #8a6d1b; }
.ne-dash__order-status.status-on-hold { background: #f0ece6; color: #7a736b; }
.ne-dash__order-status.status-cancelled,
.ne-dash__order-status.status-failed { background: #fbe3e3; color: var(--ne-error); }
.ne-dash__order-date { display: block; font-size: 12px; color: var(--ne-muted); margin-bottom: 4px; }
.ne-dash__order-total { font-size: 14px; font-weight: 500; color: var(--ne-foreground); }
.ne-dash__empty { text-align: center; padding: 32px 0; }
.ne-dash__empty-icon { width: 64px; height: 64px; border-radius: 999px; background: var(--ne-soft); display: inline-flex; align-items: center; justify-content: center; color: var(--ne-muted); margin: 0 auto 16px; }
.ne-dash__empty p { color: var(--ne-muted); font-size: 14px; margin: 0 0 8px; }
.ne-dash__empty a { color: var(--ne-accent); font-size: 14px; }
.ne-dash__empty a:hover { text-decoration: underline; }

/* ============================================================
   Account — sub-pages (orders, view order, addresses, details)
   ============================================================ */

/* Each sub-page carries its own heading, so drop the generic page title. */
.woocommerce-account .ne-section-head { display: none; }
.woocommerce-account .woocommerce-MyAccount-content { color: var(--ne-foreground); }
/* Break out of page.php's inline max-width:46rem on every account page. */
.woocommerce-account .ne-prose { max-width: none !important; margin: 0 !important; width: 100%; }
.woocommerce-account .ne-card { padding: 32px 24px; }
@media (min-width: 768px) { .woocommerce-account .ne-card { padding: 48px; } }

/* Shared sub-page header / back link / empty state */
.ne-acctpage__back { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--ne-muted); margin-bottom: 24px; }
.ne-acctpage__back:hover { color: var(--ne-foreground); }
.ne-acctpage__head { display: flex; align-items: center; gap: 16px; margin-bottom: 32px; }
.ne-acctpage__head-icon { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 999px; background: var(--ne-soft); display: inline-flex; align-items: center; justify-content: center; color: var(--ne-foreground); }
.ne-acctpage__title { font-family: var(--ne-font-serif); font-weight: 500; font-size: clamp(1.6rem, 3vw, 2rem); margin: 0; }
.ne-acctpage__sub { color: var(--ne-muted); font-size: 14px; margin: 4px 0 0; }
.ne-acctpage__empty { text-align: center; padding: 48px 0; }
.ne-acctpage__empty-icon { width: 72px; height: 72px; border-radius: 999px; background: var(--ne-soft); display: inline-flex; align-items: center; justify-content: center; color: var(--ne-muted); margin: 0 auto 20px; }
.ne-acctpage__empty-icon svg { width: 30px; height: 30px; }
.ne-acctpage__empty h2 { font-family: var(--ne-font-serif); font-weight: 500; font-size: 1.6rem; margin: 0 0 8px; }
.ne-acctpage__empty p { color: var(--ne-muted); margin: 0 0 24px; }
.ne-acctpage__empty .ne-btn { width: auto; }

/* Orders list (card per order) */
.ne-orders__list { display: flex; flex-direction: column; gap: 16px; }
.ne-orders__row { display: flex; align-items: center; gap: 16px; padding: 20px; border: 1px solid var(--ne-border); border-radius: var(--ne-radius-md); transition: border-color .2s ease, background .2s ease; }
.ne-orders__row:hover { border-color: rgba(43,43,43,.25); background: var(--ne-soft); }
.ne-orders__row-icon { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 999px; background: var(--ne-soft); display: inline-flex; align-items: center; justify-content: center; color: var(--ne-foreground); transition: background .2s ease; }
.ne-orders__row:hover .ne-orders__row-icon { background: #fff; }
.ne-orders__row-main { flex: 1; min-width: 0; }
.ne-orders__row-id { display: block; font-weight: 500; color: var(--ne-foreground); }
.ne-orders__row-date { display: block; font-size: 14px; color: var(--ne-muted); margin-top: 2px; }
.ne-orders__row-meta { display: flex; align-items: center; gap: 16px; }
.ne-orders__row-total { font-weight: 500; color: var(--ne-foreground); white-space: nowrap; }
.ne-orders__row-chev { color: var(--ne-muted); display: inline-flex; }
.ne-orders__row:hover .ne-orders__row-chev { color: var(--ne-foreground); }
@media (max-width: 560px) { .ne-orders__row { flex-wrap: wrap; } .ne-orders__row-meta { width: 100%; justify-content: space-between; } }
.ne-orders__pagination { display: flex; gap: 12px; justify-content: center; margin-top: 32px; }
.ne-orders__pagination .ne-btn { width: auto; }

/* View order — receipt styling */
.woocommerce-order .woocommerce-notice,
.woocommerce-order p.woocommerce-thankyou-order-received { font-family: var(--ne-font-serif); font-size: 1.5rem; color: var(--ne-foreground); margin-bottom: 24px; }
.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-customer-details h2 { font-family: var(--ne-font-serif); font-weight: 500; font-size: 1.3rem; margin: 32px 0 16px; }
ul.woocommerce-order-overview.woocommerce-thankyou-order-details { list-style: none; display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; margin: 0 0 32px; padding: 24px; border: 1px solid var(--ne-border); border-radius: var(--ne-radius-md); }
@media (min-width: 768px) { ul.woocommerce-order-overview { grid-template-columns: repeat(4,1fr); } }
.woocommerce-order-overview li { border: 0 !important; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--ne-muted); }
.woocommerce-order-overview li strong { display: block; font-size: 15px; text-transform: none; letter-spacing: 0; color: var(--ne-foreground); margin-top: 4px; }
.woocommerce-customer-details .woocommerce-columns--addresses { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 768px) { .woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: 1fr 1fr; } }
.woocommerce-customer-details address { font-style: normal; border: 1px solid var(--ne-border); border-radius: var(--ne-radius-md); padding: 20px; color: var(--ne-muted); line-height: 1.7; }

/* Addresses */
.woocommerce-Addresses.addresses { display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: 8px; }
@media (min-width: 768px) { .woocommerce-Addresses.addresses { grid-template-columns: 1fr 1fr; } }
.woocommerce-Address { border: 1px solid var(--ne-border); border-radius: var(--ne-radius-md); padding: 28px; }
.woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.woocommerce-Address-title h2, .woocommerce-Address-title h3 { font-family: var(--ne-font-serif); font-weight: 500; font-size: 1.2rem; margin: 0; }
.woocommerce-Address-title .edit { font-size: 13px; color: var(--ne-accent); text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-Address address { font-style: normal; color: var(--ne-muted); line-height: 1.7; font-size: 14px; }

/* Account details + edit address forms */
.woocommerce-EditAccountForm, .woocommerce-address-fields { max-width: 42rem; }
.woocommerce-EditAccountForm fieldset { border: 1px solid var(--ne-border); border-radius: var(--ne-radius-md); padding: 24px; margin-top: 24px; }
.woocommerce-EditAccountForm legend { font-family: var(--ne-font-serif); font-size: 1.1rem; padding: 0 8px; }

/* Downloads empty / table already themed via shop_table */
.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-message,
.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-info { margin-bottom: 24px; }

/* ============================================================
   Favorites / Wishlist
   ============================================================ */

.ne-fav-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #fff; border: 1px solid var(--ne-border); color: var(--ne-foreground); cursor: pointer; border-radius: 999px; font-family: var(--ne-font-sans); transition: background .2s ease, color .2s ease, border-color .2s ease, transform .15s ease; }
.ne-fav-btn .ne-fav-heart { fill: none; transition: fill .2s ease, transform .2s ease; }
.ne-fav-btn:hover { color: var(--ne-accent); }
.ne-fav-btn.is-fav { color: var(--ne-accent); border-color: var(--ne-accent); }
.ne-fav-btn.is-fav .ne-fav-heart { fill: var(--ne-accent); }
.ne-fav-btn.is-loading { opacity: .5; pointer-events: none; }
.ne-fav-btn:active .ne-fav-heart { transform: scale(.85); }

/* Card overlay heart (homepage cards, favorites grid) */
.ne-product-card-wrap { position: relative; }
.ne-fav-btn--card { position: absolute; top: 14px; right: 14px; z-index: 2; width: 40px; height: 40px; padding: 0; box-shadow: 0 1px 5px rgba(43,43,43,.10); }
.ne-fav-btn--card:hover { transform: scale(1.06); }

/* Shop loop heart overlay (li.product is position:relative) */
.woocommerce ul.products li.product .ne-fav-btn--card { position: absolute; top: 14px; right: 14px; z-index: 2; }

/* Single product favorite button — sits beside Add to cart */
.ne-fav-btn--single { padding: 16px 26px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; }
.ne-fav-btn--single .ne-fav-heart { width: 18px; height: 18px; }
.woocommerce div.product form.cart .ne-fav-btn--single { vertical-align: middle; }

/* Favorites account grid reuses .ne-grid / .ne-product-card */
.ne-favorites .ne-grid { margin-top: 8px; }

/* ============================================================
   WPLoyalty — "Points & Rewards" account tab, branded
   (visual harmonisation only; plugin behaviour untouched)
   ============================================================ */
.woocommerce-account .wlr-myaccount-page { font-family: var(--ne-font-sans); color: var(--ne-foreground); }
.woocommerce-account .wlr-myaccount-page h1,
.woocommerce-account .wlr-myaccount-page h2,
.woocommerce-account .wlr-myaccount-page h3,
.woocommerce-account .wlr-heading { font-family: var(--ne-font-serif); font-weight: 500; color: var(--ne-foreground); }

/* Points summary → row of stat cards */
.woocommerce-account .wlr-points-container { display: grid; grid-template-columns: 1fr; gap: 16px; margin-bottom: 32px; }
@media (min-width: 640px) { .woocommerce-account .wlr-points-container { grid-template-columns: repeat(3, 1fr); } }
.woocommerce-account .wlr-points-container > div { background: var(--ne-soft); border: 1px solid var(--ne-border) !important; border-radius: var(--ne-radius-md); padding: 24px; text-align: center; }

/* Earning option / reward cards */
.woocommerce-account .wlr-card,
.woocommerce-account .wlr-earning-option,
.woocommerce-account .wlr-customer-reward { background: #fff; border: 1px solid var(--ne-border) !important; border-radius: var(--ne-radius-md) !important; padding: 24px; }
.woocommerce-account .wlr-earning-options,
.woocommerce-account .wlr-campaign-container { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 768px) { .woocommerce-account .wlr-campaign-container { grid-template-columns: 1fr 1fr; } }

/* Reward tabs */
.woocommerce-account .wlr-my-rewards-title { font-size: 13px; letter-spacing: .04em; text-transform: uppercase; padding-bottom: 10px; }
.woocommerce-account .wlr-my-rewards-title.active { color: var(--ne-accent) !important; border-bottom: 2px solid var(--ne-accent); }

/* Buttons inside the loyalty page → brand pills */
.woocommerce-account .wlr-myaccount-page button,
.woocommerce-account .wlr-myaccount-page .wlr-button,
.woocommerce-account .wlr-myaccount-page a.button,
.woocommerce-account .wlr-myaccount-page input[type="submit"] {
	border-radius: 999px !important;
	background: var(--ne-foreground) !important;
	color: #fff !important;
	border: 0 !important;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: 12px;
	padding: 12px 22px;
}

/* Redeem widget on cart / checkout */
.wlr-redeem-points-section,
.wlr_redeem_points_field,
.wlr-apply-points-discount { border: 1px solid var(--ne-border); border-radius: var(--ne-radius-md); padding: 16px 20px; background: #fff; }

/* Hide the "Purchase & earn X points!" promo on shop + single product. */
.wlr-product-message { display: none !important; }
