/* Novaroze — booking, program page, cart, checkout, account. Loaded after main.css. */

/* ---------- Header icons ---------- */
.icon-link { position: relative; display: none; place-items: center; width: 44px; height: 44px; border-radius: var(--r-full); color: var(--c-pine); text-decoration: none; transition: background-color .2s; }
.icon-link:hover { background: var(--c-sand); }
.icon-link .icon { width: 22px; height: 22px; }
.icon-link__n { position: absolute; top: 3px; right: 1px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 10px; background: var(--c-ember); color: #fff; font-size: 0.7rem; font-weight: 700; line-height: 19px; text-align: center; }
.icon-link[href*="cart"] { display: inline-grid; }
@media (min-width: 640px) { .icon-link { display: inline-grid; } }

/* ---------- Program picker ---------- */
.pick__h { display: flex; align-items: center; gap: 12px; font-size: var(--step-1); margin-bottom: var(--s-m); }
.pick__grid { display: grid; gap: var(--s-s); }
@media (min-width: 640px) { .pick__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .pick__grid { grid-template-columns: repeat(4, 1fr); } }
.pick-card { display: flex; flex-direction: column; gap: 6px; padding: var(--s-m); background: var(--c-white); border: 1.5px solid var(--c-line); border-radius: var(--r-l); text-decoration: none; transition: border-color .2s, transform .3s var(--ease), box-shadow .3s var(--ease); }
.pick-card:hover { border-color: var(--c-pine); transform: translateY(-3px); box-shadow: var(--shadow-m); }
.pick-card .chip { align-self: flex-start; background: var(--c-ember); color: #fff; }
.pick-card__name { font-family: var(--f-display); font-size: var(--step-2); line-height: 1.1; }
.pick-card__meta { font-size: 0.86rem; color: var(--c-ink-2); }
.pick-card__for { color: var(--c-ink-2); font-size: 0.95rem; flex: 1; margin-top: 4px; }
.pick-card__foot { display: flex; justify-content: space-between; align-items: center; margin-top: var(--s-s); padding-top: var(--s-s); border-top: 1px solid var(--c-line); }
.pick-card__foot strong { font-size: 1.4rem; letter-spacing: -.02em; }
.pick-card__go { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--c-ember); font-size: 0.92rem; }
.pick-card__go .icon { width: 16px; height: 16px; transition: transform .25s var(--ease); }
.pick-card:hover .pick-card__go .icon { transform: translateX(3px); }
.pick-card--free { background: var(--c-sun-soft); border-color: #efc3cb; }

/* ---------- Booking wizard ---------- */
.booker { display: grid; gap: var(--s-l); align-items: start; }
@media (min-width: 1000px) { .booker { grid-template-columns: 1fr 380px; gap: var(--s-xl); } .booker__aside { position: sticky; top: calc(var(--header-h) + 24px); } }
.booker__steps { display: grid; gap: var(--s-m); min-width: 0; }
.step-box { margin: 0; min-width: 0; padding: clamp(20px, 3vw, 32px); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-l); }
.step-box legend { float: left; width: 100%; display: flex; align-items: center; gap: 12px; font-weight: 700; font-size: var(--step-1); padding: 0; margin-bottom: var(--s-m); }
.step-box legend + * { clear: both; }
.step-box__note { margin-top: var(--s-s); font-size: 0.92rem; color: #7a1c15; background: #fbeae8; border-radius: var(--r-s); padding: 10px 14px; }

.opt-grid { display: grid; gap: 10px; }
.opt-grid--coach { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.opt-grid--place { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.opt { position: relative; display: block; }
.opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.opt__box { display: flex; flex-direction: column; gap: 2px; height: 100%; padding: 14px 16px; border: 1.5px solid var(--c-line); border-radius: var(--r-m); background: var(--c-paper); cursor: pointer; transition: border-color .2s, background-color .2s, box-shadow .2s; }
.opt__box--row { flex-direction: row; align-items: center; gap: 12px; }
.opt:hover .opt__box { border-color: var(--c-sand-2); background: var(--c-white); }
.opt input:checked + .opt__box { border-color: var(--c-pine); background: #fbeef1; box-shadow: inset 0 0 0 1px var(--c-pine); }
.opt input:focus-visible + .opt__box { outline: 3px solid var(--c-ember); outline-offset: 2px; }
.opt.is-off .opt__box { opacity: .45; cursor: not-allowed; }
.opt__avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; margin-bottom: 8px; font-family: var(--f-display); font-size: 1.15rem; background: var(--c-pine); color: var(--c-paper); }
.opt__avatar--1 { background: var(--c-sun-soft); color: var(--c-ember-dark); }
.opt__avatar--2 { background: var(--c-mint); color: var(--c-pine); }
.opt__avatar--any { background: var(--c-sand); color: var(--c-ember); }
.opt__avatar .icon { width: 20px; height: 20px; }
.opt__icon { display: grid; place-items: center; width: 42px; height: 42px; flex: none; border-radius: 12px; background: var(--c-mint); color: var(--c-pine); }
.opt__t { display: block; font-weight: 700; font-size: 0.98rem; line-height: 1.3; }
.opt__s { display: block; font-size: 0.84rem; color: var(--c-ink-2); line-height: 1.4; }

.dates { display: flex; gap: 8px; overflow-x: auto; padding: 4px 2px 10px; margin: -4px -2px 0; scroll-snap-type: x proximity; scrollbar-width: thin; }
.date { position: relative; flex: none; scroll-snap-align: start; }
.date input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.date__box { display: grid; justify-items: center; gap: 0; width: 64px; padding: 10px 0; border: 1.5px solid var(--c-line); border-radius: var(--r-m); background: var(--c-paper); cursor: pointer; transition: all .2s; }
.date__dow { font-size: 0.72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-ink-2); }
.date__d { font-family: var(--f-display); font-size: 1.7rem; line-height: 1.1; }
.date__m { font-size: 0.74rem; color: var(--c-ink-2); }
.date:hover .date__box { border-color: var(--c-sand-2); background: var(--c-white); }
.date input:checked + .date__box { background: var(--c-pine); border-color: var(--c-pine); color: var(--c-paper); }
.date input:checked + .date__box span { color: var(--c-paper); }
.date input:disabled + .date__box { opacity: .35; cursor: not-allowed; text-decoration: line-through; background: transparent; }
.date input:focus-visible + .date__box { outline: 3px solid var(--c-ember); outline-offset: 2px; }

.times { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.times__empty { grid-column: 1 / -1; color: var(--c-ink-2); font-size: 0.95rem; }
.time { position: relative; }
.time input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.time span { display: grid; place-items: center; min-height: 48px; border: 1.5px solid var(--c-line); border-radius: var(--r-m); background: var(--c-paper); font-weight: 700; cursor: pointer; transition: all .2s; }
.time:hover span { border-color: var(--c-sand-2); background: var(--c-white); }
.time input:checked + span { background: var(--c-ember); border-color: var(--c-ember); color: #fff; }
.time input:focus-visible + span { outline: 3px solid var(--c-pine); outline-offset: 2px; }

/* Summary card (booking + program page) */
.summary--book { padding: var(--s-l); display: grid; gap: 0; }
.sum-dl { display: grid; margin: var(--s-m) 0 0; border-top: 1px solid var(--c-line); }
.sum-dl div { display: flex; justify-content: space-between; gap: var(--s-m); padding: 11px 0; border-bottom: 1px solid var(--c-line); font-size: 0.94rem; }
.sum-dl dt { color: var(--c-ink-2); }
.sum-dl dd { margin: 0; font-weight: 600; text-align: right; }
.sum-total { display: flex; justify-content: space-between; align-items: baseline; margin-top: var(--s-m); }
.sum-total span { font-weight: 600; }
.sum-total strong { font-size: 2.3rem; letter-spacing: -.03em; line-height: 1; }
.sum-per { text-align: right; font-size: 0.86rem; color: var(--c-ink-2); margin: 4px 0 var(--s-m); }
.summary--book .btn + .btn { margin-top: 10px; }
.summary--book .btn[disabled] { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.sum-lock { justify-content: center; margin-top: var(--s-s); width: 100%; }
.sum-change { text-align: center; font-size: 0.88rem; margin-top: 8px; color: var(--c-ink-2); }
.sum-change a { color: var(--c-ember); font-weight: 600; }

/* ---------- Program page ---------- */
.page-hero--program { padding-bottom: var(--section-y); }
.prog { display: grid; gap: var(--s-xl); align-items: start; }
@media (min-width: 1000px) { .prog { grid-template-columns: 1fr 400px; gap: var(--s-3xl); } .prog__aside { position: sticky; top: calc(var(--header-h) + 24px); } }
.prog__h { font-size: var(--step-1); margin: var(--s-xl) 0 var(--s-s); }
.prog__perks { display: grid; gap: var(--s-s); margin-top: var(--s-xl); }
@media (min-width: 640px) { .prog__perks { grid-template-columns: repeat(3, 1fr); } }
.prog__perks li { display: grid; gap: 2px; padding: var(--s-m); border-radius: var(--r-m); background: rgb(255 255 255 / .7); border: 1px solid var(--c-line); }
.prog__perks .icon { color: var(--c-ember); margin-bottom: 6px; }
.prog__perks span { font-size: 0.88rem; color: var(--c-ink-2); }
.program__name a { text-decoration: none; }
.program__name a:hover { color: var(--c-ember); }

/* ---------- Woo pages ---------- */
.page-hero--slim { padding-block: clamp(32px, 4vw, 56px) clamp(28px, 3vw, 40px); }
.page-hero__title--sm { font-size: var(--step-4); }
.woo { font-size: 1rem; }
.woo .woocommerce-message, .woo .woocommerce-info, .woo .woocommerce-error, .wc-notices .woocommerce-message, .wc-notices .woocommerce-info, .wc-notices .woocommerce-error {
	list-style: none; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 var(--s-m); padding: 14px 18px; border-radius: var(--r-m); font-weight: 500;
	background: #fbeef1; border: 1px solid #efcfd7; color: var(--c-pine);
}
.woo .woocommerce-info, .wc-notices .woocommerce-info { background: var(--c-sand); border-color: var(--c-sand-2); color: var(--c-ink); }
.woo .woocommerce-error, .wc-notices .woocommerce-error { background: #fbeae8; border-color: #f0c3be; color: #7a1c15; display: block; }
.woocommerce-error li + li { margin-top: 6px; }
.woo .woocommerce-message .button, .wc-notices .woocommerce-message .button { order: 2; }
.woo a:not(.btn):not(.button) { color: var(--c-ember); }
.woo .button, .woo button.button, .woo input.button, .woo #place_order {
	appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 24px; border-radius: var(--r-full);
	border: 1.5px solid var(--c-ink); background: transparent; color: var(--c-ink); font-weight: 600; font-size: 0.96rem; text-decoration: none; cursor: pointer; transition: all .2s;
}
.woo .button:hover { background: var(--c-ink); color: var(--c-paper); }
.woo .button.alt, .woo .checkout-button, .woo #place_order, .woo .woocommerce-form-login__submit, .woo .woocommerce-Button--next {
	background: var(--c-ember); border-color: var(--c-ember); color: #fff; box-shadow: 0 8px 20px -10px rgb(176 64 92 / .7);
}
.woo .button.alt:hover, .woo .checkout-button:hover, .woo #place_order:hover { background: var(--c-ember-dark); border-color: var(--c-ember-dark); color: #fff; }
.woo .button:disabled, .woo .button[disabled] { opacity: .45; cursor: not-allowed; }
.woo .input-text, .woo select, .woo textarea { width: 100%; min-height: 52px; padding: 13px 16px; border-radius: var(--r-m); border: 1.5px solid var(--c-line); background: var(--c-paper); transition: border-color .2s, box-shadow .2s; }
.woo textarea { min-height: 110px; line-height: 1.55; }
.woo .input-text:focus, .woo select:focus, .woo textarea:focus { outline: none; border-color: var(--c-pine); background: #fff; box-shadow: 0 0 0 4px rgb(91 31 55 / .14); }
.woo .form-row { display: grid; gap: 6px; margin: 0 0 var(--s-s); }
.woo .form-row label { font-weight: 600; font-size: 0.93rem; }
.woo .required { color: var(--c-ember); text-decoration: none; border: 0; }
.woo .optional { color: var(--c-ink-2); font-weight: 500; font-size: 0.84rem; }
.woo .woocommerce-invalid .input-text { border-color: #b3261e; }
.woo table.shop_table { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-l); overflow: hidden; }
.woo table.shop_table th, .woo table.shop_table td { padding: 16px 20px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--c-line); }
.woo table.shop_table thead th { font-size: 0.74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-ink-2); background: var(--c-paper); }
.woo table.shop_table tr:last-child > * { border-bottom: 0; }
.woo table.shop_table tfoot th { font-weight: 600; }
.woo .order-total td, .woo .order-total th { font-size: 1.2rem; font-weight: 700; }
.woo .product-name > a { font-family: var(--f-display); font-size: 1.45rem; text-decoration: none; color: var(--c-ink) !important; }
.woo dl.variation { display: grid; grid-template-columns: max-content 1fr; gap: 3px 12px; margin: 10px 0 0; font-size: 0.9rem; }
.woo dl.variation dt { color: var(--c-ink-2); font-weight: 500; }
.woo dl.variation dd { margin: 0; font-weight: 600; }
.woo dl.variation dd p { margin: 0; }
.woo .product-thumbnail { display: none; }
.woo a.remove { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--c-sand); color: var(--c-ink-2) !important; text-decoration: none; font-size: 1.3rem; line-height: 1; }
.woo a.remove:hover { background: #fbeae8; color: #b3261e !important; }

/* Cart */
.woo--cart .woocommerce { display: grid; gap: var(--s-l); align-items: start; }
@media (min-width: 1000px) { .woo--cart .woocommerce { grid-template-columns: 1fr 380px; } .woo--cart .woocommerce-notices-wrapper { grid-column: 1 / -1; } }
.woo--cart td.actions { background: var(--c-paper); }
.woo--cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.woo--cart td.actions .coupon .input-text { width: auto; flex: 1; min-width: 160px; }
.woo--cart button[name="update_cart"] { display: none; }
.woo--cart .product-quantity, .woo--cart .product-price { display: none; }
.woo--cart .cart_totals { padding: var(--s-l); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-l); }
.woo--cart .cart_totals h2 { font-family: var(--f-display); font-weight: 500; font-size: var(--step-2); margin-bottom: var(--s-s); }
.woo--cart .cart_totals table.shop_table { border: 0; border-radius: 0; }
.woo--cart .cart_totals th, .woo--cart .cart_totals td { padding: 12px 0; }
.woo--cart .wc-proceed-to-checkout .checkout-button { width: 100%; margin-top: var(--s-m); min-height: 56px; font-size: 1.04rem; }
.woo .cart-empty { font-family: var(--f-display); font-size: var(--step-2); }
.woo .return-to-shop .button { margin-top: var(--s-m); }
@media (max-width: 720px) {
	.woo--cart table.cart thead { display: none; }
	.woo--cart table.cart tr { display: grid; grid-template-columns: 1fr auto; border-bottom: 1px solid var(--c-line); }
	.woo--cart table.cart td { border: 0; }
	.woo--cart table.cart td::before { display: none; }
	.woo--cart td.product-remove { grid-column: 2; grid-row: 1; }
	.woo--cart td.product-name { grid-column: 1; grid-row: 1; }
	.woo--cart td.product-subtotal { grid-column: 1 / -1; padding-top: 0; font-weight: 700; }
	.woo--cart td.actions { grid-column: 1 / -1; }
}

/* Checkout */
.woo--checkout form.checkout { display: grid; gap: var(--s-l); align-items: start; }
@media (min-width: 1000px) {
	.woo--checkout form.checkout { grid-template-columns: 1fr 440px; column-gap: var(--s-xl); }
	.woo--checkout #customer_details { grid-row: 1 / span 2; }
	.woo--checkout #order_review_heading, .woo--checkout #order_review { grid-column: 2; }
	.woo--checkout #order_review { position: sticky; top: calc(var(--header-h) + 24px); }
}
.woo--checkout #customer_details { padding: clamp(20px, 3vw, 36px); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-l); }
.woo--checkout #customer_details h3, .woo--checkout #order_review_heading { font-family: var(--f-display); font-weight: 500; font-size: var(--step-2); margin-bottom: var(--s-m); }
.woo--checkout #order_review_heading { margin: 0 0 calc(-1 * var(--s-s)); }
.woo--checkout .woocommerce-billing-fields__field-wrapper { display: grid; gap: 0 var(--s-m); }
@media (min-width: 640px) { .woo--checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr 1fr; } .woo--checkout #billing_email_field, .woo--checkout #billing_phone_field { grid-column: 1 / -1; } }
.woo--checkout .woocommerce-additional-fields { margin-top: var(--s-m); padding-top: var(--s-m); border-top: 1px solid var(--c-line); }
.woo--checkout .woocommerce-additional-fields h3 { display: none; }
.woo--checkout .create-account { margin-top: var(--s-s); }
.woo--checkout #order_review { padding: var(--s-l); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-l); box-shadow: var(--shadow-s); }
.woo--checkout #order_review table.shop_table { border: 0; border-radius: 0; }
.woo--checkout #order_review th, .woo--checkout #order_review td { padding: 12px 0; }
.woo--checkout #order_review td.product-total, .woo--checkout #order_review tfoot td { text-align: right; }
.woo--checkout #order_review .product-name { font-weight: 700; }
.woo--checkout #order_review .product-quantity { display: none; }
.woo #payment { margin-top: var(--s-m); }
.woo #payment .payment_methods { list-style: none; padding: 0; margin: 0 0 var(--s-m); display: grid; gap: 8px; }
.woo #payment .payment_methods li { padding: 14px 16px; border: 1.5px solid var(--c-pine); border-radius: var(--r-m); background: #fbeef1; }
.woo #payment .payment_methods label { font-weight: 700; margin-left: 6px; }
.woo #payment .payment_box { margin-top: 8px; font-size: 0.9rem; color: var(--c-ink-2); }
.woo #payment .payment_box p { margin: 0; }
.woo .woocommerce-privacy-policy-text { font-size: 0.84rem; color: var(--c-ink-2); margin-bottom: var(--s-s); }
.woo .woocommerce-terms-and-conditions-wrapper .form-row { margin-top: 8px; }
.woo .woocommerce-form__label-for-checkbox { display: flex; gap: 10px; align-items: flex-start; font-weight: 500 !important; font-size: 0.92rem; }
.woo .woocommerce-form__label-for-checkbox input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--c-pine); flex: none; }
.woo #place_order { width: 100%; min-height: 58px; font-size: 1.06rem; margin-top: var(--s-s); }
.woo .woocommerce-form-login-toggle .woocommerce-info, .woo .woocommerce-form-coupon-toggle .woocommerce-info { font-size: 0.94rem; }
.woo form.login, .woo form.checkout_coupon { padding: var(--s-m); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-l); margin-bottom: var(--s-m); }
.woo .blockUI.blockOverlay { background: rgb(253 248 246 / .7) !important; }

/* Thank-you */
.booked { display: grid; gap: var(--s-m); margin-bottom: var(--s-xl); }
.booked__card { display: flex; gap: var(--s-m); padding: var(--s-l); background: var(--c-white); border: 2px solid var(--c-pine); border-radius: var(--r-l); box-shadow: var(--shadow-m); }
.booked__card h2 { font-family: var(--f-display); font-weight: 500; font-size: var(--step-3); line-height: 1.05; }
.booked__card > div { flex: 1; min-width: 0; }
.booked__tick { display: grid; place-items: center; width: 52px; height: 52px; flex: none; border-radius: 50%; background: var(--c-pine); color: var(--c-sun); }
.booked__next { color: var(--c-ink-2); max-width: 70ch; }
.booked__actions { display: flex; flex-wrap: wrap; gap: var(--s-s); align-items: center; }
.woo .woocommerce-thankyou-order-received { display: none; }
.woo ul.order_details { list-style: none; padding: var(--s-m); margin: 0 0 var(--s-l); display: grid; gap: var(--s-s); grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); background: var(--c-sand); border-radius: var(--r-l); font-size: 0.84rem; color: var(--c-ink-2); }
.woo ul.order_details strong { display: block; font-size: 1rem; color: var(--c-ink); }
.woo .woocommerce-order-details__title, .woo .woocommerce-column__title { font-family: var(--f-display); font-weight: 500; font-size: var(--step-2); margin: var(--s-l) 0 var(--s-s); }
.woo .woocommerce-customer-details address { font-style: normal; padding: var(--s-m); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-l); }
.woo .wc-item-meta { list-style: none; padding: 0; margin: 8px 0 0; font-size: 0.9rem; color: var(--c-ink-2); }
.woo .wc-item-meta p { display: inline; margin: 0; }
.woo .wc-item-meta strong { color: var(--c-ink); font-weight: 600; }

/* Account */
.woo--my-account .woocommerce { display: grid; gap: var(--s-l); align-items: start; }
@media (min-width: 900px) { .woo--my-account .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 240px 1fr; gap: var(--s-xl); } }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 8px; margin: 0; display: grid; gap: 2px; background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-l); }
.woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 46px; padding: 0 14px; border-radius: var(--r-m); font-weight: 600; text-decoration: none; color: var(--c-ink) !important; }
.woocommerce-MyAccount-navigation a:hover { background: var(--c-paper); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--c-pine); color: var(--c-paper) !important; }
@media (max-width: 899px) { .woocommerce-MyAccount-navigation ul { display: flex; overflow-x: auto; } .woocommerce-MyAccount-navigation li { flex: none; } }
.woocommerce-MyAccount-content { min-width: 0; }
.acct-hello h2 { font-family: var(--f-display); font-weight: 500; font-size: var(--step-3); line-height: 1.05; margin-bottom: 8px; }
.acct-hello p { color: var(--c-ink-2); max-width: 64ch; margin-bottom: var(--s-l); }
.acct-sessions { display: grid; gap: var(--s-m); }
@media (min-width: 1100px) { .acct-sessions { grid-template-columns: 1fr 1fr; } }
.acct-card { padding: var(--s-l); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-l); }
.acct-card__head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s-s); }
.acct-card__k { font-size: 0.78rem; color: var(--c-ink-2); letter-spacing: .06em; text-transform: uppercase; font-weight: 700; }
.acct-card h3 { font-family: var(--f-display); font-weight: 500; font-size: var(--step-2); line-height: 1.1; margin-top: 4px; }
.acct-badge { flex: none; font-size: 0.74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 5px 10px; border-radius: var(--r-full); background: var(--c-sand); color: var(--c-ink-2); }
.acct-badge--up { background: var(--c-mint); color: var(--c-pine); }
.acct-card__dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-s); margin: var(--s-m) 0; }
.acct-card__dl dt { font-size: 0.8rem; color: var(--c-ink-2); }
.acct-card__dl dd { margin: 2px 0 0; font-weight: 600; font-size: 0.95rem; }
.acct-meter__row { display: flex; justify-content: space-between; font-size: 0.9rem; color: var(--c-ink-2); margin-bottom: 8px; }
.acct-meter__row strong { color: var(--c-ink); font-size: 1.05rem; }
.acct-meter__bar { height: 8px; border-radius: 8px; background: var(--c-sand); overflow: hidden; }
.acct-meter__bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--c-pine), var(--c-sun)); border-radius: 8px; }
.acct-empty { padding: var(--s-xl); text-align: center; background: var(--c-white); border: 1.5px dashed var(--c-sand-2); border-radius: var(--r-l); }
.acct-empty h3 { font-family: var(--f-display); font-weight: 500; font-size: var(--step-2); }
.acct-empty p { color: var(--c-ink-2); margin: 8px 0 var(--s-m); }
.acct-links { list-style: none; padding: 0; margin: var(--s-l) 0 0; display: grid; gap: var(--s-s); }
@media (min-width: 640px) { .acct-links { grid-template-columns: 1fr 1fr; } }
.acct-links a { display: flex; gap: 14px; align-items: flex-start; padding: var(--s-m); background: var(--c-white); border: 1px solid var(--c-line); border-radius: var(--r-l); text-decoration: none; color: var(--c-ink) !important; transition: border-color .2s, transform .3s var(--ease); }
.acct-links a:hover { border-color: var(--c-pine); transform: translateY(-2px); }
.acct-links .icon { width: 42px; height: 42px; padding: 10px; border-radius: 12px; background: var(--c-sun-soft); color: var(--c-ember); }
.acct-links span { display: grid; font-size: 0.88rem; color: var(--c-ink-2); }
.acct-links strong { color: var(--c-ink); font-size: 1rem; }
.woo .woocommerce-orders-table { font-size: 0.94rem; }
.woo .woocommerce-orders-table .button { min-height: 38px; padding: 6px 14px; font-size: 0.86rem; }
.woo--my-account form.login, .woo--my-account form.woocommerce-ResetPassword { max-width: 520px; padding: var(--s-l); }
.woo--my-account > .woocommerce > h2 { font-family: var(--f-display); font-weight: 500; font-size: var(--step-3); }
.woo .woocommerce-LostPassword { margin-top: var(--s-s); }
.woo .woocommerce-EditAccountForm fieldset { border: 1px solid var(--c-line); border-radius: var(--r-l); padding: var(--s-m); margin: var(--s-m) 0; }

/* Fixes after e2e review */
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.woo ul.order_details li { min-width: 0; overflow-wrap: anywhere; }
.woo--my-account .woocommerce > *, .woo--cart .woocommerce > *, .woo--checkout form.checkout > * { min-width: 0; }
.woo .woocommerce-info .button, .woo .woocommerce-message .button { order: 2; }
.woo .woocommerce-orders-table { display: block; overflow-x: auto; }
@media (max-width: 640px) { .woo table.shop_table th, .woo table.shop_table td { padding: 12px 14px; } }
.woo th.product-remove, .woo td.product-remove { width: 64px; }
.woo .woocommerce-message:focus, .woo .woocommerce-error:focus, .woo .woocommerce-info:focus, .wc-notices [role="alert"]:focus { outline: 2px solid var(--c-pine); outline-offset: 2px; }
