/* ============================================================
   Roxana Travel — cart, checkout and order confirmation
   ============================================================ */

/* ---------- Page header ---------- */
.rx-woo-head { padding: clamp(18px, 2.2vw, 30px) 0 clamp(16px, 1.8vw, 24px); }
.rx-woo-head .rx-crumbs { margin-bottom: 16px; }
.rx-woo-head h1 { margin: 8px 0 10px; font-size: clamp(1.9rem, 1.5rem + 1.7vw, 2.7rem); }
.rx-woo-head__lead { max-width: 64ch; margin: 0; font-size: 14.5px; line-height: 1.65; color: var(--muted); }

/* Steps */
.rx-woo-steps { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
.rx-woo-step {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 14px 8px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-family: var(--font-heading);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--muted);
}
.rx-woo-step__num {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--surface-3);
  font-size: 11.5px;
  font-weight: 700;
  color: var(--muted);
}
.rx-woo-step__num .rx-icon { width: 13px !important; height: 13px !important; }
.rx-woo-step.is-active { background: var(--brand-purple); border-color: var(--brand-purple); color: #fff; }
.rx-woo-step.is-active .rx-woo-step__num { background: rgba(255, 255, 255, .22); color: #fff; }
.rx-woo-step.is-done { border-color: rgba(31, 169, 113, .35); color: #15803d; }
.rx-woo-step.is-done .rx-woo-step__num { background: rgba(31, 169, 113, .12); color: #15803d; }

/* ---------- Notices ---------- */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  padding: 14px 18px;
  border: 1px solid var(--line);
  border-left: 3px solid var(--brand-purple);
  border-radius: 14px;
  background: #fff;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--ink-2);
  list-style: none;
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before { display: none; }
.woocommerce .woocommerce-error { border-left-color: var(--danger); }
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button {
  margin-left: auto;
  flex: 0 0 auto;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(106, 75, 209, .1);
  color: var(--brand-purple);
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
}

/* ============================================================
   Cart
   ============================================================ */
.woocommerce-cart-wrapper {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 26px;
  align-items: start;
  margin-bottom: 10px;
}
.woocommerce-cart-form { min-width: 0; }
.woocommerce-cart-form h2 { display: none; }

.shop_table.cart {
  display: grid;
  gap: 12px;
  border: 0;
  background: transparent;
}
.shop_table.cart .woocommerce-cart-form__cart-item {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 16px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}
.shop_table.cart .product-thumbnail { margin: 0; }
.shop_table.cart .product-thumbnail img {
  width: 96px;
  height: 96px;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}
.shop_table.cart .product-name h6,
.shop_table.cart .product-name a {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  line-height: 1.35;
}
.shop_table.cart .product-name a:hover { color: var(--brand-purple); }
.rx-woo-item-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 6px; }
.rx-woo-item-meta span { font-size: 12px; color: var(--muted); }
.rx-woo-item-meta em { font-style: normal; font-weight: 600; color: var(--ink-2); }
.shop_table.cart .product-subtotal {
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
}
.shop_table.cart .product-quantity .quantity input {
  width: 56px;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 10px;
  text-align: center;
  font-size: 13.5px;
}
.shop_table.cart .remove {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--muted) !important;
  background: #fff;
  text-decoration: none;
}
.shop_table.cart .remove:hover { background: var(--danger); border-color: var(--danger); color: #fff !important; }
.shop_table.cart .remove .togo-svg-icon svg { width: 16px; height: 16px; }

/* Coupon */
.woocommerce-cart-form .coupon {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.woocommerce-cart-form .coupon input[type="text"] {
  flex: 1 1 220px;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.woocommerce-cart-form .coupon button {
  min-height: 46px;
  padding: 0 20px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
}
.woocommerce-cart-form .coupon button:hover { border-color: var(--brand-purple); color: var(--brand-purple); }
.woocommerce-cart-form > button[name="update_cart"] { display: none; }

/* Totals */
.cart-collaterals { position: sticky; top: 96px; }
.cart_totals {
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 38px rgba(20, 18, 31, .05);
}
.cart_totals h2 {
  margin: 0 0 14px;
  font-family: var(--font-heading);
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
}
.cart_totals table.shop_table { width: 100%; border-collapse: collapse; border: 0; background: transparent; }
.cart_totals table.shop_table tr { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line-2); }
.cart_totals table.shop_table tr:last-child { border-bottom: 0; }
.cart_totals table.shop_table th,
.cart_totals table.shop_table td {
  padding: 0;
  border: 0;
  font-size: 13.5px;
  color: var(--muted);
  text-align: inherit;
}
.cart_totals table.shop_table td { font-family: var(--font-heading); font-weight: 600; color: var(--ink); }
.cart_totals tr.order-total th { font-family: var(--font-heading); font-size: 14.5px; font-weight: 700; color: var(--ink); }
.cart_totals tr.order-total td { font-size: 20px; font-weight: 700; color: var(--ink); }

.wc-proceed-to-checkout { margin-top: 16px; }
.wc-proceed-to-checkout a.checkout-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  border-radius: 999px;
  background: var(--brand-purple);
  color: #fff;
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: background .18s ease, transform .18s ease;
}
.wc-proceed-to-checkout a.checkout-button:hover { background: var(--brand-purple-600); transform: translateY(-1px); }

/* Trust + continue */
.rx-woo-trust {
  display: grid;
  gap: 8px;
  margin: 16px 0 0;
  padding: 14px 0 0;
  border-top: 1px solid var(--line-2);
  list-style: none;
}
.rx-woo-trust li { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--muted); }
.rx-woo-trust .rx-icon { width: 15px !important; height: 15px !important; color: var(--brand-purple); }

.rx-woo-continue {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 22px 0 0;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 600;
  color: var(--brand-purple);
  text-decoration: none;
}
.rx-woo-continue .rx-icon { width: 15px !important; height: 15px !important; transform: rotate(180deg); }
.rx-woo-continue:hover { color: var(--brand-magenta); }

/* Empty cart */
.rx-woo-empty {
  padding: clamp(30px, 4vw, 52px) 24px;
  border: 1px dashed rgba(106, 75, 209, .32);
  border-radius: 20px;
  background: rgba(255, 255, 255, .72);
  text-align: center;
}
.rx-woo-empty__icon {
  display: inline-grid;
  place-items: center;
  width: 54px;
  height: 54px;
  margin-bottom: 12px;
  border-radius: 50%;
  background: rgba(106, 75, 209, .1);
  color: var(--brand-purple);
}
.rx-woo-empty__icon .rx-icon { width: 24px !important; height: 24px !important; }
.rx-woo-empty strong { display: block; margin-bottom: 6px; font-family: var(--font-heading); font-size: 17px; color: var(--ink); }
.rx-woo-empty p { max-width: 48ch; margin: 0 auto 16px; font-size: 13.5px; line-height: 1.6; color: var(--muted); }
.rx-woo-empty__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }

/* ============================================================
   Checkout
   ============================================================ */
form.checkout.woocommerce-checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 400px;
  gap: 26px;
  align-items: start;
}
form.checkout.woocommerce-checkout::before,
form.checkout.woocommerce-checkout::after { display: none; }
.booking-submission { min-width: 0; }
.order-summary { position: sticky; top: 96px; }

.customer_details,
.customer_review {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  margin-bottom: 16px;
}
.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3,
.customer_review h3 {
  margin: 0 0 14px;
  font-family: var(--font-heading);
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
}
.woocommerce-billing-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 14px;
}
.woocommerce .form-row { width: 100% !important; float: none !important; padding: 0 0 12px; margin: 0; }
.woocommerce .form-row-wide,
.woocommerce .form-row.notes { grid-column: 1 / -1; }
.woocommerce .form-row label {
  display: block;
  margin-bottom: 6px;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-2);
}
.woocommerce .form-row .required { color: var(--brand-magenta); text-decoration: none; }
.woocommerce .form-row input.input-text,
.woocommerce .form-row select,
.woocommerce .form-row textarea,
.woocommerce .select2-container .select2-selection--single {
  width: 100%;
  min-height: 48px;
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  font: inherit;
  font-size: 14px;
  color: var(--ink);
  box-shadow: none;
}
.woocommerce .form-row textarea { min-height: 110px; resize: vertical; }
.woocommerce .form-row input.input-text:focus,
.woocommerce .form-row select:focus,
.woocommerce .form-row textarea:focus {
  outline: none;
  border-color: var(--brand-purple);
  box-shadow: 0 0 0 3px rgba(106, 75, 209, .13);
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 26px; padding: 0; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
.woocommerce .select2-dropdown { border-color: var(--line); border-radius: 12px; }

/* Order summary card */
.order-summary .shop_table.woocommerce-checkout-review-order-table {
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 38px rgba(20, 18, 31, .05);
}
.order-summary .shop_table.woocommerce-checkout-review-order-table::before { display: none; }
.woocommerce-checkout-review-order-top,
.woocommerce-checkout-review-order-bottom { display: grid; gap: 10px; }
.woocommerce-checkout-review-order-table .cart_item {
  display: grid;
  gap: 4px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line-2);
}
.woocommerce-checkout-review-order-table .cart_item + .cart_item { padding-top: 12px; }
.woocommerce-checkout-review-order-table .cart_item .product-name { font-family: var(--font-heading); font-size: 14px; font-weight: 600; color: var(--ink); }
.woocommerce-checkout-review-order-table .cart_item .product-total { font-size: 13.5px; font-weight: 600; color: var(--ink-2); }

.woocommerce-checkout-review-order-bottom .cart-subtotal,
.woocommerce-checkout-review-bottom .order-total,
.woocommerce-checkout-review-order-bottom .order-total,
.woocommerce-checkout-review-order-bottom tr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--line-2);
  font-size: 13.5px;
  color: var(--muted);
}
.woocommerce-checkout-review-order-bottom tr:last-child { border-bottom: 0; }
.woocommerce-checkout-review-order-bottom .order-total th,
.woocommerce-checkout-review-order-bottom .order-total td { font-family: var(--font-heading); font-size: 17px; font-weight: 700; color: var(--ink); }

/* Payment */
.woocommerce-checkout-payment {
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
}
.woocommerce-checkout-payment ul.wc_payment_methods { margin: 0 0 16px; padding: 0; list-style: none; display: grid; gap: 10px; }
.woocommerce-checkout-payment ul.wc_payment_methods li {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  font-size: 13.5px;
}
.woocommerce-checkout-payment ul.wc_payment_methods li label { font-family: var(--font-heading); font-weight: 600; color: var(--ink); cursor: pointer; }
.woocommerce-checkout-payment .payment_box {
  margin: 10px 0 0;
  padding: 12px 0 0;
  border-top: 1px solid var(--line-2);
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--muted);
  background: transparent;
}
.woocommerce-checkout-payment .payment_box::before { display: none; }
.woocommerce-checkout-payment .place-order { margin-top: 6px; }
.woocommerce-checkout-payment #place_order,
.woocommerce-checkout-payment .button.alt {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  border-radius: 999px;
  background: var(--brand-purple);
  color: #fff;
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 600;
  border: 0;
  cursor: pointer;
}
.woocommerce-checkout-payment #place_order:hover { background: var(--brand-purple-600); }
.woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; font-size: 12.5px; color: var(--muted); }

/* Coupon toggle on checkout */
.woocommerce-form-coupon-toggle .woocommerce-info { border-left-color: var(--brand-blue); }
form.checkout_coupon.woocommerce-form-coupon {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 20px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}
form.checkout_coupon .form-row { flex: 1 1 220px; padding: 0; }
form.checkout_coupon .button {
  min-height: 48px;
  padding: 0 20px;
  border: 0;
  border-radius: 12px;
  background: var(--brand-purple);
  color: #fff;
  font-family: var(--font-heading);
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
}

/* ============================================================
   Thank you
   ============================================================ */
.rx-woo-thanks-head {
  margin: 0 0 26px;
  padding: clamp(22px, 3vw, 36px);
  border: 1px solid rgba(31, 169, 113, .28);
  border-radius: 22px;
  background: linear-gradient(160deg, #f4fdf8, #fff);
  text-align: center;
}
.rx-woo-thanks-icon {
  display: inline-grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin-bottom: 12px;
  border-radius: 50%;
  background: rgba(31, 169, 113, .12);
  color: #15803d;
}
.rx-woo-thanks-icon .rx-icon { width: 26px !important; height: 26px !important; }
.rx-woo-thanks-head h1 { margin: 8px 0 10px; font-size: clamp(1.7rem, 1.4rem + 1.3vw, 2.3rem); }
.rx-woo-thanks-head .rx-woo-head__lead { margin-inline: auto; }

.woocommerce-order { max-width: 920px; margin: 0 auto; }
.woocommerce-order > p { font-size: 14px; line-height: 1.7; color: var(--ink-2); }
.woocommerce-order ul.woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin: 0 0 22px;
  padding: 0;
  list-style: none;
}
.woocommerce-order ul.woocommerce-order-overview li {
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
}
.woocommerce-order ul.woocommerce-order-overview li strong { display: block; margin-top: 5px; font-family: var(--font-heading); font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--ink); }
.woocommerce-order h2 { font-family: var(--font-heading); font-size: 20px; color: var(--ink); }
.woocommerce-order table.shop_table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}
.woocommerce-order table.shop_table th,
.woocommerce-order table.shop_table td { padding: 12px 14px; border-bottom: 1px solid var(--line-2); font-size: 13.5px; text-align: left; }
.woocommerce-order table.shop_table th { font-family: var(--font-heading); color: var(--ink); }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .woocommerce-cart-wrapper,
  form.checkout.woocommerce-checkout { grid-template-columns: 1fr; }
  .cart-collaterals,
  .order-summary { position: static; }
}
@media (max-width: 720px) {
  .shop_table.cart .woocommerce-cart-form__cart-item { grid-template-columns: 72px minmax(0, 1fr) auto; gap: 12px; }
  .shop_table.cart .product-thumbnail img { width: 72px; height: 72px; }
  .shop_table.cart .product-subtotal { grid-column: 2; font-size: 14px; }
  .shop_table.cart .remove { grid-column: 3; grid-row: 1 / span 2; }
  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-additional-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
}

/* Item layout refinement (remove lives inside the subtotal cell) */
.shop_table.cart .woocommerce-cart-form__cart-item {
  grid-template-columns: 96px minmax(0, 1fr) auto;
}
.shop_table.cart .woocommerce-cart-form__cart-item > div { border: 0 !important; }
.shop_table.cart .product-subtotal {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}
.shop_table.cart .product-subtotal .remove { margin: 0; }
.shop_table.cart .product-name { padding-inline: 2px; }

@media (max-width: 720px) {
  .shop_table.cart .woocommerce-cart-form__cart-item { grid-template-columns: 72px minmax(0, 1fr); }
  .shop_table.cart .product-subtotal { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; }
}

/* ============================================================
   Checkout refinements (Togo markup)
   ============================================================ */
/* One card only: the inner Togo blocks lose their own frame */
.customer_details .woocommerce-billing-fields,
.customer_details .woocommerce-shipping-fields,
.customer_details .woocommerce-additional-fields {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  margin: 0 !important;
}
.customer_details .woocommerce-billing-fields h3,
.customer_details .woocommerce-additional-fields h3 { margin-top: 0; }
.customer_details > .woocommerce-billing-fields + .woocommerce-additional-fields { margin-top: 18px !important; }

/* Two fields per row */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0 14px !important;
}

/* Order summary */
.woocommerce-checkout-review-order-table .cart_item {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center;
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line-2);
}
.woocommerce-checkout-review-order-table .product-info { display: flex; align-items: center; gap: 12px; min-width: 0; }
.woocommerce-checkout-review-order-table .product-info img { width: 56px; height: 56px; border-radius: 10px; object-fit: cover; }
.woocommerce-checkout-review-order-table .product-info .product-name { font-family: var(--font-heading); font-size: 14px; font-weight: 600; color: var(--ink); line-height: 1.35; }
.woocommerce-checkout-review-order-table .product-total,
.woocommerce-checkout-review-order-table .product-total .amount {
  font-family: var(--font-heading) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--ink) !important;
}

.woocommerce-checkout-review-order-bottom { display: grid !important; gap: 0 !important; margin-top: 14px; }
.woocommerce-checkout-review-order-bottom .coupon-wrapper { padding: 0 0 12px; border-bottom: 1px solid var(--line-2); }
.woocommerce-checkout-review-order-bottom .open-coupon {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-heading);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--brand-magenta);
  text-decoration: none;
}
.woocommerce-checkout-review-order-bottom .open-coupon:hover { color: var(--brand-purple); }
.woocommerce-checkout-review-order-bottom .coupon-field { display: flex; gap: 8px; margin-top: 10px; }
.woocommerce-checkout-review-order-bottom .coupon-field input {
  flex: 1;
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.woocommerce-checkout-review-order-bottom .coupon-field button {
  min-height: 42px;
  padding: 0 16px;
  border: 0;
  border-radius: 10px;
  background: var(--brand-purple);
  color: #fff;
  font-family: var(--font-heading);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
}
.woocommerce-checkout-review-order-bottom .coupon-notice { margin-top: 8px; font-size: 12px; color: var(--muted); }

.woocommerce-checkout-review-order-bottom .cart-subtotal,
.woocommerce-checkout-review-order-bottom .order-total {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--line-2);
}
.woocommerce-checkout-review-order-bottom .cart-subtotal .label,
.woocommerce-checkout-review-order-bottom .cart-subtotal .price { font-size: 13.5px; color: var(--muted); }
.woocommerce-checkout-review-order-bottom .cart-subtotal .price { font-family: var(--font-heading); font-weight: 600; color: var(--ink); }
.woocommerce-checkout-review-order-bottom .order-total { border-bottom: 0; padding-top: 14px !important; }
.woocommerce-checkout-review-order-bottom .order-total .label { font-family: var(--font-heading); font-size: 14.5px; font-weight: 700; color: var(--ink); }
.woocommerce-checkout-review-order-bottom .order-total .price,
.woocommerce-checkout-review-order-bottom .order-total .price .amount {
  font-family: var(--font-heading) !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  color: var(--ink) !important;
}

/* Payment block sits inside the review column */
.customer_review .woocommerce-checkout-review-order { margin-bottom: 16px; }
.customer_review .woocommerce-checkout-payment { border: 0; padding: 0; background: transparent; }

@media (max-width: 720px) {
  .woocommerce-billing-fields__field-wrapper,
  .woocommerce-additional-fields__field-wrapper,
  .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr !important; }
}

/* Summary item: name and price must never collide */
.woocommerce-checkout-review-order-table .product-total {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  white-space: nowrap;
}
.woocommerce-checkout-review-order-table .product-total .label {
  font-size: 10.5px;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--muted);
}
.woocommerce-checkout-review-order-table .product-info { flex: 1 1 auto; }
.woocommerce-checkout-review-order-table .product-info > a:first-child,
.woocommerce-checkout-review-order-table .product-info img { flex: 0 0 56px; }

/* Place order keeps the brand purple (Togo loads magenta) */
#place_order,
.woocommerce-checkout-payment #place_order,
.woocommerce-checkout-payment .button.alt {
  background: var(--brand-purple) !important;
  background-image: none !important;
  color: #fff !important;
}
#place_order:hover,
.woocommerce-checkout-payment #place_order:hover,
.woocommerce-checkout-payment .button.alt:hover {
  background: var(--brand-purple-600) !important;
}

/* Additional information heading inside the contact card */
.customer_details .woocommerce-additional-fields h3 {
  padding-top: 14px;
  border-top: 1px solid var(--line-2);
}

/* Trim the summary line so long trip names fit */
.woocommerce-checkout-review-order-table .product-total .label { display: none; }
.woocommerce-checkout-review-order-table .product-info img { width: 48px !important; height: 48px !important; }
.woocommerce-checkout-review-order-table .product-info .product-name { font-size: 13px; line-height: 1.35; }

/* Thank-you polish */
.woocommerce-order .woocommerce-thankyou-order-received,
.woocommerce-order > .woocommerce-notice { display: none !important; }
.woocommerce-order ul.woocommerce-order-overview li {
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  background: #fff !important;
}
.woocommerce-order .woocommerce-order-details { margin-bottom: 26px; }
.woocommerce-order .woocommerce-columns--addresses { display: grid; gap: 16px; }
.woocommerce-order .woocommerce-column { padding: 18px 20px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.woocommerce-order .woocommerce-column h2 { margin: 0 0 8px; font-size: 15px; }
.woocommerce-order .woocommerce-column address { font-style: normal; font-size: 13.5px; line-height: 1.7; color: var(--ink-2); }
.woocommerce-order .order-again { margin-top: 18px; }
.woocommerce-order .order-again .button,
.woocommerce-order .wc-action-button,
.woocommerce-order .woocommerce-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  cursor: pointer;
}
.woocommerce-order .order-again .button:hover,
.woocommerce-order .wc-action-button:hover { border-color: var(--brand-purple); color: var(--brand-purple); }

/* Mobile totals: keep the label/value on one line with a gap */
@media (max-width: 768px) {
  .cart_totals table.shop_table tr {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    background: transparent !important;
  }
  .cart_totals table.shop_table th,
  .cart_totals table.shop_table td {
    display: block !important;
    width: auto !important;
    padding: 0 !important;
    background: transparent !important;
    text-align: left !important;
  }
  .cart_totals table.shop_table td { text-align: right !important; }
  .cart_totals table.shop_table td::before { display: none !important; }
}

/* ============================================================
   Account: login + dashboard shell
   ============================================================ */
.woocommerce-account:not(.logged-in) .woocommerce h2 { display: none; }
.woocommerce-form-login,
.woocommerce-form-register {
  max-width: 520px;
  margin: 0 auto;
  padding: clamp(20px, 3vw, 30px);
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(20, 18, 31, .06);
}
.woocommerce-form-login p.form-row,
.woocommerce-form-register p.form-row { margin: 0 0 14px; padding: 0; width: 100%; float: none; }
.woocommerce-form-login label,
.woocommerce-form-register label {
  display: block;
  margin-bottom: 6px;
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-2);
}
.woocommerce-form-login input.input-text,
.woocommerce-form-register input.input-text {
  width: 100%;
  min-height: 50px;
  padding: 12px 15px;
  border: 1px solid var(--line);
  border-radius: 12px;
  font: inherit;
  font-size: 14px;
  color: var(--ink);
  background: #fff;
}
.woocommerce-form-login input.input-text:focus,
.woocommerce-form-register input.input-text:focus {
  outline: none;
  border-color: var(--brand-purple);
  box-shadow: 0 0 0 3px rgba(106, 75, 209, .13);
}
.woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px !important;
  font-size: 13px;
  color: var(--muted);
}
.woocommerce-form-login .button,
.woocommerce-form-register .button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  border: 0;
  border-radius: 999px;
  background: var(--brand-purple);
  color: #fff;
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}
.woocommerce-form-login .button:hover,
.woocommerce-form-register .button:hover { background: var(--brand-purple-600); }
.woocommerce-LostPassword { margin: 14px 0 0; text-align: center; font-size: 13px; }
.woocommerce-LostPassword a { color: var(--brand-purple); font-weight: 600; text-decoration: none; }
.woocommerce-account .woocommerce-info { max-width: 520px; margin-inline: auto; }
.woocommerce-account .u-columns.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.woocommerce-account .u-columns.col2-set .u-column1,
.woocommerce-account .u-columns.col2-set .u-column2 { width: 100%; float: none; }

/* Logged-in dashboard shell (Togo dashboard template) */
.dashboard-site { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 24px; max-width: var(--container); margin: 0 auto; padding: 26px clamp(16px, 3vw, 24px) 40px; align-items: start; }
.dashboard-nav {
  position: sticky;
  top: 96px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(20, 18, 31, .05);
}
.dashboard-nav-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.dashboard-nav-top .dashboard-nav-close { display: none; }
.dashboard-nav .my-account-menu ul,
.dashboard-nav .my-account-menu-items { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.dashboard-nav .my-account-menu-items li a {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 12px;
  border-radius: 10px;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-2);
  text-decoration: none;
}
.dashboard-nav .my-account-menu-items li a:hover { background: var(--surface-2); color: var(--brand-purple); }
.dashboard-nav .my-account-menu-items li.current-menu-item > a { background: rgba(106, 75, 209, .1); color: var(--brand-purple); }
.dashboard-nav .my-account-menu-items svg { width: 17px; height: 17px; }
.dashboard-main {
  min-width: 0;
  padding: clamp(18px, 2.4vw, 28px);
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
}
.dashboard-main h2:first-child, .dashboard-main h1:first-child { margin-top: 0; }
.dashboard-main .woocommerce-MyAccount-navigation { display: none; }

@media (max-width: 900px) {
  .dashboard-site { grid-template-columns: 1fr; }
  .dashboard-nav { position: static; }
  .woocommerce-account .u-columns.col2-set { grid-template-columns: 1fr; }
}

/* Account: centre the card and force the brand button */
.woocommerce .woocommerce-form-login,
.woocommerce .woocommerce-form-register {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 520px !important;
}
.woocommerce .woocommerce-form-login .button,
.woocommerce .woocommerce-form-login button.button,
.woocommerce .woocommerce-form-register .button,
.woocommerce .woocommerce-form-register button.button {
  background: var(--brand-purple) !important;
  background-image: none !important;
  color: #fff !important;
  border: 0 !important;
}
.woocommerce .woocommerce-form-login .button:hover,
.woocommerce .woocommerce-form-register .button:hover {
  background: var(--brand-purple-600) !important;
}

/* ============================================================
   Traveller dashboard panels
   ============================================================ */
.rx-acc-hello { margin-bottom: 18px; }
.rx-acc-hello h2 { margin: 6px 0 8px; font-family: var(--font-heading); font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); color: var(--ink); }
.rx-acc-hello p { margin: 0; max-width: 60ch; font-size: 13.5px; line-height: 1.65; color: var(--muted); }

.rx-acc-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 22px; }
.rx-acc-stat {
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: linear-gradient(160deg, #fff, #faf8ff);
}
.rx-acc-stat strong { display: block; font-family: var(--font-heading); font-size: 26px; line-height: 1; color: var(--ink); }
.rx-acc-stat span { display: block; margin-top: 6px; font-size: 12px; color: var(--muted); }

.rx-acc-title { margin: 0 0 12px; font-family: var(--font-heading); font-size: 16px; font-weight: 700; color: var(--ink); }
.rx-acc-lead { margin: 0 0 18px; font-size: 13.5px; line-height: 1.6; color: var(--muted); }

.rx-acc-next { display: grid; gap: 10px; margin-bottom: 22px; }
.rx-acc-next__item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  text-decoration: none;
  transition: border-color .18s ease, transform .18s ease;
}
.rx-acc-next__item:hover { border-color: rgba(106, 75, 209, .35); transform: translateY(-1px); }
.rx-acc-next__date {
  flex: 0 0 auto;
  padding: 8px 12px;
  border-radius: 10px;
  background: rgba(106, 75, 209, .1);
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 700;
  color: var(--brand-purple);
  white-space: nowrap;
}
.rx-acc-next__body { min-width: 0; }
.rx-acc-next__body strong { display: block; font-family: var(--font-heading); font-size: 13.5px; color: var(--ink); }
.rx-acc-next__body em { display: block; margin-top: 2px; font-style: normal; font-size: 11.5px; color: var(--muted); }
.rx-acc-next__arrow { margin-left: auto; color: var(--brand-purple); }
.rx-acc-next__arrow .rx-icon { width: 15px !important; height: 15px !important; }

.rx-acc-links { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rx-acc-links > a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  text-decoration: none;
  transition: border-color .18s ease, transform .18s ease;
}
.rx-acc-links > a:hover { border-color: rgba(106, 75, 209, .35); transform: translateY(-1px); }
.rx-acc-links > a > .rx-icon:first-child { width: 18px !important; height: 18px !important; color: var(--brand-purple); }
.rx-acc-links > a > .rx-icon:last-child { width: 14px !important; height: 14px !important; margin-left: auto; color: var(--muted); }
.rx-acc-links span { min-width: 0; }
.rx-acc-links strong { display: block; font-family: var(--font-heading); font-size: 13px; color: var(--ink); }
.rx-acc-links em { display: block; margin-top: 2px; font-style: normal; font-size: 11.5px; color: var(--muted); }

.rx-acc-empty {
  padding: 32px 22px;
  margin-bottom: 20px;
  border: 1px dashed rgba(106, 75, 209, .3);
  border-radius: 16px;
  background: rgba(255, 255, 255, .7);
  text-align: center;
}
.rx-acc-empty strong { display: block; margin-bottom: 6px; font-family: var(--font-heading); font-size: 15px; color: var(--ink); }
.rx-acc-empty p { max-width: 46ch; margin: 0 auto 14px; font-size: 13px; line-height: 1.6; color: var(--muted); }

/* Bookings table */
.rx-acc-orders { display: grid; gap: 8px; }
.rx-acc-orders__head {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) 96px 112px 96px 58px;
  gap: 14px;
  padding: 0 14px 8px;
  font-family: var(--font-heading);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--muted);
}
.rx-acc-order {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) 96px 112px 96px 58px;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  font-size: 13px;
  color: var(--ink-2);
}
.rx-acc-order__id { font-family: var(--font-heading); font-weight: 700; color: var(--ink); }
.rx-acc-order__id em { display: block; margin-top: 2px; font-style: normal; font-family: var(--font-body); font-size: 11.5px; font-weight: 400; color: var(--muted); }
.rx-acc-order__total { font-family: var(--font-heading); font-weight: 700; color: var(--ink); }
.rx-acc-status {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--surface-3);
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-2);
  white-space: nowrap;
}
.rx-acc-status--completed { background: rgba(31, 169, 113, .12); color: #15803d; }
.rx-acc-status--processing,
.rx-acc-status--on-hold { background: rgba(245, 165, 36, .15); color: #a16207; }
.rx-acc-status--cancelled,
.rx-acc-status--failed { background: rgba(229, 72, 77, .12); color: #b91c1c; }
.rx-acc-view {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(106, 75, 209, .1);
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 600;
  color: var(--brand-purple);
  text-decoration: none;
}
.rx-acc-view:hover { background: var(--brand-purple); color: #fff; }

/* Reviews */
.rx-acc-reviews { display: grid; gap: 12px; }
.rx-acc-review { padding: 16px 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.rx-acc-review__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.rx-acc-review__head strong { font-family: var(--font-heading); font-size: 14px; color: var(--ink); }
.rx-acc-review__stars { color: var(--gold); font-size: 13px; letter-spacing: 1px; }
.rx-acc-review p { margin: 0 0 10px; font-size: 13px; line-height: 1.6; color: var(--ink-2); }
.rx-acc-review__meta { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 11.5px; color: var(--muted); }
.rx-acc-review__meta a { color: var(--brand-purple); font-weight: 600; text-decoration: none; }

/* Settings */
.rx-acc-settings__block { padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.rx-acc-settings__block h3 { margin: 0 0 14px; font-family: var(--font-heading); font-size: 15px; color: var(--ink); }
.rx-acc-settings .woocommerce-EditAccountForm .form-row { width: 100%; float: none; padding: 0 0 12px; }
.rx-acc-settings .woocommerce-EditAccountForm label { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 600; color: var(--ink-2); }
.rx-acc-settings .woocommerce-EditAccountForm input.input-text {
  width: 100%;
  min-height: 48px;
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.rx-acc-settings .woocommerce-EditAccountForm fieldset { margin: 16px 0 0; padding: 16px; border: 1px solid var(--line-2); border-radius: 14px; }
.rx-acc-settings .woocommerce-EditAccountForm legend { padding: 0 6px; font-family: var(--font-heading); font-size: 13px; font-weight: 700; color: var(--ink); }
.rx-acc-settings .woocommerce-EditAccountForm button.button {
  min-height: 48px;
  padding: 0 24px;
  border: 0;
  border-radius: 999px;
  background: var(--brand-purple);
  color: #fff;
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.rx-acc-settings .woocommerce-EditAccountForm button.button:hover { background: var(--brand-purple-600); }

@media (max-width: 860px) {
  .rx-acc-stats { grid-template-columns: 1fr; }
  .rx-acc-links { grid-template-columns: 1fr; }
  .rx-acc-orders__head { display: none; }
  .rx-acc-order {
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: 8px;
  }
  .rx-acc-order > span:nth-child(1) { grid-column: 1 / -1; }
  .rx-acc-order > span:nth-child(2),
  .rx-acc-order > span:nth-child(3),
  .rx-acc-order > span:nth-child(4) { grid-column: 1; }
  .rx-acc-order > span:nth-child(5) { grid-column: 2; grid-row: 2 / span 3; align-self: center; }
  .rx-acc-order > span:nth-child(2),
  .rx-acc-order > span:nth-child(3) { font-size: 12px; color: var(--muted); }
}

/* ============================================================
   Dashboard shell — override Togo's fixed full-height sidebar
   ============================================================ */
.dashboard-site {
  display: flex !important;
  gap: 24px;
  align-items: flex-start;
  max-width: var(--container);
  margin: 0 auto !important;
  padding: 26px clamp(16px, 3vw, 24px) 60px !important;
}
.dashboard-nav {
  position: sticky !important;
  top: 96px !important;
  left: auto !important;
  flex: 0 0 250px;
  width: 250px !important;
  height: auto !important;
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  padding: 16px !important;
  border: 1px solid var(--line) !important;
  border-radius: 20px;
  background: #fff !important;
  box-shadow: 0 14px 34px rgba(20, 18, 31, .05);
  z-index: 5 !important;
}
.dashboard-nav .dashboard-nav-top { margin-bottom: 12px !important; }
.dashboard-nav .dashboard-nav-top a img,
.dashboard-nav .dashboard-nav-top .site-logo { max-height: 34px; width: auto; }
.dashboard-main {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  overflow: visible !important;
  background: transparent !important;
}
.dashboard-main > .woocommerce,
.dashboard-main > .rx-acc-hello,
.dashboard-main > h2 { margin-top: 0; }

@media (max-width: 900px) {
  .dashboard-site { flex-direction: column; }
  .dashboard-nav { position: static !important; flex: 1 1 auto; width: 100% !important; max-height: none; }
}

/* ============================================================
   404
   ============================================================ */
.rx-404 { padding: clamp(30px, 5vw, 70px) 0 clamp(40px, 6vw, 90px); }
.rx-404__inner { max-width: 720px; margin-inline: auto; text-align: center; }
.rx-404__code {
  display: block;
  margin-bottom: 6px;
  font-family: var(--font-heading);
  font-size: clamp(4.5rem, 3rem + 9vw, 9rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.04em;
  background: linear-gradient(135deg, var(--brand-blue), var(--brand-magenta) 55%, var(--brand-purple));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  opacity: .9;
}
.rx-404 h1 { margin: 10px 0 14px; font-size: clamp(1.9rem, 1.5rem + 1.6vw, 2.7rem); }
.rx-404 p { max-width: 56ch; margin: 0 auto 22px; font-size: 15px; line-height: 1.7; color: var(--muted); }
.rx-404__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 28px; }
.rx-404__links { display: flex; flex-wrap: wrap; gap: 8px 22px; justify-content: center; margin-bottom: 34px; }
.rx-404__links a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-heading);
  font-size: 13px;
  font-weight: 600;
  color: var(--brand-purple);
  text-decoration: none;
}
.rx-404__links a:hover { color: var(--brand-magenta); }
.rx-404__links .rx-icon { width: 13px !important; height: 13px !important; }
.rx-404__search { max-width: 520px; margin: 0 auto; }
.rx-404__search .rx-eyebrow { display: block; margin-bottom: 12px; }

/* ============================================================
   Checkout summary: restore Togo's block flow (no grid overlap)
   ============================================================ */
.woocommerce-checkout-review-order-table .cart_item {
  display: block !important;
  grid-template-columns: none !important;
  padding: 0 !important;
  border-bottom: 1px solid var(--line-2);
}
.woocommerce-checkout-review-order-table .cart_item .product-info {
  display: flex !important;
  align-items: center;
  gap: 12px;
  padding: 16px 16px 10px !important;
}
.woocommerce-checkout-review-order-table .cart_item .product-thumbnail {
  flex: 0 0 56px;
  max-width: 56px;
}
.woocommerce-checkout-review-order-table .cart_item .product-thumbnail img {
  width: 56px;
  height: 56px;
  border-radius: 10px;
  object-fit: cover;
}
.woocommerce-checkout-review-order-table .cart_item .product-name {
  flex: 1;
  min-width: 0;
  padding: 0 !important;
  font-family: var(--font-heading);
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.35;
  color: var(--ink) !important;
}
.woocommerce-checkout-review-order-table .cart_item .reservation-detail {
  display: grid !important;
  gap: 4px;
  padding: 0 16px 12px !important;
}
.woocommerce-checkout-review-order-table .cart_item .reservation-detail .item {
  display: flex !important;
  align-items: flex-start;
  gap: 8px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--muted);
}
.woocommerce-checkout-review-order-table .cart_item .reservation-detail .item svg {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  margin: 0 !important;
  color: var(--brand-purple);
}
.woocommerce-checkout-review-order-table .cart_item .product-price,
.woocommerce-checkout-review-order-table .cart_item .product-service {
  display: grid !important;
  gap: 6px;
  padding: 12px 16px !important;
  border-top: 1px solid var(--line-2) !important;
}
.woocommerce-checkout-review-order-table .cart_item .product-price .item,
.woocommerce-checkout-review-order-table .cart_item .product-service .item {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 12.5px;
  color: var(--muted);
}
.woocommerce-checkout-review-order-table .cart_item .product-price .item .price,
.woocommerce-checkout-review-order-table .cart_item .product-service .item .price {
  font-family: var(--font-heading);
  font-weight: 600;
  color: var(--ink);
}
.woocommerce-checkout-review-order-table .cart_item .product-total {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px !important;
  border-top: 1px solid var(--line-2) !important;
}
.woocommerce-checkout-review-order-table .cart_item .product-total .label {
  display: block !important;
  font-size: 10.5px;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--muted);
}
.woocommerce-checkout-review-order-table .cart_item del { opacity: .55; }
.woocommerce-checkout-review-order-table .cart_item ins { text-decoration: none; }

/* Thank-you: all overview cards on one row */
.woocommerce-order ul.woocommerce-order-overview {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
  gap: 10px !important;
}
.woocommerce-order ul.woocommerce-order-overview li {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 14px 16px !important;
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  background: #fff !important;
}

/* ============================================================
   Thank-you: force a real table layout + one-row overview
   ============================================================ */
.woocommerce-order .woocommerce-table--order-details { display: table !important; table-layout: auto !important; width: 100% !important; }
.woocommerce-order .woocommerce-table--order-details td.product-name {
  display: table-cell !important;
  width: auto !important;
  vertical-align: top !important;
  padding: 16px !important;
}
.woocommerce-order .woocommerce-table--order-details td.product-total {
  display: table-cell !important;
  width: 140px !important;
  text-align: right !important;
  vertical-align: top !important;
  white-space: nowrap;
  padding: 16px !important;
}
.woocommerce-order .woocommerce-table--order-details .reservation-detail {
  display: grid !important;
  width: auto !important;
  float: none !important;
  gap: 4px;
  margin: 8px 0 0 !important;
}
.woocommerce-order .woocommerce-table--order-details .reservation-detail .item {
  display: flex !important;
  align-items: flex-start;
  gap: 8px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--muted);
}
.woocommerce-order .woocommerce-table--order-details .reservation-detail .item svg {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  margin: 0 !important;
  color: var(--brand-purple);
}
.woocommerce-order .woocommerce-table--order-details tfoot td,
.woocommerce-order .woocommerce-table--order-details tfoot th { padding: 11px 16px !important; }
.woocommerce-order .woocommerce-table--order-details tfoot tr:last-child td,
.woocommerce-order .woocommerce-table--order-details tfoot tr:last-child th { font-family: var(--font-heading); font-size: 16px; font-weight: 700; color: var(--ink); }

.woocommerce-order ul.woocommerce-order-overview { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.woocommerce-order ul.woocommerce-order-overview li { width: auto !important; float: none !important; }
@media (max-width: 900px) {
  .woocommerce-order ul.woocommerce-order-overview { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 520px) {
  .woocommerce-order ul.woocommerce-order-overview { grid-template-columns: 1fr !important; }
}

/* ---- Deterministic blocks: order overview + order details ---- */
.woocommerce-order ul.woocommerce-order-overview {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin: 0 0 20px !important;
  padding: 0 !important;
  list-style: none !important;
}
.woocommerce-order ul.woocommerce-order-overview li {
  flex: 1 1 190px !important;
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 14px 16px !important;
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  background: #fff !important;
}

.woocommerce-order .woocommerce-table--order-details,
.woocommerce-order .woocommerce-table--order-details thead,
.woocommerce-order .woocommerce-table--order-details tbody,
.woocommerce-order .woocommerce-table--order-details tfoot,
.woocommerce-order .woocommerce-table--order-details tr,
.woocommerce-order .woocommerce-table--order-details th,
.woocommerce-order .woocommerce-table--order-details td {
  display: block !important;
  width: 100% !important;
  border: 0 !important;
  background: transparent !important;
}
.woocommerce-order .woocommerce-table--order-details thead { display: none !important; }
.woocommerce-order .woocommerce-table--order-details {
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  overflow: hidden;
  background: #fff !important;
}
.woocommerce-order .woocommerce-table--order-details tr.order_item { padding: 16px !important; border-bottom: 1px solid var(--line-2) !important; }
.woocommerce-order .woocommerce-table--order-details tr.order_item td.product-name { padding: 0 0 8px !important; }
.woocommerce-order .woocommerce-table--order-details tr.order_item td.product-name > a {
  font-family: var(--font-heading);
  font-size: 14.5px;
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
}
.woocommerce-order .woocommerce-table--order-details tr.order_item td.product-total {
  display: flex !important;
  justify-content: flex-end;
  padding: 0 !important;
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
}
.woocommerce-order .woocommerce-table--order-details .reservation-detail { display: grid !important; gap: 4px; margin: 8px 0 0 !important; }
.woocommerce-order .woocommerce-table--order-details .reservation-detail .item { display: flex !important; gap: 8px; font-size: 12.5px; color: var(--muted); }
.woocommerce-order .woocommerce-table--order-details tfoot tr { display: flex !important; justify-content: space-between; align-items: center; padding: 10px 16px !important; border-top: 1px solid var(--line-2) !important; }
.woocommerce-order .woocommerce-table--order-details tfoot th,
.woocommerce-order .woocommerce-table--order-details tfoot td { width: auto !important; padding: 0 !important; font-size: 13.5px; color: var(--muted); }
.woocommerce-order .woocommerce-table--order-details tfoot td { text-align: right !important; font-family: var(--font-heading); font-weight: 600; color: var(--ink); }
.woocommerce-order .woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-order .woocommerce-table--order-details tfoot tr:last-child td { font-size: 17px; font-weight: 700; color: var(--ink); }

/* Order item: name on the left, price top-right */
.woocommerce-order .woocommerce-table--order-details tr.order_item {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: space-between !important;
  align-items: flex-start;
  gap: 10px 18px;
}
.woocommerce-order .woocommerce-table--order-details tr.order_item td.product-name { flex: 1 1 60% !important; width: auto !important; }
.woocommerce-order .woocommerce-table--order-details tr.order_item td.product-total {
  flex: 0 0 auto !important;
  width: auto !important;
  display: block !important;
  text-align: right !important;
  white-space: nowrap;
}

/* ============================================================
   Account shell — minimal chrome (same family as the auth screens)
   ============================================================ */
.rx-account-page {
  flex: 1;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 8px clamp(14px, 3vw, 32px) 40px;
}

.rx-account-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 18px;
  padding: 4px 0 16px;
  margin-bottom: 22px;
  border-bottom: 1px solid var(--line-2);
}
.rx-account-bar__who { display: flex; align-items: center; gap: 12px; min-width: 0; }
.rx-account-bar__avatar {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(106, 75, 209, .12);
  color: var(--brand-purple);
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .02em;
}
.rx-account-bar__meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rx-account-bar__meta strong {
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rx-account-bar__meta em { font-style: normal; font-size: 12px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rx-account-bar__actions {
  display: flex;
  align-items: center;
  gap: 18px;
  font-family: var(--font-heading);
  font-size: 12.5px;
  font-weight: 600;
}
.rx-account-bar__actions a { color: var(--ink-2); text-decoration: none; }
.rx-account-bar__actions a:hover { color: var(--brand-purple); }
.rx-account-bar__out { color: var(--brand-magenta) !important; }

.rx-account-layout {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: clamp(16px, 2.5vw, 30px);
  align-items: start;
}
.rx-account-nav {
  position: sticky;
  top: 20px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(20, 18, 31, .05);
}
.rx-account-nav nav { display: grid; gap: 2px; }
.rx-account-nav__link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 12px;
  border-radius: 12px;
  font-family: var(--font-heading);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink-2);
  text-decoration: none;
  transition: background .18s ease, color .18s ease;
}
.rx-account-nav__link svg { flex: 0 0 auto; width: 17px; height: 17px; color: var(--muted); transition: color .18s ease; }
.rx-account-nav__link:hover { background: var(--surface-2); color: var(--brand-purple); }
.rx-account-nav__link:hover svg { color: var(--brand-purple); }
.rx-account-nav__link.is-active { background: rgba(106, 75, 209, .1); color: var(--brand-purple); }
.rx-account-nav__link.is-active svg { color: var(--brand-purple); }

.rx-account-main {
  min-width: 0;
  padding: clamp(20px, 3vw, 34px);
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(20, 18, 31, .06);
}
.rx-account-main > h2:first-child { margin-top: 0; }
.rx-account-main .rx-acc-stats { margin-top: 2px; }
.rx-account-main .rx-acc-links { margin-top: 22px; }

@media (max-width: 900px) {
  .rx-account-layout { grid-template-columns: minmax(0, 1fr); }
  .rx-account-nav { position: static; padding: 8px; min-width: 0; overflow: hidden; }
  .rx-account-nav nav {
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .rx-account-nav nav::-webkit-scrollbar { display: none; }
  .rx-account-nav__link { white-space: nowrap; padding: 9px 12px; }
  .rx-account-main { padding: 20px 16px; border-radius: 20px; }
}
@media (max-width: 560px) {
  .rx-account-page { padding-inline: 12px; }
  .rx-account-bar__meta em { display: none; }
  .rx-account-bar__actions { gap: 14px; }
}
