/* WST template styles — WooCommerce booking funnel.
 *
 * Restyles WooCommerce's stock cart / checkout / my-account markup to the
 * homepage-v2 design system. CSS-only, by design: cart/checkout/my-account
 * are standard WP pages carrying Woo shortcodes, so they already render
 * through page.php (theme header/footer + .page-hero + .wst-content + .wrap).
 * No template override is needed — Woo's class names (.shop_table,
 * .cart_totals, #order_review, .woocommerce-MyAccount-*, .woocommerce-message,
 * .button …) are stable and version-safe to target.
 *
 * Enqueued by inc/woocommerce.php as handle `wst-woocommerce`, dependency
 * `wst-base`, on `is_woocommerce() || is_cart() || is_checkout() ||
 * is_account_page()`.
 *
 * Tokens only — never hardcode colour / type / radius.
 * Pairs with components/{button,card,section,page-hero}.css.
 */

/* ============================================================
   0 · Funnel page shell
   These pages run through page.php → .wst-content .wrap. Give the
   Woo content breathing room and a consistent max width.
   ============================================================ */
.woocommerce {
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.6;
}
.woocommerce a {
  color: var(--teal);
  transition: color .15s ease;
}
.woocommerce a:hover { color: var(--terra); }

/* Woo's own breadcrumb (shop/product) — mute it to match .breadcrumbs. */
.woocommerce-breadcrumb {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 24px;
}
.woocommerce-breadcrumb a { color: var(--muted); }
.woocommerce-breadcrumb a:hover { color: var(--terra); }

/* Page sub-heading inside Woo content (e.g. "Billing details"). */
.woocommerce h2,
.woocommerce h3,
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -.01em;
  line-height: 1.15;
  color: var(--ink);
  margin: 0 0 .7em;
}
.woocommerce h2 { font-size: clamp(24px, 2.6vw, 32px); }
.woocommerce h3 { font-size: clamp(20px, 2vw, 25px); }

/* ============================================================
   1 · Buttons — map Woo's .button to the theme .btn pill look
   ============================================================ */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-account button.woocommerce-button,
.woocommerce form .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 24px;
  border-radius: 99px;
  border: 1px solid transparent;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--sans);
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .button:hover,
.woocommerce-account button.woocommerce-button:hover,
.woocommerce form .button:hover {
  background: var(--teal-deep);
  color: var(--paper);
  transform: translateY(-1px);
}

/* Primary CTA — checkout / place order / pay → terracotta accent */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce #place_order,
.woocommerce-checkout #place_order,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.alt {
  background: var(--terra);
  color: var(--white);
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #place_order:hover,
.woocommerce-checkout #place_order:hover {
  background: #a04d34;
  color: var(--white);
}

/* Secondary / quiet buttons — update cart, apply coupon, edit address */
.woocommerce button[name="update_cart"],
.woocommerce button[name="apply_coupon"],
.woocommerce .woocommerce-cart-form button.button:not(.alt),
.woocommerce a.button.wc-backward,
.woocommerce-account .addresses a.edit {
  background: transparent;
  color: var(--ink);
  border-color: var(--rule);
}
.woocommerce button[name="update_cart"]:hover,
.woocommerce button[name="apply_coupon"]:hover,
.woocommerce a.button.wc-backward:hover,
.woocommerce-account .addresses a.edit:hover {
  background: var(--paper-2);
  color: var(--ink);
  border-color: var(--rule);
}

/* Disabled state (Woo greys out Update cart until a qty changes). */
.woocommerce button.button[disabled],
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] {
  opacity: .45;
  cursor: not-allowed;
  transform: none;
}

/* Order-pay page (/checkout/order-pay/) — the iVeri Lite gateway renders
   its submit button with `class="button-alt"` (hyphenated, non-standard
   for WC, so the regular `.button.alt` rules miss it) and a `#proPayment`
   id. Cancel link uses `class="button cancel"`. Style them so the Pay
   button is the loud primary CTA and Cancel is the quieter secondary. */
.woocommerce input.button-alt,
.woocommerce #proPayment {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: 99px;
  border: 1px solid transparent;
  background: var(--terra);
  color: var(--white);
  font-family: var(--sans);
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: transform .18s ease, background .18s ease;
}
.woocommerce input.button-alt:hover,
.woocommerce #proPayment:hover {
  background: #a04d34;
  transform: translateY(-1px);
}
.woocommerce a.button.cancel {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--rule);
}
.woocommerce a.button.cancel:hover {
  background: var(--paper-2);
  color: var(--ink);
  border-color: var(--rule);
  transform: none;
}

/* Layout: stack the order summary + intro + button row with breathing room. */
.woocommerce-order-pay .woocommerce {
  max-width: 980px;
  margin: 0 auto;
}
.woocommerce-order-pay #order_review {
  margin-top: 12px;
}
.woocommerce-order-pay #order_review .form-row {
  margin-bottom: 14px;
}

/* CTA panel wrapper at the foot of cart totals. */
.woocommerce .wc-proceed-to-checkout {
  padding: 0;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button {
  display: flex;
  width: 100%;
  font-size: 15px;
  padding: 16px 24px;
}

/* ============================================================
   2 · Form fields — text inputs, selects, textareas
   ============================================================ */
.woocommerce form .form-row,
.woocommerce-page form .form-row {
  margin: 0 0 18px;
  padding: 0;
}
.woocommerce form .form-row label,
.woocommerce-page form .form-row label,
.woocommerce-account .woocommerce-form-row label {
  display: block;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 7px;
}
.woocommerce .required,
.woocommerce abbr.required {
  color: var(--terra);
  border: 0;
  text-decoration: none;
}
.woocommerce-input-wrapper { display: block; width: 100%; }

.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
/* Scope to FORM context only — without this, body.woocommerce-page select
 * cascades to the utility-bar language/currency switchers and breaks them
 * (shorthand `background` resets background-repeat to default `repeat`,
 * causing the chevron SVG to tile across the chip). The intent of this
 * rule is WC form fields (billing/shipping/state), so `form` scope is right. */
.woocommerce form input[type="search"],
.woocommerce form input[type="url"],
.woocommerce form input.input-text,
.woocommerce form textarea,
.woocommerce form select,
.woocommerce-page form input.input-text,
.woocommerce-page form select,
.woocommerce form .select2-container .select2-selection--single {
  width: 100%;
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-sm);
  padding: 12px 14px;
  font-family: var(--sans);
  font-size: 14.5px;
  color: var(--ink);
  line-height: 1.4;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.woocommerce textarea { min-height: 110px; resize: vertical; }
.woocommerce input::placeholder,
.woocommerce textarea::placeholder { color: var(--muted); }

.woocommerce form input[type="text"]:focus,
.woocommerce form input[type="email"]:focus,
.woocommerce form input[type="tel"]:focus,
.woocommerce form input[type="password"]:focus,
.woocommerce form input[type="number"]:focus,
.woocommerce form input.input-text:focus,
.woocommerce form textarea:focus,
.woocommerce form select:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--teal) 14%, transparent);
}

/* Select2 (country/state dropdowns) — fit the field skin. */
.woocommerce .select2-container--default .select2-selection--single {
  height: auto;
  display: flex;
  align-items: center;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0;
  color: var(--ink);
  line-height: 1.4;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100%;
  right: 8px;
}
.select2-dropdown {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-sm);
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
  background: var(--teal);
  color: var(--paper);
}
.select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid var(--rule);
  border-radius: var(--r-sm);
  padding: 8px 10px;
}

/* Checkbox / radio rows. */
.woocommerce form .form-row.woocommerce-validated input.input-text {
  box-shadow: inset 2px 0 0 var(--teal);
}
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select {
  border-color: var(--terra);
}
.woocommerce-form__label-for-checkbox,
.woocommerce form .form-row.woocommerce-validate-required label {
  font-family: var(--sans);
  font-size: 14px;
  text-transform: none;
  letter-spacing: 0;
  color: var(--ink-2);
}
.woocommerce-form__input-checkbox,
.woocommerce input[type="checkbox"],
.woocommerce input[type="radio"] {
  accent-color: var(--terra);
  width: 16px;
  height: 16px;
}

/* "Ship to a different address?" / login / coupon toggles. */
.woocommerce-form-login-toggle,
.woocommerce-form-coupon-toggle {
  margin: 0 0 20px;
}
.woocommerce-account .woocommerce-form-login,
.woocommerce-checkout .woocommerce-form-login,
.woocommerce form.checkout_coupon,
.woocommerce-cart .checkout_coupon {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  padding: 24px;
  margin: 0 0 24px;
}

/* ============================================================
   3 · Notices — info / success / error
   ============================================================ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice,
.woocommerce .woocommerce-message,
.woocommerce-noreviews,
.wc-block-components-notice-banner {
  list-style: none;
  border-radius: var(--r-md);
  padding: 16px 20px;
  margin: 0 0 24px;
  font-size: 14.5px;
  line-height: 1.55;
  border: 1px solid var(--rule);
  border-left-width: 4px;
  background: var(--white);
  color: var(--ink-2);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
}
.woocommerce-message { border-left-color: var(--teal); }
.woocommerce-info,
.woocommerce-noreviews { border-left-color: var(--gold); }
.woocommerce-error { border-left-color: var(--terra); }
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { content: none; }
.woocommerce-error li { list-style: none; margin: 0; }
.woocommerce-message .button,
.woocommerce-info .button {
  margin-left: auto;
  padding: 9px 18px;
  font-size: 13px;
}

/* ============================================================
   4 · Tables — cart, order review, my-account orders/downloads
   ============================================================ */
.woocommerce table.shop_table,
.woocommerce .cart_totals table,
.woocommerce-checkout .shop_table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  overflow: hidden;
  margin: 0 0 28px;
  background: var(--white);
  font-size: 14.5px;
}
.woocommerce table.shop_table thead th {
  background: var(--paper-2);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: left;
  padding: 14px 16px;
  border-bottom: 1px solid var(--rule);
}
.woocommerce table.shop_table td,
.woocommerce table.shop_table th {
  padding: 16px;
  border-top: 1px solid var(--rule);
  vertical-align: middle;
}
.woocommerce table.shop_table tbody tr:first-child td {
  border-top: 0;
}
.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table tfoot td {
  background: var(--paper);
  font-weight: 600;
  color: var(--ink);
}
.woocommerce table.shop_table .order-total .amount,
.woocommerce table.shop_table tfoot .order-total td {
  font-family: var(--serif);
  font-size: 22px;
  color: var(--terra);
}

/* Cart product cells. */
.woocommerce .cart .product-thumbnail img,
.woocommerce table.shop_table .product-thumbnail img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: var(--r-sm);
}
.woocommerce table.cart .product-name a {
  font-weight: 600;
  color: var(--ink);
}
.woocommerce table.cart .product-name a:hover { color: var(--terra); }
.woocommerce .product-price,
.woocommerce .product-subtotal { color: var(--ink); font-weight: 600; }

/* Remove (×) link. */
.woocommerce a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid var(--rule);
  color: var(--muted) !important;
  font-size: 17px;
  line-height: 1;
  text-decoration: none;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.woocommerce a.remove:hover {
  background: var(--terra);
  border-color: var(--terra);
  color: var(--white) !important;
}

/* Cart actions row (coupon + update cart). */
.woocommerce table.cart td.actions {
  background: var(--paper);
  padding: 18px 16px;
}
.woocommerce table.cart td.actions .coupon {
  display: inline-flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.woocommerce table.cart td.actions .coupon .input-text {
  width: auto;
  min-width: 180px;
}

/* Quantity stepper. */
.woocommerce .quantity .qty,
.woocommerce div.quantity input.qty {
  width: 74px;
  text-align: center;
  padding: 10px 8px;
}

/* ============================================================
   5 · Cart layout — collaterals / totals card
   ============================================================ */
.woocommerce .cart-collaterals {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  margin-top: 8px;
}
.woocommerce .cart-collaterals .cart_totals {
  flex: 1 1 320px;
  max-width: 440px;
  margin-left: auto;
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-lg);
  padding: 28px;
}
.woocommerce .cart-collaterals .cross-sells {
  flex: 1 1 420px;
}
.woocommerce .cart_totals h2 {
  font-size: 24px;
  margin-bottom: 18px;
}
.woocommerce .cart_totals table {
  border: 0;
  border-radius: 0;
  margin-bottom: 20px;
  background: transparent;
}
.woocommerce .cart_totals table th,
.woocommerce .cart_totals table td {
  padding: 12px 0;
  border-top: 1px solid var(--rule);
  background: transparent;
}
.woocommerce .cart_totals table tr:first-child th,
.woocommerce .cart_totals table tr:first-child td { border-top: 0; }
.woocommerce .cart_totals .order-total th,
.woocommerce .cart_totals .order-total td {
  padding-top: 16px;
}
.woocommerce .shipping-calculator-button { color: var(--teal); }

/* ============================================================
   6 · Checkout — native two-column layout
   Template: wst/woocommerce/checkout/form-checkout.php
   ============================================================ */

/* page.php renders pages in a narrow prose measure (.wst-content--narrow,
   820px) — right for articles, too tight for a two-column checkout. Let
   the checkout use the full site content width. */
body.woocommerce-checkout .wst-content--narrow .wrap {
  max-width: var(--maxw);
}

/* Customer details (main) + sticky order-summary card (aside). */
.wst-checkout-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 26px;
  align-items: start;
}
@media (min-width: 980px) {
  .wst-checkout-grid {
    grid-template-columns: minmax(0, 1.65fr) minmax(340px, 1fr);
    gap: 40px;
  }
}

/* --- Customer details (left column) --- */
.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1,
.woocommerce-page .col2-set .col-2 {
  float: none;
  width: 100%;
}
.woocommerce-checkout #customer_details {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-lg);
  padding: clamp(20px, 3vw, 32px);
}
.woocommerce-checkout #customer_details .col-2:empty { display: none; }

/* Card headings — "Billing details", "Additional information". */
.woocommerce-checkout #customer_details h3 {
  font-size: 21px;
  margin: 0 0 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rule);
}

/* Billing / shipping field grids — two-up on wider screens. */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0 18px;
}
@media (min-width: 560px) {
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
    grid-template-columns: 1fr 1fr;
  }
  .woocommerce-checkout #customer_details .form-row-wide { grid-column: 1 / -1; }
}
.woocommerce-checkout #customer_details .form-row {
  float: none;
  width: auto;
}

/* --- Order summary (right column, sticky) --- */
@media (min-width: 980px) {
  .wst-checkout-aside {
    position: sticky;
    top: 24px;
  }
}
.woocommerce-checkout h3#order_review_heading {
  margin: 0 0 14px;
  font-size: 22px;
}
.woocommerce-checkout #order_review {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-lg);
  padding: clamp(20px, 3vw, 30px);
  box-shadow: 0 30px 60px -42px rgba(10, 40, 40, .4);
}

/* Order-review table — borderless inside the card. */
.woocommerce-checkout #order_review .shop_table {
  border: 0;
  border-radius: 0;
  margin: 0;
  background: transparent;
  font-size: 14px;
}
.woocommerce-checkout #order_review .shop_table thead th {
  background: transparent;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--rule);
}
.woocommerce-checkout #order_review .shop_table tbody td,
.woocommerce-checkout #order_review .shop_table tbody th {
  padding: 14px 0;
  border-top: 1px solid var(--rule);
  background: transparent;
  vertical-align: top;
}
.woocommerce-checkout #order_review .shop_table tbody tr:first-child td,
.woocommerce-checkout #order_review .shop_table tbody tr:first-child th { border-top: 0; }
.woocommerce-checkout #order_review .shop_table tfoot th,
.woocommerce-checkout #order_review .shop_table tfoot td {
  padding: 12px 0;
  background: transparent;
  border-top: 1px solid var(--rule);
}
.woocommerce-checkout #order_review .shop_table tfoot .order-total th,
.woocommerce-checkout #order_review .shop_table tfoot .order-total td {
  padding-top: 15px;
}

/* Line-item name + the booking meta (date / pax / package). */
.woocommerce-checkout #order_review .product-name {
  color: var(--ink);
  font-weight: 600;
}
.woocommerce-checkout #order_review .product-name .product-quantity {
  color: var(--muted);
  font-weight: 400;
}
.woocommerce-checkout #order_review dl.variation,
.woocommerce-checkout #order_review .wc-item-meta {
  margin: 7px 0 0;
  padding: 0;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--muted);
  list-style: none;
}
.woocommerce-checkout #order_review dl.variation dt,
.woocommerce-checkout #order_review .wc-item-meta dt {
  font-weight: 600;
  display: inline;
  margin: 0 4px 0 0;
}
.woocommerce-checkout #order_review dl.variation dd,
.woocommerce-checkout #order_review .wc-item-meta dd {
  display: inline;
  margin: 0;
}
.woocommerce-checkout #order_review dl.variation dd p,
.woocommerce-checkout #order_review .wc-item-meta li { margin: 0; }

/* --- Payment — gateways (iVeri Lite). Styling only. --- */
.woocommerce-checkout #payment,
.woocommerce #payment {
  background: var(--paper-2);
  border-radius: var(--r-md);
  padding: 4px 18px 18px;
  margin-top: 20px;
}
.woocommerce-checkout #payment ul.payment_methods,
.woocommerce #payment ul.payment_methods {
  list-style: none;
  margin: 0;
  padding: 14px 0;
  border-bottom: 1px solid var(--rule);
}
.woocommerce-checkout #payment ul.payment_methods li {
  margin: 0 0 6px;
  padding: 4px 0;
}
.woocommerce-checkout #payment ul.payment_methods li:last-child { margin-bottom: 0; }
.woocommerce-checkout #payment ul.payment_methods li label,
.woocommerce #payment ul.payment_methods li label {
  display: inline;
  font-family: var(--sans);
  font-size: 14.5px;
  text-transform: none;
  letter-spacing: 0;
  color: var(--ink);
  font-weight: 600;
}
.woocommerce-checkout #payment ul.payment_methods li img {
  vertical-align: middle;
  margin-left: 6px;
}
.woocommerce-checkout #payment div.payment_box {
  background: var(--white);
  border-radius: var(--r-sm);
  padding: 14px 16px;
  margin: 8px 0 4px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--ink-2);
}
.woocommerce-checkout #payment div.payment_box::before {
  border-bottom-color: var(--white);
}

/* Terms & conditions — compact scroll box, never a wall of text. */
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
  margin: 14px 0 0;
  font-size: 13.5px;
}
.woocommerce-checkout .woocommerce-terms-and-conditions {
  max-height: 168px;
  overflow-y: auto;
  margin: 10px 0 4px;
  padding: 14px 16px;
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-sm);
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--ink-2);
}
.woocommerce-checkout .woocommerce-terms-and-conditions h1,
.woocommerce-checkout .woocommerce-terms-and-conditions h2,
.woocommerce-checkout .woocommerce-terms-and-conditions h3 {
  font-size: 14px;
  margin: 12px 0 4px;
  padding: 0;
  border: 0;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text { color: var(--ink-2); }

/* Place order. */
.woocommerce-checkout #payment .place-order {
  padding: 16px 0 0;
  margin: 0;
}
.woocommerce-checkout #place_order {
  width: 100%;
  font-size: 15px;
  padding: 16px 24px;
}
.woocommerce-checkout #payment .woocommerce-privacy-policy-text {
  margin-top: 12px;
  font-size: 12px;
  color: var(--muted);
}

/* ============================================================
   7 · My Account
   ============================================================ */
.woocommerce-account .woocommerce {
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
  align-items: flex-start;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
  flex: 0 0 230px;
}
.woocommerce-account .woocommerce-MyAccount-content {
  flex: 1 1 420px;
  min-width: 0;
}
@media (max-width: 780px) {
  .woocommerce-account .woocommerce { display: block; }
  .woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 24px; }
}

/* Account nav as a card with pill rows. */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 8px;
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-lg);
}
.woocommerce-account .woocommerce-MyAccount-navigation li {
  margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 11px 16px;
  border-radius: var(--r-sm);
  color: var(--ink-2);
  font-weight: 600;
  font-size: 14px;
  transition: background .15s ease, color .15s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
  background: var(--paper-2);
  color: var(--ink);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a[aria-current="page"] {
  background: var(--ink);
  color: var(--paper);
}

/* Account content surface. */
.woocommerce-account .woocommerce-MyAccount-content {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-lg);
  padding: clamp(20px, 3vw, 34px);
}
.woocommerce-account .woocommerce-MyAccount-content p { margin: 0 0 1em; }
.woocommerce-account .woocommerce-MyAccount-content > p:last-child { margin-bottom: 0; }

/* Dashboard intro. */
.woocommerce-account .woocommerce-MyAccount-content mark {
  background: color-mix(in srgb, var(--gold) 24%, transparent);
  color: var(--ink);
  padding: 1px 5px;
  border-radius: 3px;
}

/* Orders / downloads tables already styled via .shop_table above; tidy actions. */
.woocommerce-account .woocommerce-orders-table .button {
  padding: 8px 16px;
  font-size: 13px;
}
.woocommerce-account .woocommerce-orders-table__cell-order-actions .button + .button {
  margin-left: 6px;
}

/* Addresses. */
.woocommerce-account .woocommerce-Addresses {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 8px;
}
.woocommerce-account .woocommerce-Address {
  flex: 1 1 280px;
}
.woocommerce-account .woocommerce-Address-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.woocommerce-account .woocommerce-Address-title h3 { margin: 0; }
.woocommerce-account .woocommerce-Address address {
  font-style: normal;
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  padding: 18px 20px;
  line-height: 1.7;
  color: var(--ink-2);
}

/* Account login / register columns. */
.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
.woocommerce-account .u-columns {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
}
.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
  flex: 1 1 320px;
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-lg);
  padding: 28px;
}
.woocommerce-account .col2-set { width: 100%; }

/* Lost password. */
.woocommerce-account .woocommerce-ResetPassword {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-lg);
  padding: 28px;
  max-width: 460px;
}

/* ============================================================
   8 · Order received / thank-you page
   ============================================================ */
.woocommerce-order .woocommerce-order-overview,
.woocommerce ul.order_details {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 0 0 28px;
  padding: 0;
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.woocommerce ul.order_details li {
  flex: 1 1 140px;
  padding: 18px 22px;
  border-right: 1px solid var(--rule);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
}
.woocommerce ul.order_details li:last-child { border-right: 0; }
.woocommerce ul.order_details li strong {
  display: block;
  margin-top: 6px;
  font-family: var(--serif);
  font-size: 19px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
}

/* ============================================================
   9 · Small print, totals amounts, misc
   ============================================================ */
.woocommerce .amount { color: var(--ink); }
.woocommerce del { color: var(--muted); }
.woocommerce ins { background: transparent; color: var(--terra); }
.woocommerce .woocommerce-Price-currencySymbol { color: inherit; }
.woocommerce small.note,
.woocommerce .description { color: var(--muted); font-size: 13px; }

/* Pagination (account orders). */
.woocommerce-pagination ul {
  display: flex;
  gap: 6px;
  list-style: none;
  padding: 0;
  border: 0;
}
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  border: 1px solid var(--rule);
  border-radius: var(--r-sm);
  background: var(--white);
  color: var(--ink-2);
}
.woocommerce-pagination ul li span.current {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}

/* Cross-sells / related products cards. */
.woocommerce .cross-sells ul.products li.product,
.woocommerce .related ul.products li.product {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  padding: 14px;
}

/* Empty-cart message block. */
.woocommerce .cart-empty.woocommerce-info,
.cart-empty {
  font-family: var(--serif);
  font-size: 22px;
  color: var(--ink);
}
.woocommerce .return-to-shop { margin-top: 18px; }

/* ============================================================
   10 · Responsive — Woo's stacked "shop_table_responsive" mode
   ============================================================ */
@media (max-width: 768px) {
  .woocommerce table.shop_table_responsive thead { display: none; }
  .woocommerce table.shop_table_responsive tbody tr {
    display: block;
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    margin-bottom: 14px;
    background: var(--white);
  }
  .woocommerce table.shop_table_responsive tbody tr td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    text-align: right;
    border-top: 1px solid var(--rule);
    padding: 12px 14px;
  }
  .woocommerce table.shop_table_responsive tbody tr td:first-child { border-top: 0; }
  .woocommerce table.shop_table_responsive tbody tr td::before {
    content: attr(data-title);
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--muted);
  }
  .woocommerce table.cart td.actions {
    display: block !important;
    text-align: left;
  }
  .woocommerce table.cart td.actions::before { content: none; }
  .woocommerce table.cart td.actions .coupon { display: flex; width: 100%; }
  .woocommerce table.cart td.actions .coupon .input-text { flex: 1; min-width: 0; }
  .woocommerce .cart-collaterals .cart_totals { max-width: none; margin-left: 0; }
}

/* ============================================================
   8 · My Account — v2 dashboard + Saved tab + full width
   ============================================================ */

/* Escape page.php's narrow prose measure — the two-column account needs room. */
body.woocommerce-account .wst-content--narrow .wrap {
  max-width: var(--maxw);
}

/* Dashboard — greeting + quick-link cards (woocommerce/myaccount/dashboard.php). */
.wst-account-dash__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 8px;
}
.wst-account-dash__pin {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--terra);
  box-shadow: 0 0 0 3px rgba(184, 90, 60, .2);
}
.wst-account-dash__hi {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.05;
  color: var(--ink);
  margin: 0 0 6px;
}
.wst-account-dash__sub {
  font-size: 14.5px;
  color: var(--ink-2);
  margin: 0 0 22px;
}
.wst-account-dash__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
.wst-account-dash__card {
  position: relative;
  display: block;
  padding: 20px 22px;
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: var(--r-md);
  transition: border-color .15s ease, transform .15s ease;
}
.wst-account-dash__card:hover { border-color: var(--ink); transform: translateY(-2px); }
.wst-account-dash__card-t {
  display: block;
  font-family: var(--serif);
  font-size: 20px;
  color: var(--ink);
  margin-bottom: 4px;
}
.wst-account-dash__card-d {
  display: block;
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted);
}
.wst-account-dash__card-arrow {
  position: absolute;
  top: 18px; right: 20px;
  color: var(--terra);
  transition: transform .15s ease;
}
.wst-account-dash__card:hover .wst-account-dash__card-arrow { transform: translateX(3px); }
.wst-account-dash__logout {
  margin: 22px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--rule);
  font-size: 13px;
  color: var(--muted);
}
.wst-account-dash__logout a { color: var(--terra); }

/* Saved tab — wishlisted tours / cars as a card grid. */
.wst-account-saved__grid { margin-top: 4px; }
.wst-account-empty {
  margin: 0;
  padding: 28px 4px;
  font-size: 14.5px;
  color: var(--muted);
}

@media (max-width: 560px) {
  .wst-account-dash__grid { grid-template-columns: 1fr; }
}
