/**
 * WooCommerce Styles — RobotGirl Studios
 *
 * Overrides Astra's default WooCommerce shop styling with the bold,
 * ink-based design language from the #shop mockup section, borrowing
 * card/button patterns from the preview archive series grid.
 *
 * Design tokens: CSS custom properties defined in custom-styles.css
 *   --ink, --paper, --paper-light, --paper-dark, --mid, --mid-dark,
 *   --mid-light, --accent, --accent-text, --border, --border-thick
 *
 * @package RobotGirl Studios
 */
body.woocommerce-account #primary.content-area.primary,
body.woocommerce #primary {
  margin: 1.5rem 0 5rem;
}
/* ── Section Header ────────────────────────────────────────────────
   Maps to mockup .shop-header + .shop-h2
   WooCommerce: .woocommerce-products-header */
.woocommerce-products-header {
  text-align: center;
  margin-bottom: 2.5rem;
}
.woocommerce-products-header__title {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 0.9;
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 0;
  padding-bottom: 0;
}
.woocommerce-products-header__title::after {
  content: "";
  display: block;
  width: 60px;
  height: 5px;
  background: var(--accent);
  margin: 0.7rem auto 0;
}

/* ── Breadcrumb ──────────────────────────────────────────────────── */

body.woocommerce-cart .ast-breadcrumbs li,
body.woocommerce-checkout .ast-breadcrumbs li,
.woocommerce-breadcrumb {
  font-family: "Montserrat", sans-serif;
  font-size: 0.92em !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink) !important;
  margin-bottom: 1.25rem !important;
  padding: 0 !important;
}
body.woocommerce-cart .ast-breadcrumbs a,
body.woocommerce-checkout .ast-breadcrumbs a,
.woocommerce-breadcrumb a {
  color: var(--mid-dark) !important;
  text-decoration: none;
  transition: color 0.15s;
}

body.woocommerce-cart .ast-breadcrumbs a:hover,
body.woocommerce-checkout .ast-breadcrumbs a:hover,
.woocommerce-breadcrumb a:hover {
  color: var(--accent) !important;
}

/* ── Result Count ────────────────────────────────────────────────── */
.woocommerce-result-count {
  font-family: "Montserrat", sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--mid-dark);
  letter-spacing: 0.04em;
  margin-bottom: 0.75rem;
  font-style: italic;
}

/* ── Ordering / Sort Dropdown ────────────────────────────────────── */
form.woocommerce-ordering {
  margin-bottom: 1.5rem;
  float: none;
  background: var(--paper-light);
  width: 250px !important;
}
.woocommerce-ordering select {
  font-family: "Montserrat", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  border: 2px solid var(--ink) !important;
  color: var(--ink);
  padding: 0.5em 2.25em 0.5em 0.85em !important;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  cursor: pointer;
  transition: border-color 0.15s !important;
}
.woocommerce-ordering select:hover,
.woocommerce-ordering select:focus {
  border-color: var(--accent);
  outline: none;
}

/* ── Out of Stock ─────────────────────────────────────────────────────── */

.woocommerce-js ul.products li.product .ast-shop-product-out-of-stock,
.woocommerce-js ul.products li.product .woocommerce-loop-category__title,
.woocommerce-page ul.products li.product .ast-shop-product-out-of-stock,
.woocommerce-page ul.products li.product .woocommerce-loop-category__title {
  font-weight: 900;
  font-size: 1rem;
  letter-spacing: 0.1em;
  background-color: rgba(0, 0, 0, 0.88);
  line-height: 1.15;
}

/* ── Notices ─────────────────────────────────────────────────────── */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info {
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink);
  border-top-color: var(--accent) !important;
  background: var(--paper-light);
  border-radius: 0;
  margin-bottom: 1.5rem;
}
.woocommerce-notices-wrapper .woocommerce-error {
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  color: var(--ink);
  background: var(--paper-dark);
  border-radius: 0;
  margin: 1.5rem;
}
.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before {
  color: var(--accent);
}
.woocommerce-notices-wrapper .woocommerce-message .button,
.woocommerce-notices-wrapper .woocommerce-info .button {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--ink);
  color: var(--paper-light) !important;
  border-radius: 0;
  padding: 0.5em 1.1em;
  transition: background 0.15s;
}
.woocommerce-notices-wrapper .woocommerce-message .button:hover,
.woocommerce-notices-wrapper .woocommerce-info .button:hover {
  background: var(--mid-dark);
}

/* ── Product Grid ──────────────────────────────────────────────────
   Maps to mockup .shop-grid
   Override Astra's flex-based ul.products with CSS Grid. */
ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  clear: both;
}
ul.products::before,
ul.products::after {
  display: none !important;
}

/* ── Product Card ──────────────────────────────────────────────────
   Maps to mockup .prod
   Borrows bold border + shadow pattern from series-grid .comic-card */
li.product {
  background: var(--paper-light);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
}

li.product:hover {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
  color: var(--ink);
}

li.product.ast-article-post:last-child {
  border-bottom: 3px solid var(--ink);
}

/* ── Product Thumbnail ─────────────────────────────────────────────
   Maps to mockup .prod-cover-wrap */
.astra-shop-thumbnail-wrap {
  width: 100%;
  overflow: hidden;
  background: var(--paper-dark);
}
.astra-shop-thumbnail-wrap a img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  transition: transform 0.3s ease;
  display: block;
  margin: 0 !important;
}

/* ── On-Card Add-to-Cart Button (Astra hover) ──────────────────────
   Style the ast-on-card-button to match the mockup's add-to-cart feel */
.ast-on-card-button {
  position: absolute;
  bottom: 0.5rem;
  right: 0.5rem;
  z-index: 3;
  background: var(--ink) !important;
  color: var(--paper-light) !important;
  border: 2px solid var(--ink) !important;
  border-radius: 0 !important;
  padding: 0.35em 0.6em !important;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.3);
  opacity: 0;
  transition:
    opacity 0.2s ease,
    transform 0.15s ease;
}
li.product:hover .ast-on-card-button {
  opacity: 1;
}
.ast-on-card-button:hover {
  transform: translate(1px, 1px);
  box-shadow: 0 0 0 rgba(0, 0, 0, 0.3);
}
.ast-on-card-button .ast-card-action-tooltip {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.55rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: transparent;
  color: var(--paper-light);
}

/* ── Product Info Area ─────────────────────────────────────────────
   Maps to mockup .prod-body */
.astra-shop-summary-wrap {
  padding: 0.85rem 1rem 1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  position: relative;
  background: var(--paper-light);
}

/* Accent bar — gradient top stripe, borrowed from .card-accent-bar */
.astra-shop-summary-wrap::before {
  content: "";
  display: block;
  height: 6px;
  width: 100%;
  background: linear-gradient(90deg, var(--ink), var(--accent), var(--ink));
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  pointer-events: none;
}
.astra-shop-summary-wrap > * {
  /* Reset Astra's margin on children for consistent spacing */
  margin-bottom: 0.35rem;
}
.astra-shop-summary-wrap > *:last-child {
  margin-bottom: 0;
}

/* Category label — maps to mockup .prod-series */
.woocommerce-page ul.products li.product .ast-woo-product-category {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.6rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--mid-dark);
  margin-bottom: 0.25rem;
  line-height: 1.3;
  opacity: 1;
}

/* Product title — maps to mockup .prod-title */
.woocommerce-loop-product__title {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 1.3rem;
  line-height: 0.95;
  color: var(--ink);
  margin-bottom: 0.4rem;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  padding: 0;
}

/* Price — maps to mockup .prod-price */
li.product .price {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 1.5rem;
  color: var(--ink);
  margin-bottom: 0.6rem;
  line-height: 1;
}
li.product .price del {
  font-weight: 500;
  font-size: 0.8rem;
  color: var(--mid);
  opacity: 1;
  margin-right: 0.3rem;
}
li.product .price ins {
  text-decoration: none;
  font-weight: 900;
}
.woocommerce-Price-amount {
  color: var(--ink);
}

/* ── Add to Cart Button ────────────────────────────────────────────
   Maps to mockup .add-to-cart
   Note: Astra places its own `a.button` add-to-cart inside summary. */
li.product .button.add_to_cart_button,
li.product .button.product_type_simple,
li.product .button.product_type_variable {
  display: block;
  width: 100%;
  background: var(--paper-light);
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-radius: 0;
  padding: 0.75em 1em;
  text-align: center;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
  margin-top: auto;
  line-height: 1.3;
}
li.product .button.add_to_cart_button:hover,
li.product .button.product_type_simple:hover,
li.product .button.product_type_variable:hover {
  background: var(--accent);
  color: var(--ink);
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
}
li.product .added_to_cart {
  display: none;
}

/* ── Screen Reader Text (associated with add-to-cart descriptions) ─ */
li.product .screen-reader-text {
  font-family: "Montserrat", sans-serif;
  font-size: 0.6rem;
}

/* ── Pagination ────────────────────────────────────────────────────
   Maps to mockup .shop-pagination */
.woocommerce-pagination {
  margin-top: 2.5rem;
  text-align: center;
  clear: both;
}
.woocommerce-pagination .page-numbers {
  display: inline-flex;
  gap: 0.35rem;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  border: 0;
  padding: 0;
  margin: 0;
}
.woocommerce-pagination .page-numbers li {
  border: 0;
  display: inline-block;
  margin: 0;
}
.woocommerce-pagination .page-numbers li .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  background: transparent;
  color: var(--ink);
  border: 2px solid var(--ink);
  padding: 0.3em 0.6em;
  transition:
    background 0.15s ease,
    color 0.15s ease;
}
.woocommerce-pagination .page-numbers li .page-numbers:hover {
  background: var(--ink);
  color: var(--paper-light);
}
.woocommerce-pagination .page-numbers li .page-numbers.current {
  background: var(--ink);
  color: var(--paper-light);
  border-color: var(--ink);
}
.woocommerce-pagination .page-numbers li .page-numbers.prev,
.woocommerce-pagination .page-numbers li .page-numbers.next {
  font-size: 0.68rem;
  padding: 0.3em 0.8em;
}
.woocommerce-pagination .page-numbers li .page-numbers.dots {
  border: none;
  min-width: auto;
  font-weight: 700;
  color: var(--mid);
  letter-spacing: 0.2em;
}

/* Product Single */
body.single-product .woocommerce-message:focus-visible {
  outline: 2px solid var(--accent);
}

body.single-product #reviews #review_form {
  border: none;
  padding: 0;
}

body.single-product #commentform p.form-submit #submit,
body.single-product .woocommerce-message a.button {
  background: var(--paper-light);
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink) !important;
  padding: 10px 20px;
  font-weight: 800;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
}
body.single-product #commentform p.form-submit #submit:hover,
body.single-product #commentform p.form-submit #submit:focus-visible,
body.single-product #commentform p.form-submit #submit:active,
body.single-product .woocommerce-message a.button:focus-visible,
body.single-product .woocommerce-message a.button:active,
body.single-product .woocommerce-message a.button:hover {
  background: var(--accent) !important;
  color: var(--ink) !important;
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
  border: 2px solid var(--ink);
}

body.single-product .summary.entry-summary {
  background: var(--paper-light);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  padding: 1.5rem;
  margin-bottom: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

body.single-product .summary.entry-summary .product_title {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 0.5rem;
}

body.single-product .summary.entry-summary p {
  color: var(--ink);
}

/* ── Product Gallery ──────────────────────────────────────────────── */
body.single-product .woocommerce-product-gallery {
  background: var(--paper-light);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  margin-bottom: 2rem;
  overflow: hidden;
}

/* ── Single Product Category ─────────────────────────────────────── */
body.single-product .single-product-category {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.6rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--mid-dark);
  margin-bottom: 0.25rem;
  line-height: 1.3;
}
body.single-product .single-product-category a {
  color: var(--mid-dark);
  text-decoration: none;
  transition: color 0.15s;
}
body.single-product .single-product-category a:hover {
  color: var(--accent);
}

/* ── Price (single context) ──────────────────────────────────────── */
body.single-product .summary .price {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 1.5rem;
  color: var(--ink);
  line-height: 1;
  margin-bottom: 0.6rem;
}
body.single-product .summary .price del {
  font-weight: 500;
  font-size: 0.85rem;
  color: var(--mid);
  opacity: 1;
  margin-right: 0.3rem;
}
body.single-product .summary .price ins {
  text-decoration: none;
  font-weight: 900;
}

/* ── Short Description — reading contrast ────────────────────────── */
body.single-product .woocommerce-product-details__short-description {
  line-height: 1.65;
  font-size: 0.92rem;
  color: var(--ink-soft);
}

/* ── Cart Form ────────────────────────────────────────────────────── */
body.single-product form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: flex-start;
  margin-top: 0.5rem;
}

/* ── Quantity Input ───────────────────────────────────────────────── */
body.single-product .quantity {
  display: inline-flex;
  align-items: center;
}
body.single-product .quantity .qty {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  padding: 0.55em 0.5em;
  width: 4.5em;
  height: auto;
  text-align: center;
  -moz-appearance: textfield;
  appearance: textfield;
}
body.single-product .quantity .qty::-webkit-inner-spin-button,
body.single-product .quantity .qty::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* ── Single Add-to-Cart Button ──────────────────────────────────────
   Ports the archive button pattern: ink border + shadow,
   accent background on hover. */
body.single-product .single_add_to_cart_button.button.alt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--paper-light);
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-radius: 0;
  padding: 0.7em 1.8em;
  line-height: 1.3;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
  cursor: pointer;
  flex: 1;
  min-width: 160px;
}
body.single-product .single_add_to_cart_button.button.alt:hover {
  background: var(--accent);
  color: var(--ink);
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
}

/* ── Product Meta ─────────────────────────────────────────────────── */
body.single-product .product_meta {
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--mid-dark);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-top: 2px solid var(--ink);
  padding-top: 1rem;
  margin-top: 0.5rem;
}
body.single-product .product_meta > span {
  display: block;
  margin-bottom: 0.3rem;
}
body.single-product .product_meta a {
  color: var(--mid-dark);
  text-decoration: none;
  font-weight: 700;
  transition: color 0.15s;
}
body.single-product .product_meta a:hover {
  color: var(--accent);
}
body.single-product .product_meta .sku {
  font-weight: 700;
  color: var(--ink);
}

/* ── WooCommerce Tabs Container ───────────────────────────────────── */
body.single-product .woocommerce-tabs {
  background: var(--paper-light);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  padding: 1.5rem;
  margin-bottom: 2rem;
}

/* ── Tab Navigation ───────────────────────────────────────────────── */
body.single-product .woocommerce-tabs ul.tabs {
  margin: 0 0 1.25rem;
  padding: 0 0 0;
  list-style: none;
  border-bottom: 2px solid var(--ink);
  display: flex;
  gap: 0;
  overflow: visible;
}
body.single-product .woocommerce-tabs ul.tabs::before {
  display: none;
}
body.single-product .woocommerce-tabs ul.tabs li {
  border: none;
  background: transparent;
  padding: 0;
  margin: 0;
  display: inline-block;
  position: relative;
  z-index: 0;
  border-radius: 0;
}
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after {
  display: none;
}
body.single-product .woocommerce-tabs ul.tabs li a {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mid);
  text-decoration: none;
  padding: 0.6rem 1rem;
  display: block;
  transition: color 0.15s;
  border: none;
  background: transparent;
}
body.single-product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--ink);
}
body.single-product .woocommerce-tabs ul.tabs li.active a {
  color: var(--ink);
}

/* ── Tab Panels ───────────────────────────────────────────────────── */
body.single-product .woocommerce-Tabs-panel {
  padding: 0;
}
body.single-product .woocommerce-Tabs-panel h2 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin-bottom: 1rem;
}

/* ── Reviews Section ──────────────────────────────────────────────── */
body.single-product .woocommerce-Reviews {
  padding: 0.5rem 0;
}
body.single-product .woocommerce-Reviews-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin-bottom: 1rem;
}
body.single-product .woocommerce-noreviews {
  font-family: "Montserrat", sans-serif;
  font-size: 0.85rem;
  color: var(--mid-dark);
  font-style: italic;
  margin-bottom: 1.5rem;
}

/* ── Review Form ──────────────────────────────────────────────────── */

body.single-product #commentform p.comment-notes {
  color: var(--mid-dark);
  font-size: 0.85rem;
}

body.single-product .comment-respond {
  border-top: 2px solid var(--ink);
  padding-top: 1.5rem;
}

body.single-product .comment-form-rating .stars {
  display: flex;
  align-items: center;
}

body.single-product .comment-form-rating .stars span {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

body.single-product .comment-form-rating .stars a {
  top: auto !important;
}

body.single-product #reviews .comment-form-rating {
  display: flex;
  align-items: center;
}

body.single-product p.comment-form-cookies-consent {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

body.single-product p.comment-form-cookies-consent label {
  margin: 0;
}

body.single-product .comment-reply-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.9rem;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.75rem;
  display: block;
}
body.single-product .comment-form label {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.72rem !important;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  display: block;
  margin-bottom: 0.3rem;
}
body.single-product .comment-form-rating label#comment-form-rating-label {
  margin-bottom: 0 !important;
}

body.single-product .comment-form input[type="text"],
body.single-product .comment-form input[type="email"],
body.single-product .comment-form textarea {
  font-family: "Montserrat", sans-serif;
  font-size: 0.85rem;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  padding: 0.6em 0.8em;
  width: 100%;
  max-width: 100%;
  transition: border-color 0.15s;
}
body.single-product .comment-form input[type="text"]:focus,
body.single-product .comment-form input[type="email"]:focus,
body.single-product .comment-form textarea:focus {
  border-color: var(--accent);
  outline: none;
}
body.single-product .comment-form textarea {
  min-height: 120px;
  resize: vertical;
}

/* ── Review Star Rating ───────────────────────────────────────────── */
body.single-product .stars {
  margin-bottom: 1rem;
}
body.single-product .stars a {
  color: var(--mid-light);
  font-size: 1.1rem;
  transition: color 0.15s;
}
body.single-product .stars a:hover,
body.single-product .stars a.active {
  color: var(--accent);
}

/* Cart Form */
body.woocommerce-cart table.shop_table {
  background: var(--paper-light);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink);
}

body.woocommerce-cart .cart-collaterals .cart_totals {
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink);
}

body.woocommerce-cart .cart-collaterals .cart_totals h2 {
  background: var(--paper-dark) !important;
  color: var(--ink);
  border-bottom: 1px solid var(--ink) !important;
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1rem;
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
}

body.woocommerce-cart .shop_table th {
  background: var(--paper-dark) !important;
  color: var(--ink);
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1rem;
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.woocommerce-cart .cart-collaterals .cart_totals tr th,
.woocommerce-cart .cart-collaterals .cart_totals tr td {
  border-top: 1px solid var(--ink);
}

body.woocommerce-cart .checkout-button {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 0.85rem !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: var(--accent) !important;
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink) !important;
  border-radius: 0;
  padding: 0.85em 2em !important;
  line-height: 1.3 !important;
  cursor: pointer;
  width: 100%;
  text-align: center;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
}

body.woocommerce-cart .checkout-button:hover,
body.woocommerce-cart .checkout-button:focus-visible,
body.woocommerce-cart .checkout-button:active {
  background: var(--accent) !important;
  color: var(--ink) !important;
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
  border-color: var(--ink) !important;
}

.woocommerce-js table.shop_table td,
.woocommerce-page table.shop_table td {
  border-top: 1px solid var(--ink);
}

/* ── Remove Button ────────────────────────────────────────────── */
.woocommerce-js a.remove {
  color: var(--ink);
  font-weight: 700;
}

.woocommerce-js a.remove:hover {
  color: var(--ink);
  opacity: 1;
}

.woocommerce-js a.remove::before {
  border: 2px solid var(--ink);
}

.woocommerce-js a.remove svg,
.woocommerce-js a.remove svg path {
  stroke: currentColor;
  stroke-width: 1.5px;
}

.woocommerce-cart .shop_table input[type="number"] {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  padding: 0.5em 0.6em;
  width: 4.5em;
  height: auto;
  text-align: center;
  -moz-appearance: textfield;
  appearance: textfield;
}

/* ── Coupon Code Input ────────────────────────────────────────────── */
body.woocommerce-cart .coupon input#coupon_code {
  border: 2px solid var(--ink);
  max-height: 40px !important;
  height: 40px !important;
}
body.woocommerce-cart .coupon input#coupon_code::placeholder {
  color: var(--mid-light);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.75rem;
  font-weight: 700;
}

body.woocommerce-js .woocommerce-info a.button.wc-forward,
body.woocommerce-cart .coupon button.button {
  background: var(--paper-light);
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink) !important;
  padding: 10px 20px;
  font-weight: 800;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
  border-radius: 0;
  text-transform: uppercase;
}

body.woocommerce-js .woocommerce-info a.button.wc-forward:hover,
body.woocommerce-js .woocommerce-info a.button.wc-forward:focus-visible,
body.woocommerce-js .woocommerce-info a.button.wc-forward:active,
body.woocommerce-cart .coupon button.button:hover,
body.woocommerce-cart .coupon button.button:focus-visible,
body.woocommerce-cart .coupon button.button:active {
  background: var(--accent) !important;
  color: var(--ink) !important;
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
  border: 2px solid var(--ink);
}

body.woocommerce-js .woocommerce-info {
  background: var(--paper-dark);
  font-weight: 700;
}

body.woocommerce-js
  .woocommerce
  .woocommerce-Addresses
  .woocommerce-Address-title,
body.woocommerce-js
  .woocommerce
  .woocommerce-MyAccount-content
  .woocommerce-Address-title {
  border: none !important;
}

body.woocommerce-js
  th.woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number {
  background: var(--paper-dark);
  border: none;
  font-weight: 700;
}

.woocommerce-js button.button:disabled:hover,
.woocommerce-js button.button:disabled[disabled]:hover,
body.woocommerce-cart .actions > button.button {
  background: var(--paper-light);
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink) !important;
  padding: 0.618em 1em;
  font-weight: 800;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
  border-radius: 0;
  text-transform: uppercase;
}
body.woocommerce-cart .actions > button.button:not(:disabled):hover,
body.woocommerce-cart .actions > button.button:not(:disabled):hover,
body.woocommerce-cart .actions > button.button:not(:disabled):focus-visible,
body.woocommerce-cart .actions > button.button:not(:disabled):active {
  background: var(--accent) !important;
  color: var(--ink) !important;
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
  border: 2px solid var(--ink);
}

/* ── Review Submit Button ───────────────────────────────────────────
   Ports the archive button pattern, matching the add-to-cart button. */
body.single-product .form-submit #submit.submit {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: var(--paper-light);
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink);
  border-radius: 0;
  padding: 0.75em 2em;
  cursor: pointer;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
}
body.single-product .form-submit #submit.submit:hover {
  background: var(--accent);
  color: var(--ink);
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
}

/* ── Related / Upsells ────────────────────────────────────────────── */
body.single-product .related,
body.single-product .upsells {
  margin-top: 2rem;
  clear: both;
}
body.single-product .related h2,
body.single-product .upsells h2 {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: clamp(1.5rem, 3vw, 2rem);
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 1.25rem;
  padding-bottom: 0;
}
body.single-product .related h2::after,
body.single-product .upsells h2::after {
  content: "";
  display: block;
  width: 50px;
  height: 4px;
  background: var(--accent);
  margin-top: 0.5rem;
}

/* ── Responsive ──────────────────────────────────────────────────── */

/* Tablet: shrink grid columns */
@media (max-width: 900px) {
  ul.products {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.25rem;
  }
  .woocommerce-products-header__title {
    font-size: clamp(1.8rem, 4vw, 2.8rem);
  }
  body.single-product .woocommerce-product-gallery {
    margin-bottom: 1.25rem;
  }
}

/* Mobile: 2 columns, smaller cards */
@media (max-width: 600px) {
  ul.products {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
  }
  .woocommerce-products-header__title {
    font-size: clamp(1.4rem, 5vw, 2rem);
  }
  .woocommerce-products-header__title::after {
    width: 40px;
    height: 4px;
  }
  li.product {
    border-width: 2px;
    box-shadow: 3px 3px 0 var(--mid-dark);
  }
  li.product::before {
    height: 4px;
  }
  .astra-shop-thumbnail-wrap {
    border-bottom-width: 2px;
  }
  .astra-shop-summary-wrap {
    padding: 0.6rem 0.65rem 0.75rem;
  }
  .woocommerce-loop-product__title {
    font-size: 1rem;
  }
  li.product .price {
    font-size: 1.15rem;
  }
  .ast-woo-product-category {
    font-size: 0.5rem;
  }
  li.product .button.add_to_cart_button,
  li.product .button.product_type_simple,
  li.product .button.product_type_variable {
    font-size: 0.62rem;
    padding: 0.6em 0.75em;
  }
  .woocommerce-ordering select {
    min-width: 140px;
    font-size: 0.65rem;
  }
  .woocommerce-breadcrumb {
    font-size: 0.62rem;
  }
  .woocommerce-pagination .page-numbers li .page-numbers {
    min-width: 30px;
    height: 30px;
    font-size: 0.65rem;
  }
  /* ── Single Product Responsive ────────────────────────────────── */
  body.single-product .summary.entry-summary {
    padding: 1rem;
  }
  body.single-product .woocommerce-product-gallery {
    border-width: 2px;
    box-shadow: 3px 3px 0 var(--mid-dark);
    margin-bottom: 1rem;
  }
  body.single-product .single_add_to_cart_button.button.alt {
    font-size: 0.72rem;
    padding: 0.65em 1.2em;
    min-width: 0;
  }
  body.single-product .quantity .qty {
    width: 3.5em;
    font-size: 0.9rem;
  }
  body.single-product .woocommerce-tabs {
    border-width: 2px;
    box-shadow: 3px 3px 0 var(--mid-dark);
    padding: 1rem;
  }
  body.single-product .woocommerce-tabs ul.tabs li a {
    font-size: 0.65rem;
    padding: 0.5rem 0.7rem;
  }
  body.single-product .related h2,
  body.single-product .upsells h2 {
    font-size: 1.2rem;
  }
  body.single-product .related h2::after,
  body.single-product .upsells h2::after {
    width: 40px;
    height: 3px;
  }
}

/* Very small screens: single column */
@media (max-width: 400px) {
  ul.products {
    grid-template-columns: 1fr;
  }
  .woocommerce-ordering {
    float: none;
    display: block;
  }
  .woocommerce-ordering select {
    width: 100%;
  }
}
/* ── Checkout ────────────────────────────────────────────────────────
   Ports the single-product card + input patterns to the checkout page.
   Scoped under body.woocommerce-checkout to avoid leaking to other WC
   pages.  Checkout sits on a light halftone background (dot pattern),
   so cards use the standard light-surface treatment:
     border: 3px solid var(--ink);
     box-shadow: 4px 4px 0 var(--mid-dark);
     background: var(--paper-light);
   ================================================================= */

body.woocommerce-checkout .entry-content {
  background: var(--paper-light);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  padding: 2rem;
  margin-bottom: 2rem;
}

body.woocommerce-checkout .entry-content.clear .button.wc-backward {
  background: var(--accent) !important;
  border-color: var(--ink) !important;
  box-shadow: 2px 2px 0 var(--mid-dark, #555);
  color: var(--ink) !important;
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.75rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink, #0d0d0d);
  background: var(--accent);
  border: 2px solid var(--ink, #0d0d0d);
  border-radius: 0;
  box-shadow: 4px 4px 0 var(--mid-dark, #555);
  text-decoration: none !important;
  padding: 0.7em 1.8em !important;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease;
}

body.woocommerce-checkout .entry-content.clear .button.wc-backward:hover {
  background: var(--accent) !important;
  color: var(--ink) !important;
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
  border-color: var(--ink) !important;
}

body.woocommerce-checkout .entry-content .woocommerce-info {
  border: 2px solid var(--ink);
  background: var(--paper-dark);
  margin-bottom: 1.2rem;
}

body.woocommerce-checkout .entry-content .woocommerce {
  color: var(--ink);
  font-weight: 400;
}

/* ── Section Headings ─────────────────────────────────────────────── */
body.woocommerce-checkout h3 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1.1rem;
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 1rem;
  line-height: 1.2;
}

/* ── Coupon Toggle (already styled via .woocommerce-info above) ───── */
/* Only the .showcoupon link needs a touch-up */
body.woocommerce-checkout .woocommerce-info .showcoupon {
  font-weight: 800;
  color: var(--accent);
  text-decoration: underline;
  transition: color 0.15s;
}
body.woocommerce-checkout .woocommerce-info .showcoupon:hover {
  color: var(--ink);
}

/* ── Coupon Form ──────────────────────────────────────────────────── */
body.woocommerce-checkout form.checkout_coupon {
  background: var(--paper-light);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: flex-end;
}
body.woocommerce-checkout form.checkout_coupon .form-row-first {
  flex: 1;
  min-width: 180px;
  margin: 0;
  padding: 0;
}
body.woocommerce-checkout form.checkout_coupon .form-row-last {
  margin: 0;
  padding: 0;
  flex-shrink: 0;
}
body.woocommerce-checkout form.checkout_coupon label {
  display: none; /* screen-reader only via WooCommerce */
}
body.woocommerce-checkout form.checkout_coupon .input-text {
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  padding: 0.6em 0.8em;
  width: 100%;
  transition: border-color 0.15s;
}
body.woocommerce-checkout form.checkout_coupon .input-text:focus {
  border-color: var(--accent);
  outline: none;
}

/* Apply coupon button */
body.woocommerce-checkout form.checkout_coupon button.button {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: var(--paper-light);
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink);
  border-radius: 0;
  padding: 0.7em 1.4em;
  line-height: 1.3;
  cursor: pointer;
  white-space: nowrap;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
}
body.woocommerce-checkout form.checkout_coupon button.button:hover {
  background: var(--accent);
  color: var(--ink);
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
}

/* ── Customer Details Card ───────────────────────────────────────────
   Wraps billing fields + additional fields in the card treatment. */
body.woocommerce-checkout #customer_details {
  padding: 1.5rem;
  margin-bottom: 2rem;
}
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2 {
  padding: 0;
  max-width: 100%;
}
body.woocommerce-checkout #customer_details .col-1 {
  margin-bottom: 0;
}

/* ── Billing / Additional Fields Headings ──────────────────────────── */
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1rem;
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--ink) !important;
}

/* ── Form Rows ─────────────────────────────────────────────────────── */
body.woocommerce-checkout .form-row {
  margin-bottom: 0.85rem;
  padding: 0;
}

/* ── Labels ────────────────────────────────────────────────────────── */
body.woocommerce-checkout .form-row label {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink);
  display: block;
  margin-bottom: 0.3rem;
  line-height: 1.3;
}
body.woocommerce-checkout .form-row label .required {
  color: var(--accent);
  font-weight: 900;
  border: none;
  text-decoration: none;
}
body.woocommerce-checkout .form-row label .optional {
  font-weight: 500;
  color: var(--mid);
  text-transform: lowercase;
  letter-spacing: 0;
  font-size: 0.65rem;
}

/* ── Text / Email / Tel Inputs ─────────────────────────────────────── */
body.woocommerce-checkout .form-row .input-text {
  font-family: "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  padding: 0.6em 0.8em;
  width: 100%;
  line-height: 1.4;
  transition: border-color 0.15s;
}
body.woocommerce-checkout .form-row .input-text:focus {
  border-color: var(--accent);
  outline: none;
}

/* ── Select Dropdowns ──────────────────────────────────────────────── */
body.woocommerce-checkout .form-row select {
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  padding: 0.55em 0.8em;
  width: 100%;
  line-height: 1.4;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  transition: border-color 0.15s;
}
body.woocommerce-checkout .form-row select:focus {
  border-color: var(--accent);
  outline: none;
}

/* ── Select2 (country / state dropdowns) ──────────────────────────── */
body.woocommerce-checkout .select2-container .select2-selection--single {
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  height: auto;
  padding: 0.45em 0.7em;
  line-height: 1.4;
}
body.woocommerce-checkout
  .select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  color: var(--ink);
  line-height: 1.4;
  padding: 0;
}
body.woocommerce-checkout
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  top: 50%;
  transform: translateY(-50%);
  right: 6px;
}
body.woocommerce-checkout
  .select2-container--default
  .select2-selection--single:focus {
  border-color: var(--accent);
  outline: none;
}
body.woocommerce-checkout .select2-dropdown {
  border: 2px solid var(--ink);
  border-radius: 0;
  background: var(--paper-light);
}
body.woocommerce-checkout .select2-results__option {
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--ink);
  padding: 0.5em 0.7em;
}
body.woocommerce-checkout .select2-results__option--highlighted[aria-selected] {
  background: var(--accent);
  color: #fff;
}

/* ── Textarea (Order Notes) ────────────────────────────────────────── */
body.woocommerce-checkout .form-row textarea {
  font-family: "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  padding: 0.6em 0.8em;
  width: 100%;
  min-height: 80px;
  resize: vertical;
  line-height: 1.5;
  transition: border-color 0.15s;
}
body.woocommerce-checkout .form-row textarea:focus {
  border-color: var(--accent);
  outline: none;
}

/* ── Breadcrumb (checkout context) ─────────────────────────────────── */
body.woocommerce-checkout .woocommerce-breadcrumb {
  margin-bottom: 1.5rem;
}

/* ── Order Review Card ───────────────────────────────────────────────
   Wraps the review table + payment section in one card. */

body.woocommerce-cart header.entry-header h1.entry-title,
body.woocommerce-checkout header.entry-header h1.entry-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 0.5rem;
}
body.woocommerce-cart #primary,
body.woocommerce-checkout #primary {
  margin: 1.5rem 0 5rem !important;
}

body.woocommerce-checkout #order_review {
  border: none !important;
  padding: 1.5rem;
  margin-bottom: 2rem;
}

body.woocommerce-checkout #order_review .woocommerce-Price-amount.amount {
  font-weight: 600;
}

body.woocommerce-checkout #order_review strong.product-quantity {
  font-weight: 800 !important;
}

form
  #order_review_heading:not(
    .elementor-widget-woocommerce-checkout-page #order_review_heading
  ) {
  border-width: 0;
  border-style: solid;
  margin: 0;
  padding: 1.5em 1.5em 1em;
  border-color: var(--ast-border-color);
}

/* ── Order Review Table ────────────────────────────────────────────── */
body.woocommerce-checkout .shop_table.woocommerce-checkout-review-order-table {
  font-family: "Montserrat", sans-serif;
  border: none;
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1.5rem;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  thead {
  border-bottom: 2px solid var(--ink);
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  thead
  th {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink);
  padding: 0.6rem 0 0.6rem 0;
  border: none;
  background: transparent;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  thead
  th.product-total {
  text-align: right;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tbody {
  border-bottom: 2px solid var(--ink);
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tbody
  td {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink);
  padding: 0.75rem 0;
  border: none;
  background: transparent;
  vertical-align: top;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tbody
  td.product-name {
  font-weight: 700;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tbody
  td.product-total {
  text-align: right;
  font-weight: 800;
  white-space: nowrap;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tbody
  .product-quantity {
  font-weight: 600;
  color: var(--mid-dark);
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tfoot {
  border-top: none;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tfoot
  tr {
  border-bottom: 1px solid var(--paper-dark);
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tfoot
  tr:last-child {
  border-bottom: none;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tfoot
  th {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--mid-dark);
  padding: 0.65rem 0;
  border: none;
  background: transparent;
  text-align: left;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tfoot
  td {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--ink);
  padding: 0.65rem 0;
  border: none;
  background: transparent;
  text-align: right;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tfoot
  tr.cart-subtotal
  td {
  font-weight: 600;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tfoot
  tr.order-total
  th,
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tfoot
  tr.order-total
  td {
  font-weight: 900;
  font-size: 1rem;
  color: var(--ink);
  padding-top: 1rem;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tfoot
  tr.order-total
  td {
  font-size: 1.15rem;
}
body.woocommerce-checkout
  .shop_table.woocommerce-checkout-review-order-table
  tfoot
  tr.order-total
  td
  .woocommerce-Price-amount {
  color: var(--accent);
}

/* ── Payment Section ───────────────────────────────────────────────── */
body.woocommerce-checkout #payment {
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  padding: 1.25rem;
}
body.woocommerce-checkout #payment .wc_payment_methods {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  border-bottom: 1px solid var(--paper-dark);
}
body.woocommerce-checkout #payment .wc_payment_methods li {
  padding: 0.5rem 0;
}
body.woocommerce-checkout #payment .payment_box {
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--mid-dark);
  background: var(--paper-light);
  border: 1px solid var(--paper-dark);
  border-radius: 0;
  padding: 0.75rem;
  margin-top: 0.5rem;
  line-height: 1.5;
}
body.woocommerce-checkout #payment .payment_box p {
  margin: 0;
}
body.woocommerce-checkout #payment label {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink);
}
body.woocommerce-checkout #payment label input[type="radio"] {
  margin-right: 0.4em;
}

/* ── Place Order Button ──────────────────────────────────────────────
   Ports the single-product add-to-cart button pattern for a light bg.
   !important needed to beat Astra's button:not(.checkout):hover. */
body.woocommerce-checkout #place_order.button.alt {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 0.85rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: var(--accent) !important;
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink) !important;
  border-radius: 0;
  padding: 0.85em 2em;
  line-height: 1.3;
  cursor: pointer;
  width: 100%;
  text-align: center;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
}
body.woocommerce-checkout #place_order.button.alt:hover {
  background: var(--accent) !important;
  color: var(--ink) !important;
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
  border-color: var(--ink) !important;
}

/* ── Place Order Row ───────────────────────────────────────────────── */
body.woocommerce-checkout #payment .form-row.place-order {
  margin: 0;
  padding: 1rem 0 0;
}

/* ── Terms & Conditions / Privacy Text ─────────────────────────────── */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--mid-dark);
  line-height: 1.5;
  margin-bottom: 1rem;
}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper p {
  margin: 0;
}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a {
  color: var(--accent);
  font-weight: 700;
  text-decoration: underline;
  transition: color 0.15s;
}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a:hover {
  color: var(--ink);
}

/* ── WooCommerce Info inside Payment (no available methods) ────────── */
body.woocommerce-checkout #payment .woocommerce-info {
  margin: 0 0 1rem;
}

/* ── Responsive ─────────────────────────────────────────────────────── */

@media (max-width: 900px) {
  body.woocommerce-checkout #customer_details {
    padding: 1.25rem;
  }
  body.woocommerce-checkout #order_review {
    padding: 1.25rem;
  }
}

@media (max-width: 600px) {
  body.woocommerce-checkout #primary {
    margin: 1rem 0 3rem;
  }
  body.woocommerce-checkout #customer_details {
    border-width: 2px;
    box-shadow: 3px 3px 0 var(--mid-dark);
    padding: 1rem;
    margin-bottom: 1.5rem;
  }
  body.woocommerce-checkout #order_review {
    border-width: 2px;
    box-shadow: 3px 3px 0 var(--mid-dark);
    padding: 1rem;
    margin-bottom: 1.5rem;
  }
  body.woocommerce-checkout #payment {
    padding: 1rem;
  }
  body.woocommerce-checkout form.checkout_coupon {
    border-width: 2px;
    box-shadow: 3px 3px 0 var(--mid-dark);
    padding: 1rem;
    flex-direction: column;
  }
  body.woocommerce-checkout form.checkout_coupon .form-row-first {
    min-width: 0;
    width: 100%;
  }
  body.woocommerce-checkout form.checkout_coupon button.button {
    width: 100%;
  }
  body.woocommerce-checkout h3 {
    font-size: 0.95rem;
  }
  body.woocommerce-checkout
    .shop_table.woocommerce-checkout-review-order-table
    thead
    th {
    font-size: 0.6rem;
  }
  body.woocommerce-checkout
    .shop_table.woocommerce-checkout-review-order-table
    tbody
    td {
    font-size: 0.78rem;
    padding: 0.6rem 0;
  }
  body.woocommerce-checkout
    .shop_table.woocommerce-checkout-review-order-table
    tfoot
    th,
  body.woocommerce-checkout
    .shop_table.woocommerce-checkout-review-order-table
    tfoot
    td {
    font-size: 0.72rem;
    padding: 0.5rem 0;
  }
  body.woocommerce-checkout
    .shop_table.woocommerce-checkout-review-order-table
    tfoot
    tr.order-total
    th,
  body.woocommerce-checkout
    .shop_table.woocommerce-checkout-review-order-table
    tfoot
    tr.order-total
    td {
    font-size: 0.85rem;
  }
  body.woocommerce-checkout #place_order.button.alt {
    font-size: 0.78rem;
    padding: 0.75em 1.5em;
  }
  body.woocommerce-checkout .woocommerce-breadcrumb {
    font-size: 0.62rem;
  }
}

/* ── Order Received / Thank You Page ─────────────────────────────────────
   Ports the checkout card + table patterns to the order-received page.
   Scoped under body.woocommerce-order-received to avoid leaking to other
   WooCommerce pages.
   ====================================================================== */

body.woocommerce-order-received .entry-content {
  background: var(--paper-light);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  padding: 2rem;
  margin-bottom: 2rem;
}

/* ── Success Notice ──────────────────────────────────────────────────
   Ports the .woocommerce-message notice pattern — solid ink bg,
   uppercase Montserrat, no shadow/translate. */
body.woocommerce-order-received .woocommerce-thankyou-order-received {
  font-family: "Montserrat", sans-serif;
  font-size: 1rem;
  font-weight: 800;
  color: var(--paper-light);
  background: var(--ink);
  border: 2px solid var(--ink);
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  line-height: 1.4;
}

body.woocommerce-order-received h2.woocommerce-column__title,
body.woocommerce-order-received h2.woocommerce-order-details__title {
  border: none !important;
}

/* ── Order Overview List ──────────────────────────────────────────────
   Horizontal row of order meta (number, date, email, total, payment).
   Matches the checkout breadcrumb typography. */
body.woocommerce-order-received .woocommerce-order-overview {
  font-family: "Montserrat", sans-serif;
  list-style: none;
  margin: 0 0 2rem;
  padding: 0 0 1.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 2.5rem;
  border-bottom: 2px solid var(--ink);
}
body.woocommerce-order-received .woocommerce-order-overview li {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--mid-dark);
  margin: 0;
  line-height: 1.5;
  border-right: 1px solid var(--paper-dark);
}
body.woocommerce-order-received .woocommerce-order-overview li strong {
  display: block;
  font-weight: 800;
  font-size: 0.9rem;
  color: var(--ink);
  letter-spacing: normal;
  text-transform: none;
  margin-top: 0.15rem;
}

/* ── Section Headings ─────────────────────────────────────────────────
   Matches checkout h3 pattern: uppercase Montserrat + ink underline. */
body.woocommerce-order-received .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-column__title {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1.1rem;
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--ink);
}

/* ── Order Details Table ──────────────────────────────────────────────
   Ports the checkout review-table pattern exactly:
   - ink bottom-borders on thead + tbody
   - uppercase Montserrat header labels
   - right-aligned totals, no cell borders, transparent backgrounds */
body.woocommerce-order-received .woocommerce-table--order-details {
  font-family: "Montserrat", sans-serif;
  border: none;
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1.5rem;
}
body.woocommerce-order-received .woocommerce-table--order-details thead {
  border-bottom: 2px solid var(--ink);
}
body.woocommerce-order-received .woocommerce-table--order-details thead th {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink);
  padding: 0.6rem 0;
  border: none;
  background: transparent;
}
body.woocommerce-order-received
  .woocommerce-table--order-details
  thead
  th.product-total {
  text-align: right;
}
body.woocommerce-order-received .woocommerce-table--order-details tbody {
  border-bottom: 2px solid var(--ink);
}
body.woocommerce-order-received .woocommerce-table--order-details tbody td {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink);
  padding: 0.75rem 0;
  border: none;
  background: transparent;
  vertical-align: top;
}
body.woocommerce-order-received
  .woocommerce-table--order-details
  tbody
  td.product-name {
  font-weight: 700;
}
body.woocommerce-order-received
  .woocommerce-table--order-details
  tbody
  td.product-total {
  text-align: right;
  font-weight: 800;
  white-space: nowrap;
}
body.woocommerce-order-received
  .woocommerce-table--order-details
  tbody
  .product-quantity {
  font-weight: 600;
  color: var(--mid-dark);
}
body.woocommerce-order-received .woocommerce-table--order-details tfoot {
  border-top: none;
}
body.woocommerce-order-received .woocommerce-table--order-details tfoot tr {
  border-bottom: 1px solid var(--paper-dark);
}
body.woocommerce-order-received
  .woocommerce-table--order-details
  tfoot
  tr:last-child {
  border-bottom: none;
}
body.woocommerce-order-received .woocommerce-table--order-details tfoot th {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--mid-dark);
  padding: 0.65rem 0;
  border: none;
  background: transparent;
  text-align: left;
}
body.woocommerce-order-received .woocommerce-table--order-details tfoot td {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--ink);
  padding: 0.65rem 0;
  border: none;
  background: transparent;
  text-align: right;
}
body.woocommerce-order-received
  .woocommerce-table--order-details
  tfoot
  tr:last-child
  th,
body.woocommerce-order-received
  .woocommerce-table--order-details
  tfoot
  tr:last-child
  td {
  font-weight: 900;
  font-size: 1rem;
  color: var(--ink);
  padding-top: 1rem;
}
body.woocommerce-order-received
  .woocommerce-table--order-details
  tfoot
  tr:last-child
  td {
  font-size: 1.15rem;
}

/* ── Customer Details ─────────────────────────────────────────────────
   Separated from order details by an ink border-top.
   Address box uses the same input-style border as checkout fields. */
body.woocommerce-order-received .woocommerce-customer-details {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 2px solid var(--ink);
}
body.woocommerce-order-received .woocommerce-customer-details address {
  font-family: "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink) !important;
  border-radius: 0;
  padding: 1rem 1.25rem;
  line-height: 1.6;
  font-style: normal;
}
body.woocommerce-order-received .woocommerce-customer-details--phone,
body.woocommerce-order-received .woocommerce-customer-details--email {
  font-weight: 600;
  margin-top: 0.35rem;
}

/* ── Order Again Button ───────────────────────────────────────────────
   Ports the standard add-to-cart / checkout button pattern for light bg.
   Only appears for logged-in users. */
body.woocommerce-order-received .order-again {
  margin-top: 2rem;
}
body.woocommerce-order-received .order-again .button {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: var(--paper-light);
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink);
  border-radius: 0;
  padding: 0.7em 1.8em;
  line-height: 1.3;
  cursor: pointer;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
}
body.woocommerce-order-received .order-again .button:hover {
  background: var(--accent);
  color: var(--ink);
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
}

/* ── Responsive ─────────────────────────────────────────────────────── */

@media (max-width: 600px) {
  body.woocommerce-order-received .entry-content {
    border-width: 2px;
    box-shadow: 3px 3px 0 var(--mid-dark);
    padding: 1rem;
  }
  body.woocommerce-order-received .woocommerce-order-overview {
    flex-direction: column;
    gap: 0.75rem;
  }
  body.woocommerce-order-received .woocommerce-order-overview li {
    font-size: 0.65rem;
  }
  body.woocommerce-order-received .woocommerce-thankyou-order-received {
    font-size: 0.9rem;
    padding: 0.85rem 1rem;
  }
  body.woocommerce-order-received .woocommerce-table--order-details thead th {
    font-size: 0.6rem;
  }
  body.woocommerce-order-received .woocommerce-table--order-details tbody td {
    font-size: 0.78rem;
    padding: 0.6rem 0;
  }
  body.woocommerce-order-received .woocommerce-table--order-details tfoot th,
  body.woocommerce-order-received .woocommerce-table--order-details tfoot td {
    font-size: 0.72rem;
    padding: 0.5rem 0;
  }
  body.woocommerce-order-received
    .woocommerce-table--order-details
    tfoot
    tr:last-child
    th,
  body.woocommerce-order-received
    .woocommerce-table--order-details
    tfoot
    tr:last-child
    td {
    font-size: 0.85rem;
  }
  body.woocommerce-order-received .woocommerce-order-details__title,
  body.woocommerce-order-received .woocommerce-column__title {
    font-size: 0.95rem;
  }
  body.woocommerce-order-received .woocommerce-customer-details address {
    font-size: 0.78rem;
    padding: 0.85rem 1rem;
  }
  body.woocommerce-order-received .order-again .button {
    font-size: 0.68rem;
    padding: 0.6em 1.4em;
  }
}

/* ── My Account ──────────────────────────────────────────────────────────
   Styles for /my-account and all sub-pages (Dashboard, Orders, Downloads,
   Addresses, Account Details, View Order).
   Scoped under body.woocommerce-account.
   Layout: sidebar-navigation + content area (desktop), stacked (mobile).
   ====================================================================== */

/* ── Breadcrumb ─────────────────────────────────────────────────────── */
body.woocommerce-account .ast-breadcrumbs li {
  font-family: "Montserrat", sans-serif;
  font-size: 0.92em !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink) !important;
  margin-bottom: 1.25rem !important;
  padding: 0 !important;
}
body.woocommerce-account .ast-breadcrumbs a {
  color: var(--mid-dark) !important;
  text-decoration: none;
  transition: color 0.15s;
}
body.woocommerce-account .ast-breadcrumbs a:hover {
  color: var(--accent) !important;
}

/* ── Entry Title ───────────────────────────────────────────────────────
   Ports the cart/checkout title pattern. */
body.woocommerce-account header.entry-header h1.entry-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 0.5rem;
}

/* ── Entry Content Card ────────────────────────────────────────────────
   Ports the checkout card but uses flexbox for sidebar layout.
   No padding so the nav sidebar extends edge-to-edge. */
body.woocommerce-account #primary {
  margin: 1.5rem 0 5rem;
}

/* body.woocommerce-account .entry-content {} */
body.woocommerce-account .entry-content {
  background: var(--paper-light);
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  padding: 0;
  margin-block: 2rem;
  display: flex;
  overflow: hidden;
}

/* ── Navigation Sidebar ────────────────────────────────────────────────
   Vertical sidebar on desktop — --paper-dark bg, right ink border.
   Links borrow the tab typography (Montserrat 800, uppercase small).
   Active state: --accent left border + --paper-light bg. */

body.woocommerce-account .entry-content[data-ast-blocks-layout] > * {
  max-width: none;
  margin-left: initial;
  margin-right: initial;
  width: 100%;
  color: var(--ink);
}

body .woocommerce-MyAccount-navigation-link {
  border: none;
}

body.woocommerce-account #customer_login {
  padding: 1.5rem 2rem;
}

@media (min-width: 979px) {
  body.woocommerce-account:not(.logged-in) h1.entry-title {
    margin-top: 2rem;
  }
}
body.woocommerce-account:not(.logged-in) h1.entry-title,
body.woocommerce-account:not(.logged-in) .entry-content {
  max-width: 600px;
  margin-inline: auto;
}

/* ── Login / Register Tab Toggle ─────────────────────────────────────
   Tab bar injected by the rgs_account_form_tabs() hook. Active tab
   gets an accent underline; disabled tab is dimmed. The forms container
   uses data-active-tab to control which column is visible. */

body.woocommerce-account .rgs-account-tabs {
  display: flex;
  gap: 0;
  margin-bottom: 1.5rem;
  border-bottom: 2px solid var(--ink);
}

body.woocommerce-account .rgs-account-tab {
  flex: 1;
  padding: 0.85rem 1rem;
  border: 0;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px; /* sit flush with the rail */
  background: transparent;
  cursor: pointer;
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--mid);
  transition:
    color 0.15s,
    border-color 0.15s,
    background 0.15s;
}
body.woocommerce-account .rgs-account-tab:hover {
  color: var(--ink);
  background: rgba(0, 0, 0, 0.03);
}

body.woocommerce-account .rgs-account-tab {
  background-color: var(--paper-dark);
  cursor: pointer;
  border-radius: 0 !important;
  border-bottom-color: var(--ink);
  border-bottom-width: 2px;
}

body.woocommerce-account .rgs-account-tab:active,
body.woocommerce-account .rgs-account-tab:focus,
body.woocommerce-account .rgs-account-tab:hover {
  background-color: var(--accent);
  color: var(--ink);
}

body.woocommerce-account .rgs-account-tab[aria-selected="true"] {
  color: var(--ink);
  background-color: var(--accent);
}

/* ── Column layout: full-width when visible ────────────────────────── */
.woocommerce #customer_login {
  display: block;
}
.woocommerce #customer_login > .u-column1,
.woocommerce #customer_login > .u-column2 {
  float: none;
  width: 100%;
  padding: 0;
}

/* ── Fade transition between forms ───────────────────────────────────
   The account-tabs.js script handles visibility via inline styles.
   It uses a two-phase approach: fade out opacity, then swap display,
   then fade in. This transition applies to the opacity changes. */
.woocommerce #customer_login > .u-column1,
.woocommerce #customer_login > .u-column2 {
  transition: opacity 0.15s ease;
}

/* ── Responsive: tighter tabs on small screens ─────────────────────── */
@media (max-width: 768px) {
  body.woocommerce-account .rgs-account-tab {
    font-size: 0.68rem;
    padding: 0.7rem 0.5rem;
  }
  body.woocommerce-account #customer_login {
    padding: 1rem;
  }
}

body.woocommerce-account h2 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1rem;
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--ink);
}

body.woocommerce-account .woocommerce-MyAccount-navigation {
  flex: 0 0 220px;
  background: var(--paper-dark);
  border-right: 2px solid var(--ink);
  padding: 1.5rem 0;
  height: 100%;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
body.woocommerce-account .woocommerce-MyAccount-navigation-link {
  margin: 0;
  padding: 0;
}
body.woocommerce-account .woocommerce-MyAccount-navigation-link a {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mid);
  text-decoration: none;
  display: block;
  padding: 0.7rem 1.5rem;
  border-left: 3px solid transparent;
  transition:
    color 0.15s,
    border-color 0.15s,
    background 0.15s;
}
body.woocommerce-account .woocommerce-MyAccount-navigation-link a:hover {
  color: var(--ink);
  background: rgba(0, 0, 0, 0.03);
}
body.woocommerce-account .woocommerce-MyAccount-navigation-link.is-active a {
  color: var(--ink);
  background: var(--accent);
}

/* ── Content Area ────────────────────────────────────────────────────── */
body.woocommerce-account .woocommerce-MyAccount-content {
  flex: 1;
  padding: 1.5rem 2rem;
  min-width: 0;
}
body.woocommerce-account .woocommerce-MyAccount-content p {
  font-family: "Montserrat", sans-serif;
  font-size: 0.85rem;
  color: var(--ink);
  line-height: 1.6;
  margin-bottom: 1rem;
}
body.woocommerce-account .woocommerce-MyAccount-content p a {
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
  transition: color 0.15s;
}
body.woocommerce-account .woocommerce-MyAccount-content p a:hover {
  color: var(--ink);
}
body.woocommerce-account .woocommerce-MyAccount-content strong {
  font-weight: 800;
}

/* ── Section Headings ──────────────────────────────────────────────────
   Ports the checkout h3 pattern: uppercase Montserrat + ink underline. */
body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3,
body.woocommerce-account .woocommerce-MyAccount-content legend {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1rem;
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--ink);
}

/* ── Address Cards (Edit Address page) ──────────────────────────────── */
body.woocommerce-account .woocommerce-Address {
  border: 2px solid var(--ink);
  background: var(--paper);
  padding: 1.25rem;
  margin-bottom: 1.5rem;
}
body.woocommerce-account .woocommerce-Address h3 {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.85rem;
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 0.75rem;
  padding-bottom: 0;
  border: none;
}
body.woocommerce-account .woocommerce-Address address {
  font-style: normal;
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  color: var(--ink);
  line-height: 1.6;
  padding: 1em;
  margin: 1rem 0 1rem;
  background: var(--paper-light);
  font-weight: 500;
  border: none;
}
body.woocommerce-account .woocommerce-Address .edit {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--accent);
  text-decoration: none;
  transition: color 0.15s;
}
body.woocommerce-account .woocommerce-Address .edit:hover {
  color: var(--ink);
}

/* ── Forms (Address, Account Details) ──────────────────────────────────
   Ports the checkout form-row + label + input patterns exactly. */
body.woocommerce-account .form-row {
  margin-bottom: 0.85rem;
  padding: 0;
}
body.woocommerce-account .form-row label {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink);
  display: block;
  margin-bottom: 0.75rem;
  line-height: 1.3;
}
body.woocommerce-account .form-row label .required {
  color: var(--accent);
  font-weight: 900;
  border: none;
  text-decoration: none;
}
body.woocommerce-account .form-row .input-text,
body.woocommerce-account .form-row input[type="text"],
body.woocommerce-account .form-row input[type="email"],
body.woocommerce-account .form-row input[type="tel"],
body.woocommerce-account .form-row input[type="password"],
body.woocommerce-account .form-row select {
  font-family: "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  padding: 0.6em 0.8em;
  width: 100%;
  line-height: 1.4;
  transition: border-color 0.15s;
}
body.woocommerce-account .form-row .input-text:focus,
body.woocommerce-account .form-row input[type="text"]:focus,
body.woocommerce-account .form-row input[type="email"]:focus,
body.woocommerce-account .form-row input[type="tel"]:focus,
body.woocommerce-account .form-row input[type="password"]:focus,
body.woocommerce-account .form-row select:focus {
  border-color: var(--accent);
  outline: none;
}

/* ── Select2 Country/State Dropdowns ────────────────────────────────── */
body.woocommerce-account .select2-container .select2-selection--single {
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  height: auto;
  padding: 0.45em 0.7em;
  line-height: 1.4;
}
body.woocommerce-account
  .select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  color: var(--ink);
  line-height: 1.4;
  padding: 0;
}
body.woocommerce-account
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  top: 50%;
  transform: translateY(-50%);
  right: 6px;
}
body.woocommerce-account .select2-dropdown {
  border: 2px solid var(--ink);
  border-radius: 0;
  background: var(--paper-light);
}
body.woocommerce-account .select2-results__option {
  font-family: "Montserrat", sans-serif;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--ink);
  padding: 0.5em 0.7em;
}
body.woocommerce-account .select2-results__option--highlighted[aria-selected] {
  background: var(--accent);
  color: #fff;
}

/* ── Buttons ───────────────────────────────────────────────────────────
   Ports the standard light-background button pattern for all
   my-account form submissions. */
body.woocommerce-account .woocommerce-form-login__submit,
body.woocommerce-account .woocommerce-Button.button,
body.woocommerce-account button.woocommerce-Button,
body.woocommerce-account .woocommerce-MyAccount-content button[type="submit"],
body.woocommerce-account .woocommerce-EditAccountForm button[type="submit"] {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: var(--paper-light);
  border: 2px solid var(--ink);
  box-shadow: 4px 4px 0 var(--mid-dark);
  color: var(--ink);
  border-radius: 0;
  padding: 0.7em 1.8em;
  line-height: 1.3;
  cursor: pointer;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
}

body.woocommerce-account .woocommerce-form-login__submit:hover,
body.woocommerce-account .woocommerce-Button.button:hover,
body.woocommerce-account button.woocommerce-Button:hover,
body.woocommerce-account
  .woocommerce-MyAccount-content
  button[type="submit"]:hover,
body.woocommerce-account
  .woocommerce-EditAccountForm
  button[type="submit"]:hover {
  background: var(--accent);
  color: var(--ink);
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--mid-dark);
}

body .woocommerce form.login,
body .woocommerce form.checkout_coupon,
body .woocommerce form.register {
  border: none;
  padding: 0;
}

body .woocommerce form.login a,
body .woocommerce form.checkout_coupon a,
body .woocommerce form.register a {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  text-decoration: none;
  transition: color 0.15s;
}

/* ── Orders Table ──────────────────────────────────────────────────────
   Ports the order-received table pattern. */
body.woocommerce-account .woocommerce-orders-table {
  font-family: "Montserrat", sans-serif;
  border: none;
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1.5rem;
}
body.woocommerce-account .woocommerce-orders-table thead {
  border-bottom: 2px solid var(--ink);
}
body.woocommerce-account .woocommerce-orders-table thead th {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink);
  padding: 0.6rem 0.5rem;
  border: none;
  background: transparent;
}
body.woocommerce-account .woocommerce-orders-table tbody {
  border-bottom: 2px solid var(--ink);
}
body.woocommerce-account .woocommerce-orders-table tbody td {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink);
  padding: 0.7rem 0.5rem;
  border: none;
  background: transparent;
  vertical-align: middle;
}
body.woocommerce-account .woocommerce-orders-table tbody td a {
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
  transition: color 0.15s;
}
body.woocommerce-account .woocommerce-orders-table tbody td a:hover {
  color: var(--ink);
}

/* Order status badge */
body.woocommerce-account .woocommerce-orders-table__cell-order-status {
  font-weight: 700;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* Order action buttons (View, Pay, Cancel) */
body.woocommerce-account .woocommerce-orders-table__cell-order-actions .button {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--paper-light);
  border: 2px solid var(--ink);
  box-shadow: 2px 2px 0 var(--mid-dark);
  color: var(--ink);
  border-radius: 0;
  padding: 0.35em 0.7em;
  line-height: 1.3;
  cursor: pointer;
  display: inline-block;
  margin: 0.1rem 0.15rem;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
}
body.woocommerce-account
  .woocommerce-orders-table__cell-order-actions
  .button:hover {
  background: var(--accent);
  color: var(--ink);
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 var(--mid-dark);
}

/* ── Downloads Table ───────────────────────────────────────────────────
   Same table pattern as orders. */
body.woocommerce-account .woocommerce-table--order-downloads {
  font-family: "Montserrat", sans-serif;
  border: none;
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1.5rem;
}
body.woocommerce-account .woocommerce-table--order-downloads thead {
  border-bottom: 2px solid var(--ink);
}
body.woocommerce-account .woocommerce-table--order-downloads thead th {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink);
  padding: 0.6rem 0.5rem;
  border: none;
  background: transparent;
}
body.woocommerce-account .woocommerce-table--order-downloads tbody {
  border-bottom: 2px solid var(--ink);
}
body.woocommerce-account .woocommerce-table--order-downloads tbody td {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink);
  padding: 0.7rem 0.5rem;
  border: none;
  background: transparent;
  vertical-align: middle;
}
body.woocommerce-account .woocommerce-table--order-downloads tbody td a {
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
  transition: color 0.15s;
}
body.woocommerce-account .woocommerce-table--order-downloads tbody td a:hover {
  color: var(--ink);
}
/* Download button */
body.woocommerce-account .woocommerce-table--order-downloads .button {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--paper-light);
  border: 2px solid var(--ink);
  box-shadow: 2px 2px 0 var(--mid-dark);
  color: var(--ink);
  border-radius: 0;
  padding: 0.35em 0.7em;
  line-height: 1.3;
  cursor: pointer;
  display: inline-block;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease,
    color 0.15s ease-in-out;
}
body.woocommerce-account .woocommerce-table--order-downloads .button:hover {
  background: var(--accent);
  color: var(--ink);
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 var(--mid-dark);
}

/* ── View Order Sub-page (Order Details + Customer Details) ────────────
   Ports the order-received table + customer-details patterns, scoped
   under .woocommerce-MyAccount-content. */
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-order-details__title,
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-column__title {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 1.1rem;
  text-transform: uppercase;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--ink);
}

/* Order details table inside view order */
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details {
  font-family: "Montserrat", sans-serif;
  border: none;
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1.5rem;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  thead {
  border-bottom: 2px solid var(--ink);
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  thead
  th {
  font-family: "Montserrat", sans-serif;
  font-weight: 800;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink);
  padding: 0.6rem 0;
  border: none;
  background: transparent;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  thead
  th.product-total {
  text-align: right;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  tbody {
  border-bottom: 2px solid var(--ink);
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  tbody
  td {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--ink);
  padding: 0.75rem 0;
  border: none;
  background: transparent;
  vertical-align: top;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  tbody
  td.product-name {
  font-weight: 700;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  tbody
  td.product-total {
  text-align: right;
  font-weight: 800;
  white-space: nowrap;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  tfoot {
  border-top: none;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  tfoot
  tr {
  border-bottom: 1px solid var(--paper-dark);
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  tfoot
  tr:last-child {
  border-bottom: none;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  tfoot
  th {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--mid-dark);
  padding: 0.65rem 0;
  border: none;
  background: transparent;
  text-align: left;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  tfoot
  td {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--ink);
  padding: 0.65rem 0;
  border: none;
  background: transparent;
  text-align: right;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  tfoot
  tr:last-child
  th,
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  tfoot
  tr:last-child
  td {
  font-weight: 900;
  font-size: 1rem;
  color: var(--ink);
  padding-top: 1rem;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-table--order-details
  tfoot
  tr:last-child
  td {
  font-size: 1.15rem;
}

/* Customer details inside view order */
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-customer-details {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 2px solid var(--ink);
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-customer-details
  address {
  font-family: "Montserrat", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--ink);
  background: var(--paper);
  border: 2px solid var(--ink);
  border-radius: 0;
  padding: 1rem 1.25rem;
  line-height: 1.6;
  font-style: normal;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-customer-details--phone,
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-customer-details--email {
  font-weight: 600;
  margin-top: 0.35rem;
}

/* ── Notices (inside my-account) ────────────────────────────────────── */
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-message {
  font-family: "Montserrat", sans-serif;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink);
  border-top-color: var(--accent) !important;
  background: var(--paper-light);
  border-radius: 0;
  margin-bottom: 1.5rem;
}
body.woocommerce-account
  .woocommerce-MyAccount-content
  .woocommerce-message::before {
  color: var(--accent);
}

/* ── Password Strength Indicator ────────────────────────────────────── */
body.woocommerce-account .woocommerce-password-strength {
  font-family: "Montserrat", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.4rem 0.6rem;
  margin-top: 0.4rem;
}
body.woocommerce-account .woocommerce-password-strength.short {
  background: #ffe0e0;
  color: #c00;
  border: 1px solid #c00;
}
body.woocommerce-account .woocommerce-password-strength.bad {
  background: #ffe0b0;
  color: #c60;
  border: 1px solid #c60;
}
body.woocommerce-account .woocommerce-password-strength.good {
  background: #e0ffe0;
  color: #060;
  border: 1px solid #060;
}
body.woocommerce-account .woocommerce-password-strength.strong {
  background: #c0ffc0;
  color: #090;
  border: 1px solid #090;
}
body.woocommerce-account .woocommerce-password-hint {
  font-family: "Montserrat", sans-serif;
  font-size: 0.68rem;
  font-weight: 500;
  font-style: italic;
  color: var(--mid-dark);
  margin-top: 0.35rem;
}

/* ── Responsive ─────────────────────────────────────────────────────── */

/* Tablet: collapse sidebar to grid nav (matches Astra's 921px breakpoint) */
@media (max-width: 921px) {
  body.woocommerce-account .entry-content {
    flex-direction: column;
    border-width: 2px;
    box-shadow: 3px 3px 0 var(--mid-dark);
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation {
    flex: none;
    width: 100%;
    border-right: none;
    border-bottom: 2px solid var(--ink);
    padding: 0;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation-link {
    margin: 0;
    padding: 0;
  }

  body.woocommerce-account .woocommerce-MyAccount-navigation-link a {
    border-left: none;
    border-bottom: 3px solid transparent;
    padding: 0.65rem 1rem;
    text-align: center;
    font-size: 0.62rem;
    white-space: nowrap;
    height: 100%;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation-link.is-active a {
    border-left: none;
    background: var(--accent);
  }

  body.woocommerce-account .woocommerce-MyAccount-content {
    padding: 1.25rem;
  }
}

/* Mobile: tighter spacing */
@media (max-width: 600px) {
  body.woocommerce-account .entry-title {
    font-size: clamp(1.4rem, 5vw, 2rem);
  }
  body.woocommerce-account .entry-content {
    border-width: 2px;
    box-shadow: 3px 3px 0 var(--mid-dark);
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation-link a {
    font-size: 0.58rem;
    padding: 0.55rem 0.7rem;
  }
  body.woocommerce-account
    .woocommerce-MyAccount-navigation-link:nth-child(-n + 3) {
    border-bottom: 1px solid var(--ink);
  }
  body.woocommerce-account .woocommerce-MyAccount-content {
    padding: 1rem;
  }
  body.woocommerce-account .woocommerce-MyAccount-content h2,
  body.woocommerce-account .woocommerce-MyAccount-content h3,
  body.woocommerce-account .woocommerce-MyAccount-content legend {
    font-size: 0.85rem;
  }
  body.woocommerce-account .woocommerce-orders-table thead th {
    font-size: 0.6rem;
    padding: 0.5rem 0.35rem;
  }
  body.woocommerce-account .woocommerce-orders-table tbody td {
    font-size: 0.75rem;
    padding: 0.55rem 0.35rem;
  }
  body.woocommerce-account .woocommerce-table--order-downloads thead th {
    font-size: 0.6rem;
  }
  body.woocommerce-account .woocommerce-table--order-downloads tbody td {
    font-size: 0.75rem;
  }
  body.woocommerce-account .woocommerce-Address {
    padding: 1rem;
  }
}

@media (max-width: 480px) {
  body.woocommerce-cart .ast-breadcrumbs li,
  body.woocommerce-checkout .ast-breadcrumbs li,
  .woocommerce-breadcrumb {
    margin-bottom: 0.85rem !important;
  }
  .entry-content .woocommerce-info {
    padding-top: 1em;
    padding-bottom: 1em;
    padding-left: 3em;
    padding-right: 1em;
  }
  .woocommerce-products-header {
    margin-bottom: 0.85rem;
  }
  body.woocommerce-js .woocommerce-info a.button.wc-forward,
  body.woocommerce-cart .coupon button.button {
    font-size: 0.75rem;
    padding: 10px 20px;
  }
}
